zigbee-herdsman-converters 23.3.0 → 23.4.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 (207) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/converters/fromZigbee.d.ts.map +1 -1
  3. package/dist/converters/fromZigbee.js +53 -11
  4. package/dist/converters/fromZigbee.js.map +1 -1
  5. package/dist/converters/toZigbee.d.ts.map +1 -1
  6. package/dist/converters/toZigbee.js +82 -8
  7. package/dist/converters/toZigbee.js.map +1 -1
  8. package/dist/devices/ITCommander.d.ts.map +1 -1
  9. package/dist/devices/ITCommander.js +1 -0
  10. package/dist/devices/ITCommander.js.map +1 -1
  11. package/dist/devices/adeo.d.ts.map +1 -1
  12. package/dist/devices/adeo.js +1 -0
  13. package/dist/devices/adeo.js.map +1 -1
  14. package/dist/devices/atlantic.d.ts.map +1 -1
  15. package/dist/devices/atlantic.js +2 -0
  16. package/dist/devices/atlantic.js.map +1 -1
  17. package/dist/devices/avatto.js +6 -6
  18. package/dist/devices/avatto.js.map +1 -1
  19. package/dist/devices/bosch.d.ts.map +1 -1
  20. package/dist/devices/bosch.js +2 -0
  21. package/dist/devices/bosch.js.map +1 -1
  22. package/dist/devices/busch_jaeger.js +1 -1
  23. package/dist/devices/busch_jaeger.js.map +1 -1
  24. package/dist/devices/custom_devices_diy.d.ts.map +1 -1
  25. package/dist/devices/custom_devices_diy.js +18 -13
  26. package/dist/devices/custom_devices_diy.js.map +1 -1
  27. package/dist/devices/develco.js +1 -1
  28. package/dist/devices/develco.js.map +1 -1
  29. package/dist/devices/diyruz.d.ts.map +1 -1
  30. package/dist/devices/diyruz.js +2 -0
  31. package/dist/devices/diyruz.js.map +1 -1
  32. package/dist/devices/essentials.js +3 -3
  33. package/dist/devices/essentials.js.map +1 -1
  34. package/dist/devices/ewelink.d.ts.map +1 -1
  35. package/dist/devices/ewelink.js +15 -37
  36. package/dist/devices/ewelink.js.map +1 -1
  37. package/dist/devices/gledopto.d.ts.map +1 -1
  38. package/dist/devices/gledopto.js +2 -1
  39. package/dist/devices/gledopto.js.map +1 -1
  40. package/dist/devices/gmmts.d.ts.map +1 -1
  41. package/dist/devices/gmmts.js +7 -0
  42. package/dist/devices/gmmts.js.map +1 -1
  43. package/dist/devices/hive.js +1 -1
  44. package/dist/devices/hive.js.map +1 -1
  45. package/dist/devices/ikea.js +1 -1
  46. package/dist/devices/ikea.js.map +1 -1
  47. package/dist/devices/index.js.map +1 -1
  48. package/dist/devices/inovelli.d.ts.map +1 -1
  49. package/dist/devices/inovelli.js +70 -36
  50. package/dist/devices/inovelli.js.map +1 -1
  51. package/dist/devices/insta.js +1 -1
  52. package/dist/devices/insta.js.map +1 -1
  53. package/dist/devices/keen_home.d.ts.map +1 -1
  54. package/dist/devices/keen_home.js +2 -4
  55. package/dist/devices/keen_home.js.map +1 -1
  56. package/dist/devices/lidl.d.ts.map +1 -1
  57. package/dist/devices/lidl.js +5 -2
  58. package/dist/devices/lidl.js.map +1 -1
  59. package/dist/devices/lifecontrol.js +1 -1
  60. package/dist/devices/lifecontrol.js.map +1 -1
  61. package/dist/devices/linptech.d.ts.map +1 -1
  62. package/dist/devices/linptech.js +1 -0
  63. package/dist/devices/linptech.js.map +1 -1
  64. package/dist/devices/lixee.d.ts.map +1 -1
  65. package/dist/devices/lixee.js +69 -49
  66. package/dist/devices/lixee.js.map +1 -1
  67. package/dist/devices/lumi.d.ts.map +1 -1
  68. package/dist/devices/lumi.js +20 -91
  69. package/dist/devices/lumi.js.map +1 -1
  70. package/dist/devices/muller_licht.d.ts.map +1 -1
  71. package/dist/devices/muller_licht.js +1 -5
  72. package/dist/devices/muller_licht.js.map +1 -1
  73. package/dist/devices/multiterm.d.ts.map +1 -1
  74. package/dist/devices/multiterm.js +1 -0
  75. package/dist/devices/multiterm.js.map +1 -1
  76. package/dist/devices/namron.js +2 -2
  77. package/dist/devices/namron.js.map +1 -1
  78. package/dist/devices/nue_3a.d.ts.map +1 -1
  79. package/dist/devices/nue_3a.js +2 -0
  80. package/dist/devices/nue_3a.js.map +1 -1
  81. package/dist/devices/orvibo.d.ts.map +1 -1
  82. package/dist/devices/orvibo.js +3 -0
  83. package/dist/devices/orvibo.js.map +1 -1
  84. package/dist/devices/osram.js +2 -2
  85. package/dist/devices/osram.js.map +1 -1
  86. package/dist/devices/owon.d.ts.map +1 -1
  87. package/dist/devices/owon.js +2 -0
  88. package/dist/devices/owon.js.map +1 -1
  89. package/dist/devices/philips.d.ts.map +1 -1
  90. package/dist/devices/philips.js +7 -0
  91. package/dist/devices/philips.js.map +1 -1
  92. package/dist/devices/rgb_genie.d.ts.map +1 -1
  93. package/dist/devices/rgb_genie.js +2 -0
  94. package/dist/devices/rgb_genie.js.map +1 -1
  95. package/dist/devices/samotech.d.ts.map +1 -1
  96. package/dist/devices/samotech.js +2 -1
  97. package/dist/devices/samotech.js.map +1 -1
  98. package/dist/devices/schneider_electric.d.ts.map +1 -1
  99. package/dist/devices/schneider_electric.js +8 -4
  100. package/dist/devices/schneider_electric.js.map +1 -1
  101. package/dist/devices/shinasystem.d.ts.map +1 -1
  102. package/dist/devices/shinasystem.js +3 -0
  103. package/dist/devices/shinasystem.js.map +1 -1
  104. package/dist/devices/sinope.d.ts.map +1 -1
  105. package/dist/devices/sinope.js +3 -0
  106. package/dist/devices/sinope.js.map +1 -1
  107. package/dist/devices/sonoff.d.ts.map +1 -1
  108. package/dist/devices/sonoff.js +2 -4
  109. package/dist/devices/sonoff.js.map +1 -1
  110. package/dist/devices/sunricher.d.ts.map +1 -1
  111. package/dist/devices/sunricher.js +17 -743
  112. package/dist/devices/sunricher.js.map +1 -1
  113. package/dist/devices/third_reality.d.ts.map +1 -1
  114. package/dist/devices/third_reality.js +1 -4
  115. package/dist/devices/third_reality.js.map +1 -1
  116. package/dist/devices/tuya.d.ts.map +1 -1
  117. package/dist/devices/tuya.js +42 -20
  118. package/dist/devices/tuya.js.map +1 -1
  119. package/dist/devices/ubisys.d.ts.map +1 -1
  120. package/dist/devices/ubisys.js +6 -1
  121. package/dist/devices/ubisys.js.map +1 -1
  122. package/dist/devices/xyzroe.d.ts.map +1 -1
  123. package/dist/devices/xyzroe.js +10 -0
  124. package/dist/devices/xyzroe.js.map +1 -1
  125. package/dist/devices/yale.js +1 -1
  126. package/dist/devices/yale.js.map +1 -1
  127. package/dist/devices/yandex.js +1 -1
  128. package/dist/devices/yandex.js.map +1 -1
  129. package/dist/devices/yokis.d.ts.map +1 -1
  130. package/dist/devices/yokis.js +74 -37
  131. package/dist/devices/yokis.js.map +1 -1
  132. package/dist/devices/ysrsai.js +1 -1
  133. package/dist/devices/ysrsai.js.map +1 -1
  134. package/dist/index.d.ts +1 -0
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +8 -1
  137. package/dist/index.js.map +1 -1
  138. package/dist/indexer.d.ts.map +1 -1
  139. package/dist/indexer.js +1 -0
  140. package/dist/indexer.js.map +1 -1
  141. package/dist/lib/color.d.ts.map +1 -1
  142. package/dist/lib/color.js +9 -1
  143. package/dist/lib/color.js.map +1 -1
  144. package/dist/lib/configureKey.js +9 -0
  145. package/dist/lib/configureKey.js.map +1 -1
  146. package/dist/lib/develco.d.ts.map +1 -1
  147. package/dist/lib/develco.js +1 -0
  148. package/dist/lib/develco.js.map +1 -1
  149. package/dist/lib/ewelink.d.ts.map +1 -1
  150. package/dist/lib/ewelink.js +10 -7
  151. package/dist/lib/ewelink.js.map +1 -1
  152. package/dist/lib/exposes.d.ts +17 -17
  153. package/dist/lib/exposes.d.ts.map +1 -1
  154. package/dist/lib/exposes.js +50 -30
  155. package/dist/lib/exposes.js.map +1 -1
  156. package/dist/lib/generateDefinition.d.ts.map +1 -1
  157. package/dist/lib/generateDefinition.js +2 -1
  158. package/dist/lib/generateDefinition.js.map +1 -1
  159. package/dist/lib/ikea.d.ts.map +1 -1
  160. package/dist/lib/ikea.js +8 -0
  161. package/dist/lib/ikea.js.map +1 -1
  162. package/dist/lib/ledvance.d.ts.map +1 -1
  163. package/dist/lib/ledvance.js +2 -0
  164. package/dist/lib/ledvance.js.map +1 -1
  165. package/dist/lib/legacy.d.ts +2 -2
  166. package/dist/lib/legacy.d.ts.map +1 -1
  167. package/dist/lib/legacy.js +177 -3
  168. package/dist/lib/legacy.js.map +1 -1
  169. package/dist/lib/light.d.ts.map +1 -1
  170. package/dist/lib/light.js +2 -0
  171. package/dist/lib/light.js.map +1 -1
  172. package/dist/lib/lumi.d.ts +2 -2
  173. package/dist/lib/lumi.d.ts.map +1 -1
  174. package/dist/lib/lumi.js +56 -4
  175. package/dist/lib/lumi.js.map +1 -1
  176. package/dist/lib/modernExtend.d.ts +7 -6
  177. package/dist/lib/modernExtend.d.ts.map +1 -1
  178. package/dist/lib/modernExtend.js +78 -3
  179. package/dist/lib/modernExtend.js.map +1 -1
  180. package/dist/lib/ota.d.ts.map +1 -1
  181. package/dist/lib/ota.js +10 -1
  182. package/dist/lib/ota.js.map +1 -1
  183. package/dist/lib/philips.d.ts +1 -1
  184. package/dist/lib/philips.d.ts.map +1 -1
  185. package/dist/lib/philips.js +20 -1
  186. package/dist/lib/philips.js.map +1 -1
  187. package/dist/lib/reporting.d.ts.map +1 -1
  188. package/dist/lib/reporting.js +0 -1
  189. package/dist/lib/reporting.js.map +1 -1
  190. package/dist/lib/sunricher.d.ts +17 -3
  191. package/dist/lib/sunricher.d.ts.map +1 -1
  192. package/dist/lib/sunricher.js +771 -1
  193. package/dist/lib/sunricher.js.map +1 -1
  194. package/dist/lib/tuya.d.ts +5 -5
  195. package/dist/lib/tuya.d.ts.map +1 -1
  196. package/dist/lib/tuya.js +21 -6
  197. package/dist/lib/tuya.js.map +1 -1
  198. package/dist/lib/types.d.ts +3 -3
  199. package/dist/lib/types.d.ts.map +1 -1
  200. package/dist/lib/types.js +0 -1
  201. package/dist/lib/types.js.map +1 -1
  202. package/dist/lib/utils.d.ts +1 -1
  203. package/dist/lib/utils.d.ts.map +1 -1
  204. package/dist/lib/utils.js +17 -5
  205. package/dist/lib/utils.js.map +1 -1
  206. package/dist/models-index.json +1 -1
  207. package/package.json +1 -1
@@ -266,6 +266,7 @@ const convLocal = {
266
266
  },
267
267
  };
268
268
  const tzLocal = {
269
+ // biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
269
270
  TS030F_border: {
270
271
  key: ["border"],
271
272
  convertSet: async (entity, key, value, meta) => {
@@ -275,6 +276,7 @@ const tzLocal = {
275
276
  });
276
277
  },
277
278
  },
279
+ // biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
278
280
  TS0726_switch_mode: {
279
281
  key: ["switch_mode"],
280
282
  convertSet: async (entity, key, value, meta) => {
@@ -382,6 +384,7 @@ const tzLocal = {
382
384
  await entity.read("lightingColorCtrl", ["currentHue", "currentSaturation", "currentLevel", "tuyaRgbMode", "colorTemperature"]);
383
385
  },
384
386
  },
387
+ // biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
385
388
  TS0504B_color: {
386
389
  key: ["color"],
387
390
  convertSet: async (entity, key, value, meta) => {
@@ -424,6 +427,7 @@ const tzLocal = {
424
427
  const lookup = { mute: 0, low: 10, medium: 30, high: 50 };
425
428
  utils.assertString(value, "volume");
426
429
  const lookupValue = lookup[value];
430
+ // biome-ignore lint/style/noParameterAssign: ignored using `--suppress`
427
431
  value = value.toLowerCase();
428
432
  utils.validateValue(value, Object.keys(lookup));
429
433
  await entity.write("ssIasWd", { 2: { value: lookupValue, type: 0x0a } }, utils.getOptions(meta.mapped, entity));
@@ -447,6 +451,7 @@ const tzLocal = {
447
451
  }
448
452
  },
449
453
  },
454
+ // biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
450
455
  TS011F_threshold: {
451
456
  key: [
452
457
  "temperature_threshold",
@@ -558,6 +563,7 @@ const tzLocal = {
558
563
  },
559
564
  };
560
565
  const fzLocal = {
566
+ // biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
561
567
  TS0726_action: {
562
568
  cluster: "genOnOff",
563
569
  type: ["commandTuyaAction"],
@@ -565,9 +571,10 @@ const fzLocal = {
565
571
  return { action: `scene_${msg.endpoint.ID}` };
566
572
  },
567
573
  },
574
+ // biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
568
575
  TS0222_humidity: {
569
576
  ...fz.humidity,
570
- convert: async (model, msg, publish, options, meta) => {
577
+ convert: (model, msg, publish, options, meta) => {
571
578
  const result = fz.humidity.convert(model, msg, publish, options, meta);
572
579
  if (result)
573
580
  result.humidity *= 10;
@@ -595,6 +602,7 @@ const fzLocal = {
595
602
  return { action: `scene_${id}` };
596
603
  },
597
604
  },
605
+ // biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
598
606
  TS0201_battery: {
599
607
  cluster: "genPowerCfg",
600
608
  type: ["attributeReport", "readResponse"],
@@ -608,6 +616,7 @@ const fzLocal = {
608
616
  return fz.battery.convert(model, msg, publish, options, meta);
609
617
  },
610
618
  },
619
+ // biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
611
620
  TS0201_humidity: {
612
621
  ...fz.humidity,
613
622
  convert: (model, msg, publish, options, meta) => {
@@ -641,6 +650,7 @@ const fzLocal = {
641
650
  return result;
642
651
  },
643
652
  },
653
+ // biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
644
654
  TS011F_electrical_measurement: {
645
655
  ...fz.electrical_measurement,
646
656
  convert: async (model, msg, publish, options, meta) => {
@@ -682,6 +692,7 @@ const fzLocal = {
682
692
  return result;
683
693
  },
684
694
  },
695
+ // biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
685
696
  TS011F_threshold: {
686
697
  cluster: "manuSpecificTuya_3",
687
698
  type: "raw",
@@ -726,6 +737,7 @@ const fzLocal = {
726
737
  }
727
738
  },
728
739
  },
740
+ // biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
729
741
  PJ1203A_sync_time_increase_seq: {
730
742
  cluster: "manuSpecificTuya",
731
743
  type: ["commandMcuSyncTime"],
@@ -734,6 +746,7 @@ const fzLocal = {
734
746
  priv.last_seq += priv.seq_inc;
735
747
  },
736
748
  },
749
+ // biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
737
750
  PJ1203A_strict_fz_datapoints: {
738
751
  ...tuya.fz.datapoints,
739
752
  convert: (model, msg, publish, options, meta) => {
@@ -1723,7 +1736,7 @@ exports.definitions = [
1723
1736
  color: true,
1724
1737
  }),
1725
1738
  ],
1726
- configure: async (device, coordinatorEndpoint) => {
1739
+ configure: (device, coordinatorEndpoint) => {
1727
1740
  device.getEndpoint(1).saveClusterAttributeKeyValue("lightingColorCtrl", {
1728
1741
  colorCapabilities: 29,
1729
1742
  });
@@ -1741,7 +1754,7 @@ exports.definitions = [
1741
1754
  toZigbee: [tz.on_off, tzLocal.led_control, tuya.tz.do_not_disturb],
1742
1755
  fromZigbee: [fz.on_off, fz.tuya_led_controller, fz.brightness, fz.ignore_basic_report],
1743
1756
  exposes: [e.light_brightness_colortemp_colorhs([143, 500]).removeFeature("color_temp_startup"), tuya.exposes.doNotDisturb()],
1744
- configure: async (device, coordinatorEndpoint) => {
1757
+ configure: (device, coordinatorEndpoint) => {
1745
1758
  device.getEndpoint(1).saveClusterAttributeKeyValue("lightingColorCtrl", {
1746
1759
  colorCapabilities: 29,
1747
1760
  });
@@ -1762,7 +1775,7 @@ exports.definitions = [
1762
1775
  color: { modes: ["hs"], applyRedFix: true, enhancedHue: false },
1763
1776
  }),
1764
1777
  ],
1765
- configure: async (device, coordinatorEndpoint) => {
1778
+ configure: (device, coordinatorEndpoint) => {
1766
1779
  device.getEndpoint(1).saveClusterAttributeKeyValue("lightingColorCtrl", {
1767
1780
  colorCapabilities: 29,
1768
1781
  });
@@ -1777,7 +1790,7 @@ exports.definitions = [
1777
1790
  toZigbee: [tz.on_off, tzLocal.led_control, tuya.tz.do_not_disturb],
1778
1791
  fromZigbee: [fz.on_off, fz.tuya_led_controller, fz.brightness, fz.ignore_basic_report],
1779
1792
  exposes: [e.light_brightness_colortemp_colorhs([50, 1000]).removeFeature("color_temp_startup"), tuya.exposes.doNotDisturb()],
1780
- configure: async (device, coordinatorEndpoint) => {
1793
+ configure: (device, coordinatorEndpoint) => {
1781
1794
  device.getEndpoint(1).saveClusterAttributeKeyValue("lightingColorCtrl", {
1782
1795
  colorCapabilities: 29,
1783
1796
  });
@@ -3173,7 +3186,7 @@ exports.definitions = [
3173
3186
  tuya.whitelabel("Lidl", "14147206L", "Livarno Lux ceiling light", ["_TZ3000_rylaozuc", "_TZ3000_5fkufhn1"]),
3174
3187
  tuya.whitelabel("Lidl", "14153905L", "Livarno Home LED floor lamp", ["_TZ3000_8uaoilu9"]),
3175
3188
  ],
3176
- configure: async (device, coordinatorEndpoint) => {
3189
+ configure: (device, coordinatorEndpoint) => {
3177
3190
  device.getEndpoint(1).saveClusterAttributeKeyValue("lightingColorCtrl", {
3178
3191
  colorCapabilities: 16,
3179
3192
  });
@@ -3256,7 +3269,7 @@ exports.definitions = [
3256
3269
  tuya.whitelabel("Mycket", "MS-SP-LE27WRGB", "E27 RGBW bulb", ["_TZ3000_evag0pvn"]),
3257
3270
  tuya.whitelabel("Lidl", "HG06104A", "Livarno Home RGB+CCT LED light strip 2m", ["_TZ3000_riwp3k79", "_TZ3000_riwp3k79"]),
3258
3271
  ],
3259
- configure: async (device, coordinatorEndpoint) => {
3272
+ configure: (device, coordinatorEndpoint) => {
3260
3273
  device.getEndpoint(1).saveClusterAttributeKeyValue("lightingColorCtrl", {
3261
3274
  colorCapabilities: 29,
3262
3275
  });
@@ -3360,7 +3373,7 @@ exports.definitions = [
3360
3373
  },
3361
3374
  },
3362
3375
  {
3363
- fingerprint: tuya.fingerprint("TS011F", ["_TZ3000_bep7ccew"]),
3376
+ fingerprint: tuya.fingerprint("TS011F", ["_TZ3000_bep7ccew", "_TZ3000_gazjngjl"]),
3364
3377
  model: "TS011F_2_gang_power",
3365
3378
  vendor: "Tuya",
3366
3379
  description: "2 gang socket with power monitoring and USB",
@@ -3715,6 +3728,7 @@ exports.definitions = [
3715
3728
  if (options?.expose_device_state === true) {
3716
3729
  return v === true ? "ON" : "OFF";
3717
3730
  }
3731
+ // biome-ignore lint/performance/noDelete: ignored using `--suppress`
3718
3732
  delete meta.state.state;
3719
3733
  },
3720
3734
  },
@@ -4227,6 +4241,13 @@ exports.definitions = [
4227
4241
  },
4228
4242
  whiteLabel: [tuya.whitelabel("AVATTO", "ZWSM16-3-Zigbee", "3 gang switch module", ["_TZ3000_hbic3ka3"])],
4229
4243
  },
4244
+ {
4245
+ fingerprint: tuya.fingerprint("TS0003", ["_TZ3000_ju82pu2b"]),
4246
+ model: "TW-03",
4247
+ vendor: "Tuya",
4248
+ description: "3-Gang switch",
4249
+ extend: [tuya.modernExtend.tuyaOnOff({ powerOnBehavior2: true, endpoints: ["l1", "l2", "l3"] })],
4250
+ },
4230
4251
  {
4231
4252
  fingerprint: tuya.fingerprint("TS0003", ["_TZ3000_vsasbzkf", "_TZ3000_nnwehhst"]),
4232
4253
  model: "TS0003_switch_module_1",
@@ -5059,7 +5080,7 @@ exports.definitions = [
5059
5080
  e.binary("factory_reset", ea.SET, true, false).withDescription("Factory reset the device"),
5060
5081
  ],
5061
5082
  whiteLabel: [tuya.whitelabel("Moes", "AM43-0.45/40-ES-EB", "Roller blind/shades drive motor", ["_TZE200_zah67ekd", "_TZE200_icka1clh"])],
5062
- configure: async (device, coordinatorEndpoint) => {
5083
+ configure: (device, coordinatorEndpoint) => {
5063
5084
  device.powerSource = "Mains (single phase)";
5064
5085
  device.save();
5065
5086
  },
@@ -6288,7 +6309,7 @@ exports.definitions = [
6288
6309
  e.smoke(),
6289
6310
  e.battery(),
6290
6311
  tuya.exposes.silence(),
6291
- tuya.exposes.selfTest(),
6312
+ e.test(),
6292
6313
  e.numeric("smoke_concentration", ea.STATE).withUnit("ppm").withDescription("Parts per million of smoke detected"),
6293
6314
  e.binary("device_fault", ea.STATE, true, false).withDescription("Indicates a fault with the device"),
6294
6315
  ],
@@ -8815,7 +8836,7 @@ exports.definitions = [
8815
8836
  },
8816
8837
  },
8817
8838
  {
8818
- fingerprint: tuya.fingerprint("TS0601", ["_TZE204_qasjif9e", "_TZE204_ztqnh5cg", "_TZE204_iadro9bf"]),
8839
+ fingerprint: tuya.fingerprint("TS0601", ["_TZE204_qasjif9e", "_TZE204_ztqnh5cg", "_TZE204_iadro9bf", "_TZE284_iadro9bf"]),
8819
8840
  model: "ZY-M100-S_2",
8820
8841
  vendor: "Tuya",
8821
8842
  description: "Mini human breathe sensor",
@@ -12641,6 +12662,7 @@ exports.definitions = [
12641
12662
  if (options?.expose_device_state === true) {
12642
12663
  return v === true ? "ON" : "OFF";
12643
12664
  }
12665
+ // biome-ignore lint/performance/noDelete: ignored using `--suppress`
12644
12666
  delete meta.state.state;
12645
12667
  },
12646
12668
  },
@@ -15100,23 +15122,23 @@ exports.definitions = [
15100
15122
  tuya.valueConverter.thermostatSystemModeAndPresetMap({
15101
15123
  fromMap: {
15102
15124
  0: {
15103
- device_mode: "manual",
15104
- system_mode: "heat",
15125
+ deviceMode: "manual",
15126
+ systemMode: "heat",
15105
15127
  preset: "manual",
15106
15128
  },
15107
- 1: { device_mode: "auto", system_mode: "auto", preset: "auto" },
15129
+ 1: { deviceMode: "auto", systemMode: "auto", preset: "auto" },
15108
15130
  2: {
15109
- device_mode: "holiday",
15110
- system_mode: "heat",
15131
+ deviceMode: "holiday",
15132
+ systemMode: "heat",
15111
15133
  preset: "holiday",
15112
15134
  },
15113
15135
  3: {
15114
- device_mode: "comfort",
15115
- system_mode: "heat",
15136
+ deviceMode: "comfort",
15137
+ systemMode: "heat",
15116
15138
  preset: "comfort",
15117
15139
  },
15118
- 4: { device_mode: "eco", system_mode: "heat", preset: "eco" },
15119
- 5: { device_mode: "off", system_mode: "off", preset: "off" },
15140
+ 4: { deviceMode: "eco", systemMode: "heat", preset: "eco" },
15141
+ 5: { deviceMode: "off", systemMode: "off", preset: "off" },
15120
15142
  },
15121
15143
  }),
15122
15144
  ],