Azure IoT Hub message routing simplifies IoT solution development and enables you to send messages from your devices to cloud services in an automated, scalable, and reliable manner. You can also use routing queries to apply customized filters and send only the most relevant data to the service facing endpoints.
We are announcing a new capability in message routing that allows you to query on the device twin tags and properties, in addition it allows you to query on message properties and message body, which has been previously available. Moreover, the new Azure portal experience for message routing delivers simpler navigation between routes and endpoints making it an even better experience.
IoT solutions involve sending large amounts of device telemetry data that can rapidly become overwhelming. The new message routing capabilities in IoT Hub make it even more powerful and easier to set up automatic routes for messages from devices, implementing advanced filtering and sending huge amounts of data in real time. For example, if you are developing a connected factory solution, where you want to send data based on different device types such as motors and chillers to different services for computation of utilization and failure rates. You can utilize the device twin tags and properties to identify the device type and create customized routes to different endpoints. This helps send only the most relevant data, reduces filtering, and post-processing at the next service.
IoT Hub message routing enables customers to send device telemetry messages, device lifecycle events, and device twin changes to Azure Blob Storage, Event Hubs, Service Bus Queues, and Service Bus Topics. IoT Hub defines a common format for all device-to-cloud messaging for interoperability across protocols. System properties are added for all users and identify the content of the message. Users can also selectively add application properties to the message.
Here is how it works:
A query on message system properties needs to be prefixed with the “$” symbol. Queries on application properties are accessed with their name without the “$” symbol. A query on message body needs to be prefixed with the “$body”. Similarly, a query on device twin needs to be prefixed with the “$twin”. Your query expression can combine twin tag or property references with body references, message system properties, and message application properties references. If the message body is not JSON, Message Routing can still route the message but queries are limited to message properties and device twin. To view query samples and learn more see routing query syntax.
This capability is available in all regions IoT Hub is in. We are excited for you to try this capability and build more streamlined IoT solutions for your business. Try this tutorial to get started.
We would love to hear more about your experiences with the preview and get your feedback! Are there other capabilities in IoT Hub Message Routing that you would like to see? Please continue to submit your suggestions through the Azure IoT User Voice forum.