Amazon Web Services (AWS) announced Friday an updated IoT Device SDK for Python, now including group discovery for Greengrass. With Greengrass Discovery, the Python SDK makes it easier for devices to interact locally with another device running Greengrass Core. The updated SDK package includes a full changelog.
AWS IoT is a platform that can connect devices to AWS Services and other devices, secure data and interactions, process and act upon device data, and enable applications to interact with devices even when they are offline.
The AWS IoT Device Gateway enables devices to securely and efficiently communicate with AWS IoT. The Device Gateway can exchange messages using a publication/subscription model, which enables one-to-one and one-to-many communications.
With this one-to-many communication pattern AWS IoT makes it possible for a connected device to broadcast data to multiple subscribers for a given topic. The Device Gateway supports MQTT, WebSockets, and HTTP 1.1 protocols. The Device Gateway scales automatically to support over a billion devices without provisioning infrastructure.
AWS IoT provides mutual authentication and encryption at all points of connection, so that data is never exchanged between devices and AWS IoT without proven identity. AWS IoT supports the AWS method of authentication (called ‘SigV4’) as well as X.509 certificate based authentication. Connections using HTTP can use either of these methods, while connections using MQTT use certificate based authentication, and connections using WebSockets can use SigV4.
With AWS IoT, users can adopt AWS IoT generated certificates, as well as those signed by the preferred Certificate Authority (CA). Users can map their choice of role and/or policies to each certificate, so that they can authorize devices or applications to have access, or change mind and revoke access altogether without ever touching the device.
Users can create, deploy and manage certificates and policies for the devices from the console or using the API. Those device certificates can be provisioned, activated and associated with the relevant policies that are configured using AWS IAM. This allows users to instantly revoke access for an individual device if they choose to do so.
AWS IoT also supports connections from users’ mobile apps using Amazon Cognito, which takes care of all the steps necessary to create a unique identifier for the app’s users and retrieve temporary, limited-privilege AWS credentials.
The Rules Engine makes it possible to build IoT applications that gather, process, analyze and act on data generated by connected devices at global scale without having to manage any infrastructure. The Rules Engine evaluates inbound messages published into AWS IoT and transforms and delivers them to another device or a cloud service, based on business rules defined. A rule can apply to data from one or many devices, and it can take one or many actions in parallel.
The Rules Engine can also route messages to AWS endpoints including AWS Lambda, Amazon Kinesis, Amazon S3, Amazon Machine Learning, Amazon DynamoDB, Amazon CloudWatch, and Amazon Elasticsearch Service with built-in Kibana integration. External endpoints can be reached using AWS Lambda, Amazon Kinesis, and Amazon Simple Notification Service (SNS).
Users can author rules within the management console or write rules using a SQL-like syntax. Rules can be authored to behave differently depending upon the content of the message. For example, if a temperature reading exceeds a certain threshold it could trigger a rule to transmit data to AWS Lambda. Rules can also be authored to take into account other data in the cloud, such as data from other devices.
The Rules Engine provides dozens of available functions that can be used to transform your data, and it’s possible to create infinitely more via AWS Lambda. For example, if dealing with a range of values you could take the average of incoming numbers. Rules can also trigger the execution of Java, Node.js or Python code in AWS Lambda, giving you maximum flexibility and power to process device data.
AWS also revealed that developers must build an app that collects and processes sensor data to solve a particular user need, such as ordering fresh groceries before running out or replacing printer cartridges. The app must use AWS IoT, or Amazon Kinesis, or both to collect and process the data, and take actions in real-time.
The rewards for the winning submissions include a total prize pool of $10,000, an Amazon Echo and AWS credits. Developers will also have the opportunity to meet with AWS product team leaders and have the winning submission promoted by AWS.