An Azure service that is used to deploy cloud workloads to run on internet of things (IoT) edge devices via standard containers.
In a transparent gateway topology, the IoT Edge device (gateway) only forwards traffic between each device and IoT Hub. It does not natively provide direct module-to-child-device messaging over the local network.
Key points for the current behavior:
- Transparent gateway message flow
- Downstream/child devices connect to the gateway’s edgeHub using MQTT or AMQP, but all messages are logically between the child device and IoT Hub.
- Capabilities supported for a child IoT device behind a transparent gateway include:
- Device-to-cloud (D2C) messages
- Cloud-to-device (C2D) messages
- Direct methods
- Device twins
- File upload is not supported for child IoT devices behind a gateway.
- There is no built-in path for an Edge module to send messages directly to a child device as if it were a local broker. To reach the child device, the module must use IoT Hub primitives (for example, invoke a direct method or send a C2D message via IoT Hub), which are then routed through the gateway.
- Why the child device is not receiving data from the Edge module
- If the Edge module is sending messages to edgeHub expecting them to be delivered directly to the child device (for example, via local topic addressing), this is not supported by the transparent gateway pattern.
- Instead, the module should:
- Send messages to IoT Hub targeting the child device (for example, C2D messages or direct methods), and
- Ensure the child device SDK is listening for C2D messages or direct method calls.
- The gateway’s role is to proxy authentication and transport; it does not automatically translate module outputs into child-device inputs.
- Offline behavior and child device capabilities
- After the IoT Edge gateway has connected to IoT Hub at least once, it can operate offline for extended periods. Downstream (child) devices can also continue working when the gateway has intermittent or no internet connectivity.
- In offline scenarios:
- The gateway persists messages and twin updates that cannot be delivered to IoT Hub.
- Device-to-cloud messages from child devices can continue to be sent to the gateway; they are stored and forwarded when connectivity returns.
- However, C2D messages and direct methods originate from IoT Hub. When the gateway is offline from IoT Hub, new C2D messages or direct method invocations cannot be delivered to the child device because there is no cloud connection to source them.
- The transparent gateway pattern does not define a direct, cloud-independent channel from Edge modules to child devices. Any interaction that depends on IoT Hub (C2D, direct methods, twin updates) will be limited when the gateway is disconnected from IoT Hub.
- Practical guidance
- For communication from an Edge module to a child device:
- Use IoT Hub C2D messages or direct methods, not a local-only path.
- Ensure the child device is registered as a child of the gateway in IoT Hub and is connected to the gateway using MQTT/AMQP with the correct hostname and ports.
- For offline scenarios:
- Design the solution so that child devices can operate autonomously when the gateway is offline (for example, local logic, buffering of telemetry).
- Treat module-to-child-device interactions as cloud-mediated; they will not function fully when the gateway cannot reach IoT Hub.
- For communication from an Edge module to a child device:
References:
- How to use an IoT Edge device as a gateway
- Understand extended offline capabilities for IoT Edge devices, modules, and child devices
- How to connect devices through an IoT Edge transparent gateway
- Properties of the IoT Edge agent and IoT Edge hub module twins
- Connect a downstream device to an Azure IoT Edge gateway