zigbee-herdsman-converters 20.32.0 → 20.34.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.
- package/CHANGELOG.md +37 -0
- package/converters/toZigbee.js +1 -1
- package/converters/toZigbee.js.map +1 -1
- package/devices/candeo.d.ts.map +1 -1
- package/devices/candeo.js +79 -0
- package/devices/candeo.js.map +1 -1
- package/devices/develco.d.ts.map +1 -1
- package/devices/develco.js +11 -10
- package/devices/develco.js.map +1 -1
- package/devices/ewelink.d.ts.map +1 -1
- package/devices/ewelink.js +14 -0
- package/devices/ewelink.js.map +1 -1
- package/devices/gledopto.d.ts.map +1 -1
- package/devices/gledopto.js +7 -0
- package/devices/gledopto.js.map +1 -1
- package/devices/ikea.d.ts.map +1 -1
- package/devices/ikea.js +14 -3
- package/devices/ikea.js.map +1 -1
- package/devices/innr.d.ts.map +1 -1
- package/devices/innr.js +7 -0
- package/devices/innr.js.map +1 -1
- package/devices/nodon.d.ts.map +1 -1
- package/devices/nodon.js +158 -62
- package/devices/nodon.js.map +1 -1
- package/devices/philips.d.ts.map +1 -1
- package/devices/philips.js +15 -1
- package/devices/philips.js.map +1 -1
- package/devices/sonoff.d.ts.map +1 -1
- package/devices/sonoff.js +19 -51
- package/devices/sonoff.js.map +1 -1
- package/devices/third_reality.js +1 -1
- package/devices/tuya.d.ts.map +1 -1
- package/devices/tuya.js +249 -4
- package/devices/tuya.js.map +1 -1
- package/lib/ewelink.d.ts +1 -0
- package/lib/ewelink.d.ts.map +1 -1
- package/lib/ewelink.js +10 -0
- package/lib/ewelink.js.map +1 -1
- package/lib/modernExtend.d.ts +1 -0
- package/lib/modernExtend.d.ts.map +1 -1
- package/lib/modernExtend.js +9 -1
- package/lib/modernExtend.js.map +1 -1
- package/lib/tuya.d.ts +8 -0
- package/lib/tuya.d.ts.map +1 -1
- package/lib/tuya.js +49 -0
- package/lib/tuya.js.map +1 -1
- package/package.json +1 -1
package/devices/tuya.js
CHANGED
|
@@ -5024,6 +5024,130 @@ const definitions = [
|
|
|
5024
5024
|
],
|
|
5025
5025
|
},
|
|
5026
5026
|
},
|
|
5027
|
+
{
|
|
5028
|
+
fingerprint: [{ modelID: 'TS0601', manufacturerName: '_TZE204_ltwbm23f' }],
|
|
5029
|
+
model: 'TRV602Z',
|
|
5030
|
+
vendor: 'Tuya',
|
|
5031
|
+
description: 'Thermostatic radiator valve.',
|
|
5032
|
+
extend: [tuyaBase({ dp: true })],
|
|
5033
|
+
exposes: [
|
|
5034
|
+
e.battery(),
|
|
5035
|
+
e.child_lock(),
|
|
5036
|
+
e.max_temperature(),
|
|
5037
|
+
e.min_temperature(),
|
|
5038
|
+
e.position(),
|
|
5039
|
+
e.window_detection(),
|
|
5040
|
+
e.binary('window', ea.STATE, 'OPEN', 'CLOSE').withDescription('Window status closed or open '),
|
|
5041
|
+
e.enum('mode', ea.STATE_SET, ['standby', 'antifrost', 'eco', 'comfort', 'auto', 'on']).withDescription('Mode'),
|
|
5042
|
+
e
|
|
5043
|
+
.climate()
|
|
5044
|
+
.withLocalTemperature(ea.STATE)
|
|
5045
|
+
.withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
|
|
5046
|
+
.withLocalTemperatureCalibration(-30, 30, 0.1, ea.STATE_SET),
|
|
5047
|
+
...tuya.exposes.scheduleAllDays(ea.STATE_SET, 'HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C'),
|
|
5048
|
+
e.comfort_temperature().withValueMin(5).withValueMax(30).withDescription('Comfort mode temperature'),
|
|
5049
|
+
e.eco_temperature().withValueMin(5).withValueMax(30).withDescription('Eco mode temperature'),
|
|
5050
|
+
e.enum('display_brightness', ea.STATE_SET, ['high', 'medium', 'low']).withDescription('Display brightness'),
|
|
5051
|
+
e.enum('screen_orientation', ea.STATE_SET, ['up', 'right', 'down', 'left']).withDescription('Screen orientation'),
|
|
5052
|
+
e
|
|
5053
|
+
.enum('system_mode', ea.STATE_SET, ['comfort', 'eco'])
|
|
5054
|
+
.withDescription('Hysteresis - comfort > switches off/on exactly at reached ' +
|
|
5055
|
+
'temperature with valve smooth from 0 to 100%, eco > 0.5 degrees above or below, valve either 0 or 100%'),
|
|
5056
|
+
e.enum('motor_thrust', ea.STATE_SET, ['strong', 'middle', 'weak']),
|
|
5057
|
+
],
|
|
5058
|
+
meta: {
|
|
5059
|
+
tuyaDatapoints: [
|
|
5060
|
+
[
|
|
5061
|
+
2,
|
|
5062
|
+
'mode',
|
|
5063
|
+
tuya.valueConverterBasic.lookup({
|
|
5064
|
+
standby: tuya.enum(0),
|
|
5065
|
+
antifrost: tuya.enum(1),
|
|
5066
|
+
eco: tuya.enum(2),
|
|
5067
|
+
comfort: tuya.enum(3),
|
|
5068
|
+
auto: tuya.enum(4),
|
|
5069
|
+
on: tuya.enum(5),
|
|
5070
|
+
}),
|
|
5071
|
+
],
|
|
5072
|
+
[4, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
|
|
5073
|
+
[5, 'local_temperature', tuya.valueConverter.divideBy10],
|
|
5074
|
+
[6, 'battery', tuya.valueConverter.raw],
|
|
5075
|
+
[
|
|
5076
|
+
7,
|
|
5077
|
+
'child_lock',
|
|
5078
|
+
tuya.valueConverterBasic.lookup({
|
|
5079
|
+
LOCK: true,
|
|
5080
|
+
UNLOCK: false,
|
|
5081
|
+
}),
|
|
5082
|
+
],
|
|
5083
|
+
[9, 'max_temperature', tuya.valueConverter.divideBy10],
|
|
5084
|
+
[10, 'min_temperature', tuya.valueConverter.divideBy10],
|
|
5085
|
+
[
|
|
5086
|
+
14,
|
|
5087
|
+
'window_detection',
|
|
5088
|
+
tuya.valueConverterBasic.lookup({
|
|
5089
|
+
ON: true,
|
|
5090
|
+
OFF: false,
|
|
5091
|
+
}),
|
|
5092
|
+
],
|
|
5093
|
+
[
|
|
5094
|
+
15,
|
|
5095
|
+
'window',
|
|
5096
|
+
tuya.valueConverterBasic.lookup({
|
|
5097
|
+
CLOSE: tuya.enum(0),
|
|
5098
|
+
OPEN: tuya.enum(1),
|
|
5099
|
+
}),
|
|
5100
|
+
],
|
|
5101
|
+
[47, 'local_temperature_calibration', tuya.valueConverter.localTempCalibration1],
|
|
5102
|
+
[102, 'schedule_monday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(1)],
|
|
5103
|
+
[103, 'schedule_tuesday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(2)],
|
|
5104
|
+
[104, 'schedule_wednesday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(3)],
|
|
5105
|
+
[105, 'schedule_thursday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(4)],
|
|
5106
|
+
[106, 'schedule_friday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(5)],
|
|
5107
|
+
[107, 'schedule_saturday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(6)],
|
|
5108
|
+
[108, 'schedule_sunday', tuya.valueConverter.thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber(7)],
|
|
5109
|
+
[
|
|
5110
|
+
110,
|
|
5111
|
+
'motor_thrust',
|
|
5112
|
+
tuya.valueConverterBasic.lookup({
|
|
5113
|
+
strong: tuya.enum(0),
|
|
5114
|
+
middle: tuya.enum(1),
|
|
5115
|
+
weak: tuya.enum(2),
|
|
5116
|
+
}),
|
|
5117
|
+
],
|
|
5118
|
+
[
|
|
5119
|
+
111,
|
|
5120
|
+
'display_brightness',
|
|
5121
|
+
tuya.valueConverterBasic.lookup({
|
|
5122
|
+
high: tuya.enum(0),
|
|
5123
|
+
medium: tuya.enum(1),
|
|
5124
|
+
low: tuya.enum(2),
|
|
5125
|
+
}),
|
|
5126
|
+
],
|
|
5127
|
+
[
|
|
5128
|
+
113,
|
|
5129
|
+
'screen_orientation',
|
|
5130
|
+
tuya.valueConverterBasic.lookup({
|
|
5131
|
+
up: tuya.enum(0),
|
|
5132
|
+
right: tuya.enum(1),
|
|
5133
|
+
down: tuya.enum(2),
|
|
5134
|
+
left: tuya.enum(3),
|
|
5135
|
+
}),
|
|
5136
|
+
],
|
|
5137
|
+
[114, 'position', tuya.valueConverter.divideBy10],
|
|
5138
|
+
[119, 'comfort_temperature', tuya.valueConverter.divideBy10],
|
|
5139
|
+
[120, 'eco_temperature', tuya.valueConverter.divideBy10],
|
|
5140
|
+
[
|
|
5141
|
+
127,
|
|
5142
|
+
'system_mode',
|
|
5143
|
+
tuya.valueConverterBasic.lookup({
|
|
5144
|
+
comfort: tuya.enum(0),
|
|
5145
|
+
eco: tuya.enum(1),
|
|
5146
|
+
}),
|
|
5147
|
+
],
|
|
5148
|
+
],
|
|
5149
|
+
},
|
|
5150
|
+
},
|
|
5027
5151
|
{
|
|
5028
5152
|
zigbeeModel: ['TS0121'],
|
|
5029
5153
|
model: 'TS0121_plug',
|
|
@@ -6624,6 +6748,16 @@ const definitions = [
|
|
|
6624
6748
|
exposes: [e.battery(), e.temperature(), e.humidity(), e.illuminance()],
|
|
6625
6749
|
whiteLabel: [tuya.whitelabel('Tuya', 'QT-07S', 'Soil sensor', ['_TZE204_myd45weu'])],
|
|
6626
6750
|
},
|
|
6751
|
+
{
|
|
6752
|
+
fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_8uxxzz4b']),
|
|
6753
|
+
model: 'TS0222_light',
|
|
6754
|
+
vendor: 'Tuya',
|
|
6755
|
+
description: 'Light sensor',
|
|
6756
|
+
fromZigbee: [fromZigbee_1.default.battery, fromZigbee_1.default.temperature],
|
|
6757
|
+
toZigbee: [],
|
|
6758
|
+
configure: tuya.configureMagicPacket,
|
|
6759
|
+
exposes: [e.battery(), e.illuminance()],
|
|
6760
|
+
},
|
|
6627
6761
|
{
|
|
6628
6762
|
fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_t9qqxn70']),
|
|
6629
6763
|
model: 'THE01860A',
|
|
@@ -8545,7 +8679,6 @@ const definitions = [
|
|
|
8545
8679
|
'_TZ3000_qystbcjg',
|
|
8546
8680
|
'_TZ3000_zrm3oxsh',
|
|
8547
8681
|
'_TZ3000_303avxxt',
|
|
8548
|
-
'_TZ3000_6l1pjfqe',
|
|
8549
8682
|
'_TZ3000_zjchz7pd',
|
|
8550
8683
|
]),
|
|
8551
8684
|
model: 'TS011F_with_threshold',
|
|
@@ -8564,7 +8697,7 @@ const definitions = [
|
|
|
8564
8697
|
toZigbee: [tzLocal.TS011F_threshold],
|
|
8565
8698
|
exposes: (device, options) => {
|
|
8566
8699
|
const exposes = [e.linkquality()];
|
|
8567
|
-
if (!['_TZ3000_303avxxt', '_TZ3000_zjchz7pd'
|
|
8700
|
+
if (!['_TZ3000_303avxxt', '_TZ3000_zjchz7pd'].includes(device?.manufacturerName)) {
|
|
8568
8701
|
exposes.push(e.temperature(), e
|
|
8569
8702
|
.numeric('temperature_threshold', ea.STATE_SET)
|
|
8570
8703
|
.withValueMin(40)
|
|
@@ -8619,7 +8752,7 @@ const definitions = [
|
|
|
8619
8752
|
tuya.whitelabel('EARU', 'EAKCB-T-M-Z', 'Smart circuit breaker', ['_TZ3000_lepzuhto']),
|
|
8620
8753
|
tuya.whitelabel('EARU', 'EAYCB-Z-2P', 'Smart circuit breaker with leakage protection', ['_TZ3000_zrm3oxsh']),
|
|
8621
8754
|
tuya.whitelabel('UNSH', 'SMKG-1KNL-EU-Z', 'Smart circuit Breaker', ['_TZ3000_qystbcjg']),
|
|
8622
|
-
tuya.whitelabel('Tomzn', 'TOB9Z-VAP', 'Smart circuit breaker', ['_TZ3000_303avxxt'
|
|
8755
|
+
tuya.whitelabel('Tomzn', 'TOB9Z-VAP', 'Smart circuit breaker', ['_TZ3000_303avxxt']),
|
|
8623
8756
|
tuya.whitelabel('Immax', '07573L', 'Smart circuit breaker', ['_TZ3000_zjchz7pd']),
|
|
8624
8757
|
],
|
|
8625
8758
|
},
|
|
@@ -9598,7 +9731,7 @@ const definitions = [
|
|
|
9598
9731
|
e.numeric('upper', ea.STATE_SET).withValueMin(0).withValueMax(50).withValueStep(1).withUnit('%').withDescription('Up movement limit'),
|
|
9599
9732
|
e.numeric('delay', ea.STATE_SET).withValueMin(0).withValueMax(10).withValueStep(1).withUnit('s').withDescription('Sustain time'),
|
|
9600
9733
|
e.binary('reverse', ea.STATE_SET, 'ON', 'OFF').withDescription('Reverse'),
|
|
9601
|
-
e.binary('touch', ea.STATE_SET, 'ON', 'OFF').withDescription('Touch
|
|
9734
|
+
e.binary('touch', ea.STATE_SET, 'ON', 'OFF').withDescription('Touch control'),
|
|
9602
9735
|
],
|
|
9603
9736
|
configure: async (device, coordinatorEndpoint) => {
|
|
9604
9737
|
await tuya.configureMagicPacket(device, coordinatorEndpoint);
|
|
@@ -12125,6 +12258,118 @@ const definitions = [
|
|
|
12125
12258
|
],
|
|
12126
12259
|
},
|
|
12127
12260
|
},
|
|
12261
|
+
{
|
|
12262
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_ha0vwoew']),
|
|
12263
|
+
model: 'TS0601_thermostat_thermosphere',
|
|
12264
|
+
vendor: 'TuYa',
|
|
12265
|
+
description: 'ThermoSphere thermostat',
|
|
12266
|
+
extend: [tuyaBase({ dp: true })],
|
|
12267
|
+
exposes: [
|
|
12268
|
+
e
|
|
12269
|
+
.climate()
|
|
12270
|
+
.withSystemMode(['off', 'auto'], ea.STATE_SET, 'Whether the thermostat is turned on or off')
|
|
12271
|
+
.withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
|
|
12272
|
+
.withLocalTemperature(ea.STATE),
|
|
12273
|
+
e
|
|
12274
|
+
.enum('sensor_mode', ea.STATE_SET, ['room_temperature', 'floor_temperature', 'room_with_floor_limit'])
|
|
12275
|
+
.withDescription('What type of sensor are you using to meausure the temperature of the floor?'),
|
|
12276
|
+
e
|
|
12277
|
+
.binary('adaptive_start', ea.STATE_SET, 'ON', 'OFF')
|
|
12278
|
+
.withDescription('Preheat the room to the desired tempature before the scheduled start time.'),
|
|
12279
|
+
e.max_temperature_limit().withDescription('Maximum temperature (default: 35 ºC)').withValueMin(5).withValueMax(35).withValueStep(0.5),
|
|
12280
|
+
e
|
|
12281
|
+
.min_temperature_limit()
|
|
12282
|
+
.withDescription('Minimum temperature limit for frost protection. Turns the thermostat on regardless of setpoint if the temperature drops below this.')
|
|
12283
|
+
.withValueMin(1)
|
|
12284
|
+
.withValueMax(5),
|
|
12285
|
+
e
|
|
12286
|
+
.enum('boost', ea.STATE_SET, ['ON', 'OFF'])
|
|
12287
|
+
.withDescription('Override the schedule and boost at the current temperature until turned off'),
|
|
12288
|
+
e
|
|
12289
|
+
.numeric('display_brightness', ea.STATE_SET)
|
|
12290
|
+
.withDescription('Brightness of the display when in use')
|
|
12291
|
+
.withValueMin(0)
|
|
12292
|
+
.withValueMax(100)
|
|
12293
|
+
.withValueStep(1),
|
|
12294
|
+
e
|
|
12295
|
+
.numeric('holiday_start_stop', ea.STATE_SET)
|
|
12296
|
+
.withDescription('Set the number of days of holiday, this will start immediately.')
|
|
12297
|
+
.withValueMax(99)
|
|
12298
|
+
.withValueMin(0),
|
|
12299
|
+
e.holiday_temperature().withValueMin(5).withValueMax(35),
|
|
12300
|
+
e.binary('frost_protection', ea.STATE_SET, 'ON', 'OFF').withDescription('Turning on will keep heating at the minimum temperature limit'),
|
|
12301
|
+
e
|
|
12302
|
+
.numeric('switch_delay', ea.STATE_SET)
|
|
12303
|
+
.withDescription('How long to wait between making a change and it taking effect')
|
|
12304
|
+
.withValueMin(10)
|
|
12305
|
+
.withValueMax(90)
|
|
12306
|
+
.withValueStep(10)
|
|
12307
|
+
.withUnit('s'),
|
|
12308
|
+
e
|
|
12309
|
+
.numeric('power_rating', ea.STATE_SET)
|
|
12310
|
+
.withDescription('How much power is the underfloor heating rated to. Entering a value will allow the Thermostat to record a value of power usage that can be checked under settings on the physical Thermostat')
|
|
12311
|
+
.withUnit('W')
|
|
12312
|
+
.withValueMin(0)
|
|
12313
|
+
.withValueMax(4500)
|
|
12314
|
+
.withValueStep(100),
|
|
12315
|
+
e
|
|
12316
|
+
.binary('open_window_active', ea.STATE_SET, 'ON', 'OFF')
|
|
12317
|
+
.withDescription('When active the heating will cut off if an Open Window is detected'),
|
|
12318
|
+
e
|
|
12319
|
+
.numeric('open_window_sensing_time', ea.STATE_SET)
|
|
12320
|
+
.withDescription('The duration that the drop in temperature needs to occur over')
|
|
12321
|
+
.withUnit('minutes')
|
|
12322
|
+
.withValueMin(1)
|
|
12323
|
+
.withValueMax(30)
|
|
12324
|
+
.withValueStep(1),
|
|
12325
|
+
e
|
|
12326
|
+
.numeric('open_window_drop_limit', ea.STATE_SET)
|
|
12327
|
+
.withDescription('The drop in ambient room temperature that will trigger an open window warning')
|
|
12328
|
+
.withUnit('C')
|
|
12329
|
+
.withValueMin(2)
|
|
12330
|
+
.withValueMax(4)
|
|
12331
|
+
.withValueStep(1),
|
|
12332
|
+
e
|
|
12333
|
+
.numeric('open_window_off_time', ea.STATE_SET)
|
|
12334
|
+
.withDescription('The length of time the drop in temperature must be consistent for to turn the heating off')
|
|
12335
|
+
.withUnit('minutes')
|
|
12336
|
+
.withValueMin(10)
|
|
12337
|
+
.withValueMax(60)
|
|
12338
|
+
.withValueStep(5),
|
|
12339
|
+
],
|
|
12340
|
+
meta: {
|
|
12341
|
+
tuyaDatapoints: [
|
|
12342
|
+
[1, 'system_mode', tuya.valueConverterBasic.lookup({ off: false, auto: true })],
|
|
12343
|
+
[2, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
|
|
12344
|
+
[4, 'boost', tuya.valueConverterBasic.lookup({ OFF: tuya.enum(1), ON: tuya.enum(2) })],
|
|
12345
|
+
[18, 'open_window_active', tuya.valueConverterBasic.lookup({ OFF: false, ON: true })],
|
|
12346
|
+
[40, 'open_window_sensing_time', tuya.valueConverterBasic.divideBy(1)],
|
|
12347
|
+
[45, 'open_window_drop_limit', tuya.valueConverter.divideBy10],
|
|
12348
|
+
[47, 'open_window_off_time', tuya.valueConverterBasic.divideBy(1)],
|
|
12349
|
+
[37, 'adaptive_start', tuya.valueConverterBasic.lookup({ OFF: false, ON: true })],
|
|
12350
|
+
[38, 'local_temperature', tuya.valueConverter.divideBy10],
|
|
12351
|
+
[39, 'max_temperature_limit', tuya.valueConverter.divideBy10],
|
|
12352
|
+
[41, 'holiday_start_stop', tuya.valueConverterBasic.divideBy(1)], //divideBy1 required to force the format. Raw does not work
|
|
12353
|
+
[42, 'holiday_temperature', tuya.valueConverter.divideBy10],
|
|
12354
|
+
[
|
|
12355
|
+
43,
|
|
12356
|
+
'sensor_mode',
|
|
12357
|
+
tuya.valueConverterBasic.lookup({
|
|
12358
|
+
room_temperature: tuya.enum(0),
|
|
12359
|
+
floor_temperature: tuya.enum(1),
|
|
12360
|
+
room_with_floor_limit: tuya.enum(2),
|
|
12361
|
+
}),
|
|
12362
|
+
],
|
|
12363
|
+
//[48, 'temp_tolerance', tuya.valueConverter.raw],
|
|
12364
|
+
[50, 'power_rating', tuya.valueConverterBasic.divideBy(1)],
|
|
12365
|
+
[52, 'frost_protection', tuya.valueConverterBasic.lookup({ OFF: false, ON: true })],
|
|
12366
|
+
[53, 'min_temperature_limit', tuya.valueConverter.divideBy10],
|
|
12367
|
+
[54, 'switch_delay', tuya.valueConverterBasic.divideBy(1)],
|
|
12368
|
+
[55, 'display_brightness', tuya.valueConverterBasic.divideBy(1)], //divideBy1 required to force the format. Raw does not work
|
|
12369
|
+
//[16, 'schedule', tuya.valueConverter.Raw],
|
|
12370
|
+
],
|
|
12371
|
+
},
|
|
12372
|
+
},
|
|
12128
12373
|
];
|
|
12129
12374
|
exports.default = definitions;
|
|
12130
12375
|
module.exports = definitions;
|