cancel
Showing results for 
Search instead for 
Did you mean: 

Zigbee sleepy end device, reporting no callback

Name
Associate III

Hello,

 

I am developing a temperature measurement system which consists of a coordinator and multiple sleepy end devices. On the Coordinator Side ZbZclAttrReportConfigReq is used to set end devices reporting interval. To ensure the sleepy end-devices do not miss the command from the coordinator, i implemented the following:

 

Coordinator (in APP_ZIGBEE_NwkForm in case of success):

uint8_t res;
uint16_t tr_pers_time = 0x2AF8; //Dec 11000
res = ZbNwkSet(zigbee_app_info.zb, ZB_NWK_NIB_ID_TransactionPersistenceTime, &tr_pers_time, sizeof(nwk_pers_time));

Intention: keep transactions on coordinator for 11 seconds.

 

Sleepy End Device (every 10 seconds):

struct ZbNlmeSyncReqT syncreq;
syncreq.track = false;
uint8_t res = ZbNlmeSyncReq(zigbee_app_info.zb, &syncreq, NULL, NULL);

Intention: poll the coordinator for new data

 

Expected result:

Sleepy end device changes the reporting at latest 10 seconds after ZbZclAttrReportConfigReq was executed and the ZbZclAttrReportConfigReq callback is called.

Actual result:

If ZbZclAttrReportConfigReq is executed within 1-2 seconds after one of the end device ZbNlmeSyncReq the ZbZclAttrReportConfigReq callback will not be exuted and/or the message does not change the end device behavior.

 

What am I missing?

 

Thanks for the help and best regards!

1 REPLY 1
Name
Associate III

Any ideas?