Hi, i am developing Zigbee window covering device on nrf connect sdk 1.9.1v which has 2 endpoints, but i am face issue when zigbee command is received and
void device_interface_cb(zb_uint8_t param)
{
zb_zcl_device_callback_param_t *device_cb_param = ZB_BUF_GET_PARAM(param, zb_zcl_device_callback_param_t);
LOG_INF("Zigbee CB endpoint %d", device_cb_param->endpoint);
device_cb_param->status = RET_OK;
switch (device_cb_param->device_cb_id)
{
case ZB_ZCL_WINDOW_COVERING_UP_OPEN_CB_ID:
{
zb_uint8_t lift_percentage_val = 0x00;
zb_uint8_t tilt_percentage_val = 0x00;
LOG_INF("open");
ZVUNUSED(zb_zcl_set_attr_val( device_cb_param->endpoint,
ZB_ZCL_CLUSTER_ID_WINDOW_COVERING,
ZB_ZCL_CLUSTER_SERVER_ROLE,
ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_LIFT_PERCENTAGE_ID,
&lift_percentage_val,
ZB_FALSE));
ZVUNUSED(zb_zcl_set_attr_val( device_cb_param->endpoint,
ZB_ZCL_CLUSTER_ID_WINDOW_COVERING,
ZB_ZCL_CLUSTER_SERVER_ROLE,
ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_TILT_PERCENTAGE_ID,
&tilt_percentage_val,
ZB_FALSE));
break;
}
case ZB_ZCL_WINDOW_COVERING_DOWN_CLOSE_CB_ID:
{
LOG_INF("close");
zb_uint8_t lift_percentage_val = 0x64;
zb_uint8_t tilt_percentage_val = 0x64;
ZVUNUSED(zb_zcl_set_attr_val( device_cb_param->endpoint,
ZB_ZCL_CLUSTER_ID_WINDOW_COVERING,
ZB_ZCL_CLUSTER_SERVER_ROLE,
ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_LIFT_PERCENTAGE_ID,
&lift_percentage_val,
ZB_FALSE));
ZVUNUSED(zb_zcl_set_attr_val( device_cb_param->endpoint,
ZB_ZCL_CLUSTER_ID_WINDOW_COVERING,
ZB_ZCL_CLUSTER_SERVER_ROLE,
ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_TILT_PERCENTAGE_ID,
&tilt_percentage_val,
ZB_FALSE));
break;
}
case ZB_ZCL_WINDOW_COVERING_STOP_CB_ID:
LOG_INF("stop");
zb_uint8_t lift_percentage_val = 0x32;
zb_uint8_t tilt_percentage_val = 0x32;
ZVUNUSED(zb_zcl_set_attr_val( device_cb_param->endpoint,
ZB_ZCL_CLUSTER_ID_WINDOW_COVERING,
ZB_ZCL_CLUSTER_SERVER_ROLE,
ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_LIFT_PERCENTAGE_ID,
&lift_percentage_val,
ZB_FALSE));
ZVUNUSED(zb_zcl_set_attr_val( device_cb_param->endpoint,
ZB_ZCL_CLUSTER_ID_WINDOW_COVERING,
ZB_ZCL_CLUSTER_SERVER_ROLE,
ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_TILT_PERCENTAGE_ID,
&tilt_percentage_val,
ZB_FALSE));
break;
default:
device_cb_param->status = RET_OK;
break;
}
}