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.
Files changed (79) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +33 -18
  3. package/dist/converters/toZigbee.js +1 -1
  4. package/dist/converters/toZigbee.js.map +1 -1
  5. package/dist/devices/efekta.js +2 -2
  6. package/dist/devices/efekta.js.map +1 -1
  7. package/dist/devices/gledopto.js +1 -1
  8. package/dist/devices/gledopto.js.map +1 -1
  9. package/dist/devices/gmmts.js +1 -1
  10. package/dist/devices/gmmts.js.map +1 -1
  11. package/dist/devices/heiman.d.ts.map +1 -1
  12. package/dist/devices/heiman.js +7 -0
  13. package/dist/devices/heiman.js.map +1 -1
  14. package/dist/devices/ikea.js +1 -1
  15. package/dist/devices/ikea.js.map +1 -1
  16. package/dist/devices/index.d.ts.map +1 -1
  17. package/dist/devices/index.js +2 -0
  18. package/dist/devices/index.js.map +1 -1
  19. package/dist/devices/inovelli.js +15 -15
  20. package/dist/devices/inovelli.js.map +1 -1
  21. package/dist/devices/lincukoo.d.ts +3 -0
  22. package/dist/devices/lincukoo.d.ts.map +1 -0
  23. package/dist/devices/lincukoo.js +135 -0
  24. package/dist/devices/lincukoo.js.map +1 -0
  25. package/dist/devices/lixee.js +1 -1
  26. package/dist/devices/muller_licht.d.ts.map +1 -1
  27. package/dist/devices/muller_licht.js +7 -0
  28. package/dist/devices/muller_licht.js.map +1 -1
  29. package/dist/devices/namron.js +1 -1
  30. package/dist/devices/namron.js.map +1 -1
  31. package/dist/devices/paulmann.js +1 -1
  32. package/dist/devices/paulmann.js.map +1 -1
  33. package/dist/devices/philips.d.ts.map +1 -1
  34. package/dist/devices/philips.js +7 -0
  35. package/dist/devices/philips.js.map +1 -1
  36. package/dist/devices/qoto.js +1 -1
  37. package/dist/devices/qoto.js.map +1 -1
  38. package/dist/devices/sonoff.d.ts.map +1 -1
  39. package/dist/devices/sonoff.js +63 -1
  40. package/dist/devices/sonoff.js.map +1 -1
  41. package/dist/devices/tech.js +2 -2
  42. package/dist/devices/tech.js.map +1 -1
  43. package/dist/devices/tuya.d.ts.map +1 -1
  44. package/dist/devices/tuya.js +120 -40
  45. package/dist/devices/tuya.js.map +1 -1
  46. package/dist/devices/yandex.js +1 -1
  47. package/dist/devices/yandex.js.map +1 -1
  48. package/dist/devices/yokis.js +8 -8
  49. package/dist/devices/yokis.js.map +1 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +7 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/lib/develco.js +1 -1
  54. package/dist/lib/develco.js.map +1 -1
  55. package/dist/lib/ewelink.js +8 -8
  56. package/dist/lib/ewelink.js.map +1 -1
  57. package/dist/lib/exposes.d.ts +1 -0
  58. package/dist/lib/exposes.d.ts.map +1 -1
  59. package/dist/lib/exposes.js +1 -0
  60. package/dist/lib/exposes.js.map +1 -1
  61. package/dist/lib/ikea.d.ts.map +1 -1
  62. package/dist/lib/ikea.js +87 -1
  63. package/dist/lib/ikea.js.map +1 -1
  64. package/dist/lib/lumi.js +4 -4
  65. package/dist/lib/lumi.js.map +1 -1
  66. package/dist/lib/modernExtend.js +2 -2
  67. package/dist/lib/modernExtend.js.map +1 -1
  68. package/dist/lib/ota.d.ts +2 -1
  69. package/dist/lib/ota.d.ts.map +1 -1
  70. package/dist/lib/ota.js +30 -18
  71. package/dist/lib/ota.js.map +1 -1
  72. package/dist/lib/tuya.d.ts +17 -0
  73. package/dist/lib/tuya.d.ts.map +1 -1
  74. package/dist/lib/tuya.js +30 -0
  75. package/dist/lib/tuya.js.map +1 -1
  76. package/dist/lib/utils.js +1 -1
  77. package/dist/lib/utils.js.map +1 -1
  78. package/dist/models-index.json +1 -1
  79. package/package.json +3 -3
@@ -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 emited and current_x==0, power_x==0 and power_factor_x==100.
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) emited during the next update. This is quite problematic
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' attibute and invalidate
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("Sensitivty of the sensor (0 = highest sensitivity, 50 = lowest sensitivity). " +
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 noraml status, will not retunr to normal until door is triggered again",
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 dectection distance"),
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 betwwen 0.5 and 2.5 degree.
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 hight temp protection kicked in
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 / hight temperature protection off
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 meausure the temperature of the floor?"),
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 tempature before the scheduled start time."),
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 farest distance that can be detected (moving)")
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 farest distance that can be detected (present)")
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("Dectection distance when unoccupied"),
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