February 27, 2018
Three Zigbee® wireless protocols — Zigbee 3.0, Zigbee PRO and Green Power — recently earned the SEAD Connected Efficiency Award for 2017, because of their inherent energy efficiency. In particular, Zigbee 3.0 provides application-layer functionality that is focused on energy management, including support for power configuration, polling control, device aging management, battery monitoring and network traffic reduction strategies aimed at saving energy.
Understanding the polling features in the Zigbee standard can help to
optimize the power consumption of your Internet of Things (IoT) product.
This blog post takes a closer look at the polling mechanism in Zigbee and
its use in a fire alarm sensor application.
Polling is a mechanism by which a Zigbee gateway continuously checks the status of associated end sensor devices. Low-power Zigbee sensors are called sleepy end devices (SEDs), which only “wake up” in order to send sensor-generated events. They also maintain the sensor network’s heartbeat by periodically waking up to report to the gateway.
A poll is a media access control (MAC) data request generated by an SED. A
gateway in a Zigbee network acknowledges this request by sending an ACK
(acknowledgement). The gateway may also decide to extend the polling to send
any messages stored for the SED or read out sensor events.
The Zigbee standard defines two fundamental types of polling:
SEDs use extended polling schemes like fast polling and
check-ins to send or receive messages from the gateway.
Glossary of Terms
The SED may start short polling, where it performs a high duty cycle MAC data request to retrieve messages requested by it from other end devices. In the figure below, SED1 sends a data request to SED2 via the gateway. SED1 then continuously polls the gateway to receive the response from SED2. The SED1 is now said to be in “fast poll mode,” which lasts until the expiration of the “fast poll timeout” or when the SED receives the “fast poll stop” command from the gateway.
Long polling allows an SED to periodically report to its gateway. These are low duty cycle MAC data requests. They also provide an opportunity for an SED to retrieve a message from the gateway. The gateway:
A check-in event is a very low duty cycle event generated by Zigbee’s application layer via a Zigbee Cluster Library (ZCL) transaction. During check-in, an SED can receive data from the gateway, which can normally reside longer than the defined 7.68 seconds. The gateway can then initiate fast poll mode, where it can send data until the fast poll expires (or until the gateway sends a “fast poll stop” command). The gateway can also update the poll control parameters during the check-in event. Check-in events are ideal for performing firmware updates or collecting diagnostic data from sensors. As shown in the figure below, the gateway sends a ZCL read attribute command during the fast polling phase of the check-in. The SED responds with the “ZCL read response.”
Let’s look at a real-world example using fire alarm sensors, where smart selection of polling can save lives. The technical manual for a commercial Develco smoke alarm product, the SMSZB-120, provides the following default poll control settings for its sensor:
Poll Control Attribute |
Default Poll Control Setting |
Check-in interval |
1 hour |
Long poll interval |
7.5 seconds |
Short poll interval |
1 second |
Fast poll timeout |
5 minutes |
Let’s use an example of two Zigbee-based fire alarm sensors placed in
the kitchen and the bedroom, which we’ll call SED1 and SED2. Both the
sensors are communicating to a Zigbee gateway (in this case, a smart
thermostat). SED1 detects a rapid rise in heat and smoke in the kitchen. It
sounds the alarm and updates the gateway about the situation developing in the
kitchen. Meanwhile, SED2 in the bedroom still doesn’t detect the heat or
smoke from the kitchen. How quickly can the gateway update the fire alarm in
the bedroom to sound the alarm?
When SED1 detects fire, it will instantaneously wake up and send an alarm
event to the gateway. This message will be stored for 7.68 seconds on the
gateway. The gateway can then send an update to SED2 upon receiving a long
poll data request from it. Using the default settings above for our sample
Develco fire alarm, SED2 can sound the alarm in the bedroom in less than
7.5 seconds. The gateway can ask for a status update from SED1 at every
long poll event and relay it to SED2.
The polling mechanism in Zigbee is just one component that helps Zigbee-based IoT systems save energy. Stay tuned for more posts, which will explain the battery monitoring and child aging mechanism in the Zigbee standard.
Have another topic that you would like Qorvo experts to cover? Email your suggestions to the Qorvo Blog team and it could be featured in an upcoming post. Please include your contact information in the body of the email.