【问题标题】:Azure IOT edge Identity Translation Gateway : UnderstandingAzure IOT 边缘身份转换网关:了解
【发布时间】:2018-02-14 11:28:48
【问题描述】:

我正在尝试创建一个身份转换网关,如 here 中所述。

我还阅读了很多关于他们的 IoT 解决方案的 Microsoft 文档。

我有:

  1. 叶设备 (A) 通过自定义协议连接到我的网关,而不直接连接到集线器。
  2. 网关设备 (B) 作为 IoT Edge 设备连接到 A 和 物联网中心。
  3. 我的 IoT 中心。

据我所知:

  • 我的 IoT Edge 必须以这种方式在 IoT 中心注册每个设备 一个设备将出现在我的集线器上,我们将能够发送 直接通过其 ID 发送消息。
  • 我可以通过路由在网关上发送消息并收听它们 /devices/{deviceId}/messages

例如,假设我有:

  • ID 为“Edge1”的 IoTEdge 设备
  • ID 为“Edge2”的 IoTEdge 设备
  • ID 为“DeviceA”的设备连接到“Edge1”
  • ID 为“DeviceB”的设备连接到“Edge2”

由于集线器和叶设备之间没有连接,我不明白的是,当我使用“/devices/DeviceA/messages”向“DeviceA”发送消息时,如何,集线器将知道哪个网关地址以及如何从我的网关监听它。简而言之,进行(非)多路复用过程

  • 有没有一种方法可以使用我看不到的 IoT 中心自动处理它?连接字符串中的 GatewayHostName 可以解决问题吗?
  • 我必须手动处理它,而是将我的所有消息发送到我的网关 ID(即设备/Edge1/消息)并在我的消息正文中发送最终的目标设备 ID 吗?如果是,我不明白在 Hub 上注册每个设备的好处
  • 我必须在网关内监听每个连接的设备路由(即 /devices/DeviceA/messages for Edge1) ?

感谢您的帮助。

【问题讨论】:

    标签: iot azure-iot-hub azure-iot-edge


    【解决方案1】:

    根据我对您的场景的了解,您正尝试将消息从云端发送到边缘设备上运行的模块,然后让模块将消息发送到下游设备。 Edge 设备和模块不支持 C2D(云到设备)消息。您可以使用以下包https://www.nuget.org/packages/Microsoft.Azure.Devices/1.16.0-preview-001中ServiceClient提供的C2D方法并调用模块上的方法。然后模块可以将相关数据传递给其下游设备。

    【讨论】:

    • 所以,如果我理解的话,我将在我的边缘设备模块上编写一个方法,将数据传递给它的下游服务,由服务器调用 ServiceClient.InvokeDeviceMethodAsync(...) ? :D
    • 请在您的留言中阐明下游服务和服务器的含义。我认为您的总结是正确的,但我想确定一下。
    • 这不再正确。至少使用 iotedge 1.0.9+,您可以在边缘模块上调用直接方法 - 在 Azure 门户中或以编程方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    相关资源
    最近更新 更多