zigbee-herdsman-converters 20.16.2 → 20.17.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/devices/tuya.js CHANGED
@@ -791,12 +791,18 @@ const definitions = [
791
791
  { vendor: 'Dongguan Daying Electornics Technology', model: 'YG400A' },
792
792
  tuya.whitelabel('Tuya', 'TS0205_smoke_2', 'Smoke sensor', ['_TZ3210_up3pngle']),
793
793
  ],
794
- fromZigbee: [fromZigbee_1.default.ias_smoke_alarm_1, fromZigbee_1.default.ignore_basic_report],
795
- toZigbee: [],
796
- exposes: [e.smoke(), e.battery_low(), e.tamper()],
797
794
  // Configure battery % fails
798
795
  // https://github.com/Koenkk/zigbee2mqtt/issues/22421
799
- extend: [(0, modernExtend_1.battery)({ percentageReporting: false })],
796
+ extend: [(0, modernExtend_1.battery)({ percentageReporting: false }), (0, modernExtend_1.iasZoneAlarm)({ zoneType: 'smoke', zoneAttributes: ['alarm_1', 'tamper'] })],
797
+ configure: async (device, coordinatorEndpoint) => {
798
+ if (device?.manufacturerName === '_TZ3210_up3pngle') {
799
+ // Required for this version
800
+ // https://github.com/Koenkk/zigbee-herdsman-converters/pull/8004
801
+ const endpoint = device.getEndpoint(1);
802
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
803
+ await reporting.batteryPercentageRemaining(endpoint);
804
+ }
805
+ },
800
806
  },
801
807
  {
802
808
  zigbeeModel: ['TS0111'],
@@ -1549,7 +1555,11 @@ const definitions = [
1549
1555
  tuya.whitelabel('Moes', 'ZB-TDA9-RCW-E27-MS', 'RGB+CCT 9W E27 LED bulb', ['_TZ3210_wxa85bwk']),
1550
1556
  tuya.whitelabel('Moes', 'ZB-LZD10-RCW', '10W RGB+CCT Smart Downlight', ['_TZ3210_s9lumfhn', '_TZ3210_jjqdqxfq']),
1551
1557
  tuya.whitelabel('MiBoxer', 'FUT106ZR', 'GU10 bulb', ['_TZB210_rwy5hexp']),
1552
- tuya.whitelabel('Tuya', 'TS0505B_1_1', 'Zigbee 3.0 18W led light bulb E27 RGBCW', ['_TZ3210_jd3z4yig', '_TZ3210_r5afgmkl']),
1558
+ tuya.whitelabel('Tuya', 'TS0505B_1_1', 'Zigbee 3.0 18W led light bulb E27 RGBCW', [
1559
+ '_TZ3210_jd3z4yig',
1560
+ '_TZ3210_r5afgmkl',
1561
+ '_TZ3210_mja6r5ix',
1562
+ ]),
1553
1563
  tuya.whitelabel('MiBoxer', 'FUTC11ZR', 'Outdoor light', ['_TZB210_zmppwawa']),
1554
1564
  ],
1555
1565
  extend: [tuya.modernExtend.tuyaLight({ colorTemp: { range: [153, 500] }, color: true })],
@@ -1564,7 +1574,6 @@ const definitions = [
1564
1574
  description: 'Zigbee RGB+CCT light',
1565
1575
  whiteLabel: [
1566
1576
  tuya.whitelabel('Lidl', '14149505L/14149506L_2', 'Livarno Lux light bar RGB+CCT (black/white)', ['_TZ3210_iystcadi']),
1567
- tuya.whitelabel('Tuya', 'TS0505B_2_1', 'Zigbee 3.0 18W led light bulb E27 RGBCW', ['_TZ3210_mja6r5ix']),
1568
1577
  tuya.whitelabel('Tuya', 'TS0505B_2_2', 'Zigbee GU10/E14 5W smart bulb', ['_TZ3210_it1u8ahz']),
1569
1578
  ],
1570
1579
  toZigbee: [toZigbee_1.default.on_off, tzLocal.led_control, tuya.tz.do_not_disturb],
@@ -3590,6 +3599,7 @@ const definitions = [
3590
3599
  { vendor: 'Lonsonho', model: 'X701' },
3591
3600
  { vendor: 'Bandi', model: 'BDS03G1' },
3592
3601
  tuya.whitelabel('Nous', 'B1Z', '1 gang switch', ['_TZ3000_ctftgjwb']),
3602
+ tuya.whitelabel('Tuya', 'XMSJ', 'Zigbee USB power switch', ['_TZ3000_8n7lqbm0']),
3593
3603
  ],
3594
3604
  configure: async (device, coordinatorEndpoint) => {
3595
3605
  await tuya.configureMagicPacket(device, coordinatorEndpoint);
@@ -3890,7 +3900,7 @@ const definitions = [
3890
3900
  { modelID: 'TS0601', manufacturerName: '_TZE200_1fuxihti' },
3891
3901
  { modelID: 'TS0601', manufacturerName: '_TZE204_1fuxihti' },
3892
3902
  { modelID: 'TS0601', manufacturerName: '_TZE204_57hjqelq' },
3893
- { modelID: 'TS0601', manufacturerName: '_TZE204_m1wl5fvq ' },
3903
+ { modelID: 'TS0601', manufacturerName: '_TZE204_m1wl5fvq' },
3894
3904
  // Roller blinds:
3895
3905
  { modelID: 'TS0601', manufacturerName: '_TZE200_fctwhugx' },
3896
3906
  { modelID: 'TS0601', manufacturerName: '_TZE200_hsgrhjpf' },
@@ -3899,6 +3909,7 @@ const definitions = [
3899
3909
  // Tubular motors:
3900
3910
  { modelID: 'TS0601', manufacturerName: '_TZE200_5sbebbzs' },
3901
3911
  { modelID: 'TS0601', manufacturerName: '_TZE200_udank5zs' },
3912
+ { modelID: 'TS0601', manufacturerName: '_TZE204_dpqsvdbi' },
3902
3913
  { modelID: 'TS0601', manufacturerName: '_TZE200_zuz7f94z' },
3903
3914
  { modelID: 'TS0601', manufacturerName: '_TZE200_nv6nxo0c' },
3904
3915
  { modelID: 'TS0601', manufacturerName: '_TZE200_3ylew7b4' },
@@ -4112,6 +4123,7 @@ const definitions = [
4112
4123
  { modelID: 'TS0601', manufacturerName: '_TZE200_rufdtfyv' },
4113
4124
  { modelID: 'TS0601', manufacturerName: '_TZE200_lpwgshtl' },
4114
4125
  { modelID: 'TS0601', manufacturerName: '_TZE200_rk1wojce' }, // Emos P5630S
4126
+ { modelID: 'TS0601', manufacturerName: '_TZE200_rndg81sf' },
4115
4127
  ],
4116
4128
  model: 'TS0601_thermostat',
4117
4129
  vendor: 'Tuya',
@@ -5079,13 +5091,13 @@ const definitions = [
5079
5091
  await tuya.configureMagicPacket(device, coordinatorEndpoint);
5080
5092
  const endpoint = device.getEndpoint(1);
5081
5093
  await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'seMetering']);
5082
- // await reporting.rmsVoltage(endpoint, {change: 5});
5083
- // await reporting.rmsCurrent(endpoint, {change: 50});
5084
- // if (!['_TZ3000_0zfrhq4i', '_TZ3000_okaz9tjs', '_TZ3000_typdpbpg'].includes(device.manufacturerName)) {
5085
- // // Gives INVALID_DATA_TYPE error for _TZ3000_0zfrhq4i (as well as a few others in issue 20028)
5086
- // // https://github.com/Koenkk/zigbee2mqtt/discussions/19680#discussioncomment-7667035
5087
- // await reporting.activePower(endpoint, {change: 10});
5088
- // }
5094
+ await reporting.rmsVoltage(endpoint, { change: 5 });
5095
+ await reporting.rmsCurrent(endpoint, { change: 50 });
5096
+ if (!['_TZ3000_0zfrhq4i', '_TZ3000_okaz9tjs', '_TZ3000_typdpbpg'].includes(device.manufacturerName)) {
5097
+ // Gives INVALID_DATA_TYPE error for _TZ3000_0zfrhq4i (as well as a few others in issue 20028)
5098
+ // https://github.com/Koenkk/zigbee2mqtt/discussions/19680#discussioncomment-7667035
5099
+ await reporting.activePower(endpoint, { change: 10 });
5100
+ }
5089
5101
  await reporting.currentSummDelivered(endpoint);
5090
5102
  const acCurrentDivisor = device.manufacturerName === '_TZ3000_typdpbpg' ? 2000 : 1000;
5091
5103
  endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', { acCurrentDivisor, acCurrentMultiplier: 1 });
@@ -5477,6 +5489,69 @@ const definitions = [
5477
5489
  tuya.exposes.currentWithPhase('c'),
5478
5490
  e.temperature(),
5479
5491
  e.binary('leakage_test', ea.STATE_SET, 'ON', 'OFF').withDescription('Turn ON to perform a leagage test'),
5492
+ e
5493
+ .binary('over_current_breaker', ea.STATE_SET, 'ON', 'OFF')
5494
+ .withDescription('OFF - alarm only, ON - relay will turn off when threshold reached'),
5495
+ e
5496
+ .numeric('over_current_threshold', ea.STATE_SET)
5497
+ .withUnit('A')
5498
+ .withDescription('Setup the value on the device')
5499
+ .withValueMin(1)
5500
+ .withValueMax(63),
5501
+ e
5502
+ .binary('over_voltage_breaker', ea.STATE_SET, 'ON', 'OFF')
5503
+ .withDescription('OFF - alarm only, ON - relay will turn off when threshold reached'),
5504
+ e
5505
+ .numeric('over_voltage_threshold', ea.STATE_SET)
5506
+ .withUnit('V')
5507
+ .withDescription('Setup value on the device')
5508
+ .withValueMin(250)
5509
+ .withValueMax(300),
5510
+ e
5511
+ .binary('under_voltage_breaker', ea.STATE_SET, 'ON', 'OFF')
5512
+ .withDescription('OFF - alarm only, ON - relay will turn off when threshold reached'),
5513
+ e
5514
+ .numeric('under_voltage_threshold', ea.STATE_SET)
5515
+ .withUnit('V')
5516
+ .withDescription('Setup value on the device')
5517
+ .withValueMin(150)
5518
+ .withValueMax(200),
5519
+ e
5520
+ .binary('insufficient_balance_breaker', ea.STATE_SET, 'ON', 'OFF')
5521
+ .withDescription('OFF - alarm only, ON - relay will turn off when threshold reached'),
5522
+ e
5523
+ .numeric('insufficient_balance_threshold', ea.STATE_SET)
5524
+ .withUnit('kWh')
5525
+ .withDescription('Setup value on the device')
5526
+ .withValueMin(1)
5527
+ .withValueMax(65535),
5528
+ e
5529
+ .binary('overload_breaker', ea.STATE_SET, 'ON', 'OFF')
5530
+ .withDescription('OFF - alarm only, ON - relay will turn off when threshold reached'),
5531
+ e
5532
+ .numeric('overload_threshold', ea.STATE_SET)
5533
+ .withUnit('kW')
5534
+ .withDescription('Setup value on the device')
5535
+ .withValueMin(1)
5536
+ .withValueMax(25),
5537
+ e
5538
+ .binary('leakage_breaker', ea.STATE_SET, 'ON', 'OFF')
5539
+ .withDescription('OFF - alarm only, ON - relay will turn off when threshold reached'),
5540
+ e
5541
+ .numeric('leakage_threshold', ea.STATE_SET)
5542
+ .withUnit('mA')
5543
+ .withDescription('Setup value on the device')
5544
+ .withValueMin(10)
5545
+ .withValueMax(90),
5546
+ e
5547
+ .binary('high_temperature_breaker', ea.STATE_SET, 'ON', 'OFF')
5548
+ .withDescription('OFF - alarm only, ON - relay will turn off when threshold reached'),
5549
+ e
5550
+ .numeric('high_temperature_threshold', ea.STATE_SET)
5551
+ .withUnit('°C')
5552
+ .withDescription('Setup value on the device')
5553
+ .withValueMin(40)
5554
+ .withValueMax(100),
5480
5555
  ],
5481
5556
  meta: {
5482
5557
  tuyaDatapoints: [
@@ -5509,6 +5584,22 @@ const definitions = [
5509
5584
  }),
5510
5585
  ],
5511
5586
  [16, 'state', tuya.valueConverter.onOff],
5587
+ [17, null, tuya.valueConverter.threshold_2],
5588
+ [17, 'overload_breaker', tuya.valueConverter.threshold_2],
5589
+ [17, 'overload_threshold', tuya.valueConverter.threshold_2],
5590
+ [17, 'leakage_threshold', tuya.valueConverter.threshold_2],
5591
+ [17, 'leakage_breaker', tuya.valueConverter.threshold_2],
5592
+ [17, 'high_temperature_threshold', tuya.valueConverter.threshold_2],
5593
+ [17, 'high_temperature_breaker', tuya.valueConverter.threshold_2],
5594
+ [18, null, tuya.valueConverter.threshold_3],
5595
+ [18, 'over_current_threshold', tuya.valueConverter.threshold_3],
5596
+ [18, 'over_current_breaker', tuya.valueConverter.threshold_3],
5597
+ [18, 'over_voltage_threshold', tuya.valueConverter.threshold_3],
5598
+ [18, 'over_voltage_breaker', tuya.valueConverter.threshold_3],
5599
+ [18, 'under_voltage_threshold', tuya.valueConverter.threshold_3],
5600
+ [18, 'under_voltage_breaker', tuya.valueConverter.threshold_3],
5601
+ [18, 'insufficient_balance_threshold', tuya.valueConverter.threshold_3],
5602
+ [18, 'insufficient_balance_breaker', tuya.valueConverter.threshold_3],
5512
5603
  [21, 'leakage_test', tuya.valueConverter.onOff], // Leakage test
5513
5604
  [102, 'temperature', tuya.valueConverter.divideBy10],
5514
5605
  // Ignored for now; we don't know what the values mean