Azure IoT 套件远程监视预配置解决方案演示了管理设备元数据的方法。 本文概述了此解决方案所采用的方法,使您能够理解以下内容:
- 解决方案存储什么设备元数据?
- 解决方案如何管理设备元数据。
上下文
远程监视预配置解决方案使用 Azure IoT 中心 使设备能够将数据发送到云。 该解决方案将有关设备的信息存储在三个不同的位置:
| 位置 | 存储的信息 | 执行 |
|---|---|---|
| 标识注册表 | 设备 ID、身份验证密钥、已启用状态 | 内置于物联网中心 |
| 设备孪生 | 元数据:报告的属性、所需属性、标记 | 内置于 IoT 中心 |
| Cosmos DB | 命令和方法历史记录 | 定制解决方案 |
IoT 中心包括 设备标识注册表 ,用于管理对 IoT 中心的访问权限,并使用 设备孪生来管理设备 元数据。 还有一个远程监视解决方案特定的 设备注册表 ,用于存储命令和方法历史记录。 远程监视解决方案使用 Cosmos DB 数据库实现命令和方法历史记录的自定义存储。
注释
远程监视预配置解决方案使设备标识注册表与 Cosmos DB 数据库中的信息保持同步。 两者都使用相同的设备 ID 来唯一标识连接到 IoT 中心的每个设备。
设备元数据
IoT 中心为每个连接到远程监视解决方案的模拟和物理设备维护 设备孪生 。 解决方案使用设备孪生来管理与设备关联的元数据。 设备孪生是由 IoT 中心维护的 JSON 文档,解决方案使用 IoT 中心 API 与设备孪生进行交互。
设备孪生存储三种类型的元数据:
- 报告的属性 由设备发送到 IoT 中心。 在远程监视解决方案中,模拟设备在启动时发送报告的属性,并响应 更改设备状态 命令和方法。 可以在 解决方案门户中的“设备”列表 和设备 详细信息 中查看报告的属性。 报告的属性是只读的。
- 所需属性 由设备从 IoT 中心检索。 设备负责在设备上进行任何必要的配置更改。 设备还负责将更改作为报告属性报告回集线器。 您可以通过解决方案门户设置所需的属性值。
- 标记 仅存在于设备孪生中,并且永远不会与设备同步。 可以在解决方案门户中设置标记值,并在筛选设备列表时使用它们。 该解决方案还使用标记来标识在解决方案门户中为设备显示的图标。
来自模拟设备的示例报告属性包括制造商、型号、纬度和经度。 模拟设备还会将受支持的方法列表作为报告属性返回。
注释
模拟设备代码仅使用 Desired.Config.TemperatureMeanValue 和 Desired.Config.TelemetryInterval 所需属性来更新发送回 IoT 中心的报告属性。 将忽略所有其他所需属性更改请求。
存储在设备注册表 Cosmos DB 数据库中的设备信息元数据 JSON 文档具有以下结构:
{
"DeviceProperties": {
"DeviceID": "deviceid1",
"HubEnabledState": null,
"CreatedTime": "2016-04-25T23:54:01.313802Z",
"DeviceState": "normal",
"UpdatedTime": null
},
"SystemProperties": {
"ICCID": null
},
"Commands": [],
"CommandHistory": [],
"IsSimulatedDevice": false,
"id": "fe81a81c-bcbc-4970-81f4-7f12f2d8bda8"
}
注释
设备信息还可以包含元数据,用于描述设备发送到 IoT 中心的遥测数据。 远程监视解决方案使用此遥测元数据自定义仪表板显示 动态遥测的方式。
生命周期
首次在解决方案门户中创建设备时,解决方案会在 Cosmos DB 数据库中创建一个条目来存储命令和方法历史记录。 此时,解决方案还会在设备标识注册表中为设备创建一个条目,这会生成设备用于向 IoT 中心进行身份验证的密钥。 它还创建设备孪生。
当设备首次连接到解决方案时,它会发送报告的属性和设备信息消息。 报告属性值会自动保存在设备孪生中。 报告的属性包括设备制造商、型号、序列号和受支持的方法列表。 设备信息消息包括设备支持的命令列表,包括有关任何命令参数的信息。 当解决方案收到此消息时,它会更新 Cosmos DB 数据库中的设备信息。
在解决方案门户中查看和编辑设备信息
解决方案门户中的设备列表默认以列的形式显示以下设备属性: Status、 DeviceId、 Manufacturer、 Model Number、 Serial Number、 Firmware、 Platform、 Processor 和 Installed RAM。 可以通过单击 “列编辑器”来自定义列。 设备属性 纬度 和 经度 驱动仪表板上的必应地图中的位置。
在解决方案门户的 “设备详细信息 ”窗格中,可以编辑所需的属性和标记(报告的属性是只读的)。
可以使用解决方案门户从解决方案中删除设备。 删除设备时,解决方案将从标识注册表中删除设备条目,然后删除设备孪生。 该解决方案还会从 Cosmos DB 数据库中删除与设备相关的信息。 在删除设备之前,必须禁用该设备。
设备信息消息处理
设备发送的设备信息消息不同于遥测消息。 设备信息消息包括设备可以响应的命令以及任何命令历史记录。 IoT 中心本身不知道设备信息消息中包含的元数据,并且以处理任何设备到云消息的方式处理消息。 在远程监视解决方案中, Azure 流分析 (ASA)作业从 IoT 中心读取消息。 DeviceInfo 流分析作业筛选包含“ObjectType”:“DeviceInfo”的消息,并将其转发到 Web 作业中运行的 EventProcessorHost 主机实例。 EventProcessorHost 实例中的逻辑使用设备 ID 查找特定设备的 Cosmos DB 记录并更新记录。
注释
设备信息消息是标准设备到云的消息。 该解决方案使用 ASA 查询区分设备信息消息和遥测消息。
后续步骤
现在,你已了解如何自定义预配置解决方案,接下来可以探索 IoT 套件预配置解决方案的一些其他特性和功能: