zigbee-herdsman-converters 20.36.0 → 20.38.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
@@ -2525,11 +2525,12 @@ const definitions = [
2525
2525
  ],
2526
2526
  meta: { coverInverted: true },
2527
2527
  whiteLabel: [
2528
- { vendor: 'LoraTap', model: 'SC400' },
2529
- tuya.whitelabel('Zemismart', 'ZN-LC1E', 'Smart curtain/shutter switch', ['_TZ3000_74hsp7qy']),
2530
- tuya.whitelabel('Nous', 'L12Z', 'Smart ZigBee Curtain Module L12Z', ['_TZ3000_jwv3cwak']),
2531
2528
  tuya.whitelabel('Danor', 'SK-Z802C-US', 'Smart curtain/shutter switch', ['_TZ3000_8h7wgocw']),
2529
+ { vendor: 'LoraTap', model: 'SC400' },
2530
+ tuya.whitelabel('LoraTap', 'SC500ZB', 'Roller Shutter Blind Module', ['_TZ3000_e3vhyirx']),
2532
2531
  tuya.whitelabel('Nous', 'B4Z', 'Curtain switch', ['_TZ3000_yruungrl']),
2532
+ tuya.whitelabel('Nous', 'L12Z', 'Smart ZigBee Curtain Module L12Z', ['_TZ3000_jwv3cwak']),
2533
+ tuya.whitelabel('Zemismart', 'ZN-LC1E', 'Smart curtain/shutter switch', ['_TZ3000_74hsp7qy']),
2533
2534
  ],
2534
2535
  exposes: (device) => {
2535
2536
  const exps = [
@@ -2543,7 +2544,7 @@ const definitions = [
2543
2544
  else {
2544
2545
  exps.push(e.binary('calibration_up', ea.ALL, 'ON', 'OFF'), e.numeric('calibration_time_up', ea.STATE).withUnit('s').withDescription('Calibration time up'), e.binary('calibration_down', ea.ALL, 'ON', 'OFF'), e.numeric('calibration_time_down', ea.STATE).withUnit('s').withDescription('Calibration time down'));
2545
2546
  }
2546
- if (device?.manufacturerName !== '_TZ3210_xbpt8ewc') {
2547
+ if (device?.manufacturerName !== '_TZ3210_xbpt8ewc' && device?.manufacturerName !== '_TZ3000_e3vhyirx') {
2547
2548
  exps.push(tuya.exposes.indicatorMode(), tuya.exposes.backlightModeOffOn());
2548
2549
  }
2549
2550
  exps.push(e.linkquality());
@@ -4422,6 +4423,7 @@ const definitions = [
4422
4423
  '_TZE200_7yoranx2' /* model: 'TV01-ZB', vendor: 'Moes' */,
4423
4424
  '_TZE200_kds0pmmv',
4424
4425
  '_TZE200_py4cm3he' /* model: 'TV06-Zigbee', vendor: 'Tuya' */,
4426
+ '_TZE200_wsbfwodu' /* model: 'HA-08 THERMO', vendor: 'AlecoAir' */,
4425
4427
  ]),
4426
4428
  model: 'TV02-Zigbee',
4427
4429
  vendor: 'Tuya',
@@ -4434,6 +4436,7 @@ const definitions = [
4434
4436
  { vendor: 'Unknown/id3.pl', model: 'GTZ08' },
4435
4437
  tuya.whitelabel('Moes', 'ZTRV-ZX-TV01-MS', 'Thermostat radiator valve', ['_TZE200_7yoranx2']),
4436
4438
  tuya.whitelabel('Moes', 'TV01-ZB', 'Thermostat radiator valve', ['_TZE200_e9ba97vf']),
4439
+ tuya.whitelabel('AlecoAir', 'HA-08_THERMO', 'Thermostat radiator valve', ['_TZE200_wsbfwodu']),
4437
4440
  ],
4438
4441
  ota: ota.zigbeeOTA,
4439
4442
  fromZigbee: [tuya.fz.datapoints],
@@ -5600,6 +5603,131 @@ const definitions = [
5600
5603
  ]),
5601
5604
  ],
5602
5605
  },
5606
+ {
5607
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_m64smti7']),
5608
+ model: 'RMDZB-1PNL63',
5609
+ vendor: 'TNCE',
5610
+ description: 'Zigbee DIN single phase RCBO energy meter',
5611
+ fromZigbee: [tuya.fz.datapoints],
5612
+ toZigbee: [tuya.tz.datapoints],
5613
+ configure: tuya.configureMagicPacket,
5614
+ exposes: [
5615
+ tuya.exposes.switch(),
5616
+ e.energy(),
5617
+ e
5618
+ .enum('fault', ea.STATE, [
5619
+ 'clear',
5620
+ 'short_circuit_alarm',
5621
+ 'surge_alarm',
5622
+ 'overload_alarm',
5623
+ 'leakagecurr_alarm',
5624
+ 'temp_dif_fault',
5625
+ 'fire_alarm',
5626
+ 'high_power_alarm',
5627
+ 'self_test_alarm',
5628
+ 'ov_cr',
5629
+ 'unbalance_alarm',
5630
+ 'ov_vol',
5631
+ 'undervoltage_alarm',
5632
+ 'miss_phase_alarm',
5633
+ 'outage_alarm',
5634
+ 'magnetism_alarm',
5635
+ 'credit_alarm',
5636
+ 'no_balance_alarm',
5637
+ ])
5638
+ .withDescription('Fault status of the device (clear = nothing)'),
5639
+ tuya.exposes.voltageWithPhase('a'),
5640
+ tuya.exposes.powerWithPhase('a'),
5641
+ tuya.exposes.currentWithPhase('a'),
5642
+ e.temperature(),
5643
+ e
5644
+ .binary('over_current_breaker', ea.STATE_SET, 'ON', 'OFF')
5645
+ .withDescription('OFF - alarm only, ON - relay will turn off when threshold reached'),
5646
+ e
5647
+ .numeric('over_current_threshold', ea.STATE_SET)
5648
+ .withUnit('A')
5649
+ .withDescription('Setup the value on the device')
5650
+ .withValueMin(1)
5651
+ .withValueMax(63),
5652
+ e
5653
+ .binary('over_voltage_breaker', ea.STATE_SET, 'ON', 'OFF')
5654
+ .withDescription('OFF - alarm only, ON - relay will turn off when threshold reached'),
5655
+ e
5656
+ .numeric('over_voltage_threshold', ea.STATE_SET)
5657
+ .withUnit('V')
5658
+ .withDescription('Setup value on the device')
5659
+ .withValueMin(250)
5660
+ .withValueMax(300),
5661
+ e
5662
+ .binary('under_voltage_breaker', ea.STATE_SET, 'ON', 'OFF')
5663
+ .withDescription('OFF - alarm only, ON - relay will turn off when threshold reached'),
5664
+ e
5665
+ .numeric('under_voltage_threshold', ea.STATE_SET)
5666
+ .withUnit('V')
5667
+ .withDescription('Setup value on the device')
5668
+ .withValueMin(150)
5669
+ .withValueMax(200),
5670
+ e
5671
+ .binary('high_temperature_breaker', ea.STATE_SET, 'ON', 'OFF')
5672
+ .withDescription('OFF - alarm only, ON - relay will turn off when threshold reached'),
5673
+ e
5674
+ .numeric('high_temperature_threshold', ea.STATE_SET)
5675
+ .withUnit('°C')
5676
+ .withDescription('Setup value on the device')
5677
+ .withValueMin(40)
5678
+ .withValueMax(100),
5679
+ ],
5680
+ meta: {
5681
+ tuyaDatapoints: [
5682
+ [1, 'energy', tuya.valueConverter.divideBy100],
5683
+ [6, null, tuya.valueConverter.phaseVariant2WithPhase('a')],
5684
+ [
5685
+ 9,
5686
+ 'fault',
5687
+ tuya.valueConverterBasic.lookup({
5688
+ clear: 0,
5689
+ short_circuit_alarm: 1,
5690
+ surge_alarm: 2,
5691
+ overload_alarm: 4,
5692
+ leakagecurr_alarm: 8,
5693
+ temp_dif_fault: 16,
5694
+ fire_alarm: 32,
5695
+ high_power_alarm: 64,
5696
+ self_test_alarm: 128,
5697
+ ov_cr: 256,
5698
+ unbalance_alarm: 512,
5699
+ ov_vol: 1024,
5700
+ undervoltage_alarm: 2048,
5701
+ miss_phase_alarm: 4096,
5702
+ outage_alarm: 8192,
5703
+ magnetism_alarm: 16384,
5704
+ credit_alarm: 32768,
5705
+ no_balance_alarm: 65536,
5706
+ }),
5707
+ ],
5708
+ [16, 'state', tuya.valueConverter.onOff],
5709
+ [17, null, tuya.valueConverter.threshold_2],
5710
+ [17, 'high_temperature_threshold', tuya.valueConverter.threshold_2],
5711
+ [17, 'high_temperature_breaker', tuya.valueConverter.threshold_2],
5712
+ [18, null, tuya.valueConverter.threshold_3],
5713
+ [18, 'over_current_threshold', tuya.valueConverter.threshold_3],
5714
+ [18, 'over_current_breaker', tuya.valueConverter.threshold_3],
5715
+ [18, 'over_voltage_threshold', tuya.valueConverter.threshold_3],
5716
+ [18, 'over_voltage_breaker', tuya.valueConverter.threshold_3],
5717
+ [18, 'under_voltage_threshold', tuya.valueConverter.threshold_3],
5718
+ [18, 'under_voltage_breaker', tuya.valueConverter.threshold_3],
5719
+ [103, 'temperature', tuya.valueConverter.divideBy10],
5720
+ // Ignored for now; we don't know what the values mean
5721
+ [11, null, null], // Switch prepayment
5722
+ [12, null, null], // Energy reset
5723
+ [13, null, null], // Balance enertgy
5724
+ [14, null, null], // Charge energy
5725
+ [105, null, null], // Countdown
5726
+ [106, null, null], // Cycle time
5727
+ ],
5728
+ },
5729
+ whiteLabel: [{ vendor: 'TNCE', model: 'RMDZB-1PNL63' }],
5730
+ },
5603
5731
  {
5604
5732
  fingerprint: tuya.fingerprint('TS0601', ['_TZE204_wbhaespm']),
5605
5733
  model: 'STB3L-125-ZJ',
@@ -6753,10 +6881,10 @@ const definitions = [
6753
6881
  model: 'TS0222_light',
6754
6882
  vendor: 'Tuya',
6755
6883
  description: 'Light sensor',
6756
- fromZigbee: [fromZigbee_1.default.battery, fromZigbee_1.default.temperature],
6884
+ fromZigbee: [fromZigbee_1.default.battery, fromZigbee_1.default.illuminance],
6757
6885
  toZigbee: [],
6758
6886
  configure: tuya.configureMagicPacket,
6759
- exposes: [e.battery(), e.illuminance()],
6887
+ exposes: [e.battery(), e.illuminance(), e.illuminance_lux()],
6760
6888
  },
6761
6889
  {
6762
6890
  fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_t9qqxn70']),
@@ -6868,7 +6996,7 @@ const definitions = [
6868
6996
  ],
6869
6997
  },
6870
6998
  {
6871
- fingerprint: [{ modelID: 'TS011F', manufacturerName: '_TZ3000_qeuvnohg' }],
6999
+ fingerprint: tuya.fingerprint('TS011F', ['_TZ3000_qeuvnohg', '_TZ3000_6l1pjfqe']),
6872
7000
  model: 'TS011F_din_smart_relay_polling',
6873
7001
  description: 'Din smart relay (with power monitoring via polling)',
6874
7002
  vendor: 'Tuya',
@@ -8399,10 +8527,7 @@ const definitions = [
8399
8527
  },
8400
8528
  },
8401
8529
  {
8402
- fingerprint: [
8403
- { modelID: 'TS110E', manufacturerName: '_TZ3210_wdexaypg' },
8404
- { modelID: 'TS110E', manufacturerName: '_TZ3210_3mpwqzuu' },
8405
- ],
8530
+ fingerprint: [{ modelID: 'TS110E', manufacturerName: '_TZ3210_wdexaypg' }],
8406
8531
  model: 'TS110E_2gang_1',
8407
8532
  vendor: 'Tuya',
8408
8533
  description: '2 channel dimmer',
@@ -8424,7 +8549,7 @@ const definitions = [
8424
8549
  ],
8425
8550
  },
8426
8551
  {
8427
- fingerprint: tuya.fingerprint('TS110E', ['_TZ3210_pagajpog', '_TZ3210_4ubylghk', '_TZ3210_vfwhhldz']),
8552
+ fingerprint: tuya.fingerprint('TS110E', ['_TZ3210_pagajpog', '_TZ3210_4ubylghk', '_TZ3210_vfwhhldz', '_TZ3210_3mpwqzuu']),
8428
8553
  model: 'TS110E_2gang_2',
8429
8554
  vendor: 'Tuya',
8430
8555
  description: '2 channel dimmer',
@@ -10280,36 +10405,49 @@ const definitions = [
10280
10405
  toZigbee: [tuya.tz.datapoints],
10281
10406
  configure: tuya.configureMagicPacket,
10282
10407
  exposes: [
10283
- e.enum('state', ea.STATE, ['none', 'presence', 'move']).withDescription('Presence state sensor'),
10284
- e.presence().withDescription('Occupancy'),
10285
- e.numeric('distance', ea.STATE).withDescription('Target distance'),
10286
- e.illuminance_lux().withDescription('Illuminance sensor'),
10287
- e.numeric('move_sensitivity', ea.STATE_SET).withValueMin(1).withValueMax(10).withValueStep(1).withDescription('Motion sensitivity'),
10288
- e.numeric('presence_sensitivity', ea.STATE_SET).withValueMin(1).withValueMax(10).withValueStep(1).withDescription('Presence sensitivity'),
10408
+ e.enum('state', ea.STATE, ['none', 'presence', 'move']).withDescription('Presence state'),
10409
+ e.occupancy(),
10410
+ e.numeric('distance', ea.STATE).withUnit('m').withDescription('Target distance'),
10411
+ e.illuminance_lux(),
10289
10412
  e
10290
- .numeric('radar_range', ea.STATE_SET)
10413
+ .numeric('motion_sensitivity', ea.STATE_SET)
10414
+ .withValueMin(1)
10415
+ .withValueMax(10)
10416
+ .withValueStep(1)
10417
+ .withCategory('config')
10418
+ .withDescription('Motion sensitivity'),
10419
+ e
10420
+ .numeric('occupancy_sensitivity', ea.STATE_SET)
10421
+ .withValueMin(1)
10422
+ .withValueMax(10)
10423
+ .withValueStep(1)
10424
+ .withCategory('config')
10425
+ .withDescription('Occupancy sensitivity'),
10426
+ e
10427
+ .numeric('max_range', ea.STATE_SET)
10291
10428
  .withValueMin(1.5)
10292
10429
  .withValueMax(5.5)
10293
10430
  .withValueStep(1)
10294
10431
  .withUnit('m')
10432
+ .withCategory('config')
10295
10433
  .withDescription('Maximum range'),
10296
10434
  e
10297
- .numeric('presence_timeout', ea.STATE_SET)
10435
+ .numeric('occupancy_timeout', ea.STATE_SET)
10298
10436
  .withValueMin(1)
10299
10437
  .withValueMax(1500)
10300
10438
  .withValueStep(1)
10301
10439
  .withUnit('s')
10302
- .withDescription('Fade time'),
10440
+ .withDescription('Occupancy timeout'),
10303
10441
  ],
10304
10442
  meta: {
10305
10443
  multiEndpoint: true,
10306
10444
  tuyaDatapoints: [
10307
- [112, 'presence', tuya.valueConverter.trueFalse1],
10308
- [106, 'move_sensitivity', tuya.valueConverter.divideBy10FromOnly],
10309
- [111, 'presence_sensitivity', tuya.valueConverter.divideBy10FromOnly],
10310
- [107, 'radar_range', tuya.valueConverter.divideBy100],
10445
+ [112, 'occupancy', tuya.valueConverter.trueFalse1],
10446
+ [106, 'motion_sensitivity', tuya.valueConverter.raw],
10447
+ [111, 'occupancy_sensitivity', tuya.valueConverter.raw],
10448
+ [107, 'max_range', tuya.valueConverter.divideBy100],
10311
10449
  [109, 'distance', tuya.valueConverter.divideBy100],
10312
- [110, 'presence_timeout', tuya.valueConverter.raw],
10450
+ [110, 'occupancy_timeout', tuya.valueConverter.raw],
10313
10451
  [104, 'illuminance_lux', tuya.valueConverter.raw],
10314
10452
  [102, 'illuminance_treshold_max', tuya.valueConverter.raw],
10315
10453
  [103, 'illuminance_treshold_min', tuya.valueConverter.raw],
@@ -12370,6 +12508,123 @@ const definitions = [
12370
12508
  ],
12371
12509
  },
12372
12510
  },
12511
+ {
12512
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_pbo8cj0z']),
12513
+ model: 'TS0601_GTZ10',
12514
+ vendor: 'Tuya',
12515
+ description: 'Thermostat radiator valve',
12516
+ fromZigbee: [tuya.fz.datapoints],
12517
+ toZigbee: [tuya.tz.datapoints],
12518
+ onEvent: tuya.onEventSetLocalTime,
12519
+ configure: tuya.configureMagicPacket,
12520
+ ota: ota.zigbeeOTA,
12521
+ exposes: [
12522
+ e.battery(),
12523
+ e.child_lock(),
12524
+ e.window_detection(),
12525
+ e.window_open(),
12526
+ e.open_window_temperature().withValueMin(5).withValueMax(30),
12527
+ e.max_temperature().withValueMin(15).withValueMax(45),
12528
+ e.min_temperature().withValueMin(5).withValueMax(15),
12529
+ e
12530
+ .climate()
12531
+ .withPreset(['manual', 'auto', 'holiday', 'comfort', 'eco', 'off'])
12532
+ .withSetpoint('current_heating_setpoint', 5, 40, 0.5, ea.STATE_SET)
12533
+ .withLocalTemperature(ea.STATE)
12534
+ .withLocalTemperatureCalibration(-9, 9, 0.5, ea.STATE_SET)
12535
+ .withSystemMode(['off', 'heat', 'auto'], ea.STATE_SET, 'Only for Homeassistant')
12536
+ .withRunningState(['idle', 'heat'], ea.STATE),
12537
+ ...tuya.exposes.scheduleAllDays(ea.STATE_SET, 'HH:MM/C HH:MM/C HH:MM/C HH:MM/C'),
12538
+ tuya.exposes
12539
+ .errorStatus()
12540
+ .withDescription('Error status. Possible codes: E1 - builtin sensor error, E2 - external sensor error, E3 - valve not installed, E4 - motor error.'),
12541
+ e
12542
+ .binary('frost_protection', ea.STATE_SET, 'ON', 'OFF')
12543
+ .withDescription('When the room temperature is lower than 5 °C, the valve opens; when the temperature rises to 8 °C, the valve closes.'),
12544
+ e.binary('boost_heating', ea.STATE_SET, 'ON', 'OFF').withDescription('Boost Heating: the device will enter the boost heating mode.'),
12545
+ e
12546
+ .numeric('boost_timeset_countdown', ea.STATE_SET)
12547
+ .withUnit('m')
12548
+ .withDescription('Setting ' +
12549
+ 'minimum 0 - maximum 90 minutes boost time. The boost function is activated. The remaining ' +
12550
+ 'time for the function will be counted down in minutes ( 90 to 0 ).')
12551
+ .withValueMin(0)
12552
+ .withValueMax(90),
12553
+ e.binary('switch_type', ea.STATE_SET, 'ON', 'OFF').withDescription('Enables/disables valve switch'),
12554
+ e.numeric('position', ea.STATE).withUnit('%').withValueMin(0).withValueMax(100).withDescription('Position'), // set actually not working
12555
+ e.enum('screen_orientation', ea.STATE_SET, ['up', 'right', 'down', 'left']).withDescription('Screen orientation'),
12556
+ ],
12557
+ meta: {
12558
+ tuyaDatapoints: [
12559
+ [2, null, tuya.valueConverter.thermostatGtz10SystemModeAndPreset(null)],
12560
+ [2, 'preset', tuya.valueConverter.thermostatGtz10SystemModeAndPreset('preset')],
12561
+ [2, 'system_mode', tuya.valueConverter.thermostatGtz10SystemModeAndPreset('system_mode')],
12562
+ [4, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
12563
+ [5, 'local_temperature', tuya.valueConverter.divideBy10],
12564
+ [6, 'battery', tuya.valueConverter.raw],
12565
+ [7, 'child_lock', tuya.valueConverter.lockUnlock],
12566
+ [9, 'max_temperature', tuya.valueConverter.divideBy10],
12567
+ [10, 'min_temperature', tuya.valueConverter.divideBy10],
12568
+ [14, 'window_detection', tuya.valueConverter.onOff],
12569
+ [15, 'window_open', tuya.valueConverter.onOff],
12570
+ [16, 'open_window_temperature', tuya.valueConverter.divideBy10],
12571
+ [28, 'schedule_monday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(1)],
12572
+ [29, 'schedule_tuesday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(2)],
12573
+ [30, 'schedule_wednesday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(3)],
12574
+ [31, 'schedule_thursday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(4)],
12575
+ [32, 'schedule_friday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(5)],
12576
+ [33, 'schedule_saturday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(6)],
12577
+ [34, 'schedule_sunday', tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(7)],
12578
+ [35, 'error_status', tuya.valueConverter.raw],
12579
+ [36, 'frost_protection', tuya.valueConverter.onOff],
12580
+ [37, 'boost_heating', tuya.valueConverter.onOff],
12581
+ [38, 'boost_timeset_countdown', tuya.valueConverter.raw],
12582
+ [47, 'local_temperature_calibration', tuya.valueConverter.localTempCalibration1],
12583
+ [
12584
+ 49, //valve_state
12585
+ 'running_state',
12586
+ tuya.valueConverterBasic.lookup({
12587
+ idle: tuya.enum(0),
12588
+ heat: tuya.enum(1),
12589
+ closing: tuya.enum(2),
12590
+ opening: tuya.enum(3),
12591
+ }),
12592
+ ],
12593
+ [113, 'switch_type', tuya.valueConverter.onOff], // valve_switch
12594
+ [115, 'position', tuya.valueConverter.raw], // valve_opening
12595
+ [
12596
+ 119,
12597
+ 'screen_orientation',
12598
+ tuya.valueConverterBasic.lookup({
12599
+ up: tuya.enum(0),
12600
+ down: tuya.enum(1),
12601
+ left: tuya.enum(2),
12602
+ right: tuya.enum(3),
12603
+ }),
12604
+ ],
12605
+ // Exposed but not used DPs
12606
+ [1, 'preheat', tuya.valueConverter.raw],
12607
+ [3, 'working_status', tuya.valueConverter.raw],
12608
+ [8, 'temperature_scale', tuya.valueConverter.raw],
12609
+ [11, 'max_temperature_f', tuya.valueConverter.divideBy10],
12610
+ [12, 'min_temperature_f', tuya.valueConverter.divideBy10],
12611
+ [17, 'open_window_time', tuya.valueConverter.raw],
12612
+ [18, 'backlight', tuya.valueConverter.raw],
12613
+ [39, 'switch_scale', tuya.valueConverter.raw],
12614
+ [40, 'local_temperature_f', tuya.valueConverter.divideBy10],
12615
+ [41, 'current_heating_setpoint_f', tuya.valueConverter.divideBy10],
12616
+ [46, 'open_window_temperature_f', tuya.valueConverter.divideBy10],
12617
+ [48, 'valve_testing', tuya.valueConverter.raw],
12618
+ [112, 'local_temperature_calibration_f', tuya.valueConverter.localTempCalibration1],
12619
+ [114, 'valve_control_type', tuya.valueConverterBasic.lookup({ PID: 0, ONOFF: 1 })],
12620
+ [116, 'frost_temperature', tuya.valueConverter.raw],
12621
+ [117, 'frost_temperature_f', tuya.valueConverter.raw],
12622
+ [118, 'auto_time', tuya.valueConverter.raw],
12623
+ [120, 'multi_control_link', tuya.valueConverter.raw],
12624
+ [121, 'holiday_time', tuya.valueConverter.raw],
12625
+ ],
12626
+ },
12627
+ },
12373
12628
  ];
12374
12629
  exports.default = definitions;
12375
12630
  module.exports = definitions;