Azure IoT Hub device management was recently announced at //build and I’m very excited to follow up with the details as Azure IoT Hub device management is now available in preview. Our standards based device management features in Azure IoT Hub enable IoT solutions to organize, query, configure, and update devices in Azure based IoT solutions.
Developers can now benefit by extending their Azure IoT Hub based solutions through using the following device management features:
Device twin – The device twin is the representation of your physical device in your Azure based IoT solution. The device twin contains properties that describe the status of the device such as firmware version, battery level, and connected state. You can use tags to organize your set of device twins, which can later be found through device queries. The device twin is accessed by the existing device registry management API.
Device queries – Device queries enable you to find device twins and generate an aggregate view of device twins. For example, you can query for devices that have firmware version ‘1.2’ or devices that have been tagged as being part of building 43. Your device query is structured as a JSON object that can provide a filter, projection, aggregate and list of sort expressions.
Device jobs – Device jobs enable you to run actions on devices such as firmware update, reboot, or factory reset. For example, the firmware update device job coordinates multiple devices as they download the firmware package, apply the firmware, reboot and finally reconnecting to IoT Hub using the new firmware. The device job ensures the device follows the necessary steps independent of connection state or constraints in the network used by device. On the device side, the device takes action based on simple requests and notifies the service upon completion.
These new capabilities are now available in preview as part of Azure IoT SDK. We plan to support the full breadth of languages for the Azure IoT service SDK, starting with support for C# and Node.js (through an underlying HTTP REST endpoint).
We have also expanded the open source Azure IoT device SDK to include a device management library that enables you to make your devices manageable, using the LWM2M protocol, with Azure IoT Hub. We plan to support the breadth of languages for the Azure IoT device SDK, starting with support for ANSI C. Through support for ANSI C, a large number of OS based (including Windows and Linux) and microcontroller firmware-based devices can use the client library.
Device management is also a key part of the Azure IoT Gateway SDK as IoT gateways and devices using IoT gateways can be managed through Azure IoT Hub using these features.
To learn more and get started using the device management features of Azure IoT Hub and the Azure IoT SDK, please visit the following locations:
- Azure IoT Hub device management documentation
- Device management service-side sample code on GitHub
- Device management device-side sample code on GitHub
We’re very excited to learn more about how you will use these new device management features with your devices and cloud-based IoT solution. We’ve been working with a number of developers who have provided great feedback. We are currently expanding the capabilities of Azure IoT Hub to include device groups and custom models We appreciate more of your feedback as we work on the next set of exciting device management features. Please join us on the Azure IoT Suite forum or on the Yammer IoT Advisors group.