9 uint16_t attr_id,
void *value_p) {
10 ezb_zcl_attr_desc_t attr_desc = ezb_zcl_cluster_get_attr_desc(cluster_desc, attr_id, EZB_ZCL_STD_MANUF_CODE);
11 if (attr_desc != NULL) {
12 return ezb_zcl_attr_desc_set_value(attr_desc, value_p);
18 if (ezb_af_endpoint_get_cluster_desc(ep_desc, cluster_id, role_mask) != NULL) {
22 ezb_zcl_cluster_desc_t cluster_desc;
24 return ezb_af_endpoint_add_cluster_desc(ep_desc, cluster_desc);
29 case EZB_ZCL_CLUSTER_ID_BASIC:
30 return ezb_zcl_basic_create_cluster_desc(NULL, role_mask);
31 case EZB_ZCL_CLUSTER_ID_IDENTIFY:
32 return ezb_zcl_identify_create_cluster_desc(NULL, role_mask);
33 case EZB_ZCL_CLUSTER_ID_ANALOG_INPUT:
34 return ezb_zcl_analog_input_create_cluster_desc(NULL, role_mask);
35 case EZB_ZCL_CLUSTER_ID_BINARY_INPUT:
36 return ezb_zcl_binary_input_create_cluster_desc(NULL, role_mask);
38 ezb_zcl_custom_cluster_config_t config = {0};
39 config.cluster_id = cluster_id;
40 return ezb_zcl_custom_create_cluster_desc(&config, role_mask);
48 case EZB_ZCL_CLUSTER_ID_BASIC:
49 return ezb_zcl_basic_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
50 case EZB_ZCL_CLUSTER_ID_IDENTIFY:
51 return ezb_zcl_identify_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
52 case EZB_ZCL_CLUSTER_ID_ANALOG_INPUT:
53 return ezb_zcl_analog_input_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
54 case EZB_ZCL_CLUSTER_ID_BINARY_INPUT:
55 return ezb_zcl_binary_input_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
57 return EZB_ERR_NOT_FOUND;