0

我能够通过 Mqtt 连接到 IOT Cental,并更新从设备到服务器的只读属性,以及从服务器到设备的可写属性。

我想知道是否可以将可写属性从设备更新到服务器,以及有效负载的外观如何?

在此处输入图像描述

4

1 回答 1

1

IoT Plug and Play 设备开发者指南详细描述了如何处理设备模型中的遥测、属性和命令。最简单的情况是您的模型只有一个默认组件。

以下示例显示了按设备更新可写属性的主要步骤。

  1. 使用默认组件 创建设备模板abba :在此处输入图像描述

  2. 使用此模板及其视图模式的设备abba

    在此处输入图像描述

  3. 使用我的Azure IoT Hub Tester模拟设备abba

    在此处输入图像描述

    请注意,这些版本是经过几个测试属性然后重置为 null 的。

  4. 按设备更新两个属性,例如Reported(只读属性)和Desired(可写属性):

    在此处输入图像描述

  5. 在设备端显示设备孪生:

    在此处输入图像描述

  6. IoT Central 应用程序视图面板:

    在此处输入图像描述

    正如您可以看到上面的屏幕片段,只读属性立即显示值,但可写属性显示待处理的提示文本。此时,Desired属性正在等待接受该值。基本上有两种制作方法,例如:

    一个。输入从原始数据中获取的值或

    湾。使用 REST PUT 请求调用,请参阅以下屏幕片段:

    在此处输入图像描述

  7. IoT Central 应用程序视图面板(更新):

    在此处输入图像描述

    请注意,当该值被接受时,必须手动刷新页面。

我建议使用数据导出功能订阅devicePropertyDesiredChange主题,以接收有关更改的通知,请参阅服务总线队列中收到的消息示例:

在此处输入图像描述

更新:

在您的设备模型中使用多个组件的情况下(至少一个在默认组件之后),以下示例显示如何按设备更新组件中的可写属性:

  1. 使用组件abc创建新版本:

    在此处输入图像描述

  2. 新版本的模式视图:

    在此处输入图像描述

  3. 模拟设备abba2发送了组件abc的可写属性Desired的更新:

    在此处输入图像描述

  4. IoT Central 应用程序显示待处理状态:

    在此处输入图像描述

  5. 云后端服务在队列中收到一条通知消息:

    在此处输入图像描述

  6. 云后端服务将为此可写属性发送一个接受的请求,请注意,url 地址显示特定组件的路径:

    在此处输入图像描述

  7. IoT Central 应用程序在 ComponentA的视图模式中显示一个新接受的Desired值,例如abc

    在此处输入图像描述

就这样。使用上述步骤,可以从设备端更新在多个组件中声明的任何只读和/或可写属性。请注意,默认组件之外的遥测数据处理方式不同。

于 2020-11-29T17:41:14.113 回答