用于虚拟下游设备的 Azure IoT Edge 模块标识转换

Posted

技术标签:

【中文标题】用于虚拟下游设备的 Azure IoT Edge 模块标识转换【英文标题】:Azure IoT Edge Module Identity Translation for virtual Downstream Devices 【发布时间】:2020-06-30 09:52:31 【问题描述】:

我有以下设置:

多个 modbus 传感器 1 网关通过 ModbusTCP 连接到这些传感器。在这个网关上,一个 Azure IoT Edge 模块正在运行(使用 NodeJS SDK),它读取每个连接传感器的所有值 用于设备管理的 Azure IoT Central

在 IoT Central 中,我想用一个单独的设备模板来表示每个 modbus 传感器。这样,我可以为每个传感器配置唯一的仪表板。然后应将这些传感器设备模板配置为网关设备模板的子设备。因此,网关需要一个设备模板,每个 modbus 传感器需要一个唯一的设备模板。这样,我可以为多个网关配置不同的传感器设置,而无需为每个网关创建新的设备模板(我只需要为每个网关配置不同数量的子设备)。

网关上运行的 Azure IoT Edge modbus 模块随后应从每个连接的传感器读取所有值,并将它们以传感器的名称发送到 IoT Central 实例,因此看起来传感器已发送此消息。但是,我不确定如何在我的 Azure IoT Edge 模块中实现此行为。

文档指出可以实现此行为 (IoT Edge gateway device connected to downstream devices with identity provided by the IoT Edge gateway),但是我找不到任何有关如何实现此行为的文档。我希望有人可以提供帮助。

【问题讨论】:

【参考方案1】:

简短的回答是:支持该场景的 Azure IoT 堆栈中没有本机支持。您链接到的文档已经有一段时间了under discussion,并且已经创建了feature request。但这并不意味着这是不可能的,但它涉及一些您的用例可能无法接受的解决方法。

向传感器提供身份的一种方法是为 IoT Central 中的每个传感器创建一个设备,并将它们的连接信息传递给您需要构建的模块的模块孪生。该模块将接收传感器值,确定要使用的连接信息并将遥测数据直接发送到 IoT Central(因此不通过 Edge 运行时)。

更新: Microsoft 创建了一个sample module,展示了如何提供身份转换的基本实现。除此之外,运行时还没有原生支持。

【讨论】:

嗨@Matthijis 我们对此有任何更新吗?我们也在尝试实现与上述相同的场景。我们希望通过 Edge 运行时来实现。 我们正在寻求实现一个类似的场景,我们希望 IoT Edge 网关设备连接到标识为 link 的下游设备。我在文档中找到了叶设备link 的示例,但没有找到网关设备的示例。 我用指向示例存储库的链接更新了我的答案(在底部)。但还没有官方支持! 从这个示例代码中,我们了解到这适用于 IoT 中心,我们不确定需要如何修改此示例以使其适用于 IoT 中心。因为如以下代码中所述,它使用 IoThub 连接字符串,但这不适用于 IoT Central。请指导我们如何将这个身份转换用于 IoT Central github.com/Azure-Samples/… 您能在Microsoft Q&A site 上提问吗?对于 *** 所涵盖的内容,我们正在偏离主题。您可以使用正确的 Azure IoT 标签标记它并标记我@matthijsvdveer

以上是关于用于虚拟下游设备的 Azure IoT Edge 模块标识转换的主要内容,如果未能解决你的问题,请参考以下文章

IoT 中心到 Azure Edge

部署后设备未报告 IoT Edge 上的 Azure 流分析模块

使用Harbor+Auzre IOT Edge构建智能边界

Windows主机上运行Azure IoT Edge的推荐方法

Windows 上的边缘计算 Azure IoT Edge for Iinux on Windows

Azure IOT PnP 数字孪生 API/SDK 用于检索设备/孪生的属性、命令和遥测定义