zigbee-herdsman-converters 15.0.102 → 15.0.103
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/devices/tuya.js +213 -16
- package/lib/tuya.js +2 -2
- package/package.json +1 -1
package/devices/tuya.js
CHANGED
|
@@ -1201,7 +1201,9 @@ module.exports = [
|
|
|
1201
1201
|
fingerprint: [{modelID: 'TS011F', manufacturerName: '_TZ3000_rk2yzt0u'},
|
|
1202
1202
|
{modelID: 'TS0001', manufacturerName: '_TZ3000_o4cjetlm'}, {manufacturerName: '_TZ3000_o4cjetlm'},
|
|
1203
1203
|
{modelID: 'TS0001', manufacturerName: '_TZ3000_iedbgyxt'}, {modelID: 'TS0001', manufacturerName: '_TZ3000_h3noz0a5'},
|
|
1204
|
-
{modelID: 'TS0001', manufacturerName: '_TYZB01_4tlksk8a'}, {modelID: 'TS0011', manufacturerName: '_TYZB01_rifa0wlb'}
|
|
1204
|
+
{modelID: 'TS0001', manufacturerName: '_TYZB01_4tlksk8a'}, {modelID: 'TS0011', manufacturerName: '_TYZB01_rifa0wlb'},
|
|
1205
|
+
{modelID: 'TS0001', manufacturerName: '_TZ3000_5ucujjts'},
|
|
1206
|
+
],
|
|
1205
1207
|
model: 'ZN231392',
|
|
1206
1208
|
vendor: 'TuYa',
|
|
1207
1209
|
description: 'Smart water/gas valve',
|
|
@@ -1284,6 +1286,7 @@ module.exports = [
|
|
|
1284
1286
|
tuya.whitelabel('Lidl', 'HG08010', 'Livarno Home outdoor spotlight', ['_TZ3210_umi6vbsz']),
|
|
1285
1287
|
tuya.whitelabel('Lidl', 'HG08008', 'Livarno Home LED ceiling light', ['_TZ3210_p9ao60da']),
|
|
1286
1288
|
tuya.whitelabel('Lidl', 'HG08007', 'Livarno Home outdoor LED band', ['_TZ3210_zbabx9wh']),
|
|
1289
|
+
tuya.whitelabel('Lidl', '399629_2110', 'Livarno Lux Ceiling Panel RGB+CCT', ['_TZ3210_c0s1xloa']),
|
|
1287
1290
|
],
|
|
1288
1291
|
extend: tuya.extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500], noConfigure: true}),
|
|
1289
1292
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
@@ -1291,13 +1294,12 @@ module.exports = [
|
|
|
1291
1294
|
},
|
|
1292
1295
|
},
|
|
1293
1296
|
{
|
|
1294
|
-
fingerprint: tuya.fingerprint('TS0505B', ['
|
|
1297
|
+
fingerprint: tuya.fingerprint('TS0505B', ['_TZ3210_iystcadi']),
|
|
1295
1298
|
model: 'TS0505B_2',
|
|
1296
1299
|
vendor: 'TuYa',
|
|
1297
1300
|
description: 'Zigbee RGB+CCT light',
|
|
1298
1301
|
whiteLabel: [
|
|
1299
1302
|
tuya.whitelabel('Lidl', '14149505L/14149506L_2', 'Livarno Lux light bar RGB+CCT (black/white)', ['_TZ3210_iystcadi']),
|
|
1300
|
-
tuya.whitelabel('Lidl', '399629_2110', 'Livarno Lux Ceiling Panel RGB+CCT', ['_TZ3210_c0s1xloa']),
|
|
1301
1303
|
],
|
|
1302
1304
|
toZigbee: [tz.on_off, tzLocal.led_control],
|
|
1303
1305
|
fromZigbee: [fz.on_off, fz.tuya_led_controller, fz.brightness, fz.ignore_basic_report],
|
|
@@ -1818,7 +1820,7 @@ module.exports = [
|
|
|
1818
1820
|
},
|
|
1819
1821
|
},
|
|
1820
1822
|
{
|
|
1821
|
-
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_aqnazj70', '_TZE200_k6jhsr0q', '_TZE200_di3tfv5b', '_TZE200_mexisfik']),
|
|
1823
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_aqnazj70', '_TZE200_k6jhsr0q', '_TZE200_di3tfv5b', '_TZE200_mexisfik', '_TZE204_6wi2mope']),
|
|
1822
1824
|
model: 'TS0601_switch_4_gang',
|
|
1823
1825
|
vendor: 'TuYa',
|
|
1824
1826
|
description: '4 gang switch',
|
|
@@ -2205,7 +2207,8 @@ module.exports = [
|
|
|
2205
2207
|
vendor: 'TuYa',
|
|
2206
2208
|
description: 'Wireless switch with 4 buttons',
|
|
2207
2209
|
whiteLabel: [{vendor: 'Lonsonho', model: 'TS0044'}, {vendor: 'Haozee', model: 'ESW-OZAA-EU'},
|
|
2208
|
-
{vendor: 'LoraTap', model: 'SS6400ZB'}, {vendor: 'Moes', model: 'ZT-SY-EU-G-4S-WH-MS'}
|
|
2210
|
+
{vendor: 'LoraTap', model: 'SS6400ZB'}, {vendor: 'Moes', model: 'ZT-SY-EU-G-4S-WH-MS'},
|
|
2211
|
+
tuya.whitelabel('Moes', 'ZT-SR-EU4', 'Star Ring 4 Gang Scene Switch', ['_TZ3000_a4xycprs'])],
|
|
2209
2212
|
fromZigbee: [fz.tuya_on_off_action, fz.battery],
|
|
2210
2213
|
exposes: [e.battery(), e.action(['1_single', '1_double', '1_hold', '2_single', '2_double', '2_hold',
|
|
2211
2214
|
'3_single', '3_double', '3_hold', '4_single', '4_double', '4_hold'])],
|
|
@@ -2347,7 +2350,8 @@ module.exports = [
|
|
|
2347
2350
|
description: '1 gang switch',
|
|
2348
2351
|
extend: tuya.extend.switch(),
|
|
2349
2352
|
whiteLabel: [{vendor: 'CR Smart Home', model: 'TS0001', description: 'Valve control'}, {vendor: 'Lonsonho', model: 'X701'},
|
|
2350
|
-
{vendor: 'Bandi', model: 'BDS03G1'}
|
|
2353
|
+
{vendor: 'Bandi', model: 'BDS03G1'},
|
|
2354
|
+
],
|
|
2351
2355
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
2352
2356
|
await tuya.configureMagicPacket(device, coordinatorEndpoint, logger);
|
|
2353
2357
|
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
@@ -4547,7 +4551,7 @@ module.exports = [
|
|
|
4547
4551
|
},
|
|
4548
4552
|
},
|
|
4549
4553
|
{
|
|
4550
|
-
fingerprint: tuya.fingerprint('TS110E', ['_TZ3210_zxbtub8r', '_TZ3210_k1msuvg6'
|
|
4554
|
+
fingerprint: tuya.fingerprint('TS110E', ['_TZ3210_zxbtub8r', '_TZ3210_k1msuvg6']),
|
|
4551
4555
|
model: 'TS110E_1gang_1',
|
|
4552
4556
|
vendor: 'TuYa',
|
|
4553
4557
|
description: '1 channel dimmer',
|
|
@@ -4559,14 +4563,7 @@ module.exports = [
|
|
|
4559
4563
|
[tz.light_onoff_brightness],
|
|
4560
4564
|
[tzLocal.TS110E_light_onoff_brightness],
|
|
4561
4565
|
),
|
|
4562
|
-
exposes: (
|
|
4563
|
-
const exps = [e.light_brightness().withMinBrightness().withMaxBrightness(), e.linkquality()];
|
|
4564
|
-
if (!device || !device.manufacturerName === '_TZ3210_weaqkhab') {
|
|
4565
|
-
// _TZ3210_weaqkhab doesn't support power_on_behavior and switch_type
|
|
4566
|
-
exps.push(e.power_on_behavior(), tuya.exposes.switchType());
|
|
4567
|
-
}
|
|
4568
|
-
return exps;
|
|
4569
|
-
},
|
|
4566
|
+
exposes: [e.light_brightness().withMinBrightness().withMaxBrightness()],
|
|
4570
4567
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
4571
4568
|
await tuya.configureMagicPacket(device, coordinatorEndpoint, logger);
|
|
4572
4569
|
await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
|
|
@@ -4574,7 +4571,7 @@ module.exports = [
|
|
|
4574
4571
|
},
|
|
4575
4572
|
},
|
|
4576
4573
|
{
|
|
4577
|
-
fingerprint: tuya.fingerprint('TS110E', ['_TZ3210_ngqk6jia']),
|
|
4574
|
+
fingerprint: tuya.fingerprint('TS110E', ['_TZ3210_ngqk6jia', '_TZ3210_weaqkhab']),
|
|
4578
4575
|
model: 'TS110E_1gang_2',
|
|
4579
4576
|
vendor: 'TuYa',
|
|
4580
4577
|
description: '1 channel dimmer',
|
|
@@ -4853,4 +4850,204 @@ module.exports = [
|
|
|
4853
4850
|
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
|
|
4854
4851
|
},
|
|
4855
4852
|
},
|
|
4853
|
+
{
|
|
4854
|
+
fingerprint: [
|
|
4855
|
+
{modelID: 'TS0001', manufacturerName: '_TZ3000_bmqxalil'},
|
|
4856
|
+
],
|
|
4857
|
+
model: 'TS0001_switch_1_gang',
|
|
4858
|
+
vendor: 'TuYa',
|
|
4859
|
+
description: '1-Gang switch with backlight',
|
|
4860
|
+
extend: tuya.extend.switch({powerOnBehavior2: true, backlightModeOffOn: true}),
|
|
4861
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
4862
|
+
await tuya.configureMagicPacket(device, coordinatorEndpoint, logger);
|
|
4863
|
+
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
4864
|
+
},
|
|
4865
|
+
whiteLabel: [
|
|
4866
|
+
tuya.whitelabel('Homeetec', '37022454', '1 Gang switch with backlight', ['_TZ3000_bmqxalil']),
|
|
4867
|
+
],
|
|
4868
|
+
},
|
|
4869
|
+
{
|
|
4870
|
+
fingerprint: [
|
|
4871
|
+
{modelID: 'TS0002', manufacturerName: '_TZ3000_in5qxhtt'},
|
|
4872
|
+
],
|
|
4873
|
+
model: 'TS0002_switch_2_gang',
|
|
4874
|
+
vendor: 'TuYa',
|
|
4875
|
+
description: '2-Gang switch with backlight',
|
|
4876
|
+
extend: tuya.extend.switch({powerOnBehavior2: true, backlightModeOffOn: true, endpoints: ['l1', 'l2']}),
|
|
4877
|
+
endpoint: (device) => {
|
|
4878
|
+
return {'l1': 1, 'l2': 2};
|
|
4879
|
+
},
|
|
4880
|
+
meta: {multiEndpoint: true},
|
|
4881
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
4882
|
+
await tuya.configureMagicPacket(device, coordinatorEndpoint, logger);
|
|
4883
|
+
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
4884
|
+
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
|
|
4885
|
+
},
|
|
4886
|
+
whiteLabel: [
|
|
4887
|
+
tuya.whitelabel('Homeetec', '37022463', '2 Gang switch with backlight', ['_TZ3000_in5qxhtt']),
|
|
4888
|
+
],
|
|
4889
|
+
},
|
|
4890
|
+
{
|
|
4891
|
+
fingerprint: [
|
|
4892
|
+
{modelID: 'TS0003', manufacturerName: '_TZ3000_pv4puuxi'},
|
|
4893
|
+
],
|
|
4894
|
+
model: 'TS0003_switch_3_gang',
|
|
4895
|
+
vendor: 'TuYa',
|
|
4896
|
+
description: '3-Gang switch with backlight',
|
|
4897
|
+
extend: tuya.extend.switch({powerOnBehavior2: true, backlightModeOffOn: true, endpoints: ['left', 'center', 'right']}),
|
|
4898
|
+
endpoint: (device) => {
|
|
4899
|
+
return {'left': 1, 'center': 2, 'right': 3};
|
|
4900
|
+
},
|
|
4901
|
+
meta: {multiEndpoint: true},
|
|
4902
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
4903
|
+
await tuya.configureMagicPacket(device, coordinatorEndpoint, logger);
|
|
4904
|
+
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
4905
|
+
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
|
|
4906
|
+
await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']);
|
|
4907
|
+
},
|
|
4908
|
+
whiteLabel: [
|
|
4909
|
+
tuya.whitelabel('Homeetec', '37022474', '3 Gang switch with backlight', ['_TZ3000_pv4puuxi']),
|
|
4910
|
+
],
|
|
4911
|
+
},
|
|
4912
|
+
{
|
|
4913
|
+
fingerprint: [
|
|
4914
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_hewlydpz'},
|
|
4915
|
+
],
|
|
4916
|
+
model: 'TS0601_switch_4_gang_2',
|
|
4917
|
+
vendor: 'TuYa',
|
|
4918
|
+
description: '4-Gang switch with backlight',
|
|
4919
|
+
fromZigbee: [tuya.fz.datapoints],
|
|
4920
|
+
toZigbee: [tuya.tz.datapoints],
|
|
4921
|
+
configure: tuya.configureMagicPacket,
|
|
4922
|
+
exposes: [
|
|
4923
|
+
tuya.exposes.switch().withEndpoint('l1'),
|
|
4924
|
+
tuya.exposes.switch().withEndpoint('l2'),
|
|
4925
|
+
tuya.exposes.switch().withEndpoint('l3'),
|
|
4926
|
+
tuya.exposes.switch().withEndpoint('l4'),
|
|
4927
|
+
tuya.exposes.backlightModeOffOn(),
|
|
4928
|
+
],
|
|
4929
|
+
endpoint: (device) => {
|
|
4930
|
+
return {'l1': 1, 'l2': 1, 'l3': 1, 'l4': 1};
|
|
4931
|
+
},
|
|
4932
|
+
meta: {
|
|
4933
|
+
multiEndpoint: true,
|
|
4934
|
+
tuyaDatapoints: [
|
|
4935
|
+
[1, 'state_l1', tuya.valueConverter.onOff],
|
|
4936
|
+
[2, 'state_l2', tuya.valueConverter.onOff],
|
|
4937
|
+
[3, 'state_l3', tuya.valueConverter.onOff],
|
|
4938
|
+
[4, 'state_l4', tuya.valueConverter.onOff],
|
|
4939
|
+
[7, 'backlight_mode', tuya.valueConverter.onOff],
|
|
4940
|
+
],
|
|
4941
|
+
},
|
|
4942
|
+
whiteLabel: [
|
|
4943
|
+
tuya.whitelabel('Homeetec', '37022714', '4 Gang switch with backlight', ['_TZE200_hewlydpz']),
|
|
4944
|
+
],
|
|
4945
|
+
},
|
|
4946
|
+
{
|
|
4947
|
+
fingerprint: [
|
|
4948
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_p6vz3wzt'},
|
|
4949
|
+
],
|
|
4950
|
+
model: 'TS0601_cover_5',
|
|
4951
|
+
vendor: 'TuYa',
|
|
4952
|
+
description: 'Curtain/blind switch',
|
|
4953
|
+
options: [exposes.options.invert_cover()],
|
|
4954
|
+
fromZigbee: [tuya.fz.datapoints],
|
|
4955
|
+
toZigbee: [tuya.tz.datapoints],
|
|
4956
|
+
exposes: [
|
|
4957
|
+
e.cover_position(),
|
|
4958
|
+
exposes.enum('calibration', ea.STATE_SET, ['START', 'END']).withDescription('Calibration'),
|
|
4959
|
+
exposes.binary('backlight_mode', ea.STATE_SET, 'ON', 'OFF').withDescription('Backlight'),
|
|
4960
|
+
exposes.enum('motor_steering', ea.STATE_SET, ['FORWARD', 'BACKWARD']).withDescription('Motor Steering'),
|
|
4961
|
+
exposes.binary('child_lock', ea.STATE_SET, 'ON', 'OFF').withDescription('Child Lock'),
|
|
4962
|
+
],
|
|
4963
|
+
meta: {
|
|
4964
|
+
tuyaDatapoints: [
|
|
4965
|
+
[1, 'state', tuya.valueConverterBasic.lookup({'OPEN': tuya.enum(0), 'STOP': tuya.enum(1), 'CLOSE': tuya.enum(2)})],
|
|
4966
|
+
[2, 'position', tuya.valueConverter.coverPosition],
|
|
4967
|
+
[3, 'calibration', tuya.valueConverterBasic.lookup({'START': tuya.enum(0), 'END': tuya.enum(1)})],
|
|
4968
|
+
[7, 'backlight_mode', tuya.valueConverter.onOff],
|
|
4969
|
+
[8, 'motor_steering', tuya.valueConverterBasic.lookup({'FORWARD': tuya.enum(0), 'BACKWARD': tuya.enum(1)})],
|
|
4970
|
+
[103, 'child_lock', tuya.valueConverter.onOff],
|
|
4971
|
+
],
|
|
4972
|
+
},
|
|
4973
|
+
whiteLabel: [
|
|
4974
|
+
tuya.whitelabel('Homeetec', '37022483', 'Curtain/blind switch', ['_TZE200_p6vz3wzt']),
|
|
4975
|
+
],
|
|
4976
|
+
},
|
|
4977
|
+
{
|
|
4978
|
+
fingerprint: [
|
|
4979
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_jhkttplm'},
|
|
4980
|
+
],
|
|
4981
|
+
model: 'TS0601_cover_with_1_switch',
|
|
4982
|
+
vendor: 'TuYa',
|
|
4983
|
+
description: 'Curtain/blind switch with 1 Gang switch',
|
|
4984
|
+
options: [exposes.options.invert_cover()],
|
|
4985
|
+
fromZigbee: [tuya.fz.datapoints],
|
|
4986
|
+
toZigbee: [tuya.tz.datapoints],
|
|
4987
|
+
exposes: [
|
|
4988
|
+
e.cover_position(),
|
|
4989
|
+
tuya.exposes.switch().withEndpoint('l1'),
|
|
4990
|
+
exposes.enum('calibration', ea.STATE_SET, ['START', 'END']).withDescription('Calibration'),
|
|
4991
|
+
exposes.binary('backlight_mode', ea.STATE_SET, 'ON', 'OFF').withDescription('Backlight'),
|
|
4992
|
+
exposes.enum('motor_steering', ea.STATE_SET, ['FORWARD', 'BACKWARD']).withDescription('Motor Steering'),
|
|
4993
|
+
exposes.binary('child_lock', ea.STATE_SET, 'ON', 'OFF').withDescription('Child Lock'),
|
|
4994
|
+
],
|
|
4995
|
+
endpoint: (device) => {
|
|
4996
|
+
return {'l1': 1};
|
|
4997
|
+
},
|
|
4998
|
+
meta: {
|
|
4999
|
+
multiEndpoint: true,
|
|
5000
|
+
tuyaDatapoints: [
|
|
5001
|
+
[1, 'state', tuya.valueConverterBasic.lookup({'OPEN': tuya.enum(0), 'STOP': tuya.enum(1), 'CLOSE': tuya.enum(2)})],
|
|
5002
|
+
[2, 'position', tuya.valueConverter.coverPosition],
|
|
5003
|
+
[3, 'calibration', tuya.valueConverterBasic.lookup({'START': tuya.enum(0), 'END': tuya.enum(1)})],
|
|
5004
|
+
[7, 'backlight_mode', tuya.valueConverter.onOff],
|
|
5005
|
+
[8, 'motor_steering', tuya.valueConverterBasic.lookup({'FORWARD': tuya.enum(0), 'BACKWARD': tuya.enum(1)})],
|
|
5006
|
+
[101, 'state_l1', tuya.valueConverter.onOff],
|
|
5007
|
+
[103, 'child_lock', tuya.valueConverter.onOff],
|
|
5008
|
+
],
|
|
5009
|
+
},
|
|
5010
|
+
whiteLabel: [
|
|
5011
|
+
tuya.whitelabel('Homeetec', '37022493', 'Curtain/blind switch with 1 Gang switch', ['_TZE200_jhkttplm']),
|
|
5012
|
+
],
|
|
5013
|
+
},
|
|
5014
|
+
{
|
|
5015
|
+
fingerprint: [
|
|
5016
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_5nldle7w'},
|
|
5017
|
+
],
|
|
5018
|
+
model: 'TS0601_cover_with_2_switch',
|
|
5019
|
+
vendor: 'TuYa',
|
|
5020
|
+
description: 'Curtain/blind switch with 2 Gang switch',
|
|
5021
|
+
options: [exposes.options.invert_cover()],
|
|
5022
|
+
fromZigbee: [tuya.fz.datapoints],
|
|
5023
|
+
toZigbee: [tuya.tz.datapoints],
|
|
5024
|
+
exposes: [
|
|
5025
|
+
e.cover_position(),
|
|
5026
|
+
tuya.exposes.switch().withEndpoint('l1'),
|
|
5027
|
+
tuya.exposes.switch().withEndpoint('l2'),
|
|
5028
|
+
exposes.enum('calibration', ea.STATE_SET, ['START', 'END']).withDescription('Calibration'),
|
|
5029
|
+
exposes.binary('backlight_mode', ea.STATE_SET, 'ON', 'OFF').withDescription('Backlight'),
|
|
5030
|
+
exposes.enum('motor_steering', ea.STATE_SET, ['FORWARD', 'BACKWARD']).withDescription('Motor Steering'),
|
|
5031
|
+
exposes.binary('child_lock', ea.STATE_SET, 'ON', 'OFF').withDescription('Child Lock'),
|
|
5032
|
+
],
|
|
5033
|
+
endpoint: (device) => {
|
|
5034
|
+
return {'l1': 1, 'l2': 1};
|
|
5035
|
+
},
|
|
5036
|
+
meta: {
|
|
5037
|
+
multiEndpoint: true,
|
|
5038
|
+
tuyaDatapoints: [
|
|
5039
|
+
[1, 'state', tuya.valueConverterBasic.lookup({'OPEN': tuya.enum(0), 'STOP': tuya.enum(1), 'CLOSE': tuya.enum(2)})],
|
|
5040
|
+
[2, 'position', tuya.valueConverter.coverPosition],
|
|
5041
|
+
[3, 'calibration', tuya.valueConverterBasic.lookup({'START': tuya.enum(0), 'END': tuya.enum(1)})],
|
|
5042
|
+
[7, 'backlight_mode', tuya.valueConverter.onOff],
|
|
5043
|
+
[8, 'motor_steering', tuya.valueConverterBasic.lookup({'FORWARD': tuya.enum(0), 'BACKWARD': tuya.enum(1)})],
|
|
5044
|
+
[101, 'state_l2', tuya.valueConverter.onOff],
|
|
5045
|
+
[102, 'state_l1', tuya.valueConverter.onOff],
|
|
5046
|
+
[103, 'child_lock', tuya.valueConverter.onOff],
|
|
5047
|
+
],
|
|
5048
|
+
},
|
|
5049
|
+
whiteLabel: [
|
|
5050
|
+
tuya.whitelabel('Homeetec', '37022173', 'Curtain/blind switch with 2 Gang switch', ['_TZE200_5nldle7w']),
|
|
5051
|
+
],
|
|
5052
|
+
},
|
|
4856
5053
|
];
|
package/lib/tuya.js
CHANGED
|
@@ -1656,7 +1656,7 @@ const tuyaTz = {
|
|
|
1656
1656
|
'scale_protection', 'error', 'radar_scene', 'radar_sensitivity', 'tumble_alarm_time', 'tumble_switch', 'fall_sensitivity',
|
|
1657
1657
|
'min_temperature', 'max_temperature', 'window_detection', 'boost_heating', 'alarm_ringtone', 'alarm_time', 'fan_speed',
|
|
1658
1658
|
'reverse_direction', 'border', 'click_control', 'motor_direction', 'opening_mode', 'factory_reset', 'set_upper_limit', 'set_bottom_limit',
|
|
1659
|
-
'motor_speed',
|
|
1659
|
+
'motor_speed', 'backlight_mode', 'calibration', 'motor_steering',
|
|
1660
1660
|
],
|
|
1661
1661
|
convertSet: async (entity, key, value, meta) => {
|
|
1662
1662
|
// A set converter is only called once; therefore we need to loop
|
|
@@ -1664,7 +1664,7 @@ const tuyaTz = {
|
|
|
1664
1664
|
const datapoints = utils.getMetaValue(entity, meta.mapped, 'tuyaDatapoints', undefined, undefined);
|
|
1665
1665
|
if (!datapoints) throw new Error('No datapoints map defined');
|
|
1666
1666
|
for (const [key, value] of Object.entries(meta.message)) {
|
|
1667
|
-
const convertedKey = meta.mapped.meta.multiEndpoint ? `${key}_${meta.endpoint_name}` : key;
|
|
1667
|
+
const convertedKey = meta.mapped.meta.multiEndpoint && meta.endpoint_name ? `${key}_${meta.endpoint_name}` : key;
|
|
1668
1668
|
const dpEntry = datapoints.find((d) => d[1] === convertedKey);
|
|
1669
1669
|
if (!dpEntry || !dpEntry[1]) {
|
|
1670
1670
|
throw new Error(`No datapoint defined for '${key}'`);
|