使用 iothub-explorer 进行 Azure IoT 中心设备管理

端到端关系图

Note

在开始本教程之前,请确保已完成设置设备。 在设置设备教程中,你已设置 IoT 设备和 IoT 中心,并部署了一个在设备上运行的示例应用程序。 该应用程序会将收集的传感器数据发送到 IoT 中心。

iothub-explorer 是一种在主机上运行的 CLI 工具,用于管理 IoT 中心注册表中的设备标识。 它附带了可用于执行各种任务的管理选项。

管理选项 任务
直接方法 让设备执行操作,如开始或停止发送消息或重新启动设备。
孪生所需属性 让设备进入特定状态,例如将 LED 设置为绿色,或将遥测发送间隔设置为 30 分钟。
孪生报告属性 获取报告的设备状态。 例如,设备报告 LED 现在正在闪烁。
孪生标记 将设备特定的元数据存储在云中。 例如,存储在自动售货机的部署位置。
云到设备的消息 向设备发送通知。 例如,“今天很可能会下雨。 不要忘记带雨伞。”
设备孪生查询 查询所有设备孪生以检索符合任意条件的设备孪生,例如确定可供使用的设备。

有关这些选项的差异和使用指导的更详细说明,请参阅设备到云通信指南云到设备通信指南

Note

设备孪生是存储设备状态信息(元数据、配置和条件)的 JSON 文档。 IoT 中心为连接到它的每台设备保留一个设备孪生。 有关设备孪生的详细信息,请参阅设备孪生入门

学习内容

将通过结合使用 iothub-explorer 和各种管理选项来进行了解。

准备工作

使用各种管理选项运行 iothub-explorer。

需要什么

  • 已完成教程设置设备,其中涵盖以下要求:
    • 一个有效的 Azure 订阅。
    • 已在订阅中创建一个 Azure IoT 中心。
    • 一个可向 Azure IoT 中心发送消息的客户端应用程序。
  • iothub-explorer。 (安装 iothub-explorer

连接到 IoT 中心

通过运行以下命令连接到 IoT 中心:

iothub-explorer login <your IoT hub connection string>

结合使用 iothub-explorer 和直接方法

通过运行以下命令在设备应用中调用 start 方法以向 IoT 中心发送消息:

iothub-explorer device-method <your device Id> start

通过运行以下命令在设备应用中调用 stop 方法以停止向 IoT 中心发送消息:

iothub-explorer device-method <your device Id> stop

结合使用 iothub-explorer 和孪生所需的属性

通过运行以下命令将所需属性间隔设置为 3000:

iothub-explorer update-twin mydevice {\"properties\":{\"desired\":{\"interval\":3000}}}

可通过设备读取此属性。

结合使用 iothub-explorer 和孪生的报告属性

通过运行以下命令获取报告的设备属性:

iothub-explorer get-twin <your device id>

其中一个属性是 $metadata.$lastUpdated,它显示该设备上次发送或接收消息的时间。

结合使用 iothub-explorer 和孪生的标记

通过运行以下命令显示设备的标记和属性:

iothub-explorer get-twin <your device id>

通过运行以下命令向设备添加字段角色 = 温度和湿度:

iothub-explorer update-twin <your device id> {\"tags\":{\"role\":\"temperature&humidity\"}}

使用 iothub-explorer 发送云到设备的消息

运行以下命令,将“Hello World”消息发送到设备:

iothub-explorer send <device-id> "Hello World"

有关使用此命令的真实应用场景,请参阅使用 iothub-explorer 在设备与 IoT 中心之间发送和接收消息

将 iothub-explorer 用于设备孪生查询

通过运行以下命令查询角色标记 =“温度和湿度”的设备:

iothub-explorer query-twin "SELECT * FROM devices WHERE tags.role = 'temperature&humidity'"

通过运行以下命令查询除角色标记 =“温度和湿度”的设备以外的所有设备:

iothub-explorer query-twin "SELECT * FROM devices WHERE tags.role != 'temperature&humidity'"

后续步骤

现已了解如何结合使用 iothub-explorer 和各种管理选项。

若要继续了解 IoT 中心入门知识并浏览其他 IoT 方案,请参阅: