This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

[Zigbee] the timeout behavior with ZR and ZC

Hello, 

Our customer want to know how to know  the ZR and ZC is lost for a sleepy end device.

I check with the document.

For ZC ,

i fund ZB_NLME_STATUS_INDICATION event could guide me that condition of parent link.

But how to change the time out period ? any specific number for that.

For ZR, i do not find any specific event could present the router is not able to work,

Did the ZB_NWK_SIGNAL_NO_ACTIVE_LINKS_LEFT event also work at end device??

I saw the behavior light blub project is correct. Turn off ZC and the light blub would warn the link loss.

How end device know the router is lost.

One more question is about  ZB_BDB_SIGNAL_DEVICE_REBOOT signal. Any more description when the zboss stack poll this event.

When i turn of ZR, ZED would keep to send data request for 30 second and then get this event to try rejoining the network.

How to adjust this time-out parameter for rejoining network?

Thanks

BR

Brian  

 

  • Hi Brian,

    The sleepy end device regularly polls for data by sending a 'data request' to its parent device, which the parent device will respond to with an APS ack. If the end device doesn't receive this APS ack, they will know that the parent is unreachable.

    The signal ZB_NWK_SIGNAL_NO_ACTIVE_LINKS_LEFT is triggered when a router has lost its connection to the network, so this will only be triggered on a router, not an end device.

    ZB_BDB_SIGNAL_DEVICE_REBOOT is used when the device has rebooted and is trying to rejoin the network using network parameters stored in NVRAM. This means that the device is able to rejoin the network without being commissioned, as it has already been commissioned before and has the necessary network information stored in NVRAM.

    For the end device you can use the define ZB_DEV_REJOIN_TIMEOUT_MS, which is the timeout after which the end device stops sending beacons if it can't join or rejoin a network. You also have REJOIN_INTERVAL_MAX_S, which is the maximum interval between join or rejoin attempts. These are both found in zigbee_helpers.c. You also have ZB_NWK_REJOIN_TIMEOUT, which is defines as the rejoin timeout length, and can be found in zb_config_common.h.

    Best regards,

    Marte

Related