IoT Smart Home
Tech Talks | Team Technologies LLC
Sergey Seletsky
Cloud Solutions Architect
Agenda
 Introduction to IoT
 MQTT and other IoT protocols
 IoT Smart Home
 AWS IoT Architecture patterns
 AWS IoT Core Services and Security
 Comparison to other services: AWS IoT vs Azure IoT Suite
 Java sample overview & Alexa demo (Vitaliy)
 User pattern detection approaches (Andy)
Introduction to IoT
6.3 Billion 6.8 Billion Billion7.2 Billion7.6
500 Million 12.5 Billion 25 Billion Billion50
Connected
Devices
Connected
Devices
Per Person
0.08 1.84 3.47 6.58
2003 2010 2015 2020
More
connected
devices
than
people
Source: Cisco IBSG, April[ 2011]
Introduction to IoT
TECHNOLOGIES THAT ENABLE IOT
Cheap sensors
(50% cheaper)
Cheap bandwidth
)(40x cheaper
Cheap
processing &
smarter
(60x cheaper )
Ubiquitous wireless
coverage
(free wifi )
Big data
(unstructured
data)
IPv6
Smartphones
(personal gateway )
For the Past 10 Years
What is MQTT?
MQTT Performance
MQTT Header and Payload
Smart Home Devices
Dude, Ask my fridge...
AWS IoT
DEVICE SDK
Set of client libraries to
connect, authenticate and
exchange messages
DEVICE GATEWAY
Communicate with devices via
MQTT and HTTP
AUTHENTICATION
AUTHORIZATION
Secure with mutual
authentication and encryption
RULES ENGINE
Transform messages
based on rules and
route to AWS Services
AWS Services
- - - - -
3P Services
DEVICE SHADOW
Persistent thing state
during intermittent
connections
APPLICATIONS
AWS IoT API
DEVICE REGISTRY
Identity and Management of
your things
AWS IoT Message Broker
DEVICE GATEWAY
Communicate with devices via
MQTT and HTTP
AWS IoT Device Gateway
Standard Protocol Support (no lock-in)
Millions of devices and apps can connect
over any protocol starting with MQTT and
HTTP 1.1
Powerful Pub/Sub Broker with Long-
lived bi-directional messages
Clients (Devices and Apps) can receive
commands and control signals from the
cloud
Secure by Default
Connect securely via X509 Certs and TLS
Client Mutual Auth1.2
Topic Based
Architecture
(lights/thing-2 )/color
Highly Scalable
Device Gateway
AWS IoT Security: Authentication
Secure with mutual
authentication and encryption
AUTHENTICATION
AWS IoT Rules Engine
RULES ENGINE
Transform messages
based on rules and
route to AWS Services
AWS IoT Rules Engine Basics
Simple & Familiar Syntax
- SQL Statement to define topic filter
- Optional WHERE clause
- Advanced JSON support
Functions improve signal : noise
- String manipulation (regex support)
- Mathematical operations
- Context based helper functions
- Crypto support
- UUID, Timestamp, rand, etc.
SELECT * FROM ‘things/thing-2/color’
WHERE color = ‘red’
AWS IoT Rules Engine’s Flexibility
SELECT *, clientId() as MQTTClientId
FROM 'one/rule'
WHERE
startsWith(topic(2), 'IME33') AND
(state = 'INIT' OR hydro_temp >
surface_temp)",
"actions":
[{
"republish": {
"topic":
"controllers/${substring(topic(3),
3, 5)}",
}]
AWS IoT Rules Engine
Complex Evaluations
Respond to the fleet, not just a single unit. Dozens of functions() available
Multiple / Simultaneous Actions
Sometimes a situation requires you to take many actions
AWS IoT Rules Engine Actions
RULES ENGINE
Transform messages
based on rules and
route to AWS Services
AWS Services
- - - - -
3P Services
AWS Services
- - - - -
3P Services
AWS IoT Rules Engine
. AWS Services1
)Direct Integration(
Rules Engine
Actions
AWS
Lambda
Amazon
SNS
Amazon
SQS
Amazon
S3
Amazon
Kinesis
Amazon
DynamoDB Amazon RDS
Amazon
Redshift
Amazon Glacier
Amazon
EC2
. External3 Endpoints
via Lambda and SNS( )
Rules Engine connects AWS
IoT to External Endpoints and
AWS Services.
. Rest of AWS2
via Amazon Kinesis, AWS(
Lambda, Amazon S3, and
more)
AWS IoT Rules Engine Actions
Rules Engine evaluates inbound
messages published into AWS
IoT, transforms and delivers to the
appropriate endpoint based on
business rules.
External endpoints can be
reached via Lambda and Simple
Notification Service (SNS).
Invoke a Lambda function
Put object in an S3 bucket
Insert, Update, Read from a
DynamoDB table
Publish to an SNS Topic
or Endpoint
Publish to an Amazon Kinesis
stream
Actions
Amazon Kinesis Firehose
Republish to AWS IoT
AWS IoT Rules Engine & Amazon SNS
Push Notifications
Apple APNS Endpoint, Google GCM Endpoint, Amazon ADM Endpoint, Windows WNS
Amazon SNS - )HTTP Endpoint (Or SMS or Email>
Call HTTP based 3rd
party endpoints through SNS with subscription and retry support
SNS
2
AWS IoT to AWS Lambda
Lambda Function
Rules Engine
PolicyPrivate Key
& Certificate
Thing/Device
Rule
SDK
AWS IoT AWS Services
Execution
Role
Policy
External Endpoint
Permission
Select * from ‘iotbutton/+’
Action
AWS IoT Thing Shadow
THING SHADOW
Persistent thing state
during intermittent
connections
SHADOW
Persistent thing state
during intermittent
connections
APPLICATIONS
AWS IoT Thing Shadow
Shadow
AWS IoT Shadow Flow
Shadow
Device SDK
. Device Publishes Current State1
2. Persist JSON Data Store
3. App requests device’s current state
4. App requests change the state
5. Device Shadow sync’s
updated state
6. Device Publishes Current State
7. Device Shadow confirms state change
AWS IoT
AWS IoT Device Shadow - Simple Yet
Powerful
{
"state" : {
“desired" : {
"lights": { "color": "RED" },
"engine" : "ON"
},
"reported" : {
"lights" : { "color": "GREEN" },
"engine" : "ON"
},
"delta" : {
"lights" : { "color": "RED" }
} },
"version" : 10
}
Thing
Report its current state to one or multiple shadows
Retrieve its desired state from shadow
Mobile App
Set the desired state of a device
Get the last reported state of the device
Delete the shadow
Shadow
Shadow reports delta, desired and reported
states along with metadata and version
AWS IoT Device Shadow Topics (MQTT)
Thing SDK (C-SDK, JS-SDK)
makes it easy for you build shadow
functionality into your device so it
can automatically synchronize the
state with the device.
AWS IoT Thing Shadow
UPDATE: $aws/things/{thingName}/shadow/update
DELTA: $aws/things/{thingName}/shadow/update/delta
GET: $aws/things/{thingName}/shadow/get
DELETE: $aws/things/{thingName}/shadow/delete
Sensor Reported Desired Delta
LED1 RED YELLOW
LED1 =
Yellow
TEMP = 60F
ACCEL X=1,Y=5,Z=4 X=1,Y=5,Z=4
TEMP 83F F60
AWS IoT Registry
• Static attributes associated to Thing
• Firmware version
• Serial Numbers
• Device Type
• Device Group
• Device Description
• Sensor description
• Support and Maintenance
• Reference Manual URL
• Part # reference
• Reference to external support system
AWS IoT - Device Management
S3 Holds Versioned Firmware Distributions
Organize and secure your firmware binaries in S3
Message Broker notifies groups of the fleet using Topic Patterns
Alert the fleet (or part of it) of the update, and send the URL to the S3 download
Firmware Update
Stored in S3
Publish to groups of devices
• Ability to update global
or within a Region
• Rules Engine keeps
state of updates and
tracks progress in a
DynamoDB Table
• Store Version in
Registry Entry
Simple Pay as you go and Predictable Pricing
• Pay as you go. No minimum fees
• $5 per million messages published to, or delivered
in US East (N. Virginia), US West (Oregon), EU
(Ireland) $8 in Asia Pacific (Tokyo)
AWS IoT
Free Tier
250,000 Messages Per Month Free for first 12
Months
Get Started with AWS IoT Device SDK
C-SDK
(Ideal for embedded
OS)
JS-SDK
(Ideal for Embedded
Linux Platforms)
Arduino Library
(Arduino Yun)
Mobile SDK
(Android and iOS)
AWS IoT vs Azure IoT Suite
MICROSOFT AZURE IOT AMAZON AWS IOT
Protocols
HTTP, AMQP, MQTT and custom
protocols
HTTP, MQTT
Communication Patterns Telemetry, Command
Telemetry, Command (state
change)
Certified Platforms
Intel, Raspberry Pi 2, Freescale,
Texas Instruments,
MinnowBoard, BeagleBoard,
Seeed, resin.io
Broadcom, Marvell, Renesas,
Texas Instruments, Microchip,
Intel, Mediatek, Qualcomm,
Seeed, BeagleBoard
Device SDK / Language .Net and UWP, Java, C, NodeJS C, NodeJS
Security TLS (only server authentication) TLS (mutual authentication)
Authentication Per-device with SAS token
X.509 certificate client
authentication, IAM service,
Cognito service
Pricing
Paying for IoT Hub unit related to
number of devices and messages
per days
Paying million messages traffic
(published from devices +
delivered to devices)
Questions?

IoT Smart Home

  • 1.
    IoT Smart Home TechTalks | Team Technologies LLC Sergey Seletsky Cloud Solutions Architect
  • 2.
    Agenda  Introduction toIoT  MQTT and other IoT protocols  IoT Smart Home  AWS IoT Architecture patterns  AWS IoT Core Services and Security  Comparison to other services: AWS IoT vs Azure IoT Suite  Java sample overview & Alexa demo (Vitaliy)  User pattern detection approaches (Andy)
  • 3.
  • 4.
    6.3 Billion 6.8Billion Billion7.2 Billion7.6 500 Million 12.5 Billion 25 Billion Billion50 Connected Devices Connected Devices Per Person 0.08 1.84 3.47 6.58 2003 2010 2015 2020 More connected devices than people Source: Cisco IBSG, April[ 2011]
  • 8.
  • 9.
    TECHNOLOGIES THAT ENABLEIOT Cheap sensors (50% cheaper) Cheap bandwidth )(40x cheaper Cheap processing & smarter (60x cheaper ) Ubiquitous wireless coverage (free wifi ) Big data (unstructured data) IPv6 Smartphones (personal gateway ) For the Past 10 Years
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    Dude, Ask myfridge...
  • 15.
    AWS IoT DEVICE SDK Setof client libraries to connect, authenticate and exchange messages DEVICE GATEWAY Communicate with devices via MQTT and HTTP AUTHENTICATION AUTHORIZATION Secure with mutual authentication and encryption RULES ENGINE Transform messages based on rules and route to AWS Services AWS Services - - - - - 3P Services DEVICE SHADOW Persistent thing state during intermittent connections APPLICATIONS AWS IoT API DEVICE REGISTRY Identity and Management of your things
  • 16.
    AWS IoT MessageBroker DEVICE GATEWAY Communicate with devices via MQTT and HTTP
  • 17.
    AWS IoT DeviceGateway Standard Protocol Support (no lock-in) Millions of devices and apps can connect over any protocol starting with MQTT and HTTP 1.1 Powerful Pub/Sub Broker with Long- lived bi-directional messages Clients (Devices and Apps) can receive commands and control signals from the cloud Secure by Default Connect securely via X509 Certs and TLS Client Mutual Auth1.2 Topic Based Architecture (lights/thing-2 )/color Highly Scalable Device Gateway
  • 19.
    AWS IoT Security:Authentication Secure with mutual authentication and encryption AUTHENTICATION
  • 20.
    AWS IoT RulesEngine RULES ENGINE Transform messages based on rules and route to AWS Services
  • 21.
    AWS IoT RulesEngine Basics Simple & Familiar Syntax - SQL Statement to define topic filter - Optional WHERE clause - Advanced JSON support Functions improve signal : noise - String manipulation (regex support) - Mathematical operations - Context based helper functions - Crypto support - UUID, Timestamp, rand, etc. SELECT * FROM ‘things/thing-2/color’ WHERE color = ‘red’
  • 22.
    AWS IoT RulesEngine’s Flexibility SELECT *, clientId() as MQTTClientId FROM 'one/rule' WHERE startsWith(topic(2), 'IME33') AND (state = 'INIT' OR hydro_temp > surface_temp)", "actions": [{ "republish": { "topic": "controllers/${substring(topic(3), 3, 5)}", }]
  • 23.
    AWS IoT RulesEngine Complex Evaluations Respond to the fleet, not just a single unit. Dozens of functions() available Multiple / Simultaneous Actions Sometimes a situation requires you to take many actions
  • 24.
    AWS IoT RulesEngine Actions RULES ENGINE Transform messages based on rules and route to AWS Services AWS Services - - - - - 3P Services AWS Services - - - - - 3P Services
  • 25.
    AWS IoT RulesEngine . AWS Services1 )Direct Integration( Rules Engine Actions AWS Lambda Amazon SNS Amazon SQS Amazon S3 Amazon Kinesis Amazon DynamoDB Amazon RDS Amazon Redshift Amazon Glacier Amazon EC2 . External3 Endpoints via Lambda and SNS( ) Rules Engine connects AWS IoT to External Endpoints and AWS Services. . Rest of AWS2 via Amazon Kinesis, AWS( Lambda, Amazon S3, and more)
  • 26.
    AWS IoT RulesEngine Actions Rules Engine evaluates inbound messages published into AWS IoT, transforms and delivers to the appropriate endpoint based on business rules. External endpoints can be reached via Lambda and Simple Notification Service (SNS). Invoke a Lambda function Put object in an S3 bucket Insert, Update, Read from a DynamoDB table Publish to an SNS Topic or Endpoint Publish to an Amazon Kinesis stream Actions Amazon Kinesis Firehose Republish to AWS IoT
  • 27.
    AWS IoT RulesEngine & Amazon SNS Push Notifications Apple APNS Endpoint, Google GCM Endpoint, Amazon ADM Endpoint, Windows WNS Amazon SNS - )HTTP Endpoint (Or SMS or Email> Call HTTP based 3rd party endpoints through SNS with subscription and retry support SNS 2
  • 28.
    AWS IoT toAWS Lambda Lambda Function Rules Engine PolicyPrivate Key & Certificate Thing/Device Rule SDK AWS IoT AWS Services Execution Role Policy External Endpoint Permission Select * from ‘iotbutton/+’ Action
  • 29.
    AWS IoT ThingShadow THING SHADOW Persistent thing state during intermittent connections SHADOW Persistent thing state during intermittent connections APPLICATIONS
  • 30.
    AWS IoT ThingShadow Shadow
  • 31.
    AWS IoT ShadowFlow Shadow Device SDK . Device Publishes Current State1 2. Persist JSON Data Store 3. App requests device’s current state 4. App requests change the state 5. Device Shadow sync’s updated state 6. Device Publishes Current State 7. Device Shadow confirms state change AWS IoT
  • 32.
    AWS IoT DeviceShadow - Simple Yet Powerful { "state" : { “desired" : { "lights": { "color": "RED" }, "engine" : "ON" }, "reported" : { "lights" : { "color": "GREEN" }, "engine" : "ON" }, "delta" : { "lights" : { "color": "RED" } } }, "version" : 10 } Thing Report its current state to one or multiple shadows Retrieve its desired state from shadow Mobile App Set the desired state of a device Get the last reported state of the device Delete the shadow Shadow Shadow reports delta, desired and reported states along with metadata and version
  • 33.
    AWS IoT DeviceShadow Topics (MQTT) Thing SDK (C-SDK, JS-SDK) makes it easy for you build shadow functionality into your device so it can automatically synchronize the state with the device. AWS IoT Thing Shadow UPDATE: $aws/things/{thingName}/shadow/update DELTA: $aws/things/{thingName}/shadow/update/delta GET: $aws/things/{thingName}/shadow/get DELETE: $aws/things/{thingName}/shadow/delete Sensor Reported Desired Delta LED1 RED YELLOW LED1 = Yellow TEMP = 60F ACCEL X=1,Y=5,Z=4 X=1,Y=5,Z=4 TEMP 83F F60
  • 34.
    AWS IoT Registry •Static attributes associated to Thing • Firmware version • Serial Numbers • Device Type • Device Group • Device Description • Sensor description • Support and Maintenance • Reference Manual URL • Part # reference • Reference to external support system
  • 35.
    AWS IoT -Device Management S3 Holds Versioned Firmware Distributions Organize and secure your firmware binaries in S3 Message Broker notifies groups of the fleet using Topic Patterns Alert the fleet (or part of it) of the update, and send the URL to the S3 download Firmware Update Stored in S3 Publish to groups of devices • Ability to update global or within a Region • Rules Engine keeps state of updates and tracks progress in a DynamoDB Table • Store Version in Registry Entry
  • 36.
    Simple Pay asyou go and Predictable Pricing • Pay as you go. No minimum fees • $5 per million messages published to, or delivered in US East (N. Virginia), US West (Oregon), EU (Ireland) $8 in Asia Pacific (Tokyo) AWS IoT Free Tier 250,000 Messages Per Month Free for first 12 Months
  • 37.
    Get Started withAWS IoT Device SDK C-SDK (Ideal for embedded OS) JS-SDK (Ideal for Embedded Linux Platforms) Arduino Library (Arduino Yun) Mobile SDK (Android and iOS)
  • 38.
    AWS IoT vsAzure IoT Suite MICROSOFT AZURE IOT AMAZON AWS IOT Protocols HTTP, AMQP, MQTT and custom protocols HTTP, MQTT Communication Patterns Telemetry, Command Telemetry, Command (state change) Certified Platforms Intel, Raspberry Pi 2, Freescale, Texas Instruments, MinnowBoard, BeagleBoard, Seeed, resin.io Broadcom, Marvell, Renesas, Texas Instruments, Microchip, Intel, Mediatek, Qualcomm, Seeed, BeagleBoard Device SDK / Language .Net and UWP, Java, C, NodeJS C, NodeJS Security TLS (only server authentication) TLS (mutual authentication) Authentication Per-device with SAS token X.509 certificate client authentication, IAM service, Cognito service Pricing Paying for IoT Hub unit related to number of devices and messages per days Paying million messages traffic (published from devices + delivered to devices)
  • 39.

Editor's Notes

  • #7 https://www.thethingsnetwork.org/map https://www.lora-alliance.org/member-list
  • #9 Global mobile app revenue in 2016 – $88 billion Global mobile app revenue forecast for 2020 – $189 billion
  • #10 ipV4 3,706,452,992 public addresses.