Hi,
Can you please tell me what Tuya is using value of zigbee type_id for 10 bytes of frame of cluster 0xEF00.
Hi,
Can you please tell me what Tuya is using value of zigbee type_id for 10 bytes of frame of cluster 0xEF00.
Please refer to the following:
DP Type
Thanks for the link, but this is tuya serial communciation protocol.
But I am asking for Zigbee standard custom 10 bytes frame send directly to tuya gateway.
Can you provide more detailed information, such as what functions are implemented?
After the module receives the dp message sent by the gateway, it reports it to the gateway and pushes it to the app, and the status changes synchronously?
Ok sure
I have to send 10 bytes frame to set set zigbee thermostat temperature.
zb_zcl_custom_cluster_cmd_req_t cmd_req = {
.address_mode = ZB_APS_ADDR_MODE_16_ENDP_PRESENT,
.cluster_id = 0xEF00,
.custom_cmd_id = 1, //Is this correct
.data.value = message->data, //10 bytes data
.data.size = message->size,
.direction = ZB_ZCL_CMD_DIRECTION_TO_CLI,
.data.type = ??, //<---------ARRAY, STRUCT, and more are not working
.profile_id = 0x0104,
.zcl_basic_cmd.dst_addr_u.addr_short = 0,
.zcl_basic_cmd.dst_endpoint = 1,
.zcl_basic_cmd.src_endpoint = 1,
.dis_defalut_resp = 0,
};
To set temperature on Tuya app from my zigbee device, what will be the value of .data.type.
What should be data type for 10 bytes of frame. I used array, struct , etc. all types, but failed to make it working.
Can you please help me.
same code works for me for .data.type = zigbee_uint56_t (This is for zigbee 7 bytes of frame to set state on-off).
OK, The following answers may help you.
If you want to report DP data, please use 0x02 command id, ZG_ZCL_FRAME_TYPE_SPEC_TO_CLUSTER (0x01) data type and the payload uses the received data.
Code: Select all
send_data->delay_time = 0;
send_data->random_time = 0;
send_data->manu_code = 0x0000;
send_data->manu_spec = 0;
send_data->command_id = 0x02; //report
send_data->frame_type = ZG_ZCL_FRAME_TYPE_SPEC_TO_CLUSTER; //(0x01)
send_data->direction = ZG_ZCL_DATA_SERVER_TO_CLIENT; //(0x01)
send_data->qos = QOS_1;
send_data->addr.mode = SEND_MODE_DEV;
send_data->addr.type.dev.src_ep = 0x01;
send_data->addr.type.dev.dst_ep = 0x01;
send_data->addr.type.dev.cluster_id = CLUSTER_PRIVATE_TUYA_CLUSTER_ID; //(0xEF00)
send_data->addr.type.dev.dst_addr = 0x0000;
Ok,
Now i used your suggestion, and its still not working in my case.
There is send_data->frame_type = ZG_ZCL_FRAME_TYPE_SPEC_TO_CLUSTER; as per your suggestion.
But in my zigbee library, there is no frame_type, i have data.type means zigbee type_id.
Code: Select all
zb_zcl_custom_cluster_cmd_req_t cmd_req = {
.address_mode = ZB_APS_ADDR_MODE_16_ENDP_PRESENT,
.cluster_id = 0xEF00,
.custom_cmd_id = 2,
.data.value = message->data,
.data.size = message->size,
.direction = ZB_ZCL_CMD_DIRECTION_TO_CLI,
[b] .data.type = ZB_ZCL_ATTR_TYPE_U8,[/b] //<-- I need this type to find out, that tuya is using which is non-standard zigbee data type
.profile_id = 0x0104,
.zcl_basic_cmd.dst_addr_u.addr_short = 0,
.zcl_basic_cmd.dst_endpoint = 1,
.zcl_basic_cmd.src_endpoint = 1,
.dis_defalut_resp = 1,
.manuf_code = 0,
.manuf_specific = 0,
};
Please refer to the packet capture data: