Zigbee/Sleep, function and action/Sleep, poll, deliver
Lesson 7 of 13 · in 3D and VR

Sleep, poll, deliver

A sleepy device cannot be called, it can only ask its parent for what is waiting. This lesson fills the parent's queue and lets time pass the timeout, to show delivered, expired and overflowed as three outcomes.

Lonely BinaryUpdated 2026-10-145 min readNo board required

View it in VR

Lesson 7 of the Zigbee course opens in a VR headset, on a table in front of you, and a voice starts three seconds after you arrive. Type this short address into the browser on a headset such as Meta Quest or Apple Vision Pro, and press Enter VR. No headset? Press Start the lesson: the same lesson, full screen.

learn.lonelybinary.com/vr/zigbee/7

A device that is not listening

A battery sensor spends nearly all its time with its radio off. Nothing can be sent to it at that moment, because nothing is listening. So the network turns the problem round: the sensor does not wait to be called, it asks.

A sleepy end device wakes on its own schedule and sends its parent a data request, a poll. If the parent has something waiting, it answers with it. The parent never wakes the child, and the order is always the same: the parent holds, the child asks, the parent responds.

What the parent can keep

The parent keeps eligible messages for its sleepy children in a buffer of finite size, and keeps each one only for a limited time. A child that stops polling for long enough is also dropped from the parent's child table. The sizes and times are settings of a stack and a product. The bench uses three messages, 7.68 seconds and a poll every five seconds, and labels all three as examples.

There are three different outcomes, and the bench counts them apart:

  • Delivered: the child asked while the message was still held.
  • Expired: the message waited longer than the timeout and was dropped.
  • Overflowed: the buffer was full, so the message was turned away on arrival.

A message can reach the parent and still never reach the child.

What the poll interval costs

The interval is a trade, and neither end of it is right. A faster poll reaches the sleeper sooner and wakes the radio more often, which costs charge. A slower one saves charge and makes every message wait. It is a design variable, and not a constant of Zigbee. If it is longer than the parent's timeout, anything sent in between can expire before the child ever asks.

The next lesson looks at what a device says it can do, with endpoints and clusters: what a device can do.

Common mistakes

  • Assuming the parent keeps a message until the child wakes. It keeps a few, for a limited time. After that they are gone and nothing says so.
  • Counting every loss as one. Overflow means the parent had no room, and expiry means the child did not ask in time. They have different causes.
  • Treating the bench's numbers as Zigbee's. Three messages, 7.68 seconds and five seconds are examples. Read the product's own documentation for its settings.

Edit this page — content/fundamentals/zigbee/sleep-poll-deliver.mdx

Discuss this article

Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.

Browse Fundamentals on the forum →