More recent 4G devices for IOT applications such as Category M (aka CAT M or LTE M) and Narrowband IOT (NB IOT) devices in the market are more power efficient for IOT applications. The reduction in consumption of battery power is enabled through the ability for such devices to periodically enter a deep sleep mode for extended durations in which it is not possible to reach out (e.g., from an application server) to the devices for packet data, or SMS communications. Note, however, that such devices can at any time initiate such communication from their end to the application server. This behavior is very useful for many IOT applications where an enterprise IOT application only needs to read data from a device periodically (e.g., once a month electricity meter readings from homes) while communication initiated by a device on an exception basis (e.g., a smoke alarm triggered by a detector in a home) is always possible. For any server-based application, it becomes evident that knowledge of when the device becomes reachable or unreachable for communications enables an application to be programmed more intelligently. For example, the enterprise application can issue a command to the device when it receives a notification indicating device is reachable.
The Device Reachability API allows an enterprise application two ways of interacting with deep-sleep-capable devices:
The Device Reachability API also allows an application to be notified in similar modes when the device become Disconnected (i.e., unavailable to communicate) from the network for Data or SMS communications (or both).
4G CAT M/NB IOT devices compliant with 3GPP LTE standards can conserve battery by limiting the power consumption of the device to a very small fraction of its normal power consumption when not doing any form of data transmission (SMS, IP Data or Non-IP Data Delivery). Effectively the device “sleeps” for a set duration when not actively exchanging data and wakes up periodically to listen for pages from the network (The network pages the device when there is data waiting to be sent to the device). If there is data waiting to be sent to the device, the device responds to the page and becomes active (awake) and receives (and sends) data. If there is no page from the network, the device goes back to sleep after staying active (but idle) for some minimum duration. On the other hand, if the device ever wishes to transmit data to the network at any time, it can wake itself up from sleep, become active and perform the data transfer, after which it goes back to sleep. The challenge for the enterprise application (effectively on the network side) is that it will not know when a specific device (and there could be millions of such IOT devices deployed) wakes up so it can be paged. The Device Reachability API solves this issue by providing real time notifications to the application when a devices wakes up or even when it disconnects due to going to sleep.
CAT M/NB IOT devices have two different sleep modes: PSM and eDRX. In each of these modes, the device cycles periodically through the sleep and wake up states, the duration of time device sleeps and stays awake is determined by device configurable settings. Currently, customers must work with the device manufacturers to select the sleep mode and set the sleep and stay awake durations when the device operates in PSM mode.