Long Polling Flex Continuous Polling Issue in Flex
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.
What is polling?
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.
Polling types in the Zigbee standard
The Zigbee standard defines two fundamental types of polling:
- Short poll
- Long poll
SEDs use extended polling schemes like fast polling and check-ins to send or receive messages from the gateway.
Glossary of Terms
- ACK: acknowledgement
- MAC: media access control
- SED: sleepy end device
- ZCL: Zigbee Cluster Library
Short polling
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
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:
- Stores this message for a period of 7.68 seconds
- Indicates it has a message for an SED by setting the data pending flag in the ACK high, as shown in the figure below
- Then sends the message to the SED as a MAC data packet
Check-in events
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."
How does polling work? An example
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.
Zigbee: Helping to improve energy efficiency
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.
Source: https://www.qorvo.com/design-hub/blog/demystifying-polling-control-in-zigbee-networks
0 Response to "Long Polling Flex Continuous Polling Issue in Flex"
Post a Comment