zigbee-herdsman-converters 21.0.0-pre.0 → 21.0.0-pre.2

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 (368) hide show
  1. package/CHANGELOG.md +191 -0
  2. package/converters/fromZigbee.d.ts +6 -7
  3. package/converters/fromZigbee.d.ts.map +1 -1
  4. package/converters/fromZigbee.js +58 -34
  5. package/converters/fromZigbee.js.map +1 -1
  6. package/converters/toZigbee.js +1 -1
  7. package/converters/toZigbee.js.map +1 -1
  8. package/devices/adeo.d.ts.map +1 -1
  9. package/devices/adeo.js +1 -2
  10. package/devices/adeo.js.map +1 -1
  11. package/devices/adurosmart.d.ts.map +1 -1
  12. package/devices/adurosmart.js +22 -2
  13. package/devices/adurosmart.js.map +1 -1
  14. package/devices/aeotec.js +1 -1
  15. package/devices/aeotec.js.map +1 -1
  16. package/devices/airam.d.ts.map +1 -1
  17. package/devices/airam.js +1 -13
  18. package/devices/airam.js.map +1 -1
  19. package/devices/amina.d.ts.map +1 -1
  20. package/devices/amina.js +1 -2
  21. package/devices/amina.js.map +1 -1
  22. package/devices/aurora_lighting.d.ts.map +1 -1
  23. package/devices/aurora_lighting.js +2 -3
  24. package/devices/aurora_lighting.js.map +1 -1
  25. package/devices/bitron.d.ts.map +1 -1
  26. package/devices/bitron.js +1 -2
  27. package/devices/bitron.js.map +1 -1
  28. package/devices/bosch.d.ts.map +1 -1
  29. package/devices/bosch.js +11 -10
  30. package/devices/bosch.js.map +1 -1
  31. package/devices/bticino.d.ts.map +1 -1
  32. package/devices/bticino.js +2 -3
  33. package/devices/bticino.js.map +1 -1
  34. package/devices/busch_jaeger.d.ts.map +1 -1
  35. package/devices/busch_jaeger.js +1 -11
  36. package/devices/busch_jaeger.js.map +1 -1
  37. package/devices/candeo.d.ts.map +1 -1
  38. package/devices/candeo.js +22 -72
  39. package/devices/candeo.js.map +1 -1
  40. package/devices/chacon.js +1 -1
  41. package/devices/chacon.js.map +1 -1
  42. package/devices/ctm.d.ts.map +1 -1
  43. package/devices/ctm.js +5 -8
  44. package/devices/ctm.js.map +1 -1
  45. package/devices/custom_devices_diy.d.ts.map +1 -1
  46. package/devices/custom_devices_diy.js +14 -11
  47. package/devices/custom_devices_diy.js.map +1 -1
  48. package/devices/danalock.d.ts.map +1 -1
  49. package/devices/danalock.js +1 -2
  50. package/devices/danalock.js.map +1 -1
  51. package/devices/danfoss.d.ts.map +1 -1
  52. package/devices/danfoss.js +1 -2
  53. package/devices/danfoss.js.map +1 -1
  54. package/devices/datek.d.ts.map +1 -1
  55. package/devices/datek.js +2 -4
  56. package/devices/datek.js.map +1 -1
  57. package/devices/develco.d.ts.map +1 -1
  58. package/devices/develco.js +17 -18
  59. package/devices/develco.js.map +1 -1
  60. package/devices/diyruz.d.ts.map +1 -1
  61. package/devices/diyruz.js +1 -2
  62. package/devices/diyruz.js.map +1 -1
  63. package/devices/dresden_elektronik.d.ts.map +1 -1
  64. package/devices/dresden_elektronik.js +3 -27
  65. package/devices/dresden_elektronik.js.map +1 -1
  66. package/devices/ecodim.d.ts.map +1 -1
  67. package/devices/ecodim.js +3 -4
  68. package/devices/ecodim.js.map +1 -1
  69. package/devices/ecozy.d.ts.map +1 -1
  70. package/devices/ecozy.js +1 -2
  71. package/devices/ecozy.js.map +1 -1
  72. package/devices/elko.js +3 -3
  73. package/devices/elko.js.map +1 -1
  74. package/devices/eurotronic.d.ts.map +1 -1
  75. package/devices/eurotronic.js +1 -2
  76. package/devices/eurotronic.js.map +1 -1
  77. package/devices/fantem.d.ts.map +1 -1
  78. package/devices/fantem.js +0 -1
  79. package/devices/fantem.js.map +1 -1
  80. package/devices/frient.js +1 -1
  81. package/devices/frient.js.map +1 -1
  82. package/devices/futurehome.d.ts.map +1 -1
  83. package/devices/futurehome.js +1 -2
  84. package/devices/futurehome.js.map +1 -1
  85. package/devices/gledopto.d.ts.map +1 -1
  86. package/devices/gledopto.js +44 -34
  87. package/devices/gledopto.js.map +1 -1
  88. package/devices/gmmts.d.ts.map +1 -1
  89. package/devices/gmmts.js +1 -2
  90. package/devices/gmmts.js.map +1 -1
  91. package/devices/heiman.d.ts.map +1 -1
  92. package/devices/heiman.js +3 -4
  93. package/devices/heiman.js.map +1 -1
  94. package/devices/heimgard_technologies.d.ts.map +1 -1
  95. package/devices/heimgard_technologies.js +5 -6
  96. package/devices/heimgard_technologies.js.map +1 -1
  97. package/devices/icasa.d.ts.map +1 -1
  98. package/devices/icasa.js +2 -25
  99. package/devices/icasa.js.map +1 -1
  100. package/devices/ikea.d.ts.map +1 -1
  101. package/devices/ikea.js +65 -60
  102. package/devices/ikea.js.map +1 -1
  103. package/devices/iluminize.d.ts.map +1 -1
  104. package/devices/iluminize.js +1 -2
  105. package/devices/iluminize.js.map +1 -1
  106. package/devices/immax.d.ts.map +1 -1
  107. package/devices/immax.js +3 -4
  108. package/devices/immax.js.map +1 -1
  109. package/devices/index.d.ts +1 -0
  110. package/devices/index.d.ts.map +1 -1
  111. package/devices/index.js +4 -0
  112. package/devices/index.js.map +1 -1
  113. package/devices/innr.d.ts.map +1 -1
  114. package/devices/innr.js +35 -35
  115. package/devices/innr.js.map +1 -1
  116. package/devices/inovelli.d.ts.map +1 -1
  117. package/devices/inovelli.js +3 -4
  118. package/devices/inovelli.js.map +1 -1
  119. package/devices/insta.d.ts.map +1 -1
  120. package/devices/insta.js +3 -12
  121. package/devices/insta.js.map +1 -1
  122. package/devices/javis.js +1 -1
  123. package/devices/javis.js.map +1 -1
  124. package/devices/jethome.d.ts.map +1 -1
  125. package/devices/jethome.js +1 -2
  126. package/devices/jethome.js.map +1 -1
  127. package/devices/kmpcil.d.ts.map +1 -1
  128. package/devices/kmpcil.js +1 -10
  129. package/devices/kmpcil.js.map +1 -1
  130. package/devices/konke.d.ts.map +1 -1
  131. package/devices/konke.js +2 -3
  132. package/devices/konke.js.map +1 -1
  133. package/devices/leedarson.d.ts.map +1 -1
  134. package/devices/leedarson.js +3 -11
  135. package/devices/leedarson.js.map +1 -1
  136. package/devices/legrand.d.ts.map +1 -1
  137. package/devices/legrand.js +31 -32
  138. package/devices/legrand.js.map +1 -1
  139. package/devices/leviton.d.ts.map +1 -1
  140. package/devices/leviton.js +1 -2
  141. package/devices/leviton.js.map +1 -1
  142. package/devices/lidl.d.ts.map +1 -1
  143. package/devices/lidl.js +1 -2
  144. package/devices/lidl.js.map +1 -1
  145. package/devices/lixee.d.ts.map +1 -1
  146. package/devices/lixee.js +1 -2
  147. package/devices/lixee.js.map +1 -1
  148. package/devices/lumi.d.ts.map +1 -1
  149. package/devices/lumi.js +25 -81
  150. package/devices/lumi.js.map +1 -1
  151. package/devices/lupus.d.ts.map +1 -1
  152. package/devices/lupus.js +3 -4
  153. package/devices/lupus.js.map +1 -1
  154. package/devices/lutron.d.ts.map +1 -1
  155. package/devices/lutron.js +7 -5
  156. package/devices/lutron.js.map +1 -1
  157. package/devices/lytko.d.ts.map +1 -1
  158. package/devices/lytko.js +6 -7
  159. package/devices/lytko.js.map +1 -1
  160. package/devices/meazon.d.ts.map +1 -1
  161. package/devices/meazon.js +2 -3
  162. package/devices/meazon.js.map +1 -1
  163. package/devices/moes.js +2 -2
  164. package/devices/moes.js.map +1 -1
  165. package/devices/muller_licht.d.ts.map +1 -1
  166. package/devices/muller_licht.js +5 -6
  167. package/devices/muller_licht.js.map +1 -1
  168. package/devices/namron.d.ts.map +1 -1
  169. package/devices/namron.js +18 -19
  170. package/devices/namron.js.map +1 -1
  171. package/devices/neo.d.ts.map +1 -1
  172. package/devices/neo.js +68 -0
  173. package/devices/neo.js.map +1 -1
  174. package/devices/net2grid.d.ts.map +1 -1
  175. package/devices/net2grid.js +1 -2
  176. package/devices/net2grid.js.map +1 -1
  177. package/devices/nodon.d.ts.map +1 -1
  178. package/devices/nodon.js +13 -14
  179. package/devices/nodon.js.map +1 -1
  180. package/devices/nue_3a.d.ts.map +1 -1
  181. package/devices/nue_3a.js +3 -4
  182. package/devices/nue_3a.js.map +1 -1
  183. package/devices/osram.d.ts.map +1 -1
  184. package/devices/osram.js +20 -27
  185. package/devices/osram.js.map +1 -1
  186. package/devices/owon.d.ts.map +1 -1
  187. package/devices/owon.js +2 -3
  188. package/devices/owon.js.map +1 -1
  189. package/devices/perenio.d.ts.map +1 -1
  190. package/devices/perenio.js +3 -4
  191. package/devices/perenio.js.map +1 -1
  192. package/devices/philips.d.ts.map +1 -1
  193. package/devices/philips.js +31 -16
  194. package/devices/philips.js.map +1 -1
  195. package/devices/pushok.d.ts.map +1 -1
  196. package/devices/pushok.js +13 -11
  197. package/devices/pushok.js.map +1 -1
  198. package/devices/salus_controls.d.ts.map +1 -1
  199. package/devices/salus_controls.js +9 -10
  200. package/devices/salus_controls.js.map +1 -1
  201. package/devices/saswell.d.ts.map +1 -1
  202. package/devices/saswell.js +2 -1
  203. package/devices/saswell.js.map +1 -1
  204. package/devices/schneider_electric.d.ts.map +1 -1
  205. package/devices/schneider_electric.js +117 -17
  206. package/devices/schneider_electric.js.map +1 -1
  207. package/devices/securifi.d.ts.map +1 -1
  208. package/devices/securifi.js +1 -2
  209. package/devices/securifi.js.map +1 -1
  210. package/devices/sengled.d.ts.map +1 -1
  211. package/devices/sengled.js +46 -27
  212. package/devices/sengled.js.map +1 -1
  213. package/devices/shinasystem.d.ts.map +1 -1
  214. package/devices/shinasystem.js +22 -23
  215. package/devices/shinasystem.js.map +1 -1
  216. package/devices/sinope.d.ts.map +1 -1
  217. package/devices/sinope.js +7 -9
  218. package/devices/sinope.js.map +1 -1
  219. package/devices/smartthings.d.ts.map +1 -1
  220. package/devices/smartthings.js +3 -10
  221. package/devices/smartthings.js.map +1 -1
  222. package/devices/somfy.d.ts.map +1 -1
  223. package/devices/somfy.js +2 -9
  224. package/devices/somfy.js.map +1 -1
  225. package/devices/sonoff.d.ts.map +1 -1
  226. package/devices/sonoff.js +240 -11
  227. package/devices/sonoff.js.map +1 -1
  228. package/devices/stelpro.d.ts.map +1 -1
  229. package/devices/stelpro.js +4 -5
  230. package/devices/stelpro.js.map +1 -1
  231. package/devices/sunricher.d.ts.map +1 -1
  232. package/devices/sunricher.js +23 -15
  233. package/devices/sunricher.js.map +1 -1
  234. package/devices/swann.d.ts.map +1 -1
  235. package/devices/swann.js +1 -2
  236. package/devices/swann.js.map +1 -1
  237. package/devices/sylvania.d.ts.map +1 -1
  238. package/devices/sylvania.js +2 -11
  239. package/devices/sylvania.js.map +1 -1
  240. package/devices/tech.d.ts +4 -0
  241. package/devices/tech.d.ts.map +1 -0
  242. package/devices/tech.js +118 -0
  243. package/devices/tech.js.map +1 -0
  244. package/devices/terncy.d.ts.map +1 -1
  245. package/devices/terncy.js +5 -7
  246. package/devices/terncy.js.map +1 -1
  247. package/devices/third_reality.d.ts.map +1 -1
  248. package/devices/third_reality.js +19 -20
  249. package/devices/third_reality.js.map +1 -1
  250. package/devices/tplink.js +1 -1
  251. package/devices/tplink.js.map +1 -1
  252. package/devices/trust.d.ts.map +1 -1
  253. package/devices/trust.js +1 -2
  254. package/devices/trust.js.map +1 -1
  255. package/devices/tuya.d.ts.map +1 -1
  256. package/devices/tuya.js +157 -83
  257. package/devices/tuya.js.map +1 -1
  258. package/devices/ubisys.d.ts.map +1 -1
  259. package/devices/ubisys.js +8 -9
  260. package/devices/ubisys.js.map +1 -1
  261. package/devices/uhome.d.ts.map +1 -1
  262. package/devices/uhome.js +1 -2
  263. package/devices/uhome.js.map +1 -1
  264. package/devices/viessmann.d.ts.map +1 -1
  265. package/devices/viessmann.js +1 -2
  266. package/devices/viessmann.js.map +1 -1
  267. package/devices/wirenboard.d.ts.map +1 -1
  268. package/devices/wirenboard.js +3 -4
  269. package/devices/wirenboard.js.map +1 -1
  270. package/devices/xyzroe.d.ts.map +1 -1
  271. package/devices/xyzroe.js +1 -4
  272. package/devices/xyzroe.js.map +1 -1
  273. package/devices/yandex.d.ts +4 -0
  274. package/devices/yandex.d.ts.map +1 -0
  275. package/devices/yandex.js +398 -0
  276. package/devices/yandex.js.map +1 -0
  277. package/devices/zen.d.ts.map +1 -1
  278. package/devices/zen.js +2 -4
  279. package/devices/zen.js.map +1 -1
  280. package/devices/zigbeetlc.d.ts +1 -0
  281. package/devices/zigbeetlc.d.ts.map +1 -1
  282. package/devices/zigbeetlc.js +3 -3
  283. package/devices/zigbeetlc.js.map +1 -1
  284. package/index.d.ts +8 -6
  285. package/index.d.ts.map +1 -1
  286. package/index.js +105 -58
  287. package/index.js.map +1 -1
  288. package/lib/exposes.d.ts +2 -3
  289. package/lib/exposes.d.ts.map +1 -1
  290. package/lib/exposes.js +11 -10
  291. package/lib/exposes.js.map +1 -1
  292. package/lib/ikea.d.ts +1 -49
  293. package/lib/ikea.d.ts.map +1 -1
  294. package/lib/ikea.js +3 -72
  295. package/lib/ikea.js.map +1 -1
  296. package/lib/ledvance.d.ts.map +1 -1
  297. package/lib/ledvance.js +5 -3
  298. package/lib/ledvance.js.map +1 -1
  299. package/lib/legacy.d.ts +203 -924
  300. package/lib/legacy.d.ts.map +1 -1
  301. package/lib/legacy.js +177 -1924
  302. package/lib/legacy.js.map +1 -1
  303. package/lib/lumi.d.ts +0 -142
  304. package/lib/lumi.d.ts.map +1 -1
  305. package/lib/lumi.js +6 -292
  306. package/lib/lumi.js.map +1 -1
  307. package/lib/modernExtend.d.ts +4 -7
  308. package/lib/modernExtend.d.ts.map +1 -1
  309. package/lib/modernExtend.js +71 -116
  310. package/lib/modernExtend.js.map +1 -1
  311. package/lib/ota.d.ts +71 -0
  312. package/lib/ota.d.ts.map +1 -0
  313. package/lib/ota.js +663 -0
  314. package/lib/ota.js.map +1 -0
  315. package/lib/philips.d.ts.map +1 -1
  316. package/lib/philips.js +2 -3
  317. package/lib/philips.js.map +1 -1
  318. package/lib/types.d.ts +55 -47
  319. package/lib/types.d.ts.map +1 -1
  320. package/lib/utils.d.ts +1 -2
  321. package/lib/utils.d.ts.map +1 -1
  322. package/lib/utils.js +1 -7
  323. package/lib/utils.js.map +1 -1
  324. package/package.json +26 -12
  325. package/lib/ota/common.d.ts +0 -31
  326. package/lib/ota/common.d.ts.map +0 -1
  327. package/lib/ota/common.js +0 -630
  328. package/lib/ota/common.js.map +0 -1
  329. package/lib/ota/gmmts.d.ts +0 -8
  330. package/lib/ota/gmmts.d.ts.map +0 -1
  331. package/lib/ota/gmmts.js +0 -62
  332. package/lib/ota/gmmts.js.map +0 -1
  333. package/lib/ota/index.d.ts +0 -15
  334. package/lib/ota/index.d.ts.map +0 -1
  335. package/lib/ota/index.js +0 -48
  336. package/lib/ota/index.js.map +0 -1
  337. package/lib/ota/inovelli.d.ts +0 -8
  338. package/lib/ota/inovelli.d.ts.map +0 -1
  339. package/lib/ota/inovelli.js +0 -91
  340. package/lib/ota/inovelli.js.map +0 -1
  341. package/lib/ota/jethome.d.ts +0 -9
  342. package/lib/ota/jethome.d.ts.map +0 -1
  343. package/lib/ota/jethome.js +0 -92
  344. package/lib/ota/jethome.js.map +0 -1
  345. package/lib/ota/ledvance.d.ts +0 -11
  346. package/lib/ota/ledvance.d.ts.map +0 -1
  347. package/lib/ota/ledvance.js +0 -75
  348. package/lib/ota/ledvance.js.map +0 -1
  349. package/lib/ota/salus.d.ts +0 -11
  350. package/lib/ota/salus.d.ts.map +0 -1
  351. package/lib/ota/salus.js +0 -99
  352. package/lib/ota/salus.js.map +0 -1
  353. package/lib/ota/securifi.d.ts +0 -4
  354. package/lib/ota/securifi.d.ts.map +0 -1
  355. package/lib/ota/securifi.js +0 -48
  356. package/lib/ota/securifi.js.map +0 -1
  357. package/lib/ota/tradfri.d.ts +0 -13
  358. package/lib/ota/tradfri.d.ts.map +0 -1
  359. package/lib/ota/tradfri.js +0 -72
  360. package/lib/ota/tradfri.js.map +0 -1
  361. package/lib/ota/ubisys.d.ts +0 -20
  362. package/lib/ota/ubisys.d.ts.map +0 -1
  363. package/lib/ota/ubisys.js +0 -93
  364. package/lib/ota/ubisys.js.map +0 -1
  365. package/lib/ota/zigbeeOTA.d.ts +0 -12
  366. package/lib/ota/zigbeeOTA.d.ts.map +0 -1
  367. package/lib/ota/zigbeeOTA.js +0 -143
  368. package/lib/ota/zigbeeOTA.js.map +0 -1
package/devices/tuya.js CHANGED
@@ -34,7 +34,6 @@ const exposes = __importStar(require("../lib/exposes"));
34
34
  const legacy = __importStar(require("../lib/legacy"));
35
35
  const logger_1 = require("../lib/logger");
36
36
  const modernExtend_1 = require("../lib/modernExtend");
37
- const ota = __importStar(require("../lib/ota"));
38
37
  const reporting = __importStar(require("../lib/reporting"));
39
38
  const globalStore = __importStar(require("../lib/store"));
40
39
  const tuya = __importStar(require("../lib/tuya"));
@@ -860,7 +859,7 @@ const definitions = [
860
859
  model: 'TS0218',
861
860
  vendor: 'Tuya',
862
861
  description: 'Button',
863
- fromZigbee: [legacy.fromZigbee.TS0218_click, fromZigbee_1.default.battery],
862
+ fromZigbee: [fromZigbee_1.default.command_emergency, fromZigbee_1.default.battery],
864
863
  exposes: [e.battery(), e.action(['click'])],
865
864
  toZigbee: [],
866
865
  },
@@ -1263,7 +1262,7 @@ const definitions = [
1263
1262
  description: 'Illuminance, temperature & humidity sensor',
1264
1263
  fromZigbee: [legacy.fromZigbee.tuya_illuminance_temperature_humidity_sensor],
1265
1264
  toZigbee: [],
1266
- exposes: [e.temperature(), e.humidity(), e.illuminance_lux(), e.battery()],
1265
+ exposes: [e.temperature(), e.humidity(), e.illuminance(), e.battery()],
1267
1266
  },
1268
1267
  {
1269
1268
  fingerprint: [
@@ -1316,7 +1315,7 @@ const definitions = [
1316
1315
  ],
1317
1316
  },
1318
1317
  {
1319
- fingerprint: tuya.fingerprint('TS0601', ['_TZE200_ogkdpgy2', '_TZE200_3ejwxpmu']),
1318
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_ogkdpgy2', '_TZE204_ogkdpgy2', '_TZE200_3ejwxpmu']),
1320
1319
  model: 'TS0601_co2_sensor',
1321
1320
  vendor: 'Tuya',
1322
1321
  description: 'NDIR co2 sensor',
@@ -1502,7 +1501,7 @@ const definitions = [
1502
1501
  model: 'TS011F_2_gang_wall',
1503
1502
  vendor: 'Tuya',
1504
1503
  description: '2 gang wall outlet',
1505
- ota: ota.zigbeeOTA,
1504
+ ota: true,
1506
1505
  extend: [tuya.modernExtend.tuyaOnOff({ backlightModeLowMediumHigh: true, childLock: true, endpoints: ['l1', 'l2'] })],
1507
1506
  whiteLabel: [
1508
1507
  tuya.whitelabel('ClickSmart+', 'CMA30036', '2 gang socket outlet', ['_TYZB01_hlla45kx']),
@@ -1584,10 +1583,11 @@ const definitions = [
1584
1583
  tuya.whitelabel('Tuya', 'HG08007', 'Livarno Home outdoor LED band', ['_TZ3210_zbabx9wh']),
1585
1584
  tuya.whitelabel('Lidl', '14158704L', 'Livarno Home LED floor lamp, RGBW', ['_TZ3210_z1vlyufu']),
1586
1585
  tuya.whitelabel('Lidl', '14158804L', 'Livarno Home LED desk lamp RGBW', ['_TZ3210_hxtfthp5']),
1587
- tuya.whitelabel('Lidl', 'HG07834A/HG09155A', 'Livarno Lux GU10 spot RGB', ['_TZ3000_quqaeew6']),
1588
- tuya.whitelabel('Lidl', 'HG07834B', 'Livarno Lux E14 candle RGB', ['_TZ3000_th6zqqy6', '_TZ3000_wr6g6olr']),
1586
+ tuya.whitelabel('Lidl', 'HG07834A/HG09155A/HG08131A', 'Livarno Home GU10 spot RGB+CCT', ['_TZ3000_quqaeew6']),
1587
+ tuya.whitelabel('Lidl', 'HG07834B/HG08131B', 'Livarno Home E14 candle RGB+CCT', ['_TZ3000_th6zqqy6']),
1588
+ tuya.whitelabel('Lidl', 'HG07834B', 'Livarno Home E14 candle RGB+CCT', ['_TZ3000_wr6g6olr']),
1589
1589
  tuya.whitelabel('Lidl', 'HG08131C', 'Livarno Home outdoor E27 bulb in set with flare', ['_TZ3000_q50zhdsc']),
1590
- tuya.whitelabel('Lidl', 'HG07834C', 'Livarno Lux E27 bulb RGB', ['_TZ3000_qd7hej8u']),
1590
+ tuya.whitelabel('Lidl', 'HG07834C/HG08131C', 'Livarno Home E27 bulb RGB+CCT', ['_TZ3000_qd7hej8u']),
1591
1591
  tuya.whitelabel('MiBoxer', 'FUT037Z+', 'RGB led controller', ['_TZB210_417ikxay', '_TZB210_wxazcmsh']),
1592
1592
  tuya.whitelabel('Lidl', 'HG08383B', 'Livarno outdoor LED light chain', ['_TZ3000_bwlvyjwk']),
1593
1593
  tuya.whitelabel('Lidl', 'HG08383A', 'Livarno outdoor LED light chain', ['_TZ3000_taspddvq']),
@@ -1709,7 +1709,7 @@ const definitions = [
1709
1709
  toZigbee: [],
1710
1710
  onEvent: tuya.onEventSetTime,
1711
1711
  configure: tuya.configureMagicPacket,
1712
- exposes: [e.occupancy(), e.battery_low(), e.battery(), e.tamper(), e.illuminance_lux()],
1712
+ exposes: [e.occupancy(), e.battery_low(), e.battery(), e.tamper(), e.illuminance()],
1713
1713
  },
1714
1714
  {
1715
1715
  fingerprint: tuya.fingerprint('TS0202', ['_TZ3210_cwamkvua']),
@@ -1889,7 +1889,7 @@ const definitions = [
1889
1889
  exposes: [],
1890
1890
  },
1891
1891
  {
1892
- zigbeeModel: ['TS0207', 'FNB54-WTS08ML1.0'],
1892
+ zigbeeModel: ['TS0207', 'FNB54-WTS08ML1.0', 'SNZB-05'],
1893
1893
  model: 'TS0207_water_leak_detector',
1894
1894
  vendor: 'Tuya',
1895
1895
  description: 'Water leak detector',
@@ -1897,8 +1897,11 @@ const definitions = [
1897
1897
  whiteLabel: [
1898
1898
  { vendor: 'CR Smart Home', model: 'TS0207' },
1899
1899
  tuya.whitelabel('Meian', 'SW02', 'Water leak sensor', ['_TZ3000_kyb656no']),
1900
- tuya.whitelabel('Aubess', 'IH-K665', 'Water leak sensor', ['_TZ3000_k4ej3ww2', '_TZ3000_kstbkt6a', '_TZ3000_upgcbody']),
1901
- tuya.whitelabel('Tuya', 'TS0207_water_leak_detector_1', 'Zigbee water flood sensor + 1m probe cable', ['_TZ3000_ocjlo4ea']),
1900
+ tuya.whitelabel('Aubess', 'IH-K665', 'Water leak sensor', ['_TZ3000_k4ej3ww2', '_TZ3000_kstbkt6a']),
1901
+ tuya.whitelabel('Tuya', 'TS0207_water_leak_detector_1', 'Zigbee water flood sensor + 1m probe cable', [
1902
+ '_TZ3000_ocjlo4ea',
1903
+ '_TZ3000_upgcbody',
1904
+ ]),
1902
1905
  tuya.whitelabel('Tuya', 'TS0207_water_leak_detector_3', 'Zigbee water leak sensor', ['_TYZB01_sqmd19i1']),
1903
1906
  tuya.whitelabel('Tuya', '899WZ', 'Water leak detector with 80DB Alarm', ['_TZ3000_mugyhz0q']),
1904
1907
  tuya.whitelabel('Niceboy', 'ORBIS Water Sensor', 'Water leak sensor', ['_TZ3000_awvmkayh']),
@@ -2551,7 +2554,7 @@ const definitions = [
2551
2554
  const endpoint = device.getEndpoint(1);
2552
2555
  await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic']);
2553
2556
  },
2554
- exposes: [e.battery(), e.illuminance_lux(), e.linkquality(), e.enum('brightness_level', ea.STATE, ['LOW', 'MEDIUM', 'HIGH'])],
2557
+ exposes: [e.battery(), e.illuminance(), e.linkquality(), e.enum('brightness_level', ea.STATE, ['LOW', 'MEDIUM', 'HIGH'])],
2555
2558
  },
2556
2559
  {
2557
2560
  zigbeeModel: ['TS130F'],
@@ -2596,12 +2599,12 @@ const definitions = [
2596
2599
  },
2597
2600
  },
2598
2601
  {
2599
- fingerprint: [{ modelID: 'TS130F', manufacturerName: '_TZ3000_1dd0d5yi' }],
2602
+ fingerprint: tuya.fingerprint('TS130F', ['_TZ3210_dwytrmda', '_TZ3000_1dd0d5yi']),
2600
2603
  model: 'MS-108ZR',
2601
2604
  vendor: 'Moes',
2602
2605
  description: 'Zigbee + RF curtain switch module',
2603
- whiteLabel: [tuya.whitelabel('QA', 'QACZ1', 'Curtain switch', ['_TZ3210_xbpt8ewc'])],
2604
- ota: ota.zigbeeOTA,
2606
+ whiteLabel: [tuya.whitelabel('Girier', 'TS130F_GIRIER', 'Smart curtain switch', ['_TZ3210_dwytrmda'])],
2607
+ ota: true,
2605
2608
  meta: { coverInverted: true },
2606
2609
  fromZigbee: [fromZigbee_1.default.tuya_cover_options, fromZigbee_1.default.cover_position_tilt],
2607
2610
  toZigbee: [toZigbee_1.default.cover_state, toZigbee_1.default.moes_cover_calibration, toZigbee_1.default.cover_position_tilt, toZigbee_1.default.tuya_cover_reversal],
@@ -2733,7 +2736,7 @@ const definitions = [
2733
2736
  },
2734
2737
  },
2735
2738
  {
2736
- fingerprint: tuya.fingerprint('TS0601', ['_TZE200_mwvfvw8g', '_TZE200_wnp4d4va', '_TZE200_cduqh1l0', '_TZE200_emxxanvi']),
2739
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE200_mwvfvw8g', '_TZE200_wnp4d4va', '_TZE200_cduqh1l0', '_TZE200_emxxanvi', '_TZE204_g4au0afs']),
2737
2740
  model: 'TS0601_switch_6_gang',
2738
2741
  vendor: 'Tuya',
2739
2742
  description: '6 gang switch',
@@ -2771,7 +2774,7 @@ const definitions = [
2771
2774
  },
2772
2775
  },
2773
2776
  {
2774
- fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ojtqawav', '_TZE204_gbagoilo']),
2777
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ojtqawav', '_TZE204_gbagoilo', '_TZE200_ojtqawav']),
2775
2778
  model: 'TS0601_switch_1_gang',
2776
2779
  vendor: 'Tuya',
2777
2780
  description: '1 gang switch',
@@ -3056,6 +3059,7 @@ const definitions = [
3056
3059
  toZigbee: [],
3057
3060
  exposes: [e.battery(), e.temperature(), e.humidity(), e.battery_voltage()],
3058
3061
  configure: tuya.configureMagicPacket,
3062
+ ota: true,
3059
3063
  whiteLabel: [
3060
3064
  { vendor: 'BlitzWolf', model: 'BW-IS4' },
3061
3065
  tuya.whitelabel('Tuya', 'TS0201_1', 'Zigbee 3.0 temperature humidity sensor with display', ['_TZ3210_alxkwn0h']),
@@ -3221,6 +3225,7 @@ const definitions = [
3221
3225
  { vendor: 'Haozee', model: 'ESW-OZAA-EU' },
3222
3226
  { vendor: 'LoraTap', model: 'SS6400ZB' },
3223
3227
  { vendor: 'Moes', model: 'ZT-SY-EU-G-4S-WH-MS' },
3228
+ { vendor: 'Nedis', model: 'ZBWS40WT' },
3224
3229
  tuya.whitelabel('Moes', 'ZT-SR-EU4', 'Star Ring 4 Gang Scene Switch', ['_TZ3000_a4xycprs']),
3225
3230
  tuya.whitelabel('Tuya', 'TS0044_1', 'Zigbee 4 button remote - 12 scene', ['_TZ3000_dziaict4', '_TZ3000_mh9px7cq', '_TZ3000_j61x9rxn']),
3226
3231
  tuya.whitelabel('Tuya', 'TM-YKQ004', 'Zigbee 4 button remote - 12 scene', ['_TZ3000_u3nv1jwk']),
@@ -3970,6 +3975,7 @@ const definitions = [
3970
3975
  { modelID: 'TS0601', manufacturerName: '_TZE204_1fuxihti' },
3971
3976
  { modelID: 'TS0601', manufacturerName: '_TZE204_57hjqelq' },
3972
3977
  { modelID: 'TS0601', manufacturerName: '_TZE204_m1wl5fvq' },
3978
+ { modelID: 'TS0601', manufacturerName: '_TZE200_en3wvcbx' },
3973
3979
  // Roller blinds:
3974
3980
  { modelID: 'TS0601', manufacturerName: '_TZE200_fctwhugx' },
3975
3981
  { modelID: 'TS0601', manufacturerName: '_TZE200_hsgrhjpf' },
@@ -4194,6 +4200,7 @@ const definitions = [
4194
4200
  { modelID: 'TS0601', manufacturerName: '_TZE200_lpwgshtl' },
4195
4201
  { modelID: 'TS0601', manufacturerName: '_TZE200_rk1wojce' }, // Emos P5630S
4196
4202
  { modelID: 'TS0601', manufacturerName: '_TZE200_rndg81sf' },
4203
+ { modelID: 'TS0601', manufacturerName: '_TZE200_qjp4ynvi' },
4197
4204
  ],
4198
4205
  model: 'TS0601_thermostat',
4199
4206
  vendor: 'Tuya',
@@ -4209,7 +4216,7 @@ const definitions = [
4209
4216
  tuya.whitelabel('Emos', 'P5630S', 'Radiator valve with thermostat', ['_TZE200_rk1wojce']),
4210
4217
  ],
4211
4218
  meta: { tuyaThermostatPreset: legacy.thermostatPresets, tuyaThermostatSystemMode: legacy.thermostatSystemModes3 },
4212
- ota: ota.zigbeeOTA,
4219
+ ota: true,
4213
4220
  onEvent: tuya.onEventSetLocalTime,
4214
4221
  fromZigbee: [legacy.fromZigbee.tuya_thermostat, fromZigbee_1.default.ignore_basic_report, fromZigbee_1.default.ignore_tuya_set_time],
4215
4222
  toZigbee: [
@@ -4485,7 +4492,7 @@ const definitions = [
4485
4492
  tuya.whitelabel('Moes', 'TV01-ZB', 'Thermostat radiator valve', ['_TZE200_e9ba97vf']),
4486
4493
  tuya.whitelabel('AlecoAir', 'HA-08_THERMO', 'Thermostat radiator valve', ['_TZE200_wsbfwodu']),
4487
4494
  ],
4488
- ota: ota.zigbeeOTA,
4495
+ ota: true,
4489
4496
  fromZigbee: [tuya.fz.datapoints],
4490
4497
  toZigbee: [tuya.tz.datapoints],
4491
4498
  onEvent: tuya.onEventSetLocalTime,
@@ -4640,11 +4647,16 @@ const definitions = [
4640
4647
  fingerprint: tuya.fingerprint('TS0601', [
4641
4648
  '_TZE200_bvu2wnxz' /* model: 'ME167', vendor: 'AVATTO' */,
4642
4649
  '_TZE200_6rdj8dzm' /* model: 'ME167', vendor: 'AVATTO' */,
4650
+ '_TZE200_9xfjixap' /* model: 'ME167', vendor: 'AVATTO' */,
4643
4651
  '_TZE200_p3dbf6qs' /* model: 'ME168', vendor: 'AVATTO' */,
4644
4652
  '_TZE200_rxntag7i' /* model: 'ME168', vendor: 'AVATTO' */,
4645
4653
  '_TZE200_yqgbrdyo',
4654
+ '_TZE284_p3dbf6qs',
4646
4655
  '_TZE200_rxq4iti9',
4647
4656
  '_TZE200_hvaxb2tc' /* model: 'TRV06', vendor: 'AVATTO' */,
4657
+ '_TZE284_o3x45p96' /* model: 'TRV06', vendor: 'AVATTO' */,
4658
+ '_TZE284_c6wv4xyo' /* model: 'AVATTO_TRV06', vendor: 'AVATTO_TRV06' */,
4659
+ '_TZE204_o3x45p96' /* model: 'AVATTO_TRV06', vendor: 'AVATTO_TRV06' */,
4648
4660
  ]),
4649
4661
  model: 'TS0601_thermostat_3',
4650
4662
  vendor: 'Tuya',
@@ -4652,10 +4664,11 @@ const definitions = [
4652
4664
  fromZigbee: [tuya.fz.datapoints],
4653
4665
  toZigbee: [tuya.tz.datapoints],
4654
4666
  whiteLabel: [
4655
- tuya.whitelabel('AVATTO', 'ME167', 'Thermostatic radiator valve', ['_TZE200_bvu2wnxz', '_TZE200_6rdj8dzm']),
4667
+ tuya.whitelabel('AVATTO', 'ME167', 'Thermostatic radiator valve', ['_TZE200_bvu2wnxz', '_TZE200_6rdj8dzm', '_TZE200_9xfjixap']),
4656
4668
  tuya.whitelabel('AVATTO', 'ME168', 'Thermostatic radiator valve', ['_TZE200_p3dbf6qs', '_TZE200_rxntag7i']),
4657
- tuya.whitelabel('AVATTO', 'TRV06_1', 'Thermostatic radiator valve', ['_TZE200_hvaxb2tc']),
4669
+ tuya.whitelabel('AVATTO', 'TRV06_1', 'Thermostatic radiator valve', ['_TZE200_hvaxb2tc', '_TZE284_o3x45p96']),
4658
4670
  tuya.whitelabel('EARU', 'TRV06', 'Smart thermostat module', ['_TZE200_yqgbrdyo', '_TZE200_rxq4iti9']),
4671
+ tuya.whitelabel('AVATTO', 'AVATTO_TRV06', 'Thermostatic radiator valve', ['_TZE284_c6wv4xyo', '_TZE204_o3x45p96']),
4659
4672
  ],
4660
4673
  onEvent: tuya.onEventSetTime,
4661
4674
  configure: tuya.configureMagicPacket,
@@ -4785,7 +4798,7 @@ const definitions = [
4785
4798
  vendor: 'ETOP',
4786
4799
  description: 'Wall-mount thermostat',
4787
4800
  fromZigbee: [
4788
- legacy.fromZigbee.tuya_thermostat_weekly_schedule_1,
4801
+ legacy.fromZigbee.tuya_thermostat_weekly_schedule_2,
4789
4802
  legacy.fromZigbee.etop_thermostat,
4790
4803
  fromZigbee_1.default.ignore_basic_report,
4791
4804
  fromZigbee_1.default.ignore_tuya_set_time,
@@ -4825,7 +4838,7 @@ const definitions = [
4825
4838
  vendor: 'ETOP',
4826
4839
  description: 'Radiator valve',
4827
4840
  fromZigbee: [
4828
- legacy.fromZigbee.tuya_thermostat_weekly_schedule_1,
4841
+ legacy.fromZigbee.tuya_thermostat_weekly_schedule_2,
4829
4842
  legacy.fromZigbee.etop_thermostat,
4830
4843
  fromZigbee_1.default.ignore_basic_report,
4831
4844
  fromZigbee_1.default.ignore_tuya_set_time,
@@ -5280,8 +5293,9 @@ const definitions = [
5280
5293
  tuya.whitelabel('Moes', 'ZK-EU', 'Smart wallsocket (with power monitoring)', ['_TZ3000_ss98ec5d']),
5281
5294
  tuya.whitelabel('Nous', 'A1Z', 'Smart plug (with power monitoring)', ['_TZ3000_ksw8qtmt']),
5282
5295
  tuya.whitelabel('Elivco', 'LSPA9', 'Smart plug (with power monitoring)', ['_TZ3000_okaz9tjs']),
5296
+ tuya.whitelabel('PSMART', 'T440', 'Smart wallsocket (with power monitoring)', ['_TZ3000_y4ona9me']),
5283
5297
  ],
5284
- ota: ota.zigbeeOTA,
5298
+ ota: true,
5285
5299
  extend: [
5286
5300
  tuya.modernExtend.tuyaOnOff({
5287
5301
  electricalMeasurements: true,
@@ -5350,7 +5364,7 @@ const definitions = [
5350
5364
  { vendor: 'Neo', model: 'PLUG-001SPB2' },
5351
5365
  tuya.whitelabel('Tuya', 'BSD29_1', 'Smart plug (with power monitoring by polling)', ['_TZ3000_okaz9tjs']),
5352
5366
  ],
5353
- ota: ota.zigbeeOTA,
5367
+ ota: true,
5354
5368
  extend: [tuya.modernExtend.tuyaOnOff({ electricalMeasurements: true, powerOutageMemory: true, indicatorMode: true, childLock: true })],
5355
5369
  configure: async (device, coordinatorEndpoint) => {
5356
5370
  await tuya.configureMagicPacket(device, coordinatorEndpoint);
@@ -6512,7 +6526,7 @@ const definitions = [
6512
6526
  model: 'U86KWF-ZPSJ',
6513
6527
  vendor: 'Tuya',
6514
6528
  description: 'Environment controller',
6515
- fromZigbee: [legacy.fromZigbee.thermostat_att_report, fromZigbee_1.default.fan],
6529
+ fromZigbee: [fromZigbee_1.default.thermostat, fromZigbee_1.default.fan],
6516
6530
  toZigbee: [
6517
6531
  toZigbee_1.default.thermostat_local_temperature,
6518
6532
  toZigbee_1.default.thermostat_local_temperature_calibration,
@@ -6793,7 +6807,7 @@ const definitions = [
6793
6807
  tuya.valueConverterBasic.lookup((_, device) => {
6794
6808
  // https://github.com/Koenkk/zigbee2mqtt/issues/21353#issuecomment-1938328429
6795
6809
  if (device.manufacturerName === '_TZE200_viy9ihs7') {
6796
- return { auto: tuya.enum(1), manual: tuya.enum(0), temporary_manual: tuya.enum(2) };
6810
+ return { auto: tuya.enum(0), manual: tuya.enum(1), temporary_manual: tuya.enum(2) };
6797
6811
  }
6798
6812
  else {
6799
6813
  return { auto: tuya.enum(0), manual: tuya.enum(1), temporary_manual: tuya.enum(2) };
@@ -6924,14 +6938,15 @@ const definitions = [
6924
6938
  whiteLabel: [tuya.whitelabel('Tuya', 'QT-07S', 'Soil sensor', ['_TZE204_myd45weu'])],
6925
6939
  },
6926
6940
  {
6927
- fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_8uxxzz4b', '_TZ3000_hy6ncvmw']),
6941
+ fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_8uxxzz4b', '_TZ3000_hy6ncvmw', '_TZ3000_9kbbfeho']),
6928
6942
  model: 'TS0222_light',
6929
6943
  vendor: 'Tuya',
6930
6944
  description: 'Light sensor',
6931
6945
  fromZigbee: [fromZigbee_1.default.battery, fromZigbee_1.default.illuminance],
6932
6946
  toZigbee: [],
6933
6947
  configure: tuya.configureMagicPacket,
6934
- exposes: [e.battery(), e.illuminance(), e.illuminance_lux()],
6948
+ exposes: [e.battery(), e.illuminance()],
6949
+ whiteLabel: [tuya.whitelabel('Moes', 'ZSS-QT-LS-C', 'Light sensor', ['_TZ3000_9kbbfeho'])],
6935
6950
  },
6936
6951
  {
6937
6952
  fingerprint: tuya.fingerprint('TS0222', ['_TZ3000_t9qqxn70']),
@@ -6941,7 +6956,7 @@ const definitions = [
6941
6956
  fromZigbee: [fromZigbee_1.default.humidity, fromZigbee_1.default.battery, fromZigbee_1.default.temperature, fromZigbee_1.default.illuminance],
6942
6957
  toZigbee: [],
6943
6958
  configure: tuya.configureMagicPacket,
6944
- exposes: [e.battery(), e.temperature(), e.humidity(), e.illuminance_lux()],
6959
+ exposes: [e.battery(), e.temperature(), e.humidity(), e.illuminance()],
6945
6960
  },
6946
6961
  {
6947
6962
  fingerprint: [
@@ -6953,7 +6968,7 @@ const definitions = [
6953
6968
  description: 'Light intensity sensor',
6954
6969
  fromZigbee: [fromZigbee_1.default.battery, fromZigbee_1.default.illuminance, legacy.fromZigbee.TS0222],
6955
6970
  toZigbee: [],
6956
- exposes: [e.battery(), e.illuminance(), e.illuminance_lux()],
6971
+ exposes: [e.battery(), e.illuminance()],
6957
6972
  configure: tuya.configureMagicPacket,
6958
6973
  },
6959
6974
  {
@@ -7020,7 +7035,7 @@ const definitions = [
7020
7035
  ],
7021
7036
  toZigbee: [toZigbee_1.default.on_off, tuya.tz.power_on_behavior_1, toZigbee_1.default.tuya_relay_din_led_indicator],
7022
7037
  whiteLabel: [{ vendor: 'MatSee Plus', model: 'ATMS1602Z' }],
7023
- ota: ota.zigbeeOTA,
7038
+ ota: true,
7024
7039
  configure: async (device, coordinatorEndpoint) => {
7025
7040
  const endpoint = device.getEndpoint(1);
7026
7041
  await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'seMetering']);
@@ -7060,7 +7075,7 @@ const definitions = [
7060
7075
  tuya.whitelabel('Tongou', 'TO-Q-SY1-JZT', 'Din smart relay (with power monitoring via polling)', ['_TZ3000_qeuvnohg']),
7061
7076
  tuya.whitelabel('TOMZN', 'TOB9Z-63M', 'Din smart relay (with power monitoring via polling)', ['_TZ3000_6l1pjfqe']),
7062
7077
  ],
7063
- ota: ota.zigbeeOTA,
7078
+ ota: true,
7064
7079
  configure: async (device, coordinatorEndpoint) => {
7065
7080
  const endpoint = device.getEndpoint(1);
7066
7081
  await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'seMetering']);
@@ -7194,7 +7209,6 @@ const definitions = [
7194
7209
  e.humidity(),
7195
7210
  e.battery(),
7196
7211
  e.illuminance(),
7197
- e.illuminance_lux(),
7198
7212
  e
7199
7213
  .numeric('alarm_temperature_max', ea.STATE_SET)
7200
7214
  .withUnit('°C')
@@ -7247,7 +7261,7 @@ const definitions = [
7247
7261
  await tuya.configureMagicPacket(device, coordinatorEndpoint);
7248
7262
  },
7249
7263
  exposes: [
7250
- e.illuminance_lux(),
7264
+ e.illuminance(),
7251
7265
  e.presence(),
7252
7266
  e.occupancy(),
7253
7267
  e.numeric('motion_speed', ea.STATE).withDescription('Speed of movement'),
@@ -7285,7 +7299,7 @@ const definitions = [
7285
7299
  [1, 'presence', tuya.valueConverter.trueFalse1],
7286
7300
  [2, 'radar_sensitivity', tuya.valueConverter.raw],
7287
7301
  [102, 'occupancy', tuya.valueConverter.trueFalse1],
7288
- [103, 'illuminance_lux', tuya.valueConverter.raw],
7302
+ [103, 'illuminance', tuya.valueConverter.raw],
7289
7303
  [105, 'tumble_switch', tuya.valueConverter.plus1],
7290
7304
  [106, 'tumble_alarm_time', tuya.valueConverter.raw],
7291
7305
  [112, 'radar_scene', tuya.valueConverterBasic.lookup({ default: 0, area: 1, toilet: 2, bedroom: 3, parlour: 4, office: 5, hotel: 6 })],
@@ -7519,7 +7533,7 @@ const definitions = [
7519
7533
  description: 'Illuminance sensor',
7520
7534
  fromZigbee: [legacy.fromZigbee.tuya_illuminance_sensor],
7521
7535
  toZigbee: [],
7522
- exposes: [e.illuminance_lux(), e.brightness_state()],
7536
+ exposes: [e.illuminance(), e.brightness_state()],
7523
7537
  },
7524
7538
  {
7525
7539
  fingerprint: [
@@ -7610,7 +7624,7 @@ const definitions = [
7610
7624
  tuya.whitelabel('Moes', 'ZSS-QY-HP', 'Human presence sensor', ['_TZE204_fwondbzy']),
7611
7625
  ],
7612
7626
  exposes: [
7613
- e.illuminance_lux(),
7627
+ e.illuminance(),
7614
7628
  e.presence(),
7615
7629
  e.numeric('target_distance', ea.STATE).withDescription('Distance to target').withUnit('m'),
7616
7630
  e.numeric('radar_sensitivity', ea.STATE_SET).withValueMin(0).withValueMax(9).withValueStep(1).withDescription('sensitivity of the radar'),
@@ -7674,7 +7688,7 @@ const definitions = [
7674
7688
  configure: tuya.configureMagicPacket,
7675
7689
  exposes: [
7676
7690
  e.presence(),
7677
- e.illuminance_lux(),
7691
+ e.illuminance(),
7678
7692
  e.numeric('keep_sensitivity', ea.STATE_SET).withValueMin(0).withValueMax(10).withValueStep(1).withDescription('Keep sensitivity'),
7679
7693
  e.numeric('trigger_sensitivity', ea.STATE_SET).withValueMin(1).withValueMax(20).withValueStep(1).withDescription('Trigger sensitivity'),
7680
7694
  e
@@ -7690,7 +7704,7 @@ const definitions = [
7690
7704
  tuyaDatapoints: [
7691
7705
  [1, 'presence', tuya.valueConverter.trueFalse1],
7692
7706
  [102, 'fading_time', tuya.valueConverter.raw],
7693
- [103, 'illuminance_lux', tuya.valueConverter.raw],
7707
+ [103, 'illuminance', tuya.valueConverter.raw],
7694
7708
  [110, 'keep_sensitivity', tuya.valueConverter.raw],
7695
7709
  [114, 'trigger_sensitivity', tuya.valueConverter.raw],
7696
7710
  [182, 'target_distance', tuya.valueConverter.divideBy10],
@@ -7707,7 +7721,7 @@ const definitions = [
7707
7721
  toZigbee: [tuya.tz.datapoints],
7708
7722
  whiteLabel: [tuya.whitelabel('Wenzhi', 'WZ-M100-W', 'Human presence sensor', ['_TZE204_e5m9c5hl'])],
7709
7723
  exposes: [
7710
- e.illuminance_lux(),
7724
+ e.illuminance(),
7711
7725
  e.presence(),
7712
7726
  e.numeric('target_distance', ea.STATE).withDescription('Distance to target').withUnit('m'),
7713
7727
  e.numeric('radar_sensitivity', ea.STATE_SET).withValueMin(0).withValueMax(9).withValueStep(1).withDescription('sensitivity of the radar'),
@@ -7736,7 +7750,7 @@ const definitions = [
7736
7750
  ],
7737
7751
  meta: {
7738
7752
  tuyaDatapoints: [
7739
- [104, 'illuminance_lux', tuya.valueConverter.raw],
7753
+ [104, 'illuminance', tuya.valueConverter.raw],
7740
7754
  [105, 'presence', tuya.valueConverter.trueFalse1],
7741
7755
  [106, 'radar_sensitivity', tuya.valueConverter.raw],
7742
7756
  [107, 'maximum_range', tuya.valueConverter.divideBy100],
@@ -7755,7 +7769,7 @@ const definitions = [
7755
7769
  fromZigbee: [tuya.fz.datapoints],
7756
7770
  toZigbee: [tuya.tz.datapoints],
7757
7771
  exposes: [
7758
- e.illuminance_lux(),
7772
+ e.illuminance(),
7759
7773
  e.presence(),
7760
7774
  e.numeric('target_distance', ea.STATE).withDescription('Distance to target').withUnit('m'),
7761
7775
  e.numeric('radar_sensitivity', ea.STATE_SET).withValueMin(0).withValueMax(9).withValueStep(1).withDescription('sensitivity of the radar'),
@@ -7786,7 +7800,7 @@ const definitions = [
7786
7800
  tuyaDatapoints: [
7787
7801
  [1, 'presence', tuya.valueConverter.trueFalse1],
7788
7802
  [9, 'target_distance', tuya.valueConverter.divideBy100],
7789
- [104, 'illuminance_lux', tuya.valueConverter.raw],
7803
+ [104, 'illuminance', tuya.valueConverter.raw],
7790
7804
  [2, 'radar_sensitivity', tuya.valueConverter.raw],
7791
7805
  [4, 'maximum_range', tuya.valueConverter.divideBy100],
7792
7806
  [3, 'minimum_range', tuya.valueConverter.divideBy100],
@@ -7806,7 +7820,7 @@ const definitions = [
7806
7820
  onEvent: tuya.onEventSetTime,
7807
7821
  configure: tuya.configureMagicPacket,
7808
7822
  exposes: [
7809
- e.illuminance_lux(),
7823
+ e.illuminance(),
7810
7824
  e.presence(),
7811
7825
  e
7812
7826
  .numeric('target_distance', ea.STATE)
@@ -7859,7 +7873,7 @@ const definitions = [
7859
7873
  [3, 'minimum_range', tuya.valueConverter.divideBy100],
7860
7874
  [4, 'maximum_range', tuya.valueConverter.divideBy100],
7861
7875
  [9, 'target_distance', tuya.valueConverter.divideBy100],
7862
- [103, 'illuminance_lux', tuya.valueConverter.raw],
7876
+ [103, 'illuminance', tuya.valueConverter.raw],
7863
7877
  [104, 'interval_time', tuya.valueConverter.raw],
7864
7878
  [105, 'detection_delay', tuya.valueConverter.divideBy10],
7865
7879
  [106, 'fading_time', tuya.valueConverter.divideBy10],
@@ -7876,7 +7890,7 @@ const definitions = [
7876
7890
  exposes: [
7877
7891
  e.presence(),
7878
7892
  e.enum('motion_state', ea.STATE, ['none', 'large', 'small', 'static']).withDescription('Motion state'),
7879
- e.illuminance_lux(),
7893
+ e.illuminance(),
7880
7894
  e
7881
7895
  .numeric('fading_time', ea.STATE_SET)
7882
7896
  .withValueMin(0)
@@ -7934,7 +7948,7 @@ const definitions = [
7934
7948
  meta: {
7935
7949
  tuyaDatapoints: [
7936
7950
  [1, 'presence', tuya.valueConverter.trueFalse1],
7937
- [20, 'illuminance_lux', tuya.valueConverter.raw],
7951
+ [20, 'illuminance', tuya.valueConverter.raw],
7938
7952
  [
7939
7953
  11,
7940
7954
  'motion_state',
@@ -8457,7 +8471,7 @@ const definitions = [
8457
8471
  exposes: [
8458
8472
  e.presence(),
8459
8473
  e.enum('motion_state', ea.STATE, ['none', 'large', 'small', 'static']).withDescription('Motion state'),
8460
- e.illuminance_lux(),
8474
+ e.illuminance(),
8461
8475
  e.battery(),
8462
8476
  e
8463
8477
  .numeric('fading_time', ea.STATE_SET)
@@ -8495,7 +8509,7 @@ const definitions = [
8495
8509
  meta: {
8496
8510
  tuyaDatapoints: [
8497
8511
  [1, 'presence', tuya.valueConverter.trueFalse1],
8498
- [106, 'illuminance_lux', tuya.valueConverter.raw],
8512
+ [106, 'illuminance', tuya.valueConverter.raw],
8499
8513
  [
8500
8514
  101,
8501
8515
  'motion_state',
@@ -8544,13 +8558,14 @@ const definitions = [
8544
8558
  tuya.whitelabel('Lonsonho', 'QS-Zigbee-D02-TRIAC-L_1', '1 channel dimmer', ['_TZ3210_weaqkhab']),
8545
8559
  tuya.whitelabel('Lonsonho', 'QS-Zigbee-D02-TRIAC-LN_1', '1 channel dimmer', ['_TZ3210_ngqk6jia']),
8546
8560
  ],
8547
- ota: ota.zigbeeOTA,
8561
+ ota: true,
8548
8562
  fromZigbee: [fromZigbee_1.default.TS110E, fromZigbee_1.default.TS110E_light_type, tuya.fz.power_on_behavior_1, fromZigbee_1.default.on_off],
8549
8563
  toZigbee: [toZigbee_1.default.TS110E_onoff_brightness, toZigbee_1.default.TS110E_options, tuya.tz.power_on_behavior_1, toZigbee_1.default.light_brightness_move],
8550
8564
  exposes: [
8551
8565
  e.light_brightness().withMinBrightness().withMaxBrightness(),
8552
8566
  tuya.exposes.lightType().withAccess(ea.ALL),
8553
8567
  e.power_on_behavior().withAccess(ea.ALL),
8568
+ tuya.exposes.switchType(),
8554
8569
  ],
8555
8570
  configure: async (device, coordinatorEndpoint) => {
8556
8571
  await tuya.configureMagicPacket(device, coordinatorEndpoint);
@@ -8663,7 +8678,7 @@ const definitions = [
8663
8678
  [111, 'energy_b', tuya.valueConverter.divideBy1000],
8664
8679
  [121, 'energy_c', tuya.valueConverter.divideBy1000],
8665
8680
  [131, 'current', tuya.valueConverter.divideBy1000],
8666
- [9, 'power', tuya.valueConverter.raw],
8681
+ [9, 'power', tuya.valueConverter.power],
8667
8682
  [102, 'power_factor_a', tuya.valueConverter.raw],
8668
8683
  [112, 'power_factor_b', tuya.valueConverter.raw],
8669
8684
  [122, 'power_factor_c', tuya.valueConverter.raw],
@@ -8857,7 +8872,7 @@ const definitions = [
8857
8872
  model: 'TS011F_with_threshold',
8858
8873
  description: 'Din rail switch with power monitoring and threshold settings',
8859
8874
  vendor: 'Tuya',
8860
- ota: ota.zigbeeOTA,
8875
+ ota: true,
8861
8876
  extend: [
8862
8877
  tuya.modernExtend.tuyaOnOff({
8863
8878
  electricalMeasurements: true,
@@ -9824,7 +9839,7 @@ const definitions = [
9824
9839
  model: 'TS011F_4',
9825
9840
  description: '2 gang plug',
9826
9841
  vendor: 'Tuya',
9827
- ota: ota.zigbeeOTA,
9842
+ ota: true,
9828
9843
  extend: [
9829
9844
  tuya.modernExtend.tuyaOnOff({
9830
9845
  electricalMeasurements: true,
@@ -10205,7 +10220,7 @@ const definitions = [
10205
10220
  fromZigbee: [tuya.fz.datapoints],
10206
10221
  toZigbee: [tuya.tz.datapoints],
10207
10222
  exposes: [
10208
- e.illuminance_lux(),
10223
+ e.illuminance(),
10209
10224
  e.presence(),
10210
10225
  e.numeric('target_distance', ea.STATE).withDescription('Distance to target').withUnit('m'),
10211
10226
  e.numeric('radar_sensitivity', ea.STATE_SET).withValueMin(0).withValueMax(9).withValueStep(1).withDescription('Sensitivity of the radar'),
@@ -10241,7 +10256,7 @@ const definitions = [
10241
10256
  [0x02, 'radar_sensitivity', tuya.valueConverter.raw],
10242
10257
  [0x03, 'minimum_range', tuya.valueConverter.divideBy100],
10243
10258
  [0x04, 'maximum_range', tuya.valueConverter.divideBy100],
10244
- [0x65, 'illuminance_lux', tuya.valueConverter.raw],
10259
+ [0x65, 'illuminance', tuya.valueConverter.raw],
10245
10260
  [0x66, 'detection_delay', tuya.valueConverter.divideBy10],
10246
10261
  [0x67, 'fading_time', tuya.valueConverter.divideBy10],
10247
10262
  [
@@ -10454,9 +10469,9 @@ const definitions = [
10454
10469
  configure: tuya.configureMagicPacket,
10455
10470
  exposes: [
10456
10471
  e.enum('state', ea.STATE, ['none', 'presence', 'move']).withDescription('Presence state'),
10457
- e.occupancy(),
10472
+ e.presence(),
10458
10473
  e.numeric('distance', ea.STATE).withUnit('m').withDescription('Target distance'),
10459
- e.illuminance_lux(),
10474
+ e.illuminance(),
10460
10475
  e
10461
10476
  .numeric('motion_sensitivity', ea.STATE_SET)
10462
10477
  .withValueMin(1)
@@ -10465,12 +10480,12 @@ const definitions = [
10465
10480
  .withCategory('config')
10466
10481
  .withDescription('Motion sensitivity'),
10467
10482
  e
10468
- .numeric('occupancy_sensitivity', ea.STATE_SET)
10483
+ .numeric('presence_sensitivity', ea.STATE_SET)
10469
10484
  .withValueMin(1)
10470
10485
  .withValueMax(10)
10471
10486
  .withValueStep(1)
10472
10487
  .withCategory('config')
10473
- .withDescription('Occupancy sensitivity'),
10488
+ .withDescription('Presence sensitivity'),
10474
10489
  e
10475
10490
  .numeric('max_range', ea.STATE_SET)
10476
10491
  .withValueMin(1.5)
@@ -10480,23 +10495,23 @@ const definitions = [
10480
10495
  .withCategory('config')
10481
10496
  .withDescription('Maximum range'),
10482
10497
  e
10483
- .numeric('occupancy_timeout', ea.STATE_SET)
10498
+ .numeric('presence_timeout', ea.STATE_SET)
10484
10499
  .withValueMin(1)
10485
10500
  .withValueMax(1500)
10486
10501
  .withValueStep(1)
10487
10502
  .withUnit('s')
10488
- .withDescription('Occupancy timeout'),
10503
+ .withDescription('Presence timeout'),
10489
10504
  ],
10490
10505
  meta: {
10491
10506
  multiEndpoint: true,
10492
10507
  tuyaDatapoints: [
10493
- [112, 'occupancy', tuya.valueConverter.trueFalse1],
10494
- [106, 'motion_sensitivity', tuya.valueConverter.raw],
10495
- [111, 'occupancy_sensitivity', tuya.valueConverter.raw],
10508
+ [112, 'presence', tuya.valueConverter.trueFalse1],
10509
+ [106, 'motion_sensitivity', tuya.valueConverter.divideBy10FromOnly],
10510
+ [111, 'occupancy_sensitivity', tuya.valueConverter.divideBy10FromOnly],
10496
10511
  [107, 'max_range', tuya.valueConverter.divideBy100],
10497
10512
  [109, 'distance', tuya.valueConverter.divideBy100],
10498
- [110, 'occupancy_timeout', tuya.valueConverter.raw],
10499
- [104, 'illuminance_lux', tuya.valueConverter.raw],
10513
+ [110, 'presence_timeout', tuya.valueConverter.raw],
10514
+ [104, 'illuminance', tuya.valueConverter.raw],
10500
10515
  [102, 'illuminance_treshold_max', tuya.valueConverter.raw],
10501
10516
  [103, 'illuminance_treshold_min', tuya.valueConverter.raw],
10502
10517
  [105, 'state', tuya.valueConverterBasic.lookup({ none: 0, presence: 1, move: 2 })],
@@ -10515,7 +10530,7 @@ const definitions = [
10515
10530
  e.enum('state', ea.STATE, ['none', 'presence', 'move']).withDescription('Presence state sensor'),
10516
10531
  e.presence().withDescription('Occupancy'),
10517
10532
  e.numeric('distance', ea.STATE).withUnit('m').withDescription('Target distance'),
10518
- e.illuminance_lux().withDescription('Illuminance sensor'),
10533
+ e.illuminance().withDescription('Illuminance sensor'),
10519
10534
  e.numeric('move_sensitivity', ea.STATE_SET).withValueMin(0).withValueMax(10).withValueStep(1).withDescription('Motion Sensitivity'),
10520
10535
  e.numeric('presence_sensitivity', ea.STATE_SET).withValueMin(0).withValueMax(10).withValueStep(1).withDescription('Presence Sensitivity'),
10521
10536
  e
@@ -10549,13 +10564,13 @@ const definitions = [
10549
10564
  [4, 'detection_distance_max', tuya.valueConverter.divideBy100],
10550
10565
  [9, 'distance', tuya.valueConverter.divideBy10],
10551
10566
  [105, 'presence_timeout', tuya.valueConverter.raw],
10552
- [103, 'illuminance_lux', tuya.valueConverter.raw],
10567
+ [103, 'illuminance', tuya.valueConverter.raw],
10553
10568
  [1, 'state', tuya.valueConverterBasic.lookup({ none: 0, presence: 1, move: 2 })],
10554
10569
  ],
10555
10570
  },
10556
10571
  },
10557
10572
  {
10558
- fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ya4ft0w4']),
10573
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_ya4ft0w4', '_TZE200_ya4ft0w4']),
10559
10574
  model: 'ZY-M100-24GV3',
10560
10575
  vendor: 'Tuya',
10561
10576
  description: '24G MmWave radar human presence motion sensor(added distance switch)',
@@ -10567,7 +10582,7 @@ const definitions = [
10567
10582
  e.presence().withDescription('Occupancy'),
10568
10583
  e.numeric('distance', ea.STATE).withDescription('Target distance'),
10569
10584
  e.binary('find_switch', ea.STATE_SET, 'ON', 'OFF').withDescription('distance switch'),
10570
- e.illuminance_lux().withDescription('Illuminance sensor'),
10585
+ e.illuminance().withDescription('Illuminance sensor'),
10571
10586
  e.numeric('move_sensitivity', ea.STATE_SET).withValueMin(0).withValueMax(10).withValueStep(1).withDescription('Motion Sensitivity'),
10572
10587
  e.numeric('presence_sensitivity', ea.STATE_SET).withValueMin(0).withValueMax(10).withValueStep(1).withDescription('Presence Sensitivity'),
10573
10588
  e
@@ -10632,7 +10647,7 @@ const definitions = [
10632
10647
  [9, 'distance', tuya.valueConverter.divideBy10],
10633
10648
  [101, 'find_switch', tuya.valueConverter.onOff],
10634
10649
  [102, 'presence_sensitivity', tuya.valueConverter.raw],
10635
- [103, 'illuminance_lux', tuya.valueConverter.raw],
10650
+ [103, 'illuminance', tuya.valueConverter.raw],
10636
10651
  [105, 'presence_timeout', tuya.valueConverter.raw],
10637
10652
  ],
10638
10653
  },
@@ -10741,7 +10756,7 @@ const definitions = [
10741
10756
  toZigbee: [tuya.tz.datapoints],
10742
10757
  exposes: [
10743
10758
  e.presence(),
10744
- e.illuminance_lux(),
10759
+ e.illuminance(),
10745
10760
  e.numeric('target_distance', ea.STATE).withDescription('Distance to target').withUnit('m'),
10746
10761
  e
10747
10762
  .numeric('radar_sensitivity', ea.STATE_SET)
@@ -10826,7 +10841,7 @@ const definitions = [
10826
10841
  [101, 'entry_filter_time', tuya.valueConverter.divideBy10],
10827
10842
  [102, 'departure_delay', tuya.valueConverter.raw],
10828
10843
  [103, 'cline', tuya.valueConverter.raw],
10829
- [104, 'illuminance_lux', tuya.valueConverter.divideBy10],
10844
+ [104, 'illuminance', tuya.valueConverter.divideBy10],
10830
10845
  [105, 'entry_sensitivity', tuya.valueConverter.raw],
10831
10846
  [106, 'entry_distance_indentation', tuya.valueConverter.divideBy100],
10832
10847
  [107, 'breaker_mode', tuya.valueConverterBasic.lookup({ standard: tuya.enum(0), local: tuya.enum(1) })],
@@ -11799,7 +11814,7 @@ const definitions = [
11799
11814
  fromZigbee: [tuya.fz.datapoints],
11800
11815
  toZigbee: [tuya.tz.datapoints],
11801
11816
  exposes: [
11802
- e.illuminance_lux(),
11817
+ e.illuminance(),
11803
11818
  e.presence(),
11804
11819
  e
11805
11820
  .numeric('detection_distance_max', ea.STATE_SET)
@@ -11822,9 +11837,9 @@ const definitions = [
11822
11837
  ],
11823
11838
  meta: {
11824
11839
  tuyaDatapoints: [
11825
- [1, 'presence', tuya.valueConverter.trueFalse1],
11840
+ [1, 'presence', tuya.valueConverterBasic.trueFalse(4)],
11826
11841
  [101, 'target_distance', tuya.valueConverter.raw],
11827
- [102, 'illuminance_lux', tuya.valueConverter.raw],
11842
+ [102, 'illuminance', tuya.valueConverter.raw],
11828
11843
  [103, 'fading_time', tuya.valueConverter.raw],
11829
11844
  [104, 'indicator', tuya.valueConverter.onOff],
11830
11845
  [107, 'detection_distance_max', tuya.valueConverter.raw],
@@ -11988,7 +12003,7 @@ const definitions = [
11988
12003
  configure: tuya.configureMagicPacket,
11989
12004
  exposes: [
11990
12005
  e.presence(),
11991
- e.illuminance_lux(),
12006
+ e.illuminance(),
11992
12007
  e
11993
12008
  .enum('sensitivity', ea.STATE_SET, ['low', 'medium', 'high'])
11994
12009
  .withDescription('PIR sensor sensitivity (refresh and update only while active)'),
@@ -11999,7 +12014,7 @@ const definitions = [
11999
12014
  [1, 'presence', tuya.valueConverterBasic.lookup({ True: 0, False: 1 })],
12000
12015
  [9, 'sensitivity', tuya.valueConverterBasic.lookup({ low: tuya.enum(0), medium: tuya.enum(1), high: tuya.enum(2) })],
12001
12016
  [10, 'keep_time', tuya.valueConverterBasic.lookup({ '30': tuya.enum(0), '60': tuya.enum(1), '120': tuya.enum(2) })],
12002
- [12, 'illuminance_lux', tuya.valueConverter.raw],
12017
+ [12, 'illuminance', tuya.valueConverter.raw],
12003
12018
  ],
12004
12019
  },
12005
12020
  },
@@ -12023,7 +12038,7 @@ const definitions = [
12023
12038
  .withValueStep(0.01)
12024
12039
  .withUnit('m')
12025
12040
  .withDescription('Target distance'),
12026
- e.illuminance_lux(),
12041
+ e.illuminance(),
12027
12042
  e.binary('indicator', ea.STATE_SET, 'ON', 'OFF').withDescription('LED Indicator'),
12028
12043
  e
12029
12044
  .numeric('none_delay_time', ea.STATE_SET)
@@ -12106,7 +12121,7 @@ const definitions = [
12106
12121
  },
12107
12122
  ],
12108
12123
  [101, 'target_distance', tuya.valueConverter.divideBy100],
12109
- [102, 'illuminance_lux', tuya.valueConverter.raw],
12124
+ [102, 'illuminance', tuya.valueConverter.raw],
12110
12125
  [103, 'none_delay_time', tuya.valueConverter.raw],
12111
12126
  [104, 'indicator', tuya.valueConverter.onOff],
12112
12127
  [107, 'move_detection_max', tuya.valueConverter.divideBy100],
@@ -12164,6 +12179,25 @@ const definitions = [
12164
12179
  ],
12165
12180
  },
12166
12181
  },
12182
+ {
12183
+ zigbeeModel: ['TS0105'],
12184
+ model: 'TS0105',
12185
+ vendor: 'TuYa',
12186
+ description: '3 gang switch',
12187
+ extend: [tuyaBase({ dp: true }), (0, modernExtend_1.deviceEndpoints)({ endpoints: { l1: 1, l2: 1, l3: 1 } })],
12188
+ exposes: [
12189
+ e.switch().withEndpoint('l1').setAccess('state', ea.STATE_SET),
12190
+ e.switch().withEndpoint('l2').setAccess('state', ea.STATE_SET),
12191
+ e.switch().withEndpoint('l3').setAccess('state', ea.STATE_SET),
12192
+ ],
12193
+ meta: {
12194
+ tuyaDatapoints: [
12195
+ [1, 'state_l1', tuya.valueConverter.onOff],
12196
+ [2, 'state_l2', tuya.valueConverter.onOff],
12197
+ [3, 'state_l3', tuya.valueConverter.onOff],
12198
+ ],
12199
+ },
12200
+ },
12167
12201
  {
12168
12202
  fingerprint: tuya.fingerprint('TS0601', ['_TZE200_iba1ckek', '_TZE200_hggxgsjj']),
12169
12203
  model: 'ZG-103Z',
@@ -12565,7 +12599,7 @@ const definitions = [
12565
12599
  toZigbee: [tuya.tz.datapoints],
12566
12600
  onEvent: tuya.onEventSetLocalTime,
12567
12601
  configure: tuya.configureMagicPacket,
12568
- ota: ota.zigbeeOTA,
12602
+ ota: true,
12569
12603
  exposes: [
12570
12604
  e.battery(),
12571
12605
  e.child_lock(),
@@ -12735,6 +12769,46 @@ const definitions = [
12735
12769
  ],
12736
12770
  },
12737
12771
  },
12772
+ {
12773
+ fingerprint: tuya.fingerprint('TS0601', ['_TZE204_q12rv9gj']),
12774
+ model: 'HHST001',
12775
+ vendor: 'HeatHUB',
12776
+ description: 'Fan coil thermostat',
12777
+ fromZigbee: [tuya.fz.datapoints],
12778
+ toZigbee: [tuya.tz.datapoints],
12779
+ onEvent: tuya.onEventSetTime,
12780
+ configure: tuya.configureMagicPacket,
12781
+ exposes: [
12782
+ e.binary('state', ea.STATE_SET, 'ON', 'OFF').withDescription('Turn the thermostat ON/OFF'),
12783
+ e
12784
+ .climate()
12785
+ .withLocalTemperature(ea.STATE)
12786
+ .withSystemMode(['cool', 'heat', 'fan_only'], ea.STATE_SET)
12787
+ .withSetpoint('current_heating_setpoint', 5, 45, 1, ea.STATE_SET)
12788
+ .withFanMode(['auto', 'high', 'medium', 'low'], ea.STATE_SET)
12789
+ .withLocalTemperatureCalibration(-9, 9, 0.5, ea.STATE_SET),
12790
+ e.min_temperature().withValueMin(5).withValueMax(15),
12791
+ e.max_temperature().withValueMin(35).withValueMax(45),
12792
+ e.child_lock(),
12793
+ e.humidity(),
12794
+ e.binary('manual_mode', ea.STATE_SET, 'ON', 'OFF').withDescription('Manual = ON or Schedule = OFF'),
12795
+ ],
12796
+ meta: {
12797
+ tuyaDatapoints: [
12798
+ [1, 'state', tuya.valueConverter.onOff],
12799
+ [2, 'system_mode', tuya.valueConverterBasic.lookup({ cool: tuya.enum(0), heat: tuya.enum(1), fan_only: tuya.enum(2) })],
12800
+ [16, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
12801
+ [19, 'max_temperature', tuya.valueConverter.divideBy10],
12802
+ [24, 'local_temperature', tuya.valueConverter.divideBy10],
12803
+ [26, 'min_temperature', tuya.valueConverter.divideBy10],
12804
+ [102, 'local_temperature_calibration', tuya.valueConverter.localTemperatureCalibration],
12805
+ [28, 'fan_mode', tuya.valueConverterBasic.lookup({ auto: tuya.enum(0), high: tuya.enum(1), medium: tuya.enum(2), low: tuya.enum(3) })],
12806
+ [40, 'child_lock', tuya.valueConverter.lockUnlock],
12807
+ [113, 'humidity', tuya.valueConverter.raw],
12808
+ [101, 'manual_mode', tuya.valueConverter.onOff],
12809
+ ],
12810
+ },
12811
+ },
12738
12812
  ];
12739
12813
  exports.default = definitions;
12740
12814
  module.exports = definitions;