Device Wakeup Trigger
Some devices sleep for longer periods to conserve energy. To be able to communicate with them in an instance if required, let them listen for trigger messages on a secondary low-power communication channel. Programm the device to wake up and reconnect when it receives such a message.
Update Trigger, Device Triggering
You have a Constrained Device or Semi-Constrained Device that is a Lifetime Energy-Limited Device or Period Energy-Limited Device and operates in a Normally-Sleeping Device mode. You have a backend server where the device is registered, i.e. its identity and other metadata is known to the server. From time to time you have a situation where you want to immediately contact the sleeping device. For example, this could be the case if a critical security fix has to be applied, if you need current sensor values or send commands for one-off time critical situations, or if the device has been lost or stolen and you want to use Remote Lock And Wipe immediately.
Some devices might go into a sleep mode to conserve energy and only wake up from time to time to reconnect to the network. During sleep they are not reachable on their regular communication channels. In some instances other components might have to contact sleeping device immediately.
Irregularity: You need to establish a connection at non-regular times.
Predictability: You do not know the point in time when you need to connect to the device in advance.
Timeliness: The device might reconnect on its own, but you cannot wait that long.
Power Consumption: The device has to maintain low power consumption in terms of beeing a Normally-Sleeping Device to save energy.
Implement a mechanism that allows the server to send a trigger message to the device via a low energy communication channel. Have the device listening for these triggering messages and immediately establish communication with the server when it receives such a message.
- L. Reinfurt, U. Breitenbücher, M. Falkenthal, F. Leymann, and A. Riegg, “Internet of Things Patterns,” in Proceedings of the 21st European Conference on Pattern Languages of Programs (EuroPLoP), ACM, 2016. Available at http://dl.acm.org/citation.cfm?id=3011789