Commands for intermittently connected devices?

Geoff Bruce-Payne 1 Reputation point
2020-09-22T12:15:34.803+00:00

In certain applications, particularly for low power consumption, the device will not maintain a constant connection to IoT Hub/Central. Examples in the cellular world include using an SMS to "wake" or even send an asynchronous command, and conceptual parallels exist in satellite systems. Commands appear to assume the device is always connected on IP, while twin desired properties may not be appropriate for on-demand remote operations (e.g. "wake up").

Is there a recommended approach to enable such "push" Commands? For example an ability to generate a "pendingCommand" event from Hub/Central which could be picked up in something like EventGrid to trigger a Function App. Alternatively a kind of virtual proxy Function App that maintains device connections for all such devices within Azure, is that a scalable approach?

Azure IoT Central
Azure IoT Central
An Azure hosted internet of things (IoT) application platform.
349 questions
Azure IoT Hub
Azure IoT Hub
An Azure service that enables bidirectional communication between internet of things (IoT) devices and applications.
1,127 questions
{count} votes

1 answer

Sort by: Most helpful
  1. AshokPeddakotla-MSFT 27,726 Reputation points
    2020-09-23T09:31:24.053+00:00

    @Geoff Bruce-Payne Below is the response from Product Team, I hope this helps with your query.

    Wake-up via IoT Hub is not possible as you will need an additional channel for activating the device (client) to connect via TCP to IoT Hub. SMS are still used, while definitely not a very secure way. Ripple control is also a way used by utilities to activate a more powerful communication channel. Alternatively the device could automatically connect based on a local event or regularly via timer.
    When a device is connected, syncing the Device Twin's desired properties is a good way for "standing instructions" or you utilize the "device connect" event (EventGrid) to trigger a Azure Function with a method call. Few customers also use the "device connect" event to en-queue C2D messages due to the missing support of methods or Device Twins in their devices.

    Do let us know if you have any further queries.

    If an answer is helpful, please "Accept answer" or "Up-Vote" for the same which might be beneficial to other community members reading this thread.