(ST Edge Driver) Whenzi (Beok) Zigbee Gas Boiler Thermostat

Hi,
I wrote this driver for my zigbee thermostat Whenzi X5-GC (gas boiler). It seems a BEOK X5H clone. Its fingerprint is: manufacturer _TZE200_2ekuz3dz, model TS0601
When I bought that thermostat I realized that it used Tuya private cluster EF00, so I installed the w35l3y’s Personal Tuya Devices driver Thanks a lot w35l3y for your work.
I found quite information about this zigbee thermostat from kkossev and his Tuya Wall Mount Thermostat driver. This information was really useful, because the thermostat documentation included in the box was very poor. Syncing thermostat time was horrible experience.
I tried to include all thermostat functions. Some of them, are availble in the configuration page. For this reason I added an information table at the bottom, because you can set this preferences from the thermostat panel and their values can’t be changed in preferences by code.





This is the invitation to my channel if you want to use it. I hope you like it.
Thanks,
Javi.

2 Likes

Hi Javi,

Is it possible you can help with this one …

DP
2 is mode (2 off, 1 is auto, 0 programmed)
3 is heating (1 off, 0 on)
4 is set temp * 10
5 is current temp * 10
7 is childlock ( true is locked, false unlocked)

Cheers,
Darren

1 Like

Hi Darren,
I found some info about your device, it seems a thermostatic radiator valve. I found the complete dp info in zigbee2mqtt github
Maybe, I can adapt the basic functions of the driver and hide those not supported by your device, for example, controlling panel brightness, panel sound, and some preferences.
It will take me a little time because I’m still a newbie. When I have the most basic things ready, I will post it here.
Thanks,
Javi

1 Like

Javi,

Brilliant. That the full DP info is really useful. Is your driver open source ? If so, if you send me a link, I’d have a crack at forking it.

Cheers,

Darren

Hi Darren,
I’m a bit messy :crazy_face: and I’ve always been a bit embarrassed to show my code, but next week I will upload the source code to github and post the link here.
Thanks for your interest, I hope it is useful to you
Javi

Thanks Javi,

I just jumped in myself - necessity based on pre Christmas ordering of Zigbee devices from Aliexpress.

I’ve cobbled together a driver to get basic set point and actual temperature working. So far so good.

Struggling a little with the string format to download schedules for automatous operation.

Cheers
Darren

1 Like

Hi.
I uploaded the driver code to my github.
I hope it is useful,
Thanks,
Javi

1 Like

Hi @otivax and @dwalke15 ,
I also have a an electric boiler which @w35l3y made an edge driver in [ST Edge] Personal Tuya Devices - Generic EF00 Device

He decided to define as irrigator tap , be means of OPEN and CLOSE rather than ON and OFF, he included all metrics (like power , voltage and current) that works fine. BUT main feature are missing which are setting the Delay time (DP 101) and displaying the Work Time (DP 103)
Attached is an Excel file that contain all DP’s

The Finger print is:

Manufacturer: _TZE204_vqaajp1a
Model: TS0601



Hello @otivax I buy Star Ring Moes ZigBee thermostat. Model: ZHT-SR. Can You help and add fingerprints to Your driver?
Regards.

Hi PrzemekSkw,
Please, I need the fingerprint of your thermostat. You can find it and the clusters as well by installing Mariano’s Thing driver. If your device uses the same clusters and data points I’ll add it to my driver.
Thanks,
Javi.

Hi, sorry I bother You. Maybe I will try first to correctly make it work in Tuya app because for now I have some calibration problems. It heat very low. I mean temperature is lower that I set in thermostat. I will try to fix that first.
Regards.

    modelID: 'TS0601', manufacturerName: '_TZE204_lpedvtvr'}],
    model: 'ZHT_SR',
    vendor: 'Moes',

But there many DP’s

tuyaDatapoints: [

[1, 'system_mode', tuya.valueConverterBasic.lookup({off: false, heat: true})],
[2, 'preset', tuya.valueConverterBasic.lookup({manual: tuya.enum(0), temp_manual: tuya.enum(1), programming: tuya.enum(2), eco: tuya.enum(3)})],
[50, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
[19, 'max_temperature', tuya.valueConverter.divideBy10],
[16, 'local_temperature', tuya.valueConverter.divideBy10],
[26, 'min_temperature', tuya.valueConverter.divideBy10],
[27, 'local_temperature_calibration', tuya.valueConverter.raw],
[28, 'factory_reset', tuya.valueConverterBasic.lookup({factory_reset: true})],
[47, 'valve_state', tuya.valueConverter.trueFalseInvert],
[39, 'child_lock', tuya.valueConverterBasic.lookup({ON: true, OFF: false})],
[40, 'eco_mode', tuya.valueConverterBasic.lookup({ON: true, OFF: false})],
[32, 'sensor', tuya.valueConverterBasic.lookup({IN: tuya.enum(0), OU: tuya.enum(2), AL: tuya.enum(1)})],
[109, 'external_temperature_input', tuya.valueConverter.divideBy10],
[110, 'deadzone_temperature', tuya.valueConverter.raw],
[104, 'max_temperature_limit', tuya.valueConverter.divideBy10],
[102, 'schedule_monday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(1)],
[103, 'schedule_tuesday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(2)],
[104, 'schedule_wednesday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(3)],
[105, 'schedule_thursday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(4)],
[106, 'schedule_friday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(5)],
[107, 'schedule_saturday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(6)],
[108, 'schedule_sunday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(7)],
[111, 'min_temperature_limit', tuya.valueConverter.divideBy10],
[112, 'eco_temperature', tuya.valueConverter.divideBy10],
[115, 'brightness', tuya.valueConverter.raw],
[48, 'display_brightness', tuya.valueConverter.raw],