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/devices/lumi.js DELETED
@@ -1,4430 +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.definitions = void 0;
40
- const fromZigbee_1 = __importDefault(require("../converters/fromZigbee"));
41
- const toZigbee_1 = __importDefault(require("../converters/toZigbee"));
42
- const exposes = __importStar(require("../lib/exposes"));
43
- const logger_1 = require("../lib/logger");
44
- const lumi = __importStar(require("../lib/lumi"));
45
- const m = __importStar(require("../lib/modernExtend"));
46
- const reporting = __importStar(require("../lib/reporting"));
47
- const globalStore = __importStar(require("../lib/store"));
48
- const e = exposes.presets;
49
- const ea = exposes.access;
50
- const { lumiAction, lumiOperationMode, lumiPowerOnBehavior, lumiZigbeeOTA, lumiSwitchType, lumiAirQuality, lumiVoc, lumiDisplayUnit, lumiLight, lumiOutageCountRestoreBindReporting, lumiElectricityMeter, lumiPower, lumiOverloadProtection, lumiLedIndicator, lumiButtonLock, lumiMotorSpeed, lumiCurtainSpeed, lumiCurtainManualOpenClose, lumiCurtainAdaptivePullingSpeed, lumiCurtainManualStop, lumiCurtainReverse, lumiCurtainStatus, lumiCurtainLastManualOperation, lumiCurtainPosition, lumiCurtainTraverseTime, lumiCurtainCalibrationStatus, lumiCurtainCalibrated, lumiCurtainIdentifyBeep, lumiOnOff, lumiLedDisabledNight, lumiFlipIndicatorLight, lumiPreventReset, lumiClickMode, lumiSlider, lumiSetEventMode, lumiSwitchMode, lumiVibration, lumiReportInterval, lumiSensitivityAdjustment, lumiKnobRotation, lumiCommandMode, lumiBattery, lumiLockRelay, lumiMultiClick, lumiPreventLeave, } = lumi.modernExtend;
51
- const NS = 'zhc:lumi';
52
- const { manufacturerCode } = lumi;
53
- exports.definitions = [
54
- {
55
- zigbeeModel: ['lumi.flood.acn001'],
56
- model: 'SJCGQ13LM',
57
- vendor: 'Aqara',
58
- description: 'Water leak sensor E1',
59
- fromZigbee: [fromZigbee_1.default.ias_water_leak_alarm_1, lumi.fromZigbee.lumi_specific, fromZigbee_1.default.battery],
60
- toZigbee: [],
61
- exposes: [e.water_leak(), e.battery(), e.battery_low(), e.battery_voltage(), e.device_temperature(), e.power_outage_count(false)],
62
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
63
- configure: async (device, coordinatorEndpoint) => {
64
- const endpoint = device.getEndpoint(1);
65
- await endpoint.read('genPowerCfg', ['batteryVoltage']);
66
- },
67
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
68
- },
69
- {
70
- zigbeeModel: ['lumi.airm.fhac01'],
71
- model: 'KQJCMB11LM',
72
- vendor: 'Aqara',
73
- description: 'Air monitoring panel S1',
74
- fromZigbee: [fromZigbee_1.default.temperature, fromZigbee_1.default.humidity, lumi.fromZigbee.lumi_pm25, lumi.fromZigbee.lumi_co2],
75
- toZigbee: [],
76
- exposes: [e.temperature(), e.humidity(), e.pm25(), e.co2()],
77
- extend: [lumiZigbeeOTA()],
78
- },
79
- {
80
- zigbeeModel: ['lumi.magnet.acn001'],
81
- model: 'MCCGQ14LM',
82
- vendor: 'Aqara',
83
- description: 'Door and window sensor E1',
84
- fromZigbee: [fromZigbee_1.default.ias_contact_alarm_1, lumi.fromZigbee.lumi_specific, fromZigbee_1.default.battery],
85
- toZigbee: [],
86
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
87
- exposes: [e.contact(), e.battery(), e.battery_low(), e.battery_voltage()],
88
- configure: async (device, coordinatorEndpoint) => {
89
- const endpoint = device.getEndpoint(1);
90
- await endpoint.read('genPowerCfg', ['batteryVoltage']);
91
- },
92
- extend: [
93
- m.quirkCheckinInterval('1_HOUR'),
94
- // OTA request: "fieldControl":0, "manufacturerCode":4447, "imageType":10635, no available for now
95
- // https://github.com/Koenkk/zigbee-OTA/pull/138
96
- // lumiZigbeeOTA(),
97
- ],
98
- },
99
- {
100
- zigbeeModel: ['lumi.magnet.ac01'],
101
- model: 'MCCGQ13LM',
102
- vendor: 'Aqara',
103
- description: 'Door and window sensor P1',
104
- fromZigbee: [lumi.fromZigbee.lumi_contact, fromZigbee_1.default.ias_contact_alarm_1, lumi.fromZigbee.lumi_specific],
105
- toZigbee: [lumi.toZigbee.lumi_detection_distance],
106
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
107
- exposes: [
108
- e.contact(),
109
- e.battery(),
110
- e.battery_voltage(),
111
- e.tamper(),
112
- e
113
- .enum('detection_distance', ea.ALL, ['10mm', '20mm', '30mm'])
114
- .withDescription('The sensor will be considered "off" within the set distance. Please press the device button before setting'),
115
- ],
116
- extend: [m.quirkCheckinInterval('1_HOUR')],
117
- },
118
- {
119
- zigbeeModel: ['lumi.dimmer.rcbac1'],
120
- model: 'ZNDDMK11LM',
121
- vendor: 'Aqara',
122
- description: 'Smart lightstrip driver',
123
- fromZigbee: [lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_specific, ...m.light({ colorTemp: { range: undefined }, color: true }).fromZigbee],
124
- toZigbee: [
125
- lumi.toZigbee.lumi_dimmer_mode,
126
- lumi.toZigbee.lumi_switch_power_outage_memory,
127
- ...m.light({ colorTemp: { range: undefined }, color: true }).toZigbee,
128
- ],
129
- exposes: [
130
- e.power(),
131
- e.energy(),
132
- e.voltage(),
133
- e.device_temperature(),
134
- e.power_outage_memory(),
135
- // When in rgbw mode, only one of color and colortemp will be valid, and l2 will be invalid
136
- // Do not control l2 in rgbw mode
137
- e.light_brightness_colortemp_colorxy([153, 370]).removeFeature('color_temp_startup').withEndpoint('l1'),
138
- e.light_brightness_colortemp([153, 370]).removeFeature('color_temp_startup').withEndpoint('l2'),
139
- e.enum('dimmer_mode', ea.ALL, ['rgbw', 'dual_ct']).withDescription('Switch between rgbw mode or dual color temperature mode'),
140
- ],
141
- extend: [m.deviceEndpoints({ endpoints: { l1: 1, l2: 2 } }), lumiZigbeeOTA()],
142
- },
143
- {
144
- zigbeeModel: ['lumi.light.aqcn02'],
145
- model: 'ZNLDP12LM',
146
- vendor: 'Aqara',
147
- description: 'Light bulb',
148
- extend: [lumiLight({ colorTemp: true, powerOutageMemory: 'light' }), lumiZigbeeOTA()],
149
- },
150
- {
151
- zigbeeModel: ['lumi.light.acn003'],
152
- model: 'ZNXDD01LM',
153
- vendor: 'Aqara',
154
- description: 'Ceiling light L1-350',
155
- extend: [lumiLight({ colorTemp: true, powerOutageMemory: 'switch' }), lumiZigbeeOTA()],
156
- },
157
- {
158
- zigbeeModel: ['lumi.light.cwac02', 'lumi.light.acn014'],
159
- model: 'ZNLDP13LM',
160
- vendor: 'Aqara',
161
- description: 'Light bulb T1',
162
- whiteLabel: [{ vendor: 'Aqara', model: 'LEDLBT1-L01' }],
163
- extend: [
164
- lumiZigbeeOTA(),
165
- lumiLight({ colorTemp: true, powerOutageMemory: 'switch' }),
166
- m.forceDeviceType({ type: 'Router' }),
167
- m.forcePowerSource({ powerSource: 'Mains (single phase)' }),
168
- ],
169
- },
170
- {
171
- zigbeeModel: ['lumi.light.cwopcn01'],
172
- model: 'XDD11LM',
173
- vendor: 'Aqara',
174
- description: 'Opple MX960',
175
- meta: { turnsOffAtBrightness1: true },
176
- extend: [lumiLight({ colorTemp: true, powerOutageMemory: 'switch' }), lumiZigbeeOTA()],
177
- },
178
- {
179
- zigbeeModel: ['lumi.light.cwopcn02'],
180
- model: 'XDD12LM',
181
- vendor: 'Aqara',
182
- description: 'Opple MX650',
183
- meta: { turnsOffAtBrightness1: true },
184
- extend: [lumiZigbeeOTA(), lumiLight({ colorTemp: true, powerOutageMemory: 'switch' })],
185
- },
186
- {
187
- zigbeeModel: ['lumi.light.cwopcn03'],
188
- model: 'XDD13LM',
189
- vendor: 'Aqara',
190
- description: 'Opple MX480',
191
- meta: { turnsOffAtBrightness1: true },
192
- extend: [lumiLight({ colorTemp: true, powerOutageMemory: 'switch', colorTempRange: [175, 370] }), lumiZigbeeOTA()],
193
- },
194
- {
195
- zigbeeModel: ['lumi.light.cwjwcn01'],
196
- model: 'JWSP001A',
197
- vendor: 'Aqara',
198
- description: 'Jiawen LED Driver & Dimmer',
199
- extend: [lumiLight({ colorTemp: true, powerOutageMemory: 'switch' })],
200
- },
201
- {
202
- zigbeeModel: ['lumi.light.cwjwcn02'],
203
- model: 'JWDL001A',
204
- vendor: 'Aqara',
205
- description: 'Embedded spot led light',
206
- extend: [lumiLight({ colorTemp: true, powerOutageMemory: 'switch' })],
207
- },
208
- {
209
- zigbeeModel: ['lumi.sensor_switch'],
210
- model: 'WXKG01LM',
211
- vendor: 'Xiaomi',
212
- whiteLabel: [
213
- { vendor: 'Xiaomi', model: 'YTC4040GL' },
214
- { vendor: 'Xiaomi', model: 'YTC4006CN' },
215
- { vendor: 'Xiaomi', model: 'YTC4017CN' },
216
- { vendor: 'Xiaomi', model: 'ZHTZ02LM' },
217
- ],
218
- description: 'Mi wireless switch',
219
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
220
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_action_WXKG01LM],
221
- exposes: [
222
- e.battery(),
223
- e.action(['single', 'double', 'triple', 'quadruple', 'hold', 'release', 'many']),
224
- e.battery_voltage(),
225
- e.power_outage_count(false),
226
- ],
227
- toZigbee: [],
228
- extend: [m.quirkCheckinInterval('1_HOUR')],
229
- },
230
- {
231
- zigbeeModel: ['lumi.sensor_switch.aq2', 'lumi.remote.b1acn01'],
232
- model: 'WXKG11LM',
233
- vendor: 'Aqara',
234
- description: 'Wireless mini switch',
235
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
236
- exposes: [
237
- e.battery(),
238
- e.battery_voltage(),
239
- e.action(['single', 'double', 'triple', 'quadruple', 'hold', 'release']),
240
- e.device_temperature(),
241
- e.power_outage_count(),
242
- ],
243
- fromZigbee: [lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_action, lumi.fromZigbee.lumi_basic],
244
- toZigbee: [],
245
- extend: [m.quirkCheckinInterval('1_HOUR')],
246
- },
247
- {
248
- zigbeeModel: ['lumi.sensor_switch.aq3', 'lumi.sensor_swit'],
249
- model: 'WXKG12LM',
250
- vendor: 'Aqara',
251
- description: 'Wireless mini switch (with gyroscope)',
252
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
253
- exposes: [e.battery(), e.action(['single', 'double', 'hold', 'release', 'shake']), e.battery_voltage()],
254
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_action_multistate],
255
- toZigbee: [],
256
- extend: [m.quirkCheckinInterval('1_HOUR')],
257
- },
258
- {
259
- zigbeeModel: ['lumi.sensor_86sw1'],
260
- model: 'WXKG03LM_rev1',
261
- vendor: 'Aqara',
262
- description: 'Wireless remote switch (single rocker), 2016 model',
263
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
264
- exposes: [e.battery(), e.action(['single']), e.battery_voltage()],
265
- fromZigbee: [lumi.fromZigbee.lumi_action, lumi.fromZigbee.lumi_basic],
266
- toZigbee: [],
267
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiPreventReset()],
268
- },
269
- {
270
- zigbeeModel: ['lumi.remote.b186acn01'],
271
- model: 'WXKG03LM_rev2',
272
- vendor: 'Aqara',
273
- description: 'Wireless remote switch (single rocker), 2018 model',
274
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
275
- exposes: [e.battery(), e.action(['single', 'double', 'hold']), e.battery_voltage()],
276
- fromZigbee: [lumi.fromZigbee.lumi_action, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_basic],
277
- toZigbee: [],
278
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiPreventReset()],
279
- },
280
- {
281
- zigbeeModel: ['lumi.remote.b186acn02'],
282
- model: 'WXKG06LM',
283
- vendor: 'Aqara',
284
- description: 'Wireless remote switch D1 (single rocker)',
285
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_action, lumi.fromZigbee.lumi_action_multistate],
286
- toZigbee: [],
287
- exposes: [e.battery(), e.action(['single', 'double', 'hold']), e.battery_voltage()],
288
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
289
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiPreventReset()],
290
- configure: async (device, coordinatorEndpoint) => {
291
- try {
292
- const endpoint = device.endpoints[1];
293
- await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genPowerCfg']);
294
- }
295
- catch {
296
- // fails for some but device works as expected: https://github.com/Koenkk/zigbee2mqtt/issues/9136
297
- }
298
- },
299
- },
300
- {
301
- zigbeeModel: ['lumi.light.acn132'],
302
- model: 'LGYCDD01LM',
303
- vendor: 'Aqara',
304
- whiteLabel: [{ vendor: 'Aqara', model: 'RLS-K01D' }],
305
- description: 'Light strip T1',
306
- extend: [
307
- m.light({ effect: false, powerOnBehavior: false, colorTemp: { startup: false, range: [153, 370] }, color: true }),
308
- lumiPowerOnBehavior(),
309
- m.numeric({
310
- name: 'length',
311
- valueMin: 1,
312
- valueMax: 10,
313
- valueStep: 0.2,
314
- scale: 5,
315
- unit: 'm',
316
- cluster: 'manuSpecificLumi',
317
- attribute: { ID: 0x051b, type: 0x20 },
318
- description: 'LED strip length',
319
- zigbeeCommandOptions: { manufacturerCode },
320
- }),
321
- m.numeric({
322
- name: 'min_brightness',
323
- valueMin: 0,
324
- valueMax: 99,
325
- unit: '%',
326
- cluster: 'manuSpecificLumi',
327
- attribute: { ID: 0x0515, type: 0x20 },
328
- description: 'Minimum brightness level',
329
- zigbeeCommandOptions: { manufacturerCode },
330
- }),
331
- m.numeric({
332
- name: 'max_brightness',
333
- valueMin: 1,
334
- valueMax: 100,
335
- unit: '%',
336
- cluster: 'manuSpecificLumi',
337
- attribute: { ID: 0x0516, type: 0x20 },
338
- description: 'Maximum brightness level',
339
- zigbeeCommandOptions: { manufacturerCode },
340
- }),
341
- m.binary({
342
- name: 'audio',
343
- valueOn: ['ON', 1],
344
- valueOff: ['OFF', 0],
345
- cluster: 'manuSpecificLumi',
346
- attribute: { ID: 0x051c, type: 0x20 },
347
- description: 'Enabling audio',
348
- zigbeeCommandOptions: { manufacturerCode },
349
- }),
350
- m.enumLookup({
351
- name: 'audio_sensitivity',
352
- lookup: { low: 0, medium: 1, high: 2 },
353
- cluster: 'manuSpecificLumi',
354
- attribute: { ID: 0x051e, type: 0x20 },
355
- description: 'Audio sensitivity',
356
- zigbeeCommandOptions: { manufacturerCode },
357
- }),
358
- m.enumLookup({
359
- name: 'audio_effect',
360
- lookup: { random: 0, blink: 1, rainbow: 2, wave: 3 },
361
- cluster: 'manuSpecificLumi',
362
- attribute: { ID: 0x051d, type: 0x23 },
363
- description: 'Audio effect',
364
- zigbeeCommandOptions: { manufacturerCode },
365
- }),
366
- m.numeric({
367
- name: 'preset',
368
- valueMin: 1,
369
- valueMax: 32,
370
- cluster: 'manuSpecificLumi',
371
- attribute: { ID: 0x051f, type: 0x23 },
372
- description: 'Preset index (0-6 default presets)',
373
- zigbeeCommandOptions: { manufacturerCode },
374
- }),
375
- m.numeric({
376
- name: 'speed',
377
- valueMin: 1,
378
- valueMax: 100,
379
- cluster: 'manuSpecificLumi',
380
- attribute: { ID: 0x0520, type: 0x20 },
381
- description: 'Effect speed',
382
- zigbeeCommandOptions: { manufacturerCode },
383
- }),
384
- lumiZigbeeOTA(),
385
- ],
386
- },
387
- {
388
- zigbeeModel: ['lumi.sensor_86sw2', 'lumi.sensor_86sw2.es1'],
389
- model: 'WXKG02LM_rev1',
390
- vendor: 'Aqara',
391
- description: 'Wireless remote switch (double rocker), 2016 model',
392
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
393
- exposes: [e.battery(), e.action(['single_left', 'single_right', 'single_both']), e.battery_voltage(), e.power_outage_count(false)],
394
- fromZigbee: [lumi.fromZigbee.lumi_action, lumi.fromZigbee.lumi_basic],
395
- toZigbee: [],
396
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiPreventReset()],
397
- },
398
- {
399
- zigbeeModel: ['lumi.remote.b286acn01'],
400
- model: 'WXKG02LM_rev2',
401
- vendor: 'Aqara',
402
- description: 'Wireless remote switch (double rocker), 2018 model',
403
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
404
- exposes: [
405
- e.battery(),
406
- e.action([
407
- 'single_left',
408
- 'single_right',
409
- 'single_both',
410
- 'double_left',
411
- 'double_right',
412
- 'double_both',
413
- 'hold_left',
414
- 'hold_right',
415
- 'hold_both',
416
- ]),
417
- e.battery_voltage(),
418
- ],
419
- fromZigbee: [lumi.fromZigbee.lumi_action, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_basic],
420
- toZigbee: [],
421
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiPreventReset()],
422
- },
423
- {
424
- zigbeeModel: ['lumi.switch.b1laus01'],
425
- model: 'WS-USC01',
426
- vendor: 'Aqara',
427
- description: 'Smart wall switch (no neutral, single rocker), US',
428
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
429
- toZigbee: [
430
- toZigbee_1.default.on_off,
431
- lumi.toZigbee.lumi_switch_operation_mode_opple,
432
- lumi.toZigbee.lumi_flip_indicator_light,
433
- lumi.toZigbee.lumi_switch_mode_switch,
434
- lumi.toZigbee.lumi_switch_power_outage_memory,
435
- ],
436
- exposes: [
437
- e.switch(),
438
- e.action(['single', 'double']),
439
- e.flip_indicator_light(),
440
- e.power_outage_memory(),
441
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode'),
442
- e
443
- .enum('mode_switch', ea.ALL, ['anti_flicker_mode', 'quick_mode'])
444
- .withDescription('Anti flicker mode can be used to solve blinking issues of some lights. Quick mode makes the device respond faster.'),
445
- e.power_outage_count(),
446
- e.device_temperature().withAccess(ea.STATE),
447
- ],
448
- configure: async (device, coordinatorEndpoint) => {
449
- const endpoint1 = device.getEndpoint(1);
450
- // set "event" mode
451
- await endpoint1.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
452
- device.powerSource = 'Mains (single phase)';
453
- device.save();
454
- },
455
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
456
- },
457
- {
458
- zigbeeModel: ['lumi.switch.b2laus01'],
459
- model: 'WS-USC02',
460
- vendor: 'Aqara',
461
- description: 'Smart wall switch (no neutral, double rocker), US',
462
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
463
- toZigbee: [
464
- toZigbee_1.default.on_off,
465
- lumi.toZigbee.lumi_switch_operation_mode_opple,
466
- lumi.toZigbee.lumi_flip_indicator_light,
467
- lumi.toZigbee.lumi_switch_power_outage_memory,
468
- lumi.toZigbee.lumi_switch_mode_switch,
469
- ],
470
- exposes: [
471
- e.switch().withEndpoint('top'),
472
- e.switch().withEndpoint('bottom'),
473
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for top button').withEndpoint('top'),
474
- e
475
- .enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
476
- .withDescription('Decoupled mode for bottom button')
477
- .withEndpoint('bottom'),
478
- e
479
- .enum('mode_switch', ea.ALL, ['anti_flicker_mode', 'quick_mode'])
480
- .withDescription('Anti flicker mode can be used to solve blinking issues of some lights. Quick mode makes the device respond faster.'),
481
- e.power_outage_count(),
482
- e.device_temperature().withAccess(ea.STATE),
483
- e.flip_indicator_light(),
484
- e.power_outage_memory(),
485
- e.action(['single_top', 'single_bottom', 'single_both', 'double_top', 'double_bottom', 'double_both']),
486
- ],
487
- meta: { multiEndpoint: true },
488
- endpoint: (device) => {
489
- return { top: 1, bottom: 2 };
490
- },
491
- configure: async (device, coordinatorEndpoint) => {
492
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
493
- },
494
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
495
- },
496
- {
497
- zigbeeModel: ['lumi.switch.b1naus01'],
498
- model: 'WS-USC03',
499
- vendor: 'Aqara',
500
- description: 'Smart wall switch (with neutral, single rocker), US',
501
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
502
- toZigbee: [
503
- toZigbee_1.default.on_off,
504
- lumi.toZigbee.lumi_power,
505
- lumi.toZigbee.lumi_switch_operation_mode_opple,
506
- lumi.toZigbee.lumi_switch_power_outage_memory,
507
- lumi.toZigbee.lumi_flip_indicator_light,
508
- ],
509
- exposes: [
510
- e.switch(),
511
- e.action(['single', 'double']),
512
- e.flip_indicator_light(),
513
- e.power_outage_count(),
514
- e.device_temperature().withAccess(ea.STATE),
515
- e.power().withAccess(ea.STATE_GET),
516
- e.energy(),
517
- e.voltage(),
518
- e.power_outage_memory(),
519
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode'),
520
- ],
521
- configure: async (device, coordinatorEndpoint) => {
522
- const endpoint1 = device.getEndpoint(1);
523
- // set "event" mode
524
- await endpoint1.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
525
- },
526
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
527
- },
528
- {
529
- zigbeeModel: ['lumi.switch.b2naus01'],
530
- model: 'WS-USC04',
531
- vendor: 'Aqara',
532
- description: 'Smart wall switch (with neutral, double rocker), US',
533
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
534
- toZigbee: [
535
- toZigbee_1.default.on_off,
536
- lumi.toZigbee.lumi_power,
537
- lumi.toZigbee.lumi_switch_operation_mode_opple,
538
- lumi.toZigbee.lumi_switch_power_outage_memory,
539
- lumi.toZigbee.lumi_flip_indicator_light,
540
- ],
541
- exposes: [
542
- e.switch().withEndpoint('top'),
543
- e.switch().withEndpoint('bottom'),
544
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for top button').withEndpoint('top'),
545
- e
546
- .enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
547
- .withDescription('Decoupled mode for bottom button')
548
- .withEndpoint('bottom'),
549
- e.power_outage_count(),
550
- e.device_temperature().withAccess(ea.STATE),
551
- e.flip_indicator_light(),
552
- e.power().withAccess(ea.STATE_GET),
553
- e.energy(),
554
- e.voltage(),
555
- e.power_outage_memory(),
556
- e.action(['single_top', 'single_bottom', 'single_both', 'double_top', 'double_bottom', 'double_both']),
557
- ],
558
- meta: { multiEndpoint: true, multiEndpointSkip: ['power', 'energy'] },
559
- endpoint: (device) => {
560
- return { top: 1, bottom: 2 };
561
- },
562
- configure: async (device, coordinatorEndpoint) => {
563
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
564
- },
565
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
566
- },
567
- {
568
- zigbeeModel: ['lumi.switch.l1acn1'],
569
- model: 'QBKG27LM',
570
- vendor: 'Aqara',
571
- description: 'Smart wall switch H1 (no neutral, single rocker)',
572
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_specific, lumi.fromZigbee.lumi_action_multistate],
573
- toZigbee: [
574
- toZigbee_1.default.on_off,
575
- lumi.toZigbee.lumi_switch_operation_mode_opple,
576
- lumi.toZigbee.lumi_switch_power_outage_memory,
577
- lumi.toZigbee.lumi_led_disabled_night,
578
- lumi.toZigbee.lumi_flip_indicator_light,
579
- lumi.toZigbee.lumi_switch_mode_switch,
580
- ],
581
- exposes: [
582
- e.switch(),
583
- e.device_temperature(),
584
- e.power_outage_memory(),
585
- e.led_disabled_night(),
586
- e.flip_indicator_light(),
587
- e.action(['single', 'double']),
588
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode'),
589
- e.power_outage_count(),
590
- e
591
- .enum('mode_switch', ea.ALL, ['anti_flicker_mode', 'quick_mode'])
592
- .withDescription('Anti flicker mode can be used to solve blinking issues of some lights. Quick mode makes the device respond faster.'),
593
- ],
594
- configure: async (device, coordinatorEndpoint) => {
595
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
596
- },
597
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
598
- },
599
- {
600
- zigbeeModel: ['lumi.switch.l2acn1'],
601
- model: 'QBKG28LM',
602
- vendor: 'Aqara',
603
- description: 'Smart wall switch H1 (no neutral, double rocker)',
604
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
605
- toZigbee: [
606
- toZigbee_1.default.on_off,
607
- lumi.toZigbee.lumi_switch_operation_mode_opple,
608
- lumi.toZigbee.lumi_switch_power_outage_memory,
609
- lumi.toZigbee.lumi_flip_indicator_light,
610
- lumi.toZigbee.lumi_led_disabled_night,
611
- lumi.toZigbee.lumi_switch_mode_switch,
612
- ],
613
- meta: { multiEndpoint: true },
614
- endpoint: (device) => {
615
- return { left: 1, right: 2 };
616
- },
617
- exposes: [
618
- e.switch().withEndpoint('left'),
619
- e.switch().withEndpoint('right'),
620
- e.device_temperature(),
621
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
622
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
623
- e.action(['single_left', 'double_left', 'single_right', 'double_right', 'single_both', 'double_both']),
624
- e.power_outage_memory(),
625
- e.flip_indicator_light(),
626
- e.led_disabled_night(),
627
- e
628
- .enum('mode_switch', ea.ALL, ['anti_flicker_mode', 'quick_mode'])
629
- .withDescription('Anti flicker mode can be used to solve blinking issues of some lights. Quick mode makes the device respond faster.'),
630
- ],
631
- configure: async (device, coordinatorEndpoint) => {
632
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
633
- },
634
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
635
- },
636
- {
637
- zigbeeModel: ['lumi.switch.l3acn1'],
638
- model: 'QBKG29LM',
639
- vendor: 'Aqara',
640
- description: 'Smart wall switch H1 (no neutral, triple rocker)',
641
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
642
- toZigbee: [
643
- toZigbee_1.default.on_off,
644
- lumi.toZigbee.lumi_switch_operation_mode_opple,
645
- lumi.toZigbee.lumi_switch_power_outage_memory,
646
- lumi.toZigbee.lumi_flip_indicator_light,
647
- lumi.toZigbee.lumi_led_disabled_night,
648
- lumi.toZigbee.lumi_switch_mode_switch,
649
- ],
650
- meta: { multiEndpoint: true },
651
- endpoint: (device) => ({ left: 1, center: 2, right: 3 }),
652
- exposes: [
653
- e.switch().withEndpoint('left'),
654
- e.switch().withEndpoint('center'),
655
- e.switch().withEndpoint('right'),
656
- e.power_outage_memory(),
657
- e.flip_indicator_light(),
658
- e.led_disabled_night(),
659
- e.power_outage_count(),
660
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
661
- e
662
- .enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
663
- .withDescription('Decoupled mode for center button')
664
- .withEndpoint('center'),
665
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
666
- e
667
- .enum('mode_switch', ea.ALL, ['anti_flicker_mode', 'quick_mode'])
668
- .withDescription('Anti flicker mode can be used to solve blinking issues of some lights. Quick mode makes the device respond faster.'),
669
- e.device_temperature().withAccess(ea.STATE),
670
- e.action([
671
- 'single_left',
672
- 'double_left',
673
- 'single_center',
674
- 'double_center',
675
- 'single_right',
676
- 'double_right',
677
- 'single_left_center',
678
- 'double_left_center',
679
- 'single_left_right',
680
- 'double_left_right',
681
- 'single_center_right',
682
- 'double_center_right',
683
- 'single_all',
684
- 'double_all',
685
- ]),
686
- ],
687
- configure: async (device, coordinatorEndpoint) => {
688
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
689
- },
690
- extend: [lumiPreventReset()],
691
- },
692
- {
693
- zigbeeModel: ['lumi.switch.n1acn1'],
694
- model: 'QBKG30LM',
695
- vendor: 'Aqara',
696
- description: 'Smart wall switch H1 Pro (with neutral, single rocker)',
697
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_specific, lumi.fromZigbee.lumi_action_multistate],
698
- toZigbee: [
699
- toZigbee_1.default.on_off,
700
- lumi.toZigbee.lumi_switch_operation_mode_opple,
701
- lumi.toZigbee.lumi_switch_power_outage_memory,
702
- lumi.toZigbee.lumi_led_disabled_night,
703
- lumi.toZigbee.lumi_flip_indicator_light,
704
- ],
705
- exposes: [
706
- e.switch(),
707
- e.power(),
708
- e.energy(),
709
- e.voltage(),
710
- e.device_temperature(),
711
- e.power_outage_memory(),
712
- e.led_disabled_night(),
713
- e.flip_indicator_light(),
714
- e.action(['single', 'double']),
715
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode'),
716
- e.power_outage_count(),
717
- ],
718
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
719
- },
720
- {
721
- zigbeeModel: ['lumi.switch.n2acn1'],
722
- model: 'QBKG31LM',
723
- vendor: 'Aqara',
724
- description: 'Smart wall switch H1 Pro (with neutral, double rocker)',
725
- meta: { multiEndpoint: true, multiEndpointSkip: ['power', 'energy'] },
726
- endpoint: (device) => {
727
- return { left: 1, right: 2 };
728
- },
729
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_specific, lumi.fromZigbee.lumi_action_multistate],
730
- toZigbee: [
731
- toZigbee_1.default.on_off,
732
- lumi.toZigbee.lumi_switch_operation_mode_opple,
733
- lumi.toZigbee.lumi_switch_power_outage_memory,
734
- lumi.toZigbee.lumi_led_disabled_night,
735
- lumi.toZigbee.lumi_flip_indicator_light,
736
- ],
737
- exposes: [
738
- e.switch().withEndpoint('left'),
739
- e.switch().withEndpoint('right'),
740
- e.power(),
741
- e.energy(),
742
- e.voltage(),
743
- e.device_temperature(),
744
- e.power_outage_memory(),
745
- e.led_disabled_night(),
746
- e.flip_indicator_light(),
747
- e.action(['single_left', 'single_right', 'single_both', 'double_left', 'double_right', 'double_both']),
748
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
749
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
750
- e.power_outage_count(),
751
- ],
752
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
753
- },
754
- {
755
- zigbeeModel: ['lumi.switch.n3acn1'],
756
- model: 'QBKG32LM',
757
- vendor: 'Aqara',
758
- description: 'Smart wall switch H1 Pro (with neutral, triple rocker)',
759
- meta: { multiEndpoint: true },
760
- endpoint: (device) => {
761
- return { left: 1, center: 2, right: 3 };
762
- },
763
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_specific, lumi.fromZigbee.lumi_action_multistate],
764
- toZigbee: [
765
- toZigbee_1.default.on_off,
766
- lumi.toZigbee.lumi_switch_operation_mode_opple,
767
- lumi.toZigbee.lumi_switch_power_outage_memory,
768
- lumi.toZigbee.lumi_led_disabled_night,
769
- lumi.toZigbee.lumi_flip_indicator_light,
770
- ],
771
- exposes: [
772
- e.switch().withEndpoint('left'),
773
- e.switch().withEndpoint('right'),
774
- e.switch().withEndpoint('center'),
775
- e.power(),
776
- e.energy(),
777
- e.voltage(),
778
- e.device_temperature(),
779
- e.power_outage_memory(),
780
- e.led_disabled_night(),
781
- e.flip_indicator_light(),
782
- e.action([
783
- 'single_left',
784
- 'double_left',
785
- 'single_center',
786
- 'double_center',
787
- 'single_right',
788
- 'double_right',
789
- 'single_left_center',
790
- 'double_left_center',
791
- 'single_left_right',
792
- 'double_left_right',
793
- 'single_center_right',
794
- 'double_center_right',
795
- 'single_all',
796
- 'double_all',
797
- ]),
798
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
799
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
800
- e
801
- .enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
802
- .withDescription('Decoupled mode for center button')
803
- .withEndpoint('center'),
804
- e.power_outage_count(),
805
- ],
806
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
807
- },
808
- {
809
- zigbeeModel: ['lumi.switch.l1aeu1'],
810
- model: 'WS-EUK01',
811
- vendor: 'Aqara',
812
- description: 'Smart wall switch H1 EU (no neutral, single rocker)',
813
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
814
- toZigbee: [
815
- toZigbee_1.default.on_off,
816
- lumi.toZigbee.lumi_switch_operation_mode_opple,
817
- lumi.toZigbee.lumi_switch_power_outage_memory,
818
- lumi.toZigbee.lumi_flip_indicator_light,
819
- lumi.toZigbee.lumi_led_disabled_night,
820
- lumi.toZigbee.lumi_switch_mode_switch,
821
- ],
822
- exposes: [
823
- e.switch(),
824
- e.action(['single', 'double']),
825
- e.power_outage_memory(),
826
- e.flip_indicator_light(),
827
- e.led_disabled_night(),
828
- e.power_outage_count(),
829
- e.device_temperature().withAccess(ea.STATE),
830
- e.operation_mode_select(['control_relay', 'decoupled']).withDescription('Switches between direct relay control and action sending only'),
831
- e
832
- .mode_switch_select(['anti_flicker_mode', 'quick_mode'])
833
- .withDescription('Features. Anti flicker mode can be used to solve blinking issues of some lights.' +
834
- 'Quick mode makes the device respond faster.'),
835
- ],
836
- configure: async (device, coordinatorEndpoint) => {
837
- const endpoint1 = device.getEndpoint(1);
838
- // set "event" mode
839
- await endpoint1.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
840
- },
841
- extend: [lumiPreventReset()],
842
- },
843
- {
844
- zigbeeModel: ['lumi.switch.l2aeu1'],
845
- model: 'WS-EUK02',
846
- vendor: 'Aqara',
847
- description: 'Smart wall switch H1 EU (no neutral, double rocker)',
848
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
849
- toZigbee: [
850
- toZigbee_1.default.on_off,
851
- lumi.toZigbee.lumi_switch_operation_mode_opple,
852
- lumi.toZigbee.lumi_switch_power_outage_memory,
853
- lumi.toZigbee.lumi_flip_indicator_light,
854
- lumi.toZigbee.lumi_led_disabled_night,
855
- lumi.toZigbee.lumi_switch_mode_switch,
856
- ],
857
- meta: { multiEndpoint: true },
858
- endpoint: (_device) => {
859
- return { left: 1, right: 2 };
860
- },
861
- exposes: [
862
- e.switch().withEndpoint('left'),
863
- e.switch().withEndpoint('right'),
864
- e.power_outage_memory(),
865
- e.flip_indicator_light(),
866
- e.led_disabled_night(),
867
- e.power_outage_count(),
868
- e.device_temperature().withAccess(ea.STATE),
869
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
870
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
871
- e
872
- .enum('mode_switch', ea.ALL, ['anti_flicker_mode', 'quick_mode'])
873
- .withDescription('Anti flicker mode can be used to solve blinking issues of some lights. Quick mode makes the device respond faster.'),
874
- e.action(['single_left', 'double_left', 'single_right', 'double_right', 'single_both', 'double_both']),
875
- ],
876
- configure: async (device, coordinatorEndpoint) => {
877
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
878
- },
879
- extend: [lumiPreventReset()],
880
- },
881
- {
882
- zigbeeModel: ['lumi.switch.n1aeu1'],
883
- model: 'WS-EUK03',
884
- vendor: 'Aqara',
885
- description: 'Smart wall switch H1 EU (with neutral, single rocker)',
886
- fromZigbee: [fromZigbee_1.default.on_off, fromZigbee_1.default.electrical_measurement, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
887
- toZigbee: [
888
- toZigbee_1.default.on_off,
889
- toZigbee_1.default.electrical_measurement_power,
890
- lumi.toZigbee.lumi_switch_operation_mode_opple,
891
- lumi.toZigbee.lumi_switch_power_outage_memory,
892
- lumi.toZigbee.lumi_flip_indicator_light,
893
- lumi.toZigbee.lumi_led_disabled_night,
894
- ],
895
- exposes: [
896
- e.switch(),
897
- e.action(['single', 'double']),
898
- e.power().withAccess(ea.STATE_GET),
899
- e.energy(),
900
- e.flip_indicator_light(),
901
- e.power_outage_memory(),
902
- e.device_temperature().withAccess(ea.STATE),
903
- e.led_disabled_night(),
904
- e.power_outage_count(),
905
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode'),
906
- ],
907
- configure: async (device, coordinatorEndpoint) => {
908
- const endpoint1 = device.getEndpoint(1);
909
- // set "event" mode
910
- await endpoint1.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
911
- },
912
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
913
- },
914
- {
915
- zigbeeModel: ['lumi.switch.n2aeu1'],
916
- model: 'WS-EUK04',
917
- vendor: 'Aqara',
918
- description: 'Smart wall switch H1 EU (with neutral, double rocker)',
919
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
920
- toZigbee: [
921
- toZigbee_1.default.on_off,
922
- lumi.toZigbee.lumi_power,
923
- lumi.toZigbee.lumi_switch_operation_mode_opple,
924
- lumi.toZigbee.lumi_switch_power_outage_memory,
925
- lumi.toZigbee.lumi_flip_indicator_light,
926
- lumi.toZigbee.lumi_led_disabled_night,
927
- ],
928
- meta: { multiEndpoint: true, multiEndpointSkip: ['power', 'energy'] },
929
- endpoint: (device) => {
930
- return { left: 1, right: 2 };
931
- },
932
- exposes: [
933
- e.switch().withEndpoint('left'),
934
- e.switch().withEndpoint('right'),
935
- e.power().withAccess(ea.STATE_GET),
936
- e.energy(),
937
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
938
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
939
- e.action(['single_left', 'double_left', 'single_right', 'double_right', 'single_both', 'double_both']),
940
- e.device_temperature().withAccess(ea.STATE),
941
- e.power_outage_memory(),
942
- e.flip_indicator_light(),
943
- e.led_disabled_night(),
944
- e.power_outage_count(),
945
- ],
946
- configure: async (device, coordinatorEndpoint) => {
947
- const endpoint1 = device.getEndpoint(1);
948
- // set "event" mode
949
- await endpoint1.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
950
- },
951
- extend: [lumiPreventReset()],
952
- },
953
- {
954
- zigbeeModel: ['lumi.ctrl_neutral1'],
955
- model: 'QBKG04LM',
956
- vendor: 'Aqara',
957
- description: 'Smart wall switch (no neutral, single rocker)',
958
- fromZigbee: [lumi.fromZigbee.lumi_on_off, lumi.fromZigbee.lumi_action, lumi.fromZigbee.lumi_operation_mode_basic],
959
- exposes: [
960
- e.switch(),
961
- e.action(['release', 'hold', 'double', 'single', 'hold_release']),
962
- e.enum('operation_mode', ea.STATE_SET, ['control_relay', 'decoupled']).withDescription('Decoupled mode'),
963
- ],
964
- toZigbee: [toZigbee_1.default.on_off, { ...lumi.toZigbee.lumi_switch_operation_mode_basic, convertGet: null }],
965
- endpoint: (device) => {
966
- return { system: 1, default: 2 };
967
- },
968
- configure: async (device, coordinatorEndpoint) => {
969
- // Device advertises itself as Router but is an EndDevice
970
- device.type = 'EndDevice';
971
- device.save();
972
- },
973
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
974
- },
975
- {
976
- zigbeeModel: ['lumi.ctrl_ln1.aq1', 'lumi.ctrl_ln1'],
977
- model: 'QBKG11LM',
978
- vendor: 'Aqara',
979
- description: 'Smart wall switch (with neutral, single rocker)',
980
- fromZigbee: [
981
- lumi.fromZigbee.lumi_action,
982
- lumi.fromZigbee.lumi_action_multistate,
983
- lumi.fromZigbee.lumi_on_off,
984
- lumi.fromZigbee.lumi_basic,
985
- lumi.fromZigbee.lumi_operation_mode_basic,
986
- fromZigbee_1.default.ignore_multistate_report,
987
- lumi.fromZigbee.lumi_power,
988
- ],
989
- exposes: [
990
- e.switch(),
991
- e.power().withAccess(ea.STATE_GET),
992
- e.device_temperature(),
993
- e.energy(),
994
- e.action(['single', 'double', 'release', 'hold']),
995
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode'),
996
- ],
997
- toZigbee: [toZigbee_1.default.on_off, lumi.toZigbee.lumi_switch_operation_mode_basic, lumi.toZigbee.lumi_power],
998
- endpoint: (device) => {
999
- return { system: 1 };
1000
- },
1001
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
1002
- configure: async (device, coordinatorEndpoint) => {
1003
- device.powerSource = 'Mains (single phase)';
1004
- device.save();
1005
- },
1006
- },
1007
- {
1008
- zigbeeModel: ['lumi.ctrl_neutral2'],
1009
- model: 'QBKG03LM',
1010
- vendor: 'Aqara',
1011
- description: 'Smart wall switch (no neutral, double rocker)',
1012
- fromZigbee: [lumi.fromZigbee.lumi_action, lumi.fromZigbee.lumi_on_off, lumi.fromZigbee.lumi_operation_mode_basic, lumi.fromZigbee.lumi_basic],
1013
- exposes: [
1014
- e.switch().withEndpoint('left'),
1015
- e.switch().withEndpoint('right'),
1016
- e.device_temperature(),
1017
- e.action([
1018
- 'release_left',
1019
- 'release_right',
1020
- 'release_both',
1021
- 'double_left',
1022
- 'double_right',
1023
- 'single_left',
1024
- 'single_right',
1025
- 'hold_release_left',
1026
- 'hold_release_left',
1027
- ]),
1028
- e
1029
- .enum('operation_mode', ea.STATE_SET, ['control_left_relay', 'control_right_relay', 'decoupled'])
1030
- .withDescription('Operation mode for left button')
1031
- .withEndpoint('left')
1032
- .withCategory('config'),
1033
- e
1034
- .enum('operation_mode', ea.STATE_SET, ['control_left_relay', 'control_right_relay', 'decoupled'])
1035
- .withDescription('Operation mode for right button')
1036
- .withEndpoint('right')
1037
- .withCategory('config'),
1038
- ],
1039
- toZigbee: [toZigbee_1.default.on_off, { ...lumi.toZigbee.lumi_switch_operation_mode_basic, convertGet: null }, lumi.toZigbee.lumi_power],
1040
- meta: { multiEndpoint: true },
1041
- endpoint: (device) => {
1042
- return { system: 1, left: 2, right: 3 };
1043
- },
1044
- configure: async (device, coordinatorEndpoint) => {
1045
- // Device advertises itself as Router but is an EndDevice
1046
- device.type = 'EndDevice';
1047
- device.save();
1048
- },
1049
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
1050
- },
1051
- {
1052
- zigbeeModel: ['lumi.ctrl_ln2.aq1', 'lumi.ctrl_ln2'],
1053
- model: 'QBKG12LM',
1054
- vendor: 'Aqara',
1055
- description: 'Smart wall switch (with neutral, double rocker)',
1056
- fromZigbee: [
1057
- lumi.fromZigbee.lumi_action,
1058
- lumi.fromZigbee.lumi_action_multistate,
1059
- lumi.fromZigbee.lumi_on_off,
1060
- lumi.fromZigbee.lumi_basic,
1061
- lumi.fromZigbee.lumi_operation_mode_basic,
1062
- lumi.fromZigbee.lumi_power,
1063
- ],
1064
- exposes: [
1065
- e.switch().withEndpoint('left'),
1066
- e.switch().withEndpoint('right'),
1067
- e.device_temperature(),
1068
- e.energy(),
1069
- e.power().withAccess(ea.STATE_GET),
1070
- e.action([
1071
- 'single_left',
1072
- 'single_right',
1073
- 'single_both',
1074
- 'double_left',
1075
- 'double_right',
1076
- 'double_both',
1077
- 'hold_left',
1078
- 'hold_right',
1079
- 'hold_both',
1080
- 'release_left',
1081
- 'release_right',
1082
- 'release_both',
1083
- ]),
1084
- e
1085
- .enum('operation_mode', ea.ALL, ['control_left_relay', 'control_right_relay', 'decoupled'])
1086
- .withDescription('Operation mode for left button')
1087
- .withEndpoint('left'),
1088
- e
1089
- .enum('operation_mode', ea.ALL, ['control_left_relay', 'control_right_relay', 'decoupled'])
1090
- .withDescription('Operation mode for right button')
1091
- .withEndpoint('right'),
1092
- ],
1093
- meta: { multiEndpoint: true, multiEndpointSkip: ['power', 'energy'] },
1094
- toZigbee: [toZigbee_1.default.on_off, lumi.toZigbee.lumi_switch_operation_mode_basic, lumi.toZigbee.lumi_power],
1095
- endpoint: (device) => {
1096
- return { left: 1, right: 2, system: 1 };
1097
- },
1098
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
1099
- configure: async (device, coordinatorEndpoint) => {
1100
- device.powerSource = 'Mains (single phase)';
1101
- device.save();
1102
- },
1103
- },
1104
- {
1105
- zigbeeModel: ['lumi.remote.b286acn02'],
1106
- model: 'WXKG07LM',
1107
- vendor: 'Aqara',
1108
- description: 'Wireless remote switch D1 (double rocker)',
1109
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1110
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_action, lumi.fromZigbee.lumi_action_multistate],
1111
- toZigbee: [],
1112
- endpoint: (device) => {
1113
- return { left: 1, right: 2, both: 3 };
1114
- },
1115
- exposes: [
1116
- e.battery(),
1117
- e.battery_voltage(),
1118
- e.action([
1119
- 'single_left',
1120
- 'single_right',
1121
- 'single_both',
1122
- 'double_left',
1123
- 'double_right',
1124
- 'double_both',
1125
- 'hold_left',
1126
- 'hold_right',
1127
- 'hold_both',
1128
- ]),
1129
- ],
1130
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiPreventReset()],
1131
- },
1132
- {
1133
- zigbeeModel: ['lumi.switch.b1lacn02'],
1134
- model: 'QBKG21LM',
1135
- vendor: 'Aqara',
1136
- description: 'Smart wall switch D1 (no neutral, single rocker)',
1137
- fromZigbee: [lumi.fromZigbee.lumi_on_off, lumi.fromZigbee.lumi_action, lumi.fromZigbee.lumi_operation_mode_basic],
1138
- exposes: [
1139
- e.switch(),
1140
- e.action(['release', 'hold', 'double', 'single', 'hold_release']),
1141
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode'),
1142
- ],
1143
- toZigbee: [toZigbee_1.default.on_off, lumi.toZigbee.lumi_switch_operation_mode_basic],
1144
- endpoint: (device) => {
1145
- return { system: 1, default: 2 };
1146
- },
1147
- extend: [lumiPreventReset()],
1148
- configure: async (device, coordinatorEndpoint) => {
1149
- // Device advertises itself as Router but is an EndDevice
1150
- device.type = 'EndDevice';
1151
- device.powerSource = 'Mains (single phase)';
1152
- device.save();
1153
- },
1154
- },
1155
- {
1156
- zigbeeModel: ['lumi.switch.b2lacn02'],
1157
- model: 'QBKG22LM',
1158
- vendor: 'Aqara',
1159
- description: 'Smart wall switch D1 (no neutral, double rocker)',
1160
- fromZigbee: [lumi.fromZigbee.lumi_on_off, lumi.fromZigbee.lumi_action, lumi.fromZigbee.lumi_operation_mode_basic],
1161
- exposes: [
1162
- e.switch().withEndpoint('left'),
1163
- e.switch().withEndpoint('right'),
1164
- e.action([
1165
- 'release_left',
1166
- 'release_right',
1167
- 'release_both',
1168
- 'double_left',
1169
- 'double_right',
1170
- 'single_left',
1171
- 'single_right',
1172
- 'hold_release_left',
1173
- 'hold_release_left',
1174
- ]),
1175
- e
1176
- .enum('operation_mode', ea.ALL, ['control_left_relay', 'control_right_relay', 'decoupled'])
1177
- .withDescription('Operation mode for left button')
1178
- .withEndpoint('left'),
1179
- e
1180
- .enum('operation_mode', ea.ALL, ['control_left_relay', 'control_right_relay', 'decoupled'])
1181
- .withDescription('Operation mode for right button')
1182
- .withEndpoint('right'),
1183
- ],
1184
- toZigbee: [toZigbee_1.default.on_off, lumi.toZigbee.lumi_switch_operation_mode_basic],
1185
- meta: { multiEndpoint: true },
1186
- endpoint: (device) => {
1187
- return { system: 1, left: 2, right: 3 };
1188
- },
1189
- extend: [lumiPreventReset()],
1190
- configure: async (device, coordinatorEndpoint) => {
1191
- // Device advertises itself as Router but is an EndDevice
1192
- device.type = 'EndDevice';
1193
- device.save();
1194
- },
1195
- },
1196
- {
1197
- zigbeeModel: ['lumi.switch.l3acn3'],
1198
- model: 'QBKG25LM',
1199
- vendor: 'Aqara',
1200
- description: 'Smart wall switch D1 (no neutral, triple rocker)',
1201
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
1202
- toZigbee: [
1203
- toZigbee_1.default.on_off,
1204
- lumi.toZigbee.lumi_switch_operation_mode_opple,
1205
- lumi.toZigbee.lumi_switch_power_outage_memory,
1206
- lumi.toZigbee.lumi_led_disabled_night,
1207
- lumi.toZigbee.lumi_switch_mode_switch,
1208
- lumi.toZigbee.lumi_flip_indicator_light,
1209
- ],
1210
- meta: { multiEndpoint: true },
1211
- endpoint: (device) => {
1212
- return { left: 1, center: 2, right: 3 };
1213
- },
1214
- exposes: [
1215
- e.switch().withEndpoint('left'),
1216
- e.switch().withEndpoint('center'),
1217
- e.switch().withEndpoint('right'),
1218
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
1219
- e
1220
- .enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
1221
- .withDescription('Decoupled mode for center button')
1222
- .withEndpoint('center'),
1223
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
1224
- e
1225
- .enum('mode_switch', ea.ALL, ['anti_flicker_mode', 'quick_mode'])
1226
- .withDescription('Anti flicker mode can be used to solve blinking issues of some lights. Quick mode makes the device respond faster.'),
1227
- e.power_outage_memory(),
1228
- e.led_disabled_night(),
1229
- e.device_temperature().withAccess(ea.STATE),
1230
- e.flip_indicator_light(),
1231
- e.action([
1232
- 'left_single',
1233
- 'left_double',
1234
- 'center_single',
1235
- 'center_double',
1236
- 'right_single',
1237
- 'right_double',
1238
- 'single_left_center',
1239
- 'double_left_center',
1240
- 'single_left_right',
1241
- 'double_left_right',
1242
- 'single_center_right',
1243
- 'double_center_right',
1244
- 'single_all',
1245
- 'double_all',
1246
- ]),
1247
- e.power_outage_count(),
1248
- ],
1249
- configure: async (device, coordinatorEndpoint) => {
1250
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
1251
- },
1252
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
1253
- },
1254
- {
1255
- zigbeeModel: ['lumi.switch.n3acn3'],
1256
- model: 'QBKG26LM',
1257
- vendor: 'Aqara',
1258
- description: 'Smart wall switch D1 (with neutral, triple rocker)',
1259
- exposes: [
1260
- e.switch().withEndpoint('left'),
1261
- e.switch().withEndpoint('center'),
1262
- e.switch().withEndpoint('right'),
1263
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
1264
- e
1265
- .enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
1266
- .withDescription('Decoupled mode for center button')
1267
- .withEndpoint('center'),
1268
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
1269
- e.power().withAccess(ea.STATE),
1270
- e.power_outage_memory(),
1271
- e.led_disabled_night(),
1272
- e.voltage(),
1273
- e.energy(),
1274
- e.device_temperature().withAccess(ea.STATE),
1275
- e.flip_indicator_light(),
1276
- e.action([
1277
- 'single_left',
1278
- 'double_left',
1279
- 'single_center',
1280
- 'double_center',
1281
- 'single_right',
1282
- 'double_right',
1283
- 'single_left_center',
1284
- 'double_left_center',
1285
- 'single_left_right',
1286
- 'double_left_right',
1287
- 'single_center_right',
1288
- 'double_center_right',
1289
- 'single_all',
1290
- 'double_all',
1291
- ]),
1292
- ],
1293
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_specific, lumi.fromZigbee.lumi_action_multistate],
1294
- toZigbee: [
1295
- toZigbee_1.default.on_off,
1296
- lumi.toZigbee.lumi_switch_operation_mode_opple,
1297
- lumi.toZigbee.lumi_switch_power_outage_memory,
1298
- lumi.toZigbee.lumi_led_disabled_night,
1299
- lumi.toZigbee.lumi_flip_indicator_light,
1300
- ],
1301
- meta: { multiEndpoint: true },
1302
- endpoint: (device) => {
1303
- return { left: 1, center: 2, right: 3 };
1304
- },
1305
- configure: async (device, coordinatorEndpoint) => {
1306
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
1307
- },
1308
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
1309
- },
1310
- {
1311
- zigbeeModel: ['lumi.switch.b1nacn02'],
1312
- model: 'QBKG23LM',
1313
- vendor: 'Aqara',
1314
- description: 'Smart wall switch D1 (with neutral, single rocker)',
1315
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_action_multistate],
1316
- toZigbee: [toZigbee_1.default.on_off, lumi.toZigbee.lumi_power, lumi.toZigbee.lumi_switch_operation_mode_basic],
1317
- endpoint: (device) => {
1318
- return { system: 1 };
1319
- },
1320
- exposes: [
1321
- e.switch(),
1322
- e.power().withAccess(ea.STATE_GET),
1323
- e.energy(),
1324
- e.device_temperature().withAccess(ea.STATE),
1325
- e.voltage(),
1326
- e.action(['single', 'release']),
1327
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode'),
1328
- ],
1329
- configure: async (device, coordinatorEndpoint) => {
1330
- device.type = 'Router';
1331
- device.powerSource = 'Mains (single phase)';
1332
- device.save();
1333
- },
1334
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
1335
- },
1336
- {
1337
- zigbeeModel: ['lumi.switch.b2nacn02'],
1338
- model: 'QBKG24LM',
1339
- vendor: 'Aqara',
1340
- description: 'Smart wall switch D1 (with neutral, double rocker)',
1341
- fromZigbee: [
1342
- fromZigbee_1.default.on_off,
1343
- lumi.fromZigbee.lumi_power,
1344
- lumi.fromZigbee.lumi_action_multistate,
1345
- lumi.fromZigbee.lumi_operation_mode_basic,
1346
- lumi.fromZigbee.lumi_specific,
1347
- lumi.fromZigbee.lumi_basic,
1348
- ],
1349
- toZigbee: [toZigbee_1.default.on_off, lumi.toZigbee.lumi_power, lumi.toZigbee.lumi_switch_operation_mode_basic],
1350
- meta: { multiEndpoint: true, multiEndpointSkip: ['power', 'energy'] },
1351
- endpoint: (device) => {
1352
- return { left: 1, right: 2, system: 1 };
1353
- },
1354
- exposes: [
1355
- e.switch().withEndpoint('left'),
1356
- e.switch().withEndpoint('right'),
1357
- e.energy(),
1358
- e.power().withAccess(ea.STATE_GET),
1359
- e.action(['hold_left', 'single_left', 'double_left', 'single_right', 'double_right', 'single_both', 'double_both']),
1360
- e
1361
- .enum('operation_mode', ea.ALL, ['control_left_relay', 'decoupled'])
1362
- .withDescription('Decoupled mode for left button')
1363
- .withEndpoint('left'),
1364
- e
1365
- .enum('operation_mode', ea.ALL, ['control_right_relay', 'decoupled'])
1366
- .withDescription('Decoupled mode for right button')
1367
- .withEndpoint('right'),
1368
- ],
1369
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
1370
- },
1371
- {
1372
- zigbeeModel: ['lumi.switch.b1lacn01'],
1373
- model: 'QBKG17LM',
1374
- vendor: 'Aqara',
1375
- description: 'Smart wall switch T1 (no neutral, single rocker)',
1376
- extend: [
1377
- lumiZigbeeOTA(),
1378
- lumiOnOff({ powerOutageMemory: 'binary', operationMode: true }),
1379
- lumiLedDisabledNight(),
1380
- lumiFlipIndicatorLight(),
1381
- lumiAction({ actionLookup: { single: 1, double: 2 } }),
1382
- lumiPreventReset(),
1383
- ],
1384
- },
1385
- {
1386
- zigbeeModel: ['lumi.switch.b2lacn01'],
1387
- model: 'QBKG18LM',
1388
- vendor: 'Aqara',
1389
- description: 'Smart wall switch T1 (no neutral, double rocker)',
1390
- extend: [
1391
- lumiZigbeeOTA(),
1392
- m.deviceEndpoints({ endpoints: { left: 1, right: 2 } }),
1393
- lumiOnOff({ powerOutageMemory: 'binary', operationMode: true, endpointNames: ['left', 'right'] }),
1394
- lumiLedDisabledNight(),
1395
- lumiFlipIndicatorLight(),
1396
- lumiAction({ actionLookup: { single: 1, double: 2 }, buttonLookup: { left: 41, right: 42, both: 51 } }),
1397
- lumiPreventReset(),
1398
- ],
1399
- },
1400
- {
1401
- zigbeeModel: ['lumi.switch.b1nacn01'],
1402
- model: 'QBKG19LM',
1403
- vendor: 'Aqara',
1404
- description: 'Smart wall switch T1 (with neutral, single rocker)',
1405
- extend: [
1406
- lumiZigbeeOTA(),
1407
- lumiOnOff({ powerOutageMemory: 'binary', operationMode: true }),
1408
- lumiLedDisabledNight(),
1409
- lumiFlipIndicatorLight(),
1410
- lumiAction({ actionLookup: { single: 1, double: 2 } }),
1411
- lumiElectricityMeter(),
1412
- lumiPower(),
1413
- lumiPreventReset(),
1414
- ],
1415
- },
1416
- {
1417
- zigbeeModel: ['lumi.switch.b2nacn01'],
1418
- model: 'QBKG20LM',
1419
- vendor: 'Aqara',
1420
- description: 'Smart wall switch T1 (with neutral, double rocker)',
1421
- extend: [
1422
- m.forceDeviceType({ type: 'Router' }),
1423
- m.forcePowerSource({ powerSource: 'Mains (single phase)' }),
1424
- lumiZigbeeOTA(),
1425
- m.deviceEndpoints({ endpoints: { left: 1, right: 2 } }),
1426
- lumiOnOff({ powerOutageMemory: 'binary', operationMode: true, endpointNames: ['left', 'right'] }),
1427
- lumiLedDisabledNight(),
1428
- lumiFlipIndicatorLight(),
1429
- lumiAction({ actionLookup: { single: 1, double: 2 }, buttonLookup: { left: 41, right: 42, both: 51 } }),
1430
- lumiElectricityMeter(),
1431
- lumiPower(),
1432
- lumiPreventReset(),
1433
- ],
1434
- },
1435
- {
1436
- zigbeeModel: ['lumi.switch.b3l01'],
1437
- model: 'QBKG33LM',
1438
- vendor: 'Aqara',
1439
- description: 'Smart wall switch T1 (no neutral, triple rocker)',
1440
- extend: [
1441
- lumiZigbeeOTA(),
1442
- m.deviceEndpoints({ endpoints: { left: 1, center: 2, right: 3 } }),
1443
- lumiOnOff({ powerOutageMemory: 'binary', operationMode: true, endpointNames: ['left', 'center', 'right'] }),
1444
- lumiLedDisabledNight(),
1445
- lumiFlipIndicatorLight(),
1446
- lumiAction({
1447
- actionLookup: { single: 1, double: 2 },
1448
- buttonLookup: {
1449
- left: 41,
1450
- center: 42,
1451
- right: 43,
1452
- left_center: 51,
1453
- left_right: 52,
1454
- center_right: 53,
1455
- all: 61,
1456
- },
1457
- }),
1458
- lumiPreventReset(),
1459
- ],
1460
- },
1461
- {
1462
- zigbeeModel: ['lumi.switch.b3n01'],
1463
- model: 'QBKG34LM',
1464
- vendor: 'Aqara',
1465
- description: 'Smart wall switch T1 (with neutral, triple rocker)',
1466
- extend: [
1467
- lumiZigbeeOTA(),
1468
- m.deviceEndpoints({ endpoints: { left: 1, center: 2, right: 3 } }),
1469
- lumiOnOff({ powerOutageMemory: 'binary', operationMode: true, endpointNames: ['left', 'center', 'right'] }),
1470
- lumiLedDisabledNight(),
1471
- lumiFlipIndicatorLight(),
1472
- lumiAction({
1473
- actionLookup: { single: 1, double: 2 },
1474
- buttonLookup: {
1475
- left: 41,
1476
- center: 42,
1477
- right: 43,
1478
- left_center: 51,
1479
- left_right: 52,
1480
- center_right: 53,
1481
- all: 61,
1482
- },
1483
- }),
1484
- lumiElectricityMeter(),
1485
- lumiPower(),
1486
- lumiPreventReset(),
1487
- ],
1488
- },
1489
- {
1490
- zigbeeModel: ['lumi.sens', 'lumi.sensor_ht'],
1491
- model: 'WSDCGQ01LM',
1492
- vendor: 'Xiaomi',
1493
- whiteLabel: [
1494
- { vendor: 'Xiaomi', model: 'YTC4042GL' },
1495
- { vendor: 'Xiaomi', model: 'YTC4007CN' },
1496
- { vendor: 'Xiaomi', model: 'YTC4018CN' },
1497
- ],
1498
- description: 'Mi temperature and humidity sensor',
1499
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1500
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_temperature, fromZigbee_1.default.humidity],
1501
- toZigbee: [],
1502
- exposes: [e.battery(), e.temperature(), e.humidity(), e.battery_voltage()],
1503
- extend: [m.quirkCheckinInterval('1_HOUR')],
1504
- },
1505
- {
1506
- zigbeeModel: ['lumi.weather'],
1507
- model: 'WSDCGQ11LM',
1508
- vendor: 'Aqara',
1509
- description: 'Temperature and humidity sensor',
1510
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1511
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_temperature, fromZigbee_1.default.humidity, fromZigbee_1.default.pressure],
1512
- toZigbee: [],
1513
- exposes: [e.battery(), e.temperature(), e.humidity(), e.pressure(), e.battery_voltage()],
1514
- configure: async (device, coordinatorEndpoint) => {
1515
- device.powerSource = 'Battery';
1516
- device.save();
1517
- },
1518
- extend: [m.quirkCheckinInterval('1_HOUR')],
1519
- },
1520
- {
1521
- zigbeeModel: ['lumi.sensor_ht.agl02'],
1522
- model: 'WSDCGQ12LM',
1523
- vendor: 'Aqara',
1524
- description: 'Temperature and humidity sensor T1',
1525
- whiteLabel: [
1526
- { vendor: 'Aqara', model: 'TH-S02D' },
1527
- { vendor: 'Yandex', model: 'YNDX-00523' },
1528
- ],
1529
- fromZigbee: [lumi.fromZigbee.lumi_specific, fromZigbee_1.default.temperature, fromZigbee_1.default.humidity, lumi.fromZigbee.lumi_pressure, fromZigbee_1.default.battery],
1530
- toZigbee: [],
1531
- exposes: [e.temperature(), e.humidity(), e.pressure(), e.device_temperature(), e.battery(), e.battery_voltage(), e.power_outage_count(false)],
1532
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1533
- configure: async (device, coordinatorEndpoint) => {
1534
- const endpoint = device.getEndpoint(1);
1535
- const binds = ['msTemperatureMeasurement', 'msRelativeHumidity', 'msPressureMeasurement'];
1536
- await reporting.bind(endpoint, coordinatorEndpoint, binds);
1537
- await endpoint.read('genPowerCfg', ['batteryVoltage']);
1538
- },
1539
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
1540
- },
1541
- {
1542
- zigbeeModel: ['lumi.sensor_motion'],
1543
- model: 'RTCGQ01LM',
1544
- vendor: 'Xiaomi',
1545
- whiteLabel: [
1546
- { vendor: 'Xiaomi', model: 'YTC4041GL' },
1547
- { vendor: 'Xiaomi', model: 'YTC4004CN' },
1548
- { vendor: 'Xiaomi', model: 'YTC4016CN' },
1549
- { vendor: 'Xiaomi', model: 'ZHTZ02LM' },
1550
- ],
1551
- description: 'Mi motion sensor',
1552
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1553
- fromZigbee: [lumi.fromZigbee.lumi_basic, fromZigbee_1.default.occupancy_with_timeout],
1554
- toZigbee: [],
1555
- exposes: [e.battery(), e.occupancy(), e.battery_voltage(), e.power_outage_count(false)],
1556
- extend: [m.quirkCheckinInterval('1_HOUR')],
1557
- },
1558
- {
1559
- zigbeeModel: ['lumi.sensor_motion.aq2'],
1560
- model: 'RTCGQ11LM',
1561
- vendor: 'Aqara',
1562
- description: 'Motion sensor',
1563
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1564
- fromZigbee: [lumi.fromZigbee.lumi_basic, fromZigbee_1.default.occupancy_with_timeout, lumi.fromZigbee.lumi_illuminance],
1565
- toZigbee: [],
1566
- exposes: [e.battery(), e.occupancy(), e.device_temperature(), e.battery_voltage(), e.illuminance(), e.power_outage_count(false)],
1567
- extend: [m.quirkCheckinInterval('1_HOUR')],
1568
- },
1569
- {
1570
- zigbeeModel: ['lumi.motion.agl02'],
1571
- model: 'RTCGQ12LM',
1572
- vendor: 'Aqara',
1573
- description: 'Motion sensor T1',
1574
- whiteLabel: [{ vendor: 'Yandex', model: 'YNDX-00522' }],
1575
- fromZigbee: [lumi.fromZigbee.lumi_occupancy_illuminance, lumi.fromZigbee.lumi_specific, fromZigbee_1.default.battery],
1576
- toZigbee: [lumi.toZigbee.lumi_detection_interval],
1577
- exposes: [
1578
- e.occupancy(),
1579
- e.illuminance(),
1580
- e
1581
- .numeric('detection_interval', ea.ALL)
1582
- .withValueMin(2)
1583
- .withValueMax(65535)
1584
- .withUnit('s')
1585
- .withDescription('Time interval for detecting actions'),
1586
- e.device_temperature(),
1587
- e.battery(),
1588
- e.battery_voltage(),
1589
- e.power_outage_count(false),
1590
- ],
1591
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1592
- configure: async (device, coordinatorEndpoint) => {
1593
- const endpoint = device.getEndpoint(1);
1594
- await endpoint.read('genPowerCfg', ['batteryVoltage']);
1595
- await endpoint.read('manuSpecificLumi', [0x0102], { manufacturerCode: manufacturerCode });
1596
- },
1597
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
1598
- },
1599
- {
1600
- zigbeeModel: ['lumi.motion.agl04'],
1601
- model: 'RTCGQ13LM',
1602
- vendor: 'Aqara',
1603
- description: 'High precision motion sensor',
1604
- fromZigbee: [lumi.fromZigbee.lumi_occupancy, lumi.fromZigbee.lumi_specific, fromZigbee_1.default.battery],
1605
- toZigbee: [lumi.toZigbee.lumi_detection_interval, lumi.toZigbee.lumi_motion_sensitivity],
1606
- exposes: [
1607
- e.occupancy(),
1608
- e.enum('motion_sensitivity', ea.ALL, ['low', 'medium', 'high']),
1609
- e
1610
- .numeric('detection_interval', ea.ALL)
1611
- .withValueMin(2)
1612
- .withValueMax(65535)
1613
- .withUnit('s')
1614
- .withDescription('Time interval for detecting actions'),
1615
- e.device_temperature(),
1616
- e.battery(),
1617
- e.battery_voltage(),
1618
- e.power_outage_count(false),
1619
- ],
1620
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1621
- configure: async (device, coordinatorEndpoint) => {
1622
- const endpoint = device.getEndpoint(1);
1623
- await endpoint.read('genPowerCfg', ['batteryVoltage']);
1624
- await endpoint.read('manuSpecificLumi', [0x0102], { manufacturerCode: manufacturerCode });
1625
- await endpoint.read('manuSpecificLumi', [0x010c], { manufacturerCode: manufacturerCode });
1626
- },
1627
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
1628
- },
1629
- {
1630
- zigbeeModel: ['lumi.motion.ac02'],
1631
- model: 'RTCGQ14LM',
1632
- vendor: 'Aqara',
1633
- whiteLabel: [{ vendor: 'Aqara', model: 'MS-S02' }],
1634
- description: 'Motion sensor P1',
1635
- fromZigbee: [lumi.fromZigbee.lumi_occupancy_illuminance, lumi.fromZigbee.lumi_specific, fromZigbee_1.default.battery],
1636
- toZigbee: [lumi.toZigbee.lumi_detection_interval, lumi.toZigbee.lumi_motion_sensitivity, lumi.toZigbee.lumi_trigger_indicator],
1637
- exposes: [
1638
- e.occupancy(),
1639
- e.illuminance(),
1640
- e
1641
- .motion_sensitivity_select(['low', 'medium', 'high'])
1642
- .withDescription('Select motion sensitivity to use. Press pairing button right before changing this otherwise it will fail.'),
1643
- e
1644
- .detection_interval()
1645
- .withDescription('Time interval between action detection. Press pairing button right before changing this otherwise it will fail.'),
1646
- e
1647
- .trigger_indicator()
1648
- .withDescription('When this option is enabled then ' +
1649
- 'blue LED will blink once when motion is detected. ' +
1650
- 'Press pairing button right before changing this otherwise it will fail.'),
1651
- e.device_temperature(),
1652
- e.battery(),
1653
- e.battery_voltage(),
1654
- ],
1655
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1656
- configure: async (device, coordinatorEndpoint) => {
1657
- const endpoint = device.getEndpoint(1);
1658
- await endpoint.read('genPowerCfg', ['batteryVoltage']);
1659
- await endpoint.read('manuSpecificLumi', [0x0102], { manufacturerCode: manufacturerCode });
1660
- await endpoint.read('manuSpecificLumi', [0x010c], { manufacturerCode: manufacturerCode });
1661
- await endpoint.read('manuSpecificLumi', [0x0152], { manufacturerCode: manufacturerCode });
1662
- },
1663
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
1664
- },
1665
- {
1666
- zigbeeModel: ['lumi.motion.acn001'],
1667
- model: 'RTCGQ15LM',
1668
- vendor: 'Aqara',
1669
- description: 'Motion sensor E1',
1670
- fromZigbee: [lumi.fromZigbee.lumi_occupancy_illuminance, lumi.fromZigbee.lumi_specific, fromZigbee_1.default.battery],
1671
- toZigbee: [lumi.toZigbee.lumi_detection_interval],
1672
- exposes: [
1673
- e.occupancy(),
1674
- e.illuminance(),
1675
- e
1676
- .numeric('detection_interval', ea.ALL)
1677
- .withValueMin(2)
1678
- .withValueMax(65535)
1679
- .withUnit('s')
1680
- .withDescription('Time interval for detecting actions'),
1681
- e.device_temperature(),
1682
- e.battery(),
1683
- e.battery_voltage(),
1684
- e.power_outage_count(false),
1685
- ],
1686
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1687
- configure: async (device, coordinatorEndpoint) => {
1688
- const endpoint = device.getEndpoint(1);
1689
- await endpoint.read('genPowerCfg', ['batteryVoltage']);
1690
- await endpoint.read('manuSpecificLumi', [0x0102], { manufacturerCode: manufacturerCode });
1691
- },
1692
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
1693
- },
1694
- {
1695
- zigbeeModel: ['lumi.motion.ac01'],
1696
- model: 'RTCZCGQ11LM',
1697
- vendor: 'Aqara',
1698
- description: 'Presence sensor FP1',
1699
- fromZigbee: [lumi.fromZigbee.lumi_specific, lumi.fromZigbee.lumi_presence_region_events],
1700
- toZigbee: [
1701
- lumi.toZigbee.lumi_presence,
1702
- lumi.toZigbee.lumi_monitoring_mode,
1703
- lumi.toZigbee.lumi_approach_distance,
1704
- lumi.toZigbee.lumi_motion_sensitivity,
1705
- lumi.toZigbee.lumi_reset_nopresence_status,
1706
- lumi.toZigbee.lumi_presence_region_upsert,
1707
- lumi.toZigbee.lumi_presence_region_delete,
1708
- ],
1709
- exposes: [
1710
- e.presence().withAccess(ea.STATE_GET),
1711
- e.device_temperature(),
1712
- e.power_outage_count(),
1713
- e
1714
- .enum('presence_event', ea.STATE, ['enter', 'leave', 'left_enter', 'right_leave', 'right_enter', 'left_leave', 'approach', 'away'])
1715
- .withDescription('Presence events: "enter", "leave", "left_enter", "right_leave", "right_enter", "left_leave", "approach", "away"'),
1716
- e
1717
- .enum('monitoring_mode', ea.ALL, ['undirected', 'left_right'])
1718
- .withDescription('Monitoring mode with or without considering right and left sides'),
1719
- e.enum('approach_distance', ea.ALL, ['far', 'medium', 'near']).withDescription('The distance at which the sensor detects approaching'),
1720
- e
1721
- .enum('motion_sensitivity', ea.ALL, ['low', 'medium', 'high'])
1722
- .withDescription('Different sensitivities means different static human body recognition rate and response speed of occupied'),
1723
- e.enum('reset_nopresence_status', ea.SET, ['']).withDescription('Reset the status of no presence'),
1724
- e
1725
- .enum('action', ea.STATE, ['region_*_enter', 'region_*_leave', 'region_*_occupied', 'region_*_unoccupied'])
1726
- .withDescription('Most recent region event. Event template is "region_<REGION_ID>_<EVENT_TYPE>", ' +
1727
- 'where <REGION_ID> is region number (1-10), <EVENT_TYPE> is one of "enter", "leave", "occupied", "unoccupied". ' +
1728
- '"enter" / "leave" events are usually triggered first, followed by "occupied" / "unoccupied" after a couple of seconds.'),
1729
- e
1730
- .composite('region_upsert', 'region_upsert', ea.SET)
1731
- .withDescription('Definition of a new region to be added (or replace existing one). ' +
1732
- 'Creating or modifying a region requires you to define which zones of a 7x4 detection grid ' +
1733
- 'should be active for that zone. Regions can overlap, meaning that a zone can be defined ' +
1734
- 'in more than one region (eg. "zone x = 1 & y = 1" can be added to region 1 & 2). ' +
1735
- '"Zone x = 1 & y = 1" is the nearest zone on the right (from sensor\'s perspective, along the detection path).')
1736
- .withFeature(e
1737
- .numeric('region_id', ea.SET)
1738
- .withValueMin(lumi.presence.constants.region_config_regionId_min)
1739
- .withValueMax(lumi.presence.constants.region_config_regionId_max))
1740
- .withFeature(e
1741
- .list('zones', ea.SET, e
1742
- .composite('Zone position', 'zone_position', ea.SET)
1743
- .withFeature(e
1744
- .numeric('x', ea.SET)
1745
- .withValueMin(lumi.presence.constants.region_config_zoneX_min)
1746
- .withValueMax(lumi.presence.constants.region_config_zoneX_max))
1747
- .withFeature(e
1748
- .numeric('y', ea.SET)
1749
- .withValueMin(lumi.presence.constants.region_config_zoneY_min)
1750
- .withValueMax(lumi.presence.constants.region_config_zoneY_max)))
1751
- .withDescription('list of dictionaries in the format {"x": 1, "y": 1}, {"x": 2, "y": 1}')),
1752
- e
1753
- .composite('region_delete', 'region_delete', ea.SET)
1754
- .withDescription('Region definition to be deleted from the device.')
1755
- .withFeature(e
1756
- .numeric('region_id', ea.SET)
1757
- .withValueMin(lumi.presence.constants.region_config_regionId_min)
1758
- .withValueMax(lumi.presence.constants.region_config_regionId_max)),
1759
- ],
1760
- configure: async (device, coordinatorEndpoint) => {
1761
- device.softwareBuildID = `${device.applicationVersion}`;
1762
- device.save();
1763
- const endpoint = device.getEndpoint(1);
1764
- await endpoint.read('manuSpecificLumi', [0x010c], { manufacturerCode: manufacturerCode });
1765
- await endpoint.read('manuSpecificLumi', [0x0142], { manufacturerCode: manufacturerCode });
1766
- await endpoint.read('manuSpecificLumi', [0x0144], { manufacturerCode: manufacturerCode });
1767
- await endpoint.read('manuSpecificLumi', [0x0146], { manufacturerCode: manufacturerCode });
1768
- },
1769
- extend: [lumiZigbeeOTA()],
1770
- },
1771
- {
1772
- zigbeeModel: ['lumi.sensor_occupy.agl1'],
1773
- model: 'FP1E',
1774
- vendor: 'Aqara',
1775
- description: 'Presence sensor',
1776
- fromZigbee: [lumi.fromZigbee.lumi_specific],
1777
- toZigbee: [lumi.toZigbee.lumi_motion_sensitivity],
1778
- exposes: [
1779
- e.device_temperature(),
1780
- e.power_outage_count(),
1781
- e.motion_sensitivity_select(['low', 'medium', 'high']).withDescription('Select motion sensitivity to use.'),
1782
- ],
1783
- configure: async (device, coordinatorEndpoint) => {
1784
- // Retrieve motion sensitivity value
1785
- const endpoint = device.getEndpoint(1);
1786
- await endpoint.read('manuSpecificLumi', [0x010c], { manufacturerCode: manufacturerCode });
1787
- },
1788
- extend: [
1789
- lumiZigbeeOTA(),
1790
- lumi.lumiModernExtend.fp1ePresence(),
1791
- lumi.lumiModernExtend.fp1eMovement(),
1792
- lumi.lumiModernExtend.fp1eTargetDistance(),
1793
- lumi.lumiModernExtend.fp1eDetectionRange(),
1794
- lumi.lumiModernExtend.fp1eSpatialLearning(),
1795
- lumi.lumiModernExtend.fp1eRestartDevice(),
1796
- m.identify(),
1797
- ],
1798
- },
1799
- {
1800
- zigbeeModel: ['lumi.sensor_magnet'],
1801
- model: 'MCCGQ01LM',
1802
- vendor: 'Xiaomi',
1803
- whiteLabel: [
1804
- { vendor: 'Xiaomi', model: 'YTC4039GL' },
1805
- { vendor: 'Xiaomi', model: 'YTC4005CN' },
1806
- { vendor: 'Xiaomi', model: 'YTC4015CN' },
1807
- { vendor: 'Xiaomi', model: 'ZHTZ02LM' },
1808
- ],
1809
- description: 'Mi door and window sensor',
1810
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1811
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_contact],
1812
- toZigbee: [],
1813
- exposes: [e.battery(), e.contact(), e.battery_voltage(), e.power_outage_count(false)],
1814
- extend: [m.quirkCheckinInterval('1_HOUR')],
1815
- },
1816
- {
1817
- zigbeeModel: ['lumi.sensor_magnet.aq2'],
1818
- model: 'MCCGQ11LM',
1819
- vendor: 'Aqara',
1820
- description: 'Door and window sensor',
1821
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1822
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_contact],
1823
- toZigbee: [],
1824
- exposes: [e.battery(), e.contact(), e.device_temperature(), e.battery_voltage(), e.power_outage_count(false), e.trigger_count()],
1825
- extend: [m.quirkCheckinInterval('1_HOUR')],
1826
- configure: async (device) => {
1827
- device.powerSource = 'Battery';
1828
- device.save();
1829
- },
1830
- },
1831
- {
1832
- zigbeeModel: ['lumi.sensor_wleak.aq1'],
1833
- model: 'SJCGQ11LM',
1834
- vendor: 'Aqara',
1835
- description: 'Water leak sensor',
1836
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1837
- fromZigbee: [lumi.fromZigbee.lumi_basic, fromZigbee_1.default.ias_water_leak_alarm_1],
1838
- toZigbee: [],
1839
- exposes: [
1840
- e.battery(),
1841
- e.water_leak(),
1842
- e.battery_low(),
1843
- e.battery_voltage(),
1844
- e.device_temperature(),
1845
- e.power_outage_count(false),
1846
- e.trigger_count(),
1847
- ],
1848
- extend: [m.quirkCheckinInterval('1_HOUR')],
1849
- },
1850
- {
1851
- zigbeeModel: ['lumi.flood.agl02'],
1852
- model: 'SJCGQ12LM',
1853
- vendor: 'Aqara',
1854
- description: 'Water leak sensor T1',
1855
- whiteLabel: [
1856
- { vendor: 'Aqara', model: 'WL-S02D' },
1857
- { vendor: 'Yandex', model: 'YNDX-00521' },
1858
- ],
1859
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1860
- fromZigbee: [lumi.fromZigbee.lumi_basic, fromZigbee_1.default.ias_water_leak_alarm_1, lumi.fromZigbee.lumi_specific],
1861
- toZigbee: [],
1862
- exposes: [e.battery(), e.water_leak(), e.battery_low(), e.tamper(), e.battery_voltage()],
1863
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
1864
- },
1865
- {
1866
- zigbeeModel: ['lumi.sensor_cube', 'lumi.sensor_cube.aqgl01'],
1867
- model: 'MFKZQ01LM',
1868
- vendor: 'Aqara',
1869
- description: 'Cube',
1870
- whiteLabel: [{ vendor: 'Xiaomi', model: 'MFKZQ01LM' }],
1871
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
1872
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_action_analog],
1873
- exposes: [
1874
- e.battery(),
1875
- e.battery_voltage(),
1876
- e.angle('action_angle'),
1877
- e.device_temperature(),
1878
- e.power_outage_count(false),
1879
- e.cube_side('action_from_side'),
1880
- e.cube_side('action_side'),
1881
- e.cube_side('action_to_side'),
1882
- e.cube_side('side'),
1883
- e.action(['shake', 'throw', 'wakeup', 'fall', 'tap', 'slide', 'flip180', 'flip90', 'rotate_left', 'rotate_right']),
1884
- ],
1885
- toZigbee: [],
1886
- extend: [m.quirkCheckinInterval('1_HOUR')],
1887
- },
1888
- {
1889
- zigbeeModel: ['lumi.plug'],
1890
- model: 'ZNCZ02LM',
1891
- description: 'Mi smart plug',
1892
- vendor: 'Xiaomi',
1893
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_basic, fromZigbee_1.default.ignore_occupancy_report, fromZigbee_1.default.ignore_illuminance_report],
1894
- toZigbee: [toZigbee_1.default.on_off, lumi.toZigbee.lumi_switch_power_outage_memory, lumi.toZigbee.lumi_power],
1895
- exposes: [e.switch(), e.power().withAccess(ea.STATE_GET), e.energy(), e.device_temperature(), e.power_outage_memory()],
1896
- extend: [lumiZigbeeOTA()],
1897
- },
1898
- {
1899
- zigbeeModel: ['lumi.plug.mitw01'],
1900
- model: 'ZNCZ03LM',
1901
- description: 'Mi smart plug TW',
1902
- vendor: 'Xiaomi',
1903
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_basic, fromZigbee_1.default.ignore_occupancy_report, fromZigbee_1.default.ignore_illuminance_report],
1904
- toZigbee: [toZigbee_1.default.on_off, lumi.toZigbee.lumi_power],
1905
- exposes: [e.switch(), e.power().withAccess(ea.STATE_GET), e.energy(), e.device_temperature().withAccess(ea.STATE), e.voltage()],
1906
- },
1907
- {
1908
- zigbeeModel: ['lumi.plug.mmeu01'],
1909
- model: 'ZNCZ04LM',
1910
- description: 'Mi smart plug EU',
1911
- vendor: 'Xiaomi',
1912
- fromZigbee: [
1913
- fromZigbee_1.default.on_off,
1914
- lumi.fromZigbee.lumi_power,
1915
- lumi.fromZigbee.lumi_specific,
1916
- fromZigbee_1.default.ignore_occupancy_report,
1917
- fromZigbee_1.default.ignore_illuminance_report,
1918
- fromZigbee_1.default.ignore_time_read,
1919
- ],
1920
- toZigbee: [
1921
- toZigbee_1.default.on_off,
1922
- lumi.toZigbee.lumi_power,
1923
- lumi.toZigbee.lumi_switch_power_outage_memory,
1924
- lumi.toZigbee.lumi_auto_off,
1925
- lumi.toZigbee.lumi_led_disabled_night,
1926
- lumi.toZigbee.lumi_overload_protection,
1927
- ],
1928
- exposes: [
1929
- e.switch(),
1930
- e.power().withAccess(ea.STATE_GET),
1931
- e.energy(),
1932
- e.device_temperature().withAccess(ea.STATE),
1933
- e.voltage(),
1934
- e.current(),
1935
- e.consumer_connected(),
1936
- e.led_disabled_night(),
1937
- e.power_outage_memory(),
1938
- e.auto_off(20),
1939
- e.overload_protection(100, 2300),
1940
- ],
1941
- extend: [lumiZigbeeOTA()],
1942
- },
1943
- {
1944
- zigbeeModel: ['lumi.plug.maus01'],
1945
- model: 'ZNCZ12LM',
1946
- description: 'Smart plug US',
1947
- vendor: 'Aqara',
1948
- fromZigbee: [
1949
- fromZigbee_1.default.on_off,
1950
- lumi.fromZigbee.lumi_power,
1951
- lumi.fromZigbee.lumi_specific,
1952
- lumi.fromZigbee.lumi_basic,
1953
- fromZigbee_1.default.ignore_occupancy_report,
1954
- fromZigbee_1.default.ignore_illuminance_report,
1955
- ],
1956
- toZigbee: [
1957
- toZigbee_1.default.on_off,
1958
- lumi.toZigbee.lumi_power,
1959
- lumi.toZigbee.lumi_switch_power_outage_memory,
1960
- lumi.toZigbee.lumi_auto_off,
1961
- lumi.toZigbee.lumi_led_disabled_night,
1962
- lumi.toZigbee.lumi_overload_protection,
1963
- ],
1964
- exposes: [
1965
- e.switch(),
1966
- e.power().withAccess(ea.STATE_GET),
1967
- e.energy(),
1968
- e.device_temperature().withAccess(ea.STATE),
1969
- e.voltage(),
1970
- e.current(),
1971
- e.consumer_connected(),
1972
- e.led_disabled_night(),
1973
- e.power_outage_memory(),
1974
- e.auto_off(20),
1975
- e.overload_protection(100, 2300),
1976
- ],
1977
- extend: [lumiZigbeeOTA()],
1978
- },
1979
- {
1980
- zigbeeModel: ['lumi.plug.maeu01'],
1981
- model: 'SP-EUC01',
1982
- description: 'Smart plug EU',
1983
- vendor: 'Aqara',
1984
- extend: [m.forceDeviceType({ type: 'Router' }), lumiZigbeeOTA()],
1985
- fromZigbee: [
1986
- fromZigbee_1.default.on_off,
1987
- lumi.fromZigbee.lumi_basic,
1988
- fromZigbee_1.default.electrical_measurement,
1989
- fromZigbee_1.default.metering,
1990
- lumi.fromZigbee.lumi_specific,
1991
- lumi.fromZigbee.lumi_power,
1992
- fromZigbee_1.default.device_temperature,
1993
- ],
1994
- toZigbee: [
1995
- toZigbee_1.default.on_off,
1996
- lumi.toZigbee.lumi_switch_power_outage_memory,
1997
- lumi.toZigbee.lumi_led_disabled_night,
1998
- lumi.toZigbee.lumi_overload_protection,
1999
- lumi.toZigbee.lumi_auto_off,
2000
- lumi.toZigbee.lumi_socket_button_lock,
2001
- ],
2002
- configure: async (device, coordinatorEndpoint) => {
2003
- const endpoint = device.getEndpoint(1);
2004
- await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
2005
- await reporting.onOff(endpoint);
2006
- // Not all plugs support electricity measurements:
2007
- // - https://github.com/Koenkk/zigbee2mqtt/issues/6861
2008
- // - https://github.com/Koenkk/zigbee-herdsman-converters/issues/1050#issuecomment-673111969
2009
- // Voltage and current are not supported:
2010
- // - https://github.com/Koenkk/zigbee-herdsman-converters/issues/1050
2011
- try {
2012
- await reporting.bind(endpoint, coordinatorEndpoint, ['haElectricalMeasurement']);
2013
- await endpoint.read('haElectricalMeasurement', ['acPowerMultiplier', 'acPowerDivisor']);
2014
- }
2015
- catch (e) {
2016
- logger_1.logger.warning(`SP-EUC01 failed to setup electricity measurements (${e.message})`, NS);
2017
- logger_1.logger.debug(e.stack, NS);
2018
- }
2019
- try {
2020
- await reporting.bind(endpoint, coordinatorEndpoint, ['seMetering']);
2021
- await reporting.readMeteringMultiplierDivisor(endpoint);
2022
- await reporting.currentSummDelivered(endpoint, { change: 0 });
2023
- }
2024
- catch (e) {
2025
- logger_1.logger.warning(`SP-EUC01 failed to setup metering (${e.message})`, NS);
2026
- logger_1.logger.debug(e.stack, NS);
2027
- }
2028
- },
2029
- onEvent: async (type, data, device) => {
2030
- const switchEndpoint = device.getEndpoint(1);
2031
- if (switchEndpoint == null) {
2032
- return;
2033
- }
2034
- // This device doesn't support temperature reporting.
2035
- // Therefore we read the temperature every 30 min.
2036
- if (type === 'stop') {
2037
- clearInterval(globalStore.getValue(device, 'interval'));
2038
- globalStore.clearValue(device, 'interval');
2039
- }
2040
- else if (!globalStore.hasValue(device, 'interval')) {
2041
- const interval = setInterval(async () => {
2042
- try {
2043
- await switchEndpoint.read('genDeviceTempCfg', ['currentTemperature']);
2044
- }
2045
- catch {
2046
- // Do nothing
2047
- }
2048
- }, 1800000);
2049
- globalStore.putValue(device, 'interval', interval);
2050
- }
2051
- },
2052
- exposes: [
2053
- e.switch(),
2054
- e.power(),
2055
- e.energy(),
2056
- e.power_outage_memory(),
2057
- e.voltage(),
2058
- e.current(),
2059
- e.device_temperature().withDescription('Device temperature (polled every 30 min)'),
2060
- e.consumer_connected(),
2061
- e.led_disabled_night(),
2062
- e.overload_protection(100, 2300),
2063
- e.auto_off(20),
2064
- e.button_lock(),
2065
- ],
2066
- },
2067
- {
2068
- zigbeeModel: ['lumi.plug.aq1'],
2069
- model: 'ZNCZ11LM',
2070
- vendor: 'Aqara',
2071
- description: 'Smart plug',
2072
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, fromZigbee_1.default.ignore_occupancy_report, lumi.fromZigbee.lumi_basic],
2073
- toZigbee: [
2074
- toZigbee_1.default.on_off,
2075
- lumi.toZigbee.lumi_power,
2076
- lumi.toZigbee.lumi_led_disabled_night,
2077
- lumi.toZigbee.lumi_switch_power_outage_memory,
2078
- lumi.toZigbee.lumi_auto_off,
2079
- ],
2080
- exposes: [
2081
- e.switch(),
2082
- e.power().withAccess(ea.STATE_GET),
2083
- e.energy(),
2084
- e.device_temperature(),
2085
- e.voltage(),
2086
- e.power_outage_memory(),
2087
- e.led_disabled_night(),
2088
- e.auto_off(30),
2089
- ],
2090
- extend: [m.customTimeResponse('2000_LOCAL')],
2091
- },
2092
- {
2093
- zigbeeModel: ['lumi.ctrl_86plug', 'lumi.ctrl_86plug.aq1'],
2094
- model: 'QBCZ11LM',
2095
- description: 'Smart wall outlet',
2096
- vendor: 'Aqara',
2097
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_basic],
2098
- toZigbee: [toZigbee_1.default.on_off, lumi.toZigbee.lumi_switch_power_outage_memory, lumi.toZigbee.lumi_power],
2099
- exposes: [
2100
- e.switch(),
2101
- e.power().withAccess(ea.STATE_GET),
2102
- e.energy(),
2103
- e.device_temperature().withAccess(ea.STATE),
2104
- e.voltage(),
2105
- e.power_outage_memory(),
2106
- ],
2107
- extend: [lumiZigbeeOTA()],
2108
- },
2109
- {
2110
- zigbeeModel: ['lumi.sensor_smoke'],
2111
- model: 'JTYJ-GD-01LM/BW',
2112
- description: 'Mijia Honeywell smoke detector',
2113
- vendor: 'Xiaomi',
2114
- whiteLabel: [{ vendor: 'Xiaomi', model: 'YTC4020RT' }],
2115
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
2116
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_smoke],
2117
- toZigbee: [lumi.toZigbee.lumi_sensitivity, lumi.toZigbee.lumi_selftest],
2118
- exposes: [
2119
- e.smoke(),
2120
- e.battery_low(),
2121
- e.tamper(),
2122
- e.battery(),
2123
- e.enum('sensitivity', ea.STATE_SET, ['low', 'medium', 'high']),
2124
- e.numeric('smoke_density', ea.STATE),
2125
- e.enum('selftest', ea.SET, ['']),
2126
- e.battery_voltage(),
2127
- e.binary('test', ea.STATE, true, false).withDescription('Test mode activated'),
2128
- e.device_temperature(),
2129
- e.power_outage_count(false),
2130
- ],
2131
- extend: [m.quirkCheckinInterval('1_HOUR')],
2132
- },
2133
- {
2134
- zigbeeModel: ['lumi.sensor_natgas'],
2135
- model: 'JTQJ-BF-01LM/BW',
2136
- vendor: 'Xiaomi',
2137
- whiteLabel: [{ vendor: 'Xiaomi', model: 'YTC4019RT' }],
2138
- description: 'Mijia Honeywell gas leak detector',
2139
- fromZigbee: [fromZigbee_1.default.ias_gas_alarm_1, lumi.fromZigbee.lumi_gas_sensitivity, lumi.fromZigbee.lumi_gas_density],
2140
- toZigbee: [lumi.toZigbee.lumi_sensitivity, lumi.toZigbee.lumi_selftest],
2141
- exposes: [
2142
- e.gas(),
2143
- e.tamper(),
2144
- e.enum('sensitivity', ea.STATE_SET, ['low', 'medium', 'high']),
2145
- e.numeric('gas_density', ea.STATE),
2146
- e.enum('selftest', ea.SET, ['']),
2147
- ],
2148
- configure: async (device, coordinatorEndpoint) => {
2149
- device.powerSource = 'Mains (single phase)';
2150
- device.type = 'Router';
2151
- device.save();
2152
- },
2153
- },
2154
- {
2155
- zigbeeModel: ['lumi.sensor_gas.acn02'],
2156
- model: 'JT-BZ-01AQ/A',
2157
- vendor: 'Aqara',
2158
- description: 'Smart natural gas detector',
2159
- whiteLabel: [{ vendor: 'Aqara', model: 'JT-BZ-03AQ/A' }],
2160
- fromZigbee: [lumi.fromZigbee.lumi_specific],
2161
- toZigbee: [
2162
- lumi.toZigbee.lumi_alarm,
2163
- lumi.toZigbee.lumi_density,
2164
- lumi.toZigbee.lumi_gas_sensitivity,
2165
- lumi.toZigbee.lumi_selftest,
2166
- lumi.toZigbee.lumi_buzzer,
2167
- lumi.toZigbee.lumi_buzzer_manual,
2168
- lumi.toZigbee.lumi_linkage_alarm,
2169
- lumi.toZigbee.lumi_state,
2170
- lumi.toZigbee.lumi_power_outage_count,
2171
- ],
2172
- exposes: [
2173
- e.gas().withAccess(ea.STATE_GET),
2174
- e.numeric('gas_density', ea.STATE_GET).withUnit('%LEL').withDescription('Value of gas concentration'),
2175
- e
2176
- .enum('gas_sensitivity', ea.ALL, ['10%LEL', '15%LEL'])
2177
- .withDescription('Gas concentration value at which an alarm is triggered ("10%LEL" is more sensitive than "15%LEL")'),
2178
- e
2179
- .enum('selftest', ea.SET, ['selftest'])
2180
- .withDescription('Starts the self-test process (checking the indicator light and buzzer work properly)'),
2181
- e.binary('test', ea.STATE, true, false).withDescription('Self-test in progress'),
2182
- e
2183
- .enum('buzzer', ea.SET, ['mute', 'alarm'])
2184
- .withDescription('The buzzer can be muted and alarmed manually. ' +
2185
- 'During a gas alarm, the buzzer can be manually muted for 10 minutes ("mute"), but cannot be unmuted manually ' +
2186
- 'before this timeout expires. The buzzer cannot be pre-muted, as this function only works during a gas alarm. ' +
2187
- 'During the absence of a gas alarm, the buzzer can be manually alarmed ("alarm") and disalarmed ("mute"), ' +
2188
- 'but for this "linkage_alarm" option must be enabled'),
2189
- e.binary('buzzer_manual_alarm', ea.STATE_GET, true, false).withDescription('Buzzer alarmed (manually)'),
2190
- e.binary('buzzer_manual_mute', ea.STATE_GET, true, false).withDescription('Buzzer muted (manually)'),
2191
- e
2192
- .binary('linkage_alarm', ea.ALL, true, false)
2193
- .withDescription('When this option is enabled and a gas ' +
2194
- 'alarm has occurred, then "linkage_alarm_state"=true, and when the gas alarm has ended or the buzzer has ' +
2195
- 'been manually muted, then "linkage_alarm_state"=false'),
2196
- e.binary('linkage_alarm_state', ea.STATE, true, false).withDescription('"linkage_alarm" is triggered'),
2197
- e
2198
- .binary('state', ea.STATE_GET, 'preparation', 'work')
2199
- .withDescription('"Preparation" or "work" ' +
2200
- '(measurement of the gas concentration value and triggering of an alarm are only performed in the "work" state)'),
2201
- e.power_outage_count().withAccess(ea.STATE_GET),
2202
- ],
2203
- configure: async (device, coordinatorEndpoint) => {
2204
- const endpoint = device.getEndpoint(1);
2205
- await endpoint.write('manuSpecificLumi', { 0x014b: { value: 1, type: 0x20 } }, { manufacturerCode: manufacturerCode });
2206
- await endpoint.read('manuSpecificLumi', [0x013a], { manufacturerCode: manufacturerCode });
2207
- await endpoint.read('manuSpecificLumi', [0x013b], { manufacturerCode: manufacturerCode });
2208
- await endpoint.read('manuSpecificLumi', [0x013d], { manufacturerCode: manufacturerCode });
2209
- await endpoint.read('manuSpecificLumi', [0x0126], { manufacturerCode: manufacturerCode });
2210
- await endpoint.read('manuSpecificLumi', [0x0139], { manufacturerCode: manufacturerCode });
2211
- await endpoint.read('manuSpecificLumi', [0x010c], { manufacturerCode: manufacturerCode });
2212
- await endpoint.read('manuSpecificLumi', [0x014b], { manufacturerCode: manufacturerCode });
2213
- await endpoint.read('manuSpecificLumi', [0x0002], { manufacturerCode: manufacturerCode });
2214
- },
2215
- extend: [lumiZigbeeOTA()],
2216
- },
2217
- {
2218
- zigbeeModel: ['lumi.sensor_smoke.acn03'],
2219
- model: 'JY-GZ-01AQ',
2220
- vendor: 'Aqara',
2221
- description: 'Smart smoke detector',
2222
- whiteLabel: [{ vendor: 'Aqara', model: 'JY-GZ-03AQ' }],
2223
- fromZigbee: [lumi.fromZigbee.lumi_specific, fromZigbee_1.default.battery],
2224
- toZigbee: [
2225
- lumi.toZigbee.lumi_alarm,
2226
- lumi.toZigbee.lumi_density,
2227
- lumi.toZigbee.lumi_selftest,
2228
- lumi.toZigbee.lumi_buzzer,
2229
- lumi.toZigbee.lumi_buzzer_manual,
2230
- lumi.toZigbee.lumi_heartbeat_indicator,
2231
- lumi.toZigbee.lumi_linkage_alarm,
2232
- ],
2233
- exposes: [
2234
- e.smoke().withAccess(ea.STATE_GET),
2235
- e.numeric('smoke_density', ea.STATE_GET).withDescription('Value of smoke concentration'),
2236
- e.numeric('smoke_density_dbm', ea.STATE_GET).withUnit('dB/m').withDescription('Value of smoke concentration in dB/m'),
2237
- e
2238
- .enum('selftest', ea.SET, ['selftest'])
2239
- .withDescription('Starts the self-test process (checking the indicator light and buzzer work properly)'),
2240
- e.binary('test', ea.STATE, true, false).withDescription('Self-test in progress'),
2241
- e
2242
- .enum('buzzer', ea.SET, ['mute', 'alarm'])
2243
- .withDescription('The buzzer can be muted and alarmed manually. ' +
2244
- 'During a smoke alarm, the buzzer can be manually muted for 80 seconds ("mute") and unmuted ("alarm"). ' +
2245
- 'The buzzer cannot be pre-muted, as this function only works during a smoke alarm. ' +
2246
- 'During the absence of a smoke alarm, the buzzer can be manually alarmed ("alarm") and disalarmed ("mute"), ' +
2247
- 'but for this "linkage_alarm" option must be enabled'),
2248
- e.binary('buzzer_manual_alarm', ea.STATE_GET, true, false).withDescription('Buzzer alarmed (manually)'),
2249
- e.binary('buzzer_manual_mute', ea.STATE_GET, true, false).withDescription('Buzzer muted (manually)'),
2250
- e
2251
- .binary('heartbeat_indicator', ea.ALL, true, false)
2252
- .withDescription('When this option is enabled then in the normal monitoring state, the green indicator light flashes every 60 seconds'),
2253
- e
2254
- .binary('linkage_alarm', ea.ALL, true, false)
2255
- .withDescription('When this option is enabled and a smoke ' +
2256
- 'alarm has occurred, then "linkage_alarm_state"=true, and when the smoke alarm has ended or the buzzer has ' +
2257
- 'been manually muted, then "linkage_alarm_state"=false'),
2258
- e.binary('linkage_alarm_state', ea.STATE, true, false).withDescription('"linkage_alarm" is triggered'),
2259
- e.battery(),
2260
- e.battery_voltage(),
2261
- e.power_outage_count(false),
2262
- ],
2263
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
2264
- configure: async (device, coordinatorEndpoint) => {
2265
- const endpoint = device.getEndpoint(1);
2266
- await endpoint.write('manuSpecificLumi', { 0x014b: { value: 1, type: 0x20 } }, { manufacturerCode: manufacturerCode });
2267
- await endpoint.read('genPowerCfg', ['batteryVoltage']);
2268
- await endpoint.read('manuSpecificLumi', [0x013a], { manufacturerCode: manufacturerCode });
2269
- await endpoint.read('manuSpecificLumi', [0x013b], { manufacturerCode: manufacturerCode });
2270
- await endpoint.read('manuSpecificLumi', [0x013c], { manufacturerCode: manufacturerCode });
2271
- await endpoint.read('manuSpecificLumi', [0x013d], { manufacturerCode: manufacturerCode });
2272
- await endpoint.read('manuSpecificLumi', [0x0126], { manufacturerCode: manufacturerCode });
2273
- await endpoint.read('manuSpecificLumi', [0x014b], { manufacturerCode: manufacturerCode });
2274
- },
2275
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
2276
- },
2277
- {
2278
- zigbeeModel: ['lumi.lock.v1'],
2279
- model: 'A6121',
2280
- vendor: 'Xiaomi',
2281
- description: 'Vima Smart Lock',
2282
- fromZigbee: [lumi.fromZigbee.lumi_lock_report],
2283
- exposes: [e.text('inserted', ea.STATE)],
2284
- toZigbee: [],
2285
- },
2286
- {
2287
- zigbeeModel: ['lumi.vibration.aq1'],
2288
- model: 'DJT11LM',
2289
- vendor: 'Aqara',
2290
- description: 'Vibration sensor',
2291
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
2292
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_vibration_analog],
2293
- toZigbee: [lumi.toZigbee.lumi_vibration_sensitivity],
2294
- exposes: [
2295
- e.battery(),
2296
- e.device_temperature(),
2297
- e.vibration(),
2298
- e.action(['vibration', 'tilt', 'drop']),
2299
- e.numeric('strength', ea.STATE),
2300
- e.numeric('sensitivity', ea.STATE_SET).withDescription('Sensitivity, 1 = highest, 21 = lowest').withValueMin(1).withValueMax(21),
2301
- e.angle_axis('angle_x'),
2302
- e.angle_axis('angle_y'),
2303
- e.angle_axis('angle_z'),
2304
- e.x_axis(),
2305
- e.y_axis(),
2306
- e.z_axis(),
2307
- e.battery_voltage(),
2308
- e.power_outage_count(false),
2309
- ],
2310
- extend: [m.quirkCheckinInterval('1_HOUR')],
2311
- },
2312
- {
2313
- zigbeeModel: ['lumi.vibration.agl01'],
2314
- model: 'DJT12LM',
2315
- vendor: 'Aqara',
2316
- description: 'Vibration sensor T1',
2317
- extend: [
2318
- lumiVibration(),
2319
- // lumiMiscellaneous(),
2320
- lumiReportInterval(),
2321
- lumiSensitivityAdjustment(),
2322
- lumiBattery({ voltageToPercentage: { min: 2850, max: 3000 } }),
2323
- lumiZigbeeOTA(),
2324
- m.quirkCheckinInterval('1_HOUR'),
2325
- ],
2326
- },
2327
- {
2328
- zigbeeModel: ['lumi.curtain'],
2329
- model: 'ZNCLDJ11LM',
2330
- description: 'Curtain controller',
2331
- vendor: 'Aqara',
2332
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_curtain_position, lumi.fromZigbee.lumi_curtain_position_tilt],
2333
- toZigbee: [lumi.toZigbee.lumi_curtain_position_state, lumi.toZigbee.lumi_curtain_options],
2334
- onEvent: async (type, data, device) => {
2335
- if (type === 'message' &&
2336
- data.type === 'attributeReport' &&
2337
- data.cluster === 'genBasic' &&
2338
- data.data['1028'] !== undefined &&
2339
- data.data['1028'] == 0) {
2340
- // Try to read the position after the motor stops, the device occasionally report wrong data right after stopping
2341
- // Might need to add delay, seems to be working without one but needs more tests.
2342
- await device.getEndpoint(1).read('genAnalogOutput', ['presentValue']);
2343
- }
2344
- },
2345
- exposes: [
2346
- e.cover_position().setAccess('state', ea.ALL),
2347
- e.binary('running', ea.STATE, true, false).withDescription('Whether the motor is moving or not'),
2348
- e.enum('motor_state', ea.STATE, ['stopped', 'opening', 'closing']).withDescription('Motor state'),
2349
- ],
2350
- extend: [lumiZigbeeOTA()],
2351
- },
2352
- {
2353
- zigbeeModel: ['lumi.curtain.aq2'],
2354
- model: 'ZNGZDJ11LM',
2355
- description: 'Roller shade controller',
2356
- vendor: 'Aqara',
2357
- whiteLabel: [{ vendor: 'Aqara', model: 'SRSC-M01' }],
2358
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_curtain_position, lumi.fromZigbee.lumi_curtain_position_tilt],
2359
- toZigbee: [lumi.toZigbee.lumi_curtain_position_state, lumi.toZigbee.lumi_curtain_options],
2360
- exposes: [
2361
- e.cover_position().setAccess('state', ea.ALL),
2362
- e.binary('running', ea.STATE, true, false).withDescription('Whether the motor is moving or not'),
2363
- ],
2364
- extend: [lumiZigbeeOTA()],
2365
- },
2366
- {
2367
- zigbeeModel: ['lumi.curtain.vagl02'],
2368
- model: 'ZNGZDJ16LM',
2369
- description: 'Roller shade controller T1C',
2370
- vendor: 'Aqara',
2371
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_curtain_position, lumi.fromZigbee.lumi_curtain_position_tilt],
2372
- toZigbee: [lumi.toZigbee.lumi_curtain_position_state, lumi.toZigbee.lumi_curtain_options],
2373
- exposes: [
2374
- e.cover_position().setAccess('state', ea.ALL),
2375
- e.binary('running', ea.STATE, true, false).withDescription('Whether the motor is moving or not'),
2376
- ],
2377
- extend: [lumiZigbeeOTA()],
2378
- },
2379
- {
2380
- zigbeeModel: ['lumi.curtain.hagl04'],
2381
- model: 'ZNCLDJ12LM',
2382
- vendor: 'Aqara',
2383
- description: 'Curtain controller B1',
2384
- fromZigbee: [
2385
- lumi.fromZigbee.lumi_basic,
2386
- lumi.fromZigbee.lumi_curtain_position,
2387
- lumi.fromZigbee.lumi_curtain_position_tilt,
2388
- lumi.fromZigbee.lumi_curtain_status,
2389
- ],
2390
- toZigbee: [lumi.toZigbee.lumi_curtain_position_state, lumi.toZigbee.lumi_curtain_options],
2391
- onEvent: async (type, data, device) => {
2392
- // The position (genAnalogOutput.presentValue) reported via an attribute contains an invalid value
2393
- // however when reading it will provide the correct value.
2394
- if (data.type === 'attributeReport' && data.cluster === 'genAnalogOutput') {
2395
- await device.endpoints[0].read('genAnalogOutput', ['presentValue']);
2396
- }
2397
- },
2398
- exposes: [
2399
- e.cover_position().setAccess('state', ea.ALL),
2400
- e.battery(),
2401
- e.binary('running', ea.STATE, true, false).withDescription('Whether the motor is moving or not'),
2402
- e.enum('motor_state', ea.STATE, ['closing', 'opening', 'stopped']).withDescription('The current state of the motor.'),
2403
- e.power_outage_count(),
2404
- ],
2405
- extend: [lumiZigbeeOTA()],
2406
- },
2407
- {
2408
- zigbeeModel: ['lumi.curtain.hagl07'],
2409
- model: 'ZNCLDJ14LM',
2410
- vendor: 'Aqara',
2411
- description: 'Curtain controller C2',
2412
- fromZigbee: [
2413
- lumi.fromZigbee.lumi_basic,
2414
- lumi.fromZigbee.lumi_curtain_position,
2415
- lumi.fromZigbee.lumi_curtain_status,
2416
- lumi.fromZigbee.lumi_curtain_options,
2417
- ],
2418
- toZigbee: [
2419
- lumi.toZigbee.lumi_curtain_position_state,
2420
- lumi.toZigbee.lumi_curtain_hand_open,
2421
- lumi.toZigbee.lumi_curtain_reverse,
2422
- lumi.toZigbee.lumi_curtain_limits_calibration_ZNCLDJ14LM,
2423
- ],
2424
- exposes: [
2425
- e.cover_position().setAccess('state', ea.ALL),
2426
- e.binary('reverse_direction', ea.ALL, true, false).withDescription('Whether the curtain direction is inverted'),
2427
- e.binary('hand_open', ea.ALL, true, false).withDescription('Pulling curtains by hand starts the motor'),
2428
- e.binary('running', ea.STATE, true, false).withDescription('Whether the motor is moving or not'),
2429
- e.enum('motor_state', ea.STATE, ['closing', 'opening', 'stopped']).withDescription('The current state of the motor.'),
2430
- e.power_outage_count(),
2431
- ],
2432
- extend: [lumiZigbeeOTA()],
2433
- },
2434
- {
2435
- zigbeeModel: ['lumi.curtain.acn04'],
2436
- model: 'ZNCLDJ01LM',
2437
- vendor: 'Aqara',
2438
- description: 'Curtain controller C3',
2439
- toZigbee: [lumi.toZigbee.lumi_curtain_limits_calibration, lumi.toZigbee.lumi_curtain_automatic_calibration_ZNCLDJ01LM],
2440
- exposes: [
2441
- e.enum('limits_calibration', ea.SET, ['start', 'end', 'reset']).withDescription('Calibrate the position limits'),
2442
- e
2443
- .enum('automatic_calibration', ea.SET, ['calibrate'])
2444
- .withDescription('Performs an automatic calibration process similar to Aqara’s method to set curtain limits.'),
2445
- ],
2446
- extend: [
2447
- m.windowCovering({ controls: ['lift'], coverInverted: true, configureReporting: true }),
2448
- lumiCurtainSpeed(),
2449
- lumiCurtainManualOpenClose(),
2450
- lumiCurtainAdaptivePullingSpeed(),
2451
- lumiCurtainManualStop(),
2452
- lumiCurtainReverse(),
2453
- lumiCurtainStatus(),
2454
- lumiCurtainLastManualOperation(),
2455
- lumiCurtainPosition(),
2456
- lumiCurtainTraverseTime(),
2457
- lumiCurtainCalibrationStatus(),
2458
- lumiCurtainCalibrated(),
2459
- lumiCurtainIdentifyBeep(),
2460
- m.identify(),
2461
- lumiZigbeeOTA(),
2462
- ],
2463
- },
2464
- {
2465
- zigbeeModel: ['lumi.curtain.acn002'],
2466
- model: 'ZNJLBL01LM',
2467
- description: 'Roller shade driver E1',
2468
- vendor: 'Aqara',
2469
- whiteLabel: [{ vendor: 'Aqara', model: 'RSD-M01' }],
2470
- fromZigbee: [
2471
- lumi.fromZigbee.lumi_curtain_position,
2472
- lumi.fromZigbee.lumi_curtain_status,
2473
- fromZigbee_1.default.ignore_basic_report,
2474
- lumi.fromZigbee.lumi_specific,
2475
- ],
2476
- toZigbee: [lumi.toZigbee.lumi_curtain_position_state, lumi.toZigbee.lumi_curtain_battery, lumi.toZigbee.lumi_curtain_charging_status],
2477
- onEvent: async (type, data, device) => {
2478
- if (type === 'message' &&
2479
- data.type === 'attributeReport' &&
2480
- data.cluster === 'genMultistateOutput' &&
2481
- data.data.presentValue !== undefined &&
2482
- data.data['presentValue'] > 1) {
2483
- // Try to read the position after the motor stops, the device occasionally report wrong data right after stopping
2484
- // Might need to add delay, seems to be working without one but needs more tests.
2485
- await device.getEndpoint(1).read('genAnalogOutput', ['presentValue']);
2486
- }
2487
- },
2488
- exposes: [
2489
- e.cover_position().setAccess('state', ea.ALL),
2490
- e.battery().withAccess(ea.STATE_GET),
2491
- e.device_temperature(),
2492
- e.binary('charging_status', ea.STATE_GET, true, false).withDescription('The current charging status.'),
2493
- e.enum('motor_state', ea.STATE, ['closing', 'opening', 'stopped', 'blocked']).withDescription('The current state of the motor.'),
2494
- e.binary('running', ea.STATE, true, false).withDescription('Whether the motor is moving or not'),
2495
- ],
2496
- configure: async (device, coordinatorEndpoint) => {
2497
- device.powerSource = 'Battery';
2498
- device.save();
2499
- const endpoint = device.getEndpoint(1);
2500
- await endpoint.read('manuSpecificLumi', [0x040a], { manufacturerCode: manufacturerCode });
2501
- },
2502
- extend: [
2503
- m.quirkAddEndpointCluster({
2504
- endpointID: 1,
2505
- inputClusters: ['manuSpecificLumi'],
2506
- }),
2507
- lumiZigbeeOTA(),
2508
- lumiMotorSpeed(),
2509
- ],
2510
- },
2511
- {
2512
- // 'lumi.curtain.acn003' - CN version (ZNCLBL01LM), 'lumi.curtain.agl001' - global version (CM-M01)
2513
- zigbeeModel: ['lumi.curtain.acn003', 'lumi.curtain.agl001'],
2514
- model: 'ZNCLBL01LM',
2515
- vendor: 'Aqara',
2516
- whiteLabel: [
2517
- { vendor: 'Aqara', model: 'CM-M01' },
2518
- { vendor: 'Aqara', model: 'CM-M01R' },
2519
- ],
2520
- description: 'Curtain driver E1',
2521
- fromZigbee: [fromZigbee_1.default.battery, lumi.fromZigbee.lumi_curtain_position_tilt, lumi.fromZigbee.lumi_specific, fromZigbee_1.default.power_source],
2522
- toZigbee: [
2523
- lumi.toZigbee.lumi_curtain_position_state,
2524
- lumi.toZigbee.lumi_curtain_battery_voltage,
2525
- lumi.toZigbee.lumi_curtain_hooks_lock,
2526
- lumi.toZigbee.lumi_curtain_hooks_state,
2527
- lumi.toZigbee.lumi_curtain_hand_open,
2528
- lumi.toZigbee.lumi_curtain_limits_calibration,
2529
- toZigbee_1.default.power_source,
2530
- toZigbee_1.default.battery_percentage_remaining,
2531
- ],
2532
- exposes: [
2533
- e.cover_position().setAccess('state', ea.ALL),
2534
- e.binary('hand_open', ea.ALL, true, false).withDescription('Pulling curtains by hand starts the motor'),
2535
- e.enum('limits_calibration', ea.SET, ['start', 'end', 'reset']).withDescription('Calibrate the position limits'),
2536
- e.battery().withAccess(ea.STATE_GET),
2537
- e.battery_voltage().withAccess(ea.STATE_GET),
2538
- e.device_temperature(),
2539
- e.illuminance(),
2540
- e.action(['manual_open', 'manual_close']),
2541
- e.enum('motor_state', ea.STATE, ['stopped', 'opening', 'closing', 'pause']).withDescription('Motor state'),
2542
- e.binary('running', ea.STATE, true, false).withDescription('Whether the motor is moving or not'),
2543
- e.enum('hooks_lock', ea.STATE_SET, ['LOCK', 'UNLOCK']).withDescription('Lock the curtain driver hooks'),
2544
- e.enum('hooks_state', ea.STATE_GET, ['unlocked', 'locked', 'locking', 'unlocking']).withDescription('Hooks state'),
2545
- e.numeric('target_position', ea.STATE).withUnit('%').withDescription('Target position'),
2546
- e.enum('power_source', ea.STATE_GET, ['battery', 'dc_source']).withDescription('The current power source'),
2547
- e.binary('charging', ea.STATE_GET, true, false).withDescription('The current charging state'),
2548
- ],
2549
- configure: async (device, coordinatorEndpoint) => {
2550
- const endpoint = device.getEndpoint(1);
2551
- // Read correct version to replace version advertised by `genBasic` and `genOta`:
2552
- // https://github.com/Koenkk/zigbee2mqtt/issues/15745
2553
- await endpoint.read('manuSpecificLumi', [0x00ee], { manufacturerCode: manufacturerCode });
2554
- await endpoint.read('genPowerCfg', ['batteryPercentageRemaining']);
2555
- await endpoint.read('manuSpecificLumi', [0x040b], { manufacturerCode: manufacturerCode });
2556
- await endpoint.read('manuSpecificLumi', [0x0428], { manufacturerCode: manufacturerCode });
2557
- await endpoint.read('genBasic', ['powerSource']);
2558
- await endpoint.read('closuresWindowCovering', ['currentPositionLiftPercentage']);
2559
- },
2560
- extend: [lumiZigbeeOTA()],
2561
- },
2562
- {
2563
- zigbeeModel: ['lumi.relay.c2acn01'],
2564
- model: 'LLKZMK11LM',
2565
- vendor: 'Aqara',
2566
- description: 'Dual relay module',
2567
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_power, fromZigbee_1.default.ignore_multistate_report, fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_basic_raw],
2568
- meta: { multiEndpoint: true },
2569
- toZigbee: [toZigbee_1.default.on_off, lumi.toZigbee.lumi_interlock, lumi.toZigbee.lumi_power, lumi.toZigbee.lumi_switch_power_outage_memory],
2570
- endpoint: (device) => {
2571
- return { l1: 1, l2: 2 };
2572
- },
2573
- exposes: [
2574
- e.power().withAccess(ea.STATE_GET),
2575
- e.energy(),
2576
- e.device_temperature(),
2577
- e.voltage(),
2578
- e.current(),
2579
- e.switch().withEndpoint('l1'),
2580
- e.switch().withEndpoint('l2'),
2581
- e.power_outage_count(false),
2582
- e.power_outage_memory(),
2583
- e.binary('interlock', ea.STATE_SET, true, false).withDescription('Enabling prevents both relais being on at the same time'),
2584
- ],
2585
- extend: [lumiZigbeeOTA()],
2586
- configure: async (device, coordinatorEndpoint) => {
2587
- device.powerSource = 'Mains (single phase)';
2588
- device.save();
2589
- },
2590
- },
2591
- {
2592
- zigbeeModel: ['lumi.switch.acn047'],
2593
- model: 'LLKZMK12LM',
2594
- vendor: 'Aqara',
2595
- whiteLabel: [{ vendor: 'Aqara', model: 'DCM-K01' }],
2596
- description: 'Dual relay module T2',
2597
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_specific, lumi.fromZigbee.lumi_power],
2598
- toZigbee: [toZigbee_1.default.on_off],
2599
- meta: { multiEndpoint: true, multiEndpointSkip: ['power', 'energy'] },
2600
- endpoint: (device) => {
2601
- return { l1: 1, l2: 2 };
2602
- },
2603
- exposes: [
2604
- e.switch().withEndpoint('l1'),
2605
- e.switch().withEndpoint('l2'),
2606
- e.power(),
2607
- e.current(),
2608
- e.energy(),
2609
- e.voltage(),
2610
- e.device_temperature(),
2611
- ],
2612
- extend: [
2613
- lumiSwitchType(),
2614
- lumiPowerOnBehavior({ lookup: { on: 0, previous: 1, off: 2, toggle: 3 } }),
2615
- lumiOperationMode({ description: 'Decoupled mode for 1st relay', endpointName: 'l1' }),
2616
- lumiOperationMode({ description: 'Decoupled mode for 2nd relay', endpointName: 'l2' }),
2617
- lumiAction({ endpointNames: ['l1', 'l2'] }),
2618
- m.binary({
2619
- name: 'interlock',
2620
- valueOn: ['ON', 1],
2621
- valueOff: ['OFF', 0],
2622
- cluster: 'manuSpecificLumi',
2623
- attribute: { ID: 0x02d0, type: 0x10 },
2624
- description: 'Enabling prevents both relays being on at the same time (Interlock)',
2625
- zigbeeCommandOptions: { manufacturerCode },
2626
- }),
2627
- m.enumLookup({
2628
- name: 'mode',
2629
- lookup: { power: 0, pulse: 1, dry: 3 },
2630
- cluster: 'manuSpecificLumi',
2631
- attribute: { ID: 0x0289, type: 0x20 },
2632
- description: 'Work mode: Power mode, Dry mode with impulse, Dry mode',
2633
- zigbeeCommandOptions: { manufacturerCode },
2634
- }),
2635
- m.numeric({
2636
- name: 'pulse_length',
2637
- valueMin: 200,
2638
- valueMax: 2000,
2639
- unit: 'ms',
2640
- cluster: 'manuSpecificLumi',
2641
- attribute: { ID: 0x00eb, type: 0x21 },
2642
- description: 'Impulse length in Dry mode with impulse',
2643
- zigbeeCommandOptions: { manufacturerCode },
2644
- }),
2645
- lumiZigbeeOTA(),
2646
- ],
2647
- },
2648
- {
2649
- zigbeeModel: ['lumi.lock.acn02'],
2650
- model: 'ZNMS12LM',
2651
- description: 'Smart door lock S2',
2652
- vendor: 'Aqara',
2653
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_door_lock_report, lumi.fromZigbee.lumi_door_lock_low_battery],
2654
- toZigbee: [],
2655
- exposes: [
2656
- e.battery(),
2657
- e.battery_voltage(),
2658
- e.battery_low(),
2659
- e.binary('state', ea.STATE, 'UNLOCK', 'LOCK'),
2660
- e.binary('reverse', ea.STATE, 'UNLOCK', 'LOCK'),
2661
- e.enum('action', ea.STATE, [
2662
- 'finger_not_match',
2663
- 'password_not_match',
2664
- 'reverse_lock',
2665
- 'reverse_lock_cancel',
2666
- 'locked',
2667
- 'lock_opened',
2668
- 'finger_add',
2669
- 'finger_delete',
2670
- 'password_add',
2671
- 'password_delete',
2672
- 'lock_opened_inside',
2673
- 'lock_opened_outside',
2674
- 'ring_bell',
2675
- 'change_language_to',
2676
- 'finger_open',
2677
- 'password_open',
2678
- 'door_closed',
2679
- ]),
2680
- ],
2681
- meta: { battery: { voltageToPercentage: { min: 3000, max: 4200 } } },
2682
- configure: async (device, coordinatorEndpoint) => {
2683
- // Device advertises itself as Router but is an EndDevice
2684
- device.type = 'EndDevice';
2685
- device.save();
2686
- },
2687
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
2688
- },
2689
- {
2690
- zigbeeModel: ['lumi.lock.acn03'],
2691
- model: 'ZNMS13LM',
2692
- description: 'Smart door lock S2 Pro',
2693
- vendor: 'Aqara',
2694
- fromZigbee: [lumi.fromZigbee.lumi_door_lock_report, fromZigbee_1.default.ignore_basic_report],
2695
- toZigbee: [],
2696
- exposes: [
2697
- e.binary('state', ea.STATE, 'UNLOCK', 'LOCK'),
2698
- e.binary('reverse', ea.STATE, 'UNLOCK', 'LOCK'),
2699
- e.enum('action', ea.STATE, [
2700
- 'finger_not_match',
2701
- 'password_not_match',
2702
- 'reverse_lock',
2703
- 'reverse_lock_cancel',
2704
- 'locked',
2705
- 'lock_opened',
2706
- 'finger_add',
2707
- 'finger_delete',
2708
- 'password_add',
2709
- 'password_delete',
2710
- 'lock_opened_inside',
2711
- 'lock_opened_outside',
2712
- 'ring_bell',
2713
- 'change_language_to',
2714
- 'finger_open',
2715
- 'password_open',
2716
- 'door_closed',
2717
- ]),
2718
- ],
2719
- extend: [m.quirkCheckinInterval('1_HOUR')],
2720
- configure: async (device, coordinatorEndpoint) => {
2721
- // Device advertises itself as Router but is an EndDevice
2722
- device.type = 'EndDevice';
2723
- device.save();
2724
- },
2725
- },
2726
- {
2727
- zigbeeModel: ['lumi.lock.aq1'],
2728
- model: 'ZNMS11LM',
2729
- description: 'Smart door lock',
2730
- vendor: 'Aqara',
2731
- fromZigbee: [lumi.fromZigbee.lumi_door_lock_report, fromZigbee_1.default.ignore_basic_report],
2732
- toZigbee: [],
2733
- exposes: [
2734
- e.binary('state', ea.STATE, 'UNLOCK', 'LOCK'),
2735
- e.binary('reverse', ea.STATE, 'UNLOCK', 'LOCK'),
2736
- e.enum('action', ea.STATE, [
2737
- 'finger_not_match',
2738
- 'password_not_match',
2739
- 'reverse_lock',
2740
- 'reverse_lock_cancel',
2741
- 'locked',
2742
- 'lock_opened',
2743
- 'finger_add',
2744
- 'finger_delete',
2745
- 'password_add',
2746
- 'password_delete',
2747
- 'lock_opened_inside',
2748
- 'lock_opened_outside',
2749
- 'ring_bell',
2750
- 'change_language_to',
2751
- 'finger_open',
2752
- 'password_open',
2753
- 'door_closed',
2754
- ]),
2755
- ],
2756
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
2757
- },
2758
- {
2759
- zigbeeModel: ['lumi.remote.b286opcn01'],
2760
- model: 'WXCJKG11LM',
2761
- vendor: 'Aqara',
2762
- description: 'Opple wireless switch (single band)',
2763
- fromZigbee: [
2764
- lumi.fromZigbee.lumi_action_on,
2765
- lumi.fromZigbee.lumi_action_off,
2766
- fromZigbee_1.default.battery,
2767
- lumi.fromZigbee.lumi_action_multistate,
2768
- lumi.fromZigbee.lumi_specific,
2769
- ],
2770
- exposes: [
2771
- e.battery(),
2772
- e.battery_voltage(),
2773
- e.action([
2774
- 'button_1_hold',
2775
- 'button_1_release',
2776
- 'button_1_single',
2777
- 'button_1_double',
2778
- 'button_1_triple',
2779
- 'button_2_hold',
2780
- 'button_2_release',
2781
- 'button_2_single',
2782
- 'button_2_double',
2783
- 'button_2_triple',
2784
- ]),
2785
- e
2786
- .enum('operation_mode', ea.ALL, ['command', 'event'])
2787
- .withDescription('Operation mode, select "command" to enable bindings (wake up the device before changing modes!)'),
2788
- ],
2789
- toZigbee: [lumi.toZigbee.lumi_operation_mode_opple],
2790
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
2791
- extend: [m.quirkCheckinInterval('1_HOUR')],
2792
- configure: async (device, coordinatorEndpoint) => {
2793
- const endpoint = device.getEndpoint(1);
2794
- await endpoint.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode });
2795
- await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genPowerCfg']);
2796
- },
2797
- },
2798
- {
2799
- zigbeeModel: ['lumi.remote.b486opcn01'],
2800
- model: 'WXCJKG12LM',
2801
- vendor: 'Aqara',
2802
- description: 'Opple wireless switch (double band)',
2803
- fromZigbee: [
2804
- lumi.fromZigbee.lumi_action_on,
2805
- lumi.fromZigbee.lumi_action_off,
2806
- lumi.fromZigbee.lumi_action_step,
2807
- lumi.fromZigbee.lumi_action_step_color_temp,
2808
- fromZigbee_1.default.battery,
2809
- lumi.fromZigbee.lumi_action_multistate,
2810
- lumi.fromZigbee.lumi_specific,
2811
- ],
2812
- exposes: [
2813
- e.battery(),
2814
- e.battery_voltage(),
2815
- e.action([
2816
- 'button_1_hold',
2817
- 'button_1_release',
2818
- 'button_1_single',
2819
- 'button_1_double',
2820
- 'button_1_triple',
2821
- 'button_2_hold',
2822
- 'button_2_release',
2823
- 'button_2_single',
2824
- 'button_2_double',
2825
- 'button_2_triple',
2826
- 'button_3_hold',
2827
- 'button_3_release',
2828
- 'button_3_single',
2829
- 'button_3_double',
2830
- 'button_3_triple',
2831
- 'button_4_hold',
2832
- 'button_4_release',
2833
- 'button_4_single',
2834
- 'button_4_double',
2835
- 'button_4_triple',
2836
- ]),
2837
- e
2838
- .enum('operation_mode', ea.ALL, ['command', 'event'])
2839
- .withDescription('Operation mode, select "command" to enable bindings (wake up the device before changing modes!)'),
2840
- ],
2841
- toZigbee: [lumi.toZigbee.lumi_operation_mode_opple],
2842
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
2843
- extend: [m.quirkCheckinInterval('1_HOUR')],
2844
- configure: async (device, coordinatorEndpoint) => {
2845
- const endpoint = device.getEndpoint(1);
2846
- await endpoint.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode });
2847
- await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl', 'lightingColorCtrl', 'genPowerCfg']);
2848
- },
2849
- },
2850
- {
2851
- zigbeeModel: ['lumi.remote.b686opcn01'],
2852
- model: 'WXCJKG13LM',
2853
- vendor: 'Aqara',
2854
- description: 'Opple wireless switch (triple band)',
2855
- fromZigbee: [
2856
- lumi.fromZigbee.lumi_action_on,
2857
- lumi.fromZigbee.lumi_action_off,
2858
- lumi.fromZigbee.lumi_action_step,
2859
- lumi.fromZigbee.lumi_action_move,
2860
- lumi.fromZigbee.lumi_action_stop,
2861
- lumi.fromZigbee.lumi_action_step_color_temp,
2862
- lumi.fromZigbee.lumi_action_move_color_temp,
2863
- fromZigbee_1.default.battery,
2864
- lumi.fromZigbee.lumi_action_multistate,
2865
- lumi.fromZigbee.lumi_specific,
2866
- ],
2867
- exposes: [
2868
- e.battery(),
2869
- e.battery_voltage(),
2870
- e.action([
2871
- 'button_1_hold',
2872
- 'button_1_release',
2873
- 'button_1_single',
2874
- 'button_1_double',
2875
- 'button_1_triple',
2876
- 'button_2_hold',
2877
- 'button_2_release',
2878
- 'button_2_single',
2879
- 'button_2_double',
2880
- 'button_2_triple',
2881
- 'button_3_hold',
2882
- 'button_3_release',
2883
- 'button_3_single',
2884
- 'button_3_double',
2885
- 'button_3_triple',
2886
- 'button_4_hold',
2887
- 'button_4_release',
2888
- 'button_4_single',
2889
- 'button_4_double',
2890
- 'button_4_triple',
2891
- 'button_5_hold',
2892
- 'button_5_release',
2893
- 'button_5_single',
2894
- 'button_5_double',
2895
- 'button_5_triple',
2896
- 'button_6_hold',
2897
- 'button_6_release',
2898
- 'button_6_single',
2899
- 'button_6_double',
2900
- 'button_6_triple',
2901
- ]),
2902
- e
2903
- .enum('operation_mode', ea.ALL, ['command', 'event'])
2904
- .withDescription('Operation mode, select "command" to enable bindings (wake up the device before changing modes!)'),
2905
- e.power_outage_count(false),
2906
- ],
2907
- toZigbee: [lumi.toZigbee.lumi_operation_mode_opple],
2908
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
2909
- extend: [m.quirkCheckinInterval('1_HOUR')],
2910
- configure: async (device, coordinatorEndpoint) => {
2911
- const endpoint = device.getEndpoint(1);
2912
- await endpoint.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode });
2913
- await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl', 'lightingColorCtrl', 'genPowerCfg']);
2914
- },
2915
- },
2916
- {
2917
- zigbeeModel: ['lumi.sen_ill.mgl01'],
2918
- model: 'GZCGQ01LM',
2919
- vendor: 'Xiaomi',
2920
- whiteLabel: [{ vendor: 'Xiaomi', model: 'YTC4043GL' }],
2921
- description: 'Mi light sensor',
2922
- fromZigbee: [fromZigbee_1.default.battery, lumi.fromZigbee.lumi_specific],
2923
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
2924
- extend: [m.quirkCheckinInterval('1_HOUR'), m.illuminance()],
2925
- exposes: [e.battery(), e.battery_voltage()],
2926
- },
2927
- {
2928
- zigbeeModel: ['lumi.light.acn128'],
2929
- model: 'TDL01LM',
2930
- vendor: 'Aqara',
2931
- description: 'Spotlight T3',
2932
- whiteLabel: [
2933
- { vendor: 'Aqara', model: 'MZSD11LM' },
2934
- { vendor: 'Aqara', model: 'MZSD12LM' },
2935
- { vendor: 'Aqara', model: 'MZTD11LM' },
2936
- ],
2937
- extend: [
2938
- lumiZigbeeOTA(),
2939
- lumiLight({
2940
- colorTemp: true,
2941
- color: false,
2942
- powerOutageMemory: 'enum',
2943
- levelConfig: { disabledFeatures: ['current_level_startup'] },
2944
- }),
2945
- m.numeric({
2946
- name: 'min_brightness',
2947
- valueMin: 0,
2948
- valueMax: 99,
2949
- unit: '%',
2950
- cluster: 'manuSpecificLumi',
2951
- attribute: { ID: 0x0515, type: 0x20 },
2952
- description: 'Minimum brightness level',
2953
- zigbeeCommandOptions: { manufacturerCode },
2954
- }),
2955
- m.numeric({
2956
- name: 'max_brightness',
2957
- valueMin: 1,
2958
- valueMax: 100,
2959
- unit: '%',
2960
- cluster: 'manuSpecificLumi',
2961
- attribute: { ID: 0x0516, type: 0x20 },
2962
- description: 'Maximum brightness level',
2963
- zigbeeCommandOptions: { manufacturerCode },
2964
- }),
2965
- ],
2966
- },
2967
- {
2968
- zigbeeModel: ['lumi.light.rgbac1'],
2969
- model: 'ZNTGMK11LM',
2970
- vendor: 'Aqara',
2971
- description: 'Smart RGBW light controller',
2972
- extend: [m.light({ colorTemp: { range: undefined }, color: { modes: ['xy', 'hs'] } }), lumiZigbeeOTA()],
2973
- },
2974
- {
2975
- zigbeeModel: ['lumi.light.cwacn1'],
2976
- model: 'ZNTGMK12LM',
2977
- vendor: 'Aqara',
2978
- description: 'Smart color temperature light controller',
2979
- extend: [lumiLight({ colorTemp: true, powerOutageCount: true, deviceTemperature: true }), lumiZigbeeOTA()],
2980
- },
2981
- {
2982
- zigbeeModel: ['lumi.light.cbacn1'],
2983
- model: 'HLQDQ01LM',
2984
- vendor: 'Aqara',
2985
- description: 'Smart LED controller',
2986
- extend: [m.light(), lumiZigbeeOTA()],
2987
- },
2988
- {
2989
- zigbeeModel: ['lumi.light.acn004'],
2990
- model: 'SSWQD02LM',
2991
- vendor: 'Aqara',
2992
- description: 'Smart dimmer controller T1 Pro',
2993
- extend: [lumiZigbeeOTA(), lumiLight({ colorTemp: true, powerOutageMemory: 'switch' })],
2994
- },
2995
- {
2996
- zigbeeModel: ['lumi.dimmer.acn003'],
2997
- model: 'ZNDDQDQ11LM',
2998
- vendor: 'Aqara',
2999
- description: 'T1 light strip controller',
3000
- extend: [lumiZigbeeOTA(), lumiLight({ colorTemp: true, powerOutageMemory: 'switch' })],
3001
- },
3002
- {
3003
- zigbeeModel: ['lumi.dimmer.acn004'],
3004
- model: 'ZNDDQDQ12LM',
3005
- vendor: 'Aqara',
3006
- description: 'T1 light strip controller',
3007
- extend: [lumiZigbeeOTA(), lumiLight({ colorTemp: true, powerOutageMemory: 'switch' })],
3008
- },
3009
- {
3010
- zigbeeModel: ['lumi.light.acn026', 'lumi.light.acn024', 'lumi.light.acn025'],
3011
- model: 'SSWQD03LM',
3012
- vendor: 'Aqara',
3013
- description: 'Spotlight T2',
3014
- extend: [lumiZigbeeOTA(), lumiLight({ colorTemp: true, powerOutageMemory: 'switch' })],
3015
- },
3016
- {
3017
- zigbeeModel: ['lumi.switch.n0agl1'],
3018
- model: 'SSM-U01',
3019
- vendor: 'Aqara',
3020
- description: 'Single switch module T1 (with neutral)',
3021
- // Ignore energy metering reports, rely on aqara_opple: https://github.com/Koenkk/zigbee2mqtt/issues/10709
3022
- fromZigbee: [
3023
- fromZigbee_1.default.on_off,
3024
- fromZigbee_1.default.device_temperature,
3025
- lumi.fromZigbee.lumi_specific,
3026
- fromZigbee_1.default.ignore_metering,
3027
- fromZigbee_1.default.ignore_electrical_measurement,
3028
- lumi.fromZigbee.lumi_power,
3029
- ],
3030
- exposes: [
3031
- e.switch(),
3032
- e.energy(),
3033
- e.power(),
3034
- e.device_temperature(),
3035
- e.power_outage_memory(),
3036
- e.power_outage_count(),
3037
- e.switch_type(),
3038
- e.voltage(),
3039
- e.current(),
3040
- ],
3041
- toZigbee: [lumi.toZigbee.lumi_switch_type, toZigbee_1.default.on_off, lumi.toZigbee.lumi_switch_power_outage_memory, lumi.toZigbee.lumi_led_disabled_night],
3042
- configure: async (device, coordinatorEndpoint) => {
3043
- const endpoint = device.getEndpoint(1);
3044
- await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genDeviceTempCfg']);
3045
- await reporting.onOff(endpoint);
3046
- await reporting.deviceTemperature(endpoint);
3047
- device.powerSource = 'Mains (single phase)';
3048
- device.type = 'Router';
3049
- device.save();
3050
- },
3051
- extend: [lumiZigbeeOTA()],
3052
- },
3053
- {
3054
- zigbeeModel: ['lumi.switch.n0acn2'],
3055
- model: 'DLKZMK11LM',
3056
- vendor: 'Aqara',
3057
- description: 'Single switch module T1 (with neutral), CN',
3058
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_specific],
3059
- toZigbee: [
3060
- toZigbee_1.default.on_off,
3061
- lumi.toZigbee.lumi_power,
3062
- lumi.toZigbee.lumi_switch_type,
3063
- lumi.toZigbee.lumi_switch_power_outage_memory,
3064
- lumi.toZigbee.lumi_led_disabled_night,
3065
- ],
3066
- exposes: [
3067
- e.switch(),
3068
- e.power().withAccess(ea.STATE_GET),
3069
- e.energy(),
3070
- e.device_temperature().withAccess(ea.STATE),
3071
- e.voltage(),
3072
- e.current(),
3073
- e.power_outage_memory(),
3074
- e.led_disabled_night(),
3075
- e.switch_type(),
3076
- ],
3077
- configure: async (device, coordinatorEndpoint) => {
3078
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
3079
- device.powerSource = 'Mains (single phase)';
3080
- device.save();
3081
- },
3082
- extend: [lumiZigbeeOTA()],
3083
- },
3084
- {
3085
- zigbeeModel: ['lumi.switch.l0agl1'],
3086
- model: 'SSM-U02',
3087
- vendor: 'Aqara',
3088
- description: 'Single switch module T1 (no neutral)',
3089
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_specific],
3090
- exposes: [e.switch(), e.power_outage_memory(), e.switch_type(), e.power_outage_count(), e.device_temperature()],
3091
- toZigbee: [lumi.toZigbee.lumi_switch_type, toZigbee_1.default.on_off, lumi.toZigbee.lumi_switch_power_outage_memory],
3092
- configure: async (device, coordinatorEndpoint) => {
3093
- const endpoint = device.getEndpoint(1);
3094
- await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
3095
- await reporting.onOff(endpoint);
3096
- device.powerSource = 'Mains (single phase)';
3097
- device.save();
3098
- },
3099
- },
3100
- {
3101
- zigbeeModel: ['lumi.switch.l0acn1'],
3102
- model: 'DLKZMK12LM',
3103
- vendor: 'Aqara',
3104
- description: 'Single switch module T1 (no neutral), CN',
3105
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_specific],
3106
- exposes: [e.switch(), e.power_outage_memory(), e.switch_type()],
3107
- toZigbee: [lumi.toZigbee.lumi_switch_type, toZigbee_1.default.on_off, lumi.toZigbee.lumi_switch_power_outage_memory],
3108
- configure: async (device, coordinatorEndpoint) => {
3109
- const endpoint = device.getEndpoint(1);
3110
- await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
3111
- await reporting.onOff(endpoint);
3112
- device.powerSource = 'Mains (single phase)';
3113
- device.save();
3114
- },
3115
- },
3116
- {
3117
- zigbeeModel: ['lumi.switch.n4acn4'],
3118
- model: 'ZNCJMB14LM',
3119
- vendor: 'Aqara',
3120
- description: 'Smart touch panel S1',
3121
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_smart_panel_ZNCJMB14LM],
3122
- toZigbee: [toZigbee_1.default.on_off, lumi.toZigbee.lumi_smart_panel_ZNCJMB14LM],
3123
- meta: { multiEndpoint: true },
3124
- endpoint: (device) => {
3125
- return { left: 1, center: 2, right: 3 };
3126
- },
3127
- exposes: [
3128
- e.switch().withEndpoint('left'),
3129
- e.switch().withEndpoint('center'),
3130
- e.switch().withEndpoint('right'),
3131
- e.binary('standby_enabled', ea.STATE_SET, true, false).withDescription('Enable standby'),
3132
- e.enum('theme', ea.STATE_SET, ['classic', 'concise']).withDescription('Display theme'),
3133
- e.enum('beep_volume', ea.STATE_SET, ['mute', 'low', 'medium', 'high']).withDescription('Beep volume'),
3134
- e
3135
- .numeric('lcd_brightness', ea.STATE_SET)
3136
- .withValueMin(1)
3137
- .withValueMax(100)
3138
- .withUnit('%')
3139
- .withDescription('LCD brightness (will not persist if auto-brightness is enabled)'),
3140
- e.enum('language', ea.STATE_SET, ['chinese', 'english']).withDescription('Interface language'),
3141
- e.enum('screen_saver_style', ea.STATE_SET, ['classic', 'analog clock']).withDescription('Screen saver style'),
3142
- e.numeric('standby_time', ea.STATE_SET).withValueMin(0).withValueMax(65534).withUnit('s').withDescription('Display standby time'),
3143
- e.enum('font_size', ea.STATE_SET, ['small', 'medium', 'large']).withDescription('Display font size'),
3144
- e.binary('lcd_auto_brightness_enabled', ea.STATE_SET, true, false).withDescription('Enable LCD auto brightness'),
3145
- e.enum('homepage', ea.STATE_SET, ['scene', 'feel', 'thermostat', 'switch']).withDescription('Default display homepage'),
3146
- e.binary('screen_saver_enabled', ea.STATE_SET, true, false).withDescription('Enable screen saver'),
3147
- e
3148
- .numeric('standby_lcd_brightness', ea.STATE_SET)
3149
- .withValueMin(1)
3150
- .withValueMax(100)
3151
- .withUnit('%')
3152
- .withDescription('Standby LCD brightness'),
3153
- e
3154
- .enum('available_switches', ea.STATE_SET, ['none', '1', '2', '3', '1 and 2', '1 and 3', '2 and 3', 'all'])
3155
- .withDescription('Control which switches are available in the switches screen (none disables switches screen)'),
3156
- e
3157
- .composite('switch_1_text_icon', 'switch_1_text_icon', ea.STATE_SET)
3158
- .withDescription('Switch 1 text and icon')
3159
- .withFeature(e.enum('switch_1_icon', ea.STATE_SET, ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11']).withDescription('Icon'))
3160
- .withFeature(e.text('switch_1_text', ea.STATE_SET).withDescription('Text')),
3161
- e
3162
- .composite('switch_2_text_icon', 'switch_2_text_icon', ea.STATE_SET)
3163
- .withDescription('Switch 2 text and icon')
3164
- .withFeature(e.enum('switch_2_icon', ea.STATE_SET, ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11']).withDescription('Icon'))
3165
- .withFeature(e.text('switch_2_text', ea.STATE_SET).withDescription('Text')),
3166
- e
3167
- .composite('switch_3_text_icon', 'switch_3_text_icon', ea.STATE_SET)
3168
- .withDescription('Switch 3 text and icon')
3169
- .withFeature(e.enum('switch_3_icon', ea.STATE_SET, ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11']).withDescription('Icon'))
3170
- .withFeature(e.text('switch_3_text', ea.STATE_SET).withDescription('Text')),
3171
- ],
3172
- configure: async (device, coordinatorEndpoint) => {
3173
- await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
3174
- await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
3175
- await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']);
3176
- await reporting.onOff(device.getEndpoint(1));
3177
- // await reporting.onOff(device.getEndpoint(2)); ToDo: Currently fails
3178
- // await reporting.onOff(device.getEndpoint(3)); ToDo: Currently fails
3179
- },
3180
- extend: [lumiZigbeeOTA()],
3181
- },
3182
- {
3183
- zigbeeModel: ['lumi.remote.b186acn03'],
3184
- model: 'WXKG05LM',
3185
- vendor: 'Aqara',
3186
- description: 'Wireless remote switch T1 (single rocker)',
3187
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
3188
- extend: [m.quirkCheckinInterval('1_HOUR')],
3189
- fromZigbee: [lumi.fromZigbee.lumi_action, lumi.fromZigbee.lumi_action_multistate, fromZigbee_1.default.battery, lumi.fromZigbee.lumi_specific],
3190
- toZigbee: [],
3191
- exposes: [e.action(['single', 'double', 'hold']), e.battery()],
3192
- },
3193
- {
3194
- zigbeeModel: ['lumi.remote.b28ac1'],
3195
- model: 'WXKG15LM',
3196
- vendor: 'Aqara',
3197
- whiteLabel: [{ vendor: 'Aqara', model: 'WRS-R02' }],
3198
- description: 'Wireless remote switch H1 (double rocker)',
3199
- fromZigbee: [fromZigbee_1.default.battery, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific, fromZigbee_1.default.command_toggle],
3200
- toZigbee: [lumi.toZigbee.lumi_switch_click_mode, lumi.toZigbee.lumi_operation_mode_opple],
3201
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } }, multiEndpoint: true },
3202
- extend: [m.quirkCheckinInterval('1_HOUR')],
3203
- exposes: [
3204
- e.battery(),
3205
- e.battery_voltage(),
3206
- e.action([
3207
- 'single_left',
3208
- 'single_right',
3209
- 'single_both',
3210
- 'double_left',
3211
- 'double_right',
3212
- 'double_both',
3213
- 'triple_left',
3214
- 'triple_right',
3215
- 'triple_both',
3216
- 'hold_left',
3217
- 'hold_right',
3218
- 'hold_both',
3219
- ]),
3220
- e
3221
- .enum('click_mode', ea.ALL, ['fast', 'multi'])
3222
- .withDescription('Click mode, fast: only supports single click which will be send immediately after clicking.' +
3223
- 'multi: supports more events like double and hold'),
3224
- e
3225
- .enum('operation_mode', ea.ALL, ['command', 'event'])
3226
- .withDescription('Operation mode, select "command" to enable bindings (wake up the device before changing modes!)'),
3227
- ],
3228
- configure: async (device, coordinatorEndpoint) => {
3229
- const endpoint1 = device.getEndpoint(1);
3230
- const endpoint2 = device.getEndpoint(3);
3231
- // set "event" mode
3232
- await endpoint1.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode });
3233
- // turn on the "multiple clicks" mode, otherwise the only "single click" events.
3234
- // if value is 1 - there will be single clicks, 2 - multiple.
3235
- await endpoint1.write('manuSpecificLumi', { 0x0125: { value: 0x02, type: 0x20 } }, { manufacturerCode: manufacturerCode });
3236
- await reporting.bind(endpoint1, coordinatorEndpoint, ['genOnOff', 'genPowerCfg']);
3237
- await reporting.bind(endpoint2, coordinatorEndpoint, ['genOnOff']);
3238
- // TODO/BUG:
3239
- // Did not understand how to separate the left and right keys in command mode -
3240
- // the "toggleCommand" always arrives from the first endpoint
3241
- },
3242
- },
3243
- {
3244
- zigbeeModel: ['lumi.switch.b1lc04'],
3245
- model: 'QBKG38LM',
3246
- vendor: 'Aqara',
3247
- description: 'Smart wall switch E1 (no neutral, single rocker)',
3248
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
3249
- toZigbee: [
3250
- toZigbee_1.default.on_off,
3251
- lumi.toZigbee.lumi_switch_operation_mode_opple,
3252
- lumi.toZigbee.lumi_switch_power_outage_memory,
3253
- lumi.toZigbee.lumi_switch_mode_switch,
3254
- lumi.toZigbee.lumi_flip_indicator_light,
3255
- ],
3256
- exposes: [
3257
- e.switch(),
3258
- e.power_outage_memory(),
3259
- e.action(['single', 'double']),
3260
- e.device_temperature(),
3261
- e.flip_indicator_light(),
3262
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for button'),
3263
- e
3264
- .enum('mode_switch', ea.ALL, ['anti_flicker_mode', 'quick_mode'])
3265
- .withDescription('Anti flicker mode can be used to solve blinking issues of some lights. Quick mode makes the device respond faster.'),
3266
- ],
3267
- configure: async (device, coordinatorEndpoint) => {
3268
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
3269
- },
3270
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
3271
- },
3272
- {
3273
- zigbeeModel: ['lumi.switch.b2lc04'],
3274
- model: 'QBKG39LM',
3275
- vendor: 'Aqara',
3276
- description: 'Smart wall switch E1 (no neutral, double rocker)',
3277
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
3278
- toZigbee: [
3279
- toZigbee_1.default.on_off,
3280
- lumi.toZigbee.lumi_switch_operation_mode_opple,
3281
- lumi.toZigbee.lumi_switch_power_outage_memory,
3282
- lumi.toZigbee.lumi_switch_mode_switch,
3283
- lumi.toZigbee.lumi_flip_indicator_light,
3284
- ],
3285
- meta: { multiEndpoint: true },
3286
- endpoint: (device) => {
3287
- return { left: 1, right: 2 };
3288
- },
3289
- exposes: [
3290
- e.switch().withEndpoint('left'),
3291
- e.switch().withEndpoint('right'),
3292
- e.device_temperature(),
3293
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
3294
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
3295
- e
3296
- .enum('mode_switch', ea.ALL, ['anti_flicker_mode', 'quick_mode'])
3297
- .withDescription('Anti flicker mode can be used to solve blinking issues of some lights. Quick mode makes the device respond faster.'),
3298
- e.action(['single_left', 'double_left', 'single_right', 'double_right', 'single_both', 'double_both']),
3299
- e.power_outage_memory(),
3300
- e.flip_indicator_light(),
3301
- ],
3302
- configure: async (device, coordinatorEndpoint) => {
3303
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
3304
- },
3305
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
3306
- },
3307
- {
3308
- zigbeeModel: ['lumi.airmonitor.acn01'],
3309
- model: 'VOCKQJK11LM',
3310
- vendor: 'Aqara',
3311
- whiteLabel: [{ vendor: 'Aqara', model: 'AAQS-S01' }],
3312
- description: 'TVOC air quality monitor',
3313
- fromZigbee: [fromZigbee_1.default.battery, lumi.fromZigbee.lumi_specific],
3314
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
3315
- exposes: [e.device_temperature(), e.battery(), e.battery_voltage()],
3316
- extend: [
3317
- m.quirkCheckinInterval('1_HOUR'),
3318
- m.quirkAddEndpointCluster({
3319
- endpointID: 1,
3320
- inputClusters: ['msTemperatureMeasurement', 'msRelativeHumidity', 'genAnalogInput', 'manuSpecificLumi'],
3321
- }),
3322
- lumiAirQuality(),
3323
- lumiVoc(),
3324
- m.temperature(),
3325
- m.humidity(),
3326
- lumiDisplayUnit(),
3327
- lumiOutageCountRestoreBindReporting(),
3328
- lumiZigbeeOTA(),
3329
- ],
3330
- configure: async (device, coordinatorEndpoint) => {
3331
- const endpoint = device.getEndpoint(1);
3332
- const binds = ['genPowerCfg'];
3333
- await reporting.bind(endpoint, coordinatorEndpoint, binds);
3334
- await reporting.batteryVoltage(endpoint);
3335
- },
3336
- },
3337
- {
3338
- zigbeeModel: ['lumi.switch.b2nc01'],
3339
- model: 'QBKG41LM',
3340
- vendor: 'Aqara',
3341
- description: 'Smart wall switch E1 (with neutral, double rocker)',
3342
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
3343
- toZigbee: [
3344
- toZigbee_1.default.on_off,
3345
- lumi.toZigbee.lumi_switch_operation_mode_opple,
3346
- lumi.toZigbee.lumi_switch_power_outage_memory,
3347
- lumi.toZigbee.lumi_flip_indicator_light,
3348
- ],
3349
- meta: { multiEndpoint: true },
3350
- endpoint: (device) => {
3351
- return { left: 1, right: 2 };
3352
- },
3353
- exposes: [
3354
- e.switch().withEndpoint('left'),
3355
- e.switch().withEndpoint('right'),
3356
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
3357
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
3358
- e.action(['single_left', 'double_left', 'single_right', 'double_right', 'single_both', 'double_both']),
3359
- e.power_outage_memory(),
3360
- e.device_temperature(),
3361
- e.flip_indicator_light(),
3362
- ],
3363
- configure: async (device, coordinatorEndpoint) => {
3364
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
3365
- },
3366
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
3367
- },
3368
- {
3369
- zigbeeModel: ['lumi.plug.macn01'],
3370
- model: 'ZNCZ15LM',
3371
- vendor: 'Aqara',
3372
- description: 'Smart plug T1, CN',
3373
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_specific],
3374
- toZigbee: [
3375
- toZigbee_1.default.on_off,
3376
- lumi.toZigbee.lumi_switch_power_outage_memory,
3377
- lumi.toZigbee.lumi_led_disabled_night,
3378
- lumi.toZigbee.lumi_overload_protection,
3379
- lumi.toZigbee.lumi_socket_button_lock,
3380
- ],
3381
- exposes: [
3382
- e.switch(),
3383
- e.power().withAccess(ea.STATE),
3384
- e.energy(),
3385
- e.device_temperature().withAccess(ea.STATE),
3386
- e.voltage(),
3387
- e.current(),
3388
- e.consumer_connected().withAccess(ea.STATE),
3389
- e.power_outage_memory(),
3390
- e.led_disabled_night(),
3391
- e.button_lock(),
3392
- e.overload_protection(100, 2500),
3393
- ],
3394
- extend: [lumiZigbeeOTA()],
3395
- },
3396
- {
3397
- zigbeeModel: ['lumi.switch.b1nc01'],
3398
- model: 'QBKG40LM',
3399
- vendor: 'Aqara',
3400
- description: 'Smart wall switch E1 (with neutral, single rocker)',
3401
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
3402
- toZigbee: [
3403
- toZigbee_1.default.on_off,
3404
- lumi.toZigbee.lumi_switch_operation_mode_opple,
3405
- lumi.toZigbee.lumi_switch_power_outage_memory,
3406
- lumi.toZigbee.lumi_flip_indicator_light,
3407
- ],
3408
- exposes: [
3409
- e.switch(),
3410
- e.action(['single', 'double']),
3411
- e.power_outage_memory(),
3412
- e.device_temperature(),
3413
- e.flip_indicator_light(),
3414
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode'),
3415
- ],
3416
- configure: async (device, coordinatorEndpoint) => {
3417
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
3418
- },
3419
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
3420
- },
3421
- {
3422
- zigbeeModel: ['lumi.remote.b1acn02'],
3423
- model: 'WXKG13LM',
3424
- vendor: 'Aqara',
3425
- description: 'Wireless mini switch T1',
3426
- whiteLabel: [
3427
- { vendor: 'Aqara', model: 'WB-R02D' },
3428
- { vendor: 'Yandex', model: 'YNDX-00524' },
3429
- ],
3430
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
3431
- fromZigbee: [fromZigbee_1.default.battery, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
3432
- toZigbee: [],
3433
- exposes: [e.battery(), e.battery_voltage(), e.action(['single', 'double', 'triple', 'quadruple', 'quintuple', 'hold', 'release', 'many'])],
3434
- configure: async (device, coordinatorEndpoint) => {
3435
- const endpoint1 = device.getEndpoint(1);
3436
- await endpoint1.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
3437
- },
3438
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
3439
- },
3440
- {
3441
- zigbeeModel: ['lumi.sen_ill.agl01'],
3442
- model: 'GZCGQ11LM',
3443
- vendor: 'Aqara',
3444
- description: 'Light sensor T1',
3445
- fromZigbee: [fromZigbee_1.default.battery, lumi.fromZigbee.lumi_specific],
3446
- toZigbee: [lumi.toZigbee.lumi_detection_period],
3447
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
3448
- exposes: [
3449
- e.battery(),
3450
- e.battery_voltage(),
3451
- e
3452
- .numeric('detection_period', exposes.access.ALL)
3453
- .withValueMin(1)
3454
- .withValueMax(59)
3455
- .withUnit('s')
3456
- .withDescription('Time interval in seconds to report after light changes'),
3457
- ],
3458
- configure: async (device, coordinatorEndpoint) => {
3459
- const endpoint = device.getEndpoint(1);
3460
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
3461
- await endpoint.read('manuSpecificLumi', [0x0000], { manufacturerCode: manufacturerCode });
3462
- },
3463
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA(), m.illuminance({ reporting: false })],
3464
- },
3465
- {
3466
- zigbeeModel: ['lumi.plug.sacn03'],
3467
- model: 'QBCZ15LM',
3468
- vendor: 'Aqara',
3469
- description: 'Smart wall outlet H1 (USB)',
3470
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_specific],
3471
- toZigbee: [
3472
- toZigbee_1.default.on_off,
3473
- lumi.toZigbee.lumi_switch_power_outage_memory,
3474
- lumi.toZigbee.lumi_led_disabled_night,
3475
- lumi.toZigbee.lumi_button_switch_mode,
3476
- lumi.toZigbee.lumi_overload_protection,
3477
- lumi.toZigbee.lumi_socket_button_lock,
3478
- ],
3479
- meta: { multiEndpoint: true, multiEndpointSkip: ['power', 'energy'] },
3480
- endpoint: () => {
3481
- return { relay: 1, usb: 2 };
3482
- },
3483
- exposes: [
3484
- e.switch().withEndpoint('relay'),
3485
- e.switch().withEndpoint('usb'),
3486
- e.power().withAccess(ea.STATE),
3487
- e.energy(),
3488
- e.device_temperature().withAccess(ea.STATE),
3489
- e.voltage(),
3490
- e.current(),
3491
- e.power_outage_memory(),
3492
- e.led_disabled_night(),
3493
- e.button_lock(),
3494
- e
3495
- .enum('button_switch_mode', exposes.access.ALL, ['relay', 'relay_and_usb'])
3496
- .withDescription('Control both relay and usb or only the relay with the physical switch button'),
3497
- e.overload_protection(100, 2500),
3498
- ],
3499
- extend: [lumiZigbeeOTA()],
3500
- },
3501
- {
3502
- zigbeeModel: ['lumi.magnet.agl02'],
3503
- model: 'MCCGQ12LM',
3504
- vendor: 'Aqara',
3505
- description: 'Door and window sensor T1',
3506
- whiteLabel: [
3507
- { vendor: 'Aqara', model: 'DW-S03D' },
3508
- { vendor: 'Yandex', model: 'YNDX-00520' },
3509
- ],
3510
- fromZigbee: [lumi.fromZigbee.lumi_contact, lumi.fromZigbee.lumi_specific, fromZigbee_1.default.ias_contact_alarm_1],
3511
- toZigbee: [],
3512
- exposes: [e.contact(), e.battery(), e.battery_voltage()],
3513
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
3514
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
3515
- },
3516
- {
3517
- zigbeeModel: ['lumi.plug.sacn02'],
3518
- model: 'QBCZ14LM',
3519
- vendor: 'Aqara',
3520
- description: 'Smart wall outlet T1',
3521
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_specific],
3522
- toZigbee: [
3523
- toZigbee_1.default.on_off,
3524
- lumi.toZigbee.lumi_switch_power_outage_memory,
3525
- lumi.toZigbee.lumi_led_disabled_night,
3526
- lumi.toZigbee.lumi_overload_protection,
3527
- lumi.toZigbee.lumi_socket_button_lock,
3528
- ],
3529
- exposes: [
3530
- e.switch(),
3531
- e.power().withAccess(ea.STATE),
3532
- e.energy(),
3533
- e.device_temperature().withAccess(ea.STATE),
3534
- e.voltage(),
3535
- e.current(),
3536
- e.power_outage_memory(),
3537
- e.led_disabled_night(),
3538
- e.button_lock(),
3539
- e.overload_protection(100, 2500),
3540
- ],
3541
- extend: [lumiZigbeeOTA()],
3542
- },
3543
- {
3544
- zigbeeModel: ['lumi.remote.rkba01'],
3545
- model: 'ZNXNKG02LM',
3546
- vendor: 'Aqara',
3547
- description: 'Smart rotary knob H1 (wireless)',
3548
- extend: [
3549
- m.quirkCheckinInterval('1_HOUR'),
3550
- lumiPreventReset(),
3551
- lumiCommandMode(),
3552
- lumiAction({ actionLookup: { hold: 0, single: 1, double: 2, release: 255 } }),
3553
- lumiBattery({ voltageToPercentage: { min: 2850, max: 3000 } }),
3554
- lumiKnobRotation(),
3555
- m.enumLookup({
3556
- name: 'sensitivity',
3557
- lookup: { low: 720, medium: 360, high: 180 },
3558
- cluster: 'manuSpecificLumi',
3559
- attribute: { ID: 0x0234, type: 0x21 },
3560
- description: 'Rotation sensitivity',
3561
- zigbeeCommandOptions: { manufacturerCode },
3562
- }),
3563
- ],
3564
- },
3565
- {
3566
- zigbeeModel: ['lumi.remote.acn003'],
3567
- model: 'WXKG16LM',
3568
- vendor: 'Aqara',
3569
- description: 'Wireless remote switch E1 (single rocker)',
3570
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
3571
- extend: [m.quirkCheckinInterval('1_HOUR')],
3572
- fromZigbee: [lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
3573
- toZigbee: [lumi.toZigbee.lumi_switch_click_mode],
3574
- exposes: [
3575
- e.battery(),
3576
- e.battery_voltage(),
3577
- e.action(['single', 'double', 'hold']),
3578
- e
3579
- .enum('click_mode', ea.ALL, ['fast', 'multi'])
3580
- .withDescription('Click mode, fast: only supports single click which will be send immediately after clicking.' +
3581
- 'multi: supports more events like double and hold'),
3582
- ],
3583
- configure: async (device, coordinatorEndpoint) => {
3584
- await device.getEndpoint(1).write('manuSpecificLumi', { 0x0125: { value: 0x02, type: 0x20 } }, { manufacturerCode: manufacturerCode });
3585
- },
3586
- },
3587
- {
3588
- zigbeeModel: ['lumi.remote.acn004'],
3589
- model: 'WXKG17LM',
3590
- vendor: 'Aqara',
3591
- description: 'Wireless remote switch E1 (double rocker)',
3592
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
3593
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiPreventReset()],
3594
- exposes: [
3595
- e.battery(),
3596
- e.battery_voltage(),
3597
- e.action(['single_left', 'single_right', 'single_both', 'double_left', 'double_right', 'hold_left', 'hold_right']),
3598
- e
3599
- .enum('click_mode', ea.ALL, ['fast', 'multi'])
3600
- .withDescription('Click mode, fast: only supports single click which will be send immediately after clicking, multi: supports more events like double and hold'),
3601
- ],
3602
- fromZigbee: [lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
3603
- toZigbee: [lumi.toZigbee.lumi_switch_click_mode],
3604
- configure: async (device, coordinatorEndpoint) => {
3605
- const endpoint1 = device.getEndpoint(1);
3606
- // set multiclick mode
3607
- await endpoint1.write('manuSpecificLumi', { 0x0125: { value: 0x02, type: 0x20 } }, { manufacturerCode: manufacturerCode });
3608
- },
3609
- },
3610
- {
3611
- zigbeeModel: ['lumi.remote.b18ac1'],
3612
- model: 'WXKG14LM',
3613
- vendor: 'Aqara',
3614
- description: 'Wireless remote switch H1 (single rocker)',
3615
- fromZigbee: [lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific, fromZigbee_1.default.command_toggle],
3616
- toZigbee: [lumi.toZigbee.lumi_switch_click_mode, lumi.toZigbee.lumi_operation_mode_opple],
3617
- exposes: [
3618
- e.battery(),
3619
- e.battery_voltage(),
3620
- e.action(['single', 'double', 'triple', 'hold']),
3621
- e
3622
- .enum('click_mode', ea.ALL, ['fast', 'multi'])
3623
- .withDescription('Click mode, fast: only supports single click which will be send immediately after clicking.' +
3624
- 'multi: supports more events like double and hold'),
3625
- e
3626
- .enum('operation_mode', ea.ALL, ['command', 'event'])
3627
- .withDescription('Operation mode, select "command" to enable bindings (wake up the device before changing modes!)'),
3628
- ],
3629
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
3630
- extend: [m.quirkCheckinInterval('1_HOUR')],
3631
- configure: async (device, coordinatorEndpoint) => {
3632
- const endpoint1 = device.getEndpoint(1);
3633
- await endpoint1.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
3634
- await endpoint1.read('manuSpecificLumi', [0x0125], { manufacturerCode: manufacturerCode });
3635
- },
3636
- },
3637
- {
3638
- zigbeeModel: ['lumi.airrtc.agl001'],
3639
- model: 'SRTS-A01',
3640
- vendor: 'Aqara',
3641
- description: 'Smart radiator thermostat E1',
3642
- fromZigbee: [lumi.fromZigbee.lumi_trv, fromZigbee_1.default.thermostat, fromZigbee_1.default.battery],
3643
- toZigbee: [lumi.toZigbee.lumi_trv, toZigbee_1.default.thermostat_occupied_heating_setpoint],
3644
- exposes: [
3645
- e.setup().withDescription('Indicates if the device is in setup mode (E11)'),
3646
- e
3647
- .climate()
3648
- .withSetpoint('occupied_heating_setpoint', 5, 30, 0.5)
3649
- .withLocalTemperature(ea.STATE, 'Current temperature measured by the internal or external sensor')
3650
- .withSystemMode(['off', 'heat'], ea.ALL)
3651
- .withPreset(['manual', 'away', 'auto'])
3652
- .setAccess('preset', ea.ALL),
3653
- e.temperature_sensor_select(['internal', 'external']).withAccess(ea.ALL),
3654
- e.external_temperature_input().withDescription('Input for remote temperature sensor (when sensor is set to external)'),
3655
- e.calibrated().withDescription('Indicates if this valve is calibrated, use the calibrate option to calibrate'),
3656
- e.enum('calibrate', ea.ALL, ['calibrate']).withDescription('Calibrates the valve').withCategory('config'),
3657
- e.child_lock().withAccess(ea.ALL),
3658
- e.window_detection_bool(),
3659
- e.window_open(),
3660
- e.valve_detection_bool(),
3661
- e
3662
- .valve_alarm()
3663
- .withDescription('Notifies of a temperature control abnormality if valve detection is enabled ' +
3664
- '(e.g., thermostat not installed correctly, valve failure or incorrect calibration, ' +
3665
- 'incorrect link to external temperature sensor)'),
3666
- e.away_preset_temperature().withAccess(ea.ALL),
3667
- e.battery_voltage(),
3668
- e.battery(),
3669
- e.power_outage_count(),
3670
- e.device_temperature(),
3671
- e.schedule(),
3672
- e
3673
- .schedule_settings()
3674
- .withDescription('Smart schedule configuration (default: mon,tue,wed,thu,fri|8:00,24.0|18:00,17.0|23:00,22.0|8:00,22.0)'),
3675
- ],
3676
- configure: async (device, coordinatorEndpoint) => {
3677
- const endpoint = device.getEndpoint(1);
3678
- // Initialize battery percentage and voltage
3679
- await endpoint.read('manuSpecificLumi', [0x040a], { manufacturerCode: manufacturerCode });
3680
- await endpoint.read('genPowerCfg', ['batteryVoltage']);
3681
- },
3682
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
3683
- },
3684
- {
3685
- zigbeeModel: ['aqara.feeder.acn001'],
3686
- model: 'ZNCWWSQ01LM',
3687
- vendor: 'Aqara',
3688
- description: 'Smart pet feeder C1',
3689
- whiteLabel: [{ vendor: 'Aqara', model: 'PETC1-M01' }],
3690
- fromZigbee: [lumi.fromZigbee.lumi_feeder],
3691
- toZigbee: [lumi.toZigbee.lumi_feeder],
3692
- exposes: [
3693
- e.enum('feed', ea.STATE_SET, ['', 'START']).withDescription('Start feeding'),
3694
- e.enum('feeding_source', ea.STATE, ['schedule', 'manual', 'remote']).withDescription('Feeding source'),
3695
- e.numeric('feeding_size', ea.STATE).withDescription('Feeding size').withUnit('portion'),
3696
- e.numeric('portions_per_day', ea.STATE).withDescription('Portions per day'),
3697
- e.numeric('weight_per_day', ea.STATE).withDescription('Weight per day').withUnit('g'),
3698
- e.binary('error', ea.STATE, true, false).withDescription('Indicates whether there is an error with the feeder'),
3699
- e
3700
- .list('schedule', ea.STATE_SET, e
3701
- .composite('dayTime', 'dayTime', exposes.access.STATE_SET)
3702
- .withFeature(e.enum('days', exposes.access.STATE_SET, [
3703
- 'everyday',
3704
- 'workdays',
3705
- 'weekend',
3706
- 'mon',
3707
- 'tue',
3708
- 'wed',
3709
- 'thu',
3710
- 'fri',
3711
- 'sat',
3712
- 'sun',
3713
- 'mon-wed-fri-sun',
3714
- 'tue-thu-sat',
3715
- ]))
3716
- .withFeature(e.numeric('hour', exposes.access.STATE_SET))
3717
- .withFeature(e.numeric('minute', exposes.access.STATE_SET))
3718
- .withFeature(e.numeric('size', exposes.access.STATE_SET)))
3719
- .withDescription('Feeding schedule'),
3720
- e
3721
- .binary('led_indicator', ea.STATE_SET, 'ON', 'OFF')
3722
- .withLabel('Disable LED at night')
3723
- .withDescription('LED indicator will be disabled every day from 21:00 to 09:00')
3724
- .withCategory('config'),
3725
- e.child_lock(),
3726
- e.enum('mode', ea.STATE_SET, ['schedule', 'manual']).withDescription('Feeding mode'),
3727
- e
3728
- .numeric('serving_size', ea.STATE_SET)
3729
- .withValueMin(1)
3730
- .withValueMax(10)
3731
- .withDescription('One serving size')
3732
- .withUnit('portion')
3733
- .withCategory('config'),
3734
- e
3735
- .numeric('portion_weight', ea.STATE_SET)
3736
- .withValueMin(1)
3737
- .withValueMax(20)
3738
- .withDescription('Portion weight')
3739
- .withUnit('g')
3740
- .withCategory('config'),
3741
- ],
3742
- extend: [lumiZigbeeOTA()],
3743
- configure: async (device, coordinatorEndpoint) => {
3744
- const endpoint = device.getEndpoint(1);
3745
- await endpoint.read('manuSpecificLumi', [0xfff1], { manufacturerCode: manufacturerCode });
3746
- device.powerSource = 'Mains (single phase)';
3747
- device.save();
3748
- },
3749
- },
3750
- {
3751
- zigbeeModel: ['lumi.remote.acn007'],
3752
- model: 'WXKG20LM',
3753
- vendor: 'Aqara',
3754
- description: 'Wireless mini switch E1',
3755
- fromZigbee: [fromZigbee_1.default.battery, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
3756
- toZigbee: [],
3757
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
3758
- extend: [m.quirkCheckinInterval('1_HOUR')],
3759
- exposes: [
3760
- e.battery(),
3761
- e.battery_voltage(),
3762
- e.action(['single', 'double', 'hold', 'release']),
3763
- e.device_temperature(),
3764
- e.power_outage_count(),
3765
- ],
3766
- },
3767
- {
3768
- zigbeeModel: ['lumi.remote.acn009'],
3769
- model: 'WXKG22LM',
3770
- vendor: 'Aqara',
3771
- description: 'Wireless remote switch H1M (double rocker)',
3772
- fromZigbee: [fromZigbee_1.default.battery, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific, fromZigbee_1.default.command_toggle],
3773
- toZigbee: [lumi.toZigbee.lumi_switch_click_mode, lumi.toZigbee.lumi_operation_mode_opple],
3774
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } }, multiEndpoint: true },
3775
- extend: [m.quirkCheckinInterval('1_HOUR')],
3776
- exposes: [
3777
- e.battery(),
3778
- e.battery_voltage(),
3779
- e.action([
3780
- 'single_left',
3781
- 'single_right',
3782
- 'single_both',
3783
- 'double_left',
3784
- 'double_right',
3785
- 'double_both',
3786
- 'triple_left',
3787
- 'triple_right',
3788
- 'triple_both',
3789
- 'hold_left',
3790
- 'hold_right',
3791
- 'hold_both',
3792
- ]),
3793
- e
3794
- .enum('click_mode', ea.ALL, ['fast', 'multi'])
3795
- .withDescription('Click mode, fast: only supports single click which will be send immediately after clicking.' +
3796
- 'multi: supports more events like double and hold'),
3797
- e
3798
- .enum('operation_mode', ea.ALL, ['command', 'event'])
3799
- .withDescription('Operation mode, select "command" to enable bindings (wake up the device before changing modes!)'),
3800
- ],
3801
- configure: async (device, coordinatorEndpoint) => {
3802
- const endpoint1 = device.getEndpoint(1);
3803
- const endpoint2 = device.getEndpoint(3);
3804
- // set "event" mode
3805
- await endpoint1.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode });
3806
- // turn on the "multiple clicks" mode, otherwise the only "single click" events.
3807
- // if value is 1 - there will be single clicks, 2 - multiple.
3808
- await endpoint1.write('manuSpecificLumi', { 0x0125: { value: 0x02, type: 0x20 } }, { manufacturerCode: manufacturerCode });
3809
- await reporting.bind(endpoint1, coordinatorEndpoint, ['genOnOff', 'genPowerCfg']);
3810
- await reporting.bind(endpoint2, coordinatorEndpoint, ['genOnOff']);
3811
- // TODO/BUG:
3812
- // Did not understand how to separate the left and right keys in command mode -
3813
- // the "toggleCommand" always arrives from the first endpoint
3814
- },
3815
- },
3816
- {
3817
- zigbeeModel: ['lumi.remote.b286acn03'],
3818
- model: 'WXKG04LM',
3819
- vendor: 'Aqara',
3820
- description: 'Wireless remote switch T1 (double rocker)',
3821
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
3822
- fromZigbee: [lumi.fromZigbee.lumi_basic, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
3823
- toZigbee: [],
3824
- endpoint: (device) => {
3825
- return { left: 1, right: 2, both: 3 };
3826
- },
3827
- exposes: [
3828
- e.battery(),
3829
- e.battery_voltage(),
3830
- e.action([
3831
- 'button_1_hold',
3832
- 'button_1_release',
3833
- 'button_1_single',
3834
- 'button_1_double',
3835
- 'button_1_triple',
3836
- 'button_2_hold',
3837
- 'button_2_release',
3838
- 'button_2_single',
3839
- 'button_2_double',
3840
- 'button_2_triple',
3841
- 'button_3_hold',
3842
- 'button_3_release',
3843
- 'button_3_single',
3844
- 'button_3_double',
3845
- 'button_3_triple',
3846
- ]),
3847
- ],
3848
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
3849
- },
3850
- {
3851
- zigbeeModel: ['lumi.switch.acn048'],
3852
- model: 'ZNQBKG38LM',
3853
- vendor: 'Aqara',
3854
- description: 'Smart wall switch Z1 (single rocker)',
3855
- extend: [
3856
- lumiZigbeeOTA(),
3857
- lumiPreventReset(),
3858
- lumiOnOff({ operationMode: true, powerOutageMemory: 'enum', lockRelay: true }),
3859
- lumiAction(),
3860
- lumiElectricityMeter(),
3861
- lumiPower(),
3862
- lumiLedDisabledNight(),
3863
- lumiClickMode({ attribute: { ID: 0x0286, type: 0x20 } }),
3864
- lumiSetEventMode(),
3865
- ],
3866
- },
3867
- {
3868
- zigbeeModel: ['lumi.switch.acn049'],
3869
- model: 'ZNQBKG39LM',
3870
- vendor: 'Aqara',
3871
- description: 'Smart wall switch Z1 (double rocker)',
3872
- extend: [
3873
- lumiZigbeeOTA(),
3874
- lumiPreventReset(),
3875
- m.deviceEndpoints({ endpoints: { top: 1, bottom: 2 } }),
3876
- lumiOnOff({
3877
- operationMode: true,
3878
- powerOutageMemory: 'enum',
3879
- lockRelay: true,
3880
- endpointNames: ['top', 'bottom'],
3881
- }),
3882
- lumiAction({ endpointNames: ['top', 'bottom'] }),
3883
- lumiElectricityMeter(),
3884
- lumiPower(),
3885
- lumiLedDisabledNight(),
3886
- lumiClickMode({ attribute: { ID: 0x0286, type: 0x20 } }),
3887
- lumiSetEventMode(),
3888
- ],
3889
- },
3890
- {
3891
- zigbeeModel: ['lumi.switch.acn054'],
3892
- model: 'ZNQBKG40LM',
3893
- vendor: 'Aqara',
3894
- description: 'Smart wall switch Z1 (triple rocker)',
3895
- extend: [
3896
- lumiZigbeeOTA(),
3897
- lumiPreventReset(),
3898
- m.deviceEndpoints({ endpoints: { top: 1, center: 2, bottom: 3 } }),
3899
- lumiOnOff({
3900
- operationMode: true,
3901
- powerOutageMemory: 'enum',
3902
- lockRelay: true,
3903
- endpointNames: ['top', 'center', 'bottom'],
3904
- }),
3905
- lumiAction({ endpointNames: ['top', 'center', 'bottom'] }),
3906
- lumiElectricityMeter(),
3907
- lumiPower(),
3908
- lumiLedDisabledNight(),
3909
- lumiClickMode({ attribute: { ID: 0x0286, type: 0x20 } }),
3910
- lumiSetEventMode(),
3911
- ],
3912
- },
3913
- {
3914
- zigbeeModel: ['lumi.switch.acn055'],
3915
- model: 'ZNQBKG41LM',
3916
- vendor: 'Aqara',
3917
- description: 'Smart wall switch Z1 (quadruple rocker)',
3918
- extend: [
3919
- lumiZigbeeOTA(),
3920
- lumiPreventReset(),
3921
- m.deviceEndpoints({ endpoints: { top: 1, center: 2, bottom: 3, wireless: 4 } }),
3922
- lumiOnOff({
3923
- operationMode: true,
3924
- powerOutageMemory: 'enum',
3925
- lockRelay: true,
3926
- endpointNames: ['top', 'center', 'bottom'],
3927
- }),
3928
- lumiAction({
3929
- actionLookup: { hold: 0, single: 1, double: 2, release: 255 },
3930
- endpointNames: ['top', 'center', 'bottom', 'wireless'],
3931
- }),
3932
- lumiElectricityMeter(),
3933
- lumiPower(),
3934
- lumiLedDisabledNight(),
3935
- lumiClickMode({ attribute: { ID: 0x0286, type: 0x20 } }),
3936
- lumiSetEventMode(),
3937
- ],
3938
- },
3939
- {
3940
- zigbeeModel: ['lumi.switch.acn056'],
3941
- model: 'ZNQBKG42LM',
3942
- vendor: 'Aqara',
3943
- description: 'Smart wall switch Z1 Pro (single rocker)',
3944
- extend: [
3945
- lumiZigbeeOTA(),
3946
- lumiPreventReset(),
3947
- lumiOnOff({ operationMode: true, powerOutageMemory: 'enum', lockRelay: true }),
3948
- lumiAction({ extraActions: ['slider_single', 'slider_double', 'slider_hold', 'slider_up', 'slider_down'] }),
3949
- lumiElectricityMeter(),
3950
- lumiPower(),
3951
- lumiClickMode({ attribute: { ID: 0x0286, type: 0x20 } }),
3952
- lumiSlider(),
3953
- lumiSwitchMode(),
3954
- ],
3955
- },
3956
- {
3957
- zigbeeModel: ['lumi.switch.acn057'],
3958
- model: 'ZNQBKG43LM',
3959
- vendor: 'Aqara',
3960
- description: 'Smart wall switch Z1 Pro (double rocker)',
3961
- extend: [
3962
- lumiZigbeeOTA(),
3963
- lumiPreventReset(),
3964
- m.deviceEndpoints({ endpoints: { top: 1, bottom: 2 } }),
3965
- lumiOnOff({
3966
- operationMode: true,
3967
- powerOutageMemory: 'enum',
3968
- lockRelay: true,
3969
- endpointNames: ['top', 'bottom'],
3970
- }),
3971
- lumiAction({
3972
- endpointNames: ['top', 'bottom'],
3973
- extraActions: ['slider_single', 'slider_double', 'slider_hold', 'slider_up', 'slider_down'],
3974
- }),
3975
- lumiElectricityMeter(),
3976
- lumiPower(),
3977
- lumiClickMode({ attribute: { ID: 0x0286, type: 0x20 } }),
3978
- lumiSlider(),
3979
- lumiSwitchMode(),
3980
- ],
3981
- },
3982
- {
3983
- zigbeeModel: ['lumi.switch.acn058'],
3984
- model: 'ZNQBKG44LM',
3985
- vendor: 'Aqara',
3986
- description: 'Smart wall switch Z1 Pro (triple rocker)',
3987
- extend: [
3988
- lumiZigbeeOTA(),
3989
- lumiPreventReset(),
3990
- m.deviceEndpoints({ endpoints: { top: 1, center: 2, bottom: 3 } }),
3991
- lumiOnOff({
3992
- operationMode: true,
3993
- powerOutageMemory: 'enum',
3994
- lockRelay: true,
3995
- endpointNames: ['top', 'center', 'bottom'],
3996
- }),
3997
- lumiAction({
3998
- endpointNames: ['top', 'center', 'bottom'],
3999
- extraActions: ['slider_single', 'slider_double', 'slider_hold', 'slider_up', 'slider_down'],
4000
- }),
4001
- lumiElectricityMeter(),
4002
- lumiPower(),
4003
- lumiClickMode({ attribute: { ID: 0x0286, type: 0x20 } }),
4004
- lumiSlider(),
4005
- lumiSwitchMode(),
4006
- ],
4007
- },
4008
- {
4009
- zigbeeModel: ['lumi.switch.acn059'],
4010
- model: 'ZNQBKG45LM',
4011
- vendor: 'Aqara',
4012
- description: 'Smart wall switch Z1 Pro (quadruple rocker)',
4013
- extend: [
4014
- lumiZigbeeOTA(),
4015
- lumiPreventReset(),
4016
- m.deviceEndpoints({ endpoints: { top: 1, center: 2, bottom: 3, wireless: 4 } }),
4017
- lumiOnOff({
4018
- operationMode: true,
4019
- powerOutageMemory: 'enum',
4020
- lockRelay: true,
4021
- endpointNames: ['top', 'center', 'bottom'],
4022
- }),
4023
- lumiAction({
4024
- actionLookup: { hold: 0, single: 1, double: 2, release: 255 },
4025
- endpointNames: ['top', 'center', 'bottom', 'wireless'],
4026
- extraActions: ['slider_single', 'slider_double', 'slider_hold', 'slider_up', 'slider_down'],
4027
- }),
4028
- lumiElectricityMeter(),
4029
- lumiPower(),
4030
- lumiClickMode({ attribute: { ID: 0x0286, type: 0x20 } }),
4031
- lumiSlider(),
4032
- lumiSwitchMode(),
4033
- ],
4034
- },
4035
- {
4036
- zigbeeModel: ['lumi.switch.acn061'],
4037
- model: 'WS-K01D',
4038
- vendor: 'Aqara',
4039
- description: 'Smart wall switch H1 20A (with neutral, single rocker)',
4040
- extend: [
4041
- lumiZigbeeOTA(),
4042
- lumiPreventReset(),
4043
- lumiOnOff({ operationMode: true, powerOutageMemory: 'binary' }),
4044
- lumiAction({ actionLookup: { single: 1, double: 2 } }),
4045
- lumiElectricityMeter(),
4046
- lumiPower(),
4047
- lumiLedDisabledNight(),
4048
- lumiSetEventMode(),
4049
- lumiFlipIndicatorLight(),
4050
- ],
4051
- },
4052
- {
4053
- zigbeeModel: ['lumi.remote.cagl02'],
4054
- model: 'CTP-R01',
4055
- vendor: 'Aqara',
4056
- whiteLabel: [{ vendor: 'Aqara', model: 'MFCZQ12LM' }],
4057
- description: 'Cube T1 Pro',
4058
- meta: { battery: { voltageToPercentage: { min: 2850, max: 3000 } } },
4059
- extend: [m.quirkCheckinInterval('1_HOUR'), lumiZigbeeOTA()],
4060
- fromZigbee: [
4061
- lumi.fromZigbee.lumi_specific,
4062
- lumi.fromZigbee.lumi_action_multistate,
4063
- lumi.fromZigbee.lumi_action_analog,
4064
- fromZigbee_1.default.ignore_onoff_report,
4065
- ],
4066
- toZigbee: [lumi.toZigbee.lumi_cube_operation_mode],
4067
- exposes: [
4068
- e.battery(),
4069
- e.battery_voltage(),
4070
- e.power_outage_count(false),
4071
- e
4072
- .enum('operation_mode', ea.SET, ['action_mode', 'scene_mode'])
4073
- .withDescription('[Soft Switch]: There is a configuration window, opens once an hour on itself, ' +
4074
- 'only during which the cube will respond to mode switch. ' +
4075
- 'Mode switch will be scheduled to take effect when the window becomes available. ' +
4076
- 'You can also give it a throw action (no backward motion) to force a respond! ' +
4077
- 'Otherwise, you may open lid and click LINK once to make the cube respond immediately. ' +
4078
- '[Hard Switch]: Open lid and click LINK button 5 times.'),
4079
- e.cube_side('side'),
4080
- e
4081
- .action([
4082
- 'shake',
4083
- 'throw',
4084
- 'tap',
4085
- 'slide',
4086
- 'flip180',
4087
- 'flip90',
4088
- 'hold',
4089
- 'side_up',
4090
- 'rotate_left',
4091
- 'rotate_right',
4092
- '1_min_inactivity',
4093
- 'flip_to_side',
4094
- ])
4095
- .withDescription('Triggered action'),
4096
- e.cube_side('action_from_side'),
4097
- e.angle('action_angle'),
4098
- ],
4099
- configure: async (device, coordinatorEndpoint) => {
4100
- device.softwareBuildID = `0.0.0_00${device.applicationVersion}`;
4101
- device.save();
4102
- const endpoint = device.getEndpoint(1);
4103
- await endpoint.write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableDefaultResponse: true, disableResponse: true });
4104
- await endpoint.read('manuSpecificLumi', [0x148], {
4105
- manufacturerCode: manufacturerCode,
4106
- disableDefaultResponse: true,
4107
- disableResponse: true,
4108
- });
4109
- },
4110
- },
4111
- {
4112
- zigbeeModel: ['lumi.switch.acn040'],
4113
- model: 'ZNQBKG31LM',
4114
- vendor: 'Aqara',
4115
- description: 'Smart wall switch E1 (with neutral, triple rocker)',
4116
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
4117
- toZigbee: [
4118
- toZigbee_1.default.on_off,
4119
- lumi.toZigbee.lumi_switch_operation_mode_opple,
4120
- lumi.toZigbee.lumi_switch_power_outage_memory,
4121
- lumi.toZigbee.lumi_switch_mode_switch,
4122
- lumi.toZigbee.lumi_flip_indicator_light,
4123
- ],
4124
- endpoint: (device) => {
4125
- return { left: 1, center: 2, right: 3 };
4126
- },
4127
- meta: { multiEndpoint: true },
4128
- exposes: [
4129
- e.switch().withEndpoint('left'),
4130
- e.switch().withEndpoint('center'),
4131
- e.switch().withEndpoint('right'),
4132
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
4133
- e
4134
- .enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
4135
- .withDescription('Decoupled mode for center button')
4136
- .withEndpoint('center'),
4137
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
4138
- e.action([
4139
- 'single_left',
4140
- 'double_left',
4141
- 'single_center',
4142
- 'double_center',
4143
- 'single_right',
4144
- 'double_right',
4145
- 'single_left_center',
4146
- 'double_left_center',
4147
- 'single_left_right',
4148
- 'double_left_right',
4149
- 'single_center_right',
4150
- 'double_center_right',
4151
- 'single_all',
4152
- 'double_all',
4153
- ]),
4154
- e.power_outage_memory(),
4155
- e.device_temperature(),
4156
- e.flip_indicator_light(),
4157
- ],
4158
- configure: async (device, coordinatorEndpoint) => {
4159
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
4160
- },
4161
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
4162
- },
4163
- {
4164
- zigbeeModel: ['lumi.switch.acn029'],
4165
- model: 'ZNQBKG24LM',
4166
- vendor: 'Aqara',
4167
- description: 'Smart wall switch H1M (with neutral, single rocker)',
4168
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_power, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific],
4169
- toZigbee: [
4170
- toZigbee_1.default.on_off,
4171
- lumi.toZigbee.lumi_switch_operation_mode_opple,
4172
- lumi.toZigbee.lumi_switch_power_outage_memory,
4173
- lumi.toZigbee.lumi_led_disabled_night,
4174
- lumi.toZigbee.lumi_flip_indicator_light,
4175
- ],
4176
- exposes: [
4177
- e.switch(),
4178
- e.power(),
4179
- e.energy(),
4180
- e.voltage(),
4181
- e.device_temperature(),
4182
- e.action(['single', 'double']),
4183
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode'),
4184
- e.power_outage_memory(),
4185
- e.led_disabled_night(),
4186
- e.flip_indicator_light(),
4187
- ],
4188
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
4189
- },
4190
- {
4191
- zigbeeModel: ['lumi.switch.acn030'],
4192
- model: 'ZNQBKG25LM',
4193
- vendor: 'Aqara',
4194
- description: 'Smart wall switch H1M (with neutral, double rocker)',
4195
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific, lumi.fromZigbee.lumi_power],
4196
- toZigbee: [
4197
- toZigbee_1.default.on_off,
4198
- lumi.toZigbee.lumi_switch_operation_mode_opple,
4199
- lumi.toZigbee.lumi_switch_power_outage_memory,
4200
- lumi.toZigbee.lumi_led_disabled_night,
4201
- lumi.toZigbee.lumi_flip_indicator_light,
4202
- ],
4203
- endpoint: (device) => {
4204
- return { left: 1, right: 2 };
4205
- },
4206
- meta: { multiEndpoint: true, multiEndpointSkip: ['power', 'energy'] },
4207
- exposes: [
4208
- e.power(),
4209
- e.energy(),
4210
- e.voltage(),
4211
- e.switch().withEndpoint('left'),
4212
- e.switch().withEndpoint('right'),
4213
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
4214
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
4215
- e.action([
4216
- 'single_left',
4217
- 'double_left',
4218
- 'single_right',
4219
- 'double_right',
4220
- 'single_left_right',
4221
- 'double_left_right',
4222
- 'single_all',
4223
- 'double_all',
4224
- ]),
4225
- e.power_outage_memory(),
4226
- e.led_disabled_night(),
4227
- e.device_temperature(),
4228
- e.flip_indicator_light(),
4229
- ],
4230
- configure: async (device, coordinatorEndpoint) => {
4231
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
4232
- },
4233
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
4234
- },
4235
- {
4236
- zigbeeModel: ['lumi.switch.acn031'],
4237
- model: 'ZNQBKG26LM',
4238
- vendor: 'Aqara',
4239
- description: 'Smart wall switch H1M (with neutral, triple rocker)',
4240
- fromZigbee: [fromZigbee_1.default.on_off, lumi.fromZigbee.lumi_action_multistate, lumi.fromZigbee.lumi_specific, lumi.fromZigbee.lumi_power],
4241
- toZigbee: [
4242
- toZigbee_1.default.on_off,
4243
- lumi.toZigbee.lumi_switch_operation_mode_opple,
4244
- lumi.toZigbee.lumi_switch_power_outage_memory,
4245
- lumi.toZigbee.lumi_led_disabled_night,
4246
- lumi.toZigbee.lumi_flip_indicator_light,
4247
- ],
4248
- endpoint: (device) => {
4249
- return { left: 1, center: 2, right: 3 };
4250
- },
4251
- meta: { multiEndpoint: true, multiEndpointSkip: ['power', 'energy'] },
4252
- exposes: [
4253
- e.power(),
4254
- e.energy(),
4255
- e.voltage(),
4256
- e.switch().withEndpoint('left'),
4257
- e.switch().withEndpoint('center'),
4258
- e.switch().withEndpoint('right'),
4259
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for left button').withEndpoint('left'),
4260
- e
4261
- .enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
4262
- .withDescription('Decoupled mode for center button')
4263
- .withEndpoint('center'),
4264
- e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button').withEndpoint('right'),
4265
- e.action([
4266
- 'single_left',
4267
- 'double_left',
4268
- 'single_center',
4269
- 'double_center',
4270
- 'single_right',
4271
- 'double_right',
4272
- 'single_left_center',
4273
- 'double_left_center',
4274
- 'single_left_right',
4275
- 'double_left_right',
4276
- 'single_center_right',
4277
- 'double_center_right',
4278
- 'single_all',
4279
- 'double_all',
4280
- ]),
4281
- e.power_outage_memory(),
4282
- e.led_disabled_night(),
4283
- e.device_temperature(),
4284
- e.flip_indicator_light(),
4285
- ],
4286
- configure: async (device, coordinatorEndpoint) => {
4287
- await device.getEndpoint(1).write('manuSpecificLumi', { mode: 1 }, { manufacturerCode: manufacturerCode, disableResponse: true });
4288
- },
4289
- extend: [lumiZigbeeOTA(), lumiPreventReset()],
4290
- },
4291
- {
4292
- zigbeeModel: ['lumi.plug.aeu001'],
4293
- model: 'WP-P01D',
4294
- vendor: 'Aqara',
4295
- description: 'Smart wall outlet H2 EU',
4296
- extend: [
4297
- lumiZigbeeOTA(),
4298
- lumiOnOff({ powerOutageMemory: 'enum' }),
4299
- lumiPower(),
4300
- lumiElectricityMeter(),
4301
- lumiOverloadProtection(),
4302
- lumiLedIndicator(),
4303
- lumiButtonLock(),
4304
- m.binary({
4305
- name: 'charging_protection',
4306
- cluster: 'manuSpecificLumi',
4307
- attribute: { ID: 0x0202, type: 0x10 },
4308
- valueOn: ['ON', 1],
4309
- valueOff: ['OFF', 0],
4310
- description: 'Turn off the outlet if the power is below the set limit for half an hour',
4311
- access: 'ALL',
4312
- zigbeeCommandOptions: { manufacturerCode },
4313
- }),
4314
- m.numeric({
4315
- name: 'charging_limit',
4316
- cluster: 'manuSpecificLumi',
4317
- attribute: { ID: 0x0206, type: 0x39 },
4318
- valueMin: 0.1,
4319
- valueMax: 2,
4320
- valueStep: 0.1,
4321
- unit: 'W',
4322
- description: 'Charging protection power limit',
4323
- access: 'ALL',
4324
- zigbeeCommandOptions: { manufacturerCode },
4325
- }),
4326
- ],
4327
- },
4328
- {
4329
- zigbeeModel: ['lumi.light.acn031'],
4330
- model: 'HCXDD12LM',
4331
- vendor: 'Aqara',
4332
- description: 'Ceiling light T1',
4333
- extend: [
4334
- m.deviceEndpoints({ endpoints: { white: 1, rgb: 2 } }),
4335
- lumiLight({ colorTemp: true, powerOutageMemory: 'light', endpointNames: ['white'] }),
4336
- lumiLight({ colorTemp: true, deviceTemperature: false, powerOutageCount: false, color: { modes: ['xy', 'hs'] }, endpointNames: ['rgb'] }),
4337
- lumiZigbeeOTA(),
4338
- ],
4339
- },
4340
- {
4341
- zigbeeModel: ['lumi.light.acn032'],
4342
- model: 'CL-L02D',
4343
- vendor: 'Aqara',
4344
- description: 'Ceiling light T1M',
4345
- extend: [
4346
- m.deviceEndpoints({ endpoints: { white: 1, rgb: 2 } }),
4347
- lumiLight({ colorTemp: true, endpointNames: ['white'] }),
4348
- lumiLight({ colorTemp: true, deviceTemperature: false, powerOutageCount: false, color: { modes: ['xy', 'hs'] }, endpointNames: ['rgb'] }),
4349
- lumiZigbeeOTA(),
4350
- m.enumLookup({
4351
- name: 'power_on_behaviour',
4352
- lookup: { on: 0, previous: 1, off: 2 },
4353
- cluster: 'manuSpecificLumi',
4354
- attribute: { ID: 0x0517, type: 0x20 },
4355
- description: 'Controls the behavior when the device is powered on after power loss',
4356
- zigbeeCommandOptions: { manufacturerCode },
4357
- }),
4358
- ],
4359
- },
4360
- {
4361
- zigbeeModel: ['lumi.switch.rkna01'],
4362
- model: 'ZNXNKG01LM',
4363
- vendor: 'Aqara',
4364
- description: 'Smart rotary knob H1 (with neutral)',
4365
- extend: [
4366
- lumiPreventReset(),
4367
- m.deviceEndpoints({ endpoints: { left: 1, center: 2, right: 3 } }),
4368
- lumiOnOff({ powerOutageMemory: 'binary', endpointNames: ['left', 'center', 'right'] }),
4369
- lumiCommandMode(),
4370
- lumiAction({ actionLookup: { hold: 0, single: 1, double: 2, release: 255 } }),
4371
- lumiKnobRotation(),
4372
- lumiElectricityMeter(),
4373
- lumiPower(),
4374
- lumiZigbeeOTA(),
4375
- ],
4376
- },
4377
- {
4378
- zigbeeModel: ['lumi.valve.agl001'],
4379
- model: 'VC-X01D',
4380
- vendor: 'Aqara',
4381
- description: 'Valve controller T1',
4382
- extend: [lumiZigbeeOTA(), m.onOff({ powerOnBehavior: false }), m.battery()],
4383
- },
4384
- {
4385
- zigbeeModel: ['lumi.switch.agl009'],
4386
- model: 'WS-K07E',
4387
- vendor: 'Aqara',
4388
- description: 'Light switch H2 EU (single rocker)',
4389
- extend: [
4390
- lumiZigbeeOTA(),
4391
- lumiPreventLeave(),
4392
- m.deviceEndpoints({ endpoints: { up: 1, down: 4 } }),
4393
- m.bindCluster({ endpointNames: ['up', 'down'], cluster: 'manuSpecificLumi', clusterType: 'input' }),
4394
- m.bindCluster({ endpointNames: ['up'], cluster: 'genOnOff', clusterType: 'input' }),
4395
- m.electricityMeter({ voltage: false }),
4396
- lumiLedIndicator(),
4397
- lumiFlipIndicatorLight(),
4398
- lumiAction({ endpointNames: ['up', 'down'], actionLookup: { hold: 0, single: 1, double: 2, release: 255 } }),
4399
- lumiOnOff({ powerOutageMemory: 'enum', endpointNames: ['up'] }),
4400
- lumiOperationMode({ description: 'Decoupled mode for switch', endpointName: 'up' }),
4401
- lumiLockRelay({ description: 'Lock switch', endpointName: 'up' }),
4402
- lumiMultiClick({ description: 'Multi-click mode for down button', endpointName: 'down' }),
4403
- ],
4404
- },
4405
- {
4406
- zigbeeModel: ['lumi.switch.agl010'],
4407
- model: 'WS-K08E',
4408
- vendor: 'Aqara',
4409
- description: 'Light switch H2 EU (double rocker)',
4410
- extend: [
4411
- lumiZigbeeOTA(),
4412
- lumiPreventLeave(),
4413
- m.deviceEndpoints({ endpoints: { left: 1, right: 2, left_down: 4, right_down: 5 } }),
4414
- m.bindCluster({ endpointNames: ['left', 'left_down', 'right', 'right_down'], cluster: 'manuSpecificLumi', clusterType: 'input' }),
4415
- m.bindCluster({ endpointNames: ['left', 'right'], cluster: 'genOnOff', clusterType: 'input' }),
4416
- m.electricityMeter({ voltage: false }),
4417
- lumiLedIndicator(),
4418
- lumiFlipIndicatorLight(),
4419
- lumiAction({ endpointNames: ['left', 'left_down', 'right', 'right_down'], actionLookup: { hold: 0, single: 1, double: 2, release: 255 } }),
4420
- lumiOnOff({ powerOutageMemory: 'enum', endpointNames: ['left', 'right'] }),
4421
- lumiOperationMode({ description: 'Decoupled mode for left switch', endpointName: 'left' }),
4422
- lumiOperationMode({ description: 'Decoupled mode for right switch', endpointName: 'right' }),
4423
- lumiLockRelay({ description: 'Lock left switch', endpointName: 'left' }),
4424
- lumiLockRelay({ description: 'Lock right switch', endpointName: 'right' }),
4425
- lumiMultiClick({ description: 'Multi-click mode for left down button', endpointName: 'left_down' }),
4426
- lumiMultiClick({ description: 'Multi-click mode for right down button', endpointName: 'right_down' }),
4427
- ],
4428
- },
4429
- ];
4430
- //# sourceMappingURL=lumi.js.map