在Azure中将数据从事件MQTT端点同步到设备Twin

时间:2017-10-16 15:33:22

标签: azure azure-iot-hub azure-iot-sdk

有没有什么方法可以在设备MQTT事件和Device Twin数据之间自动同步数据?

对于Azure IOT中心中的给定设备,有一个mqtt事件端点和一个与之关联的设备双端点。

我尝试通过设备的事件MQTT端点将MQTT事件数据发送到特定设备:设备//消息/事件/并且它成功了。我能够在设备资源管理器中看到传入的数据。

我遇到的问题是,当我们通过设备的事件mqtt端点向设备发送一些数据时,这些数据不会自动同步到相应设备的双胞胎中。我认为它应该自动发生。在azure中,我们必须手动(以编程方式)对通过设备的事件端点接收的每个事件数据执行双数据推送。

这可以通过将mqtt数据推送到设备双端点来完成:$ iothub / twin / PATCH / properties / reported /?$ rid = ID

无论如何我们可以自动完成吗? - means会自动将事件mqtt流中的数据同步到Device Twin吗?

1 个答案:

答案 0 :(得分:1)

Azure IoT Hub的主要关注点是将设备遥测数据实时摄取到Azure物联网流管道中。

除此之外,每个设备都能够将其状态保存在Azure存储中,称为设备双胞胎,例如json格式的文档。设备twin内置支持在现代事件驱动的分布式架构中同步设备和后端云之间的状态。

Reference - IoT Hub quotas and throttling中描述了上述两种通信(例如设备到云和设备孪生)之间的差异。

根据此文档,您可以看到设备twin用于设备状态的非频繁持久性,例如:设备固件版本,某些设备配置,警报阈值等。

换句话说,设备twin不是设计用于在云后端存储实时设备遥测数据。在物联网中,所有来自设备的遥测数据(物)都会进入流管道进行实时分析等。

但是,当物理遥测数据及其设备孪生更改可以实时存储在Azure Blob存储中时,Azure IoT中心可以帮助您完成方案,请参阅此功能here 。您可以使用Azure功能和/或流作业来分析,查询等业务逻辑的blob。