Dear community,
we are using nRF52840 (s140) and nRF5_SDK_for_Thread_and_Zigbee_v4.1.0_32ce5f8 to develop a multiprotocol (BLE, ZB) application. Regarding the sending of ZB cluster commands, we use, e.g. (in the case of on/off commands) the macros ZB_ZCL_ON_OFF_SEND_REQ or ZB_ZCL_ON_OFF_SEND_REQ_NO_APS_ACK. Before every sending we allocate the OUT buffer with zb_buf_get_out(). The macros are only executed when the returned OUT buffer is not 0. We noticed that when we want to send those commands to multiple ZB nodes in a for loop (in our case 6 nodes after a specific button action), the buffer is always successfully allocated and the command macros executed. However, when using a ZB sniffer, we noticed that in the case of ZB_ZCL_ON_OFF_SEND_REQ only the 5 first commands are sent (semi)synchronously- the 6th is always sent with a delay of 3 seconds by the ZB stack. In the case of ZB_ZCL_ON_OFF_SEND_REQ_NO_APS_ACK the 6th command is apparently dropped in the ZB stack. Since the OUT buffer is always successfully allocated it is hard to handle the sending in a queue. What would be the best practice in that case?
Thanks in advance!