zigbee-herdsman-converters 23.25.0 → 23.27.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 +35 -0
- package/README.md +33 -18
- package/dist/converters/toZigbee.js +1 -1
- package/dist/converters/toZigbee.js.map +1 -1
- package/dist/devices/efekta.js +2 -2
- package/dist/devices/efekta.js.map +1 -1
- package/dist/devices/gledopto.js +1 -1
- package/dist/devices/gledopto.js.map +1 -1
- package/dist/devices/gmmts.js +1 -1
- package/dist/devices/gmmts.js.map +1 -1
- package/dist/devices/heiman.d.ts.map +1 -1
- package/dist/devices/heiman.js +7 -0
- package/dist/devices/heiman.js.map +1 -1
- package/dist/devices/ikea.js +1 -1
- package/dist/devices/ikea.js.map +1 -1
- package/dist/devices/index.d.ts.map +1 -1
- package/dist/devices/index.js +2 -0
- package/dist/devices/index.js.map +1 -1
- package/dist/devices/inovelli.js +15 -15
- package/dist/devices/inovelli.js.map +1 -1
- package/dist/devices/lincukoo.d.ts +3 -0
- package/dist/devices/lincukoo.d.ts.map +1 -0
- package/dist/devices/lincukoo.js +135 -0
- package/dist/devices/lincukoo.js.map +1 -0
- package/dist/devices/lixee.js +1 -1
- package/dist/devices/muller_licht.d.ts.map +1 -1
- package/dist/devices/muller_licht.js +7 -0
- package/dist/devices/muller_licht.js.map +1 -1
- package/dist/devices/namron.js +1 -1
- package/dist/devices/namron.js.map +1 -1
- package/dist/devices/paulmann.js +1 -1
- package/dist/devices/paulmann.js.map +1 -1
- package/dist/devices/philips.d.ts.map +1 -1
- package/dist/devices/philips.js +7 -0
- package/dist/devices/philips.js.map +1 -1
- package/dist/devices/qoto.js +1 -1
- package/dist/devices/qoto.js.map +1 -1
- package/dist/devices/sonoff.d.ts.map +1 -1
- package/dist/devices/sonoff.js +63 -1
- package/dist/devices/sonoff.js.map +1 -1
- package/dist/devices/tech.js +2 -2
- package/dist/devices/tech.js.map +1 -1
- package/dist/devices/tuya.d.ts.map +1 -1
- package/dist/devices/tuya.js +120 -40
- package/dist/devices/tuya.js.map +1 -1
- package/dist/devices/yandex.js +1 -1
- package/dist/devices/yandex.js.map +1 -1
- package/dist/devices/yokis.js +8 -8
- package/dist/devices/yokis.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/develco.js +1 -1
- package/dist/lib/develco.js.map +1 -1
- package/dist/lib/ewelink.js +8 -8
- package/dist/lib/ewelink.js.map +1 -1
- package/dist/lib/exposes.d.ts +1 -0
- package/dist/lib/exposes.d.ts.map +1 -1
- package/dist/lib/exposes.js +1 -0
- package/dist/lib/exposes.js.map +1 -1
- package/dist/lib/ikea.d.ts.map +1 -1
- package/dist/lib/ikea.js +87 -1
- package/dist/lib/ikea.js.map +1 -1
- package/dist/lib/lumi.js +4 -4
- package/dist/lib/lumi.js.map +1 -1
- package/dist/lib/modernExtend.js +2 -2
- package/dist/lib/modernExtend.js.map +1 -1
- package/dist/lib/ota.d.ts +2 -1
- package/dist/lib/ota.d.ts.map +1 -1
- package/dist/lib/ota.js +30 -18
- package/dist/lib/ota.js.map +1 -1
- package/dist/lib/tuya.d.ts +17 -0
- package/dist/lib/tuya.d.ts.map +1 -1
- package/dist/lib/tuya.js +30 -0
- package/dist/lib/tuya.js.map +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/models-index.json +1 -1
- package/package.json +3 -3
package/dist/devices/tuya.js
CHANGED
|
@@ -83,12 +83,12 @@ const storeLocal = {
|
|
|
83
83
|
// 115 power_ab
|
|
84
84
|
//
|
|
85
85
|
// It should be noted that when no current is detected on channel x then
|
|
86
|
-
// energy_flow_x is not
|
|
86
|
+
// energy_flow_x is not emitted and current_x==0, power_x==0 and power_factor_x==100.
|
|
87
87
|
//
|
|
88
88
|
// The other datapoints are emitted every few minutes.
|
|
89
89
|
//
|
|
90
90
|
// There is a known issue on the _TZE204_81yrt3lo (with appVersion 74, stackVersion 0 and hwVersion 1).
|
|
91
|
-
// The energy_flow datapoints are (incorrectly)
|
|
91
|
+
// The energy_flow datapoints are (incorrectly) emitted during the next update. This is quite problematic
|
|
92
92
|
// because that means that the direction can be inverted for up to update_frequency seconds.
|
|
93
93
|
//
|
|
94
94
|
// The features implemented here are
|
|
@@ -96,7 +96,7 @@ const storeLocal = {
|
|
|
96
96
|
// - (OPTIONAL) solve the issue described above by waiting for the next energy flow datapoint
|
|
97
97
|
// before publishing the cached channel data.
|
|
98
98
|
// - (OPTIONAL) provide signed power instead of energy flow.
|
|
99
|
-
// - detect missing or reordered Zigbee message using the Tuya 'seq'
|
|
99
|
+
// - detect missing or reordered Zigbee message using the Tuya 'seq' attribute and invalidate
|
|
100
100
|
// cached data accordingly.
|
|
101
101
|
//
|
|
102
102
|
priv = {
|
|
@@ -3044,7 +3044,7 @@ exports.definitions = [
|
|
|
3044
3044
|
},
|
|
3045
3045
|
},
|
|
3046
3046
|
{
|
|
3047
|
-
fingerprint: tuya.fingerprint("TS0601", ["_TZE200_go3tvswy", "_TZE204_2imwyigp"]),
|
|
3047
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE200_go3tvswy", "_TZE204_2imwyigp", "_TZE200_2imwyigp"]),
|
|
3048
3048
|
model: "MG-ZG03W",
|
|
3049
3049
|
vendor: "Tuya",
|
|
3050
3050
|
description: "3 gang switch",
|
|
@@ -7375,30 +7375,6 @@ exports.definitions = [
|
|
|
7375
7375
|
}
|
|
7376
7376
|
},
|
|
7377
7377
|
},
|
|
7378
|
-
{
|
|
7379
|
-
fingerprint: tuya.fingerprint("TS0726", ["_TZ3002_rbnycsav"]),
|
|
7380
|
-
model: "TS0726_3_gang",
|
|
7381
|
-
vendor: "Tuya",
|
|
7382
|
-
description: "3 gang switch with neutral wire",
|
|
7383
|
-
fromZigbee: [fz.on_off, tuya.fz.power_on_behavior_2, fz.ignore_basic_report, fzLocal.TS0726_action],
|
|
7384
|
-
toZigbee: [tz.on_off, tuya.tz.power_on_behavior_2, tzLocal.TS0726_switch_mode],
|
|
7385
|
-
exposes: [
|
|
7386
|
-
...[1, 2, 3].map((ep) => e.switch().withEndpoint(`l${ep}`)),
|
|
7387
|
-
...[1, 2, 3].map((ep) => e.power_on_behavior().withEndpoint(`l${ep}`)),
|
|
7388
|
-
...[1, 2, 3].map((ep) => e.enum("switch_mode", ea.STATE_SET, ["switch", "scene"]).withEndpoint(`l${ep}`)),
|
|
7389
|
-
e.action(["scene_1", "scene_2", "scene_3"]),
|
|
7390
|
-
],
|
|
7391
|
-
endpoint: (device) => {
|
|
7392
|
-
return { l1: 1, l2: 2, l3: 3 };
|
|
7393
|
-
},
|
|
7394
|
-
meta: { multiEndpoint: true },
|
|
7395
|
-
configure: async (device, coordinatorEndpoint) => {
|
|
7396
|
-
await tuya.configureMagicPacket(device, coordinatorEndpoint);
|
|
7397
|
-
for (const ep of [1, 2, 3]) {
|
|
7398
|
-
await reporting.bind(device.getEndpoint(ep), coordinatorEndpoint, ["genOnOff"]);
|
|
7399
|
-
}
|
|
7400
|
-
},
|
|
7401
|
-
},
|
|
7402
7378
|
{
|
|
7403
7379
|
fingerprint: tuya.fingerprint("TS0726", ["_TZ3002_9vcekkp1", "_TZ3000_m4ah6bcz"]),
|
|
7404
7380
|
model: "TS0726_multi_1_gang",
|
|
@@ -7496,7 +7472,7 @@ exports.definitions = [
|
|
|
7496
7472
|
},
|
|
7497
7473
|
},
|
|
7498
7474
|
{
|
|
7499
|
-
fingerprint: tuya.fingerprint("TS0726", ["_TZ3000_wsspgtcd"]),
|
|
7475
|
+
fingerprint: tuya.fingerprint("TS0726", ["_TZ3000_wsspgtcd", "_TZ3000_s678wazd"]),
|
|
7500
7476
|
model: "TS0726_4_gang",
|
|
7501
7477
|
vendor: "Tuya",
|
|
7502
7478
|
description: "4 gang switch with neutral wire",
|
|
@@ -8107,7 +8083,7 @@ exports.definitions = [
|
|
|
8107
8083
|
.numeric("sensitivity", ea.STATE_SET)
|
|
8108
8084
|
.withValueMin(0)
|
|
8109
8085
|
.withValueMax(50)
|
|
8110
|
-
.withDescription("
|
|
8086
|
+
.withDescription("Sensitivity of the sensor (0 = highest sensitivity, 50 = lowest sensitivity). " +
|
|
8111
8087
|
"Press button on the device right before changing this"),
|
|
8112
8088
|
],
|
|
8113
8089
|
},
|
|
@@ -8303,7 +8279,7 @@ exports.definitions = [
|
|
|
8303
8279
|
name: "status",
|
|
8304
8280
|
dp: 12,
|
|
8305
8281
|
type: tuya.dataTypes.enum,
|
|
8306
|
-
description: "Indicates run time alarm, door open alarm or
|
|
8282
|
+
description: "Indicates run time alarm, door open alarm or normal status, will not return to normal until door is triggered again",
|
|
8307
8283
|
lookup: { "Open Time Alarm": 0, "Run Time Alarm": 1, Normal: 2 },
|
|
8308
8284
|
readOnly: true,
|
|
8309
8285
|
}),
|
|
@@ -12589,7 +12565,7 @@ exports.definitions = [
|
|
|
12589
12565
|
.withValueMax(8)
|
|
12590
12566
|
.withValueStep(0.1)
|
|
12591
12567
|
.withUnit("m")
|
|
12592
|
-
.withDescription("Indent the distance inward based on the
|
|
12568
|
+
.withDescription("Indent the distance inward based on the detection distance"),
|
|
12593
12569
|
e
|
|
12594
12570
|
.numeric("entry_filter_time", ea.STATE_SET)
|
|
12595
12571
|
.withValueMin(0)
|
|
@@ -13957,10 +13933,10 @@ exports.definitions = [
|
|
|
13957
13933
|
[107, "low_temperature_protection_state", tuya.valueConverter.onOff],
|
|
13958
13934
|
// 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)
|
|
13959
13935
|
[109, "local_temperature_calibration", tuya.valueConverter.localTempCalibration3],
|
|
13960
|
-
// according to manual settable
|
|
13936
|
+
// according to manual settable between 0.5 and 2.5 degree.
|
|
13961
13937
|
// staring with 5 as 0.5 degree, and 25 as 2.5 degree (data type 2)
|
|
13962
13938
|
[110, "temperature_return_difference", tuya.valueConverter.raw],
|
|
13963
|
-
// range 1-9. How far should temperature drop to turn back heating, if
|
|
13939
|
+
// range 1-9. How far should temperature drop to turn back heating, if high temp protection kicked in
|
|
13964
13940
|
[111, "deadzone_temperature", tuya.valueConverter.raw],
|
|
13965
13941
|
// High temperature protection
|
|
13966
13942
|
// range 20-70, trying to turn below 20 keeps this datapoint at 20 but turns 106 to 0
|
|
@@ -13970,7 +13946,7 @@ exports.definitions = [
|
|
|
13970
13946
|
[114, "max_temperature", tuya.valueConverter.raw],
|
|
13971
13947
|
// choose_sensor
|
|
13972
13948
|
// 0: device sensor. Switches "higsyht_temperature_protection_state" off
|
|
13973
|
-
// 1: external sensor /
|
|
13949
|
+
// 1: external sensor / high temperature protection off
|
|
13974
13950
|
// 2: internal for room + external for high temperature protection. Switches "hight_temperature_protection_state" on
|
|
13975
13951
|
[116, "sensor_mode", tuya.valueConverterBasic.lookup({ IN: 0, OU: 1, AL: 2 })],
|
|
13976
13952
|
// once every 24h it provides an array of numbers, maybe device fingerprint or something
|
|
@@ -15267,10 +15243,10 @@ exports.definitions = [
|
|
|
15267
15243
|
.withLocalTemperature(ea.STATE),
|
|
15268
15244
|
e
|
|
15269
15245
|
.enum("sensor_mode", ea.STATE_SET, ["room_temperature", "floor_temperature", "room_with_floor_limit"])
|
|
15270
|
-
.withDescription("What type of sensor are you using to
|
|
15246
|
+
.withDescription("What type of sensor are you using to measure the temperature of the floor?"),
|
|
15271
15247
|
e
|
|
15272
15248
|
.binary("adaptive_start", ea.STATE_SET, "ON", "OFF")
|
|
15273
|
-
.withDescription("Preheat the room to the desired
|
|
15249
|
+
.withDescription("Preheat the room to the desired temperature before the scheduled start time."),
|
|
15274
15250
|
e.max_temperature_limit().withDescription("Maximum temperature (default: 35 ºC)").withValueMin(5).withValueMax(35).withValueStep(0.5),
|
|
15275
15251
|
e
|
|
15276
15252
|
.min_temperature_limit()
|
|
@@ -15802,14 +15778,14 @@ exports.definitions = [
|
|
|
15802
15778
|
.withValueMin(0.1)
|
|
15803
15779
|
.withValueMax(7)
|
|
15804
15780
|
.withValueStep(0.1)
|
|
15805
|
-
.withDescription("The
|
|
15781
|
+
.withDescription("The farthest distance that can be detected (moving)")
|
|
15806
15782
|
.withUnit("m"),
|
|
15807
15783
|
e
|
|
15808
15784
|
.numeric("largest_presence_detection_distance", ea.STATE_SET)
|
|
15809
15785
|
.withValueMin(0.1)
|
|
15810
15786
|
.withValueMax(7)
|
|
15811
15787
|
.withValueStep(0.1)
|
|
15812
|
-
.withDescription("The
|
|
15788
|
+
.withDescription("The farthest distance that can be detected (present)")
|
|
15813
15789
|
.withUnit("m"),
|
|
15814
15790
|
e.binary("restore_factory", ea.STATE_SET, "ON", "OFF").withDescription("restore_factory"),
|
|
15815
15791
|
e.binary("led_indicator", ea.STATE_SET, "ON", "OFF").withDescription("turn on or off the led "),
|
|
@@ -15879,7 +15855,7 @@ exports.definitions = [
|
|
|
15879
15855
|
.withValueMax(8)
|
|
15880
15856
|
.withValueStep(0.1)
|
|
15881
15857
|
.withUnit("m")
|
|
15882
|
-
.withDescription("
|
|
15858
|
+
.withDescription("Detection distance when unoccupied"),
|
|
15883
15859
|
e
|
|
15884
15860
|
.numeric("entry_filter_time", ea.STATE_SET)
|
|
15885
15861
|
.withValueMin(0)
|
|
@@ -16549,5 +16525,109 @@ exports.definitions = [
|
|
|
16549
16525
|
],
|
|
16550
16526
|
},
|
|
16551
16527
|
},
|
|
16528
|
+
{
|
|
16529
|
+
fingerprint: tuya.fingerprint("TS0003", ["_TZ3000_g9chy2ib"]),
|
|
16530
|
+
model: "TS0003_3_gang_switch",
|
|
16531
|
+
vendor: "Tuya",
|
|
16532
|
+
description: "3 gang switch with backlight",
|
|
16533
|
+
extend: [
|
|
16534
|
+
tuya.modernExtend.tuyaOnOff({
|
|
16535
|
+
powerOnBehavior2: true,
|
|
16536
|
+
backlightModeOffOn: true,
|
|
16537
|
+
onOffCountdown: true,
|
|
16538
|
+
endpoints: ["l1", "l2", "l3"],
|
|
16539
|
+
}),
|
|
16540
|
+
],
|
|
16541
|
+
fromZigbee: [],
|
|
16542
|
+
toZigbee: [],
|
|
16543
|
+
endpoint: (device) => ({ l1: 1, l2: 2, l3: 3 }),
|
|
16544
|
+
meta: {
|
|
16545
|
+
multiEndpoint: true,
|
|
16546
|
+
},
|
|
16547
|
+
configure: async (device, coordinatorEndpoint) => {
|
|
16548
|
+
await tuya.configureMagicPacket(device, coordinatorEndpoint);
|
|
16549
|
+
for (const ep of [1, 2, 3]) {
|
|
16550
|
+
await reporting.bind(device.getEndpoint(ep), coordinatorEndpoint, ["genOnOff"]);
|
|
16551
|
+
}
|
|
16552
|
+
},
|
|
16553
|
+
},
|
|
16554
|
+
{
|
|
16555
|
+
fingerprint: tuya.fingerprint("TS0726", ["_TZ3000_ezqbvrqz", "_TZ3002_ymv5vytn"]),
|
|
16556
|
+
model: "TS0726_2_gang_scene_switch",
|
|
16557
|
+
vendor: "Tuya",
|
|
16558
|
+
description: "2 gang switch with scene and backlight",
|
|
16559
|
+
extend: [
|
|
16560
|
+
tuya.modernExtend.tuyaOnOff({
|
|
16561
|
+
switchMode: true,
|
|
16562
|
+
powerOnBehavior2: true,
|
|
16563
|
+
backlightModeOffOn: true,
|
|
16564
|
+
indicatorModeNoneRelayPos: true,
|
|
16565
|
+
onOffCountdown: true,
|
|
16566
|
+
endpoints: ["l1", "l2"],
|
|
16567
|
+
}),
|
|
16568
|
+
],
|
|
16569
|
+
endpoint: (device) => ({ l1: 1, l2: 2 }),
|
|
16570
|
+
meta: {
|
|
16571
|
+
multiEndpoint: true,
|
|
16572
|
+
},
|
|
16573
|
+
configure: async (device, coordinatorEndpoint) => {
|
|
16574
|
+
await tuya.configureMagicPacket(device, coordinatorEndpoint);
|
|
16575
|
+
for (const ep of [1, 2]) {
|
|
16576
|
+
await reporting.bind(device.getEndpoint(ep), coordinatorEndpoint, ["genOnOff"]);
|
|
16577
|
+
}
|
|
16578
|
+
},
|
|
16579
|
+
},
|
|
16580
|
+
{
|
|
16581
|
+
fingerprint: tuya.fingerprint("TS0726", ["_TZ3000_noru9tix", "_TZ3002_rbnycsav"]),
|
|
16582
|
+
model: "TS0726_3_gang_scene_switch",
|
|
16583
|
+
vendor: "Tuya",
|
|
16584
|
+
description: "3 gang switch with scene and backlight",
|
|
16585
|
+
extend: [
|
|
16586
|
+
tuya.modernExtend.tuyaOnOff({
|
|
16587
|
+
switchMode: true,
|
|
16588
|
+
powerOnBehavior2: true,
|
|
16589
|
+
backlightModeOffOn: true,
|
|
16590
|
+
indicatorModeNoneRelayPos: true,
|
|
16591
|
+
onOffCountdown: true,
|
|
16592
|
+
endpoints: ["l1", "l2", "l3"],
|
|
16593
|
+
}),
|
|
16594
|
+
],
|
|
16595
|
+
endpoint: (device) => ({ l1: 1, l2: 2, l3: 3 }),
|
|
16596
|
+
meta: {
|
|
16597
|
+
multiEndpoint: true,
|
|
16598
|
+
},
|
|
16599
|
+
configure: async (device, coordinatorEndpoint) => {
|
|
16600
|
+
await tuya.configureMagicPacket(device, coordinatorEndpoint);
|
|
16601
|
+
for (const ep of [1, 2, 3]) {
|
|
16602
|
+
await reporting.bind(device.getEndpoint(ep), coordinatorEndpoint, ["genOnOff"]);
|
|
16603
|
+
}
|
|
16604
|
+
},
|
|
16605
|
+
},
|
|
16606
|
+
{
|
|
16607
|
+
fingerprint: tuya.fingerprint("TS0726", ["_TZ3000_rsylfthg"]),
|
|
16608
|
+
model: "TS0726_4_gang_scene_switch",
|
|
16609
|
+
vendor: "Tuya",
|
|
16610
|
+
description: "4 gang switch with scene and backlight",
|
|
16611
|
+
extend: [
|
|
16612
|
+
tuya.modernExtend.tuyaOnOff({
|
|
16613
|
+
switchMode: true,
|
|
16614
|
+
powerOnBehavior2: true,
|
|
16615
|
+
backlightModeOffOn: true,
|
|
16616
|
+
indicatorModeNoneRelayPos: true,
|
|
16617
|
+
onOffCountdown: true,
|
|
16618
|
+
endpoints: ["l1", "l2", "l3", "l4"],
|
|
16619
|
+
}),
|
|
16620
|
+
],
|
|
16621
|
+
endpoint: (device) => ({ l1: 1, l2: 2, l3: 3, l4: 4 }),
|
|
16622
|
+
meta: {
|
|
16623
|
+
multiEndpoint: true,
|
|
16624
|
+
},
|
|
16625
|
+
configure: async (device, coordinatorEndpoint) => {
|
|
16626
|
+
await tuya.configureMagicPacket(device, coordinatorEndpoint);
|
|
16627
|
+
for (const ep of [1, 2, 3, 4]) {
|
|
16628
|
+
await reporting.bind(device.getEndpoint(ep), coordinatorEndpoint, ["genOnOff"]);
|
|
16629
|
+
}
|
|
16630
|
+
},
|
|
16631
|
+
},
|
|
16552
16632
|
];
|
|
16553
16633
|
//# sourceMappingURL=tuya.js.map
|