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

ZIGBEE ZED never send keepalive packet.

CHIP: nRF52840

SDK: Thread and Zigbee 4.1.0

SD: s140 using multiprotocol

Hi, I have developed zigbee end device. 

The communication with the coordinator has be done. (joining network, receive, transmit cmds)

I want to know that the coordinator is alive, so I called

 

zb_set_ed_timeout(ED_AGING_TIMEOUT_10SEC);
zb_set_keepalive_timeout(ZB_MILLISECONDS_TO_BEACON_INTERVAL(1000));
zb_set_rx_on_when_idle(ZB_TRUE);
...

I checked packets with zigbee sniffer.

but, the zed doesn't send keepalive packet in joined network. 

After set "zb_set_ed_timeout", Don't you have to send keepalive packet?

Parents
  • Hi,

    The end device should send a keep alive message to their parent when you have set an end device timeout (zb_set_ed_timeout) and a keep alive timeout (zb_set_keepalive_timeout) on the end device side. Does the parent device delete the end device from the neighbor table when the device fails to send a keep alive message in your project?

    Have you tried to increase the end device timeout to see if the end device is able to send a keep alive message in time then? Your timeout should be long enough as it is, as the recommended is that the end device sends 3 keep alive messages during the end device timeout period, but it could help to try.

    Could you please share your sniffer log (as a pcap file), so I can have a look at it?

    Best regards,

    Marte

  • Hi, Thanks for the reply. 

    I find the solution to send keepalive msg using app_timer repeat mode.

    Why zigbee stack doesn't wake up itself? 

    What purpose is (zb_sleep_set_threshold) function?

    I already called "zb_sleep_set_threshold(20)" which I expected to wake up every 20 ms.

    and What is different between (zb_set_ed_timeout) and (zb_set_keepalive_timeout)?

    And I have other troubles. please visit this page.

  • Hi,

    What do you mean by "Why zigbee stack doesn't wake up itself?"?. What I wrote in my last reply is related to the end device and how it lets its parent know that it's still alive. This is something you can implement in your application yourself, and it's used in examples already in the SDK as well, if you want to look at how this is done.

    zb_sleep_set_threshold() is used to set the minimum sleep duration value. This sleep threshold is compared with how long the end device has been inactive and is used to decide whether the end device can go to sleep or not (ZB_COMMON_SIGNAL_CAN_SLEEP is generated).

    zb_set_ed_timeout is the end device timeout, and is used to specify the end device timeout period. If the parent of the end device does not receive any keep alive messages from the child during this period, the child will be deleted from the neighbor table. zb_set_keepalive_timeout is how often the end device polls its parent, that is, how often it sends a keep alive message to its parent.

    Best regards,

    Marte

Reply
  • Hi,

    What do you mean by "Why zigbee stack doesn't wake up itself?"?. What I wrote in my last reply is related to the end device and how it lets its parent know that it's still alive. This is something you can implement in your application yourself, and it's used in examples already in the SDK as well, if you want to look at how this is done.

    zb_sleep_set_threshold() is used to set the minimum sleep duration value. This sleep threshold is compared with how long the end device has been inactive and is used to decide whether the end device can go to sleep or not (ZB_COMMON_SIGNAL_CAN_SLEEP is generated).

    zb_set_ed_timeout is the end device timeout, and is used to specify the end device timeout period. If the parent of the end device does not receive any keep alive messages from the child during this period, the child will be deleted from the neighbor table. zb_set_keepalive_timeout is how often the end device polls its parent, that is, how often it sends a keep alive message to its parent.

    Best regards,

    Marte

Children
No Data
Related