title | description | author | ms.service | services | ms.topic | ms.date | ms.author |
---|---|---|---|---|---|---|---|
Azure IoT Hub device-to-cloud options | Microsoft Docs |
Developer guide - guidance on when to use device-to-cloud messages, reported properties, or file upload for cloud-to-device communications. |
fsautomata |
iot-hub |
iot-hub |
conceptual |
01/29/2018 |
elioda |
When sending information from the device app to the solution back end, IoT Hub exposes three options:
-
Device-to-cloud messages for time series telemetry and alerts.
-
Device twin's reported properties for reporting device state information such as available capabilities, conditions, or the state of long-running workflows. For example, configuration and software updates.
-
File uploads for media files and large telemetry batches uploaded by intermittently connected devices or compressed to save bandwidth.
[!INCLUDE iot-hub-basic]
Here is a detailed comparison of the various device-to-cloud communication options.
Device-to-cloud messages | Device twin's reported properties | File uploads | |
---|---|---|---|
Scenario | Telemetry time series and alerts. For example, 256-KB sensor data batches sent every 5 minutes. | Available capabilities and conditions. For example, the current device connectivity mode such as cellular or WiFi. Synchronizing long-running workflows, such as configuration and software updates. | Media files. Large (typically compressed) telemetry batches. |
Storage and retrieval | Temporarily stored by IoT Hub, up to 7 days. Only sequential reading. | Stored by IoT Hub in the device twin. Retrievable using the IoT Hub query language. | Stored in user-provided Azure Storage account. |
Size | Up to 256-KB messages. | Maximum reported properties size is 8 KB. | Maximum file size supported by Azure Blob Storage. |
Frequency | High. For more information, see IoT Hub limits. | Medium. For more information, see IoT Hub limits. | Low. For more information, see IoT Hub limits. |
Protocol | Available on all protocols. | Available using MQTT or AMQP. | Available when using any protocol, but requires HTTPS on the device. |
An application may need to send information both as a telemetry time series or alert and make it available in the device twin. In this scenario, you can choose one of the following options:
- The device app sends a device-to-cloud message and reports a property change.
- The solution back end can store the information in the device twin's tags when it receives the message.
Since device-to-cloud messages enable a much higher throughput than device twin updates, it is sometimes desirable to avoid updating the device twin for every device-to-cloud message.