Skip to content

Commit 6510ef5

Browse files
rosmoautofix-ci[bot]Koenkk
authored
feat(add): ZHT-S03 (#9690)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
1 parent 8cafb55 commit 6510ef5

1 file changed

Lines changed: 73 additions & 0 deletions

File tree

src/devices/moes.ts

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,79 @@ const exposesLocal = {
2222
};
2323

2424
export const definitions: DefinitionWithExtend[] = [
25+
{
26+
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_zxkwaztm"]),
27+
model: "ZHT-S03",
28+
vendor: "Moes",
29+
description: "Zigbee wall thermostat",
30+
onEvent: tuya.onEventSetLocalTime,
31+
fromZigbee: [tuya.fz.datapoints],
32+
toZigbee: [tuya.tz.datapoints],
33+
configure: tuya.configureMagicPacket,
34+
exposes: [
35+
e.child_lock(),
36+
e
37+
.climate()
38+
.withSystemMode(["off", "heat"], ea.STATE)
39+
.withSetpoint("current_heating_setpoint", 5, 35, 0.5, ea.STATE_SET)
40+
.withRunningState(["idle", "heat"], ea.STATE)
41+
.withPreset(["schedule", "manual"])
42+
.withLocalTemperature(ea.STATE)
43+
.withLocalTemperatureCalibration(-9.9, 9.9, 0.1, ea.STATE_SET),
44+
e
45+
.numeric("temperature_delta", ea.STATE_SET)
46+
.withUnit("°C")
47+
.withValueMax(10)
48+
.withValueMin(0.5)
49+
.withValueStep(0.5)
50+
.withPreset("default", 1, "Default value")
51+
.withDescription("The delta between local_temperature and current_heating_setpoint to trigger Heat"),
52+
e.enum("working_day", ea.STATE_SET, ["mon_fri", "mon_sat", "mon_sun"]).withDescription("Workday setting"),
53+
e.text("schedule_weekday", ea.STATE_SET).withDescription("Workdays (6 times `hh:mm/cc.c°C`)"),
54+
e.text("schedule_holiday", ea.STATE_SET).withDescription("Holidays (2 times `hh:mm/cc.c°C)`"),
55+
e.binary("frost_protection", ea.STATE_SET, "ON", "OFF").withDescription("Antifreeze function"),
56+
],
57+
meta: {
58+
tuyaDatapoints: [
59+
[
60+
36,
61+
"running_state",
62+
tuya.valueConverterBasic.lookup({
63+
cool: tuya.enum(2),
64+
heat: tuya.enum(1),
65+
idle: tuya.enum(0),
66+
}),
67+
],
68+
[1, "system_mode", tuya.valueConverterBasic.lookup({heat: true, off: false})],
69+
[
70+
2,
71+
"preset",
72+
tuya.valueConverterBasic.lookup({
73+
schedule: tuya.enum(0),
74+
manual: tuya.enum(1),
75+
}),
76+
],
77+
[10, "frost_protection", tuya.valueConverter.onOff],
78+
[16, "current_heating_setpoint", tuya.valueConverter.divideBy10],
79+
[24, "local_temperature", tuya.valueConverter.divideBy10],
80+
[40, "child_lock", tuya.valueConverter.lockUnlock],
81+
[109, "local_temperature_calibration", tuya.valueConverter.localTempCalibration3],
82+
[112, "temperature_delta", tuya.valueConverter.divideBy10],
83+
[
84+
31,
85+
"working_day",
86+
tuya.valueConverterBasic.lookup({
87+
mon_fri: tuya.enum(0),
88+
mon_sat: tuya.enum(1),
89+
mon_sun: tuya.enum(2),
90+
}),
91+
],
92+
[67, null, tuya.valueConverter.ZWT198_schedule],
93+
[67, "schedule_weekday", tuya.valueConverter.ZWT198_schedule],
94+
[68, "schedule_holiday", tuya.valueConverter.ZWT198_schedule],
95+
],
96+
},
97+
},
2598
{
2699
fingerprint: tuya.fingerprint("TS0601", ["_TZE200_uenof8jd", "_TZE200_tzyy0rtq"]),
27100
model: "SFL02-Z",

0 commit comments

Comments
 (0)