Page 1 of 1

Zigbee Thermostat Cluster

Posted: 2025年 Mar 21日 13:41
by firmware@nuos.in

Hi,

I am using Zigbee Thermostat showing current temperature and setting tempertaure, mode and on-off.
when i change temperature from 16 to 23 from smart life app, then i receive following commands "0x3 0xb1 0x32 0x2 0x0 0x4 0x0 0x0 0x0 0x16" on tuya cluster 0xEF00. But temperature is not set back to 16 and not 23.
What response i have to send back. can you send me the frame. what will be command Id and other data struct is to respond back? I also dont know the attribute id of 0xEF00 clusters.


Re: Zigbee Thermostat Cluster

Posted: 2025年 Mar 21日 13:47
by huanghuan

1.Hello, in order to facilitate our troubleshooting, please provide the device id and operation time of the corresponding gateway and Zigbee Thermostat
2.If available, please provide wireless capture file


Re: Zigbee Thermostat Cluster

Posted: 2025年 Mar 21日 14:03
by shiliang

Hello, The parsing format of this data is as follows:
2 bytes seq number
1 byte DP id 0x03 0xb1
1 byte DP type 0x02
2 bytes DP length 0x00 0x04
4 bytes DP value 0x00 0x00 0x00 0x16


Re: Zigbee Thermostat Cluster

Posted: 2025年 Mar 21日 14:07
by firmware@nuos.in

Ok, but in order to set back temperature value or mode or fan speed from my device(server cluster) to smart life app(client clusters), what will be the command_id for setting temperature, mode, fan speed and state onoff.


Re: Zigbee Thermostat Cluster

Posted: 2025年 Mar 21日 14:11
by firmware@nuos.in

My device id is d7c9098f9b75359e07yuav

Ok, but in order to set back temperature value or mode or fan speed from my device(server cluster) to smart life app(client clusters), what will be the command_id for setting temperature, mode, fan speed and state onoff.

Due to lack of tuya thermostat documentation on internet, i am unable to crack the solution.


Re: Zigbee Thermostat Cluster

Posted: 2025年 Mar 21日 14:30
by huanghuan

1.Hello, I think you have questions about how to use the command under the EF00 cluster, you can see the usage of this demo


Re: Zigbee Thermostat Cluster

Posted: 2025年 Mar 21日 14:56
by firmware@nuos.in

Thanks for the code, but i am unable to found usage of EF00 cluster in all files


Re: Zigbee Thermostat Cluster

Posted: 2025年 Mar 21日 15:00
by huanghuan

You can look at how this function handles tal_zcl_specific_msg_recv_callback


Re: Zigbee Thermostat Cluster

Posted: 2025年 Mar 21日 18:45
by firmware@nuos.in

Now i only successfully able to send the command of type_id(data frame size) <= 8, above 8, my no other enum defined type_id is working. In your code, you passed ZG_ZCL_FRAME_TYPE_SPEC_TO_CLUSTER to type_id.

So what is the value of "ZG_ZCL_FRAME_TYPE_SPEC_TO_CLUSTER". Is this the type_id?

STATIC VOID_T send_dp_read_data(UINT8_T *data, UINT8_T data_len)
{
TAL_ZG_SEND_DATA_T send_data;


if((data == NULL)||(data_len > 62)){
return;
}


tal_system_memset(&send_data, 0, sizeof(TAL_ZG_SEND_DATA_T));


send_data.zcl_id = (UINT8_T)app_seq_num_get();
send_data.qos = QOS_0;
send_data.addr.mode = SEND_MODE_DEV;
send_data.addr.type.dev.cluster_id = CLUSTER_PRIVATE_TUYA_CLUSTER_ID;
send_data.addr.type.dev.src_ep = 0X01;
send_data.delay_time = 0;
send_data.random_time = 0;
send_data.frame_type = ZG_ZCL_FRAME_TYPE_SPEC_TO_CLUSTER;
send_data.direction = ZG_ZCL_DATA_SERVER_TO_CLIENT;


send_data.command_id = SERIAL_PROTOCOL_DATA_RSP;
send_data.data.private.data[0] = 0;
send_data.data.private.data[1] = send_data.zcl_id;


tal_system_memcpy(&send_data.data.private.data[2], data, data_len);
send_data.data.private.len = data_len+2;


tal_zg_send_data(&send_data, NULL, 1000);
}