How works sending data from coordinator to an end device when sleeping?

Good morning,

I’m working with XBee modules as coordinator, and I’m trying to send message to several commercial end devices (door/window sensor and PIR sensor from Develco and Cleode manufacturers).

When starting the end devices, they respond for more or less 30 sec and after that they go to sleep mode. When in sleeping mode, I’ve read that the coordinator keeps the mesages until the end devices awakes and sends a poll request, but when I send an Explicit Addressing Frame with the API (0x11), I receive a Tx status of “address not found” few seconds after.

Someone knows how to proplerly send messages to a sleep end device?
Thank you for your time and best regards.

What product and firmware are you working with?

What is your SP and ST time frame on both the Coordinator and End device? The sleep time should be the same on both modules.

1 Like

Hi mvut,

I’m working with the ZigBee Mesh Kit, the firmware I think is updated to the latest version, 405F right now.

The SP value is 0x7D0 and the SN value is 30, which, if I understood it well, means an expected sleep time of 16 minutes. The ST time in the end device I don’t know, but the datasheet says that it is 15 minutes. This is the datasheet of the device:

Reading the XBee RF manual, I’ve understood that the Child Poll Timeout (3SNSP) must be higher than the sleeping time of the device, is that right?

That is correct.

This is a Zigbee home automation device. You are going to need to use API mode with Explicit frames and issues ZDO commands in order to talk to it. May I suggest you look at doing a ZDO active end point query?

I already have sent the ZDO messages to know the relevant information of the device. It has several revelant endpoints: EP 22,28 and 29, with the Occupancy Sensing cluster (0x406); EP 23, with IAS Zone (0x5000) and poll control (0x0020) clusters; EP 26, with Temperature Measurement cluster (0x402). There are more clusters but are not relevant for me.

The thing is, during the first 30 sec after the device switch on, it answer my queries about the occupancy sensing status, for example. Once the device has joined the network, it starts scanning for a Time server, Poll control client, OccupancySensor client and an IAS Zone client. But after that it stops answering and I have to wait 15 minutes until it starts asking for the time server and the rest again.

I thought that configuring SN and SP parameters, the coordinator will buffer the query I send until the device wakes up again, but it sends the “address not found” tx status after a few seconds of sending it.

That’s why I want to know if there is any possibility of wake up a device during the sleeping mode. I’ve read that the end devices send poll requests to see if there is any data pending on the coordinator, but I can’t see it with the XCTU because is RF data. I’ve thought that maybe the end device needs to find the time server to take the correct time to work fine, or something like that.

Thanks for your suggestions mvut.

The coordinator can only buffer data for so long. You need to hold off in your application part of that time as well before you request the data again.