zigbee-herdsman-converters 22.2.0 → 23.1.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 (2730) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +23 -6
  3. package/dist/converters/fromZigbee.d.ts +293 -0
  4. package/dist/converters/fromZigbee.d.ts.map +1 -0
  5. package/dist/converters/fromZigbee.js +5347 -0
  6. package/dist/converters/fromZigbee.js.map +1 -0
  7. package/dist/converters/toZigbee.d.ts +229 -0
  8. package/dist/converters/toZigbee.d.ts.map +1 -0
  9. package/dist/converters/toZigbee.js +4407 -0
  10. package/dist/converters/toZigbee.js.map +1 -0
  11. package/dist/devices/ITCommander.d.ts +3 -0
  12. package/dist/devices/ITCommander.d.ts.map +1 -0
  13. package/dist/devices/ITCommander.js +73 -0
  14. package/dist/devices/ITCommander.js.map +1 -0
  15. package/dist/devices/acova.d.ts +3 -0
  16. package/dist/devices/acova.d.ts.map +1 -0
  17. package/dist/devices/acova.js +123 -0
  18. package/dist/devices/acova.js.map +1 -0
  19. package/dist/devices/acuity_brands_lighting.d.ts +3 -0
  20. package/dist/devices/acuity_brands_lighting.d.ts.map +1 -0
  21. package/dist/devices/acuity_brands_lighting.js +61 -0
  22. package/dist/devices/adeo.d.ts +3 -0
  23. package/dist/devices/adeo.d.ts.map +1 -0
  24. package/dist/devices/adeo.js +482 -0
  25. package/dist/devices/adeo.js.map +1 -0
  26. package/dist/devices/adurosmart.d.ts +3 -0
  27. package/dist/devices/adurosmart.d.ts.map +1 -0
  28. package/dist/devices/adurosmart.js +186 -0
  29. package/dist/devices/adurosmart.js.map +1 -0
  30. package/dist/devices/aeotec.d.ts +3 -0
  31. package/dist/devices/aeotec.d.ts.map +1 -0
  32. package/dist/devices/aeotec.js +95 -0
  33. package/dist/devices/aeotec.js.map +1 -0
  34. package/dist/devices/airam.d.ts +3 -0
  35. package/dist/devices/airam.d.ts.map +1 -0
  36. package/dist/devices/airam.js +102 -0
  37. package/dist/devices/airam.js.map +1 -0
  38. package/dist/devices/airzone_aidoo.d.ts +3 -0
  39. package/dist/devices/airzone_aidoo.d.ts.map +1 -0
  40. package/dist/devices/airzone_aidoo.js +77 -0
  41. package/dist/devices/airzone_aidoo.js.map +1 -0
  42. package/dist/devices/ajax_online.d.ts +3 -0
  43. package/dist/devices/ajax_online.d.ts.map +1 -0
  44. package/dist/devices/ajax_online.js +83 -0
  45. package/dist/devices/akuvox.d.ts +3 -0
  46. package/dist/devices/akuvox.d.ts.map +1 -0
  47. package/dist/devices/akuvox.js +65 -0
  48. package/dist/devices/akuvox.js.map +1 -0
  49. package/dist/devices/alchemy.d.ts +3 -0
  50. package/dist/devices/alchemy.d.ts.map +1 -0
  51. package/dist/devices/alchemy.js +54 -0
  52. package/dist/devices/aldi.d.ts +3 -0
  53. package/dist/devices/aldi.d.ts.map +1 -0
  54. package/dist/devices/aldi.js +54 -0
  55. package/dist/devices/aldi.js.map +1 -0
  56. package/dist/devices/alecto.d.ts +3 -0
  57. package/dist/devices/alecto.d.ts.map +1 -0
  58. package/dist/devices/alecto.js +92 -0
  59. package/dist/devices/alecto.js.map +1 -0
  60. package/dist/devices/amina.d.ts +3 -0
  61. package/dist/devices/amina.d.ts.map +1 -0
  62. package/dist/devices/amina.js +366 -0
  63. package/dist/devices/amina.js.map +1 -0
  64. package/dist/devices/anchor.d.ts +3 -0
  65. package/dist/devices/anchor.d.ts.map +1 -0
  66. package/dist/devices/anchor.js +47 -0
  67. package/dist/devices/atlantic.d.ts +3 -0
  68. package/dist/devices/atlantic.d.ts.map +1 -0
  69. package/dist/devices/atlantic.js +145 -0
  70. package/dist/devices/atlantic.js.map +1 -0
  71. package/dist/devices/atsmart.d.ts +3 -0
  72. package/dist/devices/atsmart.d.ts.map +1 -0
  73. package/dist/devices/atsmart.js +47 -0
  74. package/dist/devices/aubess.d.ts +3 -0
  75. package/dist/devices/aubess.d.ts.map +1 -0
  76. package/dist/devices/aubess.js +60 -0
  77. package/dist/devices/aurora_lighting.d.ts +3 -0
  78. package/dist/devices/aurora_lighting.d.ts.map +1 -0
  79. package/dist/devices/aurora_lighting.js +329 -0
  80. package/dist/devices/aurora_lighting.js.map +1 -0
  81. package/dist/devices/automaton.d.ts +3 -0
  82. package/dist/devices/automaton.d.ts.map +1 -0
  83. package/dist/devices/automaton.js +64 -0
  84. package/dist/devices/avatto.d.ts +3 -0
  85. package/dist/devices/avatto.d.ts.map +1 -0
  86. package/dist/devices/avatto.js +275 -0
  87. package/dist/devices/avatto.js.map +1 -0
  88. package/dist/devices/awox.d.ts +3 -0
  89. package/dist/devices/awox.d.ts.map +1 -0
  90. package/dist/devices/awox.js +236 -0
  91. package/dist/devices/awox.js.map +1 -0
  92. package/dist/devices/axis.d.ts +3 -0
  93. package/dist/devices/axis.d.ts.map +1 -0
  94. package/dist/devices/axis.js +59 -0
  95. package/dist/devices/axis.js.map +1 -0
  96. package/dist/devices/bankamp.d.ts +3 -0
  97. package/dist/devices/bankamp.d.ts.map +1 -0
  98. package/dist/devices/bankamp.js +47 -0
  99. package/dist/devices/bega.d.ts +3 -0
  100. package/dist/devices/bega.d.ts.map +1 -0
  101. package/dist/devices/bega.js +61 -0
  102. package/dist/devices/belkin.d.ts +3 -0
  103. package/dist/devices/belkin.d.ts.map +1 -0
  104. package/dist/devices/belkin.js +47 -0
  105. package/dist/devices/bitron.d.ts +3 -0
  106. package/dist/devices/bitron.d.ts.map +1 -0
  107. package/dist/devices/bitron.js +354 -0
  108. package/dist/devices/bitron.js.map +1 -0
  109. package/dist/devices/bituo_technik.d.ts +3 -0
  110. package/dist/devices/bituo_technik.d.ts.map +1 -0
  111. package/dist/devices/bituo_technik.js +117 -0
  112. package/dist/devices/bituo_technik.js.map +1 -0
  113. package/dist/devices/blaupunkt.d.ts +3 -0
  114. package/dist/devices/blaupunkt.d.ts.map +1 -0
  115. package/dist/devices/blaupunkt.js +64 -0
  116. package/dist/devices/blaupunkt.js.map +1 -0
  117. package/dist/devices/blitzwolf.d.ts +3 -0
  118. package/dist/devices/blitzwolf.d.ts.map +1 -0
  119. package/dist/devices/blitzwolf.js +70 -0
  120. package/dist/devices/blitzwolf.js.map +1 -0
  121. package/dist/devices/bosch.d.ts +3 -0
  122. package/dist/devices/bosch.d.ts.map +1 -0
  123. package/dist/devices/bosch.js +2039 -0
  124. package/dist/devices/bosch.js.map +1 -0
  125. package/dist/devices/bouffalo_lab.d.ts +3 -0
  126. package/dist/devices/bouffalo_lab.d.ts.map +1 -0
  127. package/dist/devices/bouffalo_lab.js +47 -0
  128. package/dist/devices/brimate.d.ts +3 -0
  129. package/dist/devices/brimate.d.ts.map +1 -0
  130. package/dist/devices/brimate.js +51 -0
  131. package/dist/devices/brimate.js.map +1 -0
  132. package/dist/devices/bseed.d.ts +3 -0
  133. package/dist/devices/bseed.d.ts.map +1 -0
  134. package/dist/devices/bseed.js +53 -0
  135. package/dist/devices/bticino.d.ts +3 -0
  136. package/dist/devices/bticino.d.ts.map +1 -0
  137. package/dist/devices/bticino.js +109 -0
  138. package/dist/devices/bticino.js.map +1 -0
  139. package/dist/devices/busch_jaeger.d.ts +3 -0
  140. package/dist/devices/busch_jaeger.d.ts.map +1 -0
  141. package/dist/devices/busch_jaeger.js +181 -0
  142. package/dist/devices/busch_jaeger.js.map +1 -0
  143. package/dist/devices/byun.d.ts +3 -0
  144. package/dist/devices/byun.d.ts.map +1 -0
  145. package/dist/devices/byun.js +60 -0
  146. package/dist/devices/byun.js.map +1 -0
  147. package/dist/devices/calex.d.ts +3 -0
  148. package/dist/devices/calex.d.ts.map +1 -0
  149. package/dist/devices/calex.js +87 -0
  150. package/dist/devices/calex.js.map +1 -0
  151. package/dist/devices/candeo.d.ts +3 -0
  152. package/dist/devices/candeo.d.ts.map +1 -0
  153. package/dist/devices/candeo.js +224 -0
  154. package/dist/devices/casaia.d.ts +3 -0
  155. package/dist/devices/casaia.d.ts.map +1 -0
  156. package/dist/devices/casaia.js +95 -0
  157. package/dist/devices/casaia.js.map +1 -0
  158. package/dist/devices/cel.d.ts +3 -0
  159. package/dist/devices/cel.d.ts.map +1 -0
  160. package/dist/devices/cel.js +49 -0
  161. package/dist/devices/cel.js.map +1 -0
  162. package/dist/devices/centralite.d.ts +3 -0
  163. package/dist/devices/centralite.d.ts.map +1 -0
  164. package/dist/devices/centralite.js +449 -0
  165. package/dist/devices/centralite.js.map +1 -0
  166. package/dist/devices/chacon.d.ts +3 -0
  167. package/dist/devices/chacon.d.ts.map +1 -0
  168. package/dist/devices/chacon.js +57 -0
  169. package/dist/devices/cleode.d.ts +3 -0
  170. package/dist/devices/cleode.d.ts.map +1 -0
  171. package/dist/devices/cleode.js +47 -0
  172. package/dist/devices/cleverio.d.ts +3 -0
  173. package/dist/devices/cleverio.d.ts.map +1 -0
  174. package/dist/devices/cleverio.js +74 -0
  175. package/dist/devices/cleverio.js.map +1 -0
  176. package/dist/devices/climax.d.ts +3 -0
  177. package/dist/devices/climax.d.ts.map +1 -0
  178. package/dist/devices/climax.js +177 -0
  179. package/dist/devices/climax.js.map +1 -0
  180. package/dist/devices/commercial_electric.d.ts +3 -0
  181. package/dist/devices/commercial_electric.d.ts.map +1 -0
  182. package/dist/devices/commercial_electric.js +47 -0
  183. package/dist/devices/cree.d.ts +3 -0
  184. package/dist/devices/cree.d.ts.map +1 -0
  185. package/dist/devices/cree.js +47 -0
  186. package/dist/devices/ctm.d.ts +3 -0
  187. package/dist/devices/ctm.d.ts.map +1 -0
  188. package/dist/devices/ctm.js +1358 -0
  189. package/dist/devices/ctm.js.map +1 -0
  190. package/dist/devices/current_products_corp.d.ts +3 -0
  191. package/dist/devices/current_products_corp.d.ts.map +1 -0
  192. package/dist/devices/current_products_corp.js +60 -0
  193. package/dist/devices/current_products_corp.js.map +1 -0
  194. package/dist/devices/custom_devices_diy.d.ts +3 -0
  195. package/dist/devices/custom_devices_diy.d.ts.map +1 -0
  196. package/dist/devices/custom_devices_diy.js +1201 -0
  197. package/dist/devices/custom_devices_diy.js.map +1 -0
  198. package/dist/devices/cy_lighting.d.ts +3 -0
  199. package/dist/devices/cy_lighting.d.ts.map +1 -0
  200. package/dist/devices/cy_lighting.js +47 -0
  201. package/dist/devices/danalock.d.ts +3 -0
  202. package/dist/devices/danalock.d.ts.map +1 -0
  203. package/dist/devices/danalock.js +61 -0
  204. package/dist/devices/danalock.js.map +1 -0
  205. package/dist/devices/danfoss.d.ts +3 -0
  206. package/dist/devices/danfoss.d.ts.map +1 -0
  207. package/dist/devices/danfoss.js +738 -0
  208. package/dist/devices/danfoss.js.map +1 -0
  209. package/dist/devices/databyte.d.ts +3 -0
  210. package/dist/devices/databyte.d.ts.map +1 -0
  211. package/dist/devices/databyte.js +90 -0
  212. package/dist/devices/databyte.js.map +1 -0
  213. package/dist/devices/datek.d.ts +3 -0
  214. package/dist/devices/datek.d.ts.map +1 -0
  215. package/dist/devices/datek.js +304 -0
  216. package/dist/devices/datek.js.map +1 -0
  217. package/dist/devices/dawon_dns.d.ts +3 -0
  218. package/dist/devices/dawon_dns.d.ts.map +1 -0
  219. package/dist/devices/dawon_dns.js +314 -0
  220. package/dist/devices/dawon_dns.js.map +1 -0
  221. package/dist/devices/develco.d.ts +3 -0
  222. package/dist/devices/develco.d.ts.map +1 -0
  223. package/dist/devices/develco.js +1031 -0
  224. package/dist/devices/develco.js.map +1 -0
  225. package/dist/devices/digi.d.ts +3 -0
  226. package/dist/devices/digi.d.ts.map +1 -0
  227. package/dist/devices/digi.js +24 -0
  228. package/dist/devices/direct_signs.d.ts +3 -0
  229. package/dist/devices/direct_signs.d.ts.map +1 -0
  230. package/dist/devices/direct_signs.js +47 -0
  231. package/dist/devices/diyruz.d.ts +3 -0
  232. package/dist/devices/diyruz.d.ts.map +1 -0
  233. package/dist/devices/diyruz.js +397 -0
  234. package/dist/devices/diyruz.js.map +1 -0
  235. package/dist/devices/dlink.d.ts +3 -0
  236. package/dist/devices/dlink.d.ts.map +1 -0
  237. package/dist/devices/dlink.js +72 -0
  238. package/dist/devices/dlink.js.map +1 -0
  239. package/dist/devices/dnake.d.ts +3 -0
  240. package/dist/devices/dnake.d.ts.map +1 -0
  241. package/dist/devices/dnake.js +47 -0
  242. package/dist/devices/dowsing_reynolds.d.ts +3 -0
  243. package/dist/devices/dowsing_reynolds.d.ts.map +1 -0
  244. package/dist/devices/dowsing_reynolds.js +47 -0
  245. package/dist/devices/dresden_elektronik.d.ts +3 -0
  246. package/dist/devices/dresden_elektronik.d.ts.map +1 -0
  247. package/dist/devices/dresden_elektronik.js +82 -0
  248. package/dist/devices/easyaccess.d.ts +3 -0
  249. package/dist/devices/easyaccess.d.ts.map +1 -0
  250. package/dist/devices/easyaccess.js +67 -0
  251. package/dist/devices/easyaccess.js.map +1 -0
  252. package/dist/devices/easyiot.d.ts +3 -0
  253. package/dist/devices/easyiot.d.ts.map +1 -0
  254. package/dist/devices/easyiot.js +357 -0
  255. package/dist/devices/easyiot.js.map +1 -0
  256. package/dist/devices/eatonhalo_led.d.ts +3 -0
  257. package/dist/devices/eatonhalo_led.d.ts.map +1 -0
  258. package/dist/devices/eatonhalo_led.js +47 -0
  259. package/dist/devices/echostar.d.ts +3 -0
  260. package/dist/devices/echostar.d.ts.map +1 -0
  261. package/dist/devices/echostar.js +61 -0
  262. package/dist/devices/echostar.js.map +1 -0
  263. package/dist/devices/ecodim.d.ts +3 -0
  264. package/dist/devices/ecodim.d.ts.map +1 -0
  265. package/dist/devices/ecodim.js +266 -0
  266. package/dist/devices/ecodim.js.map +1 -0
  267. package/dist/devices/ecolink.d.ts +3 -0
  268. package/dist/devices/ecolink.d.ts.map +1 -0
  269. package/dist/devices/ecolink.js +57 -0
  270. package/dist/devices/ecolink.js.map +1 -0
  271. package/dist/devices/ecosmart.d.ts +3 -0
  272. package/dist/devices/ecosmart.d.ts.map +1 -0
  273. package/dist/devices/ecosmart.js +115 -0
  274. package/dist/devices/ecozy.d.ts +3 -0
  275. package/dist/devices/ecozy.d.ts.map +1 -0
  276. package/dist/devices/ecozy.js +85 -0
  277. package/dist/devices/ecozy.js.map +1 -0
  278. package/dist/devices/edp.d.ts +3 -0
  279. package/dist/devices/edp.d.ts.map +1 -0
  280. package/dist/devices/edp.js +70 -0
  281. package/dist/devices/edp.js.map +1 -0
  282. package/dist/devices/efekta.d.ts +3 -0
  283. package/dist/devices/efekta.d.ts.map +1 -0
  284. package/dist/devices/efekta.js +2878 -0
  285. package/dist/devices/efekta.js.map +1 -0
  286. package/dist/devices/eglo.d.ts +3 -0
  287. package/dist/devices/eglo.d.ts.map +1 -0
  288. package/dist/devices/eglo.js +130 -0
  289. package/dist/devices/eglo.js.map +1 -0
  290. package/dist/devices/elko.d.ts +3 -0
  291. package/dist/devices/elko.d.ts.map +1 -0
  292. package/dist/devices/elko.js +236 -0
  293. package/dist/devices/elko.js.map +1 -0
  294. package/dist/devices/enbrighten.d.ts +3 -0
  295. package/dist/devices/enbrighten.d.ts.map +1 -0
  296. package/dist/devices/enbrighten.js +156 -0
  297. package/dist/devices/enocean.d.ts +3 -0
  298. package/dist/devices/enocean.d.ts.map +1 -0
  299. package/dist/devices/enocean.js +149 -0
  300. package/dist/devices/enocean.js.map +1 -0
  301. package/dist/devices/envilar.d.ts +3 -0
  302. package/dist/devices/envilar.d.ts.map +1 -0
  303. package/dist/devices/envilar.js +96 -0
  304. package/dist/devices/envilar.js.map +1 -0
  305. package/dist/devices/essentialb.d.ts +3 -0
  306. package/dist/devices/essentialb.d.ts.map +1 -0
  307. package/dist/devices/essentialb.js +133 -0
  308. package/dist/devices/essentialb.js.map +1 -0
  309. package/dist/devices/essentials.d.ts +3 -0
  310. package/dist/devices/essentials.d.ts.map +1 -0
  311. package/dist/devices/essentials.js +150 -0
  312. package/dist/devices/eucontrols.d.ts +3 -0
  313. package/dist/devices/eucontrols.d.ts.map +1 -0
  314. package/dist/devices/eucontrols.js +47 -0
  315. package/dist/devices/eurotronic.d.ts +3 -0
  316. package/dist/devices/eurotronic.d.ts.map +1 -0
  317. package/dist/devices/eurotronic.js +202 -0
  318. package/dist/devices/eurotronic.js.map +1 -0
  319. package/dist/devices/evanell.d.ts +3 -0
  320. package/dist/devices/evanell.d.ts.map +1 -0
  321. package/dist/devices/evanell.js +71 -0
  322. package/dist/devices/evn.d.ts +3 -0
  323. package/dist/devices/evn.d.ts.map +1 -0
  324. package/dist/devices/evn.js +90 -0
  325. package/dist/devices/evn.js.map +1 -0
  326. package/dist/devices/evology.d.ts +3 -0
  327. package/dist/devices/evology.d.ts.map +1 -0
  328. package/dist/devices/evology.js +60 -0
  329. package/dist/devices/evology.js.map +1 -0
  330. package/dist/devices/evvr.d.ts +3 -0
  331. package/dist/devices/evvr.d.ts.map +1 -0
  332. package/dist/devices/evvr.js +47 -0
  333. package/dist/devices/ewelink.d.ts +3 -0
  334. package/dist/devices/ewelink.d.ts.map +1 -0
  335. package/dist/devices/ewelink.js +349 -0
  336. package/dist/devices/ewelink.js.map +1 -0
  337. package/dist/devices/ezex.d.ts +3 -0
  338. package/dist/devices/ezex.d.ts.map +1 -0
  339. package/dist/devices/ezex.js +47 -0
  340. package/dist/devices/fantem.d.ts +3 -0
  341. package/dist/devices/fantem.d.ts.map +1 -0
  342. package/dist/devices/fantem.js +113 -0
  343. package/dist/devices/fantem.js.map +1 -0
  344. package/dist/devices/feibit.d.ts +3 -0
  345. package/dist/devices/feibit.d.ts.map +1 -0
  346. package/dist/devices/feibit.js +340 -0
  347. package/dist/devices/feibit.js.map +1 -0
  348. package/dist/devices/fireangel.d.ts +3 -0
  349. package/dist/devices/fireangel.d.ts.map +1 -0
  350. package/dist/devices/fireangel.js +51 -0
  351. package/dist/devices/fireangel.js.map +1 -0
  352. package/dist/devices/frankever.d.ts +3 -0
  353. package/dist/devices/frankever.d.ts.map +1 -0
  354. package/dist/devices/frankever.js +67 -0
  355. package/dist/devices/frient.d.ts +3 -0
  356. package/dist/devices/frient.d.ts.map +1 -0
  357. package/dist/devices/frient.js +74 -0
  358. package/dist/devices/futurehome.d.ts +3 -0
  359. package/dist/devices/futurehome.d.ts.map +1 -0
  360. package/dist/devices/futurehome.js +123 -0
  361. package/dist/devices/ge.d.ts +3 -0
  362. package/dist/devices/ge.d.ts.map +1 -0
  363. package/dist/devices/ge.js +130 -0
  364. package/dist/devices/ge.js.map +1 -0
  365. package/dist/devices/gewiss.d.ts +3 -0
  366. package/dist/devices/gewiss.d.ts.map +1 -0
  367. package/dist/devices/gewiss.js +82 -0
  368. package/dist/devices/gewiss.js.map +1 -0
  369. package/dist/devices/gidealed.d.ts +3 -0
  370. package/dist/devices/gidealed.d.ts.map +1 -0
  371. package/dist/devices/gidealed.js +47 -0
  372. package/dist/devices/giderwel.d.ts +3 -0
  373. package/dist/devices/giderwel.d.ts.map +1 -0
  374. package/dist/devices/giderwel.js +47 -0
  375. package/dist/devices/giex.d.ts +3 -0
  376. package/dist/devices/giex.d.ts.map +1 -0
  377. package/dist/devices/giex.js +114 -0
  378. package/dist/devices/girier.d.ts +3 -0
  379. package/dist/devices/girier.d.ts.map +1 -0
  380. package/dist/devices/girier.js +51 -0
  381. package/dist/devices/gledopto.d.ts +3 -0
  382. package/dist/devices/gledopto.d.ts.map +1 -0
  383. package/dist/devices/gledopto.js +1053 -0
  384. package/dist/devices/gledopto.js.map +1 -0
  385. package/dist/devices/gmmts.d.ts +3 -0
  386. package/dist/devices/gmmts.d.ts.map +1 -0
  387. package/dist/devices/gmmts.js +2282 -0
  388. package/dist/devices/gmmts.js.map +1 -0
  389. package/dist/devices/gmy.d.ts +3 -0
  390. package/dist/devices/gmy.d.ts.map +1 -0
  391. package/dist/devices/gmy.js +47 -0
  392. package/dist/devices/gs.d.ts +3 -0
  393. package/dist/devices/gs.d.ts.map +1 -0
  394. package/dist/devices/gs.js +121 -0
  395. package/dist/devices/gumax.d.ts +3 -0
  396. package/dist/devices/gumax.d.ts.map +1 -0
  397. package/dist/devices/gumax.js +47 -0
  398. package/dist/devices/halemeier.d.ts +3 -0
  399. package/dist/devices/halemeier.d.ts.map +1 -0
  400. package/dist/devices/halemeier.js +125 -0
  401. package/dist/devices/halemeier.js.map +1 -0
  402. package/dist/devices/hampton_bay.d.ts +3 -0
  403. package/dist/devices/hampton_bay.d.ts.map +1 -0
  404. package/dist/devices/hampton_bay.js +68 -0
  405. package/dist/devices/hampton_bay.js.map +1 -0
  406. package/dist/devices/heatit.d.ts +3 -0
  407. package/dist/devices/heatit.d.ts.map +1 -0
  408. package/dist/devices/heatit.js +47 -0
  409. package/dist/devices/heiman.d.ts +3 -0
  410. package/dist/devices/heiman.d.ts.map +1 -0
  411. package/dist/devices/heiman.js +813 -0
  412. package/dist/devices/heiman.js.map +1 -0
  413. package/dist/devices/heimgard_technologies.d.ts +3 -0
  414. package/dist/devices/heimgard_technologies.d.ts.map +1 -0
  415. package/dist/devices/heimgard_technologies.js +189 -0
  416. package/dist/devices/heimgard_technologies.js.map +1 -0
  417. package/dist/devices/hej.d.ts +3 -0
  418. package/dist/devices/hej.d.ts.map +1 -0
  419. package/dist/devices/hej.js +105 -0
  420. package/dist/devices/hfh.d.ts +3 -0
  421. package/dist/devices/hfh.d.ts.map +1 -0
  422. package/dist/devices/hfh.js +47 -0
  423. package/dist/devices/hilux.d.ts +3 -0
  424. package/dist/devices/hilux.d.ts.map +1 -0
  425. package/dist/devices/hilux.js +54 -0
  426. package/dist/devices/hive.d.ts +3 -0
  427. package/dist/devices/hive.d.ts.map +1 -0
  428. package/dist/devices/hive.js +762 -0
  429. package/dist/devices/hive.js.map +1 -0
  430. package/dist/devices/hommyn.d.ts +3 -0
  431. package/dist/devices/hommyn.d.ts.map +1 -0
  432. package/dist/devices/hommyn.js +60 -0
  433. package/dist/devices/hommyn.js.map +1 -0
  434. package/dist/devices/honyar.d.ts +3 -0
  435. package/dist/devices/honyar.d.ts.map +1 -0
  436. package/dist/devices/honyar.js +167 -0
  437. package/dist/devices/honyar.js.map +1 -0
  438. package/dist/devices/hornbach.d.ts +3 -0
  439. package/dist/devices/hornbach.d.ts.map +1 -0
  440. package/dist/devices/hornbach.js +138 -0
  441. package/dist/devices/hzc_electric.d.ts +3 -0
  442. package/dist/devices/hzc_electric.d.ts.map +1 -0
  443. package/dist/devices/hzc_electric.js +102 -0
  444. package/dist/devices/hzc_electric.js.map +1 -0
  445. package/dist/devices/icasa.d.ts +3 -0
  446. package/dist/devices/icasa.d.ts.map +1 -0
  447. package/dist/devices/icasa.js +163 -0
  448. package/dist/devices/icasa.js.map +1 -0
  449. package/dist/devices/idinio.d.ts +3 -0
  450. package/dist/devices/idinio.d.ts.map +1 -0
  451. package/dist/devices/idinio.js +47 -0
  452. package/dist/devices/ihorn.d.ts +3 -0
  453. package/dist/devices/ihorn.d.ts.map +1 -0
  454. package/dist/devices/ihorn.js +105 -0
  455. package/dist/devices/ihorn.js.map +1 -0
  456. package/dist/devices/ikea.d.ts +3 -0
  457. package/dist/devices/ikea.d.ts.map +1 -0
  458. package/dist/devices/ikea.js +980 -0
  459. package/dist/devices/ilightsin.d.ts +3 -0
  460. package/dist/devices/ilightsin.d.ts.map +1 -0
  461. package/dist/devices/ilightsin.js +47 -0
  462. package/dist/devices/iluminize.d.ts +3 -0
  463. package/dist/devices/iluminize.d.ts.map +1 -0
  464. package/dist/devices/iluminize.js +386 -0
  465. package/dist/devices/iluminize.js.map +1 -0
  466. package/dist/devices/ilux.d.ts +3 -0
  467. package/dist/devices/ilux.d.ts.map +1 -0
  468. package/dist/devices/ilux.js +47 -0
  469. package/dist/devices/imhotepcreation.d.ts +3 -0
  470. package/dist/devices/imhotepcreation.d.ts.map +1 -0
  471. package/dist/devices/imhotepcreation.js +239 -0
  472. package/dist/devices/imhotepcreation.js.map +1 -0
  473. package/dist/devices/immax.d.ts +3 -0
  474. package/dist/devices/immax.d.ts.map +1 -0
  475. package/dist/devices/immax.js +300 -0
  476. package/dist/devices/immax.js.map +1 -0
  477. package/dist/devices/imou.d.ts +3 -0
  478. package/dist/devices/imou.d.ts.map +1 -0
  479. package/dist/devices/imou.js +60 -0
  480. package/dist/devices/index.js +649 -0
  481. package/dist/devices/index.js.map +1 -0
  482. package/dist/devices/innr.d.ts +3 -0
  483. package/dist/devices/innr.d.ts.map +1 -0
  484. package/dist/devices/innr.js +865 -0
  485. package/dist/devices/innr.js.map +1 -0
  486. package/dist/devices/inovelli.d.ts +3 -0
  487. package/dist/devices/inovelli.d.ts.map +1 -0
  488. package/dist/devices/inovelli.js +1999 -0
  489. package/dist/devices/inovelli.js.map +1 -0
  490. package/dist/devices/insta.d.ts +3 -0
  491. package/dist/devices/insta.d.ts.map +1 -0
  492. package/dist/devices/insta.js +182 -0
  493. package/dist/devices/insta.js.map +1 -0
  494. package/dist/devices/iolloi.d.ts +3 -0
  495. package/dist/devices/iolloi.d.ts.map +1 -0
  496. package/dist/devices/iolloi.js +48 -0
  497. package/dist/devices/iotperfect.d.ts +3 -0
  498. package/dist/devices/iotperfect.d.ts.map +1 -0
  499. package/dist/devices/iotperfect.js +54 -0
  500. package/dist/devices/iotperfect.js.map +1 -0
  501. package/dist/devices/iris.d.ts +3 -0
  502. package/dist/devices/iris.d.ts.map +1 -0
  503. package/dist/devices/iris.js +207 -0
  504. package/dist/devices/iris.js.map +1 -0
  505. package/dist/devices/istar.d.ts +3 -0
  506. package/dist/devices/istar.d.ts.map +1 -0
  507. package/dist/devices/istar.js +54 -0
  508. package/dist/devices/jasco.d.ts +3 -0
  509. package/dist/devices/jasco.d.ts.map +1 -0
  510. package/dist/devices/jasco.js +63 -0
  511. package/dist/devices/jasco.js.map +1 -0
  512. package/dist/devices/javis.d.ts +3 -0
  513. package/dist/devices/javis.d.ts.map +1 -0
  514. package/dist/devices/javis.js +77 -0
  515. package/dist/devices/javis.js.map +1 -0
  516. package/dist/devices/jethome.d.ts +3 -0
  517. package/dist/devices/jethome.d.ts.map +1 -0
  518. package/dist/devices/jethome.js +120 -0
  519. package/dist/devices/jethome.js.map +1 -0
  520. package/dist/devices/jiawen.d.ts +3 -0
  521. package/dist/devices/jiawen.d.ts.map +1 -0
  522. package/dist/devices/jiawen.js +54 -0
  523. package/dist/devices/jumitech.d.ts +3 -0
  524. package/dist/devices/jumitech.d.ts.map +1 -0
  525. package/dist/devices/jumitech.js +47 -0
  526. package/dist/devices/jxuan.d.ts +3 -0
  527. package/dist/devices/jxuan.d.ts.map +1 -0
  528. package/dist/devices/jxuan.js +85 -0
  529. package/dist/devices/jxuan.js.map +1 -0
  530. package/dist/devices/kami.d.ts +3 -0
  531. package/dist/devices/kami.d.ts.map +1 -0
  532. package/dist/devices/kami.js +51 -0
  533. package/dist/devices/kami.js.map +1 -0
  534. package/dist/devices/keen_home.d.ts +3 -0
  535. package/dist/devices/keen_home.d.ts.map +1 -0
  536. package/dist/devices/keen_home.js +156 -0
  537. package/dist/devices/keen_home.js.map +1 -0
  538. package/dist/devices/klikaanklikuit.d.ts +3 -0
  539. package/dist/devices/klikaanklikuit.d.ts.map +1 -0
  540. package/dist/devices/klikaanklikuit.js +54 -0
  541. package/dist/devices/kmpcil.d.ts +3 -0
  542. package/dist/devices/kmpcil.d.ts.map +1 -0
  543. package/dist/devices/kmpcil.js +212 -0
  544. package/dist/devices/kmpcil.js.map +1 -0
  545. package/dist/devices/konke.d.ts +3 -0
  546. package/dist/devices/konke.d.ts.map +1 -0
  547. package/dist/devices/konke.js +207 -0
  548. package/dist/devices/konke.js.map +1 -0
  549. package/dist/devices/ksentry.d.ts +3 -0
  550. package/dist/devices/ksentry.d.ts.map +1 -0
  551. package/dist/devices/ksentry.js +47 -0
  552. package/dist/devices/kurvia.d.ts +3 -0
  553. package/dist/devices/kurvia.d.ts.map +1 -0
  554. package/dist/devices/kurvia.js +49 -0
  555. package/dist/devices/kurvia.js.map +1 -0
  556. package/dist/devices/kwikset.d.ts +3 -0
  557. package/dist/devices/kwikset.d.ts.map +1 -0
  558. package/dist/devices/kwikset.js +153 -0
  559. package/dist/devices/kwikset.js.map +1 -0
  560. package/dist/devices/lanesto.d.ts +3 -0
  561. package/dist/devices/lanesto.d.ts.map +1 -0
  562. package/dist/devices/lanesto.js +47 -0
  563. package/dist/devices/lds.d.ts +3 -0
  564. package/dist/devices/lds.d.ts.map +1 -0
  565. package/dist/devices/lds.js +47 -0
  566. package/dist/devices/led_trading.d.ts +3 -0
  567. package/dist/devices/led_trading.d.ts.map +1 -0
  568. package/dist/devices/led_trading.js +108 -0
  569. package/dist/devices/led_trading.js.map +1 -0
  570. package/dist/devices/ledvance.d.ts +3 -0
  571. package/dist/devices/ledvance.d.ts.map +1 -0
  572. package/dist/devices/ledvance.js +370 -0
  573. package/dist/devices/leedarson.d.ts +3 -0
  574. package/dist/devices/leedarson.d.ts.map +1 -0
  575. package/dist/devices/leedarson.js +180 -0
  576. package/dist/devices/leedarson.js.map +1 -0
  577. package/dist/devices/legrand.d.ts +3 -0
  578. package/dist/devices/legrand.d.ts.map +1 -0
  579. package/dist/devices/legrand.js +734 -0
  580. package/dist/devices/legrand.js.map +1 -0
  581. package/dist/devices/lellki.d.ts +3 -0
  582. package/dist/devices/lellki.d.ts.map +1 -0
  583. package/dist/devices/lellki.js +161 -0
  584. package/dist/devices/lellki.js.map +1 -0
  585. package/dist/devices/letsled.d.ts +3 -0
  586. package/dist/devices/letsled.d.ts.map +1 -0
  587. package/dist/devices/letsled.js +47 -0
  588. package/dist/devices/letv.d.ts +3 -0
  589. package/dist/devices/letv.d.ts.map +1 -0
  590. package/dist/devices/letv.js +86 -0
  591. package/dist/devices/letv.js.map +1 -0
  592. package/dist/devices/leviton.d.ts +3 -0
  593. package/dist/devices/leviton.d.ts.map +1 -0
  594. package/dist/devices/leviton.js +164 -0
  595. package/dist/devices/leviton.js.map +1 -0
  596. package/dist/devices/lg.d.ts +3 -0
  597. package/dist/devices/lg.d.ts.map +1 -0
  598. package/dist/devices/lg.js +61 -0
  599. package/dist/devices/lidl.d.ts +3 -0
  600. package/dist/devices/lidl.d.ts.map +1 -0
  601. package/dist/devices/lidl.js +670 -0
  602. package/dist/devices/lidl.js.map +1 -0
  603. package/dist/devices/lifecontrol.d.ts +3 -0
  604. package/dist/devices/lifecontrol.d.ts.map +1 -0
  605. package/dist/devices/lifecontrol.js +150 -0
  606. package/dist/devices/lifecontrol.js.map +1 -0
  607. package/dist/devices/lightsolutions.d.ts +3 -0
  608. package/dist/devices/lightsolutions.d.ts.map +1 -0
  609. package/dist/devices/lightsolutions.js +68 -0
  610. package/dist/devices/linkind.d.ts +3 -0
  611. package/dist/devices/linkind.d.ts.map +1 -0
  612. package/dist/devices/linkind.js +271 -0
  613. package/dist/devices/linkind.js.map +1 -0
  614. package/dist/devices/linptech.d.ts +3 -0
  615. package/dist/devices/linptech.d.ts.map +1 -0
  616. package/dist/devices/linptech.js +155 -0
  617. package/dist/devices/linptech.js.map +1 -0
  618. package/dist/devices/livingwise.d.ts +3 -0
  619. package/dist/devices/livingwise.d.ts.map +1 -0
  620. package/dist/devices/livingwise.js +115 -0
  621. package/dist/devices/livingwise.js.map +1 -0
  622. package/dist/devices/livolo.d.ts +3 -0
  623. package/dist/devices/livolo.d.ts.map +1 -0
  624. package/dist/devices/livolo.js +418 -0
  625. package/dist/devices/livolo.js.map +1 -0
  626. package/dist/devices/lixee.d.ts +3 -0
  627. package/dist/devices/lixee.d.ts.map +1 -0
  628. package/dist/devices/lixee.js +1919 -0
  629. package/dist/devices/lixee.js.map +1 -0
  630. package/dist/devices/lonsonho.d.ts +3 -0
  631. package/dist/devices/lonsonho.d.ts.map +1 -0
  632. package/dist/devices/lonsonho.js +287 -0
  633. package/dist/devices/lonsonho.js.map +1 -0
  634. package/dist/devices/ls.d.ts +3 -0
  635. package/dist/devices/ls.d.ts.map +1 -0
  636. package/dist/devices/ls.js +66 -0
  637. package/dist/devices/lubeez.d.ts +3 -0
  638. package/dist/devices/lubeez.d.ts.map +1 -0
  639. package/dist/devices/lubeez.js +47 -0
  640. package/dist/devices/lumi.d.ts +3 -0
  641. package/dist/devices/lumi.d.ts.map +1 -0
  642. package/dist/devices/lumi.js +4430 -0
  643. package/dist/devices/lumi.js.map +1 -0
  644. package/dist/devices/lupus.d.ts +3 -0
  645. package/dist/devices/lupus.d.ts.map +1 -0
  646. package/dist/devices/lupus.js +94 -0
  647. package/dist/devices/lupus.js.map +1 -0
  648. package/dist/devices/lutron.d.ts +3 -0
  649. package/dist/devices/lutron.d.ts.map +1 -0
  650. package/dist/devices/lutron.js +68 -0
  651. package/dist/devices/lutron.js.map +1 -0
  652. package/dist/devices/lux.d.ts +3 -0
  653. package/dist/devices/lux.d.ts.map +1 -0
  654. package/dist/devices/lux.js +87 -0
  655. package/dist/devices/lux.js.map +1 -0
  656. package/dist/devices/lytko.d.ts +3 -0
  657. package/dist/devices/lytko.d.ts.map +1 -0
  658. package/dist/devices/lytko.js +784 -0
  659. package/dist/devices/lytko.js.map +1 -0
  660. package/dist/devices/m_elec.d.ts +3 -0
  661. package/dist/devices/m_elec.d.ts.map +1 -0
  662. package/dist/devices/m_elec.js +68 -0
  663. package/dist/devices/makegood.d.ts +3 -0
  664. package/dist/devices/makegood.d.ts.map +1 -0
  665. package/dist/devices/makegood.js +65 -0
  666. package/dist/devices/matcall_bv.d.ts +3 -0
  667. package/dist/devices/matcall_bv.d.ts.map +1 -0
  668. package/dist/devices/matcall_bv.js +54 -0
  669. package/dist/devices/mazda.d.ts +3 -0
  670. package/dist/devices/mazda.d.ts.map +1 -0
  671. package/dist/devices/mazda.js +163 -0
  672. package/dist/devices/mazda.js.map +1 -0
  673. package/dist/devices/meazon.d.ts +3 -0
  674. package/dist/devices/meazon.d.ts.map +1 -0
  675. package/dist/devices/meazon.js +95 -0
  676. package/dist/devices/meazon.js.map +1 -0
  677. package/dist/devices/mercator.d.ts +3 -0
  678. package/dist/devices/mercator.d.ts.map +1 -0
  679. package/dist/devices/mercator.js +249 -0
  680. package/dist/devices/mercator.js.map +1 -0
  681. package/dist/devices/miboxer.d.ts +3 -0
  682. package/dist/devices/miboxer.d.ts.map +1 -0
  683. package/dist/devices/miboxer.js +89 -0
  684. package/dist/devices/miboxer.js.map +1 -0
  685. package/dist/devices/micromatic.d.ts +3 -0
  686. package/dist/devices/micromatic.d.ts.map +1 -0
  687. package/dist/devices/micromatic.js +47 -0
  688. package/dist/devices/modular.d.ts +3 -0
  689. package/dist/devices/modular.d.ts.map +1 -0
  690. package/dist/devices/modular.js +47 -0
  691. package/dist/devices/moes.d.ts +3 -0
  692. package/dist/devices/moes.d.ts.map +1 -0
  693. package/dist/devices/moes.js +719 -0
  694. package/dist/devices/moes.js.map +1 -0
  695. package/dist/devices/muller_licht.d.ts +3 -0
  696. package/dist/devices/muller_licht.d.ts.map +1 -0
  697. package/dist/devices/muller_licht.js +334 -0
  698. package/dist/devices/muller_licht.js.map +1 -0
  699. package/dist/devices/multiterm.d.ts +3 -0
  700. package/dist/devices/multiterm.d.ts.map +1 -0
  701. package/dist/devices/multiterm.js +119 -0
  702. package/dist/devices/multiterm.js.map +1 -0
  703. package/dist/devices/namron.d.ts +3 -0
  704. package/dist/devices/namron.d.ts.map +1 -0
  705. package/dist/devices/namron.js +1573 -0
  706. package/dist/devices/namron.js.map +1 -0
  707. package/dist/devices/nanoleaf.d.ts +3 -0
  708. package/dist/devices/nanoleaf.d.ts.map +1 -0
  709. package/dist/devices/nanoleaf.js +47 -0
  710. package/dist/devices/nedis.d.ts +3 -0
  711. package/dist/devices/nedis.d.ts.map +1 -0
  712. package/dist/devices/nedis.js +87 -0
  713. package/dist/devices/neo.d.ts +3 -0
  714. package/dist/devices/neo.d.ts.map +1 -0
  715. package/dist/devices/neo.js +558 -0
  716. package/dist/devices/neo.js.map +1 -0
  717. package/dist/devices/net2grid.d.ts +3 -0
  718. package/dist/devices/net2grid.d.ts.map +1 -0
  719. package/dist/devices/net2grid.js +64 -0
  720. package/dist/devices/net2grid.js.map +1 -0
  721. package/dist/devices/netvox.d.ts +3 -0
  722. package/dist/devices/netvox.d.ts.map +1 -0
  723. package/dist/devices/netvox.js +71 -0
  724. package/dist/devices/netvox.js.map +1 -0
  725. package/dist/devices/nexelec.d.ts +3 -0
  726. package/dist/devices/nexelec.d.ts.map +1 -0
  727. package/dist/devices/nexelec.js +47 -0
  728. package/dist/devices/niko.d.ts +3 -0
  729. package/dist/devices/niko.d.ts.map +1 -0
  730. package/dist/devices/niko.js +623 -0
  731. package/dist/devices/niko.js.map +1 -0
  732. package/dist/devices/ninja_blocks.d.ts +3 -0
  733. package/dist/devices/ninja_blocks.d.ts.map +1 -0
  734. package/dist/devices/ninja_blocks.js +60 -0
  735. package/dist/devices/ninja_blocks.js.map +1 -0
  736. package/dist/devices/niviss.d.ts +3 -0
  737. package/dist/devices/niviss.d.ts.map +1 -0
  738. package/dist/devices/niviss.js +47 -0
  739. package/dist/devices/nodon.d.ts +3 -0
  740. package/dist/devices/nodon.d.ts.map +1 -0
  741. package/dist/devices/nodon.js +383 -0
  742. package/dist/devices/nodon.js.map +1 -0
  743. package/dist/devices/nordtronic.d.ts +3 -0
  744. package/dist/devices/nordtronic.d.ts.map +1 -0
  745. package/dist/devices/nordtronic.js +73 -0
  746. package/dist/devices/nous.d.ts +3 -0
  747. package/dist/devices/nous.d.ts.map +1 -0
  748. package/dist/devices/nous.js +165 -0
  749. package/dist/devices/nous.js.map +1 -0
  750. package/dist/devices/novo.d.ts +3 -0
  751. package/dist/devices/novo.d.ts.map +1 -0
  752. package/dist/devices/novo.js +54 -0
  753. package/dist/devices/novo.js.map +1 -0
  754. package/dist/devices/nue_3a.d.ts +3 -0
  755. package/dist/devices/nue_3a.d.ts.map +1 -0
  756. package/dist/devices/nue_3a.js +357 -0
  757. package/dist/devices/nue_3a.js.map +1 -0
  758. package/dist/devices/nyce.d.ts +3 -0
  759. package/dist/devices/nyce.d.ts.map +1 -0
  760. package/dist/devices/nyce.js +130 -0
  761. package/dist/devices/nyce.js.map +1 -0
  762. package/dist/devices/onenuo.d.ts +3 -0
  763. package/dist/devices/onenuo.d.ts.map +1 -0
  764. package/dist/devices/onenuo.js +85 -0
  765. package/dist/devices/onesti.d.ts +3 -0
  766. package/dist/devices/onesti.d.ts.map +1 -0
  767. package/dist/devices/onesti.js +204 -0
  768. package/dist/devices/onesti.js.map +1 -0
  769. package/dist/devices/openlumi.d.ts +3 -0
  770. package/dist/devices/openlumi.d.ts.map +1 -0
  771. package/dist/devices/openlumi.js +58 -0
  772. package/dist/devices/openlumi.js.map +1 -0
  773. package/dist/devices/orvibo.d.ts +12 -0
  774. package/dist/devices/orvibo.d.ts.map +1 -0
  775. package/dist/devices/orvibo.js +594 -0
  776. package/dist/devices/orvibo.js.map +1 -0
  777. package/dist/devices/osram.d.ts +3 -0
  778. package/dist/devices/osram.d.ts.map +1 -0
  779. package/dist/devices/osram.js +513 -0
  780. package/dist/devices/osram.js.map +1 -0
  781. package/dist/devices/oujiabao.d.ts +3 -0
  782. package/dist/devices/oujiabao.d.ts.map +1 -0
  783. package/dist/devices/oujiabao.js +51 -0
  784. package/dist/devices/oujiabao.js.map +1 -0
  785. package/dist/devices/owon.d.ts +3 -0
  786. package/dist/devices/owon.d.ts.map +1 -0
  787. package/dist/devices/owon.js +473 -0
  788. package/dist/devices/owon.js.map +1 -0
  789. package/dist/devices/ozsmartthings.d.ts +3 -0
  790. package/dist/devices/ozsmartthings.d.ts.map +1 -0
  791. package/dist/devices/ozsmartthings.js +47 -0
  792. package/dist/devices/paul_neuhaus.d.ts +3 -0
  793. package/dist/devices/paul_neuhaus.d.ts.map +1 -0
  794. package/dist/devices/paul_neuhaus.js +190 -0
  795. package/dist/devices/paul_neuhaus.js.map +1 -0
  796. package/dist/devices/paulmann.d.ts +3 -0
  797. package/dist/devices/paulmann.d.ts.map +1 -0
  798. package/dist/devices/paulmann.js +334 -0
  799. package/dist/devices/paulmann.js.map +1 -0
  800. package/dist/devices/peq.d.ts +3 -0
  801. package/dist/devices/peq.d.ts.map +1 -0
  802. package/dist/devices/peq.js +60 -0
  803. package/dist/devices/peq.js.map +1 -0
  804. package/dist/devices/perenio.d.ts +3 -0
  805. package/dist/devices/perenio.d.ts.map +1 -0
  806. package/dist/devices/perenio.js +462 -0
  807. package/dist/devices/perenio.js.map +1 -0
  808. package/dist/devices/philio.d.ts +3 -0
  809. package/dist/devices/philio.d.ts.map +1 -0
  810. package/dist/devices/philio.js +48 -0
  811. package/dist/devices/philips.d.ts +3 -0
  812. package/dist/devices/philips.d.ts.map +1 -0
  813. package/dist/devices/philips.js +4061 -0
  814. package/dist/devices/philips.js.map +1 -0
  815. package/dist/devices/plaid.d.ts +3 -0
  816. package/dist/devices/plaid.d.ts.map +1 -0
  817. package/dist/devices/plaid.js +61 -0
  818. package/dist/devices/plaid.js.map +1 -0
  819. package/dist/devices/plugwise.d.ts +3 -0
  820. package/dist/devices/plugwise.d.ts.map +1 -0
  821. package/dist/devices/plugwise.js +206 -0
  822. package/dist/devices/plugwise.js.map +1 -0
  823. package/dist/devices/profalux.d.ts +3 -0
  824. package/dist/devices/profalux.d.ts.map +1 -0
  825. package/dist/devices/profalux.js +204 -0
  826. package/dist/devices/profalux.js.map +1 -0
  827. package/dist/devices/prolight.d.ts +3 -0
  828. package/dist/devices/prolight.d.ts.map +1 -0
  829. package/dist/devices/prolight.js +111 -0
  830. package/dist/devices/prolight.js.map +1 -0
  831. package/dist/devices/purmo.d.ts +3 -0
  832. package/dist/devices/purmo.d.ts.map +1 -0
  833. package/dist/devices/purmo.js +91 -0
  834. package/dist/devices/purmo.js.map +1 -0
  835. package/dist/devices/pushok.d.ts +3 -0
  836. package/dist/devices/pushok.d.ts.map +1 -0
  837. package/dist/devices/pushok.js +375 -0
  838. package/dist/devices/pushok.js.map +1 -0
  839. package/dist/devices/qa.d.ts +3 -0
  840. package/dist/devices/qa.d.ts.map +1 -0
  841. package/dist/devices/qa.js +291 -0
  842. package/dist/devices/qa.js.map +1 -0
  843. package/dist/devices/qmotion.d.ts +3 -0
  844. package/dist/devices/qmotion.d.ts.map +1 -0
  845. package/dist/devices/qmotion.js +69 -0
  846. package/dist/devices/qmotion.js.map +1 -0
  847. package/dist/devices/qoto.d.ts +3 -0
  848. package/dist/devices/qoto.d.ts.map +1 -0
  849. package/dist/devices/qoto.js +83 -0
  850. package/dist/devices/qoto.js.map +1 -0
  851. package/dist/devices/quotra.d.ts +3 -0
  852. package/dist/devices/quotra.d.ts.map +1 -0
  853. package/dist/devices/quotra.js +54 -0
  854. package/dist/devices/rademacher.d.ts +3 -0
  855. package/dist/devices/rademacher.d.ts.map +1 -0
  856. package/dist/devices/rademacher.js +61 -0
  857. package/dist/devices/radium.d.ts +3 -0
  858. package/dist/devices/radium.d.ts.map +1 -0
  859. package/dist/devices/radium.js +47 -0
  860. package/dist/devices/raex.d.ts +3 -0
  861. package/dist/devices/raex.d.ts.map +1 -0
  862. package/dist/devices/raex.js +47 -0
  863. package/dist/devices/rgb_genie.d.ts +3 -0
  864. package/dist/devices/rgb_genie.d.ts.map +1 -0
  865. package/dist/devices/rgb_genie.js +275 -0
  866. package/dist/devices/rgb_genie.js.map +1 -0
  867. package/dist/devices/robb.d.ts +3 -0
  868. package/dist/devices/robb.d.ts.map +1 -0
  869. package/dist/devices/robb.js +468 -0
  870. package/dist/devices/robb.js.map +1 -0
  871. package/dist/devices/roome.d.ts +3 -0
  872. package/dist/devices/roome.d.ts.map +1 -0
  873. package/dist/devices/roome.js +51 -0
  874. package/dist/devices/roome.js.map +1 -0
  875. package/dist/devices/rtx.d.ts +3 -0
  876. package/dist/devices/rtx.d.ts.map +1 -0
  877. package/dist/devices/rtx.js +143 -0
  878. package/dist/devices/rtx.js.map +1 -0
  879. package/dist/devices/salus_controls.d.ts +3 -0
  880. package/dist/devices/salus_controls.d.ts.map +1 -0
  881. package/dist/devices/salus_controls.js +221 -0
  882. package/dist/devices/salus_controls.js.map +1 -0
  883. package/dist/devices/samotech.d.ts +3 -0
  884. package/dist/devices/samotech.d.ts.map +1 -0
  885. package/dist/devices/samotech.js +107 -0
  886. package/dist/devices/saswell.d.ts +3 -0
  887. package/dist/devices/saswell.d.ts.map +1 -0
  888. package/dist/devices/saswell.js +123 -0
  889. package/dist/devices/saswell.js.map +1 -0
  890. package/dist/devices/sber.d.ts +3 -0
  891. package/dist/devices/sber.d.ts.map +1 -0
  892. package/dist/devices/sber.js +98 -0
  893. package/dist/devices/scanproducts.d.ts +3 -0
  894. package/dist/devices/scanproducts.d.ts.map +1 -0
  895. package/dist/devices/scanproducts.js +54 -0
  896. package/dist/devices/schlage.d.ts +3 -0
  897. package/dist/devices/schlage.d.ts.map +1 -0
  898. package/dist/devices/schlage.js +60 -0
  899. package/dist/devices/schlage.js.map +1 -0
  900. package/dist/devices/schneider_electric.d.ts +3 -0
  901. package/dist/devices/schneider_electric.d.ts.map +1 -0
  902. package/dist/devices/schneider_electric.js +2184 -0
  903. package/dist/devices/schneider_electric.js.map +1 -0
  904. package/dist/devices/schwaiger.d.ts +3 -0
  905. package/dist/devices/schwaiger.d.ts.map +1 -0
  906. package/dist/devices/schwaiger.js +105 -0
  907. package/dist/devices/schwaiger.js.map +1 -0
  908. package/dist/devices/seastar_intelligence.d.ts +3 -0
  909. package/dist/devices/seastar_intelligence.d.ts.map +1 -0
  910. package/dist/devices/seastar_intelligence.js +52 -0
  911. package/dist/devices/securifi.d.ts +3 -0
  912. package/dist/devices/securifi.d.ts.map +1 -0
  913. package/dist/devices/securifi.js +79 -0
  914. package/dist/devices/securifi.js.map +1 -0
  915. package/dist/devices/sengled.d.ts +6 -0
  916. package/dist/devices/sengled.d.ts.map +1 -0
  917. package/dist/devices/sengled.js +388 -0
  918. package/dist/devices/sengled.js.map +1 -0
  919. package/dist/devices/sercomm.d.ts +3 -0
  920. package/dist/devices/sercomm.d.ts.map +1 -0
  921. package/dist/devices/sercomm.js +186 -0
  922. package/dist/devices/sercomm.js.map +1 -0
  923. package/dist/devices/shade_control.d.ts +3 -0
  924. package/dist/devices/shade_control.d.ts.map +1 -0
  925. package/dist/devices/shade_control.js +61 -0
  926. package/dist/devices/shade_control.js.map +1 -0
  927. package/dist/devices/shenzhen_homa.d.ts +3 -0
  928. package/dist/devices/shenzhen_homa.d.ts.map +1 -0
  929. package/dist/devices/shenzhen_homa.js +143 -0
  930. package/dist/devices/shinasystem.d.ts +3 -0
  931. package/dist/devices/shinasystem.d.ts.map +1 -0
  932. package/dist/devices/shinasystem.js +957 -0
  933. package/dist/devices/shinasystem.js.map +1 -0
  934. package/dist/devices/shyugj.d.ts +3 -0
  935. package/dist/devices/shyugj.d.ts.map +1 -0
  936. package/dist/devices/shyugj.js +53 -0
  937. package/dist/devices/siglis.d.ts +3 -0
  938. package/dist/devices/siglis.d.ts.map +1 -0
  939. package/dist/devices/siglis.js +449 -0
  940. package/dist/devices/siglis.js.map +1 -0
  941. package/dist/devices/sikom.d.ts +3 -0
  942. package/dist/devices/sikom.d.ts.map +1 -0
  943. package/dist/devices/sikom.js +64 -0
  944. package/dist/devices/sikom.js.map +1 -0
  945. package/dist/devices/simon.d.ts +3 -0
  946. package/dist/devices/simon.d.ts.map +1 -0
  947. package/dist/devices/simon.js +14 -0
  948. package/dist/devices/sinope.d.ts +3 -0
  949. package/dist/devices/sinope.d.ts.map +1 -0
  950. package/dist/devices/sinope.js +1751 -0
  951. package/dist/devices/sinope.js.map +1 -0
  952. package/dist/devices/siterwell.d.ts +3 -0
  953. package/dist/devices/siterwell.d.ts.map +1 -0
  954. package/dist/devices/siterwell.js +107 -0
  955. package/dist/devices/siterwell.js.map +1 -0
  956. package/dist/devices/skydance.d.ts +3 -0
  957. package/dist/devices/skydance.d.ts.map +1 -0
  958. package/dist/devices/skydance.js +138 -0
  959. package/dist/devices/slv.d.ts +3 -0
  960. package/dist/devices/slv.d.ts.map +1 -0
  961. package/dist/devices/slv.js +70 -0
  962. package/dist/devices/smart9.d.ts +3 -0
  963. package/dist/devices/smart9.d.ts.map +1 -0
  964. package/dist/devices/smart9.js +63 -0
  965. package/dist/devices/smart9.js.map +1 -0
  966. package/dist/devices/smart_home_pty.d.ts +3 -0
  967. package/dist/devices/smart_home_pty.d.ts.map +1 -0
  968. package/dist/devices/smart_home_pty.js +54 -0
  969. package/dist/devices/smartenit.d.ts +3 -0
  970. package/dist/devices/smartenit.d.ts.map +1 -0
  971. package/dist/devices/smartenit.js +77 -0
  972. package/dist/devices/smartenit.js.map +1 -0
  973. package/dist/devices/smartthings.d.ts +3 -0
  974. package/dist/devices/smartthings.d.ts.map +1 -0
  975. package/dist/devices/smartthings.js +523 -0
  976. package/dist/devices/smartthings.js.map +1 -0
  977. package/dist/devices/smartwings.d.ts +3 -0
  978. package/dist/devices/smartwings.d.ts.map +1 -0
  979. package/dist/devices/smartwings.js +60 -0
  980. package/dist/devices/smartwings.js.map +1 -0
  981. package/dist/devices/smlight.d.ts +3 -0
  982. package/dist/devices/smlight.d.ts.map +1 -0
  983. package/dist/devices/smlight.js +56 -0
  984. package/dist/devices/sohan_electric.d.ts +3 -0
  985. package/dist/devices/sohan_electric.d.ts.map +1 -0
  986. package/dist/devices/sohan_electric.js +50 -0
  987. package/dist/devices/sohan_electric.js.map +1 -0
  988. package/dist/devices/solaredge.d.ts +3 -0
  989. package/dist/devices/solaredge.d.ts.map +1 -0
  990. package/dist/devices/solaredge.js +47 -0
  991. package/dist/devices/soma.d.ts +3 -0
  992. package/dist/devices/soma.d.ts.map +1 -0
  993. package/dist/devices/soma.js +47 -0
  994. package/dist/devices/somfy.d.ts +3 -0
  995. package/dist/devices/somfy.d.ts.map +1 -0
  996. package/dist/devices/somfy.js +98 -0
  997. package/dist/devices/somfy.js.map +1 -0
  998. package/dist/devices/somgoms.d.ts +3 -0
  999. package/dist/devices/somgoms.d.ts.map +1 -0
  1000. package/dist/devices/somgoms.js +81 -0
  1001. package/dist/devices/somgoms.js.map +1 -0
  1002. package/dist/devices/sonoff.d.ts +3 -0
  1003. package/dist/devices/sonoff.d.ts.map +1 -0
  1004. package/dist/devices/sonoff.js +1609 -0
  1005. package/dist/devices/sonoff.js.map +1 -0
  1006. package/dist/devices/sowilo.d.ts +3 -0
  1007. package/dist/devices/sowilo.d.ts.map +1 -0
  1008. package/dist/devices/sowilo.js +47 -0
  1009. package/dist/devices/spotmau.d.ts +3 -0
  1010. package/dist/devices/spotmau.d.ts.map +1 -0
  1011. package/dist/devices/spotmau.js +74 -0
  1012. package/dist/devices/stelpro.d.ts +3 -0
  1013. package/dist/devices/stelpro.d.ts.map +1 -0
  1014. package/dist/devices/stelpro.js +362 -0
  1015. package/dist/devices/stelpro.js.map +1 -0
  1016. package/dist/devices/sunricher.d.ts +3 -0
  1017. package/dist/devices/sunricher.d.ts.map +1 -0
  1018. package/dist/devices/sunricher.js +2279 -0
  1019. package/dist/devices/sunricher.js.map +1 -0
  1020. package/dist/devices/swann.d.ts +3 -0
  1021. package/dist/devices/swann.d.ts.map +1 -0
  1022. package/dist/devices/swann.js +69 -0
  1023. package/dist/devices/swann.js.map +1 -0
  1024. package/dist/devices/sylvania.d.ts +3 -0
  1025. package/dist/devices/sylvania.d.ts.map +1 -0
  1026. package/dist/devices/sylvania.js +223 -0
  1027. package/dist/devices/sylvania.js.map +1 -0
  1028. package/dist/devices/tapestry.d.ts +3 -0
  1029. package/dist/devices/tapestry.d.ts.map +1 -0
  1030. package/dist/devices/tapestry.js +52 -0
  1031. package/dist/devices/tapestry.js.map +1 -0
  1032. package/dist/devices/tci.d.ts +3 -0
  1033. package/dist/devices/tci.d.ts.map +1 -0
  1034. package/dist/devices/tci.js +61 -0
  1035. package/dist/devices/tech.d.ts +3 -0
  1036. package/dist/devices/tech.d.ts.map +1 -0
  1037. package/dist/devices/tech.js +225 -0
  1038. package/dist/devices/tech.js.map +1 -0
  1039. package/dist/devices/technicolor.d.ts +3 -0
  1040. package/dist/devices/technicolor.d.ts.map +1 -0
  1041. package/dist/devices/technicolor.js +98 -0
  1042. package/dist/devices/technicolor.js.map +1 -0
  1043. package/dist/devices/terncy.d.ts +3 -0
  1044. package/dist/devices/terncy.d.ts.map +1 -0
  1045. package/dist/devices/terncy.js +113 -0
  1046. package/dist/devices/terncy.js.map +1 -0
  1047. package/dist/devices/the_light_group.d.ts +3 -0
  1048. package/dist/devices/the_light_group.d.ts.map +1 -0
  1049. package/dist/devices/the_light_group.js +126 -0
  1050. package/dist/devices/the_light_group.js.map +1 -0
  1051. package/dist/devices/third_reality.d.ts +3 -0
  1052. package/dist/devices/third_reality.d.ts.map +1 -0
  1053. package/dist/devices/third_reality.js +606 -0
  1054. package/dist/devices/third_reality.js.map +1 -0
  1055. package/dist/devices/titan_products.d.ts +3 -0
  1056. package/dist/devices/titan_products.d.ts.map +1 -0
  1057. package/dist/devices/titan_products.js +58 -0
  1058. package/dist/devices/titan_products.js.map +1 -0
  1059. package/dist/devices/tlwglobal.d.ts +3 -0
  1060. package/dist/devices/tlwglobal.d.ts.map +1 -0
  1061. package/dist/devices/tlwglobal.js +64 -0
  1062. package/dist/devices/tplink.d.ts +3 -0
  1063. package/dist/devices/tplink.d.ts.map +1 -0
  1064. package/dist/devices/tplink.js +77 -0
  1065. package/dist/devices/tplink.js.map +1 -0
  1066. package/dist/devices/trust.d.ts +3 -0
  1067. package/dist/devices/trust.d.ts.map +1 -0
  1068. package/dist/devices/trust.js +179 -0
  1069. package/dist/devices/trust.js.map +1 -0
  1070. package/dist/devices/tubeszb.d.ts +3 -0
  1071. package/dist/devices/tubeszb.d.ts.map +1 -0
  1072. package/dist/devices/tubeszb.js +56 -0
  1073. package/dist/devices/tubeszb.js.map +1 -0
  1074. package/dist/devices/tuya.d.ts +3 -0
  1075. package/dist/devices/tuya.d.ts.map +1 -0
  1076. package/dist/devices/tuya.js +16001 -0
  1077. package/dist/devices/tuya.js.map +1 -0
  1078. package/dist/devices/ubisys.d.ts +3 -0
  1079. package/dist/devices/ubisys.d.ts.map +1 -0
  1080. package/dist/devices/ubisys.js +1307 -0
  1081. package/dist/devices/ubisys.js.map +1 -0
  1082. package/dist/devices/uhome.d.ts +3 -0
  1083. package/dist/devices/uhome.d.ts.map +1 -0
  1084. package/dist/devices/uhome.js +60 -0
  1085. package/dist/devices/uhome.js.map +1 -0
  1086. package/dist/devices/universal_electronics_inc.d.ts +3 -0
  1087. package/dist/devices/universal_electronics_inc.d.ts.map +1 -0
  1088. package/dist/devices/universal_electronics_inc.js +182 -0
  1089. package/dist/devices/universal_electronics_inc.js.map +1 -0
  1090. package/dist/devices/vbled.d.ts +3 -0
  1091. package/dist/devices/vbled.d.ts.map +1 -0
  1092. package/dist/devices/vbled.js +47 -0
  1093. package/dist/devices/vesternet.d.ts +3 -0
  1094. package/dist/devices/vesternet.d.ts.map +1 -0
  1095. package/dist/devices/vesternet.js +326 -0
  1096. package/dist/devices/vesternet.js.map +1 -0
  1097. package/dist/devices/viessmann.d.ts +3 -0
  1098. package/dist/devices/viessmann.d.ts.map +1 -0
  1099. package/dist/devices/viessmann.js +120 -0
  1100. package/dist/devices/viessmann.js.map +1 -0
  1101. package/dist/devices/villeroy_boch.d.ts +3 -0
  1102. package/dist/devices/villeroy_boch.d.ts.map +1 -0
  1103. package/dist/devices/villeroy_boch.js +54 -0
  1104. package/dist/devices/vimar.d.ts +3 -0
  1105. package/dist/devices/vimar.d.ts.map +1 -0
  1106. package/dist/devices/vimar.js +133 -0
  1107. package/dist/devices/vimar.js.map +1 -0
  1108. package/dist/devices/visonic.d.ts +3 -0
  1109. package/dist/devices/visonic.d.ts.map +1 -0
  1110. package/dist/devices/visonic.js +134 -0
  1111. package/dist/devices/visonic.js.map +1 -0
  1112. package/dist/devices/vrey.d.ts +3 -0
  1113. package/dist/devices/vrey.d.ts.map +1 -0
  1114. package/dist/devices/vrey.js +48 -0
  1115. package/dist/devices/wally.d.ts +3 -0
  1116. package/dist/devices/wally.d.ts.map +1 -0
  1117. package/dist/devices/wally.js +60 -0
  1118. package/dist/devices/wally.js.map +1 -0
  1119. package/dist/devices/waxman.d.ts +3 -0
  1120. package/dist/devices/waxman.d.ts.map +1 -0
  1121. package/dist/devices/waxman.js +81 -0
  1122. package/dist/devices/waxman.js.map +1 -0
  1123. package/dist/devices/weiser.d.ts +3 -0
  1124. package/dist/devices/weiser.d.ts.map +1 -0
  1125. package/dist/devices/weiser.js +99 -0
  1126. package/dist/devices/weiser.js.map +1 -0
  1127. package/dist/devices/weten.d.ts +3 -0
  1128. package/dist/devices/weten.d.ts.map +1 -0
  1129. package/dist/devices/weten.js +85 -0
  1130. package/dist/devices/weten.js.map +1 -0
  1131. package/dist/devices/wirenboard.d.ts +3 -0
  1132. package/dist/devices/wirenboard.d.ts.map +1 -0
  1133. package/dist/devices/wirenboard.js +663 -0
  1134. package/dist/devices/wirenboard.js.map +1 -0
  1135. package/dist/devices/wisdom.d.ts +3 -0
  1136. package/dist/devices/wisdom.d.ts.map +1 -0
  1137. package/dist/devices/wisdom.js +47 -0
  1138. package/dist/devices/woolley.d.ts +3 -0
  1139. package/dist/devices/woolley.d.ts.map +1 -0
  1140. package/dist/devices/woolley.js +84 -0
  1141. package/dist/devices/woolley.js.map +1 -0
  1142. package/dist/devices/woox.d.ts +3 -0
  1143. package/dist/devices/woox.d.ts.map +1 -0
  1144. package/dist/devices/woox.js +129 -0
  1145. package/dist/devices/woox.js.map +1 -0
  1146. package/dist/devices/wyze.d.ts +3 -0
  1147. package/dist/devices/wyze.d.ts.map +1 -0
  1148. package/dist/devices/wyze.js +59 -0
  1149. package/dist/devices/wyze.js.map +1 -0
  1150. package/dist/devices/xal.d.ts +3 -0
  1151. package/dist/devices/xal.d.ts.map +1 -0
  1152. package/dist/devices/xal.js +61 -0
  1153. package/dist/devices/xinghuoyuan.d.ts +3 -0
  1154. package/dist/devices/xinghuoyuan.d.ts.map +1 -0
  1155. package/dist/devices/xinghuoyuan.js +47 -0
  1156. package/dist/devices/xyzroe.d.ts +3 -0
  1157. package/dist/devices/xyzroe.d.ts.map +1 -0
  1158. package/dist/devices/xyzroe.js +513 -0
  1159. package/dist/devices/xyzroe.js.map +1 -0
  1160. package/dist/devices/yale.d.ts +3 -0
  1161. package/dist/devices/yale.d.ts.map +1 -0
  1162. package/dist/devices/yale.js +499 -0
  1163. package/dist/devices/yale.js.map +1 -0
  1164. package/dist/devices/yandex.d.ts +3 -0
  1165. package/dist/devices/yandex.d.ts.map +1 -0
  1166. package/dist/devices/yandex.js +444 -0
  1167. package/dist/devices/yandex.js.map +1 -0
  1168. package/dist/devices/ynoa.d.ts +3 -0
  1169. package/dist/devices/ynoa.d.ts.map +1 -0
  1170. package/dist/devices/ynoa.js +109 -0
  1171. package/dist/devices/ynoa.js.map +1 -0
  1172. package/dist/devices/yokis.d.ts +3 -0
  1173. package/dist/devices/yokis.d.ts.map +1 -0
  1174. package/dist/devices/yokis.js +2532 -0
  1175. package/dist/devices/yokis.js.map +1 -0
  1176. package/dist/devices/yookee.d.ts +3 -0
  1177. package/dist/devices/yookee.d.ts.map +1 -0
  1178. package/dist/devices/yookee.js +59 -0
  1179. package/dist/devices/yookee.js.map +1 -0
  1180. package/dist/devices/ysrsai.d.ts +3 -0
  1181. package/dist/devices/ysrsai.d.ts.map +1 -0
  1182. package/dist/devices/ysrsai.js +65 -0
  1183. package/dist/devices/zemismart.d.ts +3 -0
  1184. package/dist/devices/zemismart.d.ts.map +1 -0
  1185. package/dist/devices/zemismart.js +388 -0
  1186. package/dist/devices/zemismart.js.map +1 -0
  1187. package/dist/devices/zen.d.ts +3 -0
  1188. package/dist/devices/zen.d.ts.map +1 -0
  1189. package/dist/devices/zen.js +92 -0
  1190. package/dist/devices/zen.js.map +1 -0
  1191. package/dist/devices/zigbeetlc.js +235 -0
  1192. package/dist/devices/zipato.d.ts +3 -0
  1193. package/dist/devices/zipato.d.ts.map +1 -0
  1194. package/dist/devices/zipato.js +47 -0
  1195. package/dist/index.d.ts +20 -0
  1196. package/dist/index.d.ts.map +1 -0
  1197. package/dist/index.js +513 -0
  1198. package/dist/index.js.map +1 -0
  1199. package/dist/indexer.d.ts +5 -0
  1200. package/dist/indexer.d.ts.map +1 -0
  1201. package/dist/indexer.js +135 -0
  1202. package/dist/indexer.js.map +1 -0
  1203. package/dist/lib/color.d.ts +271 -0
  1204. package/dist/lib/color.d.ts.map +1 -0
  1205. package/dist/lib/color.js +754 -0
  1206. package/dist/lib/color.js.map +1 -0
  1207. package/dist/lib/configureKey.d.ts +3 -0
  1208. package/dist/lib/configureKey.d.ts.map +1 -0
  1209. package/dist/lib/configureKey.js +938 -0
  1210. package/dist/lib/configureKey.js.map +1 -0
  1211. package/dist/lib/constants.d.ts +68 -0
  1212. package/dist/lib/constants.d.ts.map +1 -0
  1213. package/dist/lib/constants.js +264 -0
  1214. package/dist/lib/constants.js.map +1 -0
  1215. package/dist/lib/develco.d.ts +15 -0
  1216. package/dist/lib/develco.d.ts.map +1 -0
  1217. package/dist/lib/develco.js +183 -0
  1218. package/dist/lib/develco.js.map +1 -0
  1219. package/dist/lib/ewelink.d.ts +30 -0
  1220. package/dist/lib/ewelink.d.ts.map +1 -0
  1221. package/dist/lib/ewelink.js +716 -0
  1222. package/dist/lib/ewelink.js.map +1 -0
  1223. package/dist/lib/exposes.d.ts +360 -0
  1224. package/dist/lib/exposes.d.ts.map +1 -0
  1225. package/dist/lib/exposes.js +1085 -0
  1226. package/dist/lib/exposes.js.map +1 -0
  1227. package/dist/lib/generateDefinition.d.ts +6 -0
  1228. package/dist/lib/generateDefinition.d.ts.map +1 -0
  1229. package/dist/lib/generateDefinition.js +345 -0
  1230. package/dist/lib/generateDefinition.js.map +1 -0
  1231. package/dist/lib/ikea.d.ts +39 -0
  1232. package/dist/lib/ikea.d.ts.map +1 -0
  1233. package/dist/lib/ikea.js +782 -0
  1234. package/dist/lib/ikea.js.map +1 -0
  1235. package/dist/lib/kelvinToXy.js +1913 -0
  1236. package/dist/lib/kelvinToXy.js.map +1 -0
  1237. package/dist/lib/ledvance.d.ts +20 -0
  1238. package/dist/lib/ledvance.d.ts.map +1 -0
  1239. package/dist/lib/ledvance.js +103 -0
  1240. package/dist/lib/ledvance.js.map +1 -0
  1241. package/dist/lib/legacy.d.ts +5054 -0
  1242. package/dist/lib/legacy.d.ts.map +1 -0
  1243. package/dist/lib/legacy.js +6456 -0
  1244. package/dist/lib/legacy.js.map +1 -0
  1245. package/dist/lib/legrand.d.ts +69 -0
  1246. package/dist/lib/legrand.d.ts.map +1 -0
  1247. package/dist/lib/legrand.js +282 -0
  1248. package/dist/lib/legrand.js.map +1 -0
  1249. package/dist/lib/light.d.ts +8 -0
  1250. package/dist/lib/light.d.ts.map +1 -0
  1251. package/dist/lib/light.js +142 -0
  1252. package/dist/lib/light.js.map +1 -0
  1253. package/dist/lib/logger.d.ts +4 -0
  1254. package/dist/lib/logger.d.ts.map +1 -0
  1255. package/dist/lib/logger.js +14 -0
  1256. package/dist/lib/lumi.d.ts +950 -0
  1257. package/dist/lib/lumi.d.ts.map +1 -0
  1258. package/dist/lib/lumi.js +5017 -0
  1259. package/dist/lib/lumi.js.map +1 -0
  1260. package/dist/lib/modernExtend.d.ts +337 -0
  1261. package/dist/lib/modernExtend.d.ts.map +1 -0
  1262. package/dist/lib/modernExtend.js +2088 -0
  1263. package/dist/lib/modernExtend.js.map +1 -0
  1264. package/dist/lib/namron.d.ts +56 -0
  1265. package/dist/lib/namron.d.ts.map +1 -0
  1266. package/dist/lib/namron.js +434 -0
  1267. package/dist/lib/namron.js.map +1 -0
  1268. package/dist/lib/nodon.d.ts +3 -0
  1269. package/dist/lib/nodon.d.ts.map +1 -0
  1270. package/dist/lib/nodon.js +130 -0
  1271. package/dist/lib/nodon.js.map +1 -0
  1272. package/dist/lib/ota.d.ts +71 -0
  1273. package/dist/lib/ota.d.ts.map +1 -0
  1274. package/dist/lib/ota.js +661 -0
  1275. package/dist/lib/ota.js.map +1 -0
  1276. package/dist/lib/philips.d.ts +252 -0
  1277. package/dist/lib/philips.d.ts.map +1 -0
  1278. package/dist/lib/philips.js +684 -0
  1279. package/dist/lib/philips.js.map +1 -0
  1280. package/dist/lib/reporting.d.ts +58 -0
  1281. package/dist/lib/reporting.d.ts.map +1 -0
  1282. package/dist/lib/reporting.js +285 -0
  1283. package/dist/lib/store.d.ts +7 -0
  1284. package/dist/lib/store.d.ts.map +1 -0
  1285. package/dist/lib/store.js +49 -0
  1286. package/dist/lib/store.js.map +1 -0
  1287. package/dist/lib/sunricher.d.ts +13 -0
  1288. package/dist/lib/sunricher.d.ts.map +1 -0
  1289. package/dist/lib/sunricher.js +14 -0
  1290. package/dist/lib/tuya.d.ts +784 -0
  1291. package/dist/lib/tuya.d.ts.map +1 -0
  1292. package/dist/lib/tuya.js +2394 -0
  1293. package/dist/lib/tuya.js.map +1 -0
  1294. package/dist/lib/types.d.ts +440 -0
  1295. package/dist/lib/types.d.ts.map +1 -0
  1296. package/dist/lib/ubisys.d.ts +19 -0
  1297. package/dist/lib/ubisys.d.ts.map +1 -0
  1298. package/dist/lib/ubisys.js +293 -0
  1299. package/dist/lib/ubisys.js.map +1 -0
  1300. package/dist/lib/utils.d.ts +93 -0
  1301. package/dist/lib/utils.d.ts.map +1 -0
  1302. package/dist/lib/utils.js +726 -0
  1303. package/dist/lib/utils.js.map +1 -0
  1304. package/dist/lib/zosung.d.ts +52 -0
  1305. package/dist/lib/zosung.d.ts.map +1 -0
  1306. package/dist/lib/zosung.js +253 -0
  1307. package/dist/lib/zosung.js.map +1 -0
  1308. package/dist/models-index.json +1 -0
  1309. package/package.json +21 -29
  1310. package/converters/fromZigbee.d.ts +0 -2031
  1311. package/converters/fromZigbee.d.ts.map +0 -1
  1312. package/converters/fromZigbee.js +0 -5324
  1313. package/converters/fromZigbee.js.map +0 -1
  1314. package/converters/toZigbee.d.ts +0 -1574
  1315. package/converters/toZigbee.d.ts.map +0 -1
  1316. package/converters/toZigbee.js +0 -4433
  1317. package/converters/toZigbee.js.map +0 -1
  1318. package/devices/ITCommander.d.ts +0 -3
  1319. package/devices/ITCommander.d.ts.map +0 -1
  1320. package/devices/ITCommander.js +0 -76
  1321. package/devices/ITCommander.js.map +0 -1
  1322. package/devices/acova.d.ts +0 -3
  1323. package/devices/acova.d.ts.map +0 -1
  1324. package/devices/acova.js +0 -126
  1325. package/devices/acova.js.map +0 -1
  1326. package/devices/acuity_brands_lighting.d.ts +0 -3
  1327. package/devices/acuity_brands_lighting.d.ts.map +0 -1
  1328. package/devices/acuity_brands_lighting.js +0 -61
  1329. package/devices/adeo.d.ts +0 -3
  1330. package/devices/adeo.d.ts.map +0 -1
  1331. package/devices/adeo.js +0 -485
  1332. package/devices/adeo.js.map +0 -1
  1333. package/devices/adurosmart.d.ts +0 -3
  1334. package/devices/adurosmart.d.ts.map +0 -1
  1335. package/devices/adurosmart.js +0 -189
  1336. package/devices/adurosmart.js.map +0 -1
  1337. package/devices/aeotec.d.ts +0 -3
  1338. package/devices/aeotec.d.ts.map +0 -1
  1339. package/devices/aeotec.js +0 -98
  1340. package/devices/aeotec.js.map +0 -1
  1341. package/devices/airam.d.ts +0 -3
  1342. package/devices/airam.d.ts.map +0 -1
  1343. package/devices/airam.js +0 -105
  1344. package/devices/airam.js.map +0 -1
  1345. package/devices/airzone_aidoo.d.ts +0 -3
  1346. package/devices/airzone_aidoo.d.ts.map +0 -1
  1347. package/devices/airzone_aidoo.js +0 -80
  1348. package/devices/airzone_aidoo.js.map +0 -1
  1349. package/devices/ajax_online.d.ts +0 -3
  1350. package/devices/ajax_online.d.ts.map +0 -1
  1351. package/devices/ajax_online.js +0 -83
  1352. package/devices/akuvox.d.ts +0 -3
  1353. package/devices/akuvox.d.ts.map +0 -1
  1354. package/devices/akuvox.js +0 -68
  1355. package/devices/akuvox.js.map +0 -1
  1356. package/devices/alchemy.d.ts +0 -3
  1357. package/devices/alchemy.d.ts.map +0 -1
  1358. package/devices/alchemy.js +0 -54
  1359. package/devices/aldi.d.ts +0 -3
  1360. package/devices/aldi.d.ts.map +0 -1
  1361. package/devices/aldi.js +0 -57
  1362. package/devices/aldi.js.map +0 -1
  1363. package/devices/alecto.d.ts +0 -3
  1364. package/devices/alecto.d.ts.map +0 -1
  1365. package/devices/alecto.js +0 -95
  1366. package/devices/alecto.js.map +0 -1
  1367. package/devices/amina.d.ts +0 -3
  1368. package/devices/amina.d.ts.map +0 -1
  1369. package/devices/amina.js +0 -369
  1370. package/devices/amina.js.map +0 -1
  1371. package/devices/anchor.d.ts +0 -3
  1372. package/devices/anchor.d.ts.map +0 -1
  1373. package/devices/anchor.js +0 -47
  1374. package/devices/atlantic.d.ts +0 -3
  1375. package/devices/atlantic.d.ts.map +0 -1
  1376. package/devices/atlantic.js +0 -145
  1377. package/devices/atlantic.js.map +0 -1
  1378. package/devices/atsmart.d.ts +0 -3
  1379. package/devices/atsmart.d.ts.map +0 -1
  1380. package/devices/atsmart.js +0 -47
  1381. package/devices/aubess.d.ts +0 -3
  1382. package/devices/aubess.d.ts.map +0 -1
  1383. package/devices/aubess.js +0 -60
  1384. package/devices/aurora_lighting.d.ts +0 -3
  1385. package/devices/aurora_lighting.d.ts.map +0 -1
  1386. package/devices/aurora_lighting.js +0 -332
  1387. package/devices/aurora_lighting.js.map +0 -1
  1388. package/devices/automaton.d.ts +0 -3
  1389. package/devices/automaton.d.ts.map +0 -1
  1390. package/devices/automaton.js +0 -64
  1391. package/devices/avatto.d.ts +0 -3
  1392. package/devices/avatto.d.ts.map +0 -1
  1393. package/devices/avatto.js +0 -273
  1394. package/devices/avatto.js.map +0 -1
  1395. package/devices/awox.d.ts +0 -3
  1396. package/devices/awox.d.ts.map +0 -1
  1397. package/devices/awox.js +0 -239
  1398. package/devices/awox.js.map +0 -1
  1399. package/devices/axis.d.ts +0 -3
  1400. package/devices/axis.d.ts.map +0 -1
  1401. package/devices/axis.js +0 -62
  1402. package/devices/axis.js.map +0 -1
  1403. package/devices/bankamp.d.ts +0 -3
  1404. package/devices/bankamp.d.ts.map +0 -1
  1405. package/devices/bankamp.js +0 -47
  1406. package/devices/bega.d.ts +0 -3
  1407. package/devices/bega.d.ts.map +0 -1
  1408. package/devices/bega.js +0 -61
  1409. package/devices/belkin.d.ts +0 -3
  1410. package/devices/belkin.d.ts.map +0 -1
  1411. package/devices/belkin.js +0 -47
  1412. package/devices/bitron.d.ts +0 -3
  1413. package/devices/bitron.d.ts.map +0 -1
  1414. package/devices/bitron.js +0 -357
  1415. package/devices/bitron.js.map +0 -1
  1416. package/devices/bituo_technik.d.ts +0 -3
  1417. package/devices/bituo_technik.d.ts.map +0 -1
  1418. package/devices/bituo_technik.js +0 -120
  1419. package/devices/bituo_technik.js.map +0 -1
  1420. package/devices/blaupunkt.d.ts +0 -3
  1421. package/devices/blaupunkt.d.ts.map +0 -1
  1422. package/devices/blaupunkt.js +0 -67
  1423. package/devices/blaupunkt.js.map +0 -1
  1424. package/devices/blitzwolf.d.ts +0 -3
  1425. package/devices/blitzwolf.d.ts.map +0 -1
  1426. package/devices/blitzwolf.js +0 -73
  1427. package/devices/blitzwolf.js.map +0 -1
  1428. package/devices/bosch.d.ts +0 -3
  1429. package/devices/bosch.d.ts.map +0 -1
  1430. package/devices/bosch.js +0 -2046
  1431. package/devices/bosch.js.map +0 -1
  1432. package/devices/bouffalo_lab.d.ts +0 -3
  1433. package/devices/bouffalo_lab.d.ts.map +0 -1
  1434. package/devices/bouffalo_lab.js +0 -47
  1435. package/devices/brimate.d.ts +0 -3
  1436. package/devices/brimate.d.ts.map +0 -1
  1437. package/devices/brimate.js +0 -54
  1438. package/devices/brimate.js.map +0 -1
  1439. package/devices/bseed.d.ts +0 -3
  1440. package/devices/bseed.d.ts.map +0 -1
  1441. package/devices/bseed.js +0 -53
  1442. package/devices/bticino.d.ts +0 -3
  1443. package/devices/bticino.d.ts.map +0 -1
  1444. package/devices/bticino.js +0 -112
  1445. package/devices/bticino.js.map +0 -1
  1446. package/devices/busch_jaeger.d.ts +0 -3
  1447. package/devices/busch_jaeger.d.ts.map +0 -1
  1448. package/devices/busch_jaeger.js +0 -184
  1449. package/devices/busch_jaeger.js.map +0 -1
  1450. package/devices/byun.d.ts +0 -3
  1451. package/devices/byun.d.ts.map +0 -1
  1452. package/devices/byun.js +0 -63
  1453. package/devices/byun.js.map +0 -1
  1454. package/devices/calex.d.ts +0 -3
  1455. package/devices/calex.d.ts.map +0 -1
  1456. package/devices/calex.js +0 -90
  1457. package/devices/calex.js.map +0 -1
  1458. package/devices/candeo.d.ts +0 -3
  1459. package/devices/candeo.d.ts.map +0 -1
  1460. package/devices/candeo.js +0 -224
  1461. package/devices/casaia.d.ts +0 -3
  1462. package/devices/casaia.d.ts.map +0 -1
  1463. package/devices/casaia.js +0 -98
  1464. package/devices/casaia.js.map +0 -1
  1465. package/devices/cel.d.ts +0 -3
  1466. package/devices/cel.d.ts.map +0 -1
  1467. package/devices/cel.js +0 -19
  1468. package/devices/cel.js.map +0 -1
  1469. package/devices/centralite.d.ts +0 -3
  1470. package/devices/centralite.d.ts.map +0 -1
  1471. package/devices/centralite.js +0 -452
  1472. package/devices/centralite.js.map +0 -1
  1473. package/devices/chacon.d.ts +0 -3
  1474. package/devices/chacon.d.ts.map +0 -1
  1475. package/devices/chacon.js +0 -57
  1476. package/devices/cleode.d.ts +0 -3
  1477. package/devices/cleode.d.ts.map +0 -1
  1478. package/devices/cleode.js +0 -47
  1479. package/devices/cleverio.d.ts +0 -3
  1480. package/devices/cleverio.d.ts.map +0 -1
  1481. package/devices/cleverio.js +0 -77
  1482. package/devices/cleverio.js.map +0 -1
  1483. package/devices/climax.d.ts +0 -3
  1484. package/devices/climax.d.ts.map +0 -1
  1485. package/devices/climax.js +0 -180
  1486. package/devices/climax.js.map +0 -1
  1487. package/devices/commercial_electric.d.ts +0 -3
  1488. package/devices/commercial_electric.d.ts.map +0 -1
  1489. package/devices/commercial_electric.js +0 -47
  1490. package/devices/cree.d.ts +0 -3
  1491. package/devices/cree.d.ts.map +0 -1
  1492. package/devices/cree.js +0 -47
  1493. package/devices/ctm.d.ts +0 -3
  1494. package/devices/ctm.d.ts.map +0 -1
  1495. package/devices/ctm.js +0 -1361
  1496. package/devices/ctm.js.map +0 -1
  1497. package/devices/current_products_corp.d.ts +0 -3
  1498. package/devices/current_products_corp.d.ts.map +0 -1
  1499. package/devices/current_products_corp.js +0 -63
  1500. package/devices/current_products_corp.js.map +0 -1
  1501. package/devices/custom_devices_diy.d.ts +0 -3
  1502. package/devices/custom_devices_diy.d.ts.map +0 -1
  1503. package/devices/custom_devices_diy.js +0 -1206
  1504. package/devices/custom_devices_diy.js.map +0 -1
  1505. package/devices/cy_lighting.d.ts +0 -3
  1506. package/devices/cy_lighting.d.ts.map +0 -1
  1507. package/devices/cy_lighting.js +0 -47
  1508. package/devices/danalock.d.ts +0 -3
  1509. package/devices/danalock.d.ts.map +0 -1
  1510. package/devices/danalock.js +0 -64
  1511. package/devices/danalock.js.map +0 -1
  1512. package/devices/danfoss.d.ts +0 -3
  1513. package/devices/danfoss.d.ts.map +0 -1
  1514. package/devices/danfoss.js +0 -741
  1515. package/devices/danfoss.js.map +0 -1
  1516. package/devices/databyte.d.ts +0 -3
  1517. package/devices/databyte.d.ts.map +0 -1
  1518. package/devices/databyte.js +0 -93
  1519. package/devices/databyte.js.map +0 -1
  1520. package/devices/datek.d.ts +0 -3
  1521. package/devices/datek.d.ts.map +0 -1
  1522. package/devices/datek.js +0 -307
  1523. package/devices/datek.js.map +0 -1
  1524. package/devices/dawon_dns.d.ts +0 -3
  1525. package/devices/dawon_dns.d.ts.map +0 -1
  1526. package/devices/dawon_dns.js +0 -317
  1527. package/devices/dawon_dns.js.map +0 -1
  1528. package/devices/develco.d.ts +0 -3
  1529. package/devices/develco.d.ts.map +0 -1
  1530. package/devices/develco.js +0 -1034
  1531. package/devices/develco.js.map +0 -1
  1532. package/devices/digi.d.ts +0 -3
  1533. package/devices/digi.d.ts.map +0 -1
  1534. package/devices/digi.js +0 -24
  1535. package/devices/direct_signs.d.ts +0 -3
  1536. package/devices/direct_signs.d.ts.map +0 -1
  1537. package/devices/direct_signs.js +0 -47
  1538. package/devices/diyruz.d.ts +0 -3
  1539. package/devices/diyruz.d.ts.map +0 -1
  1540. package/devices/diyruz.js +0 -400
  1541. package/devices/diyruz.js.map +0 -1
  1542. package/devices/dlink.d.ts +0 -3
  1543. package/devices/dlink.d.ts.map +0 -1
  1544. package/devices/dlink.js +0 -75
  1545. package/devices/dlink.js.map +0 -1
  1546. package/devices/dnake.d.ts +0 -3
  1547. package/devices/dnake.d.ts.map +0 -1
  1548. package/devices/dnake.js +0 -47
  1549. package/devices/dowsing_reynolds.d.ts +0 -3
  1550. package/devices/dowsing_reynolds.d.ts.map +0 -1
  1551. package/devices/dowsing_reynolds.js +0 -47
  1552. package/devices/dresden_elektronik.d.ts +0 -3
  1553. package/devices/dresden_elektronik.d.ts.map +0 -1
  1554. package/devices/dresden_elektronik.js +0 -82
  1555. package/devices/easyaccess.d.ts +0 -3
  1556. package/devices/easyaccess.d.ts.map +0 -1
  1557. package/devices/easyaccess.js +0 -70
  1558. package/devices/easyaccess.js.map +0 -1
  1559. package/devices/easyiot.d.ts +0 -3
  1560. package/devices/easyiot.d.ts.map +0 -1
  1561. package/devices/easyiot.js +0 -357
  1562. package/devices/easyiot.js.map +0 -1
  1563. package/devices/eatonhalo_led.d.ts +0 -3
  1564. package/devices/eatonhalo_led.d.ts.map +0 -1
  1565. package/devices/eatonhalo_led.js +0 -47
  1566. package/devices/echostar.d.ts +0 -3
  1567. package/devices/echostar.d.ts.map +0 -1
  1568. package/devices/echostar.js +0 -64
  1569. package/devices/echostar.js.map +0 -1
  1570. package/devices/ecodim.d.ts +0 -3
  1571. package/devices/ecodim.d.ts.map +0 -1
  1572. package/devices/ecodim.js +0 -269
  1573. package/devices/ecodim.js.map +0 -1
  1574. package/devices/ecolink.d.ts +0 -3
  1575. package/devices/ecolink.d.ts.map +0 -1
  1576. package/devices/ecolink.js +0 -60
  1577. package/devices/ecolink.js.map +0 -1
  1578. package/devices/ecosmart.d.ts +0 -3
  1579. package/devices/ecosmart.d.ts.map +0 -1
  1580. package/devices/ecosmart.js +0 -115
  1581. package/devices/ecozy.d.ts +0 -3
  1582. package/devices/ecozy.d.ts.map +0 -1
  1583. package/devices/ecozy.js +0 -88
  1584. package/devices/ecozy.js.map +0 -1
  1585. package/devices/edp.d.ts +0 -3
  1586. package/devices/edp.d.ts.map +0 -1
  1587. package/devices/edp.js +0 -73
  1588. package/devices/edp.js.map +0 -1
  1589. package/devices/efekta.d.ts +0 -3
  1590. package/devices/efekta.d.ts.map +0 -1
  1591. package/devices/efekta.js +0 -2632
  1592. package/devices/efekta.js.map +0 -1
  1593. package/devices/eglo.d.ts +0 -3
  1594. package/devices/eglo.d.ts.map +0 -1
  1595. package/devices/eglo.js +0 -133
  1596. package/devices/eglo.js.map +0 -1
  1597. package/devices/elko.d.ts +0 -3
  1598. package/devices/elko.d.ts.map +0 -1
  1599. package/devices/elko.js +0 -239
  1600. package/devices/elko.js.map +0 -1
  1601. package/devices/enbrighten.d.ts +0 -3
  1602. package/devices/enbrighten.d.ts.map +0 -1
  1603. package/devices/enbrighten.js +0 -156
  1604. package/devices/enocean.d.ts +0 -3
  1605. package/devices/enocean.d.ts.map +0 -1
  1606. package/devices/enocean.js +0 -152
  1607. package/devices/enocean.js.map +0 -1
  1608. package/devices/envilar.d.ts +0 -3
  1609. package/devices/envilar.d.ts.map +0 -1
  1610. package/devices/envilar.js +0 -99
  1611. package/devices/envilar.js.map +0 -1
  1612. package/devices/essentialb.d.ts +0 -3
  1613. package/devices/essentialb.d.ts.map +0 -1
  1614. package/devices/essentialb.js +0 -136
  1615. package/devices/essentialb.js.map +0 -1
  1616. package/devices/essentials.d.ts +0 -3
  1617. package/devices/essentials.d.ts.map +0 -1
  1618. package/devices/essentials.js +0 -150
  1619. package/devices/eucontrols.d.ts +0 -3
  1620. package/devices/eucontrols.d.ts.map +0 -1
  1621. package/devices/eucontrols.js +0 -47
  1622. package/devices/eurotronic.d.ts +0 -3
  1623. package/devices/eurotronic.d.ts.map +0 -1
  1624. package/devices/eurotronic.js +0 -205
  1625. package/devices/eurotronic.js.map +0 -1
  1626. package/devices/evanell.d.ts +0 -3
  1627. package/devices/evanell.d.ts.map +0 -1
  1628. package/devices/evanell.js +0 -71
  1629. package/devices/evn.d.ts +0 -3
  1630. package/devices/evn.d.ts.map +0 -1
  1631. package/devices/evn.js +0 -93
  1632. package/devices/evn.js.map +0 -1
  1633. package/devices/evology.d.ts +0 -3
  1634. package/devices/evology.d.ts.map +0 -1
  1635. package/devices/evology.js +0 -63
  1636. package/devices/evology.js.map +0 -1
  1637. package/devices/evvr.d.ts +0 -3
  1638. package/devices/evvr.d.ts.map +0 -1
  1639. package/devices/evvr.js +0 -47
  1640. package/devices/ewelink.d.ts +0 -3
  1641. package/devices/ewelink.d.ts.map +0 -1
  1642. package/devices/ewelink.js +0 -352
  1643. package/devices/ewelink.js.map +0 -1
  1644. package/devices/ezex.d.ts +0 -3
  1645. package/devices/ezex.d.ts.map +0 -1
  1646. package/devices/ezex.js +0 -47
  1647. package/devices/fantem.d.ts +0 -3
  1648. package/devices/fantem.d.ts.map +0 -1
  1649. package/devices/fantem.js +0 -114
  1650. package/devices/fantem.js.map +0 -1
  1651. package/devices/feibit.d.ts +0 -3
  1652. package/devices/feibit.d.ts.map +0 -1
  1653. package/devices/feibit.js +0 -344
  1654. package/devices/feibit.js.map +0 -1
  1655. package/devices/fireangel.d.ts +0 -3
  1656. package/devices/fireangel.d.ts.map +0 -1
  1657. package/devices/fireangel.js +0 -54
  1658. package/devices/fireangel.js.map +0 -1
  1659. package/devices/frankever.d.ts +0 -3
  1660. package/devices/frankever.d.ts.map +0 -1
  1661. package/devices/frankever.js +0 -67
  1662. package/devices/frient.d.ts +0 -3
  1663. package/devices/frient.d.ts.map +0 -1
  1664. package/devices/frient.js +0 -74
  1665. package/devices/futurehome.d.ts +0 -3
  1666. package/devices/futurehome.d.ts.map +0 -1
  1667. package/devices/futurehome.js +0 -123
  1668. package/devices/ge.d.ts +0 -3
  1669. package/devices/ge.d.ts.map +0 -1
  1670. package/devices/ge.js +0 -133
  1671. package/devices/ge.js.map +0 -1
  1672. package/devices/gewiss.d.ts +0 -3
  1673. package/devices/gewiss.d.ts.map +0 -1
  1674. package/devices/gewiss.js +0 -85
  1675. package/devices/gewiss.js.map +0 -1
  1676. package/devices/gidealed.d.ts +0 -3
  1677. package/devices/gidealed.d.ts.map +0 -1
  1678. package/devices/gidealed.js +0 -47
  1679. package/devices/giderwel.d.ts +0 -3
  1680. package/devices/giderwel.d.ts.map +0 -1
  1681. package/devices/giderwel.js +0 -47
  1682. package/devices/giex.d.ts +0 -3
  1683. package/devices/giex.d.ts.map +0 -1
  1684. package/devices/giex.js +0 -114
  1685. package/devices/girier.d.ts +0 -3
  1686. package/devices/girier.d.ts.map +0 -1
  1687. package/devices/girier.js +0 -51
  1688. package/devices/gledopto.d.ts +0 -3
  1689. package/devices/gledopto.d.ts.map +0 -1
  1690. package/devices/gledopto.js +0 -1052
  1691. package/devices/gledopto.js.map +0 -1
  1692. package/devices/gmmts.d.ts +0 -3
  1693. package/devices/gmmts.d.ts.map +0 -1
  1694. package/devices/gmmts.js +0 -2285
  1695. package/devices/gmmts.js.map +0 -1
  1696. package/devices/gmy.d.ts +0 -3
  1697. package/devices/gmy.d.ts.map +0 -1
  1698. package/devices/gmy.js +0 -47
  1699. package/devices/gs.d.ts +0 -3
  1700. package/devices/gs.d.ts.map +0 -1
  1701. package/devices/gs.js +0 -121
  1702. package/devices/gumax.d.ts +0 -3
  1703. package/devices/gumax.d.ts.map +0 -1
  1704. package/devices/gumax.js +0 -47
  1705. package/devices/halemeier.d.ts +0 -3
  1706. package/devices/halemeier.d.ts.map +0 -1
  1707. package/devices/halemeier.js +0 -128
  1708. package/devices/halemeier.js.map +0 -1
  1709. package/devices/hampton_bay.d.ts +0 -3
  1710. package/devices/hampton_bay.d.ts.map +0 -1
  1711. package/devices/hampton_bay.js +0 -71
  1712. package/devices/hampton_bay.js.map +0 -1
  1713. package/devices/heatit.d.ts +0 -3
  1714. package/devices/heatit.d.ts.map +0 -1
  1715. package/devices/heatit.js +0 -47
  1716. package/devices/heiman.d.ts +0 -3
  1717. package/devices/heiman.d.ts.map +0 -1
  1718. package/devices/heiman.js +0 -816
  1719. package/devices/heiman.js.map +0 -1
  1720. package/devices/heimgard_technologies.d.ts +0 -3
  1721. package/devices/heimgard_technologies.d.ts.map +0 -1
  1722. package/devices/heimgard_technologies.js +0 -192
  1723. package/devices/heimgard_technologies.js.map +0 -1
  1724. package/devices/hej.d.ts +0 -3
  1725. package/devices/hej.d.ts.map +0 -1
  1726. package/devices/hej.js +0 -105
  1727. package/devices/hfh.d.ts +0 -3
  1728. package/devices/hfh.d.ts.map +0 -1
  1729. package/devices/hfh.js +0 -47
  1730. package/devices/hilux.d.ts +0 -3
  1731. package/devices/hilux.d.ts.map +0 -1
  1732. package/devices/hilux.js +0 -54
  1733. package/devices/hive.d.ts +0 -3
  1734. package/devices/hive.d.ts.map +0 -1
  1735. package/devices/hive.js +0 -765
  1736. package/devices/hive.js.map +0 -1
  1737. package/devices/hommyn.d.ts +0 -3
  1738. package/devices/hommyn.d.ts.map +0 -1
  1739. package/devices/hommyn.js +0 -63
  1740. package/devices/hommyn.js.map +0 -1
  1741. package/devices/honyar.d.ts +0 -3
  1742. package/devices/honyar.d.ts.map +0 -1
  1743. package/devices/honyar.js +0 -170
  1744. package/devices/honyar.js.map +0 -1
  1745. package/devices/hornbach.d.ts +0 -3
  1746. package/devices/hornbach.d.ts.map +0 -1
  1747. package/devices/hornbach.js +0 -138
  1748. package/devices/hzc_electric.d.ts +0 -3
  1749. package/devices/hzc_electric.d.ts.map +0 -1
  1750. package/devices/hzc_electric.js +0 -105
  1751. package/devices/hzc_electric.js.map +0 -1
  1752. package/devices/icasa.d.ts +0 -3
  1753. package/devices/icasa.d.ts.map +0 -1
  1754. package/devices/icasa.js +0 -166
  1755. package/devices/icasa.js.map +0 -1
  1756. package/devices/idinio.d.ts +0 -3
  1757. package/devices/idinio.d.ts.map +0 -1
  1758. package/devices/idinio.js +0 -47
  1759. package/devices/ihorn.d.ts +0 -3
  1760. package/devices/ihorn.d.ts.map +0 -1
  1761. package/devices/ihorn.js +0 -108
  1762. package/devices/ihorn.js.map +0 -1
  1763. package/devices/ikea.d.ts +0 -3
  1764. package/devices/ikea.d.ts.map +0 -1
  1765. package/devices/ikea.js +0 -980
  1766. package/devices/ilightsin.d.ts +0 -3
  1767. package/devices/ilightsin.d.ts.map +0 -1
  1768. package/devices/ilightsin.js +0 -47
  1769. package/devices/iluminize.d.ts +0 -3
  1770. package/devices/iluminize.d.ts.map +0 -1
  1771. package/devices/iluminize.js +0 -389
  1772. package/devices/iluminize.js.map +0 -1
  1773. package/devices/ilux.d.ts +0 -3
  1774. package/devices/ilux.d.ts.map +0 -1
  1775. package/devices/ilux.js +0 -47
  1776. package/devices/imhotepcreation.d.ts +0 -3
  1777. package/devices/imhotepcreation.d.ts.map +0 -1
  1778. package/devices/imhotepcreation.js +0 -242
  1779. package/devices/imhotepcreation.js.map +0 -1
  1780. package/devices/immax.d.ts +0 -3
  1781. package/devices/immax.d.ts.map +0 -1
  1782. package/devices/immax.js +0 -303
  1783. package/devices/immax.js.map +0 -1
  1784. package/devices/imou.d.ts +0 -3
  1785. package/devices/imou.d.ts.map +0 -1
  1786. package/devices/imou.js +0 -60
  1787. package/devices/index.js +0 -649
  1788. package/devices/index.js.map +0 -1
  1789. package/devices/innr.d.ts +0 -3
  1790. package/devices/innr.d.ts.map +0 -1
  1791. package/devices/innr.js +0 -868
  1792. package/devices/innr.js.map +0 -1
  1793. package/devices/inovelli.d.ts +0 -3
  1794. package/devices/inovelli.d.ts.map +0 -1
  1795. package/devices/inovelli.js +0 -2014
  1796. package/devices/inovelli.js.map +0 -1
  1797. package/devices/insta.d.ts +0 -3
  1798. package/devices/insta.d.ts.map +0 -1
  1799. package/devices/insta.js +0 -185
  1800. package/devices/insta.js.map +0 -1
  1801. package/devices/iolloi.d.ts +0 -3
  1802. package/devices/iolloi.d.ts.map +0 -1
  1803. package/devices/iolloi.js +0 -48
  1804. package/devices/iotperfect.d.ts +0 -3
  1805. package/devices/iotperfect.d.ts.map +0 -1
  1806. package/devices/iotperfect.js +0 -57
  1807. package/devices/iotperfect.js.map +0 -1
  1808. package/devices/iris.d.ts +0 -3
  1809. package/devices/iris.d.ts.map +0 -1
  1810. package/devices/iris.js +0 -210
  1811. package/devices/iris.js.map +0 -1
  1812. package/devices/istar.d.ts +0 -3
  1813. package/devices/istar.d.ts.map +0 -1
  1814. package/devices/istar.js +0 -54
  1815. package/devices/jasco.d.ts +0 -3
  1816. package/devices/jasco.d.ts.map +0 -1
  1817. package/devices/jasco.js +0 -66
  1818. package/devices/jasco.js.map +0 -1
  1819. package/devices/javis.d.ts +0 -3
  1820. package/devices/javis.d.ts.map +0 -1
  1821. package/devices/javis.js +0 -80
  1822. package/devices/javis.js.map +0 -1
  1823. package/devices/jethome.d.ts +0 -3
  1824. package/devices/jethome.d.ts.map +0 -1
  1825. package/devices/jethome.js +0 -123
  1826. package/devices/jethome.js.map +0 -1
  1827. package/devices/jiawen.d.ts +0 -3
  1828. package/devices/jiawen.d.ts.map +0 -1
  1829. package/devices/jiawen.js +0 -54
  1830. package/devices/jumitech.d.ts +0 -3
  1831. package/devices/jumitech.d.ts.map +0 -1
  1832. package/devices/jumitech.js +0 -47
  1833. package/devices/jxuan.d.ts +0 -3
  1834. package/devices/jxuan.d.ts.map +0 -1
  1835. package/devices/jxuan.js +0 -88
  1836. package/devices/jxuan.js.map +0 -1
  1837. package/devices/kami.d.ts +0 -3
  1838. package/devices/kami.d.ts.map +0 -1
  1839. package/devices/kami.js +0 -54
  1840. package/devices/kami.js.map +0 -1
  1841. package/devices/keen_home.d.ts +0 -3
  1842. package/devices/keen_home.d.ts.map +0 -1
  1843. package/devices/keen_home.js +0 -159
  1844. package/devices/keen_home.js.map +0 -1
  1845. package/devices/klikaanklikuit.d.ts +0 -3
  1846. package/devices/klikaanklikuit.d.ts.map +0 -1
  1847. package/devices/klikaanklikuit.js +0 -54
  1848. package/devices/kmpcil.d.ts +0 -3
  1849. package/devices/kmpcil.d.ts.map +0 -1
  1850. package/devices/kmpcil.js +0 -215
  1851. package/devices/kmpcil.js.map +0 -1
  1852. package/devices/konke.d.ts +0 -3
  1853. package/devices/konke.d.ts.map +0 -1
  1854. package/devices/konke.js +0 -210
  1855. package/devices/konke.js.map +0 -1
  1856. package/devices/ksentry.d.ts +0 -3
  1857. package/devices/ksentry.d.ts.map +0 -1
  1858. package/devices/ksentry.js +0 -47
  1859. package/devices/kurvia.d.ts +0 -3
  1860. package/devices/kurvia.d.ts.map +0 -1
  1861. package/devices/kurvia.js +0 -52
  1862. package/devices/kurvia.js.map +0 -1
  1863. package/devices/kwikset.d.ts +0 -3
  1864. package/devices/kwikset.d.ts.map +0 -1
  1865. package/devices/kwikset.js +0 -156
  1866. package/devices/kwikset.js.map +0 -1
  1867. package/devices/lanesto.d.ts +0 -3
  1868. package/devices/lanesto.d.ts.map +0 -1
  1869. package/devices/lanesto.js +0 -47
  1870. package/devices/lds.d.ts +0 -3
  1871. package/devices/lds.d.ts.map +0 -1
  1872. package/devices/lds.js +0 -47
  1873. package/devices/led_trading.d.ts +0 -3
  1874. package/devices/led_trading.d.ts.map +0 -1
  1875. package/devices/led_trading.js +0 -111
  1876. package/devices/led_trading.js.map +0 -1
  1877. package/devices/ledvance.d.ts +0 -3
  1878. package/devices/ledvance.d.ts.map +0 -1
  1879. package/devices/ledvance.js +0 -370
  1880. package/devices/leedarson.d.ts +0 -3
  1881. package/devices/leedarson.d.ts.map +0 -1
  1882. package/devices/leedarson.js +0 -183
  1883. package/devices/leedarson.js.map +0 -1
  1884. package/devices/legrand.d.ts +0 -3
  1885. package/devices/legrand.d.ts.map +0 -1
  1886. package/devices/legrand.js +0 -737
  1887. package/devices/legrand.js.map +0 -1
  1888. package/devices/lellki.d.ts +0 -3
  1889. package/devices/lellki.d.ts.map +0 -1
  1890. package/devices/lellki.js +0 -164
  1891. package/devices/lellki.js.map +0 -1
  1892. package/devices/letsled.d.ts +0 -3
  1893. package/devices/letsled.d.ts.map +0 -1
  1894. package/devices/letsled.js +0 -47
  1895. package/devices/letv.d.ts +0 -3
  1896. package/devices/letv.d.ts.map +0 -1
  1897. package/devices/letv.js +0 -89
  1898. package/devices/letv.js.map +0 -1
  1899. package/devices/leviton.d.ts +0 -3
  1900. package/devices/leviton.d.ts.map +0 -1
  1901. package/devices/leviton.js +0 -163
  1902. package/devices/leviton.js.map +0 -1
  1903. package/devices/lg.d.ts +0 -3
  1904. package/devices/lg.d.ts.map +0 -1
  1905. package/devices/lg.js +0 -61
  1906. package/devices/lidl.d.ts +0 -3
  1907. package/devices/lidl.d.ts.map +0 -1
  1908. package/devices/lidl.js +0 -673
  1909. package/devices/lidl.js.map +0 -1
  1910. package/devices/lifecontrol.d.ts +0 -3
  1911. package/devices/lifecontrol.d.ts.map +0 -1
  1912. package/devices/lifecontrol.js +0 -148
  1913. package/devices/lifecontrol.js.map +0 -1
  1914. package/devices/lightsolutions.d.ts +0 -3
  1915. package/devices/lightsolutions.d.ts.map +0 -1
  1916. package/devices/lightsolutions.js +0 -68
  1917. package/devices/linkind.d.ts +0 -3
  1918. package/devices/linkind.d.ts.map +0 -1
  1919. package/devices/linkind.js +0 -274
  1920. package/devices/linkind.js.map +0 -1
  1921. package/devices/linptech.d.ts +0 -3
  1922. package/devices/linptech.d.ts.map +0 -1
  1923. package/devices/linptech.js +0 -158
  1924. package/devices/linptech.js.map +0 -1
  1925. package/devices/livingwise.d.ts +0 -3
  1926. package/devices/livingwise.d.ts.map +0 -1
  1927. package/devices/livingwise.js +0 -118
  1928. package/devices/livingwise.js.map +0 -1
  1929. package/devices/livolo.d.ts +0 -3
  1930. package/devices/livolo.d.ts.map +0 -1
  1931. package/devices/livolo.js +0 -421
  1932. package/devices/livolo.js.map +0 -1
  1933. package/devices/lixee.d.ts +0 -3
  1934. package/devices/lixee.d.ts.map +0 -1
  1935. package/devices/lixee.js +0 -1924
  1936. package/devices/lixee.js.map +0 -1
  1937. package/devices/lonsonho.d.ts +0 -3
  1938. package/devices/lonsonho.d.ts.map +0 -1
  1939. package/devices/lonsonho.js +0 -290
  1940. package/devices/lonsonho.js.map +0 -1
  1941. package/devices/ls.d.ts +0 -3
  1942. package/devices/ls.d.ts.map +0 -1
  1943. package/devices/ls.js +0 -66
  1944. package/devices/lubeez.d.ts +0 -3
  1945. package/devices/lubeez.d.ts.map +0 -1
  1946. package/devices/lubeez.js +0 -47
  1947. package/devices/lumi.d.ts +0 -3
  1948. package/devices/lumi.d.ts.map +0 -1
  1949. package/devices/lumi.js +0 -4430
  1950. package/devices/lumi.js.map +0 -1
  1951. package/devices/lupus.d.ts +0 -3
  1952. package/devices/lupus.d.ts.map +0 -1
  1953. package/devices/lupus.js +0 -97
  1954. package/devices/lupus.js.map +0 -1
  1955. package/devices/lutron.d.ts +0 -3
  1956. package/devices/lutron.d.ts.map +0 -1
  1957. package/devices/lutron.js +0 -71
  1958. package/devices/lutron.js.map +0 -1
  1959. package/devices/lux.d.ts +0 -3
  1960. package/devices/lux.d.ts.map +0 -1
  1961. package/devices/lux.js +0 -90
  1962. package/devices/lux.js.map +0 -1
  1963. package/devices/lytko.d.ts +0 -3
  1964. package/devices/lytko.d.ts.map +0 -1
  1965. package/devices/lytko.js +0 -787
  1966. package/devices/lytko.js.map +0 -1
  1967. package/devices/m_elec.d.ts +0 -3
  1968. package/devices/m_elec.d.ts.map +0 -1
  1969. package/devices/m_elec.js +0 -68
  1970. package/devices/makegood.d.ts +0 -3
  1971. package/devices/makegood.d.ts.map +0 -1
  1972. package/devices/makegood.js +0 -65
  1973. package/devices/matcall_bv.d.ts +0 -3
  1974. package/devices/matcall_bv.d.ts.map +0 -1
  1975. package/devices/matcall_bv.js +0 -54
  1976. package/devices/mazda.d.ts +0 -3
  1977. package/devices/mazda.d.ts.map +0 -1
  1978. package/devices/mazda.js +0 -163
  1979. package/devices/mazda.js.map +0 -1
  1980. package/devices/meazon.d.ts +0 -3
  1981. package/devices/meazon.d.ts.map +0 -1
  1982. package/devices/meazon.js +0 -98
  1983. package/devices/meazon.js.map +0 -1
  1984. package/devices/mercator.d.ts +0 -3
  1985. package/devices/mercator.d.ts.map +0 -1
  1986. package/devices/mercator.js +0 -252
  1987. package/devices/mercator.js.map +0 -1
  1988. package/devices/miboxer.d.ts +0 -3
  1989. package/devices/miboxer.d.ts.map +0 -1
  1990. package/devices/miboxer.js +0 -92
  1991. package/devices/miboxer.js.map +0 -1
  1992. package/devices/micromatic.d.ts +0 -3
  1993. package/devices/micromatic.d.ts.map +0 -1
  1994. package/devices/micromatic.js +0 -47
  1995. package/devices/modular.d.ts +0 -3
  1996. package/devices/modular.d.ts.map +0 -1
  1997. package/devices/modular.js +0 -47
  1998. package/devices/moes.d.ts +0 -3
  1999. package/devices/moes.d.ts.map +0 -1
  2000. package/devices/moes.js +0 -722
  2001. package/devices/moes.js.map +0 -1
  2002. package/devices/muller_licht.d.ts +0 -3
  2003. package/devices/muller_licht.d.ts.map +0 -1
  2004. package/devices/muller_licht.js +0 -337
  2005. package/devices/muller_licht.js.map +0 -1
  2006. package/devices/multiterm.d.ts +0 -3
  2007. package/devices/multiterm.d.ts.map +0 -1
  2008. package/devices/multiterm.js +0 -122
  2009. package/devices/multiterm.js.map +0 -1
  2010. package/devices/namron.d.ts +0 -3
  2011. package/devices/namron.d.ts.map +0 -1
  2012. package/devices/namron.js +0 -1572
  2013. package/devices/namron.js.map +0 -1
  2014. package/devices/nanoleaf.d.ts +0 -3
  2015. package/devices/nanoleaf.d.ts.map +0 -1
  2016. package/devices/nanoleaf.js +0 -47
  2017. package/devices/nedis.d.ts +0 -3
  2018. package/devices/nedis.d.ts.map +0 -1
  2019. package/devices/nedis.js +0 -87
  2020. package/devices/neo.d.ts +0 -3
  2021. package/devices/neo.d.ts.map +0 -1
  2022. package/devices/neo.js +0 -557
  2023. package/devices/neo.js.map +0 -1
  2024. package/devices/net2grid.d.ts +0 -3
  2025. package/devices/net2grid.d.ts.map +0 -1
  2026. package/devices/net2grid.js +0 -67
  2027. package/devices/net2grid.js.map +0 -1
  2028. package/devices/netvox.d.ts +0 -3
  2029. package/devices/netvox.d.ts.map +0 -1
  2030. package/devices/netvox.js +0 -74
  2031. package/devices/netvox.js.map +0 -1
  2032. package/devices/nexelec.d.ts +0 -3
  2033. package/devices/nexelec.d.ts.map +0 -1
  2034. package/devices/nexelec.js +0 -47
  2035. package/devices/niko.d.ts +0 -3
  2036. package/devices/niko.d.ts.map +0 -1
  2037. package/devices/niko.js +0 -632
  2038. package/devices/niko.js.map +0 -1
  2039. package/devices/ninja_blocks.d.ts +0 -3
  2040. package/devices/ninja_blocks.d.ts.map +0 -1
  2041. package/devices/ninja_blocks.js +0 -63
  2042. package/devices/ninja_blocks.js.map +0 -1
  2043. package/devices/niviss.d.ts +0 -3
  2044. package/devices/niviss.d.ts.map +0 -1
  2045. package/devices/niviss.js +0 -47
  2046. package/devices/nodon.d.ts +0 -3
  2047. package/devices/nodon.d.ts.map +0 -1
  2048. package/devices/nodon.js +0 -386
  2049. package/devices/nodon.js.map +0 -1
  2050. package/devices/nordtronic.d.ts +0 -3
  2051. package/devices/nordtronic.d.ts.map +0 -1
  2052. package/devices/nordtronic.js +0 -73
  2053. package/devices/nous.d.ts +0 -3
  2054. package/devices/nous.d.ts.map +0 -1
  2055. package/devices/nous.js +0 -168
  2056. package/devices/nous.js.map +0 -1
  2057. package/devices/novo.d.ts +0 -3
  2058. package/devices/novo.d.ts.map +0 -1
  2059. package/devices/novo.js +0 -57
  2060. package/devices/novo.js.map +0 -1
  2061. package/devices/nue_3a.d.ts +0 -3
  2062. package/devices/nue_3a.d.ts.map +0 -1
  2063. package/devices/nue_3a.js +0 -360
  2064. package/devices/nue_3a.js.map +0 -1
  2065. package/devices/nyce.d.ts +0 -3
  2066. package/devices/nyce.d.ts.map +0 -1
  2067. package/devices/nyce.js +0 -133
  2068. package/devices/nyce.js.map +0 -1
  2069. package/devices/onenuo.d.ts +0 -3
  2070. package/devices/onenuo.d.ts.map +0 -1
  2071. package/devices/onenuo.js +0 -85
  2072. package/devices/onesti.d.ts +0 -3
  2073. package/devices/onesti.d.ts.map +0 -1
  2074. package/devices/onesti.js +0 -207
  2075. package/devices/onesti.js.map +0 -1
  2076. package/devices/openlumi.d.ts +0 -3
  2077. package/devices/openlumi.d.ts.map +0 -1
  2078. package/devices/openlumi.js +0 -61
  2079. package/devices/openlumi.js.map +0 -1
  2080. package/devices/orvibo.d.ts +0 -12
  2081. package/devices/orvibo.d.ts.map +0 -1
  2082. package/devices/orvibo.js +0 -595
  2083. package/devices/orvibo.js.map +0 -1
  2084. package/devices/osram.d.ts +0 -3
  2085. package/devices/osram.d.ts.map +0 -1
  2086. package/devices/osram.js +0 -516
  2087. package/devices/osram.js.map +0 -1
  2088. package/devices/oujiabao.d.ts +0 -3
  2089. package/devices/oujiabao.d.ts.map +0 -1
  2090. package/devices/oujiabao.js +0 -54
  2091. package/devices/oujiabao.js.map +0 -1
  2092. package/devices/owon.d.ts +0 -3
  2093. package/devices/owon.d.ts.map +0 -1
  2094. package/devices/owon.js +0 -476
  2095. package/devices/owon.js.map +0 -1
  2096. package/devices/ozsmartthings.d.ts +0 -3
  2097. package/devices/ozsmartthings.d.ts.map +0 -1
  2098. package/devices/ozsmartthings.js +0 -47
  2099. package/devices/paul_neuhaus.d.ts +0 -3
  2100. package/devices/paul_neuhaus.d.ts.map +0 -1
  2101. package/devices/paul_neuhaus.js +0 -193
  2102. package/devices/paul_neuhaus.js.map +0 -1
  2103. package/devices/paulmann.d.ts +0 -3
  2104. package/devices/paulmann.d.ts.map +0 -1
  2105. package/devices/paulmann.js +0 -337
  2106. package/devices/paulmann.js.map +0 -1
  2107. package/devices/peq.d.ts +0 -3
  2108. package/devices/peq.d.ts.map +0 -1
  2109. package/devices/peq.js +0 -63
  2110. package/devices/peq.js.map +0 -1
  2111. package/devices/perenio.d.ts +0 -3
  2112. package/devices/perenio.d.ts.map +0 -1
  2113. package/devices/perenio.js +0 -467
  2114. package/devices/perenio.js.map +0 -1
  2115. package/devices/philio.d.ts +0 -3
  2116. package/devices/philio.d.ts.map +0 -1
  2117. package/devices/philio.js +0 -48
  2118. package/devices/philips.d.ts +0 -3
  2119. package/devices/philips.d.ts.map +0 -1
  2120. package/devices/philips.js +0 -4064
  2121. package/devices/philips.js.map +0 -1
  2122. package/devices/plaid.d.ts +0 -3
  2123. package/devices/plaid.d.ts.map +0 -1
  2124. package/devices/plaid.js +0 -64
  2125. package/devices/plaid.js.map +0 -1
  2126. package/devices/plugwise.d.ts +0 -3
  2127. package/devices/plugwise.d.ts.map +0 -1
  2128. package/devices/plugwise.js +0 -209
  2129. package/devices/plugwise.js.map +0 -1
  2130. package/devices/profalux.d.ts +0 -3
  2131. package/devices/profalux.d.ts.map +0 -1
  2132. package/devices/profalux.js +0 -190
  2133. package/devices/profalux.js.map +0 -1
  2134. package/devices/prolight.d.ts +0 -3
  2135. package/devices/prolight.d.ts.map +0 -1
  2136. package/devices/prolight.js +0 -114
  2137. package/devices/prolight.js.map +0 -1
  2138. package/devices/purmo.d.ts +0 -3
  2139. package/devices/purmo.d.ts.map +0 -1
  2140. package/devices/purmo.js +0 -94
  2141. package/devices/purmo.js.map +0 -1
  2142. package/devices/pushok.d.ts +0 -3
  2143. package/devices/pushok.d.ts.map +0 -1
  2144. package/devices/pushok.js +0 -375
  2145. package/devices/pushok.js.map +0 -1
  2146. package/devices/qa.d.ts +0 -3
  2147. package/devices/qa.d.ts.map +0 -1
  2148. package/devices/qa.js +0 -294
  2149. package/devices/qa.js.map +0 -1
  2150. package/devices/qmotion.d.ts +0 -3
  2151. package/devices/qmotion.d.ts.map +0 -1
  2152. package/devices/qmotion.js +0 -72
  2153. package/devices/qmotion.js.map +0 -1
  2154. package/devices/qoto.d.ts +0 -3
  2155. package/devices/qoto.d.ts.map +0 -1
  2156. package/devices/qoto.js +0 -86
  2157. package/devices/qoto.js.map +0 -1
  2158. package/devices/quotra.d.ts +0 -3
  2159. package/devices/quotra.d.ts.map +0 -1
  2160. package/devices/quotra.js +0 -54
  2161. package/devices/rademacher.d.ts +0 -3
  2162. package/devices/rademacher.d.ts.map +0 -1
  2163. package/devices/rademacher.js +0 -61
  2164. package/devices/radium.d.ts +0 -3
  2165. package/devices/radium.d.ts.map +0 -1
  2166. package/devices/radium.js +0 -47
  2167. package/devices/raex.d.ts +0 -3
  2168. package/devices/raex.d.ts.map +0 -1
  2169. package/devices/raex.js +0 -47
  2170. package/devices/rgb_genie.d.ts +0 -3
  2171. package/devices/rgb_genie.d.ts.map +0 -1
  2172. package/devices/rgb_genie.js +0 -278
  2173. package/devices/rgb_genie.js.map +0 -1
  2174. package/devices/robb.d.ts +0 -3
  2175. package/devices/robb.d.ts.map +0 -1
  2176. package/devices/robb.js +0 -471
  2177. package/devices/robb.js.map +0 -1
  2178. package/devices/roome.d.ts +0 -3
  2179. package/devices/roome.d.ts.map +0 -1
  2180. package/devices/roome.js +0 -54
  2181. package/devices/roome.js.map +0 -1
  2182. package/devices/rtx.d.ts +0 -3
  2183. package/devices/rtx.d.ts.map +0 -1
  2184. package/devices/rtx.js +0 -146
  2185. package/devices/rtx.js.map +0 -1
  2186. package/devices/salus_controls.d.ts +0 -3
  2187. package/devices/salus_controls.d.ts.map +0 -1
  2188. package/devices/salus_controls.js +0 -224
  2189. package/devices/salus_controls.js.map +0 -1
  2190. package/devices/samotech.d.ts +0 -3
  2191. package/devices/samotech.d.ts.map +0 -1
  2192. package/devices/samotech.js +0 -107
  2193. package/devices/saswell.d.ts +0 -3
  2194. package/devices/saswell.d.ts.map +0 -1
  2195. package/devices/saswell.js +0 -126
  2196. package/devices/saswell.js.map +0 -1
  2197. package/devices/sber.d.ts +0 -3
  2198. package/devices/sber.d.ts.map +0 -1
  2199. package/devices/sber.js +0 -98
  2200. package/devices/scanproducts.d.ts +0 -3
  2201. package/devices/scanproducts.d.ts.map +0 -1
  2202. package/devices/scanproducts.js +0 -54
  2203. package/devices/schlage.d.ts +0 -3
  2204. package/devices/schlage.d.ts.map +0 -1
  2205. package/devices/schlage.js +0 -63
  2206. package/devices/schlage.js.map +0 -1
  2207. package/devices/schneider_electric.d.ts +0 -3
  2208. package/devices/schneider_electric.d.ts.map +0 -1
  2209. package/devices/schneider_electric.js +0 -2189
  2210. package/devices/schneider_electric.js.map +0 -1
  2211. package/devices/schwaiger.d.ts +0 -3
  2212. package/devices/schwaiger.d.ts.map +0 -1
  2213. package/devices/schwaiger.js +0 -108
  2214. package/devices/schwaiger.js.map +0 -1
  2215. package/devices/seastar_intelligence.d.ts +0 -3
  2216. package/devices/seastar_intelligence.d.ts.map +0 -1
  2217. package/devices/seastar_intelligence.js +0 -52
  2218. package/devices/securifi.d.ts +0 -3
  2219. package/devices/securifi.d.ts.map +0 -1
  2220. package/devices/securifi.js +0 -82
  2221. package/devices/securifi.js.map +0 -1
  2222. package/devices/sengled.d.ts +0 -6
  2223. package/devices/sengled.d.ts.map +0 -1
  2224. package/devices/sengled.js +0 -390
  2225. package/devices/sengled.js.map +0 -1
  2226. package/devices/sercomm.d.ts +0 -3
  2227. package/devices/sercomm.d.ts.map +0 -1
  2228. package/devices/sercomm.js +0 -189
  2229. package/devices/sercomm.js.map +0 -1
  2230. package/devices/shade_control.d.ts +0 -3
  2231. package/devices/shade_control.d.ts.map +0 -1
  2232. package/devices/shade_control.js +0 -64
  2233. package/devices/shade_control.js.map +0 -1
  2234. package/devices/shenzhen_homa.d.ts +0 -3
  2235. package/devices/shenzhen_homa.d.ts.map +0 -1
  2236. package/devices/shenzhen_homa.js +0 -143
  2237. package/devices/shinasystem.d.ts +0 -3
  2238. package/devices/shinasystem.d.ts.map +0 -1
  2239. package/devices/shinasystem.js +0 -960
  2240. package/devices/shinasystem.js.map +0 -1
  2241. package/devices/shyugj.d.ts +0 -3
  2242. package/devices/shyugj.d.ts.map +0 -1
  2243. package/devices/shyugj.js +0 -53
  2244. package/devices/siglis.d.ts +0 -3
  2245. package/devices/siglis.d.ts.map +0 -1
  2246. package/devices/siglis.js +0 -454
  2247. package/devices/siglis.js.map +0 -1
  2248. package/devices/sikom.d.ts +0 -3
  2249. package/devices/sikom.d.ts.map +0 -1
  2250. package/devices/sikom.js +0 -67
  2251. package/devices/sikom.js.map +0 -1
  2252. package/devices/simon.d.ts +0 -3
  2253. package/devices/simon.d.ts.map +0 -1
  2254. package/devices/simon.js +0 -14
  2255. package/devices/sinope.d.ts +0 -3
  2256. package/devices/sinope.d.ts.map +0 -1
  2257. package/devices/sinope.js +0 -1754
  2258. package/devices/sinope.js.map +0 -1
  2259. package/devices/siterwell.d.ts +0 -3
  2260. package/devices/siterwell.d.ts.map +0 -1
  2261. package/devices/siterwell.js +0 -110
  2262. package/devices/siterwell.js.map +0 -1
  2263. package/devices/skydance.d.ts +0 -3
  2264. package/devices/skydance.d.ts.map +0 -1
  2265. package/devices/skydance.js +0 -138
  2266. package/devices/slv.d.ts +0 -3
  2267. package/devices/slv.d.ts.map +0 -1
  2268. package/devices/slv.js +0 -70
  2269. package/devices/smart9.d.ts +0 -3
  2270. package/devices/smart9.d.ts.map +0 -1
  2271. package/devices/smart9.js +0 -66
  2272. package/devices/smart9.js.map +0 -1
  2273. package/devices/smart_home_pty.d.ts +0 -3
  2274. package/devices/smart_home_pty.d.ts.map +0 -1
  2275. package/devices/smart_home_pty.js +0 -54
  2276. package/devices/smartenit.d.ts +0 -3
  2277. package/devices/smartenit.d.ts.map +0 -1
  2278. package/devices/smartenit.js +0 -80
  2279. package/devices/smartenit.js.map +0 -1
  2280. package/devices/smartthings.d.ts +0 -3
  2281. package/devices/smartthings.d.ts.map +0 -1
  2282. package/devices/smartthings.js +0 -526
  2283. package/devices/smartthings.js.map +0 -1
  2284. package/devices/smartwings.d.ts +0 -3
  2285. package/devices/smartwings.d.ts.map +0 -1
  2286. package/devices/smartwings.js +0 -63
  2287. package/devices/smartwings.js.map +0 -1
  2288. package/devices/smlight.d.ts +0 -3
  2289. package/devices/smlight.d.ts.map +0 -1
  2290. package/devices/smlight.js +0 -56
  2291. package/devices/sohan_electric.d.ts +0 -3
  2292. package/devices/sohan_electric.d.ts.map +0 -1
  2293. package/devices/sohan_electric.js +0 -53
  2294. package/devices/sohan_electric.js.map +0 -1
  2295. package/devices/solaredge.d.ts +0 -3
  2296. package/devices/solaredge.d.ts.map +0 -1
  2297. package/devices/solaredge.js +0 -47
  2298. package/devices/soma.d.ts +0 -3
  2299. package/devices/soma.d.ts.map +0 -1
  2300. package/devices/soma.js +0 -47
  2301. package/devices/somfy.d.ts +0 -3
  2302. package/devices/somfy.d.ts.map +0 -1
  2303. package/devices/somfy.js +0 -101
  2304. package/devices/somfy.js.map +0 -1
  2305. package/devices/somgoms.d.ts +0 -3
  2306. package/devices/somgoms.d.ts.map +0 -1
  2307. package/devices/somgoms.js +0 -84
  2308. package/devices/somgoms.js.map +0 -1
  2309. package/devices/sonoff.d.ts +0 -3
  2310. package/devices/sonoff.d.ts.map +0 -1
  2311. package/devices/sonoff.js +0 -1583
  2312. package/devices/sonoff.js.map +0 -1
  2313. package/devices/sowilo.d.ts +0 -3
  2314. package/devices/sowilo.d.ts.map +0 -1
  2315. package/devices/sowilo.js +0 -47
  2316. package/devices/spotmau.d.ts +0 -3
  2317. package/devices/spotmau.d.ts.map +0 -1
  2318. package/devices/spotmau.js +0 -74
  2319. package/devices/stelpro.d.ts +0 -3
  2320. package/devices/stelpro.d.ts.map +0 -1
  2321. package/devices/stelpro.js +0 -365
  2322. package/devices/stelpro.js.map +0 -1
  2323. package/devices/sunricher.d.ts +0 -3
  2324. package/devices/sunricher.d.ts.map +0 -1
  2325. package/devices/sunricher.js +0 -2238
  2326. package/devices/sunricher.js.map +0 -1
  2327. package/devices/swann.d.ts +0 -3
  2328. package/devices/swann.d.ts.map +0 -1
  2329. package/devices/swann.js +0 -72
  2330. package/devices/swann.js.map +0 -1
  2331. package/devices/sylvania.d.ts +0 -3
  2332. package/devices/sylvania.d.ts.map +0 -1
  2333. package/devices/sylvania.js +0 -226
  2334. package/devices/sylvania.js.map +0 -1
  2335. package/devices/tapestry.d.ts +0 -3
  2336. package/devices/tapestry.d.ts.map +0 -1
  2337. package/devices/tapestry.js +0 -55
  2338. package/devices/tapestry.js.map +0 -1
  2339. package/devices/tci.d.ts +0 -3
  2340. package/devices/tci.d.ts.map +0 -1
  2341. package/devices/tci.js +0 -61
  2342. package/devices/tech.d.ts +0 -3
  2343. package/devices/tech.d.ts.map +0 -1
  2344. package/devices/tech.js +0 -217
  2345. package/devices/tech.js.map +0 -1
  2346. package/devices/technicolor.d.ts +0 -3
  2347. package/devices/technicolor.d.ts.map +0 -1
  2348. package/devices/technicolor.js +0 -101
  2349. package/devices/technicolor.js.map +0 -1
  2350. package/devices/terncy.d.ts +0 -3
  2351. package/devices/terncy.d.ts.map +0 -1
  2352. package/devices/terncy.js +0 -116
  2353. package/devices/terncy.js.map +0 -1
  2354. package/devices/the_light_group.d.ts +0 -3
  2355. package/devices/the_light_group.d.ts.map +0 -1
  2356. package/devices/the_light_group.js +0 -129
  2357. package/devices/the_light_group.js.map +0 -1
  2358. package/devices/third_reality.d.ts +0 -3
  2359. package/devices/third_reality.d.ts.map +0 -1
  2360. package/devices/third_reality.js +0 -609
  2361. package/devices/third_reality.js.map +0 -1
  2362. package/devices/titan_products.d.ts +0 -3
  2363. package/devices/titan_products.d.ts.map +0 -1
  2364. package/devices/titan_products.js +0 -61
  2365. package/devices/titan_products.js.map +0 -1
  2366. package/devices/tlwglobal.d.ts +0 -3
  2367. package/devices/tlwglobal.d.ts.map +0 -1
  2368. package/devices/tlwglobal.js +0 -64
  2369. package/devices/tplink.d.ts +0 -3
  2370. package/devices/tplink.d.ts.map +0 -1
  2371. package/devices/tplink.js +0 -80
  2372. package/devices/tplink.js.map +0 -1
  2373. package/devices/trust.d.ts +0 -3
  2374. package/devices/trust.d.ts.map +0 -1
  2375. package/devices/trust.js +0 -182
  2376. package/devices/trust.js.map +0 -1
  2377. package/devices/tubeszb.d.ts +0 -3
  2378. package/devices/tubeszb.d.ts.map +0 -1
  2379. package/devices/tubeszb.js +0 -59
  2380. package/devices/tubeszb.js.map +0 -1
  2381. package/devices/tuya.d.ts +0 -3
  2382. package/devices/tuya.d.ts.map +0 -1
  2383. package/devices/tuya.js +0 -14484
  2384. package/devices/tuya.js.map +0 -1
  2385. package/devices/ubisys.d.ts +0 -3
  2386. package/devices/ubisys.d.ts.map +0 -1
  2387. package/devices/ubisys.js +0 -1313
  2388. package/devices/ubisys.js.map +0 -1
  2389. package/devices/uhome.d.ts +0 -3
  2390. package/devices/uhome.d.ts.map +0 -1
  2391. package/devices/uhome.js +0 -63
  2392. package/devices/uhome.js.map +0 -1
  2393. package/devices/universal_electronics_inc.d.ts +0 -3
  2394. package/devices/universal_electronics_inc.d.ts.map +0 -1
  2395. package/devices/universal_electronics_inc.js +0 -185
  2396. package/devices/universal_electronics_inc.js.map +0 -1
  2397. package/devices/vbled.d.ts +0 -3
  2398. package/devices/vbled.d.ts.map +0 -1
  2399. package/devices/vbled.js +0 -47
  2400. package/devices/vesternet.d.ts +0 -3
  2401. package/devices/vesternet.d.ts.map +0 -1
  2402. package/devices/vesternet.js +0 -329
  2403. package/devices/vesternet.js.map +0 -1
  2404. package/devices/viessmann.d.ts +0 -3
  2405. package/devices/viessmann.d.ts.map +0 -1
  2406. package/devices/viessmann.js +0 -123
  2407. package/devices/viessmann.js.map +0 -1
  2408. package/devices/villeroy_boch.d.ts +0 -3
  2409. package/devices/villeroy_boch.d.ts.map +0 -1
  2410. package/devices/villeroy_boch.js +0 -54
  2411. package/devices/vimar.d.ts +0 -3
  2412. package/devices/vimar.d.ts.map +0 -1
  2413. package/devices/vimar.js +0 -136
  2414. package/devices/vimar.js.map +0 -1
  2415. package/devices/visonic.d.ts +0 -3
  2416. package/devices/visonic.d.ts.map +0 -1
  2417. package/devices/visonic.js +0 -137
  2418. package/devices/visonic.js.map +0 -1
  2419. package/devices/vrey.d.ts +0 -3
  2420. package/devices/vrey.d.ts.map +0 -1
  2421. package/devices/vrey.js +0 -48
  2422. package/devices/wally.d.ts +0 -3
  2423. package/devices/wally.d.ts.map +0 -1
  2424. package/devices/wally.js +0 -63
  2425. package/devices/wally.js.map +0 -1
  2426. package/devices/waxman.d.ts +0 -3
  2427. package/devices/waxman.d.ts.map +0 -1
  2428. package/devices/waxman.js +0 -84
  2429. package/devices/waxman.js.map +0 -1
  2430. package/devices/weiser.d.ts +0 -3
  2431. package/devices/weiser.d.ts.map +0 -1
  2432. package/devices/weiser.js +0 -102
  2433. package/devices/weiser.js.map +0 -1
  2434. package/devices/weten.d.ts +0 -3
  2435. package/devices/weten.d.ts.map +0 -1
  2436. package/devices/weten.js +0 -88
  2437. package/devices/weten.js.map +0 -1
  2438. package/devices/wirenboard.d.ts +0 -3
  2439. package/devices/wirenboard.d.ts.map +0 -1
  2440. package/devices/wirenboard.js +0 -666
  2441. package/devices/wirenboard.js.map +0 -1
  2442. package/devices/wisdom.d.ts +0 -3
  2443. package/devices/wisdom.d.ts.map +0 -1
  2444. package/devices/wisdom.js +0 -47
  2445. package/devices/woolley.d.ts +0 -3
  2446. package/devices/woolley.d.ts.map +0 -1
  2447. package/devices/woolley.js +0 -87
  2448. package/devices/woolley.js.map +0 -1
  2449. package/devices/woox.d.ts +0 -3
  2450. package/devices/woox.d.ts.map +0 -1
  2451. package/devices/woox.js +0 -132
  2452. package/devices/woox.js.map +0 -1
  2453. package/devices/wyze.d.ts +0 -3
  2454. package/devices/wyze.d.ts.map +0 -1
  2455. package/devices/wyze.js +0 -62
  2456. package/devices/wyze.js.map +0 -1
  2457. package/devices/xal.d.ts +0 -3
  2458. package/devices/xal.d.ts.map +0 -1
  2459. package/devices/xal.js +0 -61
  2460. package/devices/xinghuoyuan.d.ts +0 -3
  2461. package/devices/xinghuoyuan.d.ts.map +0 -1
  2462. package/devices/xinghuoyuan.js +0 -47
  2463. package/devices/xyzroe.d.ts +0 -3
  2464. package/devices/xyzroe.d.ts.map +0 -1
  2465. package/devices/xyzroe.js +0 -518
  2466. package/devices/xyzroe.js.map +0 -1
  2467. package/devices/yale.d.ts +0 -3
  2468. package/devices/yale.d.ts.map +0 -1
  2469. package/devices/yale.js +0 -502
  2470. package/devices/yale.js.map +0 -1
  2471. package/devices/yandex.d.ts +0 -3
  2472. package/devices/yandex.d.ts.map +0 -1
  2473. package/devices/yandex.js +0 -442
  2474. package/devices/yandex.js.map +0 -1
  2475. package/devices/ynoa.d.ts +0 -3
  2476. package/devices/ynoa.d.ts.map +0 -1
  2477. package/devices/ynoa.js +0 -112
  2478. package/devices/ynoa.js.map +0 -1
  2479. package/devices/yokis.d.ts +0 -3
  2480. package/devices/yokis.d.ts.map +0 -1
  2481. package/devices/yokis.js +0 -2532
  2482. package/devices/yokis.js.map +0 -1
  2483. package/devices/yookee.d.ts +0 -3
  2484. package/devices/yookee.d.ts.map +0 -1
  2485. package/devices/yookee.js +0 -62
  2486. package/devices/yookee.js.map +0 -1
  2487. package/devices/ysrsai.d.ts +0 -3
  2488. package/devices/ysrsai.d.ts.map +0 -1
  2489. package/devices/ysrsai.js +0 -65
  2490. package/devices/zemismart.d.ts +0 -3
  2491. package/devices/zemismart.d.ts.map +0 -1
  2492. package/devices/zemismart.js +0 -391
  2493. package/devices/zemismart.js.map +0 -1
  2494. package/devices/zen.d.ts +0 -3
  2495. package/devices/zen.d.ts.map +0 -1
  2496. package/devices/zen.js +0 -95
  2497. package/devices/zen.js.map +0 -1
  2498. package/devices/zigbeetlc.js +0 -235
  2499. package/devices/zipato.d.ts +0 -3
  2500. package/devices/zipato.d.ts.map +0 -1
  2501. package/devices/zipato.js +0 -47
  2502. package/index.d.ts +0 -20
  2503. package/index.d.ts.map +0 -1
  2504. package/index.js +0 -526
  2505. package/index.js.map +0 -1
  2506. package/lib/color.d.ts +0 -271
  2507. package/lib/color.d.ts.map +0 -1
  2508. package/lib/color.js +0 -761
  2509. package/lib/color.js.map +0 -1
  2510. package/lib/configureKey.d.ts +0 -3
  2511. package/lib/configureKey.d.ts.map +0 -1
  2512. package/lib/configureKey.js +0 -938
  2513. package/lib/configureKey.js.map +0 -1
  2514. package/lib/constants.d.ts +0 -68
  2515. package/lib/constants.d.ts.map +0 -1
  2516. package/lib/constants.js +0 -264
  2517. package/lib/constants.js.map +0 -1
  2518. package/lib/develco.d.ts +0 -15
  2519. package/lib/develco.d.ts.map +0 -1
  2520. package/lib/develco.js +0 -183
  2521. package/lib/develco.js.map +0 -1
  2522. package/lib/ewelink.d.ts +0 -30
  2523. package/lib/ewelink.d.ts.map +0 -1
  2524. package/lib/ewelink.js +0 -718
  2525. package/lib/ewelink.js.map +0 -1
  2526. package/lib/exposes.d.ts +0 -360
  2527. package/lib/exposes.d.ts.map +0 -1
  2528. package/lib/exposes.js +0 -1085
  2529. package/lib/exposes.js.map +0 -1
  2530. package/lib/generateDefinition.d.ts +0 -6
  2531. package/lib/generateDefinition.d.ts.map +0 -1
  2532. package/lib/generateDefinition.js +0 -345
  2533. package/lib/generateDefinition.js.map +0 -1
  2534. package/lib/ikea.d.ts +0 -39
  2535. package/lib/ikea.d.ts.map +0 -1
  2536. package/lib/ikea.js +0 -787
  2537. package/lib/ikea.js.map +0 -1
  2538. package/lib/kelvinToXy.js +0 -1913
  2539. package/lib/kelvinToXy.js.map +0 -1
  2540. package/lib/ledvance.d.ts +0 -20
  2541. package/lib/ledvance.d.ts.map +0 -1
  2542. package/lib/ledvance.js +0 -103
  2543. package/lib/ledvance.js.map +0 -1
  2544. package/lib/legacy.d.ts +0 -5054
  2545. package/lib/legacy.d.ts.map +0 -1
  2546. package/lib/legacy.js +0 -6540
  2547. package/lib/legacy.js.map +0 -1
  2548. package/lib/legrand.d.ts +0 -69
  2549. package/lib/legrand.d.ts.map +0 -1
  2550. package/lib/legrand.js +0 -282
  2551. package/lib/legrand.js.map +0 -1
  2552. package/lib/light.d.ts +0 -8
  2553. package/lib/light.d.ts.map +0 -1
  2554. package/lib/light.js +0 -142
  2555. package/lib/light.js.map +0 -1
  2556. package/lib/logger.d.ts +0 -4
  2557. package/lib/logger.d.ts.map +0 -1
  2558. package/lib/logger.js +0 -14
  2559. package/lib/lumi.d.ts +0 -962
  2560. package/lib/lumi.d.ts.map +0 -1
  2561. package/lib/lumi.js +0 -5027
  2562. package/lib/lumi.js.map +0 -1
  2563. package/lib/modernExtend.d.ts +0 -325
  2564. package/lib/modernExtend.d.ts.map +0 -1
  2565. package/lib/modernExtend.js +0 -2015
  2566. package/lib/modernExtend.js.map +0 -1
  2567. package/lib/namron.d.ts +0 -56
  2568. package/lib/namron.d.ts.map +0 -1
  2569. package/lib/namron.js +0 -434
  2570. package/lib/namron.js.map +0 -1
  2571. package/lib/nodon.d.ts +0 -3
  2572. package/lib/nodon.d.ts.map +0 -1
  2573. package/lib/nodon.js +0 -130
  2574. package/lib/nodon.js.map +0 -1
  2575. package/lib/ota.d.ts +0 -71
  2576. package/lib/ota.d.ts.map +0 -1
  2577. package/lib/ota.js +0 -663
  2578. package/lib/ota.js.map +0 -1
  2579. package/lib/philips.d.ts +0 -249
  2580. package/lib/philips.d.ts.map +0 -1
  2581. package/lib/philips.js +0 -656
  2582. package/lib/philips.js.map +0 -1
  2583. package/lib/reporting.d.ts +0 -58
  2584. package/lib/reporting.d.ts.map +0 -1
  2585. package/lib/reporting.js +0 -285
  2586. package/lib/store.d.ts +0 -7
  2587. package/lib/store.d.ts.map +0 -1
  2588. package/lib/store.js +0 -51
  2589. package/lib/store.js.map +0 -1
  2590. package/lib/sunricher.d.ts +0 -13
  2591. package/lib/sunricher.d.ts.map +0 -1
  2592. package/lib/sunricher.js +0 -14
  2593. package/lib/tuya.d.ts +0 -786
  2594. package/lib/tuya.d.ts.map +0 -1
  2595. package/lib/tuya.js +0 -2415
  2596. package/lib/tuya.js.map +0 -1
  2597. package/lib/types.d.ts +0 -439
  2598. package/lib/types.d.ts.map +0 -1
  2599. package/lib/ubisys.d.ts +0 -19
  2600. package/lib/ubisys.d.ts.map +0 -1
  2601. package/lib/ubisys.js +0 -293
  2602. package/lib/ubisys.js.map +0 -1
  2603. package/lib/utils.d.ts +0 -93
  2604. package/lib/utils.d.ts.map +0 -1
  2605. package/lib/utils.js +0 -754
  2606. package/lib/utils.js.map +0 -1
  2607. package/lib/zosung.d.ts +0 -52
  2608. package/lib/zosung.d.ts.map +0 -1
  2609. package/lib/zosung.js +0 -253
  2610. package/lib/zosung.js.map +0 -1
  2611. package/models-index.json +0 -1
  2612. /package/{devices → dist/devices}/acuity_brands_lighting.js.map +0 -0
  2613. /package/{devices → dist/devices}/ajax_online.js.map +0 -0
  2614. /package/{devices → dist/devices}/alchemy.js.map +0 -0
  2615. /package/{devices → dist/devices}/anchor.js.map +0 -0
  2616. /package/{devices → dist/devices}/atsmart.js.map +0 -0
  2617. /package/{devices → dist/devices}/aubess.js.map +0 -0
  2618. /package/{devices → dist/devices}/automaton.js.map +0 -0
  2619. /package/{devices → dist/devices}/bankamp.js.map +0 -0
  2620. /package/{devices → dist/devices}/bega.js.map +0 -0
  2621. /package/{devices → dist/devices}/belkin.js.map +0 -0
  2622. /package/{devices → dist/devices}/bouffalo_lab.js.map +0 -0
  2623. /package/{devices → dist/devices}/bseed.js.map +0 -0
  2624. /package/{devices → dist/devices}/candeo.js.map +0 -0
  2625. /package/{devices → dist/devices}/chacon.js.map +0 -0
  2626. /package/{devices → dist/devices}/cleode.js.map +0 -0
  2627. /package/{devices → dist/devices}/commercial_electric.js.map +0 -0
  2628. /package/{devices → dist/devices}/cree.js.map +0 -0
  2629. /package/{devices → dist/devices}/cy_lighting.js.map +0 -0
  2630. /package/{devices → dist/devices}/digi.js.map +0 -0
  2631. /package/{devices → dist/devices}/direct_signs.js.map +0 -0
  2632. /package/{devices → dist/devices}/dnake.js.map +0 -0
  2633. /package/{devices → dist/devices}/dowsing_reynolds.js.map +0 -0
  2634. /package/{devices → dist/devices}/dresden_elektronik.js.map +0 -0
  2635. /package/{devices → dist/devices}/eatonhalo_led.js.map +0 -0
  2636. /package/{devices → dist/devices}/ecosmart.js.map +0 -0
  2637. /package/{devices → dist/devices}/enbrighten.js.map +0 -0
  2638. /package/{devices → dist/devices}/essentials.js.map +0 -0
  2639. /package/{devices → dist/devices}/eucontrols.js.map +0 -0
  2640. /package/{devices → dist/devices}/evanell.js.map +0 -0
  2641. /package/{devices → dist/devices}/evvr.js.map +0 -0
  2642. /package/{devices → dist/devices}/ezex.js.map +0 -0
  2643. /package/{devices → dist/devices}/frankever.js.map +0 -0
  2644. /package/{devices → dist/devices}/frient.js.map +0 -0
  2645. /package/{devices → dist/devices}/futurehome.js.map +0 -0
  2646. /package/{devices → dist/devices}/gidealed.js.map +0 -0
  2647. /package/{devices → dist/devices}/giderwel.js.map +0 -0
  2648. /package/{devices → dist/devices}/giex.js.map +0 -0
  2649. /package/{devices → dist/devices}/girier.js.map +0 -0
  2650. /package/{devices → dist/devices}/gmy.js.map +0 -0
  2651. /package/{devices → dist/devices}/gs.js.map +0 -0
  2652. /package/{devices → dist/devices}/gumax.js.map +0 -0
  2653. /package/{devices → dist/devices}/heatit.js.map +0 -0
  2654. /package/{devices → dist/devices}/hej.js.map +0 -0
  2655. /package/{devices → dist/devices}/hfh.js.map +0 -0
  2656. /package/{devices → dist/devices}/hilux.js.map +0 -0
  2657. /package/{devices → dist/devices}/hornbach.js.map +0 -0
  2658. /package/{devices → dist/devices}/idinio.js.map +0 -0
  2659. /package/{devices → dist/devices}/ikea.js.map +0 -0
  2660. /package/{devices → dist/devices}/ilightsin.js.map +0 -0
  2661. /package/{devices → dist/devices}/ilux.js.map +0 -0
  2662. /package/{devices → dist/devices}/imou.js.map +0 -0
  2663. /package/{devices → dist/devices}/index.d.ts +0 -0
  2664. /package/{devices → dist/devices}/index.d.ts.map +0 -0
  2665. /package/{devices → dist/devices}/iolloi.js.map +0 -0
  2666. /package/{devices → dist/devices}/istar.js.map +0 -0
  2667. /package/{devices → dist/devices}/jiawen.js.map +0 -0
  2668. /package/{devices → dist/devices}/jumitech.js.map +0 -0
  2669. /package/{devices → dist/devices}/klikaanklikuit.js.map +0 -0
  2670. /package/{devices → dist/devices}/ksentry.js.map +0 -0
  2671. /package/{devices → dist/devices}/lanesto.js.map +0 -0
  2672. /package/{devices → dist/devices}/lds.js.map +0 -0
  2673. /package/{devices → dist/devices}/ledvance.js.map +0 -0
  2674. /package/{devices → dist/devices}/letsled.js.map +0 -0
  2675. /package/{devices → dist/devices}/lg.js.map +0 -0
  2676. /package/{devices → dist/devices}/lightsolutions.js.map +0 -0
  2677. /package/{devices → dist/devices}/ls.js.map +0 -0
  2678. /package/{devices → dist/devices}/lubeez.js.map +0 -0
  2679. /package/{devices → dist/devices}/m_elec.js.map +0 -0
  2680. /package/{devices → dist/devices}/makegood.js.map +0 -0
  2681. /package/{devices → dist/devices}/matcall_bv.js.map +0 -0
  2682. /package/{devices → dist/devices}/micromatic.js.map +0 -0
  2683. /package/{devices → dist/devices}/modular.js.map +0 -0
  2684. /package/{devices → dist/devices}/nanoleaf.js.map +0 -0
  2685. /package/{devices → dist/devices}/nedis.js.map +0 -0
  2686. /package/{devices → dist/devices}/nexelec.js.map +0 -0
  2687. /package/{devices → dist/devices}/niviss.js.map +0 -0
  2688. /package/{devices → dist/devices}/nordtronic.js.map +0 -0
  2689. /package/{devices → dist/devices}/onenuo.js.map +0 -0
  2690. /package/{devices → dist/devices}/ozsmartthings.js.map +0 -0
  2691. /package/{devices → dist/devices}/philio.js.map +0 -0
  2692. /package/{devices → dist/devices}/quotra.js.map +0 -0
  2693. /package/{devices → dist/devices}/rademacher.js.map +0 -0
  2694. /package/{devices → dist/devices}/radium.js.map +0 -0
  2695. /package/{devices → dist/devices}/raex.js.map +0 -0
  2696. /package/{devices → dist/devices}/samotech.js.map +0 -0
  2697. /package/{devices → dist/devices}/sber.js.map +0 -0
  2698. /package/{devices → dist/devices}/scanproducts.js.map +0 -0
  2699. /package/{devices → dist/devices}/seastar_intelligence.js.map +0 -0
  2700. /package/{devices → dist/devices}/shenzhen_homa.js.map +0 -0
  2701. /package/{devices → dist/devices}/shyugj.js.map +0 -0
  2702. /package/{devices → dist/devices}/simon.js.map +0 -0
  2703. /package/{devices → dist/devices}/skydance.js.map +0 -0
  2704. /package/{devices → dist/devices}/slv.js.map +0 -0
  2705. /package/{devices → dist/devices}/smart_home_pty.js.map +0 -0
  2706. /package/{devices → dist/devices}/smlight.js.map +0 -0
  2707. /package/{devices → dist/devices}/solaredge.js.map +0 -0
  2708. /package/{devices → dist/devices}/soma.js.map +0 -0
  2709. /package/{devices → dist/devices}/sowilo.js.map +0 -0
  2710. /package/{devices → dist/devices}/spotmau.js.map +0 -0
  2711. /package/{devices → dist/devices}/tci.js.map +0 -0
  2712. /package/{devices → dist/devices}/tlwglobal.js.map +0 -0
  2713. /package/{devices → dist/devices}/vbled.js.map +0 -0
  2714. /package/{devices → dist/devices}/villeroy_boch.js.map +0 -0
  2715. /package/{devices → dist/devices}/vrey.js.map +0 -0
  2716. /package/{devices → dist/devices}/wisdom.js.map +0 -0
  2717. /package/{devices → dist/devices}/xal.js.map +0 -0
  2718. /package/{devices → dist/devices}/xinghuoyuan.js.map +0 -0
  2719. /package/{devices → dist/devices}/ysrsai.js.map +0 -0
  2720. /package/{devices → dist/devices}/zigbeetlc.d.ts +0 -0
  2721. /package/{devices → dist/devices}/zigbeetlc.d.ts.map +0 -0
  2722. /package/{devices → dist/devices}/zigbeetlc.js.map +0 -0
  2723. /package/{devices → dist/devices}/zipato.js.map +0 -0
  2724. /package/{lib → dist/lib}/kelvinToXy.d.ts +0 -0
  2725. /package/{lib → dist/lib}/kelvinToXy.d.ts.map +0 -0
  2726. /package/{lib → dist/lib}/logger.js.map +0 -0
  2727. /package/{lib → dist/lib}/reporting.js.map +0 -0
  2728. /package/{lib → dist/lib}/sunricher.js.map +0 -0
  2729. /package/{lib → dist/lib}/types.js +0 -0
  2730. /package/{lib → dist/lib}/types.js.map +0 -0
package/lib/tuya.js DELETED
@@ -1,2415 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.clusters = exports.modernExtend = exports.fz = exports.tz = exports.valueConverter = exports.valueConverterBasic = exports.Bitmap = exports.enum = exports.Enum = exports.whitelabel = exports.fingerprint = exports.configureMagicPacket = exports.skip = exports.exposes = exports.dataTypes = void 0;
40
- exports.convertBufferToNumber = convertBufferToNumber;
41
- exports.onEvent = onEvent;
42
- exports.convertDecimalValueTo4ByteHexArray = convertDecimalValueTo4ByteHexArray;
43
- exports.onEventMeasurementPoll = onEventMeasurementPoll;
44
- exports.onEventSetTime = onEventSetTime;
45
- exports.onEventSetLocalTime = onEventSetLocalTime;
46
- exports.sendDataPointValue = sendDataPointValue;
47
- exports.sendDataPointBool = sendDataPointBool;
48
- exports.sendDataPointEnum = sendDataPointEnum;
49
- exports.sendDataPointRaw = sendDataPointRaw;
50
- exports.sendDataPointBitmap = sendDataPointBitmap;
51
- exports.sendDataPointStringBuffer = sendDataPointStringBuffer;
52
- exports.getHandlersForDP = getHandlersForDP;
53
- const zigbee_herdsman_1 = require("zigbee-herdsman");
54
- const fromZigbee_1 = __importDefault(require("../converters/fromZigbee"));
55
- const toZigbee_1 = __importDefault(require("../converters/toZigbee"));
56
- const constants = __importStar(require("./constants"));
57
- const exposes = __importStar(require("./exposes"));
58
- const logger_1 = require("./logger");
59
- const modernExtend = __importStar(require("./modernExtend"));
60
- const globalStore = __importStar(require("./store"));
61
- const utils = __importStar(require("./utils"));
62
- const utils_1 = require("./utils");
63
- // import {Color} from './color';
64
- const NS = 'zhc:tuya';
65
- const e = exposes.presets;
66
- const ea = exposes.access;
67
- exports.dataTypes = {
68
- raw: 0, // [ bytes ]
69
- bool: 1, // [0/1]
70
- number: 2, // [ 4 byte value ]
71
- string: 3, // [ N byte string ]
72
- enum: 4, // [ 0-255 ]
73
- bitmap: 5, // [ 1,2,4 bytes ] as bits
74
- };
75
- function convertBufferToNumber(chunks) {
76
- let value = 0;
77
- for (let i = 0; i < chunks.length; i++) {
78
- value = value << 8;
79
- value += chunks[i];
80
- }
81
- return value;
82
- }
83
- function convertStringToHexArray(value) {
84
- const asciiKeys = [];
85
- for (let i = 0; i < value.length; i++) {
86
- asciiKeys.push(value[i].charCodeAt(0));
87
- }
88
- return asciiKeys;
89
- }
90
- function onEvent(args) {
91
- return async (type, data, device, settings, state) => {
92
- args = { queryOnDeviceAnnounce: false, timeStart: '1970', respondToMcuVersionResponse: true, ...args };
93
- const endpoint = device.endpoints[0];
94
- if (type === 'message' && data.cluster === 'manuSpecificTuya') {
95
- if (args.respondToMcuVersionResponse && data.type === 'commandMcuVersionResponse') {
96
- await endpoint.command('manuSpecificTuya', 'mcuVersionRequest', { seq: 0x0002 });
97
- }
98
- else if (data.type === 'commandMcuGatewayConnectionStatus') {
99
- // "payload" can have the following values:
100
- // 0x00: The gateway is not connected to the internet.
101
- // 0x01: The gateway is connected to the internet.
102
- // 0x02: The request timed out after three seconds.
103
- const payload = { payloadSize: 1, payload: 1 };
104
- await endpoint.command('manuSpecificTuya', 'mcuGatewayConnectionStatus', payload, {});
105
- }
106
- }
107
- if (data.type === 'commandMcuSyncTime' && data.cluster === 'manuSpecificTuya') {
108
- try {
109
- const offset = args.timeStart === '2000' ? constants.OneJanuary2000 : 0;
110
- const utcTime = Math.round((new Date().getTime() - offset) / 1000);
111
- const localTime = utcTime - new Date().getTimezoneOffset() * 60;
112
- const payload = {
113
- payloadSize: 8,
114
- payload: [...convertDecimalValueTo4ByteHexArray(utcTime), ...convertDecimalValueTo4ByteHexArray(localTime)],
115
- };
116
- await endpoint.command('manuSpecificTuya', 'mcuSyncTime', payload, {});
117
- }
118
- catch {
119
- /* handle error to prevent crash */
120
- }
121
- }
122
- // Some devices require a dataQuery on deviceAnnounce, otherwise they don't report any data
123
- if (args.queryOnDeviceAnnounce && type === 'deviceAnnounce') {
124
- await endpoint.command('manuSpecificTuya', 'dataQuery', {});
125
- }
126
- if (args.queryIntervalSeconds) {
127
- if (type === 'stop') {
128
- clearTimeout(globalStore.getValue(device, 'query_interval'));
129
- globalStore.clearValue(device, 'query_interval');
130
- }
131
- else if (!globalStore.hasValue(device, 'query_interval')) {
132
- const setTimer = () => {
133
- const timer = setTimeout(async () => {
134
- try {
135
- await endpoint.command('manuSpecificTuya', 'dataQuery', {});
136
- }
137
- catch {
138
- /* Do nothing*/
139
- }
140
- setTimer();
141
- }, args.queryIntervalSeconds * 1000);
142
- globalStore.putValue(device, 'query_interval', timer);
143
- };
144
- setTimer();
145
- }
146
- }
147
- };
148
- }
149
- function getDataValue(dpValue) {
150
- let dataString = '';
151
- switch (dpValue.datatype) {
152
- case exports.dataTypes.raw:
153
- return dpValue.data;
154
- case exports.dataTypes.bool:
155
- return dpValue.data[0] === 1;
156
- case exports.dataTypes.number:
157
- return convertBufferToNumber(dpValue.data);
158
- case exports.dataTypes.string:
159
- // Don't use .map here, doesn't work: https://github.com/Koenkk/zigbee-herdsman-converters/pull/1799/files#r530377091
160
- for (let i = 0; i < dpValue.data.length; ++i) {
161
- dataString += String.fromCharCode(dpValue.data[i]);
162
- }
163
- return dataString;
164
- case exports.dataTypes.enum:
165
- return dpValue.data[0];
166
- case exports.dataTypes.bitmap:
167
- return convertBufferToNumber(dpValue.data);
168
- }
169
- }
170
- function convertDecimalValueTo4ByteHexArray(value) {
171
- const hexValue = Number(value).toString(16).padStart(8, '0');
172
- const chunk1 = hexValue.substring(0, 2);
173
- const chunk2 = hexValue.substring(2, 4);
174
- const chunk3 = hexValue.substring(4, 6);
175
- const chunk4 = hexValue.substring(6);
176
- return [chunk1, chunk2, chunk3, chunk4].map((hexVal) => parseInt(hexVal, 16));
177
- }
178
- function convertDecimalValueTo2ByteHexArray(value) {
179
- const hexValue = Number(value).toString(16).padStart(4, '0');
180
- const chunk1 = hexValue.substring(0, 2);
181
- const chunk2 = hexValue.substring(2);
182
- return [chunk1, chunk2].map((hexVal) => parseInt(hexVal, 16));
183
- }
184
- async function onEventMeasurementPoll(type, data, device, options, electricalMeasurement = true, metering = false) {
185
- const endpoint = device.getEndpoint(1);
186
- const poll = async () => {
187
- if (electricalMeasurement) {
188
- await endpoint.read('haElectricalMeasurement', ['rmsVoltage', 'rmsCurrent', 'activePower']);
189
- }
190
- if (metering) {
191
- await endpoint.read('seMetering', ['currentSummDelivered']);
192
- }
193
- };
194
- utils.onEventPoll(type, data, device, options, 'measurement', 60, poll);
195
- }
196
- async function onEventSetTime(type, data, device) {
197
- // FIXME: Need to join onEventSetTime/onEventSetLocalTime to one command
198
- if (data.type === 'commandMcuSyncTime' && data.cluster === 'manuSpecificTuya') {
199
- try {
200
- const utcTime = Math.round((new Date().getTime() - constants.OneJanuary2000) / 1000);
201
- const localTime = utcTime - new Date().getTimezoneOffset() * 60;
202
- const endpoint = device.getEndpoint(1);
203
- const payload = {
204
- payloadSize: 8,
205
- payload: [...convertDecimalValueTo4ByteHexArray(utcTime), ...convertDecimalValueTo4ByteHexArray(localTime)],
206
- };
207
- await endpoint.command('manuSpecificTuya', 'mcuSyncTime', payload, {});
208
- }
209
- catch {
210
- // endpoint.command can throw an error which needs to
211
- // be caught or the zigbee-herdsman may crash
212
- // Debug message is handled in the zigbee-herdsman
213
- }
214
- }
215
- }
216
- // set UTC and Local Time as total number of seconds from 00: 00: 00 on January 01, 1970
217
- // force to update every device time every hour due to very poor clock
218
- async function onEventSetLocalTime(type, data, device) {
219
- // FIXME: What actually nextLocalTimeUpdate/forceTimeUpdate do?
220
- // I did not find any timers or something else where it was used.
221
- // Actually, there are two ways to set time on Tuya MCU devices:
222
- // 1. Respond to the `commandMcuSyncTime` event
223
- // 2. Just send `mcuSyncTime` anytime (by 1-hour timer or something else)
224
- const nextLocalTimeUpdate = globalStore.getValue(device, 'nextLocalTimeUpdate');
225
- const forceTimeUpdate = nextLocalTimeUpdate == null || nextLocalTimeUpdate < new Date().getTime();
226
- if ((data.type === 'commandMcuSyncTime' && data.cluster === 'manuSpecificTuya') || forceTimeUpdate) {
227
- globalStore.putValue(device, 'nextLocalTimeUpdate', new Date().getTime() + 3600 * 1000);
228
- try {
229
- const utcTime = Math.round(new Date().getTime() / 1000);
230
- const localTime = utcTime - new Date().getTimezoneOffset() * 60;
231
- const endpoint = device.getEndpoint(1);
232
- const payload = {
233
- payloadSize: 8,
234
- payload: [...convertDecimalValueTo4ByteHexArray(utcTime), ...convertDecimalValueTo4ByteHexArray(localTime)],
235
- };
236
- await endpoint.command('manuSpecificTuya', 'mcuSyncTime', payload, {});
237
- }
238
- catch {
239
- // endpoint.command can throw an error which needs to
240
- // be caught or the zigbee-herdsman may crash
241
- // Debug message is handled in the zigbee-herdsman
242
- }
243
- }
244
- }
245
- // Return `seq` - transaction ID for handling concrete response
246
- async function sendDataPoints(entity, dpValues, cmd = 'dataRequest', seq) {
247
- if (seq === undefined) {
248
- seq = globalStore.getValue(entity, 'sequence', 0);
249
- globalStore.putValue(entity, 'sequence', (seq + 1) % 0xffff);
250
- }
251
- await entity.command('manuSpecificTuya', cmd, { seq, dpValues }, { disableDefaultResponse: true });
252
- return seq;
253
- }
254
- function dpValueFromNumberValue(dp, value) {
255
- return { dp, datatype: exports.dataTypes.number, data: convertDecimalValueTo4ByteHexArray(value) };
256
- }
257
- function dpValueFromBool(dp, value) {
258
- return { dp, datatype: exports.dataTypes.bool, data: [value ? 1 : 0] };
259
- }
260
- function dpValueFromEnum(dp, value) {
261
- return { dp, datatype: exports.dataTypes.enum, data: [value] };
262
- }
263
- function dpValueFromString(dp, string) {
264
- return { dp, datatype: exports.dataTypes.string, data: convertStringToHexArray(string) };
265
- }
266
- function dpValueFromRaw(dp, rawBuffer) {
267
- return { dp, datatype: exports.dataTypes.raw, data: rawBuffer };
268
- }
269
- function dpValueFromBitmap(dp, bitmapBuffer) {
270
- return { dp, datatype: exports.dataTypes.bitmap, data: [bitmapBuffer] };
271
- }
272
- async function sendDataPointValue(entity, dp, value, cmd, seq) {
273
- return await sendDataPoints(entity, [dpValueFromNumberValue(dp, value)], cmd, seq);
274
- }
275
- async function sendDataPointBool(entity, dp, value, cmd, seq) {
276
- return await sendDataPoints(entity, [dpValueFromBool(dp, value)], cmd, seq);
277
- }
278
- async function sendDataPointEnum(entity, dp, value, cmd, seq) {
279
- return await sendDataPoints(entity, [dpValueFromEnum(dp, value)], cmd, seq);
280
- }
281
- async function sendDataPointRaw(entity, dp, value, cmd, seq) {
282
- return await sendDataPoints(entity, [dpValueFromRaw(dp, value)], cmd, seq);
283
- }
284
- async function sendDataPointBitmap(entity, dp, value, cmd, seq) {
285
- return await sendDataPoints(entity, [dpValueFromBitmap(dp, value)], cmd, seq);
286
- }
287
- async function sendDataPointStringBuffer(entity, dp, value, cmd, seq) {
288
- return await sendDataPoints(entity, [dpValueFromString(dp, value)], cmd, seq);
289
- }
290
- const tuyaExposes = {
291
- lightType: () => e.enum('light_type', ea.STATE_SET, ['led', 'incandescent', 'halogen']).withDescription('Type of light attached to the device'),
292
- lightBrightnessWithMinMax: () => e
293
- .light_brightness()
294
- .withMinBrightness()
295
- .withMaxBrightness()
296
- .setAccess('state', ea.STATE_SET)
297
- .setAccess('brightness', ea.STATE_SET)
298
- .setAccess('min_brightness', ea.STATE_SET)
299
- .setAccess('max_brightness', ea.STATE_SET),
300
- lightBrightness: () => e.light_brightness().setAccess('state', ea.STATE_SET).setAccess('brightness', ea.STATE_SET),
301
- countdown: () => e
302
- .numeric('countdown', ea.STATE_SET)
303
- .withValueMin(0)
304
- .withValueMax(43200)
305
- .withValueStep(1)
306
- .withUnit('s')
307
- .withDescription('Countdown to turn device off after a certain time'),
308
- switch: () => e.switch().setAccess('state', ea.STATE_SET),
309
- selfTest: () => e.binary('self_test', ea.STATE_SET, true, false).withDescription('Indicates whether the device is being self-tested'),
310
- selfTestResult: () => e.enum('self_test_result', ea.STATE, ['checking', 'success', 'failure', 'others']).withDescription('Result of the self-test'),
311
- faultAlarm: () => e.binary('fault_alarm', ea.STATE, true, false).withDescription('Indicates whether a fault was detected'),
312
- silence: () => e.binary('silence', ea.STATE_SET, true, false).withDescription('Silence the alarm'),
313
- frostProtection: (extraNote = '') => e
314
- .binary('frost_protection', ea.STATE_SET, 'ON', 'OFF')
315
- .withDescription(`When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C.${extraNote}`),
316
- errorStatus: () => e.numeric('error_status', ea.STATE).withDescription('Error status'),
317
- scheduleAllDays: (access, example) => ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'].map((day) => e.text(`schedule_${day}`, access).withDescription(`Schedule for ${day}, example: "${example}"`)),
318
- temperatureUnit: () => e.enum('temperature_unit', ea.STATE_SET, ['celsius', 'fahrenheit']).withDescription('Temperature unit'),
319
- temperatureCalibration: () => e
320
- .numeric('temperature_calibration', ea.STATE_SET)
321
- .withValueMin(-2.0)
322
- .withValueMax(2.0)
323
- .withValueStep(0.1)
324
- .withUnit('°C')
325
- .withDescription('Temperature calibration'),
326
- humidityCalibration: () => e
327
- .numeric('humidity_calibration', ea.STATE_SET)
328
- .withValueMin(-30)
329
- .withValueMax(30)
330
- .withValueStep(1)
331
- .withUnit('%')
332
- .withDescription('Humidity calibration'),
333
- soilCalibration: () => e
334
- .numeric('soil_calibration', ea.STATE_SET)
335
- .withValueMin(-30)
336
- .withValueMax(30)
337
- .withValueStep(1)
338
- .withUnit('%')
339
- .withDescription('Soil Humidity calibration'),
340
- temperatureSampling: () => e
341
- .numeric('temperature_sampling', ea.STATE_SET)
342
- .withValueMin(5)
343
- .withValueMax(3600)
344
- .withValueStep(1)
345
- .withUnit('s')
346
- .withDescription('Air temperature and humidity sampling'),
347
- soilSampling: () => e
348
- .numeric('soil_sampling', ea.STATE_SET)
349
- .withValueMin(5)
350
- .withValueMax(3600)
351
- .withValueStep(1)
352
- .withUnit('s')
353
- .withDescription('Soil humidity sampling'),
354
- soilWarning: () => e
355
- .numeric('soil_warning', ea.STATE_SET)
356
- .withValueMin(0)
357
- .withValueMax(100)
358
- .withValueStep(1)
359
- .withUnit('%')
360
- .withDescription('Soil water shortage humidity value'),
361
- gasValue: () => e.numeric('gas_value', ea.STATE).withDescription('Measured gas concentration'),
362
- energyWithPhase: (phase) => e.numeric(`energy_${phase}`, ea.STATE).withUnit('kWh').withDescription(`Sum of consumed energy (phase ${phase.toUpperCase()})`),
363
- energyProducedWithPhase: (phase) => e.numeric(`energy_produced_${phase}`, ea.STATE).withUnit('kWh').withDescription(`Sum of produced energy (phase ${phase.toUpperCase()})`),
364
- energyFlowWithPhase: (phase, more) => e
365
- .enum(`energy_flow_${phase}`, ea.STATE, ['consuming', 'producing', ...more])
366
- .withDescription(`Direction of energy (phase ${phase.toUpperCase()})`),
367
- voltageWithPhase: (phase) => e.numeric(`voltage_${phase}`, ea.STATE).withUnit('V').withDescription(`Measured electrical potential value (phase ${phase.toUpperCase()})`),
368
- powerWithPhase: (phase) => e.numeric(`power_${phase}`, ea.STATE).withUnit('W').withDescription(`Instantaneous measured power (phase ${phase.toUpperCase()})`),
369
- currentWithPhase: (phase) => e
370
- .numeric(`current_${phase}`, ea.STATE)
371
- .withUnit('A')
372
- .withDescription(`Instantaneous measured electrical current (phase ${phase.toUpperCase()})`),
373
- powerFactorWithPhase: (phase) => e
374
- .numeric(`power_factor_${phase}`, ea.STATE)
375
- .withUnit('%')
376
- .withDescription(`Instantaneous measured power factor (phase ${phase.toUpperCase()})`),
377
- switchType: () => e.enum('switch_type', ea.ALL, ['toggle', 'state', 'momentary']).withDescription('Type of the switch'),
378
- backlightModeLowMediumHigh: () => e.enum('backlight_mode', ea.ALL, ['low', 'medium', 'high']).withDescription('Intensity of the backlight'),
379
- backlightModeOffNormalInverted: () => e.enum('backlight_mode', ea.ALL, ['off', 'normal', 'inverted']).withDescription('Mode of the backlight'),
380
- backlightModeOffOn: () => e.binary('backlight_mode', ea.ALL, 'ON', 'OFF').withDescription(`Mode of the backlight`),
381
- indicatorMode: () => e.enum('indicator_mode', ea.ALL, ['off', 'off/on', 'on/off', 'on']).withDescription('LED indicator mode'),
382
- indicatorModeNoneRelayPos: () => e.enum('indicator_mode', ea.ALL, ['none', 'relay', 'pos']).withDescription('Mode of the indicator light'),
383
- powerOutageMemory: () => e.enum('power_outage_memory', ea.ALL, ['on', 'off', 'restore']).withDescription('Recover state after power outage'),
384
- batteryState: () => e.enum('battery_state', ea.STATE, ['low', 'medium', 'high']).withDescription('State of the battery'),
385
- doNotDisturb: () => e
386
- .binary('do_not_disturb', ea.STATE_SET, true, false)
387
- .withDescription('Do not disturb mode, when enabled this function will keep the light OFF after a power outage'),
388
- colorPowerOnBehavior: () => e.enum('color_power_on_behavior', ea.STATE_SET, ['initial', 'previous', 'customized']).withDescription('Power on behavior state'),
389
- switchMode: () => e.enum('switch_mode', ea.STATE_SET, ['switch', 'scene']).withDescription('Sets the mode of the switch to act as a switch or as a scene'),
390
- switchMode2: () => e
391
- .enum('switch_mode', ea.STATE_SET, ['switch', 'curtain'])
392
- .withDescription('Sets the mode of the switch to act as a switch or as a curtain controller'),
393
- lightMode: () => e.enum('light_mode', ea.STATE_SET, ['normal', 'on', 'off', 'flash']).withDescription(`'Sets the indicator mode of l1.
394
- Normal: Orange while off and white while on.
395
- On: Always white. Off: Always orange.
396
- Flash: Flashes white when triggered.
397
- Note: Orange light will turn off after light off delay, white light always stays on. Light mode updates on next state change.'`),
398
- // Inching can be enabled for multiple endpoints (1 to 6) but it is always controlled on endpoint 1
399
- // So instead of pinning the values to each endpoint, it is easier to keep the structure stand alone.
400
- inchingSwitch: (quantity) => {
401
- const x = e
402
- .composite('inching_control_set', 'inching_control_set', ea.SET)
403
- .withDescription('Device Inching function Settings. The device will automatically turn off ' + 'after each turn on for a specified period of time.');
404
- for (let i = 1; i <= quantity; i++) {
405
- x.withFeature(e
406
- .binary('inching_control', ea.SET, 'ENABLE', 'DISABLE')
407
- .withDescription('Enable/disable inching function for endpoint ' + i + '.')
408
- .withLabel('Inching for Endpoint ' + i)
409
- .withProperty('inching_control_' + i)).withFeature(e
410
- .numeric('inching_time', ea.SET)
411
- .withDescription('Delay time for executing a inching action for endpoint ' + i + '.')
412
- .withLabel('Inching time for endpoint ' + i)
413
- .withProperty('inching_time_' + i)
414
- .withUnit('seconds')
415
- .withValueMin(1)
416
- .withValueMax(65535)
417
- .withValueStep(1));
418
- }
419
- return x;
420
- },
421
- };
422
- exports.exposes = tuyaExposes;
423
- exports.skip = {
424
- // Prevent state from being published when already ON and brightness is also published.
425
- // This prevents 100% -> X% brightness jumps when the switch is already on
426
- // https://github.com/Koenkk/zigbee2mqtt/issues/13800#issuecomment-1263592783
427
- stateOnAndBrightnessPresent: (meta) => {
428
- if (Array.isArray(meta.mapped))
429
- throw new Error('Not supported');
430
- const convertedKey = meta.mapped.meta.multiEndpoint && meta.endpoint_name ? `state_${meta.endpoint_name}` : 'state';
431
- return meta.message.brightness !== undefined && meta.state[convertedKey] === meta.message.state;
432
- },
433
- };
434
- const configureMagicPacket = async (device, coordinatorEndpoint) => {
435
- try {
436
- const endpoint = device.endpoints[0];
437
- await endpoint.read('genBasic', ['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
438
- }
439
- catch (e) {
440
- // Fails for some Tuya devices with UNSUPPORTED_ATTRIBUTE, ignore that.
441
- // e.g. https://github.com/Koenkk/zigbee2mqtt/issues/14857
442
- if (e.message.includes('UNSUPPORTED_ATTRIBUTE')) {
443
- logger_1.logger.debug('configureMagicPacket failed, ignoring...', NS);
444
- }
445
- else {
446
- throw e;
447
- }
448
- }
449
- };
450
- exports.configureMagicPacket = configureMagicPacket;
451
- const fingerprint = (modelID, manufacturerNames) => {
452
- return manufacturerNames.map((manufacturerName) => {
453
- return { modelID, manufacturerName };
454
- });
455
- };
456
- exports.fingerprint = fingerprint;
457
- const whitelabel = (vendor, model, description, manufacturerNames) => {
458
- const fingerprint = manufacturerNames.map((manufacturerName) => {
459
- return { manufacturerName };
460
- });
461
- return { vendor, model, description, fingerprint };
462
- };
463
- exports.whitelabel = whitelabel;
464
- class Base {
465
- value;
466
- constructor(value) {
467
- this.value = value;
468
- }
469
- valueOf() {
470
- return this.value;
471
- }
472
- }
473
- class Enum extends Base {
474
- constructor(value) {
475
- super(value);
476
- }
477
- }
478
- exports.Enum = Enum;
479
- const enumConstructor = (value) => new Enum(value);
480
- exports.enum = enumConstructor;
481
- class Bitmap extends Base {
482
- constructor(value) {
483
- super(value);
484
- }
485
- }
486
- exports.Bitmap = Bitmap;
487
- exports.valueConverterBasic = {
488
- lookup: (map, fallbackValue) => {
489
- return {
490
- to: (v, meta) => utils.getFromLookup(v, typeof map === 'function' ? map(meta.options, meta.device) : map),
491
- from: (v, _meta, options) => {
492
- const m = typeof map === 'function' ? map(options, _meta.device) : map;
493
- const value = Object.entries(m).find((i) => i[1].valueOf() === v);
494
- if (!value) {
495
- if (fallbackValue !== undefined)
496
- return fallbackValue;
497
- throw new Error(`Value '${v}' is not allowed, expected one of ${Object.values(m).map((i) => i.valueOf())}`);
498
- }
499
- return value[0];
500
- },
501
- };
502
- },
503
- scale: (min1, max1, min2, max2) => {
504
- return {
505
- to: (v) => utils.mapNumberRange(v, min1, max1, min2, max2),
506
- from: (v) => utils.mapNumberRange(v, min2, max2, min1, max1),
507
- };
508
- },
509
- raw: () => {
510
- return { to: (v) => v, from: (v) => v };
511
- },
512
- divideBy: (value) => {
513
- return { to: (v) => v * value, from: (v) => v / value };
514
- },
515
- divideByFromOnly: (value) => {
516
- return { to: (v) => v, from: (v) => v / value };
517
- },
518
- trueFalse: (valueTrue) => {
519
- return { from: (v) => v === valueTrue.valueOf() };
520
- },
521
- };
522
- exports.valueConverter = {
523
- trueFalse0: exports.valueConverterBasic.trueFalse(0),
524
- trueFalse1: exports.valueConverterBasic.trueFalse(1),
525
- trueFalseInvert: {
526
- to: (v) => !v,
527
- from: (v) => !v,
528
- },
529
- trueFalseEnum0: exports.valueConverterBasic.trueFalse(new Enum(0)),
530
- trueFalseEnum1: exports.valueConverterBasic.trueFalse(new Enum(1)),
531
- onOff: exports.valueConverterBasic.lookup({ ON: true, OFF: false }),
532
- powerOnBehavior: exports.valueConverterBasic.lookup({ off: 0, on: 1, previous: 2 }),
533
- powerOnBehaviorEnum: exports.valueConverterBasic.lookup({ off: new Enum(0), on: new Enum(1), previous: new Enum(2) }),
534
- switchType: exports.valueConverterBasic.lookup({ momentary: new Enum(0), toggle: new Enum(1), state: new Enum(2) }),
535
- switchType2: exports.valueConverterBasic.lookup({ toggle: new Enum(0), state: new Enum(1), momentary: new Enum(2) }),
536
- backlightModeOffNormalInverted: exports.valueConverterBasic.lookup({ off: new Enum(0), normal: new Enum(1), inverted: new Enum(2) }),
537
- backlightModeOffLowMediumHigh: exports.valueConverterBasic.lookup({ off: new Enum(0), low: new Enum(1), medium: new Enum(2), high: new Enum(3) }),
538
- lightType: exports.valueConverterBasic.lookup({ led: 0, incandescent: 1, halogen: 2 }),
539
- countdown: exports.valueConverterBasic.raw(),
540
- scale0_254to0_1000: exports.valueConverterBasic.scale(0, 254, 0, 1000),
541
- scale0_1to0_1000: exports.valueConverterBasic.scale(0, 1, 0, 1000),
542
- temperatureUnit: exports.valueConverterBasic.lookup({ celsius: 0, fahrenheit: 1 }),
543
- temperatureUnitEnum: exports.valueConverterBasic.lookup({ celsius: new Enum(0), fahrenheit: new Enum(1) }),
544
- batteryState: exports.valueConverterBasic.lookup({ low: 0, medium: 1, high: 2 }),
545
- divideBy2: exports.valueConverterBasic.divideBy(2),
546
- divideBy10: exports.valueConverterBasic.divideBy(10),
547
- divideBy100: exports.valueConverterBasic.divideBy(100),
548
- divideBy1000: exports.valueConverterBasic.divideBy(1000),
549
- divideBy10FromOnly: exports.valueConverterBasic.divideByFromOnly(10),
550
- switchMode: exports.valueConverterBasic.lookup({ switch: new Enum(0), scene: new Enum(1) }),
551
- switchMode2: exports.valueConverterBasic.lookup({ switch: new Enum(0), curtain: new Enum(1) }),
552
- lightMode: exports.valueConverterBasic.lookup({ normal: new Enum(0), on: new Enum(1), off: new Enum(2), flash: new Enum(3) }),
553
- raw: exports.valueConverterBasic.raw(),
554
- localTemperatureCalibration: {
555
- from: (value) => (value > 4000 ? value - 4096 : value),
556
- to: (value) => (value < 0 ? 4096 + value : value),
557
- },
558
- localTemperatureCalibration_256: {
559
- from: (value) => (value > 200 ? value - 256 : value),
560
- to: (value) => (value < 0 ? 256 + value : value),
561
- },
562
- setLimit: {
563
- to: (v) => {
564
- if (!v)
565
- throw new Error('Limit cannot be unset, use factory_reset');
566
- return v;
567
- },
568
- from: (v) => v,
569
- },
570
- coverPosition: {
571
- to: async (v, meta) => {
572
- return meta.options.invert_cover ? 100 - v : v;
573
- },
574
- from: (v, meta, options, publish) => {
575
- const position = options.invert_cover ? 100 - v : v;
576
- publish({ state: position === 0 ? 'CLOSE' : 'OPEN' });
577
- return position;
578
- },
579
- },
580
- coverPositionInverted: {
581
- to: async (v, meta) => {
582
- return meta.options.invert_cover ? v : 100 - v;
583
- },
584
- from: (v, meta, options, publish) => {
585
- const position = options.invert_cover ? v : 100 - v;
586
- publish({ state: position === 0 ? 'CLOSE' : 'OPEN' });
587
- return position;
588
- },
589
- },
590
- tubularMotorDirection: exports.valueConverterBasic.lookup({ normal: new Enum(0), reversed: new Enum(1) }),
591
- plus1: {
592
- from: (v) => v + 1,
593
- to: (v) => v - 1,
594
- },
595
- static: (value) => {
596
- return {
597
- from: (v) => {
598
- return value;
599
- },
600
- };
601
- },
602
- phaseVariant1: {
603
- from: (v) => {
604
- const buffer = Buffer.from(v, 'base64');
605
- return { voltage: (buffer[14] | (buffer[13] << 8)) / 10, current: (buffer[12] | (buffer[11] << 8)) / 1000 };
606
- },
607
- },
608
- phaseVariant2: {
609
- from: (v) => {
610
- const buf = Buffer.from(v, 'base64');
611
- return { voltage: (buf[1] | (buf[0] << 8)) / 10, current: (buf[4] | (buf[3] << 8)) / 1000, power: buf[7] | (buf[6] << 8) };
612
- },
613
- },
614
- phaseVariant2WithPhase: (phase) => {
615
- return {
616
- from: (v) => {
617
- // Support negative power readings
618
- // https://github.com/Koenkk/zigbee2mqtt/issues/18603#issuecomment-2277697295
619
- const buf = Buffer.from(v, 'base64');
620
- let power = buf[7] | (buf[6] << 8);
621
- if (power > 0x7fff) {
622
- power = (0x999a - power) * -1;
623
- }
624
- return {
625
- [`voltage_${phase}`]: (buf[1] | (buf[0] << 8)) / 10,
626
- [`current_${phase}`]: (buf[4] | (buf[3] << 8)) / 1000,
627
- [`power_${phase}`]: power,
628
- };
629
- },
630
- };
631
- },
632
- phaseVariant3: {
633
- from: (v) => {
634
- const buf = Buffer.from(v, 'base64');
635
- return {
636
- voltage: ((buf[0] << 8) | buf[1]) / 10,
637
- current: ((buf[2] << 16) | (buf[3] << 8) | buf[4]) / 1000,
638
- power: (buf[5] << 16) | (buf[6] << 8) | buf[7],
639
- };
640
- },
641
- },
642
- power: {
643
- from: (v) => {
644
- // Support negative readings
645
- // https://github.com/Koenkk/zigbee2mqtt/issues/18603
646
- return v > 0x0fffffff ? (0x1999999c - v) * -1 : v;
647
- },
648
- },
649
- threshold: {
650
- from: (v) => {
651
- const buffer = Buffer.from(v, 'base64');
652
- const stateLookup = { 0: 'not_set', 1: 'over_current_threshold', 3: 'over_voltage_threshold' };
653
- const protectionLookup = { 0: 'OFF', 1: 'ON' };
654
- return {
655
- threshold_1_protection: protectionLookup[buffer[1]],
656
- threshold_1: stateLookup[buffer[0]],
657
- threshold_1_value: buffer[3] | (buffer[2] << 8),
658
- threshold_2_protection: protectionLookup[buffer[5]],
659
- threshold_2: stateLookup[buffer[4]],
660
- threshold_2_value: buffer[7] | (buffer[6] << 8),
661
- };
662
- },
663
- },
664
- threshold_2: {
665
- to: async (v, meta) => {
666
- const entity = meta.device.endpoints[0];
667
- const onOffLookup = { on: 1, off: 0 };
668
- const sendCommand = utils.getMetaValue(entity, meta.mapped, 'tuyaSendCommand', undefined, 'dataRequest');
669
- if (meta.message.overload_breaker) {
670
- const threshold = meta.state['overload_threshold'];
671
- const buf = Buffer.from([
672
- 3,
673
- utils.getFromLookup(meta.message.overload_breaker, onOffLookup),
674
- 0,
675
- utils.toNumber(threshold, 'overload_threshold'),
676
- ]);
677
- await sendDataPointRaw(entity, 17, Array.from(buf), sendCommand, 1);
678
- }
679
- else if (meta.message.overload_threshold) {
680
- const state = meta.state['overload_breaker'];
681
- const buf = Buffer.from([
682
- 3,
683
- utils.getFromLookup(state, onOffLookup),
684
- 0,
685
- utils.toNumber(meta.message.overload_threshold, 'overload_threshold'),
686
- ]);
687
- await sendDataPointRaw(entity, 17, Array.from(buf), sendCommand, 1);
688
- }
689
- else if (meta.message.leakage_threshold) {
690
- const state = meta.state['leakage_breaker'];
691
- const buf = Buffer.alloc(8);
692
- buf.writeUInt8(4, 4);
693
- buf.writeUInt8(utils.getFromLookup(state, onOffLookup), 5);
694
- buf.writeUInt16BE(utils.toNumber(meta.message.leakage_threshold, 'leakage_threshold'), 6);
695
- await sendDataPointRaw(entity, 17, Array.from(buf), sendCommand, 1);
696
- }
697
- else if (meta.message.leakage_breaker) {
698
- const threshold = meta.state['leakage_threshold'];
699
- const buf = Buffer.alloc(8);
700
- buf.writeUInt8(4, 4);
701
- buf.writeUInt8(utils.getFromLookup(meta.message.leakage_breaker, onOffLookup), 5);
702
- buf.writeUInt16BE(utils.toNumber(threshold, 'leakage_threshold'), 6);
703
- await sendDataPointRaw(entity, 17, Array.from(buf), sendCommand, 1);
704
- }
705
- else if (meta.message.high_temperature_threshold) {
706
- const state = meta.state['high_temperature_breaker'];
707
- const buf = Buffer.alloc(12);
708
- buf.writeUInt8(5, 8);
709
- buf.writeUInt8(utils.getFromLookup(state, onOffLookup), 9);
710
- buf.writeUInt16BE(utils.toNumber(meta.message.high_temperature_threshold, 'high_temperature_threshold'), 10);
711
- await sendDataPointRaw(entity, 17, Array.from(buf), sendCommand, 1);
712
- }
713
- else if (meta.message.high_temperature_breaker) {
714
- const threshold = meta.state['high_temperature_threshold'];
715
- const buf = Buffer.alloc(12);
716
- buf.writeUInt8(5, 8);
717
- buf.writeUInt8(utils.getFromLookup(meta.message.high_temperature_breaker, onOffLookup), 9);
718
- buf.writeUInt16BE(utils.toNumber(threshold, 'high_temperature_threshold'), 10);
719
- await sendDataPointRaw(entity, 17, Array.from(buf), sendCommand, 1);
720
- }
721
- },
722
- from: (v) => {
723
- const data = Buffer.from(v, 'base64');
724
- const result = {};
725
- const lookup = { 0: 'OFF', 1: 'ON' };
726
- const alarmLookup = { 3: 'overload', 4: 'leakage', 5: 'high_temperature' };
727
- const len = data.length;
728
- let i = 0;
729
- while (i < len) {
730
- if (Object.prototype.hasOwnProperty.call(alarmLookup, data[i])) {
731
- const alarm = alarmLookup[data[i]];
732
- const state = lookup[data[i + 1]];
733
- const threshold = data[i + 3] | (data[i + 2] << 8);
734
- result[`${alarm}_breaker`] = state;
735
- result[`${alarm}_threshold`] = threshold;
736
- }
737
- i += 4;
738
- }
739
- return result;
740
- },
741
- },
742
- threshold_3: {
743
- to: async (v, meta) => {
744
- const entity = meta.device.endpoints[0];
745
- const onOffLookup = { on: 1, off: 0 };
746
- const sendCommand = utils.getMetaValue(entity, meta.mapped, 'tuyaSendCommand', undefined, 'dataRequest');
747
- if (meta.message.over_current_threshold) {
748
- const state = meta.state['over_current_breaker'];
749
- const buf = Buffer.from([
750
- 1,
751
- utils.getFromLookup(state, onOffLookup),
752
- 0,
753
- utils.toNumber(meta.message.over_current_threshold, 'over_current_threshold'),
754
- ]);
755
- await sendDataPointRaw(entity, 18, Array.from(buf), sendCommand, 1);
756
- }
757
- else if (meta.message.over_current_breaker) {
758
- const threshold = meta.state['over_current_threshold'];
759
- const buf = Buffer.from([
760
- 1,
761
- utils.getFromLookup(meta.message.over_current_breaker, onOffLookup),
762
- 0,
763
- utils.toNumber(threshold, 'over_current_threshold'),
764
- ]);
765
- await sendDataPointRaw(entity, 18, Array.from(buf), sendCommand, 1);
766
- }
767
- else if (meta.message.over_voltage_threshold) {
768
- const state = meta.state['over_voltage_breaker'];
769
- const buf = Buffer.alloc(8);
770
- buf.writeUInt8(3, 4);
771
- buf.writeUInt8(utils.getFromLookup(state, onOffLookup), 5);
772
- buf.writeUInt16BE(utils.toNumber(meta.message.over_voltage_threshold, 'over_voltage_threshold'), 6);
773
- await sendDataPointRaw(entity, 18, Array.from(buf), sendCommand, 1);
774
- }
775
- else if (meta.message.over_voltage_breaker) {
776
- const threshold = meta.state['over_voltage_threshold'];
777
- const buf = Buffer.alloc(8);
778
- buf.writeUInt8(3, 4);
779
- buf.writeUInt8(utils.getFromLookup(meta.message.over_voltage_breaker, onOffLookup), 5);
780
- buf.writeUInt16BE(utils.toNumber(threshold, 'over_voltage_threshold'), 6);
781
- await sendDataPointRaw(entity, 18, Array.from(buf), sendCommand, 1);
782
- }
783
- else if (meta.message.under_voltage_threshold) {
784
- const state = meta.state['under_voltage_breaker'];
785
- const buf = Buffer.alloc(12);
786
- buf.writeUInt8(4, 8);
787
- buf.writeUInt8(utils.getFromLookup(state, onOffLookup), 9);
788
- buf.writeUInt16BE(utils.toNumber(meta.message.under_voltage_threshold, 'under_voltage_threshold'), 10);
789
- await sendDataPointRaw(entity, 18, Array.from(buf), sendCommand, 1);
790
- }
791
- else if (meta.message.under_voltage_breaker) {
792
- const threshold = meta.state['under_voltage_threshold'];
793
- const buf = Buffer.alloc(12);
794
- buf.writeUInt8(4, 8);
795
- buf.writeUInt8(utils.getFromLookup(meta.message.under_voltage_breaker, onOffLookup), 9);
796
- buf.writeUInt16BE(utils.toNumber(threshold, 'under_voltage_threshold'), 10);
797
- await sendDataPointRaw(entity, 18, Array.from(buf), sendCommand, 1);
798
- }
799
- else if (meta.message.insufficient_balance_threshold) {
800
- const state = meta.state['insufficient_balance_breaker'];
801
- const buf = Buffer.alloc(16);
802
- buf.writeUInt8(8, 12);
803
- buf.writeUInt8(utils.getFromLookup(state, onOffLookup), 13);
804
- buf.writeUInt16BE(utils.toNumber(meta.message.insufficient_balance_threshold, 'insufficient_balance_threshold'), 14);
805
- await sendDataPointRaw(entity, 18, Array.from(buf), sendCommand, 1);
806
- }
807
- else if (meta.message.insufficient_balance_breaker) {
808
- const threshold = meta.state['insufficient_balance_threshold'];
809
- const buf = Buffer.alloc(16);
810
- buf.writeUInt8(8, 12);
811
- buf.writeUInt8(utils.getFromLookup(meta.message.insufficient_balance_breaker, onOffLookup), 13);
812
- buf.writeUInt16BE(utils.toNumber(threshold, 'insufficient_balance_threshold'), 14);
813
- await sendDataPointRaw(entity, 18, Array.from(buf), sendCommand, 1);
814
- }
815
- },
816
- from: (v) => {
817
- const data = Buffer.from(v, 'base64');
818
- const result = {};
819
- const lookup = { 0: 'OFF', 1: 'ON' };
820
- const alarmLookup = { 1: 'over_current', 3: 'over_voltage', 4: 'under_voltage', 8: 'insufficient_balance' };
821
- const len = data.length;
822
- let i = 0;
823
- while (i < len) {
824
- if (Object.prototype.hasOwnProperty.call(alarmLookup, data[i])) {
825
- const alarm = alarmLookup[data[i]];
826
- const state = lookup[data[i + 1]];
827
- const threshold = data[i + 3] | (data[i + 2] << 8);
828
- result[`${alarm}_breaker`] = state;
829
- result[`${alarm}_threshold`] = threshold;
830
- }
831
- i += 4;
832
- }
833
- return result;
834
- },
835
- },
836
- selfTestResult: exports.valueConverterBasic.lookup({ checking: 0, success: 1, failure: 2, others: 3 }),
837
- lockUnlock: exports.valueConverterBasic.lookup({ LOCK: true, UNLOCK: false }),
838
- localTempCalibration1: {
839
- from: (v) => {
840
- if (v > 55)
841
- v -= 0x100000000;
842
- return v / 10;
843
- },
844
- to: (v) => {
845
- if (v > 0)
846
- return v * 10;
847
- if (v < 0)
848
- return v * 10 + 0x100000000;
849
- return v;
850
- },
851
- },
852
- localTempCalibration2: {
853
- from: (v) => v,
854
- to: (v) => {
855
- if (v < 0)
856
- return v + 0x100000000;
857
- return v;
858
- },
859
- },
860
- localTempCalibration3: {
861
- from: (v) => {
862
- if (v > 0x7fffffff)
863
- v -= 0x100000000;
864
- return v / 10;
865
- },
866
- to: (v) => {
867
- if (v > 0)
868
- return v * 10;
869
- if (v < 0)
870
- return v * 10 + 0x100000000;
871
- return v;
872
- },
873
- },
874
- thermostatHolidayStartStop: {
875
- from: (v) => {
876
- const start = {
877
- year: v.slice(0, 4),
878
- month: v.slice(4, 6),
879
- day: v.slice(6, 8),
880
- hours: v.slice(8, 10),
881
- minutes: v.slice(10, 12),
882
- };
883
- const end = {
884
- year: v.slice(12, 16),
885
- month: v.slice(16, 18),
886
- day: v.slice(18, 20),
887
- hours: v.slice(20, 22),
888
- minutes: v.slice(22, 24),
889
- };
890
- const startStr = `${start.year}/${start.month}/${start.day} ${start.hours}:${start.minutes}`;
891
- const endStr = `${end.year}/${end.month}/${end.day} ${end.hours}:${end.minutes}`;
892
- return `${startStr} | ${endStr}`;
893
- },
894
- to: (v) => {
895
- const numberPattern = /\d+/g;
896
- // @ts-expect-error ignore
897
- return v.match(numberPattern).join([]).toString();
898
- },
899
- },
900
- thermostatScheduleDaySingleDP: {
901
- from: (v) => {
902
- // day split to 10 min segments = total 144 segments
903
- const maxPeriodsInDay = 10;
904
- const periodSize = 3;
905
- const schedule = [];
906
- for (let i = 0; i < maxPeriodsInDay; i++) {
907
- const time = v[i * periodSize];
908
- const totalMinutes = time * 10;
909
- const hours = totalMinutes / 60;
910
- const rHours = Math.floor(hours);
911
- const minutes = (hours - rHours) * 60;
912
- const rMinutes = Math.round(minutes);
913
- const strHours = rHours.toString().padStart(2, '0');
914
- const strMinutes = rMinutes.toString().padStart(2, '0');
915
- const tempHexArray = [v[i * periodSize + 1], v[i * periodSize + 2]];
916
- const tempRaw = Buffer.from(tempHexArray).readUIntBE(0, tempHexArray.length);
917
- const temp = tempRaw / 10;
918
- schedule.push(`${strHours}:${strMinutes}/${temp}`);
919
- if (rHours === 24)
920
- break;
921
- }
922
- return schedule.join(' ');
923
- },
924
- to: (v, meta) => {
925
- const dayByte = {
926
- monday: 1,
927
- tuesday: 2,
928
- wednesday: 4,
929
- thursday: 8,
930
- friday: 16,
931
- saturday: 32,
932
- sunday: 64,
933
- };
934
- const weekDay = v.week_day;
935
- utils.assertString(weekDay, 'week_day');
936
- if (Object.keys(dayByte).indexOf(weekDay) === -1) {
937
- throw new Error('Invalid "week_day" property value: ' + weekDay);
938
- }
939
- let weekScheduleType = 'separate';
940
- if (meta.state && meta.state.working_day) {
941
- weekScheduleType = String(meta.state.working_day);
942
- }
943
- const payload = [];
944
- switch (weekScheduleType) {
945
- case 'mon_sun':
946
- payload.push(127);
947
- break;
948
- case 'mon_fri+sat+sun':
949
- if (['saturday', 'sunday'].indexOf(weekDay) === -1) {
950
- payload.push(31);
951
- break;
952
- }
953
- payload.push(dayByte[weekDay]);
954
- break;
955
- case 'separate':
956
- payload.push(dayByte[weekDay]);
957
- break;
958
- default:
959
- throw new Error('Invalid "working_day" property, need to set it before');
960
- }
961
- // day split to 10 min segments = total 144 segments
962
- const maxPeriodsInDay = 10;
963
- utils.assertString(v.schedule, 'schedule');
964
- const schedule = v.schedule.split(' ');
965
- const schedulePeriods = schedule.length;
966
- if (schedulePeriods > 10)
967
- throw new Error('There cannot be more than 10 periods in the schedule: ' + v);
968
- if (schedulePeriods < 2)
969
- throw new Error('There cannot be less than 2 periods in the schedule: ' + v);
970
- let prevHour;
971
- for (const period of schedule) {
972
- const timeTemp = period.split('/');
973
- const hm = timeTemp[0].split(':', 2);
974
- const h = parseInt(hm[0]);
975
- const m = parseInt(hm[1]);
976
- const temp = parseFloat(timeTemp[1]);
977
- if (h < 0 || h > 24 || m < 0 || m >= 60 || m % 10 !== 0 || temp < 5 || temp > 30 || temp % 0.5 !== 0) {
978
- throw new Error('Invalid hour, minute or temperature of: ' + period);
979
- }
980
- else if (prevHour > h) {
981
- throw new Error(`The hour of the next segment can't be less than the previous one: ${prevHour} > ${h}`);
982
- }
983
- prevHour = h;
984
- const segment = (h * 60 + m) / 10;
985
- const tempHexArray = convertDecimalValueTo2ByteHexArray(temp * 10);
986
- payload.push(segment, ...tempHexArray);
987
- }
988
- // Add "technical" periods to be valid payload
989
- for (let i = 0; i < maxPeriodsInDay - schedulePeriods; i++) {
990
- // by default it sends 9000b2, it's 24 hours and 18 degrees
991
- payload.push(144, 0, 180);
992
- }
993
- return payload;
994
- },
995
- },
996
- thermostatScheduleDayMultiDP: {
997
- from: (v) => exports.valueConverter.thermostatScheduleDayMultiDPWithTransitionCount().from(v),
998
- to: (v) => exports.valueConverter.thermostatScheduleDayMultiDPWithTransitionCount().to(v),
999
- },
1000
- thermostatScheduleDayMultiDPWithTransitionCount: (transitionCount = 4) => {
1001
- return {
1002
- from: (v) => {
1003
- const schedule = [];
1004
- for (let index = 1; index < transitionCount * 4 - 1; index = index + 4) {
1005
- schedule.push(String(parseInt(v[index + 0])).padStart(2, '0') +
1006
- ':' +
1007
- String(parseInt(v[index + 1])).padStart(2, '0') +
1008
- '/' +
1009
- // @ts-expect-error ignore
1010
- (parseFloat((v[index + 2] << 8) + v[index + 3]) / 10.0).toFixed(1));
1011
- }
1012
- return schedule.join(' ');
1013
- },
1014
- to: (v) => {
1015
- const payload = [0];
1016
- const transitions = v.split(' ');
1017
- if (transitions.length != transitionCount) {
1018
- throw new Error(`Invalid schedule: there should be ${transitionCount} transitions`);
1019
- }
1020
- for (const transition of transitions) {
1021
- const timeTemp = transition.split('/');
1022
- if (timeTemp.length != 2) {
1023
- throw new Error('Invalid schedule: wrong transition format: ' + transition);
1024
- }
1025
- const hourMin = timeTemp[0].split(':');
1026
- const hour = parseInt(hourMin[0]);
1027
- const min = parseInt(hourMin[1]);
1028
- const temperature = Math.floor(parseFloat(timeTemp[1]) * 10);
1029
- if (hour < 0 || hour > 24 || min < 0 || min > 60 || temperature < 50 || temperature > 350) {
1030
- throw new Error('Invalid hour, minute or temperature of: ' + transition);
1031
- }
1032
- payload.push(hour, min, (temperature & 0xff00) >> 8, temperature & 0xff);
1033
- }
1034
- return payload;
1035
- },
1036
- };
1037
- },
1038
- thermostatScheduleDayMultiDPWithDayNumber: (dayNum, transitionCount = 4) => {
1039
- return {
1040
- from: (v) => exports.valueConverter.thermostatScheduleDayMultiDPWithTransitionCount(transitionCount).from(v),
1041
- to: (v) => {
1042
- const data = exports.valueConverter.thermostatScheduleDayMultiDPWithTransitionCount(transitionCount).to(v);
1043
- data[0] = dayNum;
1044
- return data;
1045
- },
1046
- };
1047
- },
1048
- thermostatScheduleDayMultiDP_TRV602Z: {
1049
- from: (v) => {
1050
- const schedule = [];
1051
- for (let index = 1; index < 24; index = index + 4) {
1052
- const firstByte = (parseInt(v[index + 0]) - 192) << 8;
1053
- const secondByte = parseInt(v[index + 1]);
1054
- const minutesSinceMidnight = firstByte | secondByte;
1055
- const hour = Math.floor(minutesSinceMidnight / 60);
1056
- const minutes = minutesSinceMidnight % 60;
1057
- schedule.push(String(hour).padStart(2, '0') + ':' + String(minutes).padStart(2, '0') + '/' + (parseFloat(v[index + 3]) / 10.0).toFixed(1));
1058
- }
1059
- return schedule.join(' ');
1060
- },
1061
- to: (v) => {
1062
- const payload = [];
1063
- const transitions = v.split(' ');
1064
- if (transitions.length != 6) {
1065
- throw new Error('Invalid schedule: there should be 6 transitions');
1066
- }
1067
- for (const transition of transitions) {
1068
- const timeTemp = transition.split('/');
1069
- if (timeTemp.length != 2) {
1070
- throw new Error('Invalid schedule: wrong transition format: ' + transition);
1071
- }
1072
- const hourMin = timeTemp[0].split(':');
1073
- const hour = parseInt(hourMin[0]);
1074
- const min = parseInt(hourMin[1]);
1075
- const temperature = Math.floor(parseFloat(timeTemp[1]) * 10);
1076
- if (hour < 0 || hour > 24 || min < 0 || min > 60 || temperature < 50 || temperature > 300) {
1077
- throw new Error('Invalid hour, minute or temperature of: ' + transition);
1078
- }
1079
- const minutesSinceMidnight = hour * 60 + min;
1080
- const firstByte = ((minutesSinceMidnight & 3840) >> 8) + 192;
1081
- const secondByte = minutesSinceMidnight & 255;
1082
- payload.push(firstByte, secondByte, 64, temperature);
1083
- }
1084
- return payload;
1085
- },
1086
- },
1087
- thermostatScheduleDayMultiDP_TRV602Z_WithDayNumber: (dayNum) => {
1088
- return {
1089
- from: (v) => exports.valueConverter.thermostatScheduleDayMultiDP_TRV602Z.from(v),
1090
- to: (v) => {
1091
- const data = exports.valueConverter.thermostatScheduleDayMultiDP_TRV602Z.to(v);
1092
- data.unshift(dayNum);
1093
- return data;
1094
- },
1095
- };
1096
- },
1097
- tv02Preset: () => {
1098
- return {
1099
- from: (v) => {
1100
- if (v === 0)
1101
- return 'auto';
1102
- else if (v === 1)
1103
- return 'manual';
1104
- else
1105
- return 'holiday'; // 2 and 3 are holiday
1106
- },
1107
- to: (v, meta) => {
1108
- if (v === 'auto')
1109
- return new Enum(0);
1110
- else if (v === 'manual')
1111
- return new Enum(1);
1112
- else if (v === 'holiday') {
1113
- // https://github.com/Koenkk/zigbee2mqtt/issues/20486
1114
- if (meta.device.manufacturerName === '_TZE200_mudxchsu')
1115
- return new Enum(2);
1116
- else
1117
- return new Enum(3);
1118
- }
1119
- else
1120
- throw new Error(`Unsupported preset '${v}'`);
1121
- },
1122
- };
1123
- },
1124
- /** @deprecated left for compatibility, use {@link thermostatSystemModeAndPresetMap} */
1125
- thermostatSystemModeAndPreset: (toKey) => {
1126
- return {
1127
- from: (v) => {
1128
- utils.assertNumber(v, 'system_mode');
1129
- const presetLookup = { 0: 'auto', 1: 'manual', 2: 'off', 3: 'on' };
1130
- const systemModeLookup = { 0: 'auto', 1: 'auto', 2: 'off', 3: 'heat' };
1131
- return { preset: presetLookup[v], system_mode: systemModeLookup[v] };
1132
- },
1133
- to: (v) => {
1134
- const presetLookup = { auto: new Enum(0), manual: new Enum(1), off: new Enum(2), on: new Enum(3) };
1135
- const systemModeLookup = { auto: new Enum(1), off: new Enum(2), heat: new Enum(3) };
1136
- const lookup = toKey === 'preset' ? presetLookup : systemModeLookup;
1137
- return utils.getFromLookup(v, lookup);
1138
- },
1139
- };
1140
- },
1141
- ZWT198_schedule: {
1142
- from: (value, meta, options) => {
1143
- const programmingMode = [];
1144
- for (let i = 0; i < 8; i++) {
1145
- const start = i * 4;
1146
- const time = value[start].toString().padStart(2, '0') + ':' + value[start + 1].toString().padStart(2, '0');
1147
- const temp = (value[start + 2] * 256 + value[start + 3]) / 10;
1148
- const tempStr = temp.toFixed(1) + '°C';
1149
- programmingMode.push(time + '/' + tempStr);
1150
- }
1151
- return {
1152
- schedule_weekday: programmingMode.slice(0, 6).join(' '),
1153
- schedule_holiday: programmingMode.slice(6, 8).join(' '),
1154
- };
1155
- },
1156
- to: async (v, meta) => {
1157
- const dpId = 109;
1158
- const payload = [];
1159
- let weekdayFormat;
1160
- let holidayFormat;
1161
- if (meta.message.schedule_weekday !== undefined) {
1162
- weekdayFormat = v;
1163
- holidayFormat = meta.state['schedule_holiday'];
1164
- }
1165
- else {
1166
- weekdayFormat = meta.state['schedule_weekday'];
1167
- holidayFormat = v;
1168
- }
1169
- function scheduleToRaw(key, input, number, payload, meta) {
1170
- const items = input.trim().split(/\s+/);
1171
- if (items.length != number) {
1172
- throw new Error('Wrong number of items for ' + key + ' :' + items.length);
1173
- }
1174
- else {
1175
- for (let i = 0; i < number; i++) {
1176
- const timeTemperature = items[i].split('/');
1177
- if (timeTemperature.length != 2) {
1178
- throw new Error('Invalid schedule: wrong transition format: ' + items[i]);
1179
- }
1180
- const hourMinute = timeTemperature[0].split(':', 2);
1181
- const hour = parseInt(hourMinute[0]);
1182
- const minute = parseInt(hourMinute[1]);
1183
- const temperature = parseFloat(timeTemperature[1]);
1184
- if (!utils.isNumber(hour) ||
1185
- !utils.isNumber(temperature) ||
1186
- !utils.isNumber(minute) ||
1187
- hour < 0 ||
1188
- hour >= 24 ||
1189
- minute < 0 ||
1190
- minute >= 60 ||
1191
- temperature < 5 ||
1192
- temperature >= 35) {
1193
- throw new Error('Invalid hour, minute or temperature (5<t<35) in ' +
1194
- key +
1195
- ' of: `' +
1196
- items[i] +
1197
- '`; Format is `hh:m/cc.c` or `hh:mm/cc.c°C`');
1198
- }
1199
- const temperature10 = Math.round(temperature * 10);
1200
- payload.push(hour, minute, (temperature10 >> 8) & 0xff, temperature10 & 0xff);
1201
- }
1202
- }
1203
- return;
1204
- }
1205
- scheduleToRaw('schedule_weekday', weekdayFormat, 6, payload, meta);
1206
- scheduleToRaw('schedule_holiday', holidayFormat, 2, payload, meta);
1207
- const entity = meta.device.endpoints[0];
1208
- const sendCommand = utils.getMetaValue(entity, meta.mapped, 'tuyaSendCommand', undefined, 'dataRequest');
1209
- await sendDataPointRaw(entity, dpId, payload, sendCommand, 1);
1210
- },
1211
- },
1212
- PO_BOCO_ELEC_schedule: (day) => ({
1213
- to: (v) => {
1214
- const payload = [80 + day];
1215
- const modeMapping = {
1216
- off: 5,
1217
- antifrost: 4,
1218
- eco: 3,
1219
- 'comfort_-2': 2,
1220
- 'comfort_-1': 1,
1221
- comfort: 0,
1222
- };
1223
- const items = v.split(' / ');
1224
- items.forEach((item) => {
1225
- if (Object.keys(modeMapping).includes(item)) {
1226
- payload.push(modeMapping[item]);
1227
- }
1228
- else {
1229
- const time = item.split(':');
1230
- const hours = parseInt(time[0]);
1231
- const minutes = Math.floor(parseInt(time[1]) / 5);
1232
- const total = hours * 12 + minutes;
1233
- if (total > 0)
1234
- payload.push(total);
1235
- }
1236
- });
1237
- return payload;
1238
- },
1239
- from: (v) => {
1240
- const payload = [];
1241
- const modeMapping = {
1242
- 5: 'off',
1243
- 4: 'antifrost',
1244
- 3: 'eco',
1245
- 2: 'comfort_-2',
1246
- 1: 'comfort_-1',
1247
- 0: 'comfort',
1248
- };
1249
- for (let index = 1; index < v.length; index++) {
1250
- const item = v[index];
1251
- if (index % 2) {
1252
- if (item > 5)
1253
- break;
1254
- const mode = modeMapping[item];
1255
- payload.push(mode);
1256
- }
1257
- else {
1258
- const nextItem = v[index + 1];
1259
- if (nextItem > 5)
1260
- break;
1261
- const date = new Date();
1262
- date.setHours(0, item * 5);
1263
- const hours = date.getHours().toString().padStart(2, '0');
1264
- const minutes = date.getMinutes().toString().padStart(2, '0');
1265
- payload.push(`${hours}:${minutes}`);
1266
- }
1267
- }
1268
- return payload.join(' / ');
1269
- },
1270
- }),
1271
- PO_BOCO_ELEC_holiday: {
1272
- to: (v) => {
1273
- const payload = [];
1274
- const regex = /(?<startYear>\d{4})\/(?<startMonth>\d{2})\/(?<startDay>\d{2})\s(?<startHours>\d{2}):(?<startMinutes>\d{2}) \| (?<endYear>\d{4})\/(?<endMonth>\d{2})\/(?<endDay>\d{2})\s(?<endHours>\d{2}):(?<endMinutes>\d{2}) \| (?<mode>off|antifrost|eco|comfort_-2|comfort_-1|comfort)$/g;
1275
- const regexResult = regex.exec(v);
1276
- if (!regexResult)
1277
- throw new Error('Invalid syntax. Should be' +
1278
- '`startYear/startMonth/startDay startHours:startMinutes | endYear/endMonth/endDay endHours:endMinutes | mode`. ' +
1279
- 'For example: `2024/12/12 09:00 | 2024/12/14 10:00 | comfort`');
1280
- const { startYear, startMonth, startDay, startHours, startMinutes, endYear, endMonth, endDay, endHours, endMin, mode } = regexResult.groups;
1281
- const startDate = new Date(parseInt(startYear), parseInt(startMonth) - 1, parseInt(startDay), parseInt(startHours), parseInt(startMinutes));
1282
- const endDate = new Date(parseInt(endYear), parseInt(endMonth) - 1, parseInt(endDay), parseInt(endHours), parseInt(startMinutes));
1283
- const diffHours = Math.abs(startDate.getTime() - endDate.getTime()) / 36e5;
1284
- const modeMapping = {
1285
- off: 5,
1286
- antifrost: 4,
1287
- eco: 3,
1288
- 'comfort_-2': 2,
1289
- 'comfort_-1': 1,
1290
- comfort: 0,
1291
- };
1292
- if (endMin)
1293
- logger_1.logger.warning('The end date minutes will be ignore.', NS);
1294
- if (diffHours > 255)
1295
- throw new Error('You cannot set an interval superior at 255 hours.');
1296
- else if (startDate.getTime() > endDate.getTime())
1297
- throw new Error('You cannot set a negative interval.');
1298
- payload.push(parseInt(startYear.slice(2)), parseInt(startMonth), parseInt(startDay), parseInt(startHours), parseInt(startMinutes), modeMapping[mode], 0, diffHours);
1299
- return payload;
1300
- },
1301
- from: (v) => {
1302
- const startYear = '2' + v[0].toString().padStart(3, '0');
1303
- const startMonth = v[1].toString().padStart(2, '0');
1304
- const startDay = v[2].toString().padStart(2, '0');
1305
- const startHours = v[3].toString().padStart(2, '0');
1306
- const startMinutes = v[4].toString().padStart(2, '0');
1307
- const mode = v[5];
1308
- const diffHours = v[7];
1309
- const modeMapping = {
1310
- 5: 'off',
1311
- 4: 'antifrost',
1312
- 3: 'eco',
1313
- 2: 'comfort_-2',
1314
- 1: 'comfort_-1',
1315
- 0: 'comfort',
1316
- };
1317
- const endDate = new Date(parseInt(startYear), parseInt(startMonth) - 1, parseInt(startDay), parseInt(startHours), parseInt(startMinutes));
1318
- endDate.setHours(endDate.getHours() + diffHours);
1319
- const endYear = endDate.getFullYear().toString();
1320
- const endMonth = (endDate.getMonth() + 1).toString().padStart(2, '0');
1321
- const endDay = endDate.getDate().toString().padStart(2, '0');
1322
- const endHours = endDate.getHours().toString().padStart(2, '0');
1323
- return (`${startYear}/${startMonth}/${startDay} ${startHours}:${startMinutes}` +
1324
- ` | ${endYear}/${endMonth}/${endDay} ${endHours}:${startMinutes}` +
1325
- ` | ${modeMapping[mode]}`);
1326
- },
1327
- },
1328
- TV02SystemMode: {
1329
- to: async (v, meta) => {
1330
- const entity = meta.device.endpoints[0];
1331
- if (meta.message.system_mode) {
1332
- if (meta.message.system_mode === 'off') {
1333
- await sendDataPointBool(entity, 107, true, 'dataRequest', 1);
1334
- }
1335
- else {
1336
- await sendDataPointEnum(entity, 2, 1, 'dataRequest', 1); // manual
1337
- }
1338
- }
1339
- else if (meta.message.heating_stop) {
1340
- if (meta.message.heating_stop === 'ON') {
1341
- await sendDataPointBool(entity, 107, true, 'dataRequest', 1);
1342
- }
1343
- else {
1344
- await sendDataPointEnum(entity, 2, 1, 'dataRequest', 1); // manual
1345
- }
1346
- }
1347
- },
1348
- from: (v) => {
1349
- return { system_mode: v === false ? 'heat' : 'off', heating_stop: v === false ? 'OFF' : 'ON' };
1350
- },
1351
- },
1352
- TV02FrostProtection: {
1353
- to: async (v, meta) => {
1354
- const entity = meta.device.endpoints[0];
1355
- if (v === 'ON') {
1356
- await sendDataPointBool(entity, 10, true, 'dataRequest', 1);
1357
- }
1358
- else {
1359
- await sendDataPointEnum(entity, 2, 1, 'dataRequest', 1); // manual
1360
- }
1361
- },
1362
- from: (v) => {
1363
- return { frost_protection: v === false ? 'OFF' : 'ON' };
1364
- },
1365
- },
1366
- inverse: { to: (v) => !v, from: (v) => !v },
1367
- onOffNotStrict: { from: (v) => (v ? 'ON' : 'OFF'), to: (v) => v === 'ON' },
1368
- errorOrBatteryLow: {
1369
- from: (v) => {
1370
- if (v === 0)
1371
- return { battery_low: false };
1372
- if (v === 1)
1373
- return { battery_low: true };
1374
- return { error: v };
1375
- },
1376
- },
1377
- // https://developer.tuya.com/en/docs/connect-subdevices-to-gateways/tuya-zigbee-multiple-switch-access-standard?id=K9ik6zvnqr09m
1378
- inchingSwitch: {
1379
- to: (value) => {
1380
- let result = '';
1381
- for (let i = 1; i <= 6; i++) {
1382
- if (value['inching_control_' + i] == undefined || value['inching_time_' + i] == undefined)
1383
- continue;
1384
- let state = value['inching_control_' + i] == 'ENABLE' ? 1 : 0;
1385
- if (i != 1) {
1386
- // Second endpoint onwards base number is determined by 2 powered by endpoint number less 1
1387
- state += 2 ** (i - 1);
1388
- }
1389
- const secs = parseInt(value['inching_time_' + i]);
1390
- const byte1 = secs >> 8; // Equivalent to Math.truc(secs / 256)
1391
- const byte2 = secs % 256;
1392
- const ascii = String.fromCharCode(state, byte1, byte2);
1393
- result += Buffer.from(ascii).toString('base64');
1394
- }
1395
- return result;
1396
- },
1397
- from: (value) => {
1398
- // break the value into 4 char encoded char which will give 3 char when decoded
1399
- const data = {};
1400
- for (let i = 0; i < value.length; i += 4) {
1401
- const b64asc = value.substring(i, i + 4);
1402
- const str = Buffer.from(b64asc, 'base64').toString('utf8');
1403
- const cca0 = str.charCodeAt(0);
1404
- const cca1 = str.charCodeAt(1);
1405
- const cca2 = str.charCodeAt(2);
1406
- let tmp = 0;
1407
- let status = '';
1408
- // first value indicates the endpoint and if it is on or off
1409
- // 0-1 - 1st endpoint, 2-3 - 2nd endpoint, ...
1410
- switch (cca0) {
1411
- case 0:
1412
- data['inching_control_1'] = 'DISABLE';
1413
- data['inching_time_1'] = (cca1 << 8) + cca2;
1414
- break;
1415
- case 1:
1416
- data['inching_control_1'] = 'ENABLE';
1417
- data['inching_time_1'] = (cca1 << 8) + cca2;
1418
- break;
1419
- default:
1420
- // endpoint #
1421
- tmp = Math.trunc(Math.log2(cca0)) + 1;
1422
- status = cca0 % 2 ? 'ENABLE' : 'DISABLE';
1423
- data['inching_control_' + tmp] = status;
1424
- data['inching_time_' + tmp] = (cca1 << 8) + cca2;
1425
- }
1426
- }
1427
- return data;
1428
- },
1429
- },
1430
- /** @param toMap the key is 'system_mode' or 'preset' related value */
1431
- thermostatSystemModeAndPresetMap: ({ fromMap = {}, toMap = {}, }) => {
1432
- return {
1433
- from: (v) => {
1434
- utils.assertNumber(v, 'system_mode');
1435
- return { running_mode: fromMap[v].device_mode, system_mode: fromMap[v].system_mode, preset: fromMap[v].preset };
1436
- },
1437
- to: (v) => {
1438
- return utils.getFromLookup(v, toMap);
1439
- },
1440
- };
1441
- },
1442
- };
1443
- const tuyaTz = {
1444
- power_on_behavior_1: {
1445
- key: ['power_on_behavior', 'power_outage_memory'],
1446
- convertSet: async (entity, key, value, meta) => {
1447
- // Deprecated: remove power_outage_memory
1448
- const moesStartUpOnOff = utils.getFromLookup(value, key === 'power_on_behavior' ? { off: 0, on: 1, previous: 2 } : { off: 0, on: 1, restore: 2 });
1449
- await entity.write('genOnOff', { moesStartUpOnOff });
1450
- return { state: { [key]: value } };
1451
- },
1452
- convertGet: async (entity, key, meta) => {
1453
- await entity.read('genOnOff', ['moesStartUpOnOff']);
1454
- },
1455
- },
1456
- power_on_behavior_2: {
1457
- key: ['power_on_behavior'],
1458
- convertSet: async (entity, key, value, meta) => {
1459
- const powerOnBehavior = utils.getFromLookup(value, { off: 0, on: 1, previous: 2 });
1460
- await entity.write('manuSpecificTuya_3', { powerOnBehavior });
1461
- return { state: { [key]: value } };
1462
- },
1463
- convertGet: async (entity, key, meta) => {
1464
- await entity.read('manuSpecificTuya_3', ['powerOnBehavior']);
1465
- },
1466
- },
1467
- switch_type: {
1468
- key: ['switch_type'],
1469
- convertSet: async (entity, key, value, meta) => {
1470
- const switchType = utils.getFromLookup(value, { toggle: 0, state: 1, momentary: 2 });
1471
- await entity.write('manuSpecificTuya_3', { switchType }, { disableDefaultResponse: true });
1472
- return { state: { [key]: value } };
1473
- },
1474
- convertGet: async (entity, key, meta) => {
1475
- await entity.read('manuSpecificTuya_3', ['switchType']);
1476
- },
1477
- },
1478
- backlight_indicator_mode_1: {
1479
- key: ['backlight_mode', 'indicator_mode'],
1480
- convertSet: async (entity, key, value, meta) => {
1481
- const tuyaBacklightMode = utils.getFromLookup(value, key === 'backlight_mode' ? { low: 0, medium: 1, high: 2, off: 0, normal: 1, inverted: 2 } : { off: 0, 'off/on': 1, 'on/off': 2, on: 3 });
1482
- await entity.write('genOnOff', { tuyaBacklightMode });
1483
- return { state: { [key]: value } };
1484
- },
1485
- convertGet: async (entity, key, meta) => {
1486
- await entity.read('genOnOff', ['tuyaBacklightMode']);
1487
- },
1488
- },
1489
- backlight_indicator_mode_2: {
1490
- key: ['backlight_mode'],
1491
- convertSet: async (entity, key, value, meta) => {
1492
- const tuyaBacklightSwitch = utils.getFromLookup(value, { off: 0, on: 1 });
1493
- await entity.write('genOnOff', { tuyaBacklightSwitch });
1494
- return { state: { [key]: value } };
1495
- },
1496
- convertGet: async (entity, key, meta) => {
1497
- await entity.read('genOnOff', ['tuyaBacklightSwitch']);
1498
- },
1499
- },
1500
- child_lock: {
1501
- key: ['child_lock'],
1502
- convertSet: async (entity, key, value, meta) => {
1503
- const v = utils.getFromLookup(value, { lock: true, unlock: false });
1504
- await entity.write('genOnOff', { 0x8000: { value: v, type: 0x10 } });
1505
- },
1506
- },
1507
- min_brightness_attribute: {
1508
- key: ['min_brightness'],
1509
- convertSet: async (entity, key, value, meta) => {
1510
- const number = utils.toNumber(value, `min_brightness`);
1511
- const minValueHex = number.toString(16);
1512
- const maxValueHex = 'ff';
1513
- const minMaxValue = parseInt(`${minValueHex}${maxValueHex}`, 16);
1514
- const payload = { 0xfc00: { value: minMaxValue, type: 0x21 } };
1515
- await entity.write('genLevelCtrl', payload, { disableDefaultResponse: true });
1516
- return { state: { min_brightness: number } };
1517
- },
1518
- convertGet: async (entity, key, meta) => {
1519
- await entity.read('genLevelCtrl', [0xfc00]);
1520
- },
1521
- },
1522
- min_brightness_command: {
1523
- key: ['min_brightness'],
1524
- convertSet: async (entity, key, value, meta) => {
1525
- utils.assertNumber(value, key);
1526
- const payload = { minimum: value };
1527
- await entity.command('lightingColorCtrl', 'tuyaSetMinimumBrightness', payload);
1528
- return { state: { min_brightness: value } };
1529
- },
1530
- // The response contains the value but as the data type, randomly
1531
- // causing malformed messages
1532
- // convertGet: async (entity, key, meta) => {
1533
- // await entity.read('lightingColorCtrl', [0xf102]);
1534
- // },
1535
- },
1536
- color_power_on_behavior: {
1537
- key: ['color_power_on_behavior'],
1538
- convertSet: async (entity, key, value, meta) => {
1539
- const v = utils.getFromLookup(value, { initial: 0, previous: 1, customized: 2 });
1540
- await entity.command('lightingColorCtrl', 'tuyaOnStartUp', { mode: v * 256, data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] });
1541
- return { state: { color_power_on_behavior: value } };
1542
- },
1543
- },
1544
- datapoints: {
1545
- convertSet: async (entity, key, value, meta) => {
1546
- // A set converter is only called once; therefore we need to loop
1547
- const state = {};
1548
- if (Array.isArray(meta.mapped))
1549
- throw new Error(`Not supported for groups`);
1550
- const datapoints = meta.mapped.meta?.tuyaDatapoints;
1551
- if (!datapoints)
1552
- throw new Error('No datapoints map defined');
1553
- for (const [attr, value] of Object.entries(meta.message)) {
1554
- const convertedKey = meta.mapped.meta.multiEndpoint && meta.endpoint_name && !attr.startsWith(`${key}_`) ? `${attr}_${meta.endpoint_name}` : attr;
1555
- const dpEntry = datapoints.find((d) => d[1] === convertedKey);
1556
- if (!dpEntry?.[1] || !dpEntry?.[2].to) {
1557
- throw new Error(`No datapoint defined for '${attr}'`);
1558
- }
1559
- if (dpEntry[3] && dpEntry[3].skip && dpEntry[3].skip(meta))
1560
- continue;
1561
- const dpId = dpEntry[0];
1562
- const convertedValue = await dpEntry[2].to(value, meta);
1563
- const sendCommand = utils.getMetaValue(entity, meta.mapped, 'tuyaSendCommand', undefined, 'dataRequest');
1564
- if (convertedValue === undefined) {
1565
- // conversion done inside converter, ignore.
1566
- }
1567
- else if (typeof convertedValue === 'boolean') {
1568
- await sendDataPointBool(entity, dpId, convertedValue, sendCommand, 1);
1569
- }
1570
- else if (typeof convertedValue === 'number') {
1571
- await sendDataPointValue(entity, dpId, convertedValue, sendCommand, 1);
1572
- }
1573
- else if (typeof convertedValue === 'string') {
1574
- await sendDataPointStringBuffer(entity, dpId, convertedValue, sendCommand, 1);
1575
- }
1576
- else if (Array.isArray(convertedValue)) {
1577
- await sendDataPointRaw(entity, dpId, convertedValue, sendCommand, 1);
1578
- }
1579
- else if (convertedValue instanceof Enum) {
1580
- await sendDataPointEnum(entity, dpId, convertedValue.valueOf(), sendCommand, 1);
1581
- }
1582
- else if (convertedValue instanceof Bitmap) {
1583
- await sendDataPointBitmap(entity, dpId, convertedValue.valueOf(), sendCommand, 1);
1584
- }
1585
- else {
1586
- throw new Error(`Don't know how to send type '${typeof convertedValue}'`);
1587
- }
1588
- if (dpEntry[3] && dpEntry[3].optimistic === false)
1589
- continue;
1590
- state[attr] = value;
1591
- }
1592
- return { state };
1593
- },
1594
- },
1595
- do_not_disturb: {
1596
- key: ['do_not_disturb'],
1597
- convertSet: async (entity, key, value, meta) => {
1598
- await entity.command('lightingColorCtrl', 'tuyaDoNotDisturb', { enable: value ? 1 : 0 });
1599
- return { state: { do_not_disturb: value } };
1600
- },
1601
- },
1602
- on_off_countdown: {
1603
- // Note: This is the Tuya on-off countdown feature documented for switches and smart plugs
1604
- // using the Zigbee 'onWithTimedOff' command in a non-standard way.
1605
- // There is also an alternative on-off countdown implementation mostly for for Tuya Lighting
1606
- // products that uses private commands and attributes. However, those devices should also
1607
- // provide datapoints so there is little reason to provide support.
1608
- key: ['state', 'countdown'],
1609
- convertSet: async (entity, key, value, meta) => {
1610
- const state = meta.message.state !== undefined ? (utils.isString(meta.message.state) ? meta.message.state.toLowerCase() : undefined) : undefined;
1611
- const countdown = meta.message.countdown !== undefined ? meta.message.countdown : undefined;
1612
- const result = {};
1613
- if (countdown !== undefined) {
1614
- // OnTime is a 16bit register and so might very well work up to 0xFFFF seconds but
1615
- // the Tuya documentation says that the maximum is 43200 (so 12 hours).
1616
- // @ts-expect-error ignore
1617
- if (!Number.isInteger(countdown) || countdown < 0 || countdown > 12 * 3600) {
1618
- throw new Error('countdown must be an integer between 1 and 43200 (12 hours) or 0 to cancel');
1619
- }
1620
- }
1621
- // The order of the commands matters because 'on/off/toggle' cancels 'onWithTimedOff'.
1622
- if (state !== undefined) {
1623
- utils.validateValue(state, ['toggle', 'off', 'on']);
1624
- await entity.command('genOnOff', state, {}, utils.getOptions(meta.mapped, entity));
1625
- if (state === 'toggle') {
1626
- const currentState = meta.state[`state${meta.endpoint_name ? `_${meta.endpoint_name}` : ''}`];
1627
- if (currentState) {
1628
- result.state = currentState === 'OFF' ? 'ON' : 'OFF';
1629
- }
1630
- }
1631
- else {
1632
- result.state = state.toUpperCase();
1633
- }
1634
- // A side effect of setting the state is to cancel any running coundown.
1635
- result.countdown = 0;
1636
- }
1637
- if (countdown !== undefined) {
1638
- // offwaittime is probably not used but according to the Tuya documentation, it should
1639
- // be set to the same value than ontime.
1640
- const payload = { ctrlbits: 0, ontime: countdown, offwaittime: countdown };
1641
- await entity.command('genOnOff', 'onWithTimedOff', payload, utils.getOptions(meta.mapped, entity));
1642
- if (result.state !== undefined) {
1643
- result.countdown = countdown;
1644
- }
1645
- }
1646
- return { state: result };
1647
- },
1648
- convertGet: async (entity, key, meta) => {
1649
- if (key == 'state') {
1650
- await entity.read('genOnOff', ['onOff']);
1651
- }
1652
- else if (key == 'countdown') {
1653
- await entity.read('genOnOff', ['onTime']);
1654
- }
1655
- },
1656
- },
1657
- inchingSwitch: {
1658
- key: ['inching_control_set'],
1659
- convertSet: async (entity, key, value, meta) => {
1660
- const inching = exports.valueConverter.inchingSwitch.to(value);
1661
- const payload = { payload: inching };
1662
- const endpoint = meta.device.getEndpoint(1);
1663
- await endpoint.command('manuSpecificTuya_4', 'setInchingSwitch', payload, utils.getOptions(meta.mapped, endpoint));
1664
- return { state: { inching_control_set: value } };
1665
- },
1666
- },
1667
- };
1668
- exports.tz = tuyaTz;
1669
- const tuyaFz = {
1670
- brightness: {
1671
- cluster: 'genLevelCtrl',
1672
- type: ['attributeReport', 'readResponse'],
1673
- convert: (model, msg, publish, options, meta) => {
1674
- if (msg.data['61440'] !== undefined) {
1675
- const property = utils.postfixWithEndpointName('brightness', msg, model, meta);
1676
- return { [property]: utils.mapNumberRange(msg.data['61440'], 0, 1000, 0, 255) };
1677
- }
1678
- },
1679
- },
1680
- gateway_connection_status: {
1681
- cluster: 'manuSpecificTuya',
1682
- type: ['commandMcuGatewayConnectionStatus'],
1683
- convert: async (model, msg, publish, options, meta) => {
1684
- // "payload" can have the following values:
1685
- // 0x00: The gateway is not connected to the internet.
1686
- // 0x01: The gateway is connected to the internet.
1687
- // 0x02: The request timed out after three seconds.
1688
- const payload = { payloadSize: 1, payload: 1 };
1689
- await msg.endpoint.command('manuSpecificTuya', 'mcuGatewayConnectionStatus', payload, {});
1690
- },
1691
- },
1692
- power_on_behavior_1: {
1693
- cluster: 'genOnOff',
1694
- type: ['attributeReport', 'readResponse'],
1695
- convert: (model, msg, publish, options, meta) => {
1696
- if (msg.data.moesStartUpOnOff !== undefined) {
1697
- const lookup = { 0: 'off', 1: 'on', 2: 'previous' };
1698
- const property = utils.postfixWithEndpointName('power_on_behavior', msg, model, meta);
1699
- return { [property]: lookup[msg.data['moesStartUpOnOff']] };
1700
- }
1701
- },
1702
- },
1703
- power_on_behavior_2: {
1704
- cluster: 'manuSpecificTuya_3',
1705
- type: ['attributeReport', 'readResponse'],
1706
- convert: (model, msg, publish, options, meta) => {
1707
- const attribute = 'powerOnBehavior';
1708
- const lookup = { 0: 'off', 1: 'on', 2: 'previous' };
1709
- if (msg.data[attribute] !== undefined) {
1710
- const property = utils.postfixWithEndpointName('power_on_behavior', msg, model, meta);
1711
- return { [property]: lookup[msg.data[attribute]] };
1712
- }
1713
- },
1714
- },
1715
- power_outage_memory: {
1716
- cluster: 'genOnOff',
1717
- type: ['attributeReport', 'readResponse'],
1718
- convert: (model, msg, publish, options, meta) => {
1719
- if (msg.data.moesStartUpOnOff !== undefined) {
1720
- const lookup = { 0x00: 'off', 0x01: 'on', 0x02: 'restore' };
1721
- const property = utils.postfixWithEndpointName('power_outage_memory', msg, model, meta);
1722
- return { [property]: lookup[msg.data['moesStartUpOnOff']] };
1723
- }
1724
- },
1725
- },
1726
- switch_type: {
1727
- cluster: 'manuSpecificTuya_3',
1728
- type: ['attributeReport', 'readResponse'],
1729
- convert: (model, msg, publish, options, meta) => {
1730
- if (msg.data.switchType !== undefined) {
1731
- const lookup = { 0: 'toggle', 1: 'state', 2: 'momentary' };
1732
- return { switch_type: lookup[msg.data['switchType']] };
1733
- }
1734
- },
1735
- },
1736
- backlight_mode_low_medium_high: {
1737
- cluster: 'genOnOff',
1738
- type: ['attributeReport', 'readResponse'],
1739
- convert: (model, msg, publish, options, meta) => {
1740
- if (msg.data.tuyaBacklightMode !== undefined) {
1741
- const value = msg.data['tuyaBacklightMode'];
1742
- const backlightLookup = { 0: 'low', 1: 'medium', 2: 'high' };
1743
- return { backlight_mode: backlightLookup[value] };
1744
- }
1745
- },
1746
- },
1747
- backlight_mode_off_normal_inverted: {
1748
- cluster: 'genOnOff',
1749
- type: ['attributeReport', 'readResponse'],
1750
- convert: (model, msg, publish, options, meta) => {
1751
- if (msg.data.tuyaBacklightMode !== undefined) {
1752
- return { backlight_mode: utils.getFromLookup(msg.data['tuyaBacklightMode'], { 0: 'off', 1: 'normal', 2: 'inverted' }) };
1753
- }
1754
- },
1755
- },
1756
- backlight_mode_off_on: {
1757
- cluster: 'genOnOff',
1758
- type: ['attributeReport', 'readResponse'],
1759
- convert: (model, msg, publish, options, meta) => {
1760
- if (msg.data.tuyaBacklightSwitch !== undefined) {
1761
- return { backlight_mode: utils.getFromLookup(msg.data['tuyaBacklightSwitch'], { 0: 'OFF', 1: 'ON' }) };
1762
- }
1763
- },
1764
- },
1765
- indicator_mode: {
1766
- cluster: 'genOnOff',
1767
- type: ['attributeReport', 'readResponse'],
1768
- convert: (model, msg, publish, options, meta) => {
1769
- if (msg.data.tuyaBacklightMode !== undefined) {
1770
- return { indicator_mode: utils.getFromLookup(msg.data['tuyaBacklightMode'], { 0: 'off', 1: 'off/on', 2: 'on/off', 3: 'on' }) };
1771
- }
1772
- },
1773
- },
1774
- child_lock: {
1775
- cluster: 'genOnOff',
1776
- type: ['attributeReport', 'readResponse'],
1777
- convert: (model, msg, publish, options, meta) => {
1778
- if (msg.data['32768'] !== undefined) {
1779
- const value = msg.data['32768'];
1780
- return { child_lock: value ? 'LOCK' : 'UNLOCK' };
1781
- }
1782
- },
1783
- },
1784
- min_brightness_attribute: {
1785
- cluster: 'genLevelCtrl',
1786
- type: ['attributeReport', 'readResponse'],
1787
- convert: (model, msg, publish, options, meta) => {
1788
- if (msg.data[0xfc00] !== undefined) {
1789
- const property = utils.postfixWithEndpointName('min_brightness', msg, model, meta);
1790
- const value = parseInt(msg.data[0xfc00].toString(16).slice(0, 2), 16);
1791
- return { [property]: value };
1792
- }
1793
- },
1794
- },
1795
- datapoints: {
1796
- cluster: 'manuSpecificTuya',
1797
- type: ['commandDataResponse', 'commandDataReport', 'commandActiveStatusReport', 'commandActiveStatusReportAlt'],
1798
- convert: (model, msg, publish, options, meta) => {
1799
- if (utils.hasAlreadyProcessedMessage(msg, model))
1800
- return;
1801
- const result = {};
1802
- if (!model.meta || !model.meta.tuyaDatapoints)
1803
- throw new Error('No datapoints map defined');
1804
- const datapoints = model.meta.tuyaDatapoints;
1805
- for (const dpValue of msg.data.dpValues) {
1806
- const dpId = dpValue.dp;
1807
- const dpEntry = datapoints.find((d) => d[0] === dpId);
1808
- const value = getDataValue(dpValue);
1809
- if (dpEntry?.[2]?.from) {
1810
- if (dpEntry[1]) {
1811
- result[dpEntry[1]] = dpEntry[2].from(value, meta, options, publish, msg);
1812
- }
1813
- else {
1814
- Object.assign(result, dpEntry[2].from(value, meta, options, publish, msg));
1815
- }
1816
- }
1817
- else {
1818
- logger_1.logger.debug(`Datapoint ${dpId} not defined for '${meta.device.manufacturerName}' with value ${value}`, NS);
1819
- }
1820
- }
1821
- return result;
1822
- },
1823
- },
1824
- on_off_action: {
1825
- cluster: 'genOnOff',
1826
- type: 'commandTuyaAction',
1827
- convert: (model, msg, publish, options, meta) => {
1828
- if (utils.hasAlreadyProcessedMessage(msg, model, msg.data[0]))
1829
- return;
1830
- const clickMapping = { 0: 'single', 1: 'double', 2: 'hold' };
1831
- const buttonMapping = { 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8' };
1832
- // TS004F has single endpoint, TS0041A/TS0041 can have multiple but have just one button
1833
- const button = msg.device.endpoints.length == 1 || ['TS0041A', 'TS0041'].includes(msg.device.modelID) ? '' : `${buttonMapping[msg.endpoint.ID]}_`;
1834
- return { action: `${button}${clickMapping[msg.data.value]}` };
1835
- },
1836
- },
1837
- on_off_countdown: {
1838
- // While a countdown is in progress, the device will report onTime at all multiples of 60.
1839
- // More reportings can be configured for 'onTime` but they will happen independently of
1840
- // the builtin 60s reporting.
1841
- cluster: 'genOnOff',
1842
- type: ['attributeReport', 'readResponse'],
1843
- convert: (model, msg, publish, options, meta) => {
1844
- if (msg.data.onTime !== undefined) {
1845
- const payload = {};
1846
- const property = utils.postfixWithEndpointName('countdown', msg, model, meta);
1847
- const countdown = msg.data['onTime'];
1848
- payload[property] = countdown;
1849
- return payload;
1850
- }
1851
- },
1852
- },
1853
- inchingSwitch: {
1854
- cluster: 'manuSpecificTuya_4',
1855
- type: ['attributeReport', 'readResponse'],
1856
- convert: (model, msg, publish, options, meta) => {
1857
- if (msg.data.inching !== undefined) {
1858
- const payload = {};
1859
- const value = exports.valueConverter.inchingSwitch.from(msg.data['inching']);
1860
- payload['inching_control_set'] = value;
1861
- return payload;
1862
- }
1863
- },
1864
- },
1865
- };
1866
- exports.fz = tuyaFz;
1867
- function getHandlersForDP(name, dp, type, converter, readOnly, skip, endpoint, useGlobalSequence) {
1868
- const keyName = endpoint ? `${name}_${endpoint}` : name;
1869
- const fromZigbee = [
1870
- {
1871
- cluster: 'manuSpecificTuya',
1872
- type: ['commandDataResponse', 'commandDataReport', 'commandActiveStatusReport', 'commandActiveStatusReportAlt'],
1873
- convert: (model, msg, publish, options, meta) => {
1874
- const dpValue = msg.data.dpValues.find((d) => d.dp === dp);
1875
- if (dpValue) {
1876
- return { [keyName]: converter.from(getDataValue(dpValue)) };
1877
- }
1878
- },
1879
- },
1880
- ];
1881
- const toZigbee = readOnly
1882
- ? undefined
1883
- : [
1884
- {
1885
- key: [name],
1886
- endpoints: endpoint ? [endpoint] : undefined,
1887
- convertSet: async (entity, key, value, meta) => {
1888
- // A set converter is only called once; therefore we need to loop
1889
- const state = {};
1890
- if (Array.isArray(meta.mapped))
1891
- throw new Error(`Not supported for groups`);
1892
- for (const [attr, value] of Object.entries(meta.message)) {
1893
- const convertedKey = meta.mapped.meta && meta.mapped.meta.multiEndpoint && meta.endpoint_name && !attr.startsWith(`${key}_`)
1894
- ? `${attr}_${meta.endpoint_name}`
1895
- : attr;
1896
- // logger.debug(`key: ${key}, convertedKey: ${convertedKey}, keyName: ${keyName}`);
1897
- if (convertedKey !== keyName)
1898
- continue;
1899
- if (skip && skip(meta))
1900
- continue;
1901
- const convertedValue = await converter.to(value, meta);
1902
- const sendCommand = utils.getMetaValue(entity, meta.mapped, 'tuyaSendCommand', undefined, 'dataRequest');
1903
- const seq = useGlobalSequence ? undefined : 1;
1904
- // logger.debug(`dp: ${dp}, value: ${value}, convertedValue: ${convertedValue}`);
1905
- if (convertedValue === undefined) {
1906
- // conversion done inside converter, ignore.
1907
- }
1908
- else if (type == exports.dataTypes.bool) {
1909
- await sendDataPointBool(entity, dp, convertedValue, sendCommand, seq);
1910
- }
1911
- else if (type == exports.dataTypes.number) {
1912
- await sendDataPointValue(entity, dp, convertedValue, sendCommand, seq);
1913
- }
1914
- else if (type == exports.dataTypes.string) {
1915
- await sendDataPointStringBuffer(entity, dp, convertedValue, sendCommand, seq);
1916
- }
1917
- else if (type == exports.dataTypes.raw) {
1918
- await sendDataPointRaw(entity, dp, convertedValue, sendCommand, seq);
1919
- }
1920
- else if (type == exports.dataTypes.enum) {
1921
- await sendDataPointEnum(entity, dp, convertedValue, sendCommand, seq);
1922
- }
1923
- else if (type == exports.dataTypes.bitmap) {
1924
- await sendDataPointBitmap(entity, dp, convertedValue, sendCommand, seq);
1925
- }
1926
- else {
1927
- throw new Error(`Don't know how to send type '${typeof convertedValue}'`);
1928
- }
1929
- state[key] = value;
1930
- }
1931
- return { state };
1932
- },
1933
- },
1934
- ];
1935
- return [fromZigbee, toZigbee];
1936
- }
1937
- const tuyaModernExtend = {
1938
- tuyaBase(args) {
1939
- const result = {
1940
- configure: [exports.configureMagicPacket],
1941
- onEvent: onEvent(args.onEvent),
1942
- isModernExtend: true,
1943
- };
1944
- if (args?.dp) {
1945
- result.fromZigbee = [tuyaFz.datapoints];
1946
- result.toZigbee = [tuyaTz.datapoints];
1947
- }
1948
- return result;
1949
- },
1950
- dpEnumLookup(args) {
1951
- const { name, dp, type, lookup, description, readOnly, endpoint, expose, skip } = args;
1952
- let exp;
1953
- if (expose) {
1954
- exp = expose;
1955
- }
1956
- else {
1957
- exp = new exposes.Enum(name, readOnly ? ea.STATE : ea.STATE_SET, Object.keys(lookup)).withDescription(description);
1958
- }
1959
- if (endpoint)
1960
- exp = exp.withEndpoint(endpoint);
1961
- const handlers = getHandlersForDP(name, dp, type, {
1962
- from: (value) => utils.getFromLookupByValue(value, lookup),
1963
- to: (value) => utils.getFromLookup(value, lookup),
1964
- }, readOnly, skip, endpoint);
1965
- return { exposes: [exp], fromZigbee: handlers[0], toZigbee: handlers[1], isModernExtend: true };
1966
- },
1967
- dpBinary(args) {
1968
- const { name, dp, type, valueOn, valueOff, description, readOnly, endpoint, expose, skip } = args;
1969
- let exp;
1970
- if (expose) {
1971
- exp = expose;
1972
- }
1973
- else {
1974
- exp = e.binary(name, readOnly ? ea.STATE : ea.STATE_SET, valueOn[0], valueOff[0]).withDescription(description);
1975
- }
1976
- if (endpoint)
1977
- exp = exp.withEndpoint(endpoint);
1978
- const handlers = getHandlersForDP(name, dp, type, {
1979
- from: (value) => (value === valueOn[1] ? valueOn[0] : valueOff[0]),
1980
- to: (value) => (value === valueOn[0] ? valueOn[1] : valueOff[1]),
1981
- }, readOnly, skip, endpoint);
1982
- return { exposes: [exp], fromZigbee: handlers[0], toZigbee: handlers[1], isModernExtend: true };
1983
- },
1984
- dpNumeric(args) {
1985
- const { name, dp, type, description, readOnly, endpoint, unit, valueMax, valueMin, valueStep, scale, expose, skip } = args;
1986
- let exp;
1987
- if (expose) {
1988
- exp = expose;
1989
- }
1990
- else {
1991
- exp = e.numeric(name, readOnly ? ea.STATE : ea.STATE_SET).withDescription(description);
1992
- }
1993
- if (endpoint)
1994
- exp = exp.withEndpoint(endpoint);
1995
- if (unit)
1996
- exp = exp.withUnit(unit);
1997
- if (valueMin !== undefined)
1998
- exp = exp.withValueMin(valueMin);
1999
- if (valueMax !== undefined)
2000
- exp = exp.withValueMax(valueMax);
2001
- if (valueStep !== undefined)
2002
- exp = exp.withValueStep(valueStep);
2003
- let converter;
2004
- if (scale === undefined) {
2005
- converter = exports.valueConverterBasic.raw();
2006
- }
2007
- else {
2008
- if (Array.isArray(scale)) {
2009
- converter = exports.valueConverterBasic.scale(scale[0], scale[1], scale[2], scale[3]);
2010
- }
2011
- else {
2012
- converter = exports.valueConverterBasic.divideBy(scale);
2013
- }
2014
- }
2015
- const handlers = getHandlersForDP(name, dp, type, converter, readOnly, skip, endpoint);
2016
- return { exposes: [exp], fromZigbee: handlers[0], toZigbee: handlers[1], isModernExtend: true };
2017
- },
2018
- dpLight(args) {
2019
- const { state, brightness, min, max, colorTemp, endpoint } = args;
2020
- let exp = e.light_brightness().setAccess('state', ea.STATE_SET).setAccess('brightness', ea.STATE_SET);
2021
- let fromZigbee = [];
2022
- let toZigbee = [];
2023
- let ext;
2024
- if (min) {
2025
- exp = exp.withMinBrightness().setAccess('min_brightness', ea.STATE_SET);
2026
- }
2027
- if (max) {
2028
- exp = exp.withMaxBrightness().setAccess('max_brightness', ea.STATE_SET);
2029
- }
2030
- if (colorTemp) {
2031
- exp = exp.withColorTemp(colorTemp.range).setAccess('color_temp', ea.STATE_SET);
2032
- }
2033
- // if (color) {
2034
- // exp = exp.withColor(['hs']).setAccess('color_hs', ea.STATE_SET);
2035
- // }
2036
- if (endpoint)
2037
- exp = exp.withEndpoint(endpoint);
2038
- ext = tuyaModernExtend.dpBinary({
2039
- name: 'state',
2040
- dp: state.dp,
2041
- type: state.type,
2042
- valueOn: state.valueOn,
2043
- valueOff: state.valueOff,
2044
- skip: state.skip,
2045
- endpoint: endpoint,
2046
- });
2047
- fromZigbee = [...fromZigbee, ...ext.fromZigbee];
2048
- toZigbee = [...toZigbee, ...ext.toZigbee];
2049
- ext = tuyaModernExtend.dpNumeric({ name: 'brightness', dp: brightness.dp, type: brightness.type, scale: brightness.scale, endpoint: endpoint });
2050
- fromZigbee = [...fromZigbee, ...ext.fromZigbee];
2051
- toZigbee = [...toZigbee, ...ext.toZigbee];
2052
- if (min) {
2053
- ext = tuyaModernExtend.dpNumeric({ name: 'min_brightness', dp: min.dp, type: min.type, scale: min.scale, endpoint: endpoint });
2054
- fromZigbee = [...fromZigbee, ...ext.fromZigbee];
2055
- toZigbee = [...toZigbee, ...ext.toZigbee];
2056
- }
2057
- if (max) {
2058
- ext = tuyaModernExtend.dpNumeric({ name: 'max_brightness', dp: max.dp, type: max.type, scale: max.scale, endpoint: endpoint });
2059
- fromZigbee = [...fromZigbee, ...ext.fromZigbee];
2060
- toZigbee = [...toZigbee, ...ext.toZigbee];
2061
- }
2062
- if (colorTemp) {
2063
- ext = tuyaModernExtend.dpNumeric({
2064
- name: 'color_temp',
2065
- dp: colorTemp.dp,
2066
- type: colorTemp.type,
2067
- scale: colorTemp.scale,
2068
- endpoint: endpoint,
2069
- });
2070
- fromZigbee = [...fromZigbee, ...ext.fromZigbee];
2071
- toZigbee = [...toZigbee, ...ext.toZigbee];
2072
- }
2073
- // if (color) {
2074
- // const handlers = getHandlersForDP('color', color.dp, color.type,
2075
- // valueConverterBasic.color1000(), undefined, undefined, endpoint);
2076
- // fromZigbee = [...fromZigbee, ...handlers[0]];
2077
- // toZigbee = [...toZigbee, ...handlers[1]];
2078
- // }
2079
- // combine extends for one expose
2080
- return { exposes: [exp], fromZigbee, toZigbee, isModernExtend: true };
2081
- },
2082
- dpTemperature(args) {
2083
- return tuyaModernExtend.dpNumeric({ name: 'temperature', type: exports.dataTypes.number, readOnly: true, scale: 10, expose: e.temperature(), ...args });
2084
- },
2085
- dpHumidity(args) {
2086
- return tuyaModernExtend.dpNumeric({ name: 'humidity', type: exports.dataTypes.number, readOnly: true, expose: e.humidity(), ...args });
2087
- },
2088
- dpBattery(args) {
2089
- return tuyaModernExtend.dpNumeric({ name: 'battery', type: exports.dataTypes.number, readOnly: true, expose: e.battery(), ...args });
2090
- },
2091
- dpBatteryState(args) {
2092
- return tuyaModernExtend.dpEnumLookup({
2093
- name: 'battery_state',
2094
- type: exports.dataTypes.number,
2095
- lookup: { low: 0, medium: 1, high: 2 },
2096
- readOnly: true,
2097
- expose: tuyaExposes.batteryState(),
2098
- ...args,
2099
- });
2100
- },
2101
- dpTemperatureUnit(args) {
2102
- return tuyaModernExtend.dpEnumLookup({
2103
- name: 'temperature_unit',
2104
- type: exports.dataTypes.enum,
2105
- lookup: { celsius: 0, fahrenheit: 1 },
2106
- readOnly: true,
2107
- expose: tuyaExposes.temperatureUnit(),
2108
- ...args,
2109
- });
2110
- },
2111
- dpContact(args, invert) {
2112
- return tuyaModernExtend.dpBinary({
2113
- name: 'contact',
2114
- type: exports.dataTypes.bool,
2115
- valueOn: invert ? [true, true] : [true, false],
2116
- valueOff: invert ? [false, false] : [false, true],
2117
- readOnly: true,
2118
- expose: e.contact(),
2119
- ...args,
2120
- });
2121
- },
2122
- dpAction(args) {
2123
- const { lookup } = args;
2124
- return tuyaModernExtend.dpEnumLookup({
2125
- name: 'action',
2126
- type: exports.dataTypes.number,
2127
- readOnly: true,
2128
- expose: e.action(Object.keys(lookup)),
2129
- ...args,
2130
- });
2131
- },
2132
- dpIlluminance(args) {
2133
- return tuyaModernExtend.dpNumeric({ name: 'illuminance', type: exports.dataTypes.number, readOnly: true, expose: e.illuminance(), ...args });
2134
- },
2135
- dpGas(args, invert) {
2136
- return tuyaModernExtend.dpBinary({
2137
- name: 'gas',
2138
- type: exports.dataTypes.enum,
2139
- valueOn: invert ? [true, 1] : [true, 0],
2140
- valueOff: invert ? [false, 0] : [false, 1],
2141
- readOnly: true,
2142
- expose: e.gas(),
2143
- ...args,
2144
- });
2145
- },
2146
- dpOnOff(args) {
2147
- const { readOnly } = args;
2148
- return tuyaModernExtend.dpBinary({
2149
- name: 'state',
2150
- type: exports.dataTypes.bool,
2151
- valueOn: ['ON', true],
2152
- valueOff: ['OFF', false],
2153
- expose: e.switch().setAccess('state', readOnly ? ea.STATE : ea.STATE_SET),
2154
- ...args,
2155
- });
2156
- },
2157
- dpPowerOnBehavior(args) {
2158
- const { readOnly } = args;
2159
- let { lookup } = args;
2160
- lookup = lookup || { off: 0, on: 1, previous: 2 };
2161
- return tuyaModernExtend.dpEnumLookup({
2162
- name: 'power_on_behavior',
2163
- lookup: lookup,
2164
- type: exports.dataTypes.enum,
2165
- expose: e.power_on_behavior(Object.keys(lookup)).withAccess(readOnly ? ea.STATE : ea.STATE_SET),
2166
- ...args,
2167
- });
2168
- },
2169
- tuyaLight(args) {
2170
- args = { minBrightness: 'none', powerOnBehavior: false, switchType: false, ...args };
2171
- if (args.colorTemp) {
2172
- args.colorTemp = { startup: false, ...args.colorTemp };
2173
- }
2174
- if (args.color) {
2175
- args.color = { applyRedFix: true, enhancedHue: false, ...(utils.isBoolean(args.color) ? {} : args.color) };
2176
- }
2177
- const result = modernExtend.light({ ...args, powerOnBehavior: false });
2178
- result.fromZigbee.push(tuyaFz.brightness);
2179
- result.toZigbee.push(tuyaTz.do_not_disturb);
2180
- result.exposes.push(tuyaExposes.doNotDisturb());
2181
- if (args.powerOnBehavior) {
2182
- result.fromZigbee.push(tuyaFz.power_on_behavior_2);
2183
- result.toZigbee.push(tuyaTz.power_on_behavior_2);
2184
- if (args.endpointNames) {
2185
- result.exposes.push(...args.endpointNames.map((ee) => e.power_on_behavior().withEndpoint(ee)));
2186
- }
2187
- else {
2188
- result.exposes.push(e.power_on_behavior());
2189
- }
2190
- }
2191
- if (args.switchType) {
2192
- result.fromZigbee.push(tuyaFz.switch_type);
2193
- result.toZigbee.push(tuyaTz.switch_type);
2194
- result.exposes.push(tuyaExposes.switchType());
2195
- }
2196
- if (args.minBrightness === 'attribute') {
2197
- result.fromZigbee.push(tuyaFz.min_brightness_attribute);
2198
- result.toZigbee.push(tuyaTz.min_brightness_attribute);
2199
- result.exposes = result.exposes.map((e) => (typeof e !== 'function' && utils.isLightExpose(e) ? e.withMinBrightness() : e));
2200
- }
2201
- else if (args.minBrightness === 'command') {
2202
- result.toZigbee.push(tuyaTz.min_brightness_command);
2203
- result.exposes = result.exposes.map((e) => typeof e !== 'function' && utils.isLightExpose(e) ? e.withMinBrightness().setAccess('min_brightness', ea.STATE_SET) : e);
2204
- }
2205
- if (args.color) {
2206
- result.toZigbee.push(tuyaTz.color_power_on_behavior);
2207
- result.exposes.push(tuyaExposes.colorPowerOnBehavior());
2208
- }
2209
- result.configure = [(0, utils_1.configureSetPowerSourceWhenUnknown)('Mains (single phase)')];
2210
- return result;
2211
- },
2212
- tuyaOnOff: (args = {}) => {
2213
- const exposes = args.endpoints
2214
- ? args.endpoints.map((ee) => e.switch().withEndpoint(ee))
2215
- : [e.switch()];
2216
- const fromZigbee = [fromZigbee_1.default.on_off, fromZigbee_1.default.ignore_basic_report];
2217
- const toZigbee = [];
2218
- if (args.onOffCountdown) {
2219
- fromZigbee.push(tuyaFz.on_off_countdown);
2220
- toZigbee.push(tuyaTz.on_off_countdown);
2221
- if (args.endpoints) {
2222
- exposes.push(...args.endpoints.map((ee) => tuyaExposes.countdown().withAccess(ea.ALL).withEndpoint(ee)));
2223
- }
2224
- else {
2225
- exposes.push(tuyaExposes.countdown().withAccess(ea.ALL));
2226
- }
2227
- }
2228
- else {
2229
- toZigbee.push(toZigbee_1.default.on_off);
2230
- }
2231
- if (args.powerOutageMemory) {
2232
- // Legacy, powerOnBehavior is preferred
2233
- fromZigbee.push(tuyaFz.power_outage_memory);
2234
- toZigbee.push(tuyaTz.power_on_behavior_1);
2235
- exposes.push(tuyaExposes.powerOutageMemory());
2236
- }
2237
- else if (args.powerOnBehavior2) {
2238
- fromZigbee.push(tuyaFz.power_on_behavior_2);
2239
- toZigbee.push(tuyaTz.power_on_behavior_2);
2240
- if (args.endpoints) {
2241
- exposes.push(...args.endpoints.map((ee) => e.power_on_behavior().withEndpoint(ee)));
2242
- }
2243
- else {
2244
- exposes.push(e.power_on_behavior());
2245
- }
2246
- }
2247
- else {
2248
- fromZigbee.push(tuyaFz.power_on_behavior_1);
2249
- toZigbee.push(tuyaTz.power_on_behavior_1);
2250
- exposes.push(e.power_on_behavior());
2251
- }
2252
- if (args.switchType) {
2253
- fromZigbee.push(tuyaFz.switch_type);
2254
- toZigbee.push(tuyaTz.switch_type);
2255
- exposes.push(tuyaExposes.switchType());
2256
- }
2257
- if (args.backlightModeOffOn) {
2258
- fromZigbee.push(tuyaFz.backlight_mode_off_on);
2259
- exposes.push(tuyaExposes.backlightModeOffOn());
2260
- toZigbee.push(tuyaTz.backlight_indicator_mode_2);
2261
- }
2262
- if (args.backlightModeLowMediumHigh) {
2263
- fromZigbee.push(tuyaFz.backlight_mode_low_medium_high);
2264
- exposes.push(tuyaExposes.backlightModeLowMediumHigh());
2265
- toZigbee.push(tuyaTz.backlight_indicator_mode_1);
2266
- }
2267
- if (args.backlightModeOffNormalInverted) {
2268
- fromZigbee.push(tuyaFz.backlight_mode_off_normal_inverted);
2269
- exposes.push(tuyaExposes.backlightModeOffNormalInverted());
2270
- toZigbee.push(tuyaTz.backlight_indicator_mode_1);
2271
- }
2272
- if (args.indicatorMode) {
2273
- fromZigbee.push(tuyaFz.indicator_mode);
2274
- exposes.push(tuyaExposes.indicatorMode());
2275
- toZigbee.push(tuyaTz.backlight_indicator_mode_1);
2276
- }
2277
- if (args.electricalMeasurements) {
2278
- fromZigbee.push(args.electricalMeasurementsFzConverter || fromZigbee_1.default.electrical_measurement, fromZigbee_1.default.metering);
2279
- exposes.push(e.power(), e.current(), e.voltage(), e.energy());
2280
- }
2281
- if (args.childLock) {
2282
- fromZigbee.push(tuyaFz.child_lock);
2283
- toZigbee.push(tuyaTz.child_lock);
2284
- exposes.push(e.child_lock());
2285
- }
2286
- if (args.switchMode) {
2287
- if (args.endpoints) {
2288
- args.endpoints.forEach(function (ep) {
2289
- const epExtend = tuyaModernExtend.tuyaSwitchMode({
2290
- description: `Switch mode ${ep}`,
2291
- endpointName: ep,
2292
- });
2293
- fromZigbee.push(...epExtend.fromZigbee);
2294
- toZigbee.push(...epExtend.toZigbee);
2295
- exposes.push(...epExtend.exposes);
2296
- });
2297
- }
2298
- else {
2299
- const extend = tuyaModernExtend.tuyaSwitchMode({ description: 'Switch mode' });
2300
- fromZigbee.push(...extend.fromZigbee);
2301
- toZigbee.push(...extend.toZigbee);
2302
- exposes.push(...extend.exposes);
2303
- }
2304
- }
2305
- if (args.inchingSwitch) {
2306
- let quantity = 1;
2307
- if (args.endpoints) {
2308
- quantity = args.endpoints.length;
2309
- }
2310
- fromZigbee.push(tuyaFz.inchingSwitch);
2311
- exposes.push(tuyaExposes.inchingSwitch(quantity));
2312
- toZigbee.push(tuyaTz.inchingSwitch);
2313
- }
2314
- const configure = [(0, utils_1.configureSetPowerSourceWhenUnknown)('Mains (single phase)')];
2315
- return { exposes, fromZigbee, toZigbee, isModernExtend: true, configure };
2316
- },
2317
- dpBacklightMode(args) {
2318
- const { readOnly } = args;
2319
- let { lookup } = args;
2320
- lookup = lookup || { off: 0, normal: 1, inverted: 2 };
2321
- return tuyaModernExtend.dpEnumLookup({
2322
- name: 'backlight_mode',
2323
- lookup: lookup,
2324
- type: exports.dataTypes.enum,
2325
- expose: tuyaExposes.backlightModeOffNormalInverted().withAccess(readOnly ? ea.STATE : ea.STATE_SET),
2326
- ...args,
2327
- });
2328
- },
2329
- combineActions(actions) {
2330
- let newValues = [];
2331
- let newFromZigbee = [];
2332
- let description;
2333
- // collect action values and handlers
2334
- for (const actionME of actions) {
2335
- const { exposes, fromZigbee } = actionME;
2336
- newValues = newValues.concat(exposes[0].values);
2337
- description = exposes[0].description;
2338
- newFromZigbee = newFromZigbee.concat(fromZigbee);
2339
- }
2340
- // create single enum-expose
2341
- const exp = new exposes.Enum('action', ea.STATE, newValues).withDescription(description);
2342
- return { exposes: [exp], fromZigbee: newFromZigbee, isModernExtend: true };
2343
- },
2344
- tuyaSwitchMode: (args) => modernExtend.enumLookup({
2345
- name: 'switch_mode',
2346
- lookup: { switch: 0, scene: 1 },
2347
- cluster: 'manuSpecificTuya_3',
2348
- attribute: 'switchMode',
2349
- description: 'Work mode for switch',
2350
- entityCategory: 'config',
2351
- ...args,
2352
- }),
2353
- tuyaLedIndicator() {
2354
- const fromZigbee = [tuyaFz.backlight_mode_off_normal_inverted];
2355
- const exp = tuyaExposes.backlightModeOffNormalInverted();
2356
- const toZigbee = [tuyaTz.backlight_indicator_mode_1];
2357
- return { exposes: [exp], toZigbee, fromZigbee, isModernExtend: true };
2358
- },
2359
- tuyaMagicPacket() {
2360
- return { configure: [exports.configureMagicPacket], isModernExtend: true };
2361
- },
2362
- tuyaOnOffAction(args) {
2363
- return modernExtend.actionEnumLookup({
2364
- actionLookup: { 0: 'single', 1: 'double', 2: 'hold' },
2365
- cluster: 'genOnOff',
2366
- commands: ['commandTuyaAction'],
2367
- attribute: 'value',
2368
- });
2369
- },
2370
- tuyaOnOffActionLegacy(args) {
2371
- // For new devices use tuyaOnOffAction instead
2372
- const actions = args.actions.map((a) => (args.endpointNames ? args.endpointNames.map((e) => `${e}_${a}`) : [a])).flat();
2373
- const exposes = [e.action(actions)];
2374
- const fromZigbee = [tuyaFz.on_off_action];
2375
- return { exposes, fromZigbee, isModernExtend: true };
2376
- },
2377
- dpChildLock(args) {
2378
- return tuyaModernExtend.dpBinary({
2379
- name: 'child_lock',
2380
- type: exports.dataTypes.bool,
2381
- valueOn: ['LOCK', true],
2382
- valueOff: ['UNLOCK', false],
2383
- expose: e.child_lock(),
2384
- ...args,
2385
- });
2386
- },
2387
- };
2388
- exports.modernExtend = tuyaModernExtend;
2389
- const tuyaClusters = {
2390
- addTuyaCommonPrivateCluster: () => modernExtend.deviceAddCustomCluster('manuSpecificTuya_4', {
2391
- ID: 0xe000,
2392
- attributes: {
2393
- random_timing: { ID: 0xd001, type: zigbee_herdsman_1.Zcl.DataType.CHAR_STR },
2394
- cycle_timing: { ID: 0xd002, type: zigbee_herdsman_1.Zcl.DataType.CHAR_STR },
2395
- inching: { ID: 0xd003, type: zigbee_herdsman_1.Zcl.DataType.CHAR_STR },
2396
- },
2397
- commands: {
2398
- setRandomTiming: {
2399
- ID: 0xf7,
2400
- parameters: [{ name: 'payload', type: zigbee_herdsman_1.Zcl.BuffaloZclDataType.BUFFER }],
2401
- },
2402
- setCycleTiming: {
2403
- ID: 0xf8,
2404
- parameters: [{ name: 'payload', type: zigbee_herdsman_1.Zcl.BuffaloZclDataType.BUFFER }],
2405
- },
2406
- setInchingSwitch: {
2407
- ID: 0xfb,
2408
- parameters: [{ name: 'payload', type: zigbee_herdsman_1.Zcl.BuffaloZclDataType.BUFFER }],
2409
- },
2410
- },
2411
- commandsResponse: {},
2412
- }),
2413
- };
2414
- exports.clusters = tuyaClusters;
2415
- //# sourceMappingURL=tuya.js.map