Hello,
I'm trying to send some payload via ELECTRICAL_MEASUREMENT cluster.
The sending is realized in the similar way to the zigbee_light_switch example.
I'm sending data to the broadcast addr:
zb_uint16_t addr = 0xFFFF; uint16_t measured_val = 0xABCD; NRF_LOG_INFO("Send el measurement command"); ZB_CUSTOM_EL_MEASUREMENT_SEND_REQ(bufid, addr, ZB_APS_ADDR_MODE_16_ENDP_PRESENT, HA_SMART_PLUG_ENDPOINT, //todo HA_SMART_PLUG_ENDPOINT, ZB_AF_HA_PROFILE_ID, ZB_ZCL_DISABLE_DEFAULT_RESPONSE, NULL, measured_val);
Where the macro is:
#define ZB_CUSTOM_EL_MEASUREMENT_SEND_REQ( \ buffer, addr, dst_addr_mode, dst_ep, ep, prof_id, def_resp, cb, measured_val) \ { \ zb_uint8_t* ptr = ZB_ZCL_START_PACKET_REQ(buffer) \ ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_REQ_FRAME_CONTROL(ptr, def_resp) \ ZB_ZCL_CONSTRUCT_COMMAND_HEADER_REQ(ptr, ZB_ZCL_GET_SEQ_NUM(), ZB_ZCL_CMD_ELECTRICAL_MEASUREMENT_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND); \ ZB_ZCL_PACKET_PUT_DATA16_VAL(ptr, (measured_val)); \ ZB_ZCL_FINISH_PACKET(buffer, ptr) \ ZB_ZCL_SEND_COMMAND_SHORT( \ buffer, addr, dst_addr_mode, dst_ep, ep, prof_id, ZB_ZCL_CLUSTER_ID_ELECTRICAL_MEASUREMENT, cb); \ }
After that I'm trying to find those data in the sniffer.
Cluster ID is correct, Cmd ID is also correct and the measured_val (0xABCD) is visible.
Unfortunatelly the packet seems to be malformed. Any idea what am I doing wrong and how to fix it ?
BR,
Jakub