zigbee-herdsman-converters 19.65.0 → 19.67.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 (46) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/converters/fromZigbee.d.ts.map +1 -1
  3. package/converters/fromZigbee.js +5 -1
  4. package/converters/fromZigbee.js.map +1 -1
  5. package/devices/aeotec.js +1 -1
  6. package/devices/aeotec.js.map +1 -1
  7. package/devices/busch_jaeger.d.ts.map +1 -1
  8. package/devices/busch_jaeger.js +15 -19
  9. package/devices/busch_jaeger.js.map +1 -1
  10. package/devices/index.d.ts.map +1 -1
  11. package/devices/index.js +2 -0
  12. package/devices/index.js.map +1 -1
  13. package/devices/innr.d.ts.map +1 -1
  14. package/devices/innr.js +7 -0
  15. package/devices/innr.js.map +1 -1
  16. package/devices/konke.js +1 -1
  17. package/devices/konke.js.map +1 -1
  18. package/devices/lidl.d.ts.map +1 -1
  19. package/devices/lidl.js +10 -1
  20. package/devices/lidl.js.map +1 -1
  21. package/devices/soma.d.ts +4 -0
  22. package/devices/soma.d.ts.map +1 -0
  23. package/devices/soma.js +15 -0
  24. package/devices/soma.js.map +1 -0
  25. package/devices/tuya.d.ts.map +1 -1
  26. package/devices/tuya.js +198 -3
  27. package/devices/tuya.js.map +1 -1
  28. package/devices/zemismart.d.ts.map +1 -1
  29. package/devices/zemismart.js +35 -0
  30. package/devices/zemismart.js.map +1 -1
  31. package/devices/zigbeetlc.js +8 -8
  32. package/devices/zigbeetlc.js.map +1 -1
  33. package/lib/lumi.d.ts.map +1 -1
  34. package/lib/lumi.js +5 -1
  35. package/lib/lumi.js.map +1 -1
  36. package/lib/modernExtend.d.ts.map +1 -1
  37. package/lib/modernExtend.js +1 -0
  38. package/lib/modernExtend.js.map +1 -1
  39. package/lib/tuya.d.ts.map +1 -1
  40. package/lib/tuya.js +19 -27
  41. package/lib/tuya.js.map +1 -1
  42. package/lib/utils.d.ts +2 -1
  43. package/lib/utils.d.ts.map +1 -1
  44. package/lib/utils.js +45 -6
  45. package/lib/utils.js.map +1 -1
  46. package/package.json +7 -7
package/devices/tuya.js CHANGED
@@ -2572,7 +2572,7 @@ const definitions = [
2572
2572
  },
2573
2573
  },
2574
2574
  {
2575
- fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ojtqawav']),
2575
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ojtqawav', '_TZE204_gbagoilo']),
2576
2576
  model: 'TS0601_switch_1_gang',
2577
2577
  vendor: 'Tuya',
2578
2578
  description: '1 gang switch',
@@ -3329,6 +3329,7 @@ const definitions = [
3329
3329
  '_TZ3000_g92baclx',
3330
3330
  '_TZ3000_qlai3277',
3331
3331
  '_TZ3000_qaabwu5c',
3332
+ '_TZ3000_hzlsaltw',
3332
3333
  ]),
3333
3334
  model: 'TS0001_power',
3334
3335
  description: 'Switch with power monitoring',
@@ -3877,6 +3878,28 @@ const definitions = [
3877
3878
  ],
3878
3879
  },
3879
3880
  },
3881
+ {
3882
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_clm4gdw4']),
3883
+ model: 'TS0601_cover_10',
3884
+ vendor: 'Tuya',
3885
+ description: 'Cover motor',
3886
+ onEvent: tuya.onEvent(),
3887
+ configure: tuya.configureMagicPacket,
3888
+ fromZigbee: [tuya.fz.datapoints],
3889
+ toZigbee: [tuya.tz.datapoints],
3890
+ exposes: [
3891
+ e.cover_position().setAccess('position', ea.STATE_SET),
3892
+ e.enum('motor_direction', ea.STATE_SET, ['normal', 'reversed']).withDescription('Set the motor direction'),
3893
+ ],
3894
+ meta: {
3895
+ tuyaDatapoints: [
3896
+ [1, 'state', tuya.valueConverterBasic.lookup({ OPEN: tuya.enum(2), STOP: tuya.enum(1), CLOSE: tuya.enum(0) })],
3897
+ [2, 'position', tuya.valueConverter.coverPosition],
3898
+ [3, 'position', tuya.valueConverter.raw],
3899
+ [5, 'motor_direction', tuya.valueConverterBasic.lookup({ normal: false, reversed: true })],
3900
+ ],
3901
+ },
3902
+ },
3880
3903
  {
3881
3904
  zigbeeModel: ['kud7u2l'],
3882
3905
  fingerprint: [
@@ -5587,6 +5610,7 @@ const definitions = [
5587
5610
  whiteLabel: [
5588
5611
  { vendor: 'AVATTO', model: '3gang N-ZLWSM01' },
5589
5612
  tuya.whitelabel('AVATTO', 'LZWSM16-3', '3 gang switch module - (without neutral)', ['_TZ3000_sznawwyw']),
5613
+ tuya.whitelabel('Girier', 'ZB08', '3 Channel Switch Module-L - (No Neutral Wire)', ['_TZ3000_ypgri8yz']),
5590
5614
  ],
5591
5615
  extend: [tuya.modernExtend.tuyaOnOff({ switchType: true, endpoints: ['left', 'center', 'right'] })],
5592
5616
  endpoint: (device) => {
@@ -7767,7 +7791,7 @@ const definitions = [
7767
7791
  whiteLabel: [{ vendor: 'Lerlink', model: 'T2-Z67/T2-W67' }],
7768
7792
  },
7769
7793
  {
7770
- fingerprint: tuya.fingerprint('TS0601', ['_TZE200_hmqzfqml']),
7794
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_hmqzfqml', '_TZE200_qanl25yu']),
7771
7795
  model: 'TS0601_fan_and_light_switch',
7772
7796
  vendor: 'Tuya',
7773
7797
  description: 'Fan & light switch',
@@ -7778,7 +7802,7 @@ const definitions = [
7778
7802
  e.binary('status_indication', ea.STATE_SET, 'ON', 'OFF').withDescription('Light switch'),
7779
7803
  tuya.exposes.switch(),
7780
7804
  e.power_on_behavior(['OFF', 'ON']).withAccess(ea.STATE_SET),
7781
- e.enum('fan_speed', ea.STATE_SET, ['minimum', 'medium', 'maximum']).withDescription('Speed off the fan'),
7805
+ e.enum('fan_speed', ea.STATE_SET, ['minimum', 'medium', 'maximum']).withDescription('Speed of the fan'),
7782
7806
  ],
7783
7807
  meta: {
7784
7808
  tuyaDatapoints: [
@@ -8440,6 +8464,7 @@ const definitions = [
8440
8464
  fingerprint: [
8441
8465
  { modelID: 'TS0601', manufacturerName: '_TZE200_vmcgja59' },
8442
8466
  { modelID: 'TS0601', manufacturerName: '_TZE204_dvosyycn' },
8467
+ { modelID: 'TS0601', manufacturerName: '_TZE200_wktrysab' },
8443
8468
  ],
8444
8469
  model: 'TS0601_switch_8',
8445
8470
  vendor: 'Tuya',
@@ -10357,6 +10382,176 @@ const definitions = [
10357
10382
  ],
10358
10383
  },
10359
10384
  },
10385
+ {
10386
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_q22avxbv', '_TZE204_mrffaamu']),
10387
+ model: 'TOQCB2-80',
10388
+ vendor: 'Tuya',
10389
+ description: 'Smart circuit breaker',
10390
+ fromZigbee: [tuya.fz.datapoints],
10391
+ toZigbee: [tuya.tz.datapoints],
10392
+ // Important: respondToMcuVersionResponse should be false otherweise there are an avalanche of commandMcuVersionResponse messages every second.
10393
+ // queryIntervalSeconds: is doing a pooling to update device's parameters, now define to update data every 3 minutes.
10394
+ onEvent: tuya.onEvent({ respondToMcuVersionResponse: false, queryIntervalSeconds: 3 * 60 }),
10395
+ configure: tuya.configureMagicPacket,
10396
+ exposes: [
10397
+ tuya.exposes.switch(),
10398
+ e.energy(),
10399
+ e.power(),
10400
+ e.voltage(),
10401
+ e.current(),
10402
+ e.temperature(),
10403
+ tuya.exposes.voltageWithPhase('a'),
10404
+ tuya.exposes.voltageWithPhase('b'),
10405
+ tuya.exposes.voltageWithPhase('c'),
10406
+ tuya.exposes.powerWithPhase('a'),
10407
+ tuya.exposes.powerWithPhase('b'),
10408
+ tuya.exposes.powerWithPhase('c'),
10409
+ tuya.exposes.currentWithPhase('a'),
10410
+ tuya.exposes.currentWithPhase('b'),
10411
+ tuya.exposes.currentWithPhase('c'),
10412
+ e
10413
+ .enum('last_event', ea.STATE, [
10414
+ 'normal',
10415
+ 'trip_over_current',
10416
+ 'trip_over_power',
10417
+ 'trip_over_temperature',
10418
+ 'trip_voltage_1',
10419
+ 'trip_voltage_2',
10420
+ 'alarm_over_current',
10421
+ 'alarm_over_power',
10422
+ 'alarm_over_temperature',
10423
+ 'alarm_voltage_1',
10424
+ 'alarm_voltage_2',
10425
+ 'remote_on',
10426
+ 'remote_off',
10427
+ 'manual_on',
10428
+ 'manual_off',
10429
+ 'value_15',
10430
+ 'value_16',
10431
+ 'factory_reset',
10432
+ ])
10433
+ .withDescription('Last event'),
10434
+ e.enum('over_current_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
10435
+ e
10436
+ .numeric('current_threshold', ea.STATE_SET)
10437
+ .withValueMin(1)
10438
+ .withValueMax(63)
10439
+ .withValueStep(1)
10440
+ .withUnit('A')
10441
+ .withDescription('Current threshold setting'),
10442
+ e.enum('under_voltage_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
10443
+ e
10444
+ .numeric('under_voltage_threshold', ea.STATE_SET)
10445
+ .withValueMin(145)
10446
+ .withValueMax(220)
10447
+ .withValueStep(1)
10448
+ .withUnit('V')
10449
+ .withDescription('Under voltage threshold setting'),
10450
+ e.enum('over_voltage_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
10451
+ e
10452
+ .numeric('over_voltage_threshold', ea.STATE_SET)
10453
+ .withValueMin(245)
10454
+ .withValueMax(295)
10455
+ .withValueStep(1)
10456
+ .withUnit('V')
10457
+ .withDescription('Over-voltage threshold setting'),
10458
+ e.enum('over_power_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
10459
+ e
10460
+ .numeric('over_power_threshold', ea.STATE_SET)
10461
+ .withValueMin(200)
10462
+ .withValueMax(20000)
10463
+ .withValueStep(100)
10464
+ .withUnit('W')
10465
+ .withDescription('Over-power threshold setting'),
10466
+ e.enum('temperature_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
10467
+ e
10468
+ .numeric('temperature_threshold', ea.STATE_SET)
10469
+ .withValueMin(-40)
10470
+ .withValueMax(100)
10471
+ .withValueStep(1)
10472
+ .withUnit('°C')
10473
+ .withDescription('Temperature threshold setting'),
10474
+ e.binary('clear_fault', ea.STATE_SET, 'ON', 'OFF').withDescription('Recover from an incident'),
10475
+ e.binary('factory_reset', ea.STATE_SET, 'ON', 'OFF').withDescription('Back to factory settings, USE WITH CAUTION'),
10476
+ ],
10477
+ meta: {
10478
+ tuyaDatapoints: [
10479
+ [1, 'energy', tuya.valueConverter.divideBy100],
10480
+ //[6, null, tuya.valueConverter.phaseVariant2],
10481
+ [3, null, null], // Monthly, but sends data only after request
10482
+ [4, null, null], // Dayly, but sends data only after request
10483
+ [6, null, tuya.valueConverter.phaseVariant2WithPhase('a')],
10484
+ [7, null, tuya.valueConverter.phaseVariant2WithPhase('b')],
10485
+ [8, null, tuya.valueConverter.phaseVariant2WithPhase('c')],
10486
+ [16, 'state', tuya.valueConverter.onOff],
10487
+ [102, 'over_voltage_setting', tuya.valueConverterBasic.lookup({ closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2) })],
10488
+ [103, 'under_voltage_setting', tuya.valueConverterBasic.lookup({ closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2) })],
10489
+ [104, 'over_current_setting', tuya.valueConverterBasic.lookup({ closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2) })],
10490
+ [105, 'over_power_setting', tuya.valueConverterBasic.lookup({ closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2) })],
10491
+ [107, 'temperature_setting', tuya.valueConverterBasic.lookup({ closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2) })],
10492
+ //109, 'online_state, unknown, I have not seen any message from this DP],
10493
+ [
10494
+ 110,
10495
+ 'last_event1',
10496
+ tuya.valueConverterBasic.lookup({
10497
+ normal: tuya.enum(0),
10498
+ trip_over_current: tuya.enum(1),
10499
+ trip_over_power: tuya.enum(2),
10500
+ trip_over_temperature: tuya.enum(3),
10501
+ trip_voltage_1: tuya.enum(4),
10502
+ trip_voltage_2: tuya.enum(5),
10503
+ alarm_over_current: tuya.enum(6),
10504
+ alarm_over_power: tuya.enum(7),
10505
+ alarm_over_temperature: tuya.enum(8),
10506
+ alarm_voltage_1: tuya.enum(9),
10507
+ alarm_voltage_2: tuya.enum(10),
10508
+ remote_on: tuya.enum(11),
10509
+ remote_off: tuya.enum(12),
10510
+ manual_on: tuya.enum(13),
10511
+ manual_off: tuya.enum(14),
10512
+ value_15: tuya.enum(15),
10513
+ value_16: tuya.enum(16),
10514
+ factory_reset: tuya.enum(17),
10515
+ }),
10516
+ ],
10517
+ [112, 'clear_fault', tuya.valueConverter.onOff],
10518
+ [113, 'factory_reset', tuya.valueConverter.onOff],
10519
+ [114, 'current_threshold', tuya.valueConverter.raw],
10520
+ [115, 'over_voltage_threshold', tuya.valueConverter.raw],
10521
+ [116, 'under_voltage_threshold', tuya.valueConverter.raw],
10522
+ [118, 'temperature_threshold', tuya.valueConverter.divideBy10],
10523
+ [119, 'over_power_threshold', tuya.valueConverter.raw],
10524
+ //[125, 'forward_electricity', tuya.valueConverter.divideBy100],
10525
+ [131, 'temperature', tuya.valueConverter.divideBy10],
10526
+ ],
10527
+ },
10528
+ },
10529
+ {
10530
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_nbkshs6k']),
10531
+ model: 'ZY-M100-S_3',
10532
+ vendor: 'Tuya',
10533
+ description: 'Human presence detector',
10534
+ fromZigbee: [tuya.fz.datapoints],
10535
+ toZigbee: [tuya.tz.datapoints],
10536
+ onEvent: tuya.onEventSetTime,
10537
+ configure: tuya.configureMagicPacket,
10538
+ exposes: [
10539
+ e.presence(),
10540
+ e.illuminance_lux(),
10541
+ e
10542
+ .enum('sensitivity', ea.STATE_SET, ['low', 'medium', 'high'])
10543
+ .withDescription('PIR sensor sensitivity (refresh and update only while active)'),
10544
+ e.enum('keep_time', ea.STATE_SET, ['30', '60', '120']).withDescription('PIR keep time in seconds (refresh and update only while active)'),
10545
+ ],
10546
+ meta: {
10547
+ tuyaDatapoints: [
10548
+ [1, 'presence', tuya.valueConverterBasic.lookup({ True: 0, False: 1 })],
10549
+ [9, 'sensitivity', tuya.valueConverterBasic.lookup({ low: tuya.enum(0), medium: tuya.enum(1), high: tuya.enum(2) })],
10550
+ [10, 'keep_time', tuya.valueConverterBasic.lookup({ '30': tuya.enum(0), '60': tuya.enum(1), '120': tuya.enum(2) })],
10551
+ [12, 'illuminance_lux', tuya.valueConverter.raw],
10552
+ ],
10553
+ },
10554
+ },
10360
10555
  ];
10361
10556
  exports.default = definitions;
10362
10557
  module.exports = definitions;