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

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

The latest (hopefully) stable version of the driver can be downloaded from this link: https://raw.githubusercontent.com/kkossev/Hubitat-Tuya-Wall-Thermostat/main/Tuya-Wall-Thermostat.groovy

As this project is a work-in-progress, the last hot fixes and new features are available in the development branch:


Supported models

Model 1 (AVATTO)

(AE link)
(Amazon.de link)
Driver status: everything working (as this is the author's thermostat :slight_smile: )

Model 2 (MOES)


(AE link)
Driver status: confirmed to be working OK

Model 3 (testing)

(AE link)
Driver status: waiting for confirmation

Model 4 (BEOK)


(Beok Controls site link)
Driver status: confirmed to be working OK


While the same driver may work with other Tuya thermostat models (different than these listed below), this is not guaranteed because of the commands differences between the models and manufacturers.


  • Hubitat Elevation dashboards
  • Hubitat mobile app (to be tested!)
  • Amazon Alexa (to be tested!)
  • Google Home (partially tested)


Currently, not all of the functionalities and settings that are available from Tuya SmartLife app for the specific model are implemented into this HE driver.
The basic functions that are working at the moment are:

  • Synchronizes the thermostat clock to HE hub time and day of the week.
  • Switches the thermostat On and Off (thermostatMode).
  • Reads the thermostat temperature sensor (temperature).
  • Sets and reports the thermostat target temperature (heatingSetpoint).
  • Sets and reports the thermostat operation mode ('manual' or 'scheduled').
  • Reports the thermostat actual operating state ('idle' or 'heating') - relay open or closed state.
  • Reports the PID algorithm output variable as calculated by this simple formula image (AVATTO model only)

The driver adds some extra options and features:

  • Automatic or manual selection of the thermostat group
  • 'Force Manual' option - switches back the thermostat into 'manual' operation mode if it was accidentally put into 'scheduled' mode. Default is off.
  • 'Resend Failed' option - resends the commands for setting up the thermostat setPoint and mode, if failed by any reason.
  • Debug and Text info options. The debugging option is switched off automatically after 30 minutes.
  • Minimum and maximum limits for the heating setpoint.

This driver is currently a work-in-progress. If the 'production' version of the driver from the first post does not work for your model, please try the development branch : (GitHub link) which is updated more often. New devices fingerprints will be first added into the development branch, after being confirmed to work OK.

The 'production' version is updated only when a new feature was added or a critical bug was fixed. This will be the version that will be available for installing from HPM.

Latest revisions history:

  • ver. 1.0.4 2022-01-11 - added BEOK wall thermostat model '_TZE200_2ekuz3dz'

  • ver. 1.0.5 2022-01-15 - added Rx/Tx/duplicate packets counters, multiple bug fixes and improvements. The previous custom command 'Control Mode' is now removed and handled by the standard HE thermostat commands:

  •    off - switches the thermostat display (and relay!) off;
  •    heat - switches to manual control mode
  •    auto - switches to the scheduled control mode

While in 'auto' mode, the setpoint temperature can still be changed from either the thermostat control panel or from HE command. The device will stay in 'auto' mode and will revert back to the scheduled temperature when the next scheduled period kicks in.
If the plan is to control the thermostat solely by Hubitat, the right operating mode is heat.

If your thermostat model is working fine with this driver, please send me your model info. Hit thee 'Save Preferences' button on the device page and then copy the log text :

[info] Updating TS0601 Tuya Thermostat (Tuya Thermostat) model TS0601 manufacturer _TZE200_ye5jkfsb modelGroupPreference = Auto detect (AVATTO)

  • endpointId: 01
  • application: 41
  • profileId: 0104
  • inClusters: 0000,0004,0005,EF00
  • outClusters: 0019,000A
  • model: TS0601
  • manufacturer: _TZE200_aoclfnxz

Which model group is it? ( please copy the log text after hitting the 'Save Preferences button).
Are the temperature and the heating setpoint shown OK on the device page?

Tuya Zigbee Thermostat parse() descMap = [raw:catchall: 0104 EF00 01 01 0040 00 03EB 01 00 0000 01 01 00222404000101, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:03EB, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[00, 22, 24, 04, 00, 01, 01]]

manufacturer: _TZE200_aoclfnxz

Heating setpoint shown correctly on device when I set it via the device driver.

1 Like

Would be great to interact with the built-in scheduler.

fingerprint is added in the MOES model group.

Editing the thermostat built-in schedule will be the most difficult part of the project... Not sure if this can be done from a driver, or will require an App (similar to the built-in Thermostat Scheduler).

For now, you can set up the schedule manually from the device, then select ''program' control mode :

EDIT: starting from version 1.0.5 the thermostat modes are changed from the standard 'Set Thermostat Mode' commands :

A major bug was fixed in version 1.0.2, please make sure you upgrade the driver using one of the links above.

As some thermostat models tend to go crazy (sending many data packets per second) if a heating setpoint is sent outside of their allowed ranges, the new driver version 1,0.3 adds two additional parameters - minimum and maximum temperatures that can be sent to the thermostat :

The default values are 5 and 28 degrees Celsius, which seems to be OK for most use cases.
In this version, the debug logging is switched off by default.

The heating setpoint for most of the devices must be an integer value, for example 20 or 21 degrees, but not 20.5 degrees. Although a 0.5 increments can be set when using the thermostat touch display, 0.5 deg. resolution is not possible from the Zigbee interface.

Download the Hubitat app