zigbee-herdsman-converters 25.36.0 → 25.37.1

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 (41) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/devices/avatto.js +1 -1
  3. package/dist/devices/avatto.js.map +1 -1
  4. package/dist/devices/bosch.d.ts.map +1 -1
  5. package/dist/devices/bosch.js +7 -0
  6. package/dist/devices/bosch.js.map +1 -1
  7. package/dist/devices/heiman.js +1 -1
  8. package/dist/devices/innr.d.ts.map +1 -1
  9. package/dist/devices/innr.js +32 -17
  10. package/dist/devices/innr.js.map +1 -1
  11. package/dist/devices/moes.d.ts.map +1 -1
  12. package/dist/devices/moes.js +5 -3
  13. package/dist/devices/moes.js.map +1 -1
  14. package/dist/devices/multir.js +4 -4
  15. package/dist/devices/multir.js.map +1 -1
  16. package/dist/devices/philips.js +3 -3
  17. package/dist/devices/philips.js.map +1 -1
  18. package/dist/devices/somfy.js +1 -1
  19. package/dist/devices/somfy.js.map +1 -1
  20. package/dist/devices/sonoff.d.ts.map +1 -1
  21. package/dist/devices/sonoff.js +11 -2
  22. package/dist/devices/sonoff.js.map +1 -1
  23. package/dist/devices/tuya.d.ts.map +1 -1
  24. package/dist/devices/tuya.js +214 -42
  25. package/dist/devices/tuya.js.map +1 -1
  26. package/dist/devices/zemismart.js +5 -5
  27. package/dist/devices/zemismart.js.map +1 -1
  28. package/dist/lib/bosch.d.ts +6 -0
  29. package/dist/lib/bosch.d.ts.map +1 -1
  30. package/dist/lib/bosch.js +49 -0
  31. package/dist/lib/bosch.js.map +1 -1
  32. package/dist/lib/modernExtend.d.ts +1 -0
  33. package/dist/lib/modernExtend.d.ts.map +1 -1
  34. package/dist/lib/modernExtend.js +19 -18
  35. package/dist/lib/modernExtend.js.map +1 -1
  36. package/dist/lib/tuya.d.ts +5 -1
  37. package/dist/lib/tuya.d.ts.map +1 -1
  38. package/dist/lib/tuya.js +20 -1
  39. package/dist/lib/tuya.js.map +1 -1
  40. package/dist/models-index.json +1 -1
  41. package/package.json +1 -1
@@ -1425,13 +1425,14 @@ exports.definitions = [
1425
1425
  "_TZE284_hdyjyqjm",
1426
1426
  "_TZE284_d7lpruvi",
1427
1427
  "_TZE284_upagmta9",
1428
+ "_TZE204_ksz749x8",
1428
1429
  "_TZE204_1wnh8bqp",
1429
1430
  "_TZE284_1wnh8bqp",
1430
1431
  ]),
1431
1432
  model: "TS0601_temperature_humidity_sensor_2",
1432
1433
  vendor: "Tuya",
1433
1434
  description: "Temperature and humidity sensor",
1434
- extend: [tuya.modernExtend.tuyaBase({ dp: true, queryOnDeviceAnnounce: true, queryOnConfigure: true })],
1435
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, queryOnDeviceAnnounce: true, queryOnConfigure: true, respondToMcuVersionResponse: true })],
1435
1436
  exposes: [e.temperature(), e.humidity(), tuya.exposes.batteryState(), tuya.exposes.temperatureUnit()],
1436
1437
  meta: {
1437
1438
  tuyaDatapoints: [
@@ -1472,7 +1473,7 @@ exports.definitions = [
1472
1473
  model: "ZTH05Z",
1473
1474
  vendor: "Tuya",
1474
1475
  description: "Temperature and humidity sensor",
1475
- extend: [tuya.modernExtend.tuyaBase({ dp: true, queryOnDeviceAnnounce: true, queryOnConfigure: true })],
1476
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, queryOnDeviceAnnounce: true, queryOnConfigure: true, respondToMcuVersionResponse: true })],
1476
1477
  exposes: [
1477
1478
  e.temperature(),
1478
1479
  e.humidity(),
@@ -4237,7 +4238,7 @@ exports.definitions = [
4237
4238
  fromZigbee: [legacy.fromZigbee.tuya_water_leak, fz.ignore_basic_report],
4238
4239
  exposes: [e.water_leak()],
4239
4240
  toZigbee: [],
4240
- whiteLabel: [{ vendor: "Neo", model: "NAS-WS02B0" }],
4241
+ whiteLabel: [{ vendor: "NEO", model: "NAS-WS02B0" }],
4241
4242
  },
4242
4243
  {
4243
4244
  fingerprint: tuya.fingerprint("TS0601", ["_TZE200_jthf7vb6"]),
@@ -4476,6 +4477,7 @@ exports.definitions = [
4476
4477
  "_TZ3000_ruldv5dt",
4477
4478
  "_TZ3000_fbjdkph9",
4478
4479
  "_TZ3000_zbfya6h0",
4480
+ "_TZ3000_tas0zemd",
4479
4481
  ]),
4480
4482
  model: "TS0002_basic",
4481
4483
  vendor: "Tuya",
@@ -4903,6 +4905,7 @@ exports.definitions = [
4903
4905
  "_TZE200_yia0p3tr",
4904
4906
  "_TZE200_rsj5pu8y",
4905
4907
  "_TZE200_yrugsphv",
4908
+ "_TZE204_yrugsphv",
4906
4909
  "_TZE204_nladmfvf",
4907
4910
  "_TZE200_2odrmqwq",
4908
4911
  "_TZE204_lh3arisb",
@@ -5066,7 +5069,7 @@ exports.definitions = [
5066
5069
  model: "TS0601_cover_7",
5067
5070
  vendor: "Tuya",
5068
5071
  description: "Cover motor",
5069
- extend: [tuya.modernExtend.tuyaBase({ dp: true })],
5072
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, respondToMcuVersionResponse: true })],
5070
5073
  exposes: [e.cover_position().setAccess("position", ea.STATE_SET), e.battery()],
5071
5074
  meta: {
5072
5075
  tuyaDatapoints: [
@@ -5180,7 +5183,7 @@ exports.definitions = [
5180
5183
  model: "TS0601_cover_9",
5181
5184
  vendor: "Tuya",
5182
5185
  description: "Cover motor",
5183
- extend: [tuya.modernExtend.tuyaBase({ dp: true })],
5186
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, respondToMcuVersionResponse: true })],
5184
5187
  exposes: [e.cover_position().setAccess("position", ea.STATE_SET), e.battery()],
5185
5188
  meta: {
5186
5189
  tuyaDatapoints: [
@@ -5233,7 +5236,7 @@ exports.definitions = [
5233
5236
  model: "TS0601_cover_10",
5234
5237
  vendor: "Tuya",
5235
5238
  description: "Cover motor",
5236
- extend: [tuya.modernExtend.tuyaBase({ dp: true })],
5239
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, respondToMcuVersionResponse: true })],
5237
5240
  exposes: [
5238
5241
  e.cover_position().setAccess("position", ea.STATE_SET),
5239
5242
  e.enum("motor_direction", ea.STATE_SET, ["normal", "reversed"]).withDescription("Set the motor direction"),
@@ -5330,7 +5333,7 @@ exports.definitions = [
5330
5333
  model: "BX82-TYZ1",
5331
5334
  vendor: "Manhot",
5332
5335
  description: "Cover motor",
5333
- extend: [tuya.modernExtend.tuyaBase({ dp: true })],
5336
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, respondToMcuVersionResponse: true })],
5334
5337
  exposes: [
5335
5338
  e.cover_position().setAccess("position", ea.STATE_SET),
5336
5339
  e.enum("motor_direction", ea.STATE_SET, ["normal", "reversed"]).withDescription("Set the motor direction"),
@@ -5364,7 +5367,7 @@ exports.definitions = [
5364
5367
  model: "MB60L-ZG-ZT-TY",
5365
5368
  vendor: "Manhot",
5366
5369
  description: "Smart blinds motor",
5367
- extend: [tuya.modernExtend.tuyaBase({ dp: true })],
5370
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, respondToMcuVersionResponse: true })],
5368
5371
  exposes: [
5369
5372
  e.battery(),
5370
5373
  e.cover_position().setAccess("position", ea.STATE_SET),
@@ -5714,7 +5717,7 @@ exports.definitions = [
5714
5717
  model: "TS0601_cover_3",
5715
5718
  vendor: "Tuya",
5716
5719
  description: "Cover motor",
5717
- extend: [tuya.modernExtend.tuyaBase({ dp: true, timeStart: "2000", respondToMcuVersionResponse: false })],
5720
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, timeStart: "2000" })],
5718
5721
  options: [exposes.options.invert_cover()],
5719
5722
  exposes: [
5720
5723
  e.battery(),
@@ -6026,6 +6029,7 @@ exports.definitions = [
6026
6029
  "_TZE200_rxq4iti9",
6027
6030
  "_TZE204_ogx8u5z6",
6028
6031
  "_TZE284_ogx8u5z6",
6032
+ "_TZE204_vjpaih9f",
6029
6033
  "_TZE200_hvaxb2tc" /* model: 'TRV06', vendor: 'AVATTO' */,
6030
6034
  "_TZE284_o3x45p96" /* model: 'TRV06', vendor: 'AVATTO' */,
6031
6035
  "_TZE284_c6wv4xyo" /* model: 'AVATTO_TRV06', vendor: 'AVATTO' */,
@@ -6047,7 +6051,7 @@ exports.definitions = [
6047
6051
  "_TZE200_jkfbph7l",
6048
6052
  ]),
6049
6053
  tuya.whitelabel("AVATTO", "ME168_1", "Thermostatic radiator valve", ["_TZE200_rxntag7i"]),
6050
- tuya.whitelabel("AVATTO", "TRV06_1", "Thermostatic radiator valve", ["_TZE200_hvaxb2tc", "_TZE284_o3x45p96"]),
6054
+ tuya.whitelabel("AVATTO", "TRV06_1", "Thermostatic radiator valve", ["_TZE204_vjpaih9f", "_TZE200_hvaxb2tc", "_TZE284_o3x45p96"]),
6051
6055
  tuya.whitelabel("EARU", "TRV06", "Smart thermostat module", ["_TZE200_yqgbrdyo", "_TZE200_rxq4iti9"]),
6052
6056
  tuya.whitelabel("AVATTO", "AVATTO_TRV06", "Thermostatic radiator valve", ["_TZE284_c6wv4xyo", "_TZE204_o3x45p96"]),
6053
6057
  tuya.whitelabel("THALEOS", "TRV06-AT", "Thermostatic radiator valve", [
@@ -7051,6 +7055,8 @@ exports.definitions = [
7051
7055
  },
7052
7056
  {
7053
7057
  fingerprint: [
7058
+ // https://github.com/Koenkk/zigbee2mqtt/issues/28729
7059
+ { modelID: "TS011F", applicationVersion: 240, manufacturerName: "_TZ3000_gjnozsaz", priority: -1 },
7054
7060
  { modelID: "TS011F", applicationVersion: 160, priority: -1 },
7055
7061
  { modelID: "TS011F", applicationVersion: 100, priority: -1 },
7056
7062
  { modelID: "TS011F", applicationVersion: 69, priority: -1 },
@@ -7066,7 +7072,7 @@ exports.definitions = [
7066
7072
  { vendor: "VIKEFON", model: "TS011F" },
7067
7073
  { vendor: "BlitzWolf", model: "BW-SHP15" },
7068
7074
  { vendor: "AVATTO", model: "MIUCOT10Z" },
7069
- { vendor: "Neo", model: "PLUG-001SPB2" },
7075
+ { vendor: "NEO", model: "PLUG-001SPB2" },
7070
7076
  ],
7071
7077
  ota: true,
7072
7078
  extend: [
@@ -8386,19 +8392,6 @@ exports.definitions = [
8386
8392
  }
8387
8393
  },
8388
8394
  },
8389
- {
8390
- fingerprint: tuya.fingerprint("TS0726", ["_TZ3002_jn2x20tg"]),
8391
- model: "TS0726_1_gang",
8392
- vendor: "Tuya",
8393
- description: "1 gang switch with neutral wire",
8394
- fromZigbee: [fz.on_off, tuya.fz.power_on_behavior_2, fz.ignore_basic_report, fzLocal.TS0726_action],
8395
- toZigbee: [tz.on_off, tuya.tz.power_on_behavior_2, tzLocal.TS0726_switch_mode],
8396
- exposes: [e.switch(), e.power_on_behavior(), e.enum("switch_mode", ea.STATE_SET, ["switch", "scene"]), e.action(["scene_1"])],
8397
- configure: async (device, coordinatorEndpoint) => {
8398
- await tuya.configureMagicPacket(device, coordinatorEndpoint);
8399
- await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ["genOnOff"]);
8400
- },
8401
- },
8402
8395
  {
8403
8396
  fingerprint: tuya.fingerprint("TS0726", ["_TZ3002_iedhxgyi"]),
8404
8397
  model: "TS0726_3_gang",
@@ -8638,7 +8631,7 @@ exports.definitions = [
8638
8631
  model: "ZWT07",
8639
8632
  vendor: "Tuya",
8640
8633
  description: "Wall-mount thermostat",
8641
- extend: [tuya.modernExtend.tuyaBase({ dp: true })],
8634
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, respondToMcuVersionResponse: true })],
8642
8635
  exposes: [
8643
8636
  e
8644
8637
  .climate()
@@ -8881,7 +8874,7 @@ exports.definitions = [
8881
8874
  model: "ZWT198/ZWT100-BH",
8882
8875
  vendor: "Tuya",
8883
8876
  description: "Wall thermostat",
8884
- extend: [tuya.modernExtend.tuyaBase({ dp: true, respondToMcuVersionResponse: false })],
8877
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, respondToMcuVersionResponse: true })],
8885
8878
  whiteLabel: [tuya.whitelabel("AVATTO", "WT-100-BH", "Wall thermostat", ["_TZE204_gops3slb", "_TZE284_gops3slb"])],
8886
8879
  exposes: [
8887
8880
  e.binary("factory_reset", ea.STATE_SET, "ON", "OFF").withDescription("Full factory reset, use with caution!"),
@@ -9032,7 +9025,7 @@ exports.definitions = [
9032
9025
  model: "TGM50-ZB",
9033
9026
  vendor: "Tuya",
9034
9027
  description: "Beok wall thermostat",
9035
- extend: [tuya.modernExtend.tuyaBase({ dp: true })],
9028
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, respondToMcuVersionResponse: true })],
9036
9029
  exposes: [
9037
9030
  e.child_lock(),
9038
9031
  e.temperature_sensor_select(["internal", "external", "both"]),
@@ -10660,7 +10653,15 @@ exports.definitions = [
10660
10653
  model: "RSH-HS06",
10661
10654
  vendor: "Tuya",
10662
10655
  description: "Temperature and humidity sensor",
10663
- extend: [tuya.modernExtend.tuyaBase({ dp: true, queryOnDeviceAnnounce: true, queryOnConfigure: true, timeStart: "off" })],
10656
+ extend: [
10657
+ tuya.modernExtend.tuyaBase({
10658
+ dp: true,
10659
+ queryOnDeviceAnnounce: true,
10660
+ queryOnConfigure: true,
10661
+ timeStart: "off",
10662
+ respondToMcuVersionResponse: true,
10663
+ }),
10664
+ ],
10664
10665
  exposes: [
10665
10666
  e.temperature(),
10666
10667
  e.humidity(),
@@ -10734,7 +10735,7 @@ exports.definitions = [
10734
10735
  model: "TS0601_pir",
10735
10736
  vendor: "Tuya",
10736
10737
  description: "Haozee PIR sensor",
10737
- extend: [tuya.modernExtend.tuyaBase({ dp: true, timeStart: "off" })],
10738
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, timeStart: "off", respondToMcuVersionResponse: true })],
10738
10739
  exposes: (device, options) => {
10739
10740
  const exposes = [e.occupancy(), e.illuminance()];
10740
10741
  // https://github.com/Koenkk/zigbee2mqtt.io/pull/4018
@@ -11290,6 +11291,35 @@ exports.definitions = [
11290
11291
  ],
11291
11292
  },
11292
11293
  },
11294
+ {
11295
+ fingerprint: tuya.fingerprint("TS0049", ["_TZ3290_ixd9mvv4"]),
11296
+ model: "LYAI-14",
11297
+ vendor: "Tuya",
11298
+ description: "Solar intelligent timed water valve controller",
11299
+ extend: [m.battery(), m.onOff({ powerOnBehavior: false }), tuya.modernExtend.tuyaBase({ dp: true })],
11300
+ // Countdown is not working properly yet - device ignores it and uses the default (10 minutes)
11301
+ // Countdown can be set using the Tuya app/hub and it will persist
11302
+ fromZigbee: [fz.battery, fz.on_off, fz.ignore_basic_report /*tuya.fz.on_off_countdown,*/],
11303
+ toZigbee: [tz.on_off /*tuya.tz.on_off_countdown,*/],
11304
+ exposes: [
11305
+ tuya.exposes.countdown().withAccess(ea.ALL),
11306
+ e.numeric("error_status", ea.STATE).withDescription("Device error code"),
11307
+ e.enum("rain_sensor_status", ea.STATE, ["rain", "no_rain"]).withDescription("Rain sensor state"),
11308
+ e.binary("rain_sensor_switch", ea.STATE_SET, "ON", "OFF").withDescription("Enable/disable rain sensor"),
11309
+ e.enum("battery_state", ea.STATE, ["no_charge", "charging", "charged"]).withDescription("Battery charging state"),
11310
+ ],
11311
+ meta: {
11312
+ tuyaSendCommand: "sendData",
11313
+ tuyaDatapoints: [
11314
+ [1, "state", tuya.valueConverter.onOff],
11315
+ [4, "error_status", tuya.valueConverter.raw],
11316
+ [11, "countdown", tuya.valueConverter.countdown],
11317
+ [101, "rain_sensor_status", tuya.valueConverterBasic.lookup({ rain: tuya.enum(0), no_rain: tuya.enum(1) })],
11318
+ [102, "rain_sensor_switch", tuya.valueConverter.onOff],
11319
+ [103, "battery_state", tuya.valueConverterBasic.lookup({ no_charge: tuya.enum(0), charging: tuya.enum(1), charged: tuya.enum(2) })],
11320
+ ],
11321
+ },
11322
+ },
11293
11323
  {
11294
11324
  fingerprint: tuya.fingerprint("TS0601", ["_TZE284_eaet5qt5", "_TZE284_fhvpaltk"]),
11295
11325
  model: "TS0601_water_switch",
@@ -12894,7 +12924,7 @@ exports.definitions = [
12894
12924
  {
12895
12925
  fingerprint: tuya.fingerprint("TS011F", ["_TZ3000_cfnprab5", "_TZ3000_o005nuxx", "_TZ3000_gdyjfvgm"]),
12896
12926
  model: "TS011F_5",
12897
- description: "5 gang switch",
12927
+ description: "Power strip 5 gang",
12898
12928
  vendor: "Tuya",
12899
12929
  extend: [
12900
12930
  tuya.modernExtend.tuyaOnOff({
@@ -13355,7 +13385,7 @@ exports.definitions = [
13355
13385
  ],
13356
13386
  },
13357
13387
  {
13358
- fingerprint: tuya.fingerprint("TS0601", ["_TZE204_k7mfgaen", "_TZE204_fncxk3ob"]),
13388
+ fingerprint: tuya.fingerprint("TS0601", ["_TZE204_k7mfgaen", "_TZE204_fncxk3ob", "_TZE284_fncxk3ob"]),
13359
13389
  model: "YXZBSL",
13360
13390
  vendor: "Tuya",
13361
13391
  description: "Smart siren",
@@ -13639,7 +13669,7 @@ exports.definitions = [
13639
13669
  const exps = [
13640
13670
  e.enum("state", ea.STATE, ["none", "presence", "move"]).withDescription("Presence state sensor"),
13641
13671
  e.presence().withDescription("Occupancy"),
13642
- e.numeric("distance", ea.STATE).withDescription("Target distance"),
13672
+ e.numeric("distance", ea.STATE).withUnit("m").withDescription("Target distance"),
13643
13673
  e.binary("find_switch", ea.STATE_SET, "ON", "OFF").withDescription("distance switch"),
13644
13674
  e.illuminance().withDescription("Illuminance sensor"),
13645
13675
  e.numeric("move_sensitivity", ea.STATE_SET).withValueMin(1).withValueMax(10).withValueStep(1).withDescription("Motion Sensitivity"),
@@ -13998,7 +14028,7 @@ exports.definitions = [
13998
14028
  description: "Bidirectional energy meter with 80A current clamp",
13999
14029
  fromZigbee: [fzLocal.PJ1203A_strict_fz_datapoints, fzLocal.PJ1203A_sync_time_increase_seq],
14000
14030
  toZigbee: [tuya.tz.datapoints],
14001
- extend: [tuya.modernExtend.tuyaBase({ timeStart: "off", respondToMcuVersionResponse: false })],
14031
+ extend: [tuya.modernExtend.tuyaBase({ timeStart: "off" })],
14002
14032
  options: [
14003
14033
  e
14004
14034
  .binary("late_energy_flow_a", ea.SET, true, false)
@@ -14303,7 +14333,7 @@ exports.definitions = [
14303
14333
  {
14304
14334
  fingerprint: tuya.fingerprint("TS0601", ["_TZE204_kyhbrfyl"]),
14305
14335
  model: "NAS-PS09B2",
14306
- vendor: "Neo",
14336
+ vendor: "NEO",
14307
14337
  description: "Human presence sensor",
14308
14338
  fromZigbee: [tuya.fz.datapoints],
14309
14339
  toZigbee: [tuya.tz.datapoints],
@@ -14371,6 +14401,7 @@ exports.definitions = [
14371
14401
  queryOnDeviceAnnounce: true,
14372
14402
  // https://github.com/Koenkk/zigbee2mqtt/issues/23946#issuecomment-2941182834
14373
14403
  queryIntervalSeconds: 10 * 60,
14404
+ respondToMcuVersionResponse: true,
14374
14405
  }),
14375
14406
  m.poll({
14376
14407
  key: "backlight",
@@ -14636,7 +14667,7 @@ exports.definitions = [
14636
14667
  ],
14637
14668
  },
14638
14669
  {
14639
- fingerprint: tuya.fingerprint("TS0601", ["_TZE204_kobbcyum", "_TZE284_kobbcyum", "_TZE284_hecsejsb", "_TZE284_432zhuwe"]),
14670
+ fingerprint: tuya.fingerprint("TS0601", ["_TZE204_kobbcyum", "_TZE284_kobbcyum", "_TZE284_hecsejsb", "_TZE284_432zhuwe", "_TZE204_432zhuwe"]),
14640
14671
  model: "TOWSMR1",
14641
14672
  vendor: "Tongou",
14642
14673
  description: "Single-phase multifunction RCBO (DIN Module)",
@@ -14645,11 +14676,11 @@ exports.definitions = [
14645
14676
  dp: true,
14646
14677
  queryOnConfigure: true,
14647
14678
  queryIntervalSeconds: 10,
14648
- respondToMcuVersionResponse: false,
14649
14679
  timeStart: "off",
14680
+ respondToMcuVersionResponse: true,
14650
14681
  }),
14651
14682
  ],
14652
- whiteLabel: [tuya.whitelabel("Tongou", "TOSA1", "Single-phase multifunction RCBO (DIN Module)", ["_TZE284_432zhuwe"])],
14683
+ whiteLabel: [tuya.whitelabel("Tongou", "TOSA1", "Single-phase multifunction RCBO (DIN Module)", ["_TZE284_432zhuwe", "_TZE204_432zhuwe"])],
14653
14684
  exposes: [
14654
14685
  tuya.exposes.switch(),
14655
14686
  e.temperature(),
@@ -14861,8 +14892,8 @@ exports.definitions = [
14861
14892
  dp: true,
14862
14893
  queryOnConfigure: true,
14863
14894
  queryIntervalSeconds: 10,
14864
- respondToMcuVersionResponse: false,
14865
14895
  timeStart: "off",
14896
+ respondToMcuVersionResponse: true,
14866
14897
  }),
14867
14898
  ],
14868
14899
  exposes: [
@@ -15639,7 +15670,7 @@ exports.definitions = [
15639
15670
  description: "Smart circuit breaker",
15640
15671
  // Important: respondToMcuVersionResponse should be false otherwise there is an avalanche of commandMcuVersionResponse messages every second.
15641
15672
  // queryIntervalSeconds: is doing a pooling to update the device's parameters, now defined to update data every 3 minutes.
15642
- extend: [tuya.modernExtend.tuyaBase({ dp: true, queryIntervalSeconds: 3 * 60, respondToMcuVersionResponse: false, timeStart: "off" })],
15673
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, queryIntervalSeconds: 3 * 60, timeStart: "off", respondToMcuVersionResponse: true })],
15643
15674
  exposes: [
15644
15675
  tuya.exposes.switch(),
15645
15676
  e.energy(),
@@ -16903,7 +16934,7 @@ exports.definitions = [
16903
16934
  model: "ME201WZ",
16904
16935
  vendor: "Tuya",
16905
16936
  description: "Water level sensor",
16906
- extend: [tuya.modernExtend.tuyaBase({ dp: true, forceTimeUpdates: true, respondToMcuVersionResponse: false })],
16937
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, forceTimeUpdates: true })],
16907
16938
  exposes: [
16908
16939
  e.numeric("liquid_level_percent", ea.STATE).withUnit("%").withDescription("Liquid level ratio"),
16909
16940
  e.numeric("liquid_depth", ea.STATE).withUnit("m").withDescription("Liquid Depth"),
@@ -17999,10 +18030,11 @@ exports.definitions = [
17999
18030
  },
18000
18031
  },
18001
18032
  {
18002
- fingerprint: tuya.fingerprint("TS0726", ["_TZ3000_5kxl9esg"]),
18033
+ fingerprint: tuya.fingerprint("TS0726", ["_TZ3000_5kxl9esg", "_TZ3002_jn2x20tg"]),
18003
18034
  model: "TS0726_1_gang_scene_switch",
18004
18035
  vendor: "Tuya",
18005
18036
  description: "1 gang switch with scene and backlight",
18037
+ whiteLabel: [tuya.whitelabel("BSEED", "EC-GL86ZPCS11", "1 gang switch with scene and backlight", ["_TZ3002_jn2x20tg"])],
18006
18038
  fromZigbee: [fz.ignore_basic_report, fzLocal.TS0726_action],
18007
18039
  exposes: [e.action(["scene_1"])],
18008
18040
  extend: [
@@ -18109,7 +18141,7 @@ exports.definitions = [
18109
18141
  model: "HY-SZLUMPIR",
18110
18142
  vendor: "Homcloud",
18111
18143
  description: "PIR sensor",
18112
- extend: [tuya.modernExtend.tuyaBase({ dp: true, timeStart: "off" })],
18144
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, timeStart: "off", respondToMcuVersionResponse: true })],
18113
18145
  exposes: [e.occupancy(), e.illuminance(), e.battery()],
18114
18146
  meta: {
18115
18147
  tuyaDatapoints: [
@@ -19327,5 +19359,145 @@ exports.definitions = [
19327
19359
  ],
19328
19360
  },
19329
19361
  },
19362
+ {
19363
+ fingerprint: tuya.fingerprint("TS0601", ["_TZE284_7zazvlyn", "_TZE284_idn2htgu"]),
19364
+ model: "F3-Pro",
19365
+ vendor: "Tuya",
19366
+ description: "Smart panel, 4-gang switch with scene, dimmer, and curtain control",
19367
+ extend: [tuya.modernExtend.tuyaBase({ dp: true, forceTimeUpdates: true, queryOnConfigure: true })],
19368
+ endpoint: (device) => {
19369
+ return { l1: 1, l2: 1, l3: 1, l4: 1, l5: 1, l6: 1, l7: 1, l8: 1 };
19370
+ },
19371
+ exposes: [
19372
+ e.binary("backlight_switch", ea.STATE_SET, "ON", "OFF").withDescription("Panel screen on/off"),
19373
+ tuya.exposes.switch().withEndpoint("l1"),
19374
+ tuya.exposes.switch().withEndpoint("l2"),
19375
+ tuya.exposes.switch().withEndpoint("l3"),
19376
+ tuya.exposes.switch().withEndpoint("l4"),
19377
+ e.text("switch_name", ea.STATE_SET).withEndpoint("l1").withDescription("Name for Switch 1"),
19378
+ e.text("switch_name", ea.STATE_SET).withEndpoint("l2").withDescription("Name for Switch 2"),
19379
+ e.text("switch_name", ea.STATE_SET).withEndpoint("l3").withDescription("Name for Switch 3"),
19380
+ e.text("switch_name", ea.STATE_SET).withEndpoint("l4").withDescription("Name for Switch 4"),
19381
+ e.text("scene_name", ea.STATE_SET).withEndpoint("l1").withDescription("Name for Scene 1"),
19382
+ e.text("scene_name", ea.STATE_SET).withEndpoint("l2").withDescription("Name for Scene 2"),
19383
+ e.text("scene_name", ea.STATE_SET).withEndpoint("l3").withDescription("Name for Scene 3"),
19384
+ e.text("scene_name", ea.STATE_SET).withEndpoint("l4").withDescription("Name for Scene 4"),
19385
+ e.text("scene_name", ea.STATE_SET).withEndpoint("l5").withDescription("Name for Scene 5"),
19386
+ e.text("scene_name", ea.STATE_SET).withEndpoint("l6").withDescription("Name for Scene 6"),
19387
+ e.text("scene_name", ea.STATE_SET).withEndpoint("l7").withDescription("Name for Scene 7"),
19388
+ e.text("scene_name", ea.STATE_SET).withEndpoint("l8").withDescription("Name for Scene 8"),
19389
+ e.text("cover_name", ea.STATE_SET).withEndpoint("l1").withDescription("Name for Cover 1"),
19390
+ e.text("cover_name", ea.STATE_SET).withEndpoint("l2").withDescription("Name for Cover 2"),
19391
+ e.text("cover_name", ea.STATE_SET).withEndpoint("l3").withDescription("Name for Cover 3"),
19392
+ e.text("cover_name", ea.STATE_SET).withEndpoint("l4").withDescription("Name for Cover 4"),
19393
+ e.text("led_switch_name", ea.STATE_SET).withEndpoint("l1").withDescription("Name for LED Switch 1"),
19394
+ e.text("led_switch_name", ea.STATE_SET).withEndpoint("l2").withDescription("Name for LED Switch 2"),
19395
+ e.text("led_switch_name", ea.STATE_SET).withEndpoint("l3").withDescription("Name for LED Switch 3"),
19396
+ e.text("led_switch_name", ea.STATE_SET).withEndpoint("l4").withDescription("Name for LED Switch 4"),
19397
+ e.action(["scene_1", "scene_2", "scene_3", "scene_4", "scene_5", "scene_6", "scene_7", "scene_8"]),
19398
+ e.binary("led_switch", ea.ALL, "ON", "OFF").withEndpoint("l1").withDescription("Switch of LED 1"),
19399
+ e.numeric("led_warm", ea.STATE_SET).withEndpoint("l1").withDescription("Color temperature of LED 1").withValueMin(1).withValueMax(100),
19400
+ e.numeric("led_bright", ea.STATE_SET).withEndpoint("l1").withDescription("Brightness of LED 1").withValueMin(1).withValueMax(100),
19401
+ e.binary("led_switch", ea.ALL, "ON", "OFF").withEndpoint("l2").withDescription("Switch of LED 2"),
19402
+ e.numeric("led_warm", ea.STATE_SET).withEndpoint("l2").withDescription("Color temperature of LED 2").withValueMin(1).withValueMax(100),
19403
+ e.numeric("led_bright", ea.STATE_SET).withEndpoint("l2").withDescription("Brightness of LED 2").withValueMin(1).withValueMax(100),
19404
+ e.binary("led_switch", ea.ALL, "ON", "OFF").withEndpoint("l3").withDescription("Switch of LED 3"),
19405
+ e.numeric("led_warm", ea.STATE_SET).withEndpoint("l3").withDescription("Color temperature of LED 3").withValueMin(1).withValueMax(100),
19406
+ e.numeric("led_bright", ea.STATE_SET).withEndpoint("l3").withDescription("Brightness of LED 3").withValueMin(1).withValueMax(100),
19407
+ e.binary("led_switch", ea.ALL, "ON", "OFF").withEndpoint("l4").withDescription("Switch of LED 4"),
19408
+ e.numeric("led_warm", ea.STATE_SET).withEndpoint("l4").withDescription("Color temperature of LED 4").withValueMin(1).withValueMax(100),
19409
+ e.numeric("led_bright", ea.STATE_SET).withEndpoint("l4").withDescription("Brightness of LED 4").withValueMin(1).withValueMax(100),
19410
+ e.enum("cover_state", ea.STATE_SET, ["open", "stop", "close"]).withEndpoint("l1").withDescription("State of Cover 1"),
19411
+ e
19412
+ .numeric("cover_position", ea.STATE_SET)
19413
+ .withEndpoint("l1")
19414
+ .withDescription("Position of Cover 1")
19415
+ .withUnit("%")
19416
+ .withValueMin(0)
19417
+ .withValueMax(100),
19418
+ e.enum("cover_state", ea.STATE_SET, ["open", "stop", "close"]).withEndpoint("l2").withDescription("State of Cover 2"),
19419
+ e
19420
+ .numeric("cover_position", ea.STATE_SET)
19421
+ .withEndpoint("l2")
19422
+ .withDescription("Position of Cover 2")
19423
+ .withUnit("%")
19424
+ .withValueMin(0)
19425
+ .withValueMax(100),
19426
+ e.enum("cover_state", ea.STATE_SET, ["open", "stop", "close"]).withEndpoint("l3").withDescription("State of Cover 3"),
19427
+ e
19428
+ .numeric("cover_position", ea.STATE_SET)
19429
+ .withEndpoint("l3")
19430
+ .withDescription("Position of Cover 3")
19431
+ .withUnit("%")
19432
+ .withValueMin(0)
19433
+ .withValueMax(100),
19434
+ e.enum("cover_state", ea.STATE_SET, ["open", "stop", "close"]).withEndpoint("l4").withDescription("State of Cover 4"),
19435
+ e
19436
+ .numeric("cover_position", ea.STATE_SET)
19437
+ .withEndpoint("l4")
19438
+ .withDescription("Position of Cover 4")
19439
+ .withUnit("%")
19440
+ .withValueMin(0)
19441
+ .withValueMax(100),
19442
+ ],
19443
+ meta: {
19444
+ multiEndpoint: true,
19445
+ tuyaDatapoints: [
19446
+ [1, "action", tuya.valueConverter.static("scene_1")],
19447
+ [2, "action", tuya.valueConverter.static("scene_2")],
19448
+ [3, "action", tuya.valueConverter.static("scene_3")],
19449
+ [4, "action", tuya.valueConverter.static("scene_4")],
19450
+ [5, "action", tuya.valueConverter.static("scene_5")],
19451
+ [6, "action", tuya.valueConverter.static("scene_6")],
19452
+ [7, "action", tuya.valueConverter.static("scene_7")],
19453
+ [8, "action", tuya.valueConverter.static("scene_8")],
19454
+ [102, "led_bright_l1", tuya.valueConverter.raw],
19455
+ [103, "led_bright_l2", tuya.valueConverter.raw],
19456
+ [105, "led_bright_l3", tuya.valueConverter.raw],
19457
+ [107, "led_bright_l4", tuya.valueConverter.raw],
19458
+ [109, "led_warm_l1", tuya.valueConverter.raw],
19459
+ [110, "led_warm_l2", tuya.valueConverter.raw],
19460
+ [111, "led_warm_l3", tuya.valueConverter.raw],
19461
+ [112, "led_warm_l4", tuya.valueConverter.raw],
19462
+ [113, "cover_position_l1", tuya.valueConverter.raw],
19463
+ [114, "cover_position_l2", tuya.valueConverter.raw],
19464
+ [115, "cover_position_l3", tuya.valueConverter.raw],
19465
+ [116, "cover_position_l4", tuya.valueConverter.raw],
19466
+ [117, "led_switch_l1", tuya.valueConverter.onOff],
19467
+ [118, "led_switch_l2", tuya.valueConverter.onOff],
19468
+ [119, "led_switch_l3", tuya.valueConverter.onOff],
19469
+ [120, "led_switch_l4", tuya.valueConverter.onOff],
19470
+ [121, "state_l1", tuya.valueConverter.onOff],
19471
+ [122, "state_l2", tuya.valueConverter.onOff],
19472
+ [123, "state_l3", tuya.valueConverter.onOff],
19473
+ [124, "state_l4", tuya.valueConverter.onOff],
19474
+ [125, "led_switch_name_l1", tuya.valueConverter.utf16BEHexString],
19475
+ [126, "led_switch_name_l2", tuya.valueConverter.utf16BEHexString],
19476
+ [127, "led_switch_name_l3", tuya.valueConverter.utf16BEHexString],
19477
+ [128, "led_switch_name_l4", tuya.valueConverter.utf16BEHexString],
19478
+ [129, "cover_name_l1", tuya.valueConverter.utf16BEHexString],
19479
+ [130, "cover_name_l2", tuya.valueConverter.utf16BEHexString],
19480
+ [131, "cover_name_l3", tuya.valueConverter.utf16BEHexString],
19481
+ [132, "cover_name_l4", tuya.valueConverter.utf16BEHexString],
19482
+ [133, "cover_state_l1", tuya.valueConverterBasic.lookup({ open: tuya.enum(0), stop: tuya.enum(1), close: tuya.enum(2) })],
19483
+ [134, "cover_state_l2", tuya.valueConverterBasic.lookup({ open: tuya.enum(0), stop: tuya.enum(1), close: tuya.enum(2) })],
19484
+ [135, "cover_state_l3", tuya.valueConverterBasic.lookup({ open: tuya.enum(0), stop: tuya.enum(1), close: tuya.enum(2) })],
19485
+ [136, "cover_state_l4", tuya.valueConverterBasic.lookup({ open: tuya.enum(0), stop: tuya.enum(1), close: tuya.enum(2) })],
19486
+ [137, "switch_name_l1", tuya.valueConverter.utf16BEHexString],
19487
+ [138, "switch_name_l2", tuya.valueConverter.utf16BEHexString],
19488
+ [139, "switch_name_l3", tuya.valueConverter.utf16BEHexString],
19489
+ [140, "switch_name_l4", tuya.valueConverter.utf16BEHexString],
19490
+ [141, "scene_name_l1", tuya.valueConverter.utf16BEHexString],
19491
+ [142, "scene_name_l2", tuya.valueConverter.utf16BEHexString],
19492
+ [143, "scene_name_l3", tuya.valueConverter.utf16BEHexString],
19493
+ [144, "scene_name_l4", tuya.valueConverter.utf16BEHexString],
19494
+ [145, "scene_name_l5", tuya.valueConverter.utf16BEHexString],
19495
+ [146, "scene_name_l6", tuya.valueConverter.utf16BEHexString],
19496
+ [147, "scene_name_l7", tuya.valueConverter.utf16BEHexString],
19497
+ [148, "scene_name_l8", tuya.valueConverter.utf16BEHexString],
19498
+ [149, "backlight_switch", tuya.valueConverter.onOff],
19499
+ ],
19500
+ },
19501
+ },
19330
19502
  ];
19331
19503
  //# sourceMappingURL=tuya.js.map