zigbee-herdsman-converters 22.0.1 → 22.2.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 +39 -0
- package/converters/fromZigbee.d.ts +7 -0
- package/converters/fromZigbee.d.ts.map +1 -1
- package/converters/fromZigbee.js +10 -1
- package/converters/fromZigbee.js.map +1 -1
- package/converters/toZigbee.d.ts +9 -0
- package/converters/toZigbee.d.ts.map +1 -1
- package/converters/toZigbee.js +11 -1
- package/converters/toZigbee.js.map +1 -1
- package/devices/custom_devices_diy.d.ts.map +1 -1
- package/devices/custom_devices_diy.js +9 -0
- package/devices/custom_devices_diy.js.map +1 -1
- package/devices/ewelink.d.ts.map +1 -1
- package/devices/ewelink.js +14 -1
- package/devices/ewelink.js.map +1 -1
- package/devices/hampton_bay.js +1 -1
- package/devices/hampton_bay.js.map +1 -1
- package/devices/inovelli.d.ts.map +1 -1
- package/devices/inovelli.js +9 -4
- package/devices/inovelli.js.map +1 -1
- package/devices/lellki.js +1 -1
- package/devices/lellki.js.map +1 -1
- package/devices/mercator.js +1 -1
- package/devices/mercator.js.map +1 -1
- package/devices/multiterm.js +1 -1
- package/devices/multiterm.js.map +1 -1
- package/devices/orvibo.js +1 -1
- package/devices/orvibo.js.map +1 -1
- package/devices/owon.js +2 -2
- package/devices/owon.js.map +1 -1
- package/devices/philips.d.ts.map +1 -1
- package/devices/philips.js +7 -0
- package/devices/philips.js.map +1 -1
- package/devices/schneider_electric.js +1 -1
- package/devices/schneider_electric.js.map +1 -1
- package/devices/somfy.d.ts.map +1 -1
- package/devices/somfy.js +7 -0
- package/devices/somfy.js.map +1 -1
- package/devices/sonoff.d.ts.map +1 -1
- package/devices/sonoff.js +30 -4
- package/devices/sonoff.js.map +1 -1
- package/devices/sunricher.d.ts.map +1 -1
- package/devices/sunricher.js +986 -352
- package/devices/sunricher.js.map +1 -1
- package/devices/third_reality.d.ts.map +1 -1
- package/devices/third_reality.js +14 -9
- package/devices/third_reality.js.map +1 -1
- package/devices/tuya.d.ts.map +1 -1
- package/devices/tuya.js +165 -8
- package/devices/tuya.js.map +1 -1
- package/devices/ubisys.d.ts.map +1 -1
- package/devices/ubisys.js +1 -0
- package/devices/ubisys.js.map +1 -1
- package/lib/color.d.ts +1 -2
- package/lib/color.d.ts.map +1 -1
- package/lib/color.js +2 -6
- package/lib/color.js.map +1 -1
- package/lib/configureKey.js +0 -1
- package/lib/configureKey.js.map +1 -1
- package/lib/constants.js +0 -33
- package/lib/constants.js.map +1 -1
- package/lib/exposes.d.ts +14 -0
- package/lib/exposes.d.ts.map +1 -1
- package/lib/exposes.js +38 -13
- package/lib/exposes.js.map +1 -1
- package/lib/ikea.js +1 -1
- package/lib/ikea.js.map +1 -1
- package/lib/kelvinToXy.js +0 -1
- package/lib/kelvinToXy.js.map +1 -1
- package/lib/legacy.d.ts +2 -76
- package/lib/legacy.d.ts.map +1 -1
- package/lib/legacy.js +1 -64
- package/lib/legacy.js.map +1 -1
- package/lib/light.d.ts +2 -0
- package/lib/light.d.ts.map +1 -1
- package/lib/light.js +2 -6
- package/lib/light.js.map +1 -1
- package/lib/lumi.d.ts.map +1 -1
- package/lib/lumi.js +2 -17
- package/lib/lumi.js.map +1 -1
- package/lib/philips.d.ts +166 -1
- package/lib/philips.d.ts.map +1 -1
- package/lib/philips.js +12 -15
- package/lib/philips.js.map +1 -1
- package/lib/reporting.js +0 -51
- package/lib/reporting.js.map +1 -1
- package/lib/store.js +0 -5
- package/lib/store.js.map +1 -1
- package/lib/tuya.js +0 -19
- package/lib/tuya.js.map +1 -1
- package/lib/utils.js +1 -37
- package/lib/utils.js.map +1 -1
- package/lib/zosung.js +0 -3
- package/lib/zosung.js.map +1 -1
- package/models-index.json +1 -1
- package/package.json +1 -1
package/devices/tuya.js
CHANGED
|
@@ -1077,6 +1077,7 @@ exports.definitions = [
|
|
|
1077
1077
|
'_TZE204_yjjdcqsq',
|
|
1078
1078
|
'_TZE204_jygvp6fk',
|
|
1079
1079
|
'_TZE204_cirvgep4',
|
|
1080
|
+
'_TZE284_yjjdcqsq',
|
|
1080
1081
|
]),
|
|
1081
1082
|
model: 'TS0601_temperature_humidity_sensor_2',
|
|
1082
1083
|
vendor: 'Tuya',
|
|
@@ -1099,7 +1100,7 @@ exports.definitions = [
|
|
|
1099
1100
|
],
|
|
1100
1101
|
},
|
|
1101
1102
|
whiteLabel: [
|
|
1102
|
-
tuya.whitelabel('Tuya', 'ZTH01', 'Temperature and humidity sensor', ['_TZE200_yjjdcqsq', '_TZE204_yjjdcqsq']),
|
|
1103
|
+
tuya.whitelabel('Tuya', 'ZTH01', 'Temperature and humidity sensor', ['_TZE200_yjjdcqsq', '_TZE204_yjjdcqsq', '_TZE284_yjjdcqsq']),
|
|
1103
1104
|
tuya.whitelabel('Tuya', 'SZTH02', 'Temperature and humidity sensor', ['_TZE200_utkemkbs', '_TZE204_utkemkbs']),
|
|
1104
1105
|
tuya.whitelabel('Tuya', 'ZTH02', 'Temperature and humidity sensor', ['_TZE200_9yapgbuv', '_TZE204_9yapgbuv']),
|
|
1105
1106
|
tuya.whitelabel('Tuya', 'ZTH05', 'Temperature and humidity sensor', ['_TZE204_upagmta9', '_TZE200_upagmta9']),
|
|
@@ -4880,15 +4881,15 @@ exports.definitions = [
|
|
|
4880
4881
|
e.battery_low(),
|
|
4881
4882
|
e
|
|
4882
4883
|
.climate()
|
|
4883
|
-
.withSetpoint('current_heating_setpoint', 5,
|
|
4884
|
+
.withSetpoint('current_heating_setpoint', 5, 45, 0.5, ea.STATE_SET)
|
|
4884
4885
|
.withLocalTemperature(ea.STATE)
|
|
4885
4886
|
.withPreset(['schedule', 'holiday', 'manual', 'comfort', 'eco'])
|
|
4886
4887
|
.withSystemMode(['off', 'heat'], ea.STATE)
|
|
4887
|
-
.withLocalTemperatureCalibration(-
|
|
4888
|
+
.withLocalTemperatureCalibration(-12, 12, 0.5, ea.STATE_SET),
|
|
4888
4889
|
...tuya.exposes.scheduleAllDays(ea.STATE_SET, 'HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C'),
|
|
4889
|
-
e.holiday_temperature().withValueMin(5).withValueMax(
|
|
4890
|
-
e.comfort_temperature().withValueMin(5).withValueMax(
|
|
4891
|
-
e.eco_temperature().withValueMin(5).withValueMax(
|
|
4890
|
+
e.holiday_temperature().withValueMin(5).withValueMax(45),
|
|
4891
|
+
e.comfort_temperature().withValueMin(5).withValueMax(45),
|
|
4892
|
+
e.eco_temperature().withValueMin(5).withValueMax(45),
|
|
4892
4893
|
e
|
|
4893
4894
|
.binary('scale_protection', ea.STATE_SET, 'ON', 'OFF')
|
|
4894
4895
|
.withDescription('If the heat sink is not fully opened within ' +
|
|
@@ -5695,7 +5696,7 @@ exports.definitions = [
|
|
|
5695
5696
|
e.smoke(),
|
|
5696
5697
|
e.battery(),
|
|
5697
5698
|
tuya.exposes.silence(),
|
|
5698
|
-
|
|
5699
|
+
tuya.exposes.selfTest(),
|
|
5699
5700
|
e.numeric('smoke_concentration', ea.STATE).withUnit('ppm').withDescription('Parts per million of smoke detected'),
|
|
5700
5701
|
e.binary('device_fault', ea.STATE, true, false).withDescription('Indicates a fault with the device'),
|
|
5701
5702
|
],
|
|
@@ -7317,7 +7318,7 @@ exports.definitions = [
|
|
|
7317
7318
|
],
|
|
7318
7319
|
},
|
|
7319
7320
|
{
|
|
7320
|
-
fingerprint: tuya.fingerprint('TS011F', ['_TZ3000_qeuvnohg', '_TZ3000_6l1pjfqe']),
|
|
7321
|
+
fingerprint: tuya.fingerprint('TS011F', ['_TZ3000_qeuvnohg', '_TZ3000_6l1pjfqe', '_TZ3000_2iiimqs9']),
|
|
7321
7322
|
model: 'TS011F_din_smart_relay_polling',
|
|
7322
7323
|
description: 'Din smart relay (with power monitoring via polling)',
|
|
7323
7324
|
vendor: 'Tuya',
|
|
@@ -7333,6 +7334,7 @@ exports.definitions = [
|
|
|
7333
7334
|
whiteLabel: [
|
|
7334
7335
|
tuya.whitelabel('Tongou', 'TO-Q-SY1-JZT', 'Din smart relay (with power monitoring via polling)', ['_TZ3000_qeuvnohg']),
|
|
7335
7336
|
tuya.whitelabel('TOMZN', 'TOB9Z-63M', 'Din smart relay (with power monitoring via polling)', ['_TZ3000_6l1pjfqe']),
|
|
7337
|
+
tuya.whitelabel('Nous', 'D2Z', 'Din smart relay (with power monitoring via polling)', ['_TZ3000_2iiimqs9']),
|
|
7336
7338
|
],
|
|
7337
7339
|
ota: true,
|
|
7338
7340
|
configure: async (device, coordinatorEndpoint) => {
|
|
@@ -9560,6 +9562,11 @@ exports.definitions = [
|
|
|
9560
9562
|
e.produced_energy().withDescription('Total reverse active energy'),
|
|
9561
9563
|
e.power_factor().withUnit('%'),
|
|
9562
9564
|
e.ac_frequency(),
|
|
9565
|
+
e
|
|
9566
|
+
.numeric('data_report_duration', ea.SET)
|
|
9567
|
+
.withValueMin(5)
|
|
9568
|
+
.withValueMax(3600)
|
|
9569
|
+
.withDescription('WARNING: You must update device firmware to V3.1.3 before changing this setting! Use Tuya gateway/app to update firmware. Data report duration set (Threshold value range 5~3600 seconds)'),
|
|
9563
9570
|
],
|
|
9564
9571
|
meta: {
|
|
9565
9572
|
tuyaDatapoints: [
|
|
@@ -9568,6 +9575,46 @@ exports.definitions = [
|
|
|
9568
9575
|
// [6, null, tuya.valueConverter.phaseVariant3],
|
|
9569
9576
|
[15, 'power_factor', tuya.valueConverter.raw],
|
|
9570
9577
|
// [16, 'clear_energy', tuya.valueConverter.onOff],
|
|
9578
|
+
[
|
|
9579
|
+
18,
|
|
9580
|
+
'data_report_duration',
|
|
9581
|
+
{
|
|
9582
|
+
to: (v) => {
|
|
9583
|
+
const value = Math.max(5, Math.min(3600, Math.round(v)));
|
|
9584
|
+
const byte1 = (value >> 8) & 0xff;
|
|
9585
|
+
const byte2 = value & 0xff;
|
|
9586
|
+
return [
|
|
9587
|
+
// Unknown what these bytes mean, possibly configures other settings of the device
|
|
9588
|
+
0x01,
|
|
9589
|
+
0x01,
|
|
9590
|
+
0x00,
|
|
9591
|
+
0x3c,
|
|
9592
|
+
0x03,
|
|
9593
|
+
0x01,
|
|
9594
|
+
0x00,
|
|
9595
|
+
0xfd,
|
|
9596
|
+
0x04,
|
|
9597
|
+
0x00,
|
|
9598
|
+
0x00,
|
|
9599
|
+
0xb4,
|
|
9600
|
+
0x07,
|
|
9601
|
+
0x01,
|
|
9602
|
+
0x00,
|
|
9603
|
+
0x00,
|
|
9604
|
+
0x08,
|
|
9605
|
+
0x01,
|
|
9606
|
+
// Report duration
|
|
9607
|
+
byte1,
|
|
9608
|
+
byte2,
|
|
9609
|
+
// Unknown what these bytes mean, possibly configures other settings of the device
|
|
9610
|
+
0x09,
|
|
9611
|
+
0x00,
|
|
9612
|
+
0x00,
|
|
9613
|
+
0x00,
|
|
9614
|
+
];
|
|
9615
|
+
},
|
|
9616
|
+
},
|
|
9617
|
+
],
|
|
9571
9618
|
[101, 'ac_frequency', tuya.valueConverter.divideBy100],
|
|
9572
9619
|
[102, 'voltage', tuya.valueConverter.divideBy10],
|
|
9573
9620
|
[103, 'current', tuya.valueConverter.divideBy1000],
|
|
@@ -12145,6 +12192,116 @@ exports.definitions = [
|
|
|
12145
12192
|
},
|
|
12146
12193
|
whiteLabel: [{ vendor: 'ELECTSMART', model: 'EST-120Z' }],
|
|
12147
12194
|
},
|
|
12195
|
+
{
|
|
12196
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE284_khah2lkr']),
|
|
12197
|
+
model: 'TE-1Z',
|
|
12198
|
+
vendor: 'Tuya',
|
|
12199
|
+
description: 'Floor heating thermostat',
|
|
12200
|
+
fromZigbee: [tuya.fz.datapoints],
|
|
12201
|
+
toZigbee: [tuya.tz.datapoints],
|
|
12202
|
+
onEvent: tuya.onEventSetTime,
|
|
12203
|
+
configure: tuya.configureMagicPacket,
|
|
12204
|
+
exposes: [
|
|
12205
|
+
// e.binary('system_mode', ea.STATE_SET, 'ON', 'OFF')
|
|
12206
|
+
// .withDescription('Turn system on or standby mode'),
|
|
12207
|
+
e.binary('state', ea.STATE_SET, 'ON', 'OFF').withDescription('Turn system on or standby mode'),
|
|
12208
|
+
e
|
|
12209
|
+
.climate()
|
|
12210
|
+
.withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
|
|
12211
|
+
.withRunningState(['idle', 'heat'], ea.STATE)
|
|
12212
|
+
// you can change preset, but can't make auto back remotely so I would set this readonly
|
|
12213
|
+
.withPreset(['auto', 'manual', 'mixed'])
|
|
12214
|
+
.withLocalTemperatureCalibration(-9, 9, 1, ea.STATE_SET)
|
|
12215
|
+
.withLocalTemperature(ea.STATE),
|
|
12216
|
+
e.child_lock(),
|
|
12217
|
+
// you can change it to IN remotely but can not set it back, so I set it read only
|
|
12218
|
+
e
|
|
12219
|
+
.enum('sensor_mode', ea.STATE, ['IN', 'OU', 'AL'])
|
|
12220
|
+
.withDescription('IN - internal sensor, no heat protection. OU - external sensor, no heat protection. AL - internal sensor for room temperature, external for heat protection'),
|
|
12221
|
+
e
|
|
12222
|
+
.binary('high_temperature_protection_state', ea.STATE_SET, 'ON', 'OFF')
|
|
12223
|
+
.withDescription('If temperature hit the HIGH temperature limit, it ' +
|
|
12224
|
+
'will turn off heating until it drops for amount of deadzone/hysteresis ' +
|
|
12225
|
+
'degrees'),
|
|
12226
|
+
e.binary('low_temperature_protection_state', ea.STATE_SET, 'ON', 'OFF'),
|
|
12227
|
+
e
|
|
12228
|
+
.numeric('high_temperature_protection_setting', ea.STATE_SET)
|
|
12229
|
+
.withUnit('°C')
|
|
12230
|
+
.withValueMin(20)
|
|
12231
|
+
.withValueMax(70)
|
|
12232
|
+
.withDescription('Alarm temperature max')
|
|
12233
|
+
.withPreset('default', 45, 'Default value'),
|
|
12234
|
+
e
|
|
12235
|
+
.numeric('low_temperature_protection_setting', ea.STATE_SET)
|
|
12236
|
+
.withUnit('°C')
|
|
12237
|
+
.withValueMin(1)
|
|
12238
|
+
.withValueMax(10)
|
|
12239
|
+
.withDescription('Alarm temperature min')
|
|
12240
|
+
.withPreset('default', 5, 'Default value'),
|
|
12241
|
+
e.numeric('temperature_sensor', ea.STATE).withUnit('°C').withDescription('Floor temperature from external sensor'),
|
|
12242
|
+
e
|
|
12243
|
+
.deadzone_temperature()
|
|
12244
|
+
.withValueMin(1)
|
|
12245
|
+
.withValueMax(9)
|
|
12246
|
+
.withValueStep(1)
|
|
12247
|
+
.withUnit('°C')
|
|
12248
|
+
.withDescription('Hysteresis')
|
|
12249
|
+
.withPreset('default', 1, 'Default value'),
|
|
12250
|
+
e.max_temperature().withValueMin(20).withValueMax(70).withPreset('default', 35, 'Default value'),
|
|
12251
|
+
// @todo not tested
|
|
12252
|
+
tuya.exposes.errorStatus(),
|
|
12253
|
+
],
|
|
12254
|
+
meta: {
|
|
12255
|
+
tuyaDatapoints: [
|
|
12256
|
+
// internal sensor temperature
|
|
12257
|
+
[16, 'local_temperature', tuya.valueConverter.divideBy10],
|
|
12258
|
+
[50, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
|
|
12259
|
+
// data type 1
|
|
12260
|
+
[102, 'running_state', tuya.valueConverterBasic.lookup({ idle: false, heat: true })],
|
|
12261
|
+
[103, 'temperature_sensor', tuya.valueConverter.divideBy10],
|
|
12262
|
+
// can be changed by setting 112 below 20, data type 1
|
|
12263
|
+
[106, 'high_temperature_protection_state', tuya.valueConverter.onOff],
|
|
12264
|
+
// can be changed by setting 113 over 10, data type 1
|
|
12265
|
+
[107, 'low_temperature_protection_state', tuya.valueConverter.onOff],
|
|
12266
|
+
// range -9 to +9, data type 2, affects shown room temperature (even tho sensors detect its 19, you can make it show 21 by setting this to 2)
|
|
12267
|
+
[109, 'local_temperature_calibration', tuya.valueConverter.localTempCalibration3],
|
|
12268
|
+
// according to manual settable betwwen 0.5 and 2.5 degree.
|
|
12269
|
+
// staring with 5 as 0.5 degree, and 25 as 2.5 degree (data type 2)
|
|
12270
|
+
[110, 'temperature_return_difference', tuya.valueConverter.raw],
|
|
12271
|
+
// range 1-9. How far should temperature drop to turn back heating, if hight temp protection kicked in
|
|
12272
|
+
[111, 'deadzone_temperature', tuya.valueConverter.raw],
|
|
12273
|
+
// High temperature protection
|
|
12274
|
+
// range 20-70, trying to turn below 20 keeps this datapoint at 20 but turns 106 to 0
|
|
12275
|
+
[112, 'high_temperature_protection_setting', tuya.valueConverter.raw],
|
|
12276
|
+
// range 1-10, trying to turn over 10 keeps this datapoint at 10, but turns 107 to 0
|
|
12277
|
+
[113, 'low_temperature_protection_setting', tuya.valueConverter.raw],
|
|
12278
|
+
[114, 'max_temperature', tuya.valueConverter.raw],
|
|
12279
|
+
// choose_sensor
|
|
12280
|
+
// 0: device sensor. Switches "higsyht_temperature_protection_state" off
|
|
12281
|
+
// 1: external sensor / hight temperature protection off
|
|
12282
|
+
// 2: internal for room + external for high temperature protection. Switches "hight_temperature_protection_state" on
|
|
12283
|
+
[116, 'sensor_mode', tuya.valueConverterBasic.lookup({ IN: 0, OU: 1, AL: 2 })],
|
|
12284
|
+
// once every 24h it provides an array of numbers, maybe device fingerprint or something
|
|
12285
|
+
// [119, 'unknown_119', tuya.valueConverter.raw],
|
|
12286
|
+
// [120, 'unknown_120', tuya.valueConverter.raw],
|
|
12287
|
+
// [121, 'unknown_121', tuya.valueConverter.raw],
|
|
12288
|
+
// [122, 'unknown_122', tuya.valueConverter.raw],
|
|
12289
|
+
// device state
|
|
12290
|
+
// 0: standby mode - displays temperature but will not turn heating. Manual configuration is accessible only in this state
|
|
12291
|
+
// 1: fully functional, can turn on heating
|
|
12292
|
+
[125, 'system_mode', tuya.valueConverter.onOff],
|
|
12293
|
+
[125, 'state', tuya.valueConverter.onOff],
|
|
12294
|
+
// manual_mode
|
|
12295
|
+
// 1: automatically turns heating when protection levels hit
|
|
12296
|
+
// 2: you can turn off heating if it heats. You can set up target temperature
|
|
12297
|
+
// 3: you can set up target temperature and it will automatically try to maintain it
|
|
12298
|
+
[128, 'preset', tuya.valueConverterBasic.lookup({ auto: 1, manual: 0, mixed: 3 })],
|
|
12299
|
+
[129, 'child_lock', tuya.valueConverter.lockUnlock],
|
|
12300
|
+
// data type 5. Was [0] but went [16] when high temperature protection went into alert mode
|
|
12301
|
+
[130, 'error_status', tuya.valueConverter.raw],
|
|
12302
|
+
],
|
|
12303
|
+
},
|
|
12304
|
+
},
|
|
12148
12305
|
{
|
|
12149
12306
|
fingerprint: tuya.fingerprint('TS0601', ['_TZE204_tagezcph']),
|
|
12150
12307
|
model: 'PRO-900Z',
|