我能够通过 Mqtt 连接到 IOT Cental,并更新从设备到服务器的只读属性,以及从服务器到设备的可写属性。
我想知道是否可以将可写属性从设备更新到服务器,以及有效负载的外观如何?
我能够通过 Mqtt 连接到 IOT Cental,并更新从设备到服务器的只读属性,以及从服务器到设备的可写属性。
我想知道是否可以将可写属性从设备更新到服务器,以及有效负载的外观如何?
IoT Plug and Play 设备开发者指南详细描述了如何处理设备模型中的遥测、属性和命令。最简单的情况是您的模型只有一个默认组件。
以下示例显示了按设备更新可写属性的主要步骤。
使用此模板及其视图模式的设备abba:
使用我的Azure IoT Hub Tester模拟设备abba:
请注意,这些版本是经过几个测试属性然后重置为 null 的。
按设备更新两个属性,例如Reported(只读属性)和Desired(可写属性):
在设备端显示设备孪生:
IoT Central 应用程序视图面板:
正如您可以看到上面的屏幕片段,只读属性立即显示值,但可写属性显示待处理的提示文本。此时,Desired属性正在等待接受该值。基本上有两种制作方法,例如:
一个。输入从原始数据中获取的值或
湾。使用 REST PUT 请求调用,请参阅以下屏幕片段:
IoT Central 应用程序视图面板(更新):
请注意,当该值被接受时,必须手动刷新页面。
我建议使用数据导出功能订阅devicePropertyDesiredChange主题,以接收有关更改的通知,请参阅服务总线队列中收到的消息示例:
更新:
在您的设备模型中使用多个组件的情况下(至少一个在默认组件之后),以下示例显示如何按设备更新组件中的可写属性:
使用组件abc创建新版本:
新版本的模式视图:
模拟设备abba2发送了组件abc的可写属性Desired的更新:
IoT Central 应用程序显示待处理状态:
云后端服务在队列中收到一条通知消息:
云后端服务将为此可写属性发送一个接受的请求,请注意,url 地址显示特定组件的路径:
IoT Central 应用程序在 ComponentA的视图模式中显示一个新接受的Desired值,例如abc:
就这样。使用上述步骤,可以从设备端更新在多个组件中声明的任何只读和/或可写属性。请注意,默认组件之外的遥测数据处理方式不同。