远程监视预配置解决方案中的设备信息元数据

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.TemperatureMeanValueDesired.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 数据库中的设备信息。

在解决方案门户中查看和编辑设备信息

解决方案门户中的设备列表默认以列的形式显示以下设备属性: StatusDeviceIdManufacturerModel NumberSerial NumberFirmwarePlatformProcessorInstalled RAM。 可以通过单击 “列编辑器”来自定义列。 设备属性 纬度经度 驱动仪表板上的必应地图中的位置。

设备列表中的列编辑器

在解决方案门户的 “设备详细信息 ”窗格中,可以编辑所需的属性和标记(报告的属性是只读的)。

“设备详细信息”窗格

可以使用解决方案门户从解决方案中删除设备。 删除设备时,解决方案将从标识注册表中删除设备条目,然后删除设备孪生。 该解决方案还会从 Cosmos DB 数据库中删除与设备相关的信息。 在删除设备之前,必须禁用该设备。

删除设备

设备信息消息处理

设备发送的设备信息消息不同于遥测消息。 设备信息消息包括设备可以响应的命令以及任何命令历史记录。 IoT 中心本身不知道设备信息消息中包含的元数据,并且以处理任何设备到云消息的方式处理消息。 在远程监视解决方案中, Azure 流分析 (ASA)作业从 IoT 中心读取消息。 DeviceInfo 流分析作业筛选包含“ObjectType”:“DeviceInfo”的消息,并将其转发到 Web 作业中运行的 EventProcessorHost 主机实例。 EventProcessorHost 实例中的逻辑使用设备 ID 查找特定设备的 Cosmos DB 记录并更新记录。

注释

设备信息消息是标准设备到云的消息。 该解决方案使用 ASA 查询区分设备信息消息和遥测消息。

后续步骤

现在,你已了解如何自定义预配置解决方案,接下来可以探索 IoT 套件预配置解决方案的一些其他特性和功能: