zigbee-herdsman-converters 21.0.0-pre.1 → 21.0.0-pre.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/CHANGELOG.md +123 -0
  2. package/converters/fromZigbee.d.ts +2 -1
  3. package/converters/fromZigbee.d.ts.map +1 -1
  4. package/converters/fromZigbee.js +55 -2
  5. package/converters/fromZigbee.js.map +1 -1
  6. package/devices/bosch.js +1 -1
  7. package/devices/bosch.js.map +1 -1
  8. package/devices/candeo.d.ts.map +1 -1
  9. package/devices/candeo.js +15 -72
  10. package/devices/candeo.js.map +1 -1
  11. package/devices/custom_devices_diy.d.ts.map +1 -1
  12. package/devices/custom_devices_diy.js +8 -1
  13. package/devices/custom_devices_diy.js.map +1 -1
  14. package/devices/ecodim.js +2 -2
  15. package/devices/ecodim.js.map +1 -1
  16. package/devices/elko.js +3 -3
  17. package/devices/elko.js.map +1 -1
  18. package/devices/gledopto.d.ts.map +1 -1
  19. package/devices/gledopto.js +13 -2
  20. package/devices/gledopto.js.map +1 -1
  21. package/devices/ikea.d.ts.map +1 -1
  22. package/devices/ikea.js +21 -7
  23. package/devices/ikea.js.map +1 -1
  24. package/devices/index.d.ts.map +1 -1
  25. package/devices/index.js +4 -0
  26. package/devices/index.js.map +1 -1
  27. package/devices/innr.d.ts.map +1 -1
  28. package/devices/innr.js +1 -0
  29. package/devices/innr.js.map +1 -1
  30. package/devices/lumi.d.ts.map +1 -1
  31. package/devices/lumi.js +7 -0
  32. package/devices/lumi.js.map +1 -1
  33. package/devices/schneider_electric.d.ts.map +1 -1
  34. package/devices/schneider_electric.js +103 -0
  35. package/devices/schneider_electric.js.map +1 -1
  36. package/devices/somfy.d.ts.map +1 -1
  37. package/devices/somfy.js +2 -9
  38. package/devices/somfy.js.map +1 -1
  39. package/devices/sonoff.d.ts.map +1 -1
  40. package/devices/sonoff.js +226 -0
  41. package/devices/sonoff.js.map +1 -1
  42. package/devices/sunricher.d.ts.map +1 -1
  43. package/devices/sunricher.js +14 -0
  44. package/devices/sunricher.js.map +1 -1
  45. package/devices/tech.d.ts +4 -0
  46. package/devices/tech.d.ts.map +1 -0
  47. package/devices/tech.js +118 -0
  48. package/devices/tech.js.map +1 -0
  49. package/devices/tuya.d.ts.map +1 -1
  50. package/devices/tuya.js +90 -16
  51. package/devices/tuya.js.map +1 -1
  52. package/devices/yandex.d.ts +4 -0
  53. package/devices/yandex.d.ts.map +1 -0
  54. package/devices/yandex.js +398 -0
  55. package/devices/yandex.js.map +1 -0
  56. package/index.d.ts +4 -3
  57. package/index.d.ts.map +1 -1
  58. package/index.js +90 -45
  59. package/index.js.map +1 -1
  60. package/lib/exposes.d.ts +1 -0
  61. package/lib/exposes.d.ts.map +1 -1
  62. package/lib/exposes.js +8 -5
  63. package/lib/exposes.js.map +1 -1
  64. package/lib/modernExtend.d.ts +1 -0
  65. package/lib/modernExtend.d.ts.map +1 -1
  66. package/lib/modernExtend.js +23 -1
  67. package/lib/modernExtend.js.map +1 -1
  68. package/lib/types.d.ts +14 -18
  69. package/lib/types.d.ts.map +1 -1
  70. package/lib/utils.d.ts +1 -1
  71. package/lib/utils.d.ts.map +1 -1
  72. package/lib/utils.js.map +1 -1
  73. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tech.d.ts","sourceRoot":"","sources":["../src/devices/tech.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,oBAAoB,EAAC,MAAM,cAAc,CAAC;AAKlD,QAAA,MAAM,WAAW,EAAE,oBAAoB,EA0FtC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const exposes = __importStar(require("../lib/exposes"));
27
+ const tuya = __importStar(require("../lib/tuya"));
28
+ const e = exposes.presets;
29
+ const ea = exposes.access;
30
+ const definitions = [
31
+ {
32
+ fingerprint: [{ modelID: 'TS0601', manufacturerName: '_TZE204_r7brscr6' }],
33
+ model: 'VNTH-T2',
34
+ vendor: 'TECH',
35
+ description: 'Smart radiator valve',
36
+ ota: true,
37
+ onEvent: tuya.onEventSetLocalTime,
38
+ fromZigbee: [tuya.fz.datapoints],
39
+ toZigbee: [tuya.tz.datapoints],
40
+ configure: tuya.configureMagicPacket,
41
+ exposes: [
42
+ e.child_lock(),
43
+ e.window_detection(),
44
+ e.window_open(),
45
+ e
46
+ .climate()
47
+ .withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
48
+ .withLocalTemperature(ea.STATE)
49
+ .withSystemMode(['heat', 'auto', 'off'], ea.STATE_SET, 'Mode of this device, in the `heat` mode the TS0601 will remain continuously heating, i.e. it does not regulate ' +
50
+ 'to the desired temperature. If you want TRV to properly regulate the temperature you need to use mode `auto` ' +
51
+ 'instead setting the desired temperature.')
52
+ .withLocalTemperatureCalibration(-9, 9, 0.5, ea.STATE_SET)
53
+ .withPreset(['manual', 'schedule', 'eco', 'comfort', 'antifrost', 'holiday'])
54
+ .withRunningState(['idle', 'heat'], ea.STATE),
55
+ e.away_mode(),
56
+ e
57
+ .numeric('temperature_sensitivity', ea.STATE_SET)
58
+ .withUnit('°C')
59
+ .withDescription('Temperature sensivity')
60
+ .withValueMin(0.5)
61
+ .withValueMax(5)
62
+ .withValueStep(0.5),
63
+ e.comfort_temperature().withValueStep(0.5),
64
+ e.eco_temperature().withValueStep(0.5),
65
+ e.holiday_temperature().withValueStep(0.5),
66
+ e.min_temperature_limit().withValueMin(5).withValueMax(15).withValueStep(0.5), // min temperature for frost protection
67
+ e
68
+ .binary('frost_protection', ea.STATE_SET, 'ON', 'OFF')
69
+ .withDescription('Indicates if the frost protection mode is enabled')
70
+ .withCategory('config'),
71
+ e.valve_alarm(),
72
+ ...tuya.exposes.scheduleAllDays(ea.STATE_SET, 'HH:MM/C HH:MM/C HH:MM/C HH:MM/C'),
73
+ ],
74
+ meta: {
75
+ tuyaDatapoints: [
76
+ [101, 'system_mode', tuya.valueConverterBasic.lookup({ heat: true, off: false })],
77
+ [101, 'state', tuya.valueConverter.onOff],
78
+ [7, 'child_lock', tuya.valueConverter.lockUnlock],
79
+ [3, 'running_state', tuya.valueConverterBasic.lookup({ heat: tuya.enum(1), idle: tuya.enum(0) })],
80
+ [5, 'local_temperature', tuya.valueConverter.divideBy10],
81
+ [47, 'local_temperature_calibration', tuya.valueConverter.localTempCalibration1],
82
+ [6, 'battery', tuya.valueConverter.raw],
83
+ [4, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
84
+ [102, 'temperature_sensitivity', tuya.valueConverter.divideBy10],
85
+ [104, 'comfort_temperature', tuya.valueConverter.divideBy10],
86
+ [103, 'eco_temperature', tuya.valueConverter.divideBy10],
87
+ [21, 'holiday_temperature', tuya.valueConverter.divideBy10],
88
+ [105, 'min_temperature_limit', tuya.valueConverter.divideBy10],
89
+ [36, 'frost_protection', tuya.valueConverter.onOff],
90
+ [14, 'window_detection', tuya.valueConverter.onOff],
91
+ [15, 'window_open', tuya.valueConverter.onOff],
92
+ [35, 'fault_alarm', tuya.valueConverter.raw], // not sure
93
+ [
94
+ 2,
95
+ 'preset',
96
+ tuya.valueConverterBasic.lookup({
97
+ manual: tuya.enum(0), // Hand / "normal"
98
+ schedule: tuya.enum(1), // Clock / "Auto"
99
+ eco: tuya.enum(2), // "E" / Moon
100
+ comfort: tuya.enum(3), // Leaf / Sun
101
+ antifrost: tuya.enum(4), // Flake
102
+ holiday: tuya.enum(5), // Palm tree
103
+ }),
104
+ ],
105
+ [28, 'schedule_monday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(1)],
106
+ [29, 'schedule_tuesday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(2)],
107
+ [30, 'schedule_wednesday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(3)],
108
+ [31, 'schedule_thursday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(4)],
109
+ [32, 'schedule_friday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(5)],
110
+ [33, 'schedule_saturday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(6)],
111
+ [34, 'schedule_sunday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(7)],
112
+ ],
113
+ },
114
+ },
115
+ ];
116
+ exports.default = definitions;
117
+ module.exports = definitions;
118
+ //# sourceMappingURL=tech.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tech.js","sourceRoot":"","sources":["../src/devices/tech.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tuya.d.ts","sourceRoot":"","sources":["../src/devices/tuya.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAC,oBAAoB,EAA0E,MAAM,cAAc,CAAC;AA6wB3H,QAAA,MAAM,WAAW,EAAE,oBAAoB,EAkyXtC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"tuya.d.ts","sourceRoot":"","sources":["../src/devices/tuya.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAC,oBAAoB,EAA0E,MAAM,cAAc,CAAC;AA6wB3H,QAAA,MAAM,WAAW,EAAE,oBAAoB,EA42XtC,CAAC;AAEF,eAAe,WAAW,CAAC"}
package/devices/tuya.js CHANGED
@@ -1315,7 +1315,7 @@ const definitions = [
1315
1315
  ],
1316
1316
  },
1317
1317
  {
1318
- fingerprint: tuya.fingerprint('TS0601', ['_TZE200_ogkdpgy2', '_TZE200_3ejwxpmu']),
1318
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_ogkdpgy2', '_TZE204_ogkdpgy2', '_TZE200_3ejwxpmu']),
1319
1319
  model: 'TS0601_co2_sensor',
1320
1320
  vendor: 'Tuya',
1321
1321
  description: 'NDIR co2 sensor',
@@ -1583,10 +1583,11 @@ const definitions = [
1583
1583
  tuya.whitelabel('Tuya', 'HG08007', 'Livarno Home outdoor LED band', ['_TZ3210_zbabx9wh']),
1584
1584
  tuya.whitelabel('Lidl', '14158704L', 'Livarno Home LED floor lamp, RGBW', ['_TZ3210_z1vlyufu']),
1585
1585
  tuya.whitelabel('Lidl', '14158804L', 'Livarno Home LED desk lamp RGBW', ['_TZ3210_hxtfthp5']),
1586
- tuya.whitelabel('Lidl', 'HG07834A/HG09155A', 'Livarno Lux GU10 spot RGB', ['_TZ3000_quqaeew6']),
1587
- tuya.whitelabel('Lidl', 'HG07834B', 'Livarno Lux E14 candle RGB', ['_TZ3000_th6zqqy6', '_TZ3000_wr6g6olr']),
1586
+ tuya.whitelabel('Lidl', 'HG07834A/HG09155A/HG08131A', 'Livarno Home GU10 spot RGB+CCT', ['_TZ3000_quqaeew6']),
1587
+ tuya.whitelabel('Lidl', 'HG07834B/HG08131B', 'Livarno Home E14 candle RGB+CCT', ['_TZ3000_th6zqqy6']),
1588
+ tuya.whitelabel('Lidl', 'HG07834B', 'Livarno Home E14 candle RGB+CCT', ['_TZ3000_wr6g6olr']),
1588
1589
  tuya.whitelabel('Lidl', 'HG08131C', 'Livarno Home outdoor E27 bulb in set with flare', ['_TZ3000_q50zhdsc']),
1589
- tuya.whitelabel('Lidl', 'HG07834C', 'Livarno Lux E27 bulb RGB', ['_TZ3000_qd7hej8u']),
1590
+ tuya.whitelabel('Lidl', 'HG07834C/HG08131C', 'Livarno Home E27 bulb RGB+CCT', ['_TZ3000_qd7hej8u']),
1590
1591
  tuya.whitelabel('MiBoxer', 'FUT037Z+', 'RGB led controller', ['_TZB210_417ikxay', '_TZB210_wxazcmsh']),
1591
1592
  tuya.whitelabel('Lidl', 'HG08383B', 'Livarno outdoor LED light chain', ['_TZ3000_bwlvyjwk']),
1592
1593
  tuya.whitelabel('Lidl', 'HG08383A', 'Livarno outdoor LED light chain', ['_TZ3000_taspddvq']),
@@ -1888,7 +1889,7 @@ const definitions = [
1888
1889
  exposes: [],
1889
1890
  },
1890
1891
  {
1891
- zigbeeModel: ['TS0207', 'FNB54-WTS08ML1.0'],
1892
+ zigbeeModel: ['TS0207', 'FNB54-WTS08ML1.0', 'SNZB-05'],
1892
1893
  model: 'TS0207_water_leak_detector',
1893
1894
  vendor: 'Tuya',
1894
1895
  description: 'Water leak detector',
@@ -1896,8 +1897,11 @@ const definitions = [
1896
1897
  whiteLabel: [
1897
1898
  { vendor: 'CR Smart Home', model: 'TS0207' },
1898
1899
  tuya.whitelabel('Meian', 'SW02', 'Water leak sensor', ['_TZ3000_kyb656no']),
1899
- tuya.whitelabel('Aubess', 'IH-K665', 'Water leak sensor', ['_TZ3000_k4ej3ww2', '_TZ3000_kstbkt6a', '_TZ3000_upgcbody']),
1900
- tuya.whitelabel('Tuya', 'TS0207_water_leak_detector_1', 'Zigbee water flood sensor + 1m probe cable', ['_TZ3000_ocjlo4ea']),
1900
+ tuya.whitelabel('Aubess', 'IH-K665', 'Water leak sensor', ['_TZ3000_k4ej3ww2', '_TZ3000_kstbkt6a']),
1901
+ tuya.whitelabel('Tuya', 'TS0207_water_leak_detector_1', 'Zigbee water flood sensor + 1m probe cable', [
1902
+ '_TZ3000_ocjlo4ea',
1903
+ '_TZ3000_upgcbody',
1904
+ ]),
1901
1905
  tuya.whitelabel('Tuya', 'TS0207_water_leak_detector_3', 'Zigbee water leak sensor', ['_TYZB01_sqmd19i1']),
1902
1906
  tuya.whitelabel('Tuya', '899WZ', 'Water leak detector with 80DB Alarm', ['_TZ3000_mugyhz0q']),
1903
1907
  tuya.whitelabel('Niceboy', 'ORBIS Water Sensor', 'Water leak sensor', ['_TZ3000_awvmkayh']),
@@ -2732,7 +2736,7 @@ const definitions = [
2732
2736
  },
2733
2737
  },
2734
2738
  {
2735
- fingerprint: tuya.fingerprint('TS0601', ['_TZE200_mwvfvw8g', '_TZE200_wnp4d4va', '_TZE200_cduqh1l0', '_TZE200_emxxanvi']),
2739
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_mwvfvw8g', '_TZE200_wnp4d4va', '_TZE200_cduqh1l0', '_TZE200_emxxanvi', '_TZE204_g4au0afs']),
2736
2740
  model: 'TS0601_switch_6_gang',
2737
2741
  vendor: 'Tuya',
2738
2742
  description: '6 gang switch',
@@ -2770,7 +2774,7 @@ const definitions = [
2770
2774
  },
2771
2775
  },
2772
2776
  {
2773
- fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ojtqawav', '_TZE204_gbagoilo']),
2777
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ojtqawav', '_TZE204_gbagoilo', '_TZE200_ojtqawav']),
2774
2778
  model: 'TS0601_switch_1_gang',
2775
2779
  vendor: 'Tuya',
2776
2780
  description: '1 gang switch',
@@ -3055,6 +3059,7 @@ const definitions = [
3055
3059
  toZigbee: [],
3056
3060
  exposes: [e.battery(), e.temperature(), e.humidity(), e.battery_voltage()],
3057
3061
  configure: tuya.configureMagicPacket,
3062
+ ota: true,
3058
3063
  whiteLabel: [
3059
3064
  { vendor: 'BlitzWolf', model: 'BW-IS4' },
3060
3065
  tuya.whitelabel('Tuya', 'TS0201_1', 'Zigbee 3.0 temperature humidity sensor with display', ['_TZ3210_alxkwn0h']),
@@ -3220,6 +3225,7 @@ const definitions = [
3220
3225
  { vendor: 'Haozee', model: 'ESW-OZAA-EU' },
3221
3226
  { vendor: 'LoraTap', model: 'SS6400ZB' },
3222
3227
  { vendor: 'Moes', model: 'ZT-SY-EU-G-4S-WH-MS' },
3228
+ { vendor: 'Nedis', model: 'ZBWS40WT' },
3223
3229
  tuya.whitelabel('Moes', 'ZT-SR-EU4', 'Star Ring 4 Gang Scene Switch', ['_TZ3000_a4xycprs']),
3224
3230
  tuya.whitelabel('Tuya', 'TS0044_1', 'Zigbee 4 button remote - 12 scene', ['_TZ3000_dziaict4', '_TZ3000_mh9px7cq', '_TZ3000_j61x9rxn']),
3225
3231
  tuya.whitelabel('Tuya', 'TM-YKQ004', 'Zigbee 4 button remote - 12 scene', ['_TZ3000_u3nv1jwk']),
@@ -4194,6 +4200,7 @@ const definitions = [
4194
4200
  { modelID: 'TS0601', manufacturerName: '_TZE200_lpwgshtl' },
4195
4201
  { modelID: 'TS0601', manufacturerName: '_TZE200_rk1wojce' }, // Emos P5630S
4196
4202
  { modelID: 'TS0601', manufacturerName: '_TZE200_rndg81sf' },
4203
+ { modelID: 'TS0601', manufacturerName: '_TZE200_qjp4ynvi' },
4197
4204
  ],
4198
4205
  model: 'TS0601_thermostat',
4199
4206
  vendor: 'Tuya',
@@ -4640,11 +4647,16 @@ const definitions = [
4640
4647
  fingerprint: tuya.fingerprint('TS0601', [
4641
4648
  '_TZE200_bvu2wnxz' /* model: 'ME167', vendor: 'AVATTO' */,
4642
4649
  '_TZE200_6rdj8dzm' /* model: 'ME167', vendor: 'AVATTO' */,
4650
+ '_TZE200_9xfjixap' /* model: 'ME167', vendor: 'AVATTO' */,
4643
4651
  '_TZE200_p3dbf6qs' /* model: 'ME168', vendor: 'AVATTO' */,
4644
4652
  '_TZE200_rxntag7i' /* model: 'ME168', vendor: 'AVATTO' */,
4645
4653
  '_TZE200_yqgbrdyo',
4654
+ '_TZE284_p3dbf6qs',
4646
4655
  '_TZE200_rxq4iti9',
4647
4656
  '_TZE200_hvaxb2tc' /* model: 'TRV06', vendor: 'AVATTO' */,
4657
+ '_TZE284_o3x45p96' /* model: 'TRV06', vendor: 'AVATTO' */,
4658
+ '_TZE284_c6wv4xyo' /* model: 'AVATTO_TRV06', vendor: 'AVATTO_TRV06' */,
4659
+ '_TZE204_o3x45p96' /* model: 'AVATTO_TRV06', vendor: 'AVATTO_TRV06' */,
4648
4660
  ]),
4649
4661
  model: 'TS0601_thermostat_3',
4650
4662
  vendor: 'Tuya',
@@ -4652,10 +4664,11 @@ const definitions = [
4652
4664
  fromZigbee: [tuya.fz.datapoints],
4653
4665
  toZigbee: [tuya.tz.datapoints],
4654
4666
  whiteLabel: [
4655
- tuya.whitelabel('AVATTO', 'ME167', 'Thermostatic radiator valve', ['_TZE200_bvu2wnxz', '_TZE200_6rdj8dzm']),
4667
+ tuya.whitelabel('AVATTO', 'ME167', 'Thermostatic radiator valve', ['_TZE200_bvu2wnxz', '_TZE200_6rdj8dzm', '_TZE200_9xfjixap']),
4656
4668
  tuya.whitelabel('AVATTO', 'ME168', 'Thermostatic radiator valve', ['_TZE200_p3dbf6qs', '_TZE200_rxntag7i']),
4657
- tuya.whitelabel('AVATTO', 'TRV06_1', 'Thermostatic radiator valve', ['_TZE200_hvaxb2tc']),
4669
+ tuya.whitelabel('AVATTO', 'TRV06_1', 'Thermostatic radiator valve', ['_TZE200_hvaxb2tc', '_TZE284_o3x45p96']),
4658
4670
  tuya.whitelabel('EARU', 'TRV06', 'Smart thermostat module', ['_TZE200_yqgbrdyo', '_TZE200_rxq4iti9']),
4671
+ tuya.whitelabel('AVATTO', 'AVATTO_TRV06', 'Thermostatic radiator valve', ['_TZE284_c6wv4xyo', '_TZE204_o3x45p96']),
4659
4672
  ],
4660
4673
  onEvent: tuya.onEventSetTime,
4661
4674
  configure: tuya.configureMagicPacket,
@@ -6794,7 +6807,7 @@ const definitions = [
6794
6807
  tuya.valueConverterBasic.lookup((_, device) => {
6795
6808
  // https://github.com/Koenkk/zigbee2mqtt/issues/21353#issuecomment-1938328429
6796
6809
  if (device.manufacturerName === '_TZE200_viy9ihs7') {
6797
- return { auto: tuya.enum(1), manual: tuya.enum(0), temporary_manual: tuya.enum(2) };
6810
+ return { auto: tuya.enum(0), manual: tuya.enum(1), temporary_manual: tuya.enum(2) };
6798
6811
  }
6799
6812
  else {
6800
6813
  return { auto: tuya.enum(0), manual: tuya.enum(1), temporary_manual: tuya.enum(2) };
@@ -6925,7 +6938,7 @@ const definitions = [
6925
6938
  whiteLabel: [tuya.whitelabel('Tuya', 'QT-07S', 'Soil sensor', ['_TZE204_myd45weu'])],
6926
6939
  },
6927
6940
  {
6928
- fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_8uxxzz4b', '_TZ3000_hy6ncvmw']),
6941
+ fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_8uxxzz4b', '_TZ3000_hy6ncvmw', '_TZ3000_9kbbfeho']),
6929
6942
  model: 'TS0222_light',
6930
6943
  vendor: 'Tuya',
6931
6944
  description: 'Light sensor',
@@ -6933,6 +6946,7 @@ const definitions = [
6933
6946
  toZigbee: [],
6934
6947
  configure: tuya.configureMagicPacket,
6935
6948
  exposes: [e.battery(), e.illuminance()],
6949
+ whiteLabel: [tuya.whitelabel('Moes', 'ZSS-QT-LS-C', 'Light sensor', ['_TZ3000_9kbbfeho'])],
6936
6950
  },
6937
6951
  {
6938
6952
  fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_t9qqxn70']),
@@ -8551,6 +8565,7 @@ const definitions = [
8551
8565
  e.light_brightness().withMinBrightness().withMaxBrightness(),
8552
8566
  tuya.exposes.lightType().withAccess(ea.ALL),
8553
8567
  e.power_on_behavior().withAccess(ea.ALL),
8568
+ tuya.exposes.switchType(),
8554
8569
  ],
8555
8570
  configure: async (device, coordinatorEndpoint) => {
8556
8571
  await tuya.configureMagicPacket(device, coordinatorEndpoint);
@@ -8663,7 +8678,7 @@ const definitions = [
8663
8678
  [111, 'energy_b', tuya.valueConverter.divideBy1000],
8664
8679
  [121, 'energy_c', tuya.valueConverter.divideBy1000],
8665
8680
  [131, 'current', tuya.valueConverter.divideBy1000],
8666
- [9, 'power', tuya.valueConverter.raw],
8681
+ [9, 'power', tuya.valueConverter.power],
8667
8682
  [102, 'power_factor_a', tuya.valueConverter.raw],
8668
8683
  [112, 'power_factor_b', tuya.valueConverter.raw],
8669
8684
  [122, 'power_factor_c', tuya.valueConverter.raw],
@@ -10555,7 +10570,7 @@ const definitions = [
10555
10570
  },
10556
10571
  },
10557
10572
  {
10558
- fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ya4ft0w4']),
10573
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ya4ft0w4', '_TZE200_ya4ft0w4']),
10559
10574
  model: 'ZY-M100-24GV3',
10560
10575
  vendor: 'Tuya',
10561
10576
  description: '24G MmWave radar human presence motion sensor(added distance switch)',
@@ -11822,7 +11837,7 @@ const definitions = [
11822
11837
  ],
11823
11838
  meta: {
11824
11839
  tuyaDatapoints: [
11825
- [1, 'presence', tuya.valueConverter.trueFalse1],
11840
+ [1, 'presence', tuya.valueConverterBasic.trueFalse(4)],
11826
11841
  [101, 'target_distance', tuya.valueConverter.raw],
11827
11842
  [102, 'illuminance', tuya.valueConverter.raw],
11828
11843
  [103, 'fading_time', tuya.valueConverter.raw],
@@ -12164,6 +12179,25 @@ const definitions = [
12164
12179
  ],
12165
12180
  },
12166
12181
  },
12182
+ {
12183
+ zigbeeModel: ['TS0105'],
12184
+ model: 'TS0105',
12185
+ vendor: 'TuYa',
12186
+ description: '3 gang switch',
12187
+ extend: [tuyaBase({ dp: true }), (0, modernExtend_1.deviceEndpoints)({ endpoints: { l1: 1, l2: 1, l3: 1 } })],
12188
+ exposes: [
12189
+ e.switch().withEndpoint('l1').setAccess('state', ea.STATE_SET),
12190
+ e.switch().withEndpoint('l2').setAccess('state', ea.STATE_SET),
12191
+ e.switch().withEndpoint('l3').setAccess('state', ea.STATE_SET),
12192
+ ],
12193
+ meta: {
12194
+ tuyaDatapoints: [
12195
+ [1, 'state_l1', tuya.valueConverter.onOff],
12196
+ [2, 'state_l2', tuya.valueConverter.onOff],
12197
+ [3, 'state_l3', tuya.valueConverter.onOff],
12198
+ ],
12199
+ },
12200
+ },
12167
12201
  {
12168
12202
  fingerprint: tuya.fingerprint('TS0601', ['_TZE200_iba1ckek', '_TZE200_hggxgsjj']),
12169
12203
  model: 'ZG-103Z',
@@ -12735,6 +12769,46 @@ const definitions = [
12735
12769
  ],
12736
12770
  },
12737
12771
  },
12772
+ {
12773
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_q12rv9gj']),
12774
+ model: 'HHST001',
12775
+ vendor: 'HeatHUB',
12776
+ description: 'Fan coil thermostat',
12777
+ fromZigbee: [tuya.fz.datapoints],
12778
+ toZigbee: [tuya.tz.datapoints],
12779
+ onEvent: tuya.onEventSetTime,
12780
+ configure: tuya.configureMagicPacket,
12781
+ exposes: [
12782
+ e.binary('state', ea.STATE_SET, 'ON', 'OFF').withDescription('Turn the thermostat ON/OFF'),
12783
+ e
12784
+ .climate()
12785
+ .withLocalTemperature(ea.STATE)
12786
+ .withSystemMode(['cool', 'heat', 'fan_only'], ea.STATE_SET)
12787
+ .withSetpoint('current_heating_setpoint', 5, 45, 1, ea.STATE_SET)
12788
+ .withFanMode(['auto', 'high', 'medium', 'low'], ea.STATE_SET)
12789
+ .withLocalTemperatureCalibration(-9, 9, 0.5, ea.STATE_SET),
12790
+ e.min_temperature().withValueMin(5).withValueMax(15),
12791
+ e.max_temperature().withValueMin(35).withValueMax(45),
12792
+ e.child_lock(),
12793
+ e.humidity(),
12794
+ e.binary('manual_mode', ea.STATE_SET, 'ON', 'OFF').withDescription('Manual = ON or Schedule = OFF'),
12795
+ ],
12796
+ meta: {
12797
+ tuyaDatapoints: [
12798
+ [1, 'state', tuya.valueConverter.onOff],
12799
+ [2, 'system_mode', tuya.valueConverterBasic.lookup({ cool: tuya.enum(0), heat: tuya.enum(1), fan_only: tuya.enum(2) })],
12800
+ [16, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
12801
+ [19, 'max_temperature', tuya.valueConverter.divideBy10],
12802
+ [24, 'local_temperature', tuya.valueConverter.divideBy10],
12803
+ [26, 'min_temperature', tuya.valueConverter.divideBy10],
12804
+ [102, 'local_temperature_calibration', tuya.valueConverter.localTemperatureCalibration],
12805
+ [28, 'fan_mode', tuya.valueConverterBasic.lookup({ auto: tuya.enum(0), high: tuya.enum(1), medium: tuya.enum(2), low: tuya.enum(3) })],
12806
+ [40, 'child_lock', tuya.valueConverter.lockUnlock],
12807
+ [113, 'humidity', tuya.valueConverter.raw],
12808
+ [101, 'manual_mode', tuya.valueConverter.onOff],
12809
+ ],
12810
+ },
12811
+ },
12738
12812
  ];
12739
12813
  exports.default = definitions;
12740
12814
  module.exports = definitions;