cancel
Showing results for 
Search instead for 
Did you mean: 

Zigbee custom cluster fragmentation not working/sleep mode no wakeup

user5
Associate II

Hey,

I have two problems regarding custom clusters and sleepy end devices. I want to create an SED that periodically sends custom long string messages (via attribute reporting) to a coordinator.

1.Question:

For this I implemented a custom cluster with a custom long string character attribute. For testing I only write to the attribute once the SED starts up.

enum ZclStatusCodeT status;
uint8_t Custom_str[255] = " PAYLOAD";
Custom_str[0] = 50; // length of string (ZCL format) LSB
Custom_str[1] = 0; // length of string (ZCL format) MSB
status = ZbZclAttrStringWriteLong(zigbee_app_info.custom_ls_server, MY_ZCL_DEV_LS, Custom_str);
APP_DBG("Attribute write status = %d", status);

This works as intended. My motivation to use the custom cluster was the ability to send long custom strings. If I change Custom_str[0] = 50; to Custom_str[0] = 50; the reporting stops and the message does not comes through (attributeWrite still successful). Fragmentation should be enabled by default in custom cluster, but apparently messages do not arrive in this configuration. Any hints on what might cause this issue are appreciated.

2.Question:

For the sleepiness of the end devices i oriented on the Zigbee_OnOff_Client_SED example. I enabled sleepy mode in the Zigbee Stack and made sure the following lines are present.

/* Enabling Stop mode */
UTIL_LPM_SetStopMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE);
UTIL_LPM_SetOffMode(1U << CFG_LPM_APP, UTIL_LPM_DISABLE);

Furthermore, NVIC configuration is the same. Despite this, the end devices do not wake up for performing the periodic long string attribute report. What might be the issue here?

Best regards and thanks for the help!


1 REPLY 1
user5
Associate II

Correction: change Custom_str[0] = 50; to Custom_str[0] = 100;