10. Publish / Subscribe
Standard Protocol Support
MQTT, HTTP, WebSockets
Long Lived Connections
Receive signals from the cloud
Secure by Default
Connect securely via X509 Certs
and TLS 1.2 Client Mutual Auth
12. Rules engine: Extracting value from messages
• Filter messages with certain criteria
• Transform the payload of messages
• React based on messages
• Move messages to other topics
• Move messages to other systems
• Predict changes based on trends
13. What is a rule?
• ruleName: human-readable name
• description: human-readable description
• ruleDisabled: true/false
• sql: e.g. SELECT * FROM ‘pm/topic’
• actions:
• action 1:
• action 2:
14. What is a rule?
• ruleName: human-readable name
• description: human-readable description
• ruleDisabled: true/false
• sql: e.g. SELECT * FROM ‘pm/topic’
• actions:
• action 1:
• action 2:
15. Rules engine: Filter and transform
• Filter messages with certain criteria
• Transform the payload of messages
• React based on messages
• Move messages to other topics
• Move messages to other systems
• Predict changes based on trends
16. Rules engine: Filter and transform
• SQL
• SELECT * FROM topic WHERE condition
• SELECT status.space_id AS room_id FROM
'iot/tempSensors/#' WHERE temp > 50
• Functions (in SELECT or WHERE)
• String manipulation (regex support)
• Mathematical operations
• Context-based helper functions
• Crypto support
• UUID, timestamp, rand, etc.
17. Rules engine: React and move
• Filter messages with certain criteria
• Transform the payload of messages
• React based on messages
• Move messages to other topics
• Move messages to other systems
• Predict changes based on trends
18. Rules engine: React (and move)
"rule": {
"ruleName": "republishPredictions”,
"ruleDisabled": false,
"sql": "SELECT no AS id, cycle AS c_number FROM 'pm/topic' WHERE failure = 1",
"description": "Republish ids of engines that are predicted to fail within 30 cycles",
"actions": [
{
"republish": {
"topic": "pm/failures",
"roleArn": "arn:aws:iam::012345678901:role/iot-actions-role”
}
}
],
}
19. Rules engine: React (and move)
"rule": {
"ruleName": "republishPredictions”,
"ruleDisabled": false,
"sql": "SELECT no AS id, cycle AS c_number FROM 'pm/topic' WHERE failure = 1",
"description": "Republish ids of engines that are predicted to fail within 30 cycles",
"actions": [
{
"republish": {
"topic": "pm/failures",
"roleArn": "arn:aws:iam::012345678901:role/iot-actions-role”
}
}
],
}
20. Rules engine: Move messages to other systems
• Filter messages with certain criteria
• Transform the payload of messages
• React based on messages
• Move messages to other topics
• Move messages to other systems
• Predict changes based on trends
21. Rules engine: Move messages to other
systems
Invoke a Lambda function
Put object in an S3 bucket
Insert, update a
DynamoDB table
Publish to an SNS topic
or endpoint
Publish to a Amazon Kinesis
stream
Publish to Firehose
Republish to AWS IoT
Publish to Amazon ES
Capture a CloudWatch
metric or change an alarm
Write to an SQS queue
22. AWS IoT <-> Salesforce IoT Cloud partnership
Profiles (Event & Context)
Build 360° views of customers and device
Journeys (Business Logic)
State-based orchestration engine
Translate business goals into action
24. 1. Device publishes current state
2. Persist JSON data store
3. App requests device’s current state
4. App requests change the state
5. Device shadow syncs
updated state
6. Device publishes current state 7. Device shadow confirms state change
AWS IoT device shadow flow
25. 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
}
Device
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
41. Greengrass Core (GGC)
The runtime responsible for
Lambda execution, messaging,
device shadows, security, and for
interacting directly with the cloud
42. Greengrass Core (GGC)
• Min Single-Core 1GHz
• Min 128MB RAM
• x86 and ARM
• Linux (Ubuntu or Amazon)
43. Greengrass Core (GGC)
The sky is the limit.
GGC takes advantage of your
device’s compute, memory,
storage, and peripherals
44. IoT Device SDK
Any device that uses the IoT
Device SDK can be configured to
interact with Greengrass Core via
the local network
Starts with the IoT Device SDK
for C++, more coming soon
45. IoT Device SDK
Devices that connect to
Greengrass can be small
(microcontroller-based),
and they can also be big
46. Devices work together locally
A Greengrass Group is
a set of Cores and other
devices configured to
communicate with one
another
47. Devices work together with the cloud
Greengrass works with
AWS IoT to maintain
long-lived connections
and process data via
the rules engine
Your Lambda functions
can also interact directly
with other AWS services
50. Local Lambda
Greengrass runs Lambdas
written in Python 2.7
Invoke Lambda functions with
messaging and shadow updates
51. Local Lambda
Lambdas are event-driven
compute functions
With Greengrass you can write
Lambda functions in the cloud
and deploy them locally
52. Local Lambda – What you can do
Command and control
Offline operation
Data filtering & aggregation
Iterative learning
53. Shadows
JSON documents that represent
state of your devices and Lambdas
Define them however is logical to
you—a car, an engine, a fleet
Sync to the cloud or
keep them local
54. Shadows – What you can do
Device state (current and desired)
Granular device state (only
synched to the cloud for debug)
Dynamic configuration (e.g,.
numeric factors of an ML model)
55. Messaging
Local MQTT Pub/Sub messaging
Define subscriptions between
publishers and subscribers
Apply MQTT topic filters
56. Messaging – What you can do
Bridge to the cloud
Local distributed system
57. Security
Mutual auth, both locally and also
with the cloud
Certificate on your devices can be
associated to SigV4 credentials in
the cloud
You can directly call any AWS
service from AWS Greengrass
AWS Greengrass
58. Benefits of AWS Greengrass
Respond to local events quickly
Operate offline
Simplified device programming
Reduce the cost of IoT applications
59. AWS Summit Milano
Ignacio Berenguer (ignacio.berenguer@enel.com)
Enel / Global ICT / Digital Enabler
08/06/2017
61. About Enel
61
Enel Mission
We are opening energy access to
more people
We are opening the world of
energy to new technologies
We are opening new ways for
people to manage energy
We are opening new uses of
energy
63. AWS IoT at Enel
63
GoodLife Project
Home Gateway
Smart Devices IoT Platform
Mobile App and Web AppEnergy Meter
Internet connectivity
64. AWS IoT at Enel
64
Evolution of the Enel IoT for Future Projects
Cloud
Dashboards
Edge
PI Network
LoRa Network
Zwave Network
IoT Platform
IoT
Gateway
Monitoring
Storage &
Persistence
64
Sensor
Sensors
LoRa
Gateway LoRa
Network Server
Sensors PI
Server
Internet
IoT
API
Gateway
Lambda
IoT Device
Registry
IoT Rule
Device
Shadows
S3 DynamoDB
Other Systems
Data Lake
ElasticSearch
SQS
Vertical
Applications
Kibana
API Interfaces
Application 1
Application 2
Application N
IoT Gateway
Lambda Greengrass
Camera
Kinesis
Device Management, device registry, get /
set status, command execution, data
aggregation, camera, monitoring,
authentication / authorization
IAM
Salesforce Connector
65. Benefits of Working with AWS
65
IoT solution for Enel
Time to Market
Future Proof
Strategic choice
Scalability
66. IoT evolution
66
Future Relationship with AWS (1
Minute)
Initial IoT
projects
Building
new
generation
IoT
architecture
2nd wave of
IoT
solutions
69. AWS Partner Network (APN)
AWS IoT customers can leverage the tens of thousands of APN partners
(Technology and ISV). APN grew by 50% in membership in the last 12
months
70. Native integration with Sigfox
What is Sigfox
Network operator in the Sub-GHz
Global network (one network)
Very Low power (up to 10 years on a single charge)
Very Low volume (12B per message)
Very Low cost (~$1/y in volume)
What is the integration
Sigfox transports data and passes it to AWS IoT
Device Management in AWS IoT
Rules Engine in AWS IoT
All the Power of the AWS Cloud
Coverage
Massive European Coverage
Rapid deployment in the US (100 cities by end of year)