[RELEASE] Tuya Wall Mount Thermostat (Water/Electric Floor Heating) Zigbee driver

No, the driver should be able to switch the thermostat on in 'heating' or 'auto' mode.
Please turn the debug logging on and send me the logs when you manually switch the device off and on from the panel.

Selecting the temperature sensor should be possible from the device panel configuration, I will check whether it is possible to configure it from a Zigbee command also. My thermostat (AVATTO) can be configured to use the internal sensor, the external probe, or 'both'. I am not quite sure what 'both' means, probably an average value? In all the cases it will be worth to find the keys combination that allows you to change the thermostat parameters from the device panel, as not all of the possible parameters can be changed or viewed remotely.

1 Like

My thermostat arrived today also, and the strange thing is that it is working OK (more or less...)
The pairing to HE was successful, I have the expected outClusters list and the commands to set the heating temperature, change heat/off modes is working as expected.

This is the pairing info:

Manufacturer: _TZE200_2ekuz3dz
Endpoint 01 application: 46
Endpoint 01 endpointId: 01
Endpoint 01 idAsInt: 1
Endpoint 01 inClusters: 0004,0005,EF00,0000
Endpoint 01 initialized: true
Endpoint 01 manufacturer: _TZE200_2ekuz3dz
Endpoint 01 model: TS0601
Endpoint 01 outClusters: 0019,000A
Endpoint 01 profileId: 0104
Endpoint 01 stage: 4
Endpoint F2 application: unknown
Endpoint F2 endpointId: F2
Endpoint F2 idAsInt: 242
Endpoint F2 initialized: true
Endpoint F2 manufacturer: unknown
Endpoint F2 model: unknown
Endpoint F2 outClusters: 0021
Endpoint F2 profileId: A1E0
Endpoint F2 stage: 4

Probably the only difference between my and your setup is that I have the device fingerprint corrected in the driver version 1.2.4 2022-09-28 - _TZE200_2ekuz3dz fingerprint corrected

Please update again to the latest version ( I have put version 1,2.4 for update via HPM). Then delete the device and pair it again to HE. When pairing as a new device, in the 'more info' link you should have the outClusters for endpoint 01 = 0019,000A

Let me know if this makes any difference with your configuration and device.

1 Like

Thanks again!

EDIT: Sorry for the confusion, but I can now turn it on remotely, via the hub. It definitely wasn't working yesterday. The rest of this post might be unhelpful!

As requested - debug logs showing the BSEED being turned off and back on at the device. Turning on is from 13:48:13.

dev:332022-10-03 13:48:13.958infoBathroom Underfloor Heating temperature is: 21.5°C
dev:332022-10-03 13:48:13.956traceprocessTuyaTemperatureReport dp_id=2 dp=24 :
dev:332022-10-03 13:48:13.954trace dp_id=2 dp=24 fncmd=215
dev:332022-10-03 13:47:54.317warn(duplicate) transid=170 dp_id=4 dp=36 fncmd=1 command=01 data = [15, AA, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:54.266warn(duplicate) transid=169 dp_id=4 dp=36 fncmd=1 command=01 data = [15, A9, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:54.216warn(duplicate) transid=168 dp_id=4 dp=36 fncmd=1 command=01 data = [15, A8, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:54.165warn(duplicate) transid=167 dp_id=4 dp=36 fncmd=1 command=01 data = [15, A7, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:54.110warn(duplicate) transid=166 dp_id=4 dp=36 fncmd=1 command=01 data = [15, A6, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:54.060warn(duplicate) transid=165 dp_id=4 dp=36 fncmd=1 command=01 data = [15, A5, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:54.010warn(duplicate) transid=164 dp_id=4 dp=36 fncmd=1 command=01 data = [15, A4, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.958warn(duplicate) transid=163 dp_id=4 dp=36 fncmd=1 command=01 data = [15, A3, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.909warn(duplicate) transid=162 dp_id=4 dp=36 fncmd=1 command=01 data = [15, A2, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.860warn(duplicate) transid=161 dp_id=4 dp=36 fncmd=1 command=01 data = [15, A1, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.823warn(duplicate) transid=160 dp_id=4 dp=36 fncmd=1 command=01 data = [15, A0, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.773warn(duplicate) transid=159 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 9F, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.705warn(duplicate) transid=158 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 9E, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.654warn(duplicate) transid=157 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 9D, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.605warn(duplicate) transid=156 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 9C, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.553warn(duplicate) transid=155 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 9B, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.505warn(duplicate) transid=154 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 9A, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.452warn(duplicate) transid=153 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 99, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.400warn(duplicate) transid=152 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 98, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.363warn(duplicate) transid=151 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 97, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.318warn(duplicate) transid=150 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 96, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.248warn(duplicate) transid=149 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 95, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.202warn(duplicate) transid=148 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 94, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.147warn(duplicate) transid=147 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 93, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.105warn(duplicate) transid=146 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 92, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.045warn(duplicate) transid=145 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 91, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:53.001warn(duplicate) transid=144 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 90, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:52.958warn(duplicate) transid=143 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 8F, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:52.897warn(duplicate) transid=142 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 8E, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:52.855warn(duplicate) transid=141 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 8D, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:52.797warn(duplicate) transid=140 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 8C, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:52.748warn(duplicate) transid=139 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 8B, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:52.693warn(duplicate) transid=138 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 8A, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:52.644warn(duplicate) transid=137 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 89, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:52.590warn(duplicate) transid=136 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 88, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:52.541warn(duplicate) transid=135 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 87, 24, 04, 00, 01, 01]
dev:332022-10-03 13:47:52.511infoBathroom Underfloor Heating thermostatOperatingState is: idle
dev:332022-10-03 13:47:52.508trace dp_id=4 dp=36 fncmd=1
dev:332022-10-03 13:47:46.978warn(duplicate) transid=144 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 90, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.926warn(duplicate) transid=143 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 8F, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.876warn(duplicate) transid=142 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 8E, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.825warn(duplicate) transid=141 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 8D, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.776warn(duplicate) transid=140 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 8C, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.722warn(duplicate) transid=139 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 8B, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.687warn(duplicate) transid=138 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 8A, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.622warn(duplicate) transid=137 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 89, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.570warn(duplicate) transid=136 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 88, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.523warn(duplicate) transid=135 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 87, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.469warn(duplicate) transid=134 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 86, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.420warn(duplicate) transid=133 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 85, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.368warn(duplicate) transid=132 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 84, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.318warn(duplicate) transid=131 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 83, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.268warn(duplicate) transid=130 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 82, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.219warn(duplicate) transid=129 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 81, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.184warn(duplicate) transid=128 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 80, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.115warn(duplicate) transid=127 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 7F, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.063warn(duplicate) transid=126 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 7E, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:46.012warn(duplicate) transid=125 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 7D, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:45.963warn(duplicate) transid=124 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 7C, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:45.912warn(duplicate) transid=123 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 7B, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:45.860warn(duplicate) transid=122 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 7A, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:45.825warn(duplicate) transid=121 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 79, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:45.759warn(duplicate) transid=120 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 78, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:45.718warn(duplicate) transid=119 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 77, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:45.673warn(duplicate) transid=118 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 76, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:45.615warn(duplicate) transid=117 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 75, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:45.568warn(duplicate) transid=116 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 74, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:47:45.530infoBathroom Underfloor Heating heatingSetpoint is: 10°C
dev:332022-10-03 13:47:45.526trace dp_id=2 dp=16 fncmd=10
dev:332022-10-03 13:47:42.070infoBathroom Underfloor Heating temperature is: 21.0°C
dev:332022-10-03 13:47:42.068traceprocessTuyaTemperatureReport dp_id=2 dp=24 :
dev:332022-10-03 13:47:42.065trace dp_id=2 dp=24 fncmd=210
dev:332022-10-03 13:47:42.037infoBathroom Underfloor Heating Thermostat mode (switch state) reported is: auto (dp=1, fncmd=1)
dev:332022-10-03 13:47:42.034trace dp_id=1 dp=1 fncmd=1
dev:332022-10-03 13:47:13.591infoBathroom Underfloor Heating temperature is: 21.0°C
dev:332022-10-03 13:47:13.589traceprocessTuyaTemperatureReport dp_id=2 dp=24 :
dev:332022-10-03 13:47:13.587trace dp_id=2 dp=24 fncmd=210
dev:332022-10-03 13:46:54.611debugBathroom Underfloor Heating basic cluster report : descMap = [raw:0A090100001801002048E2FF201FE4FF2000, dni:0A09, endpoint:01, cluster:0000, size:18, attrId:0001, encoding:20, command:0A, value:48, clusterInt:0, attrInt:1, additionalAttrs:[[value:1F, encoding:20, attrId:FFE2, consumedBytes:4, attrInt:65506], [value:00, encoding:20, attrId:FFE4, consumedBytes:4, attrInt:65508]]]
dev:332022-10-03 13:46:51.967warn(duplicate) transid=131 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 83, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.920warn(duplicate) transid=130 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 82, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.865warn(duplicate) transid=129 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 81, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.821warn(duplicate) transid=128 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 80, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.769warn(duplicate) transid=127 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 7F, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.714warn(duplicate) transid=126 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 7E, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.663warn(duplicate) transid=125 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 7D, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.616warn(duplicate) transid=124 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 7C, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.581warn(duplicate) transid=123 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 7B, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.519warn(duplicate) transid=122 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 7A, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.455warn(duplicate) transid=121 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 79, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.408warn(duplicate) transid=120 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 78, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.353warn(duplicate) transid=119 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 77, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.305warn(duplicate) transid=118 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 76, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.253warn(duplicate) transid=117 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 75, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.209warn(duplicate) transid=116 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 74, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.150warn(duplicate) transid=115 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 73, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.103warn(duplicate) transid=114 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 72, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.048warn(duplicate) transid=113 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 71, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:51.000warn(duplicate) transid=112 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 70, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.949warn(duplicate) transid=111 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 6F, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.901warn(duplicate) transid=110 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 6E, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.847warn(duplicate) transid=109 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 6D, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.795warn(duplicate) transid=108 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 6C, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.745warn(duplicate) transid=107 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 6B, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.699warn(duplicate) transid=106 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 6A, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.644warn(duplicate) transid=105 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 69, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.592warn(duplicate) transid=104 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 68, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.541warn(duplicate) transid=103 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 67, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.494warn(duplicate) transid=102 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 66, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.440warn(duplicate) transid=101 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 65, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.390warn(duplicate) transid=100 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 64, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.340warn(duplicate) transid=99 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 63, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.289warn(duplicate) transid=98 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 62, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.239warn(duplicate) transid=97 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 61, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.199warn(duplicate) transid=96 dp_id=4 dp=36 fncmd=1 command=01 data = [15, 60, 24, 04, 00, 01, 01]
dev:332022-10-03 13:46:50.147infoBathroom Underfloor Heating thermostatOperatingState is: idle
dev:332022-10-03 13:46:50.145trace dp_id=4 dp=36 fncmd=1
dev:332022-10-03 13:46:44.572warn(duplicate) transid=80 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 50, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:44.529warn(duplicate) transid=79 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 4F, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:44.459warn(duplicate) transid=78 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 4E, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:44.407warn(duplicate) transid=77 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 4D, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:44.358warn(duplicate) transid=76 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 4C, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:44.305warn(duplicate) transid=75 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 4B, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:44.255warn(duplicate) transid=74 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 4A, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:44.204warn(duplicate) transid=97 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 61, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:44.154warn(duplicate) transid=96 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 60, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:44.103warn(duplicate) transid=95 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 5F, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:44.051warn(duplicate) transid=94 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 5E, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:44.001warn(duplicate) transid=93 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 5D, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.951warn(duplicate) transid=91 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 5B, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.899warn(duplicate) transid=90 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 5A, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.848warn(duplicate) transid=89 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 59, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.800warn(duplicate) transid=88 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 58, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.747warn(duplicate) transid=87 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 57, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.696warn(duplicate) transid=86 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 56, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.647warn(duplicate) transid=85 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 55, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.596warn(duplicate) transid=84 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 54, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.563warn(duplicate) transid=83 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 53, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.497warn(duplicate) transid=82 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 52, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.445warn(duplicate) transid=81 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 51, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.394warn(duplicate) transid=80 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 50, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.350warn(duplicate) transid=79 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 4F, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.299warn(duplicate) transid=78 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 4E, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.241warn(duplicate) transid=77 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 4D, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.190warn(duplicate) transid=76 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 4C, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:43.159warn(duplicate) transid=75 dp_id=2 dp=16 fncmd=10 command=01 data = [15, 4B, 10, 02, 00, 04, 00, 00, 00, 0A]
dev:332022-10-03 13:46:42.654infoBathroom Underfloor Heating heatingSetpoint is: 10°C
dev:332022-10-03 13:46:42.651trace dp_id=2 dp=16 fncmd=10
dev:332022-10-03 13:46:40.207infoBathroom Underfloor Heating temperature is: 21.0°C
dev:332022-10-03 13:46:40.205traceprocessTuyaTemperatureReport dp_id=2 dp=24 :
dev:332022-10-03 13:46:40.202trace dp_id=2 dp=24 fncmd=210
dev:332022-10-03 13:46:40.166infoBathroom Underfloor Heating Thermostat mode (switch state) reported is: off (dp=1, fncmd=0)
dev:332022-10-03 13:46:40.163trace dp_id=1 dp=1 fncmd=0

Here's the State Variables with the device switched off:

packetID : 50
rxCounter : 47963
setpoint : 0
heatingSetPointRetry : 0
txCounter : 147
duplicateCounter : 45145
old_dp : 36
mode : heat
modeSetRetry : 0
lastThermostatMode : auto
lastThermostatOperatingState : idle
driverVersion : 1.2.3 2022/09/05 11:01 PM
old_fncmd : 1

It's reporting "mode: heat", is that a clue?

My thermostat (AVATTO) can be configured to use the internal sensor, the external probe, or 'both'. I am not quite sure what 'both' means, probably an average value?

I think that should mean that it'll stop heating when either the air temperature or the floor temperature reaches the setpoint? (Or maybe it has two setpoints.) I think it's meant as a safety measure to stop the floor becoming burning hot if the room isn't heating up due to an open window or something.

Sorry for leaving multiple confusing messages regarding my issue, of not being able to switch the device on via the hub.

After a bit more playing, I've got a reproable issue.

  1. Start with the device on. thermostatMode is auto.
  2. Send the Off command via the hub. The device switches off, but thermostatMode doesn't change, it's still auto.
  3. Send the Heat command via the hub. Nothing happens.

In contrast, if I tap the power button on the device, thermostatMode becomes off. Either the Heat or Auto commands will successfully turn it back on. (It always reports thermostatMode: auto, though, never thermostatMode: heat).

Sometimes, I can get it stuck so it remains in thermostatMode: auto after switching the device off with the power button. I can turn it on and off repeatedly without it changing from auto. However I can't reliably get it into this state. I have a theory that it might come from switching it on too quickly after sending the Off command, but I can't confirm this.

Yep, it is working now
image

  • 0.5 degrees in set point does not work
  • when force manual modem is ON, if you touch to fast more than once I was able to get it on AUTO
  • when force manual modem is OFF I can put it on HEAT or OFF, not on AUTO using HE --> not a big deal for me

Hope you can find a solution to turn off the beep, change the brightness and the presence function :slight_smile:

FYI
Hubitat Package Manager did not showed the update, I did it manual using the github link

  • Force Manual Mode is ON
  • When the status is HEAT in HE/device and you change the setpoint on the device higher than the temperature the relay is switching ON and the mode is set to AUTO in HE. You cannot switch to HEAT again in HE, You can do OFF, HEAT.
  • The thermostat stays always on HEAT.
  • When put the setpoint under the temperature it go's from AUTO to HEAT again
    I this normal behavior?

Child lock is not working, not so important for me

Strange hour to, it is 19:20, The display shows 25:20

1 Like

@user2669 thank you for the reports. I will look at these some days later, as now I have already started cleaning up the code logic for another thermostat (BEOK). Although the thermostats look similar, there are a lot of differences between them.

The opposite can also be true - Tuya thermostats that look different (have totally different LCD displays), have one and the same firmware code inside!

BTW, your thermostat suffers from the multiple repeated zigbee messages bug. This is not something that may overload your HE hub, but is good to be aware of it.

@BrunoVoeten - thank you for the reports as well. I have already noticed some of the problems and will be working on a fix.

That's one of the first issues that I noticed - after the time synchronization, this device is ignoring the Time Zone offset and is defaulting to the time zone of Beijing, China ! Probably something that we could expect from a Chinese IoT device.. :slight_smile:

2 Likes

I have accidentally updated the dev. branch of the driver to a not fully finished temporary version, but you can check the sound on/off parameter - this is something that now works with my device.

The problem with the time display is not solved, I have spent a lot of time without success. Will leave this issue for the final changes in the driver. The discouraging fact is that even when this BEOK clone is paired to Tuya Zigbee gateway, the time is still wrong. Z2M guys don't have a solution for the time offset as well.

1 Like

I am a bit confused with the two different parameters related to the temperature

  • One is called 'heating_temperature_limit (dp=102, 0x66) - default value 35C, max value 60C

  • the second is called 'upper_temperature' (dp=19, 0x13) - default value 60C, max value 90C

OK, after writing down the above, now I think I can guess their meaning.

Any suggestions what would be the best term to use in the driver for the 'upper temperature' parameter, which is obviously the external probe temperature reading (the temp. of the environment where the heating element is - hot water, electrical heater, etc.. ) ?

is the max setpoint temperature, correct?

Max Heating Source Temperature
Max Heating System Temperature

Yes, the heating_temperature_limit is shown in this driver as
image

I believe the other parameter which has a default value of 60C and maximum of 90C is usable only when you have a thermostat with an external temperature sensor.

Yes It works but I need to refresh the page before I change/safe, probably a browser issue.

@kkossev, I was curious :smiley: ,installed the latest dev driver in full development :grinning:
Wondering, when you change the mode from HEAT to OFF to HEAT the set point is not changing
when you first Initialize and change the mode from HEAT to OFF to HEAT the set point is set to 6°, is this normal behaviour?

No, this was a bug - should be already fixed in the latest update ( 10:29 AM )

@BrunoVoeten I have pushed to the dev. branch on Github version "1.2.5" timestamp "2022/10/08 1:38 PM". It should allow the LCD brightness control and *.5 precision for the temperature setPoint. There are a couple of the bug fixes for BEOK thermostat as well.

Can you give it a try?

First impressions is good, some finetuning :slight_smile:
image

  • LCD brightness is not working on my device

  • .5° is working
    .1,2,3,4,6,7,8,9° is working to :-). If the setpoint is 18.2° and it is changed on the device the steps are .5°. Not a big deal if it has no effect on other stuff.

-When you set the setpoint on 20° you see this:
image

And of course, the clock issue, hope you can find a work around

1 Like

I will be away from home in the next days, and I am not sure if I will be able to provide any updates at that time. So save this version to have a backup just in case.

Does the brightness control work if you click on Save button (preferences)?

There are bad news about the clock. This device is buggy, it doesn’t show the correct time even when paired to the original Tuya Zigbee gateway. The only place in the word where it works is China and the other locations where the TimeZone is +8 hours! This was confirmed by an Z2M user also. The best workaround I was able to achieve is the time to be displayed correctly between 9:00 and 23:59 for my time zone.

I also noticed the problem with the scientific representation of the heating setpoint , this is something that is fixable.

Another problem is that sometimes the commands to the device are not accepted. Probably this is also a bug in the device firmware, I can’t recall any other Tuya mains-powered device that has a similar problem. This can be handled in the driver also, just need some more complicated ‘command failed’ check logic.

BTW, these two options‘Resend Failed’ and ‘Ignore duplicated’ exist in the original SmartThings driver that this driver was based on initially. Which means, that the same problems have been found with ST implementation years ago. It also means that these bugs have not been fixed several years later, so there is no my ch hope they will be ever fixed by the manufacturer.

No, there are 2 possibilities

Commands
image
does not work

Preferences
The dropdown list is empty:
image
When I save:

[quote="kkossev, post:79, topic:87050"]
There are bad news about the clock. This device is buggy
[/quote] :smiling_face_with_tear:

No problem, enjoy those days

1 Like