This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2652P: Avoid ZDP Device Announce Command sent failed when device join into a Network

Part Number: CC2652P

When a Device join into a Network, ZDP Device Announce command will be broadcasted to all over the Network. It is an important message for Network Manager Device.

But  when many device are joining into a Network, broadcast message will be sent failed easily. So the Application layer should have chance to retry to send  ZDP Device Announce command.

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void (*pZdoAnnounceNewAddrFailureCB)(uint8_t status) = NULL;
/*********************************************************************
* @fn ZDApp_AnnounceNewAddress()
*
* @brief Send Device Announce and hold all transmissions for
* new address timeout.
*
* @param none
*
* @return none
*/
void ZDApp_AnnounceNewAddress( void )
{
// Turn off data request hold
APSME_HoldDataRequests( 0 );
// new function to send ZDP Device Announce with AF confirm callback
afStatus_t status = ZDP_DeviceAnnceEx( NLME_GetShortAddr(), NLME_GetExtAddr(),
ZDO_Config_Node_Descriptor.CapabilityFlags, 0, ZDO_AnnounceNewAddrConfirmCB, NULL );
// Trigger callback when Device Announce sent failed, add by luoyiming 2021-05-08
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Just for your reference. It's usually only mandatory to use device announcement when device joins Zigbee network first time as a kick-off point to request details of device information. We usually don't join several devices at the same time so if device announcement is missed, you can just retry to join process.

  • Zigbee Lights are supplied power by 2 wire. They join into Network together at same time.

  • I know such case but I still recommend to join those light one by one. Anyway, you are good to have your device announcement retry to improve this.

  • Hello Aries,

    Thank you for providing your solution.  As the Zigbee Coordinator acting as Trust Center could also become overloaded with these simultaneous device join requests, it is advisable to stagger the joining devices through a sporadic event (between 0 and 30 seconds) enabled from your application code.

    Regards,
    Ryan