zigbee-herdsman-converters 20.47.0 → 20.49.0

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 (41) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/converters/fromZigbee.js +1 -1
  3. package/converters/fromZigbee.js.map +1 -1
  4. package/devices/custom_devices_diy.d.ts.map +1 -1
  5. package/devices/custom_devices_diy.js +8 -1
  6. package/devices/custom_devices_diy.js.map +1 -1
  7. package/devices/ikea.d.ts.map +1 -1
  8. package/devices/ikea.js +21 -7
  9. package/devices/ikea.js.map +1 -1
  10. package/devices/index.d.ts.map +1 -1
  11. package/devices/index.js +2 -0
  12. package/devices/index.js.map +1 -1
  13. package/devices/lumi.d.ts.map +1 -1
  14. package/devices/lumi.js +7 -0
  15. package/devices/lumi.js.map +1 -1
  16. package/devices/schneider_electric.d.ts.map +1 -1
  17. package/devices/schneider_electric.js +103 -0
  18. package/devices/schneider_electric.js.map +1 -1
  19. package/devices/somfy.d.ts.map +1 -1
  20. package/devices/somfy.js +2 -9
  21. package/devices/somfy.js.map +1 -1
  22. package/devices/sonoff.d.ts.map +1 -1
  23. package/devices/sonoff.js +229 -0
  24. package/devices/sonoff.js.map +1 -1
  25. package/devices/sunricher.d.ts.map +1 -1
  26. package/devices/sunricher.js +7 -0
  27. package/devices/sunricher.js.map +1 -1
  28. package/devices/tech.d.ts +4 -0
  29. package/devices/tech.d.ts.map +1 -0
  30. package/devices/tech.js +120 -0
  31. package/devices/tech.js.map +1 -0
  32. package/devices/tuya.d.ts.map +1 -1
  33. package/devices/tuya.js +53 -7
  34. package/devices/tuya.js.map +1 -1
  35. package/lib/exposes.js +5 -5
  36. package/lib/exposes.js.map +1 -1
  37. package/lib/modernExtend.d.ts +1 -0
  38. package/lib/modernExtend.d.ts.map +1 -1
  39. package/lib/modernExtend.js +23 -1
  40. package/lib/modernExtend.js.map +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1,120 @@
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 ota = __importStar(require("../lib/ota"));
28
+ const tuya = __importStar(require("../lib/tuya"));
29
+ const e = exposes.presets;
30
+ const ea = exposes.access;
31
+ const definitions = [
32
+ {
33
+ fingerprint: [{ modelID: 'TS0601', manufacturerName: '_TZE204_r7brscr6' }],
34
+ model: 'VNTH-T2',
35
+ vendor: 'TECH',
36
+ description: 'Smart radiator valve',
37
+ ota: ota.zigbeeOTA,
38
+ onEvent: tuya.onEventSetLocalTime,
39
+ fromZigbee: [tuya.fz.datapoints],
40
+ toZigbee: [tuya.tz.datapoints],
41
+ configure: tuya.configureMagicPacket,
42
+ exposes: [
43
+ e.child_lock(),
44
+ e.window_detection(),
45
+ e.window_open(),
46
+ e.binary('window_open', ea.STATE, true, false).withDescription('Window open?'),
47
+ e
48
+ .climate()
49
+ .withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
50
+ .withLocalTemperature(ea.STATE)
51
+ .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 ' +
52
+ 'to the desired temperature. If you want TRV to properly regulate the temperature you need to use mode `auto` ' +
53
+ 'instead setting the desired temperature.')
54
+ .withLocalTemperatureCalibration(-9, 9, 0.5, ea.STATE_SET)
55
+ .withPreset(['manual', 'schedule', 'eco', 'comfort', 'antifrost', 'holiday'])
56
+ .withRunningState(['idle', 'heat'], ea.STATE),
57
+ e.away_mode(),
58
+ e
59
+ .numeric('temperature_sensitivity', ea.STATE_SET)
60
+ .withUnit('°C')
61
+ .withDescription('Temperature sensivity')
62
+ .withValueMin(0.5)
63
+ .withValueMax(5)
64
+ .withValueStep(0.5),
65
+ e.comfort_temperature().withValueStep(0.5),
66
+ e.eco_temperature().withValueStep(0.5),
67
+ e.holiday_temperature().withValueStep(0.5),
68
+ e.min_temperature_limit().withValueMin(5).withValueMax(15).withValueStep(0.5), // min temperature for frost protection
69
+ e
70
+ .binary('frost_protection', ea.STATE_SET, 'ON', 'OFF')
71
+ .withDescription('Indicates if the frost protection mode is enabled')
72
+ .withCategory('config'),
73
+ e.valve_alarm(),
74
+ ...tuya.exposes.scheduleAllDays(ea.STATE_SET, 'HH:MM/C HH:MM/C HH:MM/C HH:MM/C'),
75
+ ],
76
+ meta: {
77
+ tuyaDatapoints: [
78
+ [101, 'system_mode', tuya.valueConverterBasic.lookup({ heat: true, off: false })],
79
+ [101, 'state', tuya.valueConverter.onOff],
80
+ [7, 'child_lock', tuya.valueConverter.lockUnlock],
81
+ [3, 'running_state', tuya.valueConverterBasic.lookup({ heat: tuya.enum(1), idle: tuya.enum(0) })],
82
+ [5, 'local_temperature', tuya.valueConverter.divideBy10],
83
+ [47, 'local_temperature_calibration', tuya.valueConverter.localTempCalibration1],
84
+ [6, 'battery', tuya.valueConverter.raw],
85
+ [4, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
86
+ [102, 'temperature_sensitivity', tuya.valueConverter.divideBy10],
87
+ [104, 'comfort_temperature', tuya.valueConverter.divideBy10],
88
+ [103, 'eco_temperature', tuya.valueConverter.divideBy10],
89
+ [21, 'holiday_temperature', tuya.valueConverter.divideBy10],
90
+ [105, 'min_temperature_limit', tuya.valueConverter.divideBy10],
91
+ [36, 'frost_protection', tuya.valueConverter.onOff],
92
+ [14, 'window_detection', tuya.valueConverter.onOff],
93
+ [15, 'window_open', tuya.valueConverter.onOff],
94
+ [35, 'fault_alarm', tuya.valueConverter.raw], // not sure
95
+ [
96
+ 2,
97
+ 'preset',
98
+ tuya.valueConverterBasic.lookup({
99
+ manual: tuya.enum(0), // Hand / "normal"
100
+ schedule: tuya.enum(1), // Clock / "Auto"
101
+ eco: tuya.enum(2), // "E" / Moon
102
+ comfort: tuya.enum(3), // Leaf / Sun
103
+ antifrost: tuya.enum(4), // Flake
104
+ holiday: tuya.enum(5), // Palm tree
105
+ }),
106
+ ],
107
+ [28, 'schedule_monday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(1)],
108
+ [29, 'schedule_tuesday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(2)],
109
+ [30, 'schedule_wednesday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(3)],
110
+ [31, 'schedule_thursday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(4)],
111
+ [32, 'schedule_friday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(5)],
112
+ [33, 'schedule_saturday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(6)],
113
+ [34, 'schedule_sunday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(7)],
114
+ ],
115
+ },
116
+ },
117
+ ];
118
+ exports.default = definitions;
119
+ module.exports = definitions;
120
+ //# 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":"AA2BA,OAAO,EAAC,oBAAoB,EAA0E,MAAM,cAAc,CAAC;AA6wB3H,QAAA,MAAM,WAAW,EAAE,oBAAoB,EAyzXtC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"tuya.d.ts","sourceRoot":"","sources":["../src/devices/tuya.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAC,oBAAoB,EAA0E,MAAM,cAAc,CAAC;AA6wB3H,QAAA,MAAM,WAAW,EAAE,oBAAoB,EAu2XtC,CAAC;AAEF,eAAe,WAAW,CAAC"}
package/devices/tuya.js CHANGED
@@ -1898,8 +1898,11 @@ const definitions = [
1898
1898
  whiteLabel: [
1899
1899
  { vendor: 'CR Smart Home', model: 'TS0207' },
1900
1900
  tuya.whitelabel('Meian', 'SW02', 'Water leak sensor', ['_TZ3000_kyb656no']),
1901
- tuya.whitelabel('Aubess', 'IH-K665', 'Water leak sensor', ['_TZ3000_k4ej3ww2', '_TZ3000_kstbkt6a', '_TZ3000_upgcbody']),
1902
- tuya.whitelabel('Tuya', 'TS0207_water_leak_detector_1', 'Zigbee water flood sensor + 1m probe cable', ['_TZ3000_ocjlo4ea']),
1901
+ tuya.whitelabel('Aubess', 'IH-K665', 'Water leak sensor', ['_TZ3000_k4ej3ww2', '_TZ3000_kstbkt6a']),
1902
+ tuya.whitelabel('Tuya', 'TS0207_water_leak_detector_1', 'Zigbee water flood sensor + 1m probe cable', [
1903
+ '_TZ3000_ocjlo4ea',
1904
+ '_TZ3000_upgcbody',
1905
+ ]),
1903
1906
  tuya.whitelabel('Tuya', 'TS0207_water_leak_detector_3', 'Zigbee water leak sensor', ['_TYZB01_sqmd19i1']),
1904
1907
  tuya.whitelabel('Tuya', '899WZ', 'Water leak detector with 80DB Alarm', ['_TZ3000_mugyhz0q']),
1905
1908
  tuya.whitelabel('Niceboy', 'ORBIS Water Sensor', 'Water leak sensor', ['_TZ3000_awvmkayh']),
@@ -2772,7 +2775,7 @@ const definitions = [
2772
2775
  },
2773
2776
  },
2774
2777
  {
2775
- fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ojtqawav', '_TZE204_gbagoilo']),
2778
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ojtqawav', '_TZE204_gbagoilo', '_TZE200_ojtqawav']),
2776
2779
  model: 'TS0601_switch_1_gang',
2777
2780
  vendor: 'Tuya',
2778
2781
  description: '1 gang switch',
@@ -4196,6 +4199,7 @@ const definitions = [
4196
4199
  { modelID: 'TS0601', manufacturerName: '_TZE200_lpwgshtl' },
4197
4200
  { modelID: 'TS0601', manufacturerName: '_TZE200_rk1wojce' }, // Emos P5630S
4198
4201
  { modelID: 'TS0601', manufacturerName: '_TZE200_rndg81sf' },
4202
+ { modelID: 'TS0601', manufacturerName: '_TZE200_qjp4ynvi' },
4199
4203
  ],
4200
4204
  model: 'TS0601_thermostat',
4201
4205
  vendor: 'Tuya',
@@ -4649,6 +4653,7 @@ const definitions = [
4649
4653
  '_TZE284_p3dbf6qs',
4650
4654
  '_TZE200_rxq4iti9',
4651
4655
  '_TZE200_hvaxb2tc' /* model: 'TRV06', vendor: 'AVATTO' */,
4656
+ '_TZE284_o3x45p96' /* model: 'TRV06', vendor: 'AVATTO' */,
4652
4657
  ]),
4653
4658
  model: 'TS0601_thermostat_3',
4654
4659
  vendor: 'Tuya',
@@ -4658,7 +4663,7 @@ const definitions = [
4658
4663
  whiteLabel: [
4659
4664
  tuya.whitelabel('AVATTO', 'ME167', 'Thermostatic radiator valve', ['_TZE200_bvu2wnxz', '_TZE200_6rdj8dzm', '_TZE200_9xfjixap']),
4660
4665
  tuya.whitelabel('AVATTO', 'ME168', 'Thermostatic radiator valve', ['_TZE200_p3dbf6qs', '_TZE200_rxntag7i']),
4661
- tuya.whitelabel('AVATTO', 'TRV06_1', 'Thermostatic radiator valve', ['_TZE200_hvaxb2tc']),
4666
+ tuya.whitelabel('AVATTO', 'TRV06_1', 'Thermostatic radiator valve', ['_TZE200_hvaxb2tc', '_TZE284_o3x45p96']),
4662
4667
  tuya.whitelabel('EARU', 'TRV06', 'Smart thermostat module', ['_TZE200_yqgbrdyo', '_TZE200_rxq4iti9']),
4663
4668
  ],
4664
4669
  onEvent: tuya.onEventSetTime,
@@ -6929,7 +6934,7 @@ const definitions = [
6929
6934
  whiteLabel: [tuya.whitelabel('Tuya', 'QT-07S', 'Soil sensor', ['_TZE204_myd45weu'])],
6930
6935
  },
6931
6936
  {
6932
- fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_8uxxzz4b', '_TZ3000_hy6ncvmw']),
6937
+ fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_8uxxzz4b', '_TZ3000_hy6ncvmw', '_TZ3000_9kbbfeho']),
6933
6938
  model: 'TS0222_light',
6934
6939
  vendor: 'Tuya',
6935
6940
  description: 'Light sensor',
@@ -8556,6 +8561,7 @@ const definitions = [
8556
8561
  e.light_brightness().withMinBrightness().withMaxBrightness(),
8557
8562
  tuya.exposes.lightType().withAccess(ea.ALL),
8558
8563
  e.power_on_behavior().withAccess(ea.ALL),
8564
+ tuya.exposes.switchType(),
8559
8565
  ],
8560
8566
  configure: async (device, coordinatorEndpoint) => {
8561
8567
  await tuya.configureMagicPacket(device, coordinatorEndpoint);
@@ -8668,7 +8674,7 @@ const definitions = [
8668
8674
  [111, 'energy_b', tuya.valueConverter.divideBy1000],
8669
8675
  [121, 'energy_c', tuya.valueConverter.divideBy1000],
8670
8676
  [131, 'current', tuya.valueConverter.divideBy1000],
8671
- [9, 'power', tuya.valueConverter.raw],
8677
+ [9, 'power', tuya.valueConverter.power],
8672
8678
  [102, 'power_factor_a', tuya.valueConverter.raw],
8673
8679
  [112, 'power_factor_b', tuya.valueConverter.raw],
8674
8680
  [122, 'power_factor_c', tuya.valueConverter.raw],
@@ -11827,7 +11833,7 @@ const definitions = [
11827
11833
  ],
11828
11834
  meta: {
11829
11835
  tuyaDatapoints: [
11830
- [1, 'presence', tuya.valueConverter.trueFalse1],
11836
+ [1, 'presence', tuya.valueConverterBasic.trueFalse(4)],
11831
11837
  [101, 'target_distance', tuya.valueConverter.raw],
11832
11838
  [102, 'illuminance_lux', tuya.valueConverter.raw],
11833
11839
  [103, 'fading_time', tuya.valueConverter.raw],
@@ -12759,6 +12765,46 @@ const definitions = [
12759
12765
  ],
12760
12766
  },
12761
12767
  },
12768
+ {
12769
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_q12rv9gj']),
12770
+ model: 'HHST001',
12771
+ vendor: 'HeatHUB',
12772
+ description: 'Fan coil thermostat',
12773
+ fromZigbee: [tuya.fz.datapoints],
12774
+ toZigbee: [tuya.tz.datapoints],
12775
+ onEvent: tuya.onEventSetTime,
12776
+ configure: tuya.configureMagicPacket,
12777
+ exposes: [
12778
+ e.binary('state', ea.STATE_SET, 'ON', 'OFF').withDescription('Turn the thermostat ON/OFF'),
12779
+ e
12780
+ .climate()
12781
+ .withLocalTemperature(ea.STATE)
12782
+ .withSystemMode(['cool', 'heat', 'fan_only'], ea.STATE_SET)
12783
+ .withSetpoint('current_heating_setpoint', 5, 45, 1, ea.STATE_SET)
12784
+ .withFanMode(['auto', 'high', 'medium', 'low'], ea.STATE_SET)
12785
+ .withLocalTemperatureCalibration(-9, 9, 0.5, ea.STATE_SET),
12786
+ e.min_temperature().withValueMin(5).withValueMax(15),
12787
+ e.max_temperature().withValueMin(35).withValueMax(45),
12788
+ e.child_lock(),
12789
+ e.humidity(),
12790
+ e.binary('manual_mode', ea.STATE_SET, 'ON', 'OFF').withDescription('Manual = ON or Schedule = OFF'),
12791
+ ],
12792
+ meta: {
12793
+ tuyaDatapoints: [
12794
+ [1, 'state', tuya.valueConverter.onOff],
12795
+ [2, 'system_mode', tuya.valueConverterBasic.lookup({ cool: tuya.enum(0), heat: tuya.enum(1), fan_only: tuya.enum(2) })],
12796
+ [16, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
12797
+ [19, 'max_temperature', tuya.valueConverter.divideBy10],
12798
+ [24, 'local_temperature', tuya.valueConverter.divideBy10],
12799
+ [26, 'min_temperature', tuya.valueConverter.divideBy10],
12800
+ [102, 'local_temperature_calibration', tuya.valueConverter.localTemperatureCalibration],
12801
+ [28, 'fan_mode', tuya.valueConverterBasic.lookup({ auto: tuya.enum(0), high: tuya.enum(1), medium: tuya.enum(2), low: tuya.enum(3) })],
12802
+ [40, 'child_lock', tuya.valueConverter.lockUnlock],
12803
+ [113, 'humidity', tuya.valueConverter.raw],
12804
+ [101, 'manual_mode', tuya.valueConverter.onOff],
12805
+ ],
12806
+ },
12807
+ },
12762
12808
  ];
12763
12809
  exports.default = definitions;
12764
12810
  module.exports = definitions;