zigbee-herdsman-converters 20.18.0 → 20.19.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
@@ -4786,11 +4786,15 @@ const definitions = [
4786
4786
  { modelID: 'TS0601', manufacturerName: '_TZE200_a4bpgplm' },
4787
4787
  { modelID: 'TS0601', manufacturerName: '_TZE200_dv8abrrz' },
4788
4788
  { modelID: 'TS0601', manufacturerName: '_TZE200_z1tyspqw' },
4789
+ { modelID: 'TS0601', manufacturerName: '_TZE200_bvrlmajk' },
4789
4790
  ],
4790
4791
  model: 'TS0601_thermostat_1',
4791
4792
  vendor: 'Tuya',
4792
4793
  description: 'Thermostatic radiator valve',
4793
- whiteLabel: [tuya.whitelabel('id3', 'GTZ06', 'Thermostatic radiator valve', ['_TZE200_z1tyspqw'])],
4794
+ whiteLabel: [
4795
+ tuya.whitelabel('id3', 'GTZ06', 'Thermostatic radiator valve', ['_TZE200_z1tyspqw']),
4796
+ tuya.whitelabel('Avatto', 'TRV07', 'Thermostatic radiator valve', ['_TZE200_bvrlmajk']),
4797
+ ],
4794
4798
  onEvent: tuya.onEventSetLocalTime,
4795
4799
  fromZigbee: [tuya.fz.datapoints],
4796
4800
  toZigbee: [tuya.tz.datapoints],
@@ -6493,6 +6497,73 @@ const definitions = [
6493
6497
  ],
6494
6498
  },
6495
6499
  },
6500
+ {
6501
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_mwomyz5n']),
6502
+ model: 'TGM50-ZB',
6503
+ vendor: 'Tuya',
6504
+ description: 'Beok wall thermostat',
6505
+ onEvent: tuya.onEvent({ timeStart: '1970' }),
6506
+ fromZigbee: [tuya.fz.datapoints],
6507
+ toZigbee: [tuya.tz.datapoints],
6508
+ configure: tuya.configureMagicPacket,
6509
+ exposes: [
6510
+ e.child_lock(),
6511
+ e.temperature_sensor_select(['internal', 'external', 'both']),
6512
+ e
6513
+ .climate()
6514
+ .withSystemMode(['off', 'heat'], ea.STATE_SET)
6515
+ .withPreset(['manual', 'auto'])
6516
+ .withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
6517
+ .withRunningState(['idle', 'heat'], ea.STATE)
6518
+ .withLocalTemperature(ea.STATE)
6519
+ .withLocalTemperatureCalibration(-9.9, 9.9, 0.1, ea.STATE_SET),
6520
+ e.enum('backlight_mode', ea.STATE_SET, ['off', 'always_low', 'always_mid', 'always_high']).withDescription('Intensity of the backlight'),
6521
+ e.binary('frost_protection', ea.STATE_SET, 'ON', 'OFF').withDescription('Antifreeze function'),
6522
+ e
6523
+ .max_temperature_limit()
6524
+ .withUnit('°C')
6525
+ .withValueMin(15)
6526
+ .withValueMax(90)
6527
+ .withValueStep(0.5)
6528
+ .withPreset('default', 60, 'Default value')
6529
+ .withDescription('Maximum upper temperature'),
6530
+ e
6531
+ .numeric('temperature_delta', ea.STATE_SET)
6532
+ .withUnit('°C')
6533
+ .withValueMax(10)
6534
+ .withValueMin(0.5)
6535
+ .withValueStep(0.5)
6536
+ .withPreset('default', 1, 'Default value')
6537
+ .withDescription('The delta between local_temperature and current_heating_setpoint to trigger Heat'),
6538
+ e.binary('factory_reset', ea.STATE_SET, 'ON', 'OFF').withDescription('Full factory reset, use with caution!'),
6539
+ ],
6540
+ meta: {
6541
+ tuyaDatapoints: [
6542
+ [1, 'system_mode', tuya.valueConverterBasic.lookup({ heat: true, off: false })],
6543
+ [2, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
6544
+ [3, 'local_temperature', tuya.valueConverter.divideBy10],
6545
+ [4, 'preset', tuya.valueConverterBasic.lookup({ manual: tuya.enum(0), auto: tuya.enum(1) })],
6546
+ [9, 'child_lock', tuya.valueConverter.lockUnlock],
6547
+ [15, 'max_temperature_limit', tuya.valueConverter.divideBy10],
6548
+ [19, 'local_temperature_calibration', tuya.valueConverter.localTempCalibration3],
6549
+ [101, 'running_state', tuya.valueConverterBasic.lookup({ heat: tuya.enum(1), idle: tuya.enum(0) })],
6550
+ [102, 'frost_protection', tuya.valueConverter.onOff],
6551
+ [103, 'factory_reset', tuya.valueConverter.onOff],
6552
+ [106, 'sensor', tuya.valueConverterBasic.lookup({ internal: tuya.enum(0), external: tuya.enum(1), both: tuya.enum(2) })],
6553
+ [107, 'temperature_delta', tuya.valueConverter.divideBy10],
6554
+ [
6555
+ 110,
6556
+ 'backlight_mode',
6557
+ tuya.valueConverterBasic.lookup({
6558
+ off: tuya.enum(0),
6559
+ always_low: tuya.enum(1),
6560
+ always_mid: tuya.enum(2),
6561
+ always_high: tuya.enum(3),
6562
+ }),
6563
+ ],
6564
+ ],
6565
+ },
6566
+ },
6496
6567
  {
6497
6568
  fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_kky16aay', '_TZE204_myd45weu']),
6498
6569
  model: 'TS0222_temperature_humidity',
@@ -8820,13 +8891,152 @@ const definitions = [
8820
8891
  ],
8821
8892
  },
8822
8893
  },
8894
+ {
8895
+ fingerprint: [
8896
+ { modelID: 'TS0601', manufacturerName: '_TZE200_iwn0gpzz' },
8897
+ { modelID: 'TS0601', manufacturerName: '_TZE204_iwn0gpzz' },
8898
+ ],
8899
+ model: 'SPM01V2.5',
8900
+ vendor: 'Tuya',
8901
+ description: 'Smart energy monitor for 1P+N system',
8902
+ fromZigbee: [tuya.fz.datapoints],
8903
+ toZigbee: [tuya.tz.datapoints],
8904
+ configure: tuya.configureMagicPacket,
8905
+ exposes: [
8906
+ e.voltage(),
8907
+ e.power(),
8908
+ e.current(),
8909
+ e.energy().withDescription('Total forward active energy'),
8910
+ e.produced_energy().withDescription('Total reverse active energy'),
8911
+ e.power_factor().withUnit('%'),
8912
+ e.ac_frequency(),
8913
+ ],
8914
+ meta: {
8915
+ tuyaDatapoints: [
8916
+ [1, 'energy', tuya.valueConverter.divideBy100],
8917
+ [23, 'produced_energy', tuya.valueConverter.divideBy100],
8918
+ [32, 'ac_frequency', tuya.valueConverter.divideBy100],
8919
+ [50, 'power_factor', tuya.valueConverter.raw],
8920
+ [102, 'voltage', tuya.valueConverter.divideBy10],
8921
+ [103, 'current', tuya.valueConverter.divideBy1000],
8922
+ [104, 'power', tuya.valueConverter.raw],
8923
+ ],
8924
+ },
8925
+ },
8926
+ {
8927
+ fingerprint: [
8928
+ { modelID: 'TS0601', manufacturerName: '_TZE204_ny94onlb' },
8929
+ { modelID: 'TS0601', manufacturerName: '_TZE200_ny94onlb' },
8930
+ ],
8931
+ model: 'SPM02V2.5',
8932
+ vendor: 'Tuya',
8933
+ description: 'Smart energy monitor for 3P+N system',
8934
+ fromZigbee: [tuya.fz.datapoints],
8935
+ toZigbee: [tuya.tz.datapoints],
8936
+ configure: tuya.configureMagicPacket,
8937
+ exposes: [
8938
+ tuya.exposes.voltageWithPhase('a'),
8939
+ tuya.exposes.voltageWithPhase('b'),
8940
+ tuya.exposes.voltageWithPhase('c'),
8941
+ tuya.exposes.powerWithPhase('a'),
8942
+ tuya.exposes.powerWithPhase('b'),
8943
+ tuya.exposes.powerWithPhase('c'),
8944
+ tuya.exposes.currentWithPhase('a'),
8945
+ tuya.exposes.currentWithPhase('b'),
8946
+ tuya.exposes.currentWithPhase('c'),
8947
+ e.energy().withDescription('Total forward active energy'),
8948
+ e.produced_energy().withDescription('Total reverse active energy'),
8949
+ e.power_factor().withUnit('%').withDescription('Total power factor'),
8950
+ e.power(),
8951
+ e.ac_frequency(),
8952
+ ],
8953
+ meta: {
8954
+ tuyaDatapoints: [
8955
+ [1, 'energy', tuya.valueConverter.divideBy100],
8956
+ [23, 'produced_energy', tuya.valueConverter.divideBy100],
8957
+ [29, 'power', tuya.valueConverter.raw],
8958
+ [32, 'ac_frequency', tuya.valueConverter.divideBy100],
8959
+ [50, 'power_factor', tuya.valueConverter.raw],
8960
+ [102, 'voltage_a', tuya.valueConverter.divideBy10],
8961
+ [103, 'current_a', tuya.valueConverter.divideBy1000],
8962
+ [104, 'power_a', tuya.valueConverter.raw],
8963
+ [105, 'voltage_b', tuya.valueConverter.divideBy10],
8964
+ [106, 'current_b', tuya.valueConverter.divideBy1000],
8965
+ [107, 'power_b', tuya.valueConverter.raw],
8966
+ [108, 'voltage_c', tuya.valueConverter.divideBy10],
8967
+ [109, 'current_c', tuya.valueConverter.divideBy1000],
8968
+ [110, 'power_c', tuya.valueConverter.raw],
8969
+ ],
8970
+ },
8971
+ },
8972
+ {
8973
+ fingerprint: [
8974
+ { modelID: 'TS0601', manufacturerName: '_TZE200_dikb3dp6' },
8975
+ { modelID: 'TS0601', manufacturerName: '_TZE204_dikb3dp6' },
8976
+ ],
8977
+ model: 'SPM02V3',
8978
+ vendor: 'Tuya',
8979
+ description: 'Smart energy monitor for 3P+N system',
8980
+ fromZigbee: [tuya.fz.datapoints],
8981
+ toZigbee: [tuya.tz.datapoints],
8982
+ configure: tuya.configureMagicPacket,
8983
+ exposes: [
8984
+ tuya.exposes.voltageWithPhase('a'),
8985
+ tuya.exposes.voltageWithPhase('b'),
8986
+ tuya.exposes.voltageWithPhase('c'),
8987
+ tuya.exposes.powerWithPhase('a'),
8988
+ tuya.exposes.powerWithPhase('b'),
8989
+ tuya.exposes.powerWithPhase('c'),
8990
+ tuya.exposes.currentWithPhase('a'),
8991
+ tuya.exposes.currentWithPhase('b'),
8992
+ tuya.exposes.currentWithPhase('c'),
8993
+ e.energy().withDescription('Total forward active energy'),
8994
+ e.produced_energy().withDescription('Total reverse active energy'),
8995
+ e.power_factor().withUnit('%').withDescription('Total power factor'),
8996
+ e.power().withDescription('Total active power'),
8997
+ e.ac_frequency(),
8998
+ tuya.exposes.energyWithPhase('a'),
8999
+ tuya.exposes.energyWithPhase('b'),
9000
+ tuya.exposes.energyWithPhase('c'),
9001
+ tuya.exposes.energyProducedWithPhase('a'),
9002
+ tuya.exposes.energyProducedWithPhase('b'),
9003
+ tuya.exposes.energyProducedWithPhase('c'),
9004
+ tuya.exposes.powerFactorWithPhase('a'),
9005
+ tuya.exposes.powerFactorWithPhase('b'),
9006
+ tuya.exposes.powerFactorWithPhase('c'),
9007
+ ],
9008
+ meta: {
9009
+ tuyaDatapoints: [
9010
+ [1, 'energy', tuya.valueConverter.divideBy100],
9011
+ [23, 'produced_energy', tuya.valueConverter.divideBy100],
9012
+ [29, 'power', tuya.valueConverter.raw],
9013
+ [32, 'ac_frequency', tuya.valueConverter.divideBy100],
9014
+ [50, 'power_factor', tuya.valueConverter.raw],
9015
+ [103, 'voltage_a', tuya.valueConverter.divideBy10],
9016
+ [104, 'current_a', tuya.valueConverter.divideBy1000],
9017
+ [105, 'power_a', tuya.valueConverter.raw],
9018
+ [108, 'power_factor_a', tuya.valueConverter.raw],
9019
+ [109, 'energy_a', tuya.valueConverter.divideBy100],
9020
+ [110, 'energy_produced_a', tuya.valueConverter.divideBy100],
9021
+ [112, 'voltage_b', tuya.valueConverter.divideBy10],
9022
+ [113, 'current_b', tuya.valueConverter.divideBy1000],
9023
+ [114, 'power_b', tuya.valueConverter.raw],
9024
+ [117, 'power_factor_b', tuya.valueConverter.raw],
9025
+ [118, 'energy_b', tuya.valueConverter.divideBy100],
9026
+ [119, 'energy_produced_b', tuya.valueConverter.divideBy100],
9027
+ [121, 'voltage_c', tuya.valueConverter.divideBy10],
9028
+ [122, 'current_c', tuya.valueConverter.divideBy1000],
9029
+ [123, 'power_c', tuya.valueConverter.raw],
9030
+ [126, 'power_factor_c', tuya.valueConverter.raw],
9031
+ [127, 'energy_c', tuya.valueConverter.divideBy100],
9032
+ [128, 'energy_produced_c', tuya.valueConverter.divideBy100],
9033
+ ],
9034
+ },
9035
+ },
8823
9036
  {
8824
9037
  fingerprint: [
8825
9038
  { modelID: 'TS0601', manufacturerName: '_TZE204_ugekduaj' },
8826
9039
  { modelID: 'TS0601', manufacturerName: '_TZE200_ugekduaj' },
8827
- { modelID: 'TS0601', manufacturerName: '_TZE204_iwn0gpzz' },
8828
- { modelID: 'TS0601', manufacturerName: '_TZE200_iwn0gpzz' },
8829
- { modelID: 'TS0601', manufacturerName: '_TZE204_loejka0i' },
8830
9040
  ],
8831
9041
  model: 'SDM01',
8832
9042
  vendor: 'Tuya',
@@ -8888,6 +9098,122 @@ const definitions = [
8888
9098
  ],
8889
9099
  },
8890
9100
  },
9101
+ {
9102
+ fingerprint: [
9103
+ { modelID: 'TS0601', manufacturerName: '_TZE204_gomuk3dc' },
9104
+ { modelID: 'TS0601', manufacturerName: '_TZE200_gomuk3dc' },
9105
+ ],
9106
+ model: 'SDM01V1.5',
9107
+ vendor: 'Tuya',
9108
+ description: 'Smart energy monitor for 3P+N system',
9109
+ fromZigbee: [tuya.fz.datapoints],
9110
+ toZigbee: [tuya.tz.datapoints],
9111
+ configure: tuya.configureMagicPacket,
9112
+ exposes: [
9113
+ tuya.exposes.voltageWithPhase('a'),
9114
+ tuya.exposes.voltageWithPhase('b'),
9115
+ tuya.exposes.voltageWithPhase('c'),
9116
+ tuya.exposes.powerWithPhase('a'),
9117
+ tuya.exposes.powerWithPhase('b'),
9118
+ tuya.exposes.powerWithPhase('c'),
9119
+ tuya.exposes.currentWithPhase('a'),
9120
+ tuya.exposes.currentWithPhase('b'),
9121
+ tuya.exposes.currentWithPhase('c'),
9122
+ e.energy().withDescription('Total forward active energy'),
9123
+ e.produced_energy().withDescription('Total reverse active energy'),
9124
+ e.power_factor().withUnit('%').withDescription('Total power factor'),
9125
+ e.power().withDescription('Total active power'),
9126
+ e.ac_frequency(),
9127
+ tuya.exposes.energyWithPhase('a'),
9128
+ tuya.exposes.energyWithPhase('b'),
9129
+ tuya.exposes.energyWithPhase('c'),
9130
+ tuya.exposes.energyProducedWithPhase('a'),
9131
+ tuya.exposes.energyProducedWithPhase('b'),
9132
+ tuya.exposes.energyProducedWithPhase('c'),
9133
+ tuya.exposes.powerFactorWithPhase('a'),
9134
+ tuya.exposes.powerFactorWithPhase('b'),
9135
+ tuya.exposes.powerFactorWithPhase('c'),
9136
+ ],
9137
+ meta: {
9138
+ tuyaDatapoints: [
9139
+ [1, 'energy', tuya.valueConverter.divideBy100],
9140
+ [23, 'produced_energy', tuya.valueConverter.divideBy100],
9141
+ [29, 'power', tuya.valueConverter.raw],
9142
+ [32, 'ac_frequency', tuya.valueConverter.divideBy100],
9143
+ [50, 'power_factor', tuya.valueConverter.raw],
9144
+ [103, 'voltage_a', tuya.valueConverter.divideBy10],
9145
+ [104, 'current_a', tuya.valueConverter.divideBy1000],
9146
+ [105, 'power_a', tuya.valueConverter.raw],
9147
+ [108, 'power_factor_a', tuya.valueConverter.raw],
9148
+ [109, 'energy_a', tuya.valueConverter.divideBy100],
9149
+ [110, 'energy_produced_a', tuya.valueConverter.divideBy100],
9150
+ [112, 'voltage_b', tuya.valueConverter.divideBy10],
9151
+ [113, 'current_b', tuya.valueConverter.divideBy1000],
9152
+ [114, 'power_b', tuya.valueConverter.raw],
9153
+ [117, 'power_factor_b', tuya.valueConverter.raw],
9154
+ [118, 'energy_b', tuya.valueConverter.divideBy100],
9155
+ [119, 'energy_produced_b', tuya.valueConverter.divideBy100],
9156
+ [121, 'voltage_c', tuya.valueConverter.divideBy10],
9157
+ [122, 'current_c', tuya.valueConverter.divideBy1000],
9158
+ [123, 'power_c', tuya.valueConverter.raw],
9159
+ [126, 'power_factor_c', tuya.valueConverter.raw],
9160
+ [127, 'energy_c', tuya.valueConverter.divideBy100],
9161
+ [128, 'energy_produced_c', tuya.valueConverter.divideBy100],
9162
+ ],
9163
+ },
9164
+ },
9165
+ {
9166
+ fingerprint: [
9167
+ { modelID: 'TS0601', manufacturerName: '_TZE204_78ioiaml' },
9168
+ { modelID: 'TS0601', manufacturerName: '_TZE200_78ioiaml' },
9169
+ ],
9170
+ model: 'SDM02V1',
9171
+ vendor: 'Tuya',
9172
+ description: 'Smart energy monitor for 2P+N system',
9173
+ fromZigbee: [tuya.fz.datapoints],
9174
+ toZigbee: [tuya.tz.datapoints],
9175
+ configure: tuya.configureMagicPacket,
9176
+ exposes: [
9177
+ tuya.exposes.voltageWithPhase('l1'),
9178
+ tuya.exposes.voltageWithPhase('l2'),
9179
+ tuya.exposes.powerWithPhase('l1'),
9180
+ tuya.exposes.powerWithPhase('l2'),
9181
+ tuya.exposes.currentWithPhase('l1'),
9182
+ tuya.exposes.currentWithPhase('l2'),
9183
+ e.energy().withDescription('Total forward active energy'),
9184
+ e.produced_energy().withDescription('Total reverse active energy'),
9185
+ e.power_factor().withUnit('%').withDescription('Total power factor'),
9186
+ e.power().withDescription('Total active power'),
9187
+ e.ac_frequency(),
9188
+ tuya.exposes.energyWithPhase('l1'),
9189
+ tuya.exposes.energyWithPhase('l2'),
9190
+ tuya.exposes.energyProducedWithPhase('l1'),
9191
+ tuya.exposes.energyProducedWithPhase('l2'),
9192
+ tuya.exposes.powerFactorWithPhase('l1'),
9193
+ tuya.exposes.powerFactorWithPhase('l2'),
9194
+ ],
9195
+ meta: {
9196
+ tuyaDatapoints: [
9197
+ [1, 'energy', tuya.valueConverter.divideBy100],
9198
+ [23, 'produced_energy', tuya.valueConverter.divideBy100],
9199
+ [29, 'power', tuya.valueConverter.raw],
9200
+ [32, 'ac_frequency', tuya.valueConverter.divideBy100],
9201
+ [50, 'power_factor', tuya.valueConverter.raw],
9202
+ [103, 'voltage_l1', tuya.valueConverter.divideBy10],
9203
+ [104, 'current_l1', tuya.valueConverter.divideBy1000],
9204
+ [105, 'power_l1', tuya.valueConverter.raw],
9205
+ [108, 'power_factor_l1', tuya.valueConverter.raw],
9206
+ [109, 'energy_l1', tuya.valueConverter.divideBy100],
9207
+ [110, 'energy_produced_l1', tuya.valueConverter.divideBy100],
9208
+ [112, 'voltage_l2', tuya.valueConverter.divideBy10],
9209
+ [113, 'current_l2', tuya.valueConverter.divideBy1000],
9210
+ [114, 'power_l2', tuya.valueConverter.raw],
9211
+ [117, 'power_factor_l2', tuya.valueConverter.raw],
9212
+ [118, 'energy_l2', tuya.valueConverter.divideBy100],
9213
+ [119, 'energy_produced_l2', tuya.valueConverter.divideBy100],
9214
+ ],
9215
+ },
9216
+ },
8891
9217
  {
8892
9218
  fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ac0fhfiq']),
8893
9219
  model: 'TS0601_bidirectional_energy meter',
@@ -9978,6 +10304,7 @@ const definitions = [
9978
10304
  whiteLabel: [
9979
10305
  tuya.whitelabel('Tuya', 'MTG275-ZB-RL', '2.4G/5.8G MmWave radar human presence motion sensor', ['_TZE204_dtzziy1e']),
9980
10306
  tuya.whitelabel('Tuya', 'MTG035-ZB-RL', 'Human presence sensor with relay', ['_TZE204_pfayrzcw']),
10307
+ tuya.whitelabel('Tuya', 'MTG235-ZB-RL', '24G Human presence sensor with relay', ['_TZE204_clrdrnya']),
9981
10308
  tuya.whitelabel('QA', 'QASZ24R', 'mmWave 24 Ghz sensor with relay', ['_TZE284_4qznlkbu']),
9982
10309
  ],
9983
10310
  configure: tuya.configureMagicPacket,