@willieee802/zigbee-herdsman-converters 19.44.0 → 19.44.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1609) hide show
  1. package/dist/converters/actions.d.ts +36 -0
  2. package/dist/converters/actions.d.ts.map +1 -0
  3. package/dist/converters/actions.js +137 -0
  4. package/dist/converters/actions.js.map +1 -0
  5. package/dist/converters/fromZigbee.d.ts +293 -0
  6. package/dist/converters/fromZigbee.d.ts.map +1 -0
  7. package/dist/converters/fromZigbee.js +5192 -0
  8. package/dist/converters/fromZigbee.js.map +1 -0
  9. package/dist/converters/toZigbee.d.ts +235 -0
  10. package/dist/converters/toZigbee.d.ts.map +1 -0
  11. package/dist/converters/toZigbee.js +4577 -0
  12. package/dist/converters/toZigbee.js.map +1 -0
  13. package/dist/devices/ITCommander.d.ts +3 -0
  14. package/dist/devices/ITCommander.d.ts.map +1 -0
  15. package/dist/devices/ITCommander.js +73 -0
  16. package/dist/devices/ITCommander.js.map +1 -0
  17. package/dist/devices/acova.d.ts +3 -0
  18. package/dist/devices/acova.d.ts.map +1 -0
  19. package/dist/devices/acova.js +124 -0
  20. package/dist/devices/acova.js.map +1 -0
  21. package/dist/devices/acuity_brands_lighting.d.ts +3 -0
  22. package/dist/devices/acuity_brands_lighting.d.ts.map +1 -0
  23. package/dist/devices/acuity_brands_lighting.js +61 -0
  24. package/dist/devices/acuity_brands_lighting.js.map +1 -0
  25. package/dist/devices/adeo.d.ts +3 -0
  26. package/dist/devices/adeo.d.ts.map +1 -0
  27. package/dist/devices/adeo.js +518 -0
  28. package/dist/devices/adeo.js.map +1 -0
  29. package/dist/devices/adurosmart.d.ts +3 -0
  30. package/dist/devices/adurosmart.d.ts.map +1 -0
  31. package/dist/devices/adurosmart.js +235 -0
  32. package/dist/devices/adurosmart.js.map +1 -0
  33. package/dist/devices/aeotec.d.ts +3 -0
  34. package/dist/devices/aeotec.d.ts.map +1 -0
  35. package/dist/devices/aeotec.js +95 -0
  36. package/dist/devices/aeotec.js.map +1 -0
  37. package/dist/devices/airam.d.ts +3 -0
  38. package/dist/devices/airam.d.ts.map +1 -0
  39. package/dist/devices/airam.js +102 -0
  40. package/dist/devices/airam.js.map +1 -0
  41. package/dist/devices/airzone_aidoo.d.ts +3 -0
  42. package/dist/devices/airzone_aidoo.d.ts.map +1 -0
  43. package/dist/devices/airzone_aidoo.js +77 -0
  44. package/dist/devices/airzone_aidoo.js.map +1 -0
  45. package/dist/devices/ajax_online.d.ts +3 -0
  46. package/dist/devices/ajax_online.d.ts.map +1 -0
  47. package/dist/devices/ajax_online.js +83 -0
  48. package/dist/devices/ajax_online.js.map +1 -0
  49. package/dist/devices/akuvox.d.ts +3 -0
  50. package/dist/devices/akuvox.d.ts.map +1 -0
  51. package/dist/devices/akuvox.js +65 -0
  52. package/dist/devices/akuvox.js.map +1 -0
  53. package/dist/devices/alchemy.d.ts +3 -0
  54. package/dist/devices/alchemy.d.ts.map +1 -0
  55. package/dist/devices/alchemy.js +54 -0
  56. package/dist/devices/alchemy.js.map +1 -0
  57. package/dist/devices/aldi.d.ts +3 -0
  58. package/dist/devices/aldi.d.ts.map +1 -0
  59. package/dist/devices/aldi.js +54 -0
  60. package/dist/devices/aldi.js.map +1 -0
  61. package/dist/devices/alecto.d.ts +3 -0
  62. package/dist/devices/alecto.d.ts.map +1 -0
  63. package/dist/devices/alecto.js +91 -0
  64. package/dist/devices/alecto.js.map +1 -0
  65. package/dist/devices/amina.d.ts +3 -0
  66. package/dist/devices/amina.d.ts.map +1 -0
  67. package/dist/devices/amina.js +360 -0
  68. package/dist/devices/amina.js.map +1 -0
  69. package/dist/devices/anchor.d.ts +3 -0
  70. package/dist/devices/anchor.d.ts.map +1 -0
  71. package/dist/devices/anchor.js +47 -0
  72. package/dist/devices/anchor.js.map +1 -0
  73. package/dist/devices/atlantic.d.ts +3 -0
  74. package/dist/devices/atlantic.d.ts.map +1 -0
  75. package/dist/devices/atlantic.js +147 -0
  76. package/dist/devices/atlantic.js.map +1 -0
  77. package/dist/devices/atsmart.d.ts +3 -0
  78. package/dist/devices/atsmart.d.ts.map +1 -0
  79. package/dist/devices/atsmart.js +47 -0
  80. package/dist/devices/atsmart.js.map +1 -0
  81. package/dist/devices/aubess.d.ts +3 -0
  82. package/dist/devices/aubess.d.ts.map +1 -0
  83. package/dist/devices/aubess.js +60 -0
  84. package/dist/devices/aubess.js.map +1 -0
  85. package/dist/devices/aurora_lighting.d.ts +3 -0
  86. package/dist/devices/aurora_lighting.d.ts.map +1 -0
  87. package/dist/devices/aurora_lighting.js +347 -0
  88. package/dist/devices/aurora_lighting.js.map +1 -0
  89. package/dist/devices/automaton.d.ts +3 -0
  90. package/dist/devices/automaton.d.ts.map +1 -0
  91. package/dist/devices/automaton.js +64 -0
  92. package/dist/devices/automaton.js.map +1 -0
  93. package/dist/devices/avatto.d.ts +3 -0
  94. package/dist/devices/avatto.d.ts.map +1 -0
  95. package/dist/devices/avatto.js +635 -0
  96. package/dist/devices/avatto.js.map +1 -0
  97. package/dist/devices/awox.d.ts +3 -0
  98. package/dist/devices/awox.d.ts.map +1 -0
  99. package/dist/devices/awox.js +352 -0
  100. package/dist/devices/awox.js.map +1 -0
  101. package/dist/devices/axis.d.ts +3 -0
  102. package/dist/devices/axis.d.ts.map +1 -0
  103. package/dist/devices/axis.js +59 -0
  104. package/dist/devices/axis.js.map +1 -0
  105. package/dist/devices/bacchus.d.ts +3 -0
  106. package/dist/devices/bacchus.d.ts.map +1 -0
  107. package/dist/devices/bacchus.js +902 -0
  108. package/dist/devices/bacchus.js.map +1 -0
  109. package/dist/devices/bankamp.d.ts +3 -0
  110. package/dist/devices/bankamp.d.ts.map +1 -0
  111. package/dist/devices/bankamp.js +47 -0
  112. package/dist/devices/bankamp.js.map +1 -0
  113. package/dist/devices/bega.d.ts +3 -0
  114. package/dist/devices/bega.d.ts.map +1 -0
  115. package/dist/devices/bega.js +68 -0
  116. package/dist/devices/bega.js.map +1 -0
  117. package/dist/devices/belkin.d.ts +3 -0
  118. package/dist/devices/belkin.d.ts.map +1 -0
  119. package/dist/devices/belkin.js +47 -0
  120. package/dist/devices/belkin.js.map +1 -0
  121. package/dist/devices/bitron.d.ts +3 -0
  122. package/dist/devices/bitron.d.ts.map +1 -0
  123. package/dist/devices/bitron.js +357 -0
  124. package/dist/devices/bitron.js.map +1 -0
  125. package/dist/devices/bituo_technik.d.ts +3 -0
  126. package/dist/devices/bituo_technik.d.ts.map +1 -0
  127. package/dist/devices/bituo_technik.js +487 -0
  128. package/dist/devices/bituo_technik.js.map +1 -0
  129. package/dist/devices/blaupunkt.d.ts +3 -0
  130. package/dist/devices/blaupunkt.d.ts.map +1 -0
  131. package/dist/devices/blaupunkt.js +64 -0
  132. package/dist/devices/blaupunkt.js.map +1 -0
  133. package/dist/devices/blitzwolf.d.ts +3 -0
  134. package/dist/devices/blitzwolf.d.ts.map +1 -0
  135. package/dist/devices/blitzwolf.js +77 -0
  136. package/dist/devices/blitzwolf.js.map +1 -0
  137. package/dist/devices/bosch.d.ts +3 -0
  138. package/dist/devices/bosch.d.ts.map +1 -0
  139. package/dist/devices/bosch.js +1381 -0
  140. package/dist/devices/bosch.js.map +1 -0
  141. package/dist/devices/bouffalo_lab.d.ts +3 -0
  142. package/dist/devices/bouffalo_lab.d.ts.map +1 -0
  143. package/dist/devices/bouffalo_lab.js +47 -0
  144. package/dist/devices/bouffalo_lab.js.map +1 -0
  145. package/dist/devices/box.d.ts +3 -0
  146. package/dist/devices/box.d.ts.map +1 -0
  147. package/dist/devices/box.js +370 -0
  148. package/dist/devices/box.js.map +1 -0
  149. package/dist/devices/brimate.d.ts +3 -0
  150. package/dist/devices/brimate.d.ts.map +1 -0
  151. package/dist/devices/brimate.js +51 -0
  152. package/dist/devices/brimate.js.map +1 -0
  153. package/dist/devices/brun_holding.d.ts +3 -0
  154. package/dist/devices/brun_holding.d.ts.map +1 -0
  155. package/dist/devices/brun_holding.js +59 -0
  156. package/dist/devices/brun_holding.js.map +1 -0
  157. package/dist/devices/bseed.d.ts +3 -0
  158. package/dist/devices/bseed.d.ts.map +1 -0
  159. package/dist/devices/bseed.js +53 -0
  160. package/dist/devices/bseed.js.map +1 -0
  161. package/dist/devices/bticino.d.ts +3 -0
  162. package/dist/devices/bticino.d.ts.map +1 -0
  163. package/dist/devices/bticino.js +111 -0
  164. package/dist/devices/bticino.js.map +1 -0
  165. package/dist/devices/bubendorff.d.ts +3 -0
  166. package/dist/devices/bubendorff.d.ts.map +1 -0
  167. package/dist/devices/bubendorff.js +47 -0
  168. package/dist/devices/bubendorff.js.map +1 -0
  169. package/dist/devices/busch_jaeger.d.ts +3 -0
  170. package/dist/devices/busch_jaeger.d.ts.map +1 -0
  171. package/dist/devices/busch_jaeger.js +163 -0
  172. package/dist/devices/busch_jaeger.js.map +1 -0
  173. package/dist/devices/byun.d.ts +3 -0
  174. package/dist/devices/byun.d.ts.map +1 -0
  175. package/dist/devices/byun.js +60 -0
  176. package/dist/devices/byun.js.map +1 -0
  177. package/dist/devices/calex.d.ts +3 -0
  178. package/dist/devices/calex.d.ts.map +1 -0
  179. package/dist/devices/calex.js +87 -0
  180. package/dist/devices/calex.js.map +1 -0
  181. package/dist/devices/candeo.d.ts +3 -0
  182. package/dist/devices/candeo.d.ts.map +1 -0
  183. package/dist/devices/candeo.js +887 -0
  184. package/dist/devices/candeo.js.map +1 -0
  185. package/dist/devices/casaia.d.ts +3 -0
  186. package/dist/devices/casaia.d.ts.map +1 -0
  187. package/dist/devices/casaia.js +95 -0
  188. package/dist/devices/casaia.js.map +1 -0
  189. package/dist/devices/cel.d.ts +3 -0
  190. package/dist/devices/cel.d.ts.map +1 -0
  191. package/dist/devices/cel.js +49 -0
  192. package/dist/devices/cel.js.map +1 -0
  193. package/dist/devices/centralite.d.ts +28 -0
  194. package/dist/devices/centralite.d.ts.map +1 -0
  195. package/dist/devices/centralite.js +440 -0
  196. package/dist/devices/centralite.js.map +1 -0
  197. package/dist/devices/chacon.d.ts +3 -0
  198. package/dist/devices/chacon.d.ts.map +1 -0
  199. package/dist/devices/chacon.js +57 -0
  200. package/dist/devices/chacon.js.map +1 -0
  201. package/dist/devices/cleode.d.ts +3 -0
  202. package/dist/devices/cleode.d.ts.map +1 -0
  203. package/dist/devices/cleode.js +47 -0
  204. package/dist/devices/cleode.js.map +1 -0
  205. package/dist/devices/cleverio.d.ts +3 -0
  206. package/dist/devices/cleverio.d.ts.map +1 -0
  207. package/dist/devices/cleverio.js +74 -0
  208. package/dist/devices/cleverio.js.map +1 -0
  209. package/dist/devices/climax.d.ts +3 -0
  210. package/dist/devices/climax.d.ts.map +1 -0
  211. package/dist/devices/climax.js +184 -0
  212. package/dist/devices/climax.js.map +1 -0
  213. package/dist/devices/commercial_electric.d.ts +3 -0
  214. package/dist/devices/commercial_electric.d.ts.map +1 -0
  215. package/dist/devices/commercial_electric.js +47 -0
  216. package/dist/devices/commercial_electric.js.map +1 -0
  217. package/dist/devices/cree.d.ts +3 -0
  218. package/dist/devices/cree.d.ts.map +1 -0
  219. package/dist/devices/cree.js +47 -0
  220. package/dist/devices/cree.js.map +1 -0
  221. package/dist/devices/ctm.d.ts +3 -0
  222. package/dist/devices/ctm.d.ts.map +1 -0
  223. package/dist/devices/ctm.js +1411 -0
  224. package/dist/devices/ctm.js.map +1 -0
  225. package/dist/devices/current_products_corp.d.ts +3 -0
  226. package/dist/devices/current_products_corp.d.ts.map +1 -0
  227. package/dist/devices/current_products_corp.js +60 -0
  228. package/dist/devices/current_products_corp.js.map +1 -0
  229. package/dist/devices/custom_devices_diy.d.ts +3 -0
  230. package/dist/devices/custom_devices_diy.d.ts.map +1 -0
  231. package/dist/devices/custom_devices_diy.js +1302 -0
  232. package/dist/devices/custom_devices_diy.js.map +1 -0
  233. package/dist/devices/cwd.d.ts +3 -0
  234. package/dist/devices/cwd.d.ts.map +1 -0
  235. package/dist/devices/cwd.js +47 -0
  236. package/dist/devices/cwd.js.map +1 -0
  237. package/dist/devices/cy_lighting.d.ts +3 -0
  238. package/dist/devices/cy_lighting.d.ts.map +1 -0
  239. package/dist/devices/cy_lighting.js +47 -0
  240. package/dist/devices/cy_lighting.js.map +1 -0
  241. package/dist/devices/danalock.d.ts +3 -0
  242. package/dist/devices/danalock.d.ts.map +1 -0
  243. package/dist/devices/danalock.js +61 -0
  244. package/dist/devices/danalock.js.map +1 -0
  245. package/dist/devices/danfoss.d.ts +3 -0
  246. package/dist/devices/danfoss.d.ts.map +1 -0
  247. package/dist/devices/danfoss.js +793 -0
  248. package/dist/devices/danfoss.js.map +1 -0
  249. package/dist/devices/databyte.d.ts +3 -0
  250. package/dist/devices/databyte.d.ts.map +1 -0
  251. package/dist/devices/databyte.js +90 -0
  252. package/dist/devices/databyte.js.map +1 -0
  253. package/dist/devices/datek.d.ts +3 -0
  254. package/dist/devices/datek.d.ts.map +1 -0
  255. package/dist/devices/datek.js +303 -0
  256. package/dist/devices/datek.js.map +1 -0
  257. package/dist/devices/dawon_dns.d.ts +3 -0
  258. package/dist/devices/dawon_dns.d.ts.map +1 -0
  259. package/dist/devices/dawon_dns.js +314 -0
  260. package/dist/devices/dawon_dns.js.map +1 -0
  261. package/dist/devices/develco.d.ts +3 -0
  262. package/dist/devices/develco.d.ts.map +1 -0
  263. package/dist/devices/develco.js +1113 -0
  264. package/dist/devices/develco.js.map +1 -0
  265. package/dist/devices/digi.d.ts +3 -0
  266. package/dist/devices/digi.d.ts.map +1 -0
  267. package/dist/devices/digi.js +24 -0
  268. package/dist/devices/digi.js.map +1 -0
  269. package/dist/devices/direct_signs.d.ts +3 -0
  270. package/dist/devices/direct_signs.d.ts.map +1 -0
  271. package/dist/devices/direct_signs.js +47 -0
  272. package/dist/devices/direct_signs.js.map +1 -0
  273. package/dist/devices/diyruz.d.ts +3 -0
  274. package/dist/devices/diyruz.d.ts.map +1 -0
  275. package/dist/devices/diyruz.js +397 -0
  276. package/dist/devices/diyruz.js.map +1 -0
  277. package/dist/devices/dlink.d.ts +3 -0
  278. package/dist/devices/dlink.d.ts.map +1 -0
  279. package/dist/devices/dlink.js +72 -0
  280. package/dist/devices/dlink.js.map +1 -0
  281. package/dist/devices/dnake.d.ts +3 -0
  282. package/dist/devices/dnake.d.ts.map +1 -0
  283. package/dist/devices/dnake.js +47 -0
  284. package/dist/devices/dnake.js.map +1 -0
  285. package/dist/devices/domraem.d.ts +3 -0
  286. package/dist/devices/domraem.d.ts.map +1 -0
  287. package/dist/devices/domraem.js +75 -0
  288. package/dist/devices/domraem.js.map +1 -0
  289. package/dist/devices/dowsing_reynolds.d.ts +3 -0
  290. package/dist/devices/dowsing_reynolds.d.ts.map +1 -0
  291. package/dist/devices/dowsing_reynolds.js +47 -0
  292. package/dist/devices/dowsing_reynolds.js.map +1 -0
  293. package/dist/devices/dqsmart.d.ts +3 -0
  294. package/dist/devices/dqsmart.d.ts.map +1 -0
  295. package/dist/devices/dqsmart.js +50 -0
  296. package/dist/devices/dqsmart.js.map +1 -0
  297. package/dist/devices/dresden_elektronik.d.ts +3 -0
  298. package/dist/devices/dresden_elektronik.d.ts.map +1 -0
  299. package/dist/devices/dresden_elektronik.js +167 -0
  300. package/dist/devices/dresden_elektronik.js.map +1 -0
  301. package/dist/devices/easyaccess.d.ts +3 -0
  302. package/dist/devices/easyaccess.d.ts.map +1 -0
  303. package/dist/devices/easyaccess.js +67 -0
  304. package/dist/devices/easyaccess.js.map +1 -0
  305. package/dist/devices/easyiot.d.ts +3 -0
  306. package/dist/devices/easyiot.d.ts.map +1 -0
  307. package/dist/devices/easyiot.js +359 -0
  308. package/dist/devices/easyiot.js.map +1 -0
  309. package/dist/devices/eatonhalo_led.d.ts +3 -0
  310. package/dist/devices/eatonhalo_led.d.ts.map +1 -0
  311. package/dist/devices/eatonhalo_led.js +47 -0
  312. package/dist/devices/eatonhalo_led.js.map +1 -0
  313. package/dist/devices/echostar.d.ts +3 -0
  314. package/dist/devices/echostar.d.ts.map +1 -0
  315. package/dist/devices/echostar.js +61 -0
  316. package/dist/devices/echostar.js.map +1 -0
  317. package/dist/devices/ecodim.d.ts +3 -0
  318. package/dist/devices/ecodim.d.ts.map +1 -0
  319. package/dist/devices/ecodim.js +274 -0
  320. package/dist/devices/ecodim.js.map +1 -0
  321. package/dist/devices/ecolink.d.ts +3 -0
  322. package/dist/devices/ecolink.d.ts.map +1 -0
  323. package/dist/devices/ecolink.js +57 -0
  324. package/dist/devices/ecolink.js.map +1 -0
  325. package/dist/devices/ecosmart.d.ts +3 -0
  326. package/dist/devices/ecosmart.d.ts.map +1 -0
  327. package/dist/devices/ecosmart.js +115 -0
  328. package/dist/devices/ecosmart.js.map +1 -0
  329. package/dist/devices/ecozy.d.ts +3 -0
  330. package/dist/devices/ecozy.d.ts.map +1 -0
  331. package/dist/devices/ecozy.js +85 -0
  332. package/dist/devices/ecozy.js.map +1 -0
  333. package/dist/devices/edp.d.ts +3 -0
  334. package/dist/devices/edp.d.ts.map +1 -0
  335. package/dist/devices/edp.js +70 -0
  336. package/dist/devices/edp.js.map +1 -0
  337. package/dist/devices/efekta.d.ts +3 -0
  338. package/dist/devices/efekta.d.ts.map +1 -0
  339. package/dist/devices/efekta.js +8230 -0
  340. package/dist/devices/efekta.js.map +1 -0
  341. package/dist/devices/eglo.d.ts +3 -0
  342. package/dist/devices/eglo.d.ts.map +1 -0
  343. package/dist/devices/eglo.js +142 -0
  344. package/dist/devices/eglo.js.map +1 -0
  345. package/dist/devices/elko.d.ts +27 -0
  346. package/dist/devices/elko.d.ts.map +1 -0
  347. package/dist/devices/elko.js +306 -0
  348. package/dist/devices/elko.js.map +1 -0
  349. package/dist/devices/enbrighten.d.ts +3 -0
  350. package/dist/devices/enbrighten.d.ts.map +1 -0
  351. package/dist/devices/enbrighten.js +152 -0
  352. package/dist/devices/enbrighten.js.map +1 -0
  353. package/dist/devices/engo.d.ts +3 -0
  354. package/dist/devices/engo.d.ts.map +1 -0
  355. package/dist/devices/engo.js +1041 -0
  356. package/dist/devices/engo.js.map +1 -0
  357. package/dist/devices/enkin.d.ts +3 -0
  358. package/dist/devices/enkin.d.ts.map +1 -0
  359. package/dist/devices/enkin.js +14 -0
  360. package/dist/devices/enkin.js.map +1 -0
  361. package/dist/devices/enocean.d.ts +3 -0
  362. package/dist/devices/enocean.d.ts.map +1 -0
  363. package/dist/devices/enocean.js +150 -0
  364. package/dist/devices/enocean.js.map +1 -0
  365. package/dist/devices/envilar.d.ts +3 -0
  366. package/dist/devices/envilar.d.ts.map +1 -0
  367. package/dist/devices/envilar.js +131 -0
  368. package/dist/devices/envilar.js.map +1 -0
  369. package/dist/devices/espressif.d.ts +3 -0
  370. package/dist/devices/espressif.d.ts.map +1 -0
  371. package/dist/devices/espressif.js +61 -0
  372. package/dist/devices/espressif.js.map +1 -0
  373. package/dist/devices/essentialb.d.ts +3 -0
  374. package/dist/devices/essentialb.d.ts.map +1 -0
  375. package/dist/devices/essentialb.js +133 -0
  376. package/dist/devices/essentialb.js.map +1 -0
  377. package/dist/devices/essentials.d.ts +3 -0
  378. package/dist/devices/essentials.d.ts.map +1 -0
  379. package/dist/devices/essentials.js +150 -0
  380. package/dist/devices/essentials.js.map +1 -0
  381. package/dist/devices/eucontrols.d.ts +3 -0
  382. package/dist/devices/eucontrols.d.ts.map +1 -0
  383. package/dist/devices/eucontrols.js +47 -0
  384. package/dist/devices/eucontrols.js.map +1 -0
  385. package/dist/devices/eurotronic.d.ts +3 -0
  386. package/dist/devices/eurotronic.d.ts.map +1 -0
  387. package/dist/devices/eurotronic.js +278 -0
  388. package/dist/devices/eurotronic.js.map +1 -0
  389. package/dist/devices/evanell.d.ts +3 -0
  390. package/dist/devices/evanell.d.ts.map +1 -0
  391. package/dist/devices/evanell.js +66 -0
  392. package/dist/devices/evanell.js.map +1 -0
  393. package/dist/devices/evn.d.ts +3 -0
  394. package/dist/devices/evn.d.ts.map +1 -0
  395. package/dist/devices/evn.js +97 -0
  396. package/dist/devices/evn.js.map +1 -0
  397. package/dist/devices/evology.d.ts +3 -0
  398. package/dist/devices/evology.d.ts.map +1 -0
  399. package/dist/devices/evology.js +60 -0
  400. package/dist/devices/evology.js.map +1 -0
  401. package/dist/devices/evvr.d.ts +3 -0
  402. package/dist/devices/evvr.d.ts.map +1 -0
  403. package/dist/devices/evvr.js +47 -0
  404. package/dist/devices/evvr.js.map +1 -0
  405. package/dist/devices/ewelink.d.ts +3 -0
  406. package/dist/devices/ewelink.d.ts.map +1 -0
  407. package/dist/devices/ewelink.js +326 -0
  408. package/dist/devices/ewelink.js.map +1 -0
  409. package/dist/devices/ezex.d.ts +3 -0
  410. package/dist/devices/ezex.d.ts.map +1 -0
  411. package/dist/devices/ezex.js +47 -0
  412. package/dist/devices/ezex.js.map +1 -0
  413. package/dist/devices/ezviz.d.ts +3 -0
  414. package/dist/devices/ezviz.d.ts.map +1 -0
  415. package/dist/devices/ezviz.js +47 -0
  416. package/dist/devices/ezviz.js.map +1 -0
  417. package/dist/devices/fantem.d.ts +3 -0
  418. package/dist/devices/fantem.d.ts.map +1 -0
  419. package/dist/devices/fantem.js +112 -0
  420. package/dist/devices/fantem.js.map +1 -0
  421. package/dist/devices/feibit.d.ts +3 -0
  422. package/dist/devices/feibit.d.ts.map +1 -0
  423. package/dist/devices/feibit.js +335 -0
  424. package/dist/devices/feibit.js.map +1 -0
  425. package/dist/devices/fireangel.d.ts +3 -0
  426. package/dist/devices/fireangel.d.ts.map +1 -0
  427. package/dist/devices/fireangel.js +96 -0
  428. package/dist/devices/fireangel.js.map +1 -0
  429. package/dist/devices/frankever.d.ts +3 -0
  430. package/dist/devices/frankever.d.ts.map +1 -0
  431. package/dist/devices/frankever.js +67 -0
  432. package/dist/devices/frankever.js.map +1 -0
  433. package/dist/devices/frient.d.ts +3 -0
  434. package/dist/devices/frient.d.ts.map +1 -0
  435. package/dist/devices/frient.js +84 -0
  436. package/dist/devices/frient.js.map +1 -0
  437. package/dist/devices/futurehome.d.ts +3 -0
  438. package/dist/devices/futurehome.d.ts.map +1 -0
  439. package/dist/devices/futurehome.js +137 -0
  440. package/dist/devices/futurehome.js.map +1 -0
  441. package/dist/devices/ge.d.ts +3 -0
  442. package/dist/devices/ge.d.ts.map +1 -0
  443. package/dist/devices/ge.js +130 -0
  444. package/dist/devices/ge.js.map +1 -0
  445. package/dist/devices/gewiss.d.ts +3 -0
  446. package/dist/devices/gewiss.d.ts.map +1 -0
  447. package/dist/devices/gewiss.js +148 -0
  448. package/dist/devices/gewiss.js.map +1 -0
  449. package/dist/devices/gidealed.d.ts +3 -0
  450. package/dist/devices/gidealed.d.ts.map +1 -0
  451. package/dist/devices/gidealed.js +47 -0
  452. package/dist/devices/gidealed.js.map +1 -0
  453. package/dist/devices/giderwel.d.ts +3 -0
  454. package/dist/devices/giderwel.d.ts.map +1 -0
  455. package/dist/devices/giderwel.js +47 -0
  456. package/dist/devices/giderwel.js.map +1 -0
  457. package/dist/devices/giex.d.ts +3 -0
  458. package/dist/devices/giex.d.ts.map +1 -0
  459. package/dist/devices/giex.js +114 -0
  460. package/dist/devices/giex.js.map +1 -0
  461. package/dist/devices/girier.d.ts +3 -0
  462. package/dist/devices/girier.d.ts.map +1 -0
  463. package/dist/devices/girier.js +51 -0
  464. package/dist/devices/girier.js.map +1 -0
  465. package/dist/devices/gledopto.d.ts +3 -0
  466. package/dist/devices/gledopto.d.ts.map +1 -0
  467. package/dist/devices/gledopto.js +1395 -0
  468. package/dist/devices/gledopto.js.map +1 -0
  469. package/dist/devices/gmmts.d.ts +3 -0
  470. package/dist/devices/gmmts.d.ts.map +1 -0
  471. package/dist/devices/gmmts.js +2267 -0
  472. package/dist/devices/gmmts.js.map +1 -0
  473. package/dist/devices/gmy.d.ts +3 -0
  474. package/dist/devices/gmy.d.ts.map +1 -0
  475. package/dist/devices/gmy.js +47 -0
  476. package/dist/devices/gmy.js.map +1 -0
  477. package/dist/devices/gs.d.ts +3 -0
  478. package/dist/devices/gs.d.ts.map +1 -0
  479. package/dist/devices/gs.js +121 -0
  480. package/dist/devices/gs.js.map +1 -0
  481. package/dist/devices/gumax.d.ts +3 -0
  482. package/dist/devices/gumax.d.ts.map +1 -0
  483. package/dist/devices/gumax.js +47 -0
  484. package/dist/devices/gumax.js.map +1 -0
  485. package/dist/devices/halemeier.d.ts +3 -0
  486. package/dist/devices/halemeier.d.ts.map +1 -0
  487. package/dist/devices/halemeier.js +142 -0
  488. package/dist/devices/halemeier.js.map +1 -0
  489. package/dist/devices/hampton_bay.d.ts +3 -0
  490. package/dist/devices/hampton_bay.d.ts.map +1 -0
  491. package/dist/devices/hampton_bay.js +68 -0
  492. package/dist/devices/hampton_bay.js.map +1 -0
  493. package/dist/devices/heatit.d.ts +3 -0
  494. package/dist/devices/heatit.d.ts.map +1 -0
  495. package/dist/devices/heatit.js +47 -0
  496. package/dist/devices/heatit.js.map +1 -0
  497. package/dist/devices/heiman.d.ts +3 -0
  498. package/dist/devices/heiman.d.ts.map +1 -0
  499. package/dist/devices/heiman.js +2092 -0
  500. package/dist/devices/heiman.js.map +1 -0
  501. package/dist/devices/heimgard_technologies.d.ts +3 -0
  502. package/dist/devices/heimgard_technologies.d.ts.map +1 -0
  503. package/dist/devices/heimgard_technologies.js +189 -0
  504. package/dist/devices/heimgard_technologies.js.map +1 -0
  505. package/dist/devices/hej.d.ts +3 -0
  506. package/dist/devices/hej.d.ts.map +1 -0
  507. package/dist/devices/hej.js +126 -0
  508. package/dist/devices/hej.js.map +1 -0
  509. package/dist/devices/hfh.d.ts +3 -0
  510. package/dist/devices/hfh.d.ts.map +1 -0
  511. package/dist/devices/hfh.js +47 -0
  512. package/dist/devices/hfh.js.map +1 -0
  513. package/dist/devices/hilux.d.ts +3 -0
  514. package/dist/devices/hilux.d.ts.map +1 -0
  515. package/dist/devices/hilux.js +54 -0
  516. package/dist/devices/hilux.js.map +1 -0
  517. package/dist/devices/hive.d.ts +3 -0
  518. package/dist/devices/hive.d.ts.map +1 -0
  519. package/dist/devices/hive.js +798 -0
  520. package/dist/devices/hive.js.map +1 -0
  521. package/dist/devices/hoftronic.d.ts +3 -0
  522. package/dist/devices/hoftronic.d.ts.map +1 -0
  523. package/dist/devices/hoftronic.js +56 -0
  524. package/dist/devices/hoftronic.js.map +1 -0
  525. package/dist/devices/homeseer.d.ts +3 -0
  526. package/dist/devices/homeseer.d.ts.map +1 -0
  527. package/dist/devices/homeseer.js +53 -0
  528. package/dist/devices/homeseer.js.map +1 -0
  529. package/dist/devices/hommyn.d.ts +3 -0
  530. package/dist/devices/hommyn.d.ts.map +1 -0
  531. package/dist/devices/hommyn.js +60 -0
  532. package/dist/devices/hommyn.js.map +1 -0
  533. package/dist/devices/honyar.d.ts +3 -0
  534. package/dist/devices/honyar.d.ts.map +1 -0
  535. package/dist/devices/honyar.js +167 -0
  536. package/dist/devices/honyar.js.map +1 -0
  537. package/dist/devices/hornbach.d.ts +3 -0
  538. package/dist/devices/hornbach.d.ts.map +1 -0
  539. package/dist/devices/hornbach.js +138 -0
  540. package/dist/devices/hornbach.js.map +1 -0
  541. package/dist/devices/hzc_electric.d.ts +3 -0
  542. package/dist/devices/hzc_electric.d.ts.map +1 -0
  543. package/dist/devices/hzc_electric.js +102 -0
  544. package/dist/devices/hzc_electric.js.map +1 -0
  545. package/dist/devices/icasa.d.ts +3 -0
  546. package/dist/devices/icasa.d.ts.map +1 -0
  547. package/dist/devices/icasa.js +174 -0
  548. package/dist/devices/icasa.js.map +1 -0
  549. package/dist/devices/idinio.d.ts +3 -0
  550. package/dist/devices/idinio.d.ts.map +1 -0
  551. package/dist/devices/idinio.js +47 -0
  552. package/dist/devices/idinio.js.map +1 -0
  553. package/dist/devices/ihorn.d.ts +3 -0
  554. package/dist/devices/ihorn.d.ts.map +1 -0
  555. package/dist/devices/ihorn.js +105 -0
  556. package/dist/devices/ihorn.js.map +1 -0
  557. package/dist/devices/ikea.d.ts +3 -0
  558. package/dist/devices/ikea.d.ts.map +1 -0
  559. package/dist/devices/ikea.js +1241 -0
  560. package/dist/devices/ikea.js.map +1 -0
  561. package/dist/devices/ilightsin.d.ts +3 -0
  562. package/dist/devices/ilightsin.d.ts.map +1 -0
  563. package/dist/devices/ilightsin.js +59 -0
  564. package/dist/devices/ilightsin.js.map +1 -0
  565. package/dist/devices/iluminize.d.ts +3 -0
  566. package/dist/devices/iluminize.d.ts.map +1 -0
  567. package/dist/devices/iluminize.js +385 -0
  568. package/dist/devices/iluminize.js.map +1 -0
  569. package/dist/devices/ilux.d.ts +3 -0
  570. package/dist/devices/ilux.d.ts.map +1 -0
  571. package/dist/devices/ilux.js +47 -0
  572. package/dist/devices/ilux.js.map +1 -0
  573. package/dist/devices/imhotepcreation.d.ts +3 -0
  574. package/dist/devices/imhotepcreation.d.ts.map +1 -0
  575. package/dist/devices/imhotepcreation.js +240 -0
  576. package/dist/devices/imhotepcreation.js.map +1 -0
  577. package/dist/devices/immax.d.ts +3 -0
  578. package/dist/devices/immax.d.ts.map +1 -0
  579. package/dist/devices/immax.js +471 -0
  580. package/dist/devices/immax.js.map +1 -0
  581. package/dist/devices/imou.d.ts +3 -0
  582. package/dist/devices/imou.d.ts.map +1 -0
  583. package/dist/devices/imou.js +109 -0
  584. package/dist/devices/imou.js.map +1 -0
  585. package/dist/devices/index.d.ts +4 -0
  586. package/dist/devices/index.d.ts.map +1 -0
  587. package/dist/devices/index.js +738 -0
  588. package/dist/devices/index.js.map +1 -0
  589. package/dist/devices/innr.d.ts +3 -0
  590. package/dist/devices/innr.d.ts.map +1 -0
  591. package/dist/devices/innr.js +1033 -0
  592. package/dist/devices/innr.js.map +1 -0
  593. package/dist/devices/inovelli.d.ts +3 -0
  594. package/dist/devices/inovelli.d.ts.map +1 -0
  595. package/dist/devices/inovelli.js +2474 -0
  596. package/dist/devices/inovelli.js.map +1 -0
  597. package/dist/devices/insta.d.ts +3 -0
  598. package/dist/devices/insta.d.ts.map +1 -0
  599. package/dist/devices/insta.js +182 -0
  600. package/dist/devices/insta.js.map +1 -0
  601. package/dist/devices/intuis.d.ts +3 -0
  602. package/dist/devices/intuis.d.ts.map +1 -0
  603. package/dist/devices/intuis.js +95 -0
  604. package/dist/devices/intuis.js.map +1 -0
  605. package/dist/devices/iolloi.d.ts +3 -0
  606. package/dist/devices/iolloi.d.ts.map +1 -0
  607. package/dist/devices/iolloi.js +48 -0
  608. package/dist/devices/iolloi.js.map +1 -0
  609. package/dist/devices/iotperfect.d.ts +3 -0
  610. package/dist/devices/iotperfect.d.ts.map +1 -0
  611. package/dist/devices/iotperfect.js +60 -0
  612. package/dist/devices/iotperfect.js.map +1 -0
  613. package/dist/devices/iris.d.ts +3 -0
  614. package/dist/devices/iris.d.ts.map +1 -0
  615. package/dist/devices/iris.js +208 -0
  616. package/dist/devices/iris.js.map +1 -0
  617. package/dist/devices/istar.d.ts +3 -0
  618. package/dist/devices/istar.d.ts.map +1 -0
  619. package/dist/devices/istar.js +61 -0
  620. package/dist/devices/istar.js.map +1 -0
  621. package/dist/devices/jasco.d.ts +3 -0
  622. package/dist/devices/jasco.d.ts.map +1 -0
  623. package/dist/devices/jasco.js +63 -0
  624. package/dist/devices/jasco.js.map +1 -0
  625. package/dist/devices/javis.d.ts +3 -0
  626. package/dist/devices/javis.d.ts.map +1 -0
  627. package/dist/devices/javis.js +77 -0
  628. package/dist/devices/javis.js.map +1 -0
  629. package/dist/devices/jethome.d.ts +3 -0
  630. package/dist/devices/jethome.d.ts.map +1 -0
  631. package/dist/devices/jethome.js +120 -0
  632. package/dist/devices/jethome.js.map +1 -0
  633. package/dist/devices/jiawen.d.ts +3 -0
  634. package/dist/devices/jiawen.d.ts.map +1 -0
  635. package/dist/devices/jiawen.js +54 -0
  636. package/dist/devices/jiawen.js.map +1 -0
  637. package/dist/devices/jumitech.d.ts +3 -0
  638. package/dist/devices/jumitech.d.ts.map +1 -0
  639. package/dist/devices/jumitech.js +47 -0
  640. package/dist/devices/jumitech.js.map +1 -0
  641. package/dist/devices/jxuan.d.ts +3 -0
  642. package/dist/devices/jxuan.d.ts.map +1 -0
  643. package/dist/devices/jxuan.js +85 -0
  644. package/dist/devices/jxuan.js.map +1 -0
  645. package/dist/devices/kami.d.ts +3 -0
  646. package/dist/devices/kami.d.ts.map +1 -0
  647. package/dist/devices/kami.js +51 -0
  648. package/dist/devices/kami.js.map +1 -0
  649. package/dist/devices/keen_home.d.ts +3 -0
  650. package/dist/devices/keen_home.d.ts.map +1 -0
  651. package/dist/devices/keen_home.js +155 -0
  652. package/dist/devices/keen_home.js.map +1 -0
  653. package/dist/devices/klikaanklikuit.d.ts +3 -0
  654. package/dist/devices/klikaanklikuit.d.ts.map +1 -0
  655. package/dist/devices/klikaanklikuit.js +54 -0
  656. package/dist/devices/klikaanklikuit.js.map +1 -0
  657. package/dist/devices/kmpcil.d.ts +3 -0
  658. package/dist/devices/kmpcil.d.ts.map +1 -0
  659. package/dist/devices/kmpcil.js +212 -0
  660. package/dist/devices/kmpcil.js.map +1 -0
  661. package/dist/devices/konke.d.ts +3 -0
  662. package/dist/devices/konke.d.ts.map +1 -0
  663. package/dist/devices/konke.js +207 -0
  664. package/dist/devices/konke.js.map +1 -0
  665. package/dist/devices/ksentry.d.ts +3 -0
  666. package/dist/devices/ksentry.d.ts.map +1 -0
  667. package/dist/devices/ksentry.js +47 -0
  668. package/dist/devices/ksentry.js.map +1 -0
  669. package/dist/devices/kurvia.d.ts +3 -0
  670. package/dist/devices/kurvia.d.ts.map +1 -0
  671. package/dist/devices/kurvia.js +49 -0
  672. package/dist/devices/kurvia.js.map +1 -0
  673. package/dist/devices/kwikset.d.ts +3 -0
  674. package/dist/devices/kwikset.d.ts.map +1 -0
  675. package/dist/devices/kwikset.js +153 -0
  676. package/dist/devices/kwikset.js.map +1 -0
  677. package/dist/devices/lanesto.d.ts +3 -0
  678. package/dist/devices/lanesto.d.ts.map +1 -0
  679. package/dist/devices/lanesto.js +47 -0
  680. package/dist/devices/lanesto.js.map +1 -0
  681. package/dist/devices/lds.d.ts +3 -0
  682. package/dist/devices/lds.d.ts.map +1 -0
  683. package/dist/devices/lds.js +54 -0
  684. package/dist/devices/lds.js.map +1 -0
  685. package/dist/devices/led_trading.d.ts +3 -0
  686. package/dist/devices/led_trading.d.ts.map +1 -0
  687. package/dist/devices/led_trading.js +108 -0
  688. package/dist/devices/led_trading.js.map +1 -0
  689. package/dist/devices/ledvance.d.ts +3 -0
  690. package/dist/devices/ledvance.d.ts.map +1 -0
  691. package/dist/devices/ledvance.js +407 -0
  692. package/dist/devices/ledvance.js.map +1 -0
  693. package/dist/devices/leedarson.d.ts +3 -0
  694. package/dist/devices/leedarson.d.ts.map +1 -0
  695. package/dist/devices/leedarson.js +180 -0
  696. package/dist/devices/leedarson.js.map +1 -0
  697. package/dist/devices/legrand.d.ts +3 -0
  698. package/dist/devices/legrand.d.ts.map +1 -0
  699. package/dist/devices/legrand.js +809 -0
  700. package/dist/devices/legrand.js.map +1 -0
  701. package/dist/devices/lellki.d.ts +3 -0
  702. package/dist/devices/lellki.d.ts.map +1 -0
  703. package/dist/devices/lellki.js +162 -0
  704. package/dist/devices/lellki.js.map +1 -0
  705. package/dist/devices/letsled.d.ts +3 -0
  706. package/dist/devices/letsled.d.ts.map +1 -0
  707. package/dist/devices/letsled.js +47 -0
  708. package/dist/devices/letsled.js.map +1 -0
  709. package/dist/devices/letv.d.ts +3 -0
  710. package/dist/devices/letv.d.ts.map +1 -0
  711. package/dist/devices/letv.js +86 -0
  712. package/dist/devices/letv.js.map +1 -0
  713. package/dist/devices/leviton.d.ts +3 -0
  714. package/dist/devices/leviton.d.ts.map +1 -0
  715. package/dist/devices/leviton.js +160 -0
  716. package/dist/devices/leviton.js.map +1 -0
  717. package/dist/devices/lg.d.ts +3 -0
  718. package/dist/devices/lg.d.ts.map +1 -0
  719. package/dist/devices/lg.js +61 -0
  720. package/dist/devices/lg.js.map +1 -0
  721. package/dist/devices/lidl.d.ts +3 -0
  722. package/dist/devices/lidl.d.ts.map +1 -0
  723. package/dist/devices/lidl.js +669 -0
  724. package/dist/devices/lidl.js.map +1 -0
  725. package/dist/devices/lifecontrol.d.ts +3 -0
  726. package/dist/devices/lifecontrol.d.ts.map +1 -0
  727. package/dist/devices/lifecontrol.js +141 -0
  728. package/dist/devices/lifecontrol.js.map +1 -0
  729. package/dist/devices/lightsolutions.d.ts +3 -0
  730. package/dist/devices/lightsolutions.d.ts.map +1 -0
  731. package/dist/devices/lightsolutions.js +90 -0
  732. package/dist/devices/lightsolutions.js.map +1 -0
  733. package/dist/devices/lincukoo.d.ts +3 -0
  734. package/dist/devices/lincukoo.d.ts.map +1 -0
  735. package/dist/devices/lincukoo.js +788 -0
  736. package/dist/devices/lincukoo.js.map +1 -0
  737. package/dist/devices/linkind.d.ts +3 -0
  738. package/dist/devices/linkind.d.ts.map +1 -0
  739. package/dist/devices/linkind.js +251 -0
  740. package/dist/devices/linkind.js.map +1 -0
  741. package/dist/devices/linptech.d.ts +3 -0
  742. package/dist/devices/linptech.d.ts.map +1 -0
  743. package/dist/devices/linptech.js +157 -0
  744. package/dist/devices/linptech.js.map +1 -0
  745. package/dist/devices/livingwise.d.ts +3 -0
  746. package/dist/devices/livingwise.d.ts.map +1 -0
  747. package/dist/devices/livingwise.js +115 -0
  748. package/dist/devices/livingwise.js.map +1 -0
  749. package/dist/devices/livolo.d.ts +3 -0
  750. package/dist/devices/livolo.d.ts.map +1 -0
  751. package/dist/devices/livolo.js +263 -0
  752. package/dist/devices/livolo.js.map +1 -0
  753. package/dist/devices/lixee.d.ts +3 -0
  754. package/dist/devices/lixee.d.ts.map +1 -0
  755. package/dist/devices/lixee.js +2038 -0
  756. package/dist/devices/lixee.js.map +1 -0
  757. package/dist/devices/lonsonho.d.ts +3 -0
  758. package/dist/devices/lonsonho.d.ts.map +1 -0
  759. package/dist/devices/lonsonho.js +310 -0
  760. package/dist/devices/lonsonho.js.map +1 -0
  761. package/dist/devices/ls.d.ts +3 -0
  762. package/dist/devices/ls.d.ts.map +1 -0
  763. package/dist/devices/ls.js +152 -0
  764. package/dist/devices/ls.js.map +1 -0
  765. package/dist/devices/lubeez.d.ts +3 -0
  766. package/dist/devices/lubeez.d.ts.map +1 -0
  767. package/dist/devices/lubeez.js +47 -0
  768. package/dist/devices/lubeez.js.map +1 -0
  769. package/dist/devices/lumi.d.ts +3 -0
  770. package/dist/devices/lumi.d.ts.map +1 -0
  771. package/dist/devices/lumi.js +5345 -0
  772. package/dist/devices/lumi.js.map +1 -0
  773. package/dist/devices/lupus.d.ts +3 -0
  774. package/dist/devices/lupus.d.ts.map +1 -0
  775. package/dist/devices/lupus.js +94 -0
  776. package/dist/devices/lupus.js.map +1 -0
  777. package/dist/devices/lutron.d.ts +3 -0
  778. package/dist/devices/lutron.d.ts.map +1 -0
  779. package/dist/devices/lutron.js +81 -0
  780. package/dist/devices/lutron.js.map +1 -0
  781. package/dist/devices/lux.d.ts +3 -0
  782. package/dist/devices/lux.d.ts.map +1 -0
  783. package/dist/devices/lux.js +87 -0
  784. package/dist/devices/lux.js.map +1 -0
  785. package/dist/devices/lytko.d.ts +3 -0
  786. package/dist/devices/lytko.d.ts.map +1 -0
  787. package/dist/devices/lytko.js +1809 -0
  788. package/dist/devices/lytko.js.map +1 -0
  789. package/dist/devices/m_elec.d.ts +3 -0
  790. package/dist/devices/m_elec.d.ts.map +1 -0
  791. package/dist/devices/m_elec.js +68 -0
  792. package/dist/devices/m_elec.js.map +1 -0
  793. package/dist/devices/makegood.d.ts +3 -0
  794. package/dist/devices/makegood.d.ts.map +1 -0
  795. package/dist/devices/makegood.js +117 -0
  796. package/dist/devices/makegood.js.map +1 -0
  797. package/dist/devices/matcall_bv.d.ts +3 -0
  798. package/dist/devices/matcall_bv.d.ts.map +1 -0
  799. package/dist/devices/matcall_bv.js +54 -0
  800. package/dist/devices/matcall_bv.js.map +1 -0
  801. package/dist/devices/mazda.d.ts +3 -0
  802. package/dist/devices/mazda.d.ts.map +1 -0
  803. package/dist/devices/mazda.js +146 -0
  804. package/dist/devices/mazda.js.map +1 -0
  805. package/dist/devices/meazon.d.ts +3 -0
  806. package/dist/devices/meazon.d.ts.map +1 -0
  807. package/dist/devices/meazon.js +95 -0
  808. package/dist/devices/meazon.js.map +1 -0
  809. package/dist/devices/mercator.d.ts +3 -0
  810. package/dist/devices/mercator.d.ts.map +1 -0
  811. package/dist/devices/mercator.js +242 -0
  812. package/dist/devices/mercator.js.map +1 -0
  813. package/dist/devices/miboxer.d.ts +3 -0
  814. package/dist/devices/miboxer.d.ts.map +1 -0
  815. package/dist/devices/miboxer.js +304 -0
  816. package/dist/devices/miboxer.js.map +1 -0
  817. package/dist/devices/micromatic.d.ts +3 -0
  818. package/dist/devices/micromatic.d.ts.map +1 -0
  819. package/dist/devices/micromatic.js +47 -0
  820. package/dist/devices/micromatic.js.map +1 -0
  821. package/dist/devices/mill.d.ts +3 -0
  822. package/dist/devices/mill.d.ts.map +1 -0
  823. package/dist/devices/mill.js +52 -0
  824. package/dist/devices/mill.js.map +1 -0
  825. package/dist/devices/mindy.d.ts +3 -0
  826. package/dist/devices/mindy.d.ts.map +1 -0
  827. package/dist/devices/mindy.js +379 -0
  828. package/dist/devices/mindy.js.map +1 -0
  829. package/dist/devices/modular.d.ts +3 -0
  830. package/dist/devices/modular.d.ts.map +1 -0
  831. package/dist/devices/modular.js +47 -0
  832. package/dist/devices/modular.js.map +1 -0
  833. package/dist/devices/moes.d.ts +3 -0
  834. package/dist/devices/moes.d.ts.map +1 -0
  835. package/dist/devices/moes.js +2368 -0
  836. package/dist/devices/moes.js.map +1 -0
  837. package/dist/devices/muller_licht.d.ts +3 -0
  838. package/dist/devices/muller_licht.d.ts.map +1 -0
  839. package/dist/devices/muller_licht.js +366 -0
  840. package/dist/devices/muller_licht.js.map +1 -0
  841. package/dist/devices/multir.d.ts +3 -0
  842. package/dist/devices/multir.d.ts.map +1 -0
  843. package/dist/devices/multir.js +152 -0
  844. package/dist/devices/multir.js.map +1 -0
  845. package/dist/devices/multiterm.d.ts +3 -0
  846. package/dist/devices/multiterm.d.ts.map +1 -0
  847. package/dist/devices/multiterm.js +119 -0
  848. package/dist/devices/multiterm.js.map +1 -0
  849. package/dist/devices/namron.d.ts +3 -0
  850. package/dist/devices/namron.d.ts.map +1 -0
  851. package/dist/devices/namron.js +2004 -0
  852. package/dist/devices/namron.js.map +1 -0
  853. package/dist/devices/nanoleaf.d.ts +3 -0
  854. package/dist/devices/nanoleaf.d.ts.map +1 -0
  855. package/dist/devices/nanoleaf.js +47 -0
  856. package/dist/devices/nanoleaf.js.map +1 -0
  857. package/dist/devices/nedis.d.ts +3 -0
  858. package/dist/devices/nedis.d.ts.map +1 -0
  859. package/dist/devices/nedis.js +87 -0
  860. package/dist/devices/nedis.js.map +1 -0
  861. package/dist/devices/neo.d.ts +3 -0
  862. package/dist/devices/neo.d.ts.map +1 -0
  863. package/dist/devices/neo.js +526 -0
  864. package/dist/devices/neo.js.map +1 -0
  865. package/dist/devices/net2grid.d.ts +3 -0
  866. package/dist/devices/net2grid.d.ts.map +1 -0
  867. package/dist/devices/net2grid.js +64 -0
  868. package/dist/devices/net2grid.js.map +1 -0
  869. package/dist/devices/netvox.d.ts +3 -0
  870. package/dist/devices/netvox.d.ts.map +1 -0
  871. package/dist/devices/netvox.js +71 -0
  872. package/dist/devices/netvox.js.map +1 -0
  873. package/dist/devices/nexelec.d.ts +3 -0
  874. package/dist/devices/nexelec.d.ts.map +1 -0
  875. package/dist/devices/nexelec.js +47 -0
  876. package/dist/devices/nexelec.js.map +1 -0
  877. package/dist/devices/niko.d.ts +3 -0
  878. package/dist/devices/niko.d.ts.map +1 -0
  879. package/dist/devices/niko.js +769 -0
  880. package/dist/devices/niko.js.map +1 -0
  881. package/dist/devices/ninja_blocks.d.ts +3 -0
  882. package/dist/devices/ninja_blocks.d.ts.map +1 -0
  883. package/dist/devices/ninja_blocks.js +60 -0
  884. package/dist/devices/ninja_blocks.js.map +1 -0
  885. package/dist/devices/niviss.d.ts +3 -0
  886. package/dist/devices/niviss.d.ts.map +1 -0
  887. package/dist/devices/niviss.js +47 -0
  888. package/dist/devices/niviss.js.map +1 -0
  889. package/dist/devices/nobo.d.ts +3 -0
  890. package/dist/devices/nobo.d.ts.map +1 -0
  891. package/dist/devices/nobo.js +88 -0
  892. package/dist/devices/nobo.js.map +1 -0
  893. package/dist/devices/nodon.d.ts +3 -0
  894. package/dist/devices/nodon.d.ts.map +1 -0
  895. package/dist/devices/nodon.js +483 -0
  896. package/dist/devices/nodon.js.map +1 -0
  897. package/dist/devices/nordtronic.d.ts +3 -0
  898. package/dist/devices/nordtronic.d.ts.map +1 -0
  899. package/dist/devices/nordtronic.js +95 -0
  900. package/dist/devices/nordtronic.js.map +1 -0
  901. package/dist/devices/nous.d.ts +3 -0
  902. package/dist/devices/nous.d.ts.map +1 -0
  903. package/dist/devices/nous.js +367 -0
  904. package/dist/devices/nous.js.map +1 -0
  905. package/dist/devices/novo.d.ts +3 -0
  906. package/dist/devices/novo.d.ts.map +1 -0
  907. package/dist/devices/novo.js +53 -0
  908. package/dist/devices/novo.js.map +1 -0
  909. package/dist/devices/nue_3a.d.ts +3 -0
  910. package/dist/devices/nue_3a.d.ts.map +1 -0
  911. package/dist/devices/nue_3a.js +359 -0
  912. package/dist/devices/nue_3a.js.map +1 -0
  913. package/dist/devices/nyce.d.ts +3 -0
  914. package/dist/devices/nyce.d.ts.map +1 -0
  915. package/dist/devices/nyce.js +124 -0
  916. package/dist/devices/nyce.js.map +1 -0
  917. package/dist/devices/onenuo.d.ts +3 -0
  918. package/dist/devices/onenuo.d.ts.map +1 -0
  919. package/dist/devices/onenuo.js +83 -0
  920. package/dist/devices/onenuo.js.map +1 -0
  921. package/dist/devices/onesti.d.ts +3 -0
  922. package/dist/devices/onesti.d.ts.map +1 -0
  923. package/dist/devices/onesti.js +265 -0
  924. package/dist/devices/onesti.js.map +1 -0
  925. package/dist/devices/onokom.d.ts +3 -0
  926. package/dist/devices/onokom.d.ts.map +1 -0
  927. package/dist/devices/onokom.js +2715 -0
  928. package/dist/devices/onokom.js.map +1 -0
  929. package/dist/devices/openlumi.d.ts +3 -0
  930. package/dist/devices/openlumi.d.ts.map +1 -0
  931. package/dist/devices/openlumi.js +47 -0
  932. package/dist/devices/openlumi.js.map +1 -0
  933. package/dist/devices/orvibo.d.ts +12 -0
  934. package/dist/devices/orvibo.d.ts.map +1 -0
  935. package/dist/devices/orvibo.js +715 -0
  936. package/dist/devices/orvibo.js.map +1 -0
  937. package/dist/devices/orztech.d.ts +3 -0
  938. package/dist/devices/orztech.d.ts.map +1 -0
  939. package/dist/devices/orztech.js +195 -0
  940. package/dist/devices/orztech.js.map +1 -0
  941. package/dist/devices/osram.d.ts +3 -0
  942. package/dist/devices/osram.d.ts.map +1 -0
  943. package/dist/devices/osram.js +513 -0
  944. package/dist/devices/osram.js.map +1 -0
  945. package/dist/devices/oujiabao.d.ts +3 -0
  946. package/dist/devices/oujiabao.d.ts.map +1 -0
  947. package/dist/devices/oujiabao.js +51 -0
  948. package/dist/devices/oujiabao.js.map +1 -0
  949. package/dist/devices/owon.d.ts +3 -0
  950. package/dist/devices/owon.d.ts.map +1 -0
  951. package/dist/devices/owon.js +888 -0
  952. package/dist/devices/owon.js.map +1 -0
  953. package/dist/devices/ozsmartthings.d.ts +3 -0
  954. package/dist/devices/ozsmartthings.d.ts.map +1 -0
  955. package/dist/devices/ozsmartthings.js +47 -0
  956. package/dist/devices/ozsmartthings.js.map +1 -0
  957. package/dist/devices/paul_neuhaus.d.ts +3 -0
  958. package/dist/devices/paul_neuhaus.d.ts.map +1 -0
  959. package/dist/devices/paul_neuhaus.js +190 -0
  960. package/dist/devices/paul_neuhaus.js.map +1 -0
  961. package/dist/devices/paulmann.d.ts +3 -0
  962. package/dist/devices/paulmann.d.ts.map +1 -0
  963. package/dist/devices/paulmann.js +426 -0
  964. package/dist/devices/paulmann.js.map +1 -0
  965. package/dist/devices/peq.d.ts +3 -0
  966. package/dist/devices/peq.d.ts.map +1 -0
  967. package/dist/devices/peq.js +60 -0
  968. package/dist/devices/peq.js.map +1 -0
  969. package/dist/devices/perenio.d.ts +3 -0
  970. package/dist/devices/perenio.d.ts.map +1 -0
  971. package/dist/devices/perenio.js +461 -0
  972. package/dist/devices/perenio.js.map +1 -0
  973. package/dist/devices/philio.d.ts +3 -0
  974. package/dist/devices/philio.d.ts.map +1 -0
  975. package/dist/devices/philio.js +48 -0
  976. package/dist/devices/philio.js.map +1 -0
  977. package/dist/devices/philips.d.ts +3 -0
  978. package/dist/devices/philips.d.ts.map +1 -0
  979. package/dist/devices/philips.js +4948 -0
  980. package/dist/devices/philips.js.map +1 -0
  981. package/dist/devices/plaid.d.ts +3 -0
  982. package/dist/devices/plaid.d.ts.map +1 -0
  983. package/dist/devices/plaid.js +61 -0
  984. package/dist/devices/plaid.js.map +1 -0
  985. package/dist/devices/plugwise.d.ts +3 -0
  986. package/dist/devices/plugwise.d.ts.map +1 -0
  987. package/dist/devices/plugwise.js +217 -0
  988. package/dist/devices/plugwise.js.map +1 -0
  989. package/dist/devices/profalux.d.ts +3 -0
  990. package/dist/devices/profalux.d.ts.map +1 -0
  991. package/dist/devices/profalux.js +215 -0
  992. package/dist/devices/profalux.js.map +1 -0
  993. package/dist/devices/prolight.d.ts +3 -0
  994. package/dist/devices/prolight.d.ts.map +1 -0
  995. package/dist/devices/prolight.js +111 -0
  996. package/dist/devices/prolight.js.map +1 -0
  997. package/dist/devices/purmo.d.ts +3 -0
  998. package/dist/devices/purmo.d.ts.map +1 -0
  999. package/dist/devices/purmo.js +91 -0
  1000. package/dist/devices/purmo.js.map +1 -0
  1001. package/dist/devices/pushok.d.ts +3 -0
  1002. package/dist/devices/pushok.d.ts.map +1 -0
  1003. package/dist/devices/pushok.js +736 -0
  1004. package/dist/devices/pushok.js.map +1 -0
  1005. package/dist/devices/qa.d.ts +3 -0
  1006. package/dist/devices/qa.d.ts.map +1 -0
  1007. package/dist/devices/qa.js +445 -0
  1008. package/dist/devices/qa.js.map +1 -0
  1009. package/dist/devices/qmotion.d.ts +3 -0
  1010. package/dist/devices/qmotion.d.ts.map +1 -0
  1011. package/dist/devices/qmotion.js +69 -0
  1012. package/dist/devices/qmotion.js.map +1 -0
  1013. package/dist/devices/qoto.d.ts +3 -0
  1014. package/dist/devices/qoto.d.ts.map +1 -0
  1015. package/dist/devices/qoto.js +83 -0
  1016. package/dist/devices/qoto.js.map +1 -0
  1017. package/dist/devices/quirky.d.ts +8 -0
  1018. package/dist/devices/quirky.d.ts.map +1 -0
  1019. package/dist/devices/quirky.js +47 -0
  1020. package/dist/devices/quirky.js.map +1 -0
  1021. package/dist/devices/quotra.d.ts +3 -0
  1022. package/dist/devices/quotra.d.ts.map +1 -0
  1023. package/dist/devices/quotra.js +54 -0
  1024. package/dist/devices/quotra.js.map +1 -0
  1025. package/dist/devices/rademacher.d.ts +3 -0
  1026. package/dist/devices/rademacher.d.ts.map +1 -0
  1027. package/dist/devices/rademacher.js +61 -0
  1028. package/dist/devices/rademacher.js.map +1 -0
  1029. package/dist/devices/radium.d.ts +3 -0
  1030. package/dist/devices/radium.d.ts.map +1 -0
  1031. package/dist/devices/radium.js +47 -0
  1032. package/dist/devices/radium.js.map +1 -0
  1033. package/dist/devices/raex.d.ts +3 -0
  1034. package/dist/devices/raex.d.ts.map +1 -0
  1035. package/dist/devices/raex.js +47 -0
  1036. package/dist/devices/raex.js.map +1 -0
  1037. package/dist/devices/rgb_genie.d.ts +3 -0
  1038. package/dist/devices/rgb_genie.d.ts.map +1 -0
  1039. package/dist/devices/rgb_genie.js +277 -0
  1040. package/dist/devices/rgb_genie.js.map +1 -0
  1041. package/dist/devices/robb.d.ts +3 -0
  1042. package/dist/devices/robb.d.ts.map +1 -0
  1043. package/dist/devices/robb.js +492 -0
  1044. package/dist/devices/robb.js.map +1 -0
  1045. package/dist/devices/roome.d.ts +3 -0
  1046. package/dist/devices/roome.d.ts.map +1 -0
  1047. package/dist/devices/roome.js +51 -0
  1048. package/dist/devices/roome.js.map +1 -0
  1049. package/dist/devices/rtx.d.ts +3 -0
  1050. package/dist/devices/rtx.d.ts.map +1 -0
  1051. package/dist/devices/rtx.js +143 -0
  1052. package/dist/devices/rtx.js.map +1 -0
  1053. package/dist/devices/salus_controls.d.ts +3 -0
  1054. package/dist/devices/salus_controls.d.ts.map +1 -0
  1055. package/dist/devices/salus_controls.js +222 -0
  1056. package/dist/devices/salus_controls.js.map +1 -0
  1057. package/dist/devices/samotech.d.ts +3 -0
  1058. package/dist/devices/samotech.d.ts.map +1 -0
  1059. package/dist/devices/samotech.js +123 -0
  1060. package/dist/devices/samotech.js.map +1 -0
  1061. package/dist/devices/saswell.d.ts +3 -0
  1062. package/dist/devices/saswell.d.ts.map +1 -0
  1063. package/dist/devices/saswell.js +120 -0
  1064. package/dist/devices/saswell.js.map +1 -0
  1065. package/dist/devices/sber.d.ts +3 -0
  1066. package/dist/devices/sber.d.ts.map +1 -0
  1067. package/dist/devices/sber.js +1921 -0
  1068. package/dist/devices/sber.js.map +1 -0
  1069. package/dist/devices/scanproducts.d.ts +3 -0
  1070. package/dist/devices/scanproducts.d.ts.map +1 -0
  1071. package/dist/devices/scanproducts.js +54 -0
  1072. package/dist/devices/scanproducts.js.map +1 -0
  1073. package/dist/devices/schlage.d.ts +3 -0
  1074. package/dist/devices/schlage.d.ts.map +1 -0
  1075. package/dist/devices/schlage.js +60 -0
  1076. package/dist/devices/schlage.js.map +1 -0
  1077. package/dist/devices/schneider_electric.d.ts +10 -0
  1078. package/dist/devices/schneider_electric.d.ts.map +1 -0
  1079. package/dist/devices/schneider_electric.js +2801 -0
  1080. package/dist/devices/schneider_electric.js.map +1 -0
  1081. package/dist/devices/schwaiger.d.ts +3 -0
  1082. package/dist/devices/schwaiger.d.ts.map +1 -0
  1083. package/dist/devices/schwaiger.js +105 -0
  1084. package/dist/devices/schwaiger.js.map +1 -0
  1085. package/dist/devices/seastar_intelligence.d.ts +3 -0
  1086. package/dist/devices/seastar_intelligence.d.ts.map +1 -0
  1087. package/dist/devices/seastar_intelligence.js +52 -0
  1088. package/dist/devices/seastar_intelligence.js.map +1 -0
  1089. package/dist/devices/securifi.d.ts +3 -0
  1090. package/dist/devices/securifi.d.ts.map +1 -0
  1091. package/dist/devices/securifi.js +79 -0
  1092. package/dist/devices/securifi.js.map +1 -0
  1093. package/dist/devices/sengled.d.ts +6 -0
  1094. package/dist/devices/sengled.d.ts.map +1 -0
  1095. package/dist/devices/sengled.js +395 -0
  1096. package/dist/devices/sengled.js.map +1 -0
  1097. package/dist/devices/senoro.d.ts +3 -0
  1098. package/dist/devices/senoro.d.ts.map +1 -0
  1099. package/dist/devices/senoro.js +64 -0
  1100. package/dist/devices/senoro.js.map +1 -0
  1101. package/dist/devices/sercomm.d.ts +3 -0
  1102. package/dist/devices/sercomm.d.ts.map +1 -0
  1103. package/dist/devices/sercomm.js +193 -0
  1104. package/dist/devices/sercomm.js.map +1 -0
  1105. package/dist/devices/shade_control.d.ts +3 -0
  1106. package/dist/devices/shade_control.d.ts.map +1 -0
  1107. package/dist/devices/shade_control.js +61 -0
  1108. package/dist/devices/shade_control.js.map +1 -0
  1109. package/dist/devices/shelly.d.ts +3 -0
  1110. package/dist/devices/shelly.d.ts.map +1 -0
  1111. package/dist/devices/shelly.js +1304 -0
  1112. package/dist/devices/shelly.js.map +1 -0
  1113. package/dist/devices/shenzhen_homa.d.ts +3 -0
  1114. package/dist/devices/shenzhen_homa.d.ts.map +1 -0
  1115. package/dist/devices/shenzhen_homa.js +143 -0
  1116. package/dist/devices/shenzhen_homa.js.map +1 -0
  1117. package/dist/devices/shinasystem.d.ts +3 -0
  1118. package/dist/devices/shinasystem.d.ts.map +1 -0
  1119. package/dist/devices/shinasystem.js +1322 -0
  1120. package/dist/devices/shinasystem.js.map +1 -0
  1121. package/dist/devices/shyugj.d.ts +3 -0
  1122. package/dist/devices/shyugj.d.ts.map +1 -0
  1123. package/dist/devices/shyugj.js +53 -0
  1124. package/dist/devices/shyugj.js.map +1 -0
  1125. package/dist/devices/siglis.d.ts +3 -0
  1126. package/dist/devices/siglis.d.ts.map +1 -0
  1127. package/dist/devices/siglis.js +440 -0
  1128. package/dist/devices/siglis.js.map +1 -0
  1129. package/dist/devices/sikom.d.ts +3 -0
  1130. package/dist/devices/sikom.d.ts.map +1 -0
  1131. package/dist/devices/sikom.js +64 -0
  1132. package/dist/devices/sikom.js.map +1 -0
  1133. package/dist/devices/silicon_labs.d.ts +3 -0
  1134. package/dist/devices/silicon_labs.d.ts.map +1 -0
  1135. package/dist/devices/silicon_labs.js +47 -0
  1136. package/dist/devices/silicon_labs.js.map +1 -0
  1137. package/dist/devices/simon.d.ts +3 -0
  1138. package/dist/devices/simon.d.ts.map +1 -0
  1139. package/dist/devices/simon.js +54 -0
  1140. package/dist/devices/simon.js.map +1 -0
  1141. package/dist/devices/simpla_home.d.ts +3 -0
  1142. package/dist/devices/simpla_home.d.ts.map +1 -0
  1143. package/dist/devices/simpla_home.js +97 -0
  1144. package/dist/devices/simpla_home.js.map +1 -0
  1145. package/dist/devices/sinope.d.ts +3 -0
  1146. package/dist/devices/sinope.d.ts.map +1 -0
  1147. package/dist/devices/sinope.js +2015 -0
  1148. package/dist/devices/sinope.js.map +1 -0
  1149. package/dist/devices/siterwell.d.ts +3 -0
  1150. package/dist/devices/siterwell.d.ts.map +1 -0
  1151. package/dist/devices/siterwell.js +107 -0
  1152. package/dist/devices/siterwell.js.map +1 -0
  1153. package/dist/devices/skydance.d.ts +3 -0
  1154. package/dist/devices/skydance.d.ts.map +1 -0
  1155. package/dist/devices/skydance.js +138 -0
  1156. package/dist/devices/skydance.js.map +1 -0
  1157. package/dist/devices/slacky_diy.d.ts +3 -0
  1158. package/dist/devices/slacky_diy.d.ts.map +1 -0
  1159. package/dist/devices/slacky_diy.js +3694 -0
  1160. package/dist/devices/slacky_diy.js.map +1 -0
  1161. package/dist/devices/slv.d.ts +3 -0
  1162. package/dist/devices/slv.d.ts.map +1 -0
  1163. package/dist/devices/slv.js +77 -0
  1164. package/dist/devices/slv.js.map +1 -0
  1165. package/dist/devices/smarli.d.ts +3 -0
  1166. package/dist/devices/smarli.d.ts.map +1 -0
  1167. package/dist/devices/smarli.js +99 -0
  1168. package/dist/devices/smarli.js.map +1 -0
  1169. package/dist/devices/smart9.d.ts +3 -0
  1170. package/dist/devices/smart9.d.ts.map +1 -0
  1171. package/dist/devices/smart9.js +58 -0
  1172. package/dist/devices/smart9.js.map +1 -0
  1173. package/dist/devices/smart_home_pty.d.ts +3 -0
  1174. package/dist/devices/smart_home_pty.d.ts.map +1 -0
  1175. package/dist/devices/smart_home_pty.js +54 -0
  1176. package/dist/devices/smart_home_pty.js.map +1 -0
  1177. package/dist/devices/smartenit.d.ts +3 -0
  1178. package/dist/devices/smartenit.d.ts.map +1 -0
  1179. package/dist/devices/smartenit.js +77 -0
  1180. package/dist/devices/smartenit.js.map +1 -0
  1181. package/dist/devices/smartthings.d.ts +26 -0
  1182. package/dist/devices/smartthings.d.ts.map +1 -0
  1183. package/dist/devices/smartthings.js +571 -0
  1184. package/dist/devices/smartthings.js.map +1 -0
  1185. package/dist/devices/smartwings.d.ts +3 -0
  1186. package/dist/devices/smartwings.d.ts.map +1 -0
  1187. package/dist/devices/smartwings.js +60 -0
  1188. package/dist/devices/smartwings.js.map +1 -0
  1189. package/dist/devices/smlight.d.ts +3 -0
  1190. package/dist/devices/smlight.d.ts.map +1 -0
  1191. package/dist/devices/smlight.js +73 -0
  1192. package/dist/devices/smlight.js.map +1 -0
  1193. package/dist/devices/soanalarm.d.ts +3 -0
  1194. package/dist/devices/soanalarm.d.ts.map +1 -0
  1195. package/dist/devices/soanalarm.js +58 -0
  1196. package/dist/devices/soanalarm.js.map +1 -0
  1197. package/dist/devices/sohan_electric.d.ts +3 -0
  1198. package/dist/devices/sohan_electric.d.ts.map +1 -0
  1199. package/dist/devices/sohan_electric.js +49 -0
  1200. package/dist/devices/sohan_electric.js.map +1 -0
  1201. package/dist/devices/solaredge.d.ts +3 -0
  1202. package/dist/devices/solaredge.d.ts.map +1 -0
  1203. package/dist/devices/solaredge.js +47 -0
  1204. package/dist/devices/solaredge.js.map +1 -0
  1205. package/dist/devices/soma.d.ts +3 -0
  1206. package/dist/devices/soma.d.ts.map +1 -0
  1207. package/dist/devices/soma.js +47 -0
  1208. package/dist/devices/soma.js.map +1 -0
  1209. package/dist/devices/somfy.d.ts +3 -0
  1210. package/dist/devices/somfy.d.ts.map +1 -0
  1211. package/dist/devices/somfy.js +173 -0
  1212. package/dist/devices/somfy.js.map +1 -0
  1213. package/dist/devices/somgoms.d.ts +3 -0
  1214. package/dist/devices/somgoms.d.ts.map +1 -0
  1215. package/dist/devices/somgoms.js +80 -0
  1216. package/dist/devices/somgoms.js.map +1 -0
  1217. package/dist/devices/sonoff.d.ts +42 -0
  1218. package/dist/devices/sonoff.d.ts.map +1 -0
  1219. package/dist/devices/sonoff.js +4921 -0
  1220. package/dist/devices/sonoff.js.map +1 -0
  1221. package/dist/devices/sowilo.d.ts +3 -0
  1222. package/dist/devices/sowilo.d.ts.map +1 -0
  1223. package/dist/devices/sowilo.js +47 -0
  1224. package/dist/devices/sowilo.js.map +1 -0
  1225. package/dist/devices/spacetronik.d.ts +3 -0
  1226. package/dist/devices/spacetronik.d.ts.map +1 -0
  1227. package/dist/devices/spacetronik.js +53 -0
  1228. package/dist/devices/spacetronik.js.map +1 -0
  1229. package/dist/devices/spotmau.d.ts +3 -0
  1230. package/dist/devices/spotmau.d.ts.map +1 -0
  1231. package/dist/devices/spotmau.js +74 -0
  1232. package/dist/devices/spotmau.js.map +1 -0
  1233. package/dist/devices/sprut.d.ts +3 -0
  1234. package/dist/devices/sprut.d.ts.map +1 -0
  1235. package/dist/devices/sprut.js +328 -0
  1236. package/dist/devices/sprut.js.map +1 -0
  1237. package/dist/devices/stello.d.ts +3 -0
  1238. package/dist/devices/stello.d.ts.map +1 -0
  1239. package/dist/devices/stello.js +142 -0
  1240. package/dist/devices/stello.js.map +1 -0
  1241. package/dist/devices/stelpro.d.ts +3 -0
  1242. package/dist/devices/stelpro.d.ts.map +1 -0
  1243. package/dist/devices/stelpro.js +376 -0
  1244. package/dist/devices/stelpro.js.map +1 -0
  1245. package/dist/devices/sunricher.d.ts +30 -0
  1246. package/dist/devices/sunricher.d.ts.map +1 -0
  1247. package/dist/devices/sunricher.js +2337 -0
  1248. package/dist/devices/sunricher.js.map +1 -0
  1249. package/dist/devices/superled.d.ts +3 -0
  1250. package/dist/devices/superled.d.ts.map +1 -0
  1251. package/dist/devices/superled.js +47 -0
  1252. package/dist/devices/superled.js.map +1 -0
  1253. package/dist/devices/swann.d.ts +3 -0
  1254. package/dist/devices/swann.d.ts.map +1 -0
  1255. package/dist/devices/swann.js +69 -0
  1256. package/dist/devices/swann.js.map +1 -0
  1257. package/dist/devices/sylvania.d.ts +3 -0
  1258. package/dist/devices/sylvania.d.ts.map +1 -0
  1259. package/dist/devices/sylvania.js +223 -0
  1260. package/dist/devices/sylvania.js.map +1 -0
  1261. package/dist/devices/tapestry.d.ts +3 -0
  1262. package/dist/devices/tapestry.d.ts.map +1 -0
  1263. package/dist/devices/tapestry.js +52 -0
  1264. package/dist/devices/tapestry.js.map +1 -0
  1265. package/dist/devices/task_lighting.d.ts +3 -0
  1266. package/dist/devices/task_lighting.d.ts.map +1 -0
  1267. package/dist/devices/task_lighting.js +47 -0
  1268. package/dist/devices/task_lighting.js.map +1 -0
  1269. package/dist/devices/tci.d.ts +3 -0
  1270. package/dist/devices/tci.d.ts.map +1 -0
  1271. package/dist/devices/tci.js +68 -0
  1272. package/dist/devices/tci.js.map +1 -0
  1273. package/dist/devices/tcl.d.ts +3 -0
  1274. package/dist/devices/tcl.d.ts.map +1 -0
  1275. package/dist/devices/tcl.js +47 -0
  1276. package/dist/devices/tcl.js.map +1 -0
  1277. package/dist/devices/tech.d.ts +3 -0
  1278. package/dist/devices/tech.d.ts.map +1 -0
  1279. package/dist/devices/tech.js +213 -0
  1280. package/dist/devices/tech.js.map +1 -0
  1281. package/dist/devices/technicolor.d.ts +3 -0
  1282. package/dist/devices/technicolor.d.ts.map +1 -0
  1283. package/dist/devices/technicolor.js +85 -0
  1284. package/dist/devices/technicolor.js.map +1 -0
  1285. package/dist/devices/terncy.d.ts +3 -0
  1286. package/dist/devices/terncy.d.ts.map +1 -0
  1287. package/dist/devices/terncy.js +192 -0
  1288. package/dist/devices/terncy.js.map +1 -0
  1289. package/dist/devices/the_light_group.d.ts +3 -0
  1290. package/dist/devices/the_light_group.d.ts.map +1 -0
  1291. package/dist/devices/the_light_group.js +145 -0
  1292. package/dist/devices/the_light_group.js.map +1 -0
  1293. package/dist/devices/third_reality.d.ts +3 -0
  1294. package/dist/devices/third_reality.d.ts.map +1 -0
  1295. package/dist/devices/third_reality.js +1067 -0
  1296. package/dist/devices/third_reality.js.map +1 -0
  1297. package/dist/devices/tis_control.d.ts +3 -0
  1298. package/dist/devices/tis_control.d.ts.map +1 -0
  1299. package/dist/devices/tis_control.js +47 -0
  1300. package/dist/devices/tis_control.js.map +1 -0
  1301. package/dist/devices/titan_products.d.ts +3 -0
  1302. package/dist/devices/titan_products.d.ts.map +1 -0
  1303. package/dist/devices/titan_products.js +58 -0
  1304. package/dist/devices/titan_products.js.map +1 -0
  1305. package/dist/devices/tlwglobal.d.ts +3 -0
  1306. package/dist/devices/tlwglobal.d.ts.map +1 -0
  1307. package/dist/devices/tlwglobal.js +64 -0
  1308. package/dist/devices/tlwglobal.js.map +1 -0
  1309. package/dist/devices/tnce.d.ts +3 -0
  1310. package/dist/devices/tnce.d.ts.map +1 -0
  1311. package/dist/devices/tnce.js +54 -0
  1312. package/dist/devices/tnce.js.map +1 -0
  1313. package/dist/devices/tplink.d.ts +3 -0
  1314. package/dist/devices/tplink.d.ts.map +1 -0
  1315. package/dist/devices/tplink.js +77 -0
  1316. package/dist/devices/tplink.js.map +1 -0
  1317. package/dist/devices/trust.d.ts +3 -0
  1318. package/dist/devices/trust.d.ts.map +1 -0
  1319. package/dist/devices/trust.js +180 -0
  1320. package/dist/devices/trust.js.map +1 -0
  1321. package/dist/devices/tubeszb.d.ts +3 -0
  1322. package/dist/devices/tubeszb.d.ts.map +1 -0
  1323. package/dist/devices/tubeszb.js +56 -0
  1324. package/dist/devices/tubeszb.js.map +1 -0
  1325. package/dist/devices/tuya.d.ts +3 -0
  1326. package/dist/devices/tuya.d.ts.map +1 -0
  1327. package/dist/devices/tuya.js +24771 -0
  1328. package/dist/devices/tuya.js.map +1 -0
  1329. package/dist/devices/ubisys.d.ts +3 -0
  1330. package/dist/devices/ubisys.d.ts.map +1 -0
  1331. package/dist/devices/ubisys.js +1295 -0
  1332. package/dist/devices/ubisys.js.map +1 -0
  1333. package/dist/devices/uhome.d.ts +3 -0
  1334. package/dist/devices/uhome.d.ts.map +1 -0
  1335. package/dist/devices/uhome.js +60 -0
  1336. package/dist/devices/uhome.js.map +1 -0
  1337. package/dist/devices/universal_electronics_inc.d.ts +3 -0
  1338. package/dist/devices/universal_electronics_inc.d.ts.map +1 -0
  1339. package/dist/devices/universal_electronics_inc.js +156 -0
  1340. package/dist/devices/universal_electronics_inc.js.map +1 -0
  1341. package/dist/devices/vav.d.ts +3 -0
  1342. package/dist/devices/vav.d.ts.map +1 -0
  1343. package/dist/devices/vav.js +57 -0
  1344. package/dist/devices/vav.js.map +1 -0
  1345. package/dist/devices/vbled.d.ts +3 -0
  1346. package/dist/devices/vbled.d.ts.map +1 -0
  1347. package/dist/devices/vbled.js +47 -0
  1348. package/dist/devices/vbled.js.map +1 -0
  1349. package/dist/devices/vesternet.d.ts +3 -0
  1350. package/dist/devices/vesternet.d.ts.map +1 -0
  1351. package/dist/devices/vesternet.js +355 -0
  1352. package/dist/devices/vesternet.js.map +1 -0
  1353. package/dist/devices/viessmann.d.ts +3 -0
  1354. package/dist/devices/viessmann.d.ts.map +1 -0
  1355. package/dist/devices/viessmann.js +120 -0
  1356. package/dist/devices/viessmann.js.map +1 -0
  1357. package/dist/devices/villeroy_boch.d.ts +3 -0
  1358. package/dist/devices/villeroy_boch.d.ts.map +1 -0
  1359. package/dist/devices/villeroy_boch.js +54 -0
  1360. package/dist/devices/villeroy_boch.js.map +1 -0
  1361. package/dist/devices/vimar.d.ts +3 -0
  1362. package/dist/devices/vimar.d.ts.map +1 -0
  1363. package/dist/devices/vimar.js +140 -0
  1364. package/dist/devices/vimar.js.map +1 -0
  1365. package/dist/devices/visonic.d.ts +3 -0
  1366. package/dist/devices/visonic.d.ts.map +1 -0
  1367. package/dist/devices/visonic.js +134 -0
  1368. package/dist/devices/visonic.js.map +1 -0
  1369. package/dist/devices/vrey.d.ts +3 -0
  1370. package/dist/devices/vrey.d.ts.map +1 -0
  1371. package/dist/devices/vrey.js +48 -0
  1372. package/dist/devices/vrey.js.map +1 -0
  1373. package/dist/devices/vsmart.d.ts +3 -0
  1374. package/dist/devices/vsmart.d.ts.map +1 -0
  1375. package/dist/devices/vsmart.js +442 -0
  1376. package/dist/devices/vsmart.js.map +1 -0
  1377. package/dist/devices/wally.d.ts +3 -0
  1378. package/dist/devices/wally.d.ts.map +1 -0
  1379. package/dist/devices/wally.js +60 -0
  1380. package/dist/devices/wally.js.map +1 -0
  1381. package/dist/devices/waxman.d.ts +3 -0
  1382. package/dist/devices/waxman.d.ts.map +1 -0
  1383. package/dist/devices/waxman.js +83 -0
  1384. package/dist/devices/waxman.js.map +1 -0
  1385. package/dist/devices/weiser.d.ts +3 -0
  1386. package/dist/devices/weiser.d.ts.map +1 -0
  1387. package/dist/devices/weiser.js +54 -0
  1388. package/dist/devices/weiser.js.map +1 -0
  1389. package/dist/devices/weten.d.ts +3 -0
  1390. package/dist/devices/weten.d.ts.map +1 -0
  1391. package/dist/devices/weten.js +83 -0
  1392. package/dist/devices/weten.js.map +1 -0
  1393. package/dist/devices/wirenboard.d.ts +3 -0
  1394. package/dist/devices/wirenboard.d.ts.map +1 -0
  1395. package/dist/devices/wirenboard.js +715 -0
  1396. package/dist/devices/wirenboard.js.map +1 -0
  1397. package/dist/devices/wisdom.d.ts +3 -0
  1398. package/dist/devices/wisdom.d.ts.map +1 -0
  1399. package/dist/devices/wisdom.js +47 -0
  1400. package/dist/devices/wisdom.js.map +1 -0
  1401. package/dist/devices/wmun.d.ts +3 -0
  1402. package/dist/devices/wmun.d.ts.map +1 -0
  1403. package/dist/devices/wmun.js +61 -0
  1404. package/dist/devices/wmun.js.map +1 -0
  1405. package/dist/devices/woolley.d.ts +3 -0
  1406. package/dist/devices/woolley.d.ts.map +1 -0
  1407. package/dist/devices/woolley.js +96 -0
  1408. package/dist/devices/woolley.js.map +1 -0
  1409. package/dist/devices/woox.d.ts +3 -0
  1410. package/dist/devices/woox.d.ts.map +1 -0
  1411. package/dist/devices/woox.js +194 -0
  1412. package/dist/devices/woox.js.map +1 -0
  1413. package/dist/devices/wyze.d.ts +3 -0
  1414. package/dist/devices/wyze.d.ts.map +1 -0
  1415. package/dist/devices/wyze.js +59 -0
  1416. package/dist/devices/wyze.js.map +1 -0
  1417. package/dist/devices/xal.d.ts +3 -0
  1418. package/dist/devices/xal.d.ts.map +1 -0
  1419. package/dist/devices/xal.js +61 -0
  1420. package/dist/devices/xal.js.map +1 -0
  1421. package/dist/devices/xenon.d.ts +4 -0
  1422. package/dist/devices/xenon.d.ts.map +1 -0
  1423. package/dist/devices/xenon.js +65 -0
  1424. package/dist/devices/xenon.js.map +1 -0
  1425. package/dist/devices/xinghuoyuan.d.ts +3 -0
  1426. package/dist/devices/xinghuoyuan.d.ts.map +1 -0
  1427. package/dist/devices/xinghuoyuan.js +47 -0
  1428. package/dist/devices/xinghuoyuan.js.map +1 -0
  1429. package/dist/devices/xyzroe.d.ts +3 -0
  1430. package/dist/devices/xyzroe.d.ts.map +1 -0
  1431. package/dist/devices/xyzroe.js +511 -0
  1432. package/dist/devices/xyzroe.js.map +1 -0
  1433. package/dist/devices/yale.d.ts +3 -0
  1434. package/dist/devices/yale.d.ts.map +1 -0
  1435. package/dist/devices/yale.js +686 -0
  1436. package/dist/devices/yale.js.map +1 -0
  1437. package/dist/devices/yandex.d.ts +3 -0
  1438. package/dist/devices/yandex.d.ts.map +1 -0
  1439. package/dist/devices/yandex.js +677 -0
  1440. package/dist/devices/yandex.js.map +1 -0
  1441. package/dist/devices/ynoa.d.ts +3 -0
  1442. package/dist/devices/ynoa.d.ts.map +1 -0
  1443. package/dist/devices/ynoa.js +116 -0
  1444. package/dist/devices/ynoa.js.map +1 -0
  1445. package/dist/devices/yokis.d.ts +3 -0
  1446. package/dist/devices/yokis.d.ts.map +1 -0
  1447. package/dist/devices/yokis.js +2972 -0
  1448. package/dist/devices/yokis.js.map +1 -0
  1449. package/dist/devices/yookee.d.ts +3 -0
  1450. package/dist/devices/yookee.d.ts.map +1 -0
  1451. package/dist/devices/yookee.js +59 -0
  1452. package/dist/devices/yookee.js.map +1 -0
  1453. package/dist/devices/ysrsai.d.ts +3 -0
  1454. package/dist/devices/ysrsai.d.ts.map +1 -0
  1455. package/dist/devices/ysrsai.js +68 -0
  1456. package/dist/devices/ysrsai.js.map +1 -0
  1457. package/dist/devices/zbeacon.d.ts +3 -0
  1458. package/dist/devices/zbeacon.d.ts.map +1 -0
  1459. package/dist/devices/zbeacon.js +54 -0
  1460. package/dist/devices/zbeacon.js.map +1 -0
  1461. package/dist/devices/zemismart.d.ts +3 -0
  1462. package/dist/devices/zemismart.d.ts.map +1 -0
  1463. package/dist/devices/zemismart.js +1061 -0
  1464. package/dist/devices/zemismart.js.map +1 -0
  1465. package/dist/devices/zen.d.ts +3 -0
  1466. package/dist/devices/zen.d.ts.map +1 -0
  1467. package/dist/devices/zen.js +93 -0
  1468. package/dist/devices/zen.js.map +1 -0
  1469. package/dist/devices/zigbeetlc.d.ts +3 -0
  1470. package/dist/devices/zigbeetlc.d.ts.map +1 -0
  1471. package/dist/devices/zigbeetlc.js +374 -0
  1472. package/dist/devices/zigbeetlc.js.map +1 -0
  1473. package/dist/devices/zipato.d.ts +3 -0
  1474. package/dist/devices/zipato.d.ts.map +1 -0
  1475. package/dist/devices/zipato.js +47 -0
  1476. package/dist/devices/zipato.js.map +1 -0
  1477. package/dist/devices/zunzunbee.d.ts +3 -0
  1478. package/dist/devices/zunzunbee.d.ts.map +1 -0
  1479. package/dist/devices/zunzunbee.js +97 -0
  1480. package/dist/devices/zunzunbee.js.map +1 -0
  1481. package/dist/index.d.ts +19 -0
  1482. package/dist/index.d.ts.map +1 -0
  1483. package/dist/index.js.map +1 -0
  1484. package/dist/indexer.d.ts +5 -0
  1485. package/dist/indexer.d.ts.map +1 -0
  1486. package/dist/indexer.js +135 -0
  1487. package/dist/indexer.js.map +1 -0
  1488. package/dist/lib/adurosmart.d.ts +15 -0
  1489. package/dist/lib/adurosmart.d.ts.map +1 -0
  1490. package/dist/lib/adurosmart.js +669 -0
  1491. package/dist/lib/adurosmart.js.map +1 -0
  1492. package/dist/lib/bosch.d.ts +353 -0
  1493. package/dist/lib/bosch.d.ts.map +1 -0
  1494. package/dist/lib/bosch.js +3163 -0
  1495. package/dist/lib/bosch.js.map +1 -0
  1496. package/dist/lib/color.d.ts +272 -0
  1497. package/dist/lib/color.d.ts.map +1 -0
  1498. package/dist/lib/color.js +766 -0
  1499. package/dist/lib/color.js.map +1 -0
  1500. package/dist/lib/constants.d.ts +78 -0
  1501. package/dist/lib/constants.d.ts.map +1 -0
  1502. package/dist/lib/constants.js +317 -0
  1503. package/dist/lib/constants.js.map +1 -0
  1504. package/dist/lib/develco.d.ts +50 -0
  1505. package/dist/lib/develco.d.ts.map +1 -0
  1506. package/dist/lib/develco.js +433 -0
  1507. package/dist/lib/develco.js.map +1 -0
  1508. package/dist/lib/ewelink.d.ts +30 -0
  1509. package/dist/lib/ewelink.d.ts.map +1 -0
  1510. package/dist/lib/ewelink.js +722 -0
  1511. package/dist/lib/ewelink.js.map +1 -0
  1512. package/dist/lib/exposes.d.ts +376 -0
  1513. package/dist/lib/exposes.d.ts.map +1 -0
  1514. package/dist/lib/exposes.js +1136 -0
  1515. package/dist/lib/exposes.js.map +1 -0
  1516. package/dist/lib/generateDefinition.d.ts +10 -0
  1517. package/dist/lib/generateDefinition.d.ts.map +1 -0
  1518. package/dist/lib/generateDefinition.js +773 -0
  1519. package/dist/lib/generateDefinition.js.map +1 -0
  1520. package/dist/lib/heiman.d.ts +92 -0
  1521. package/dist/lib/heiman.d.ts.map +1 -0
  1522. package/dist/lib/heiman.js +211 -0
  1523. package/dist/lib/heiman.js.map +1 -0
  1524. package/dist/lib/ikea.d.ts +106 -0
  1525. package/dist/lib/ikea.d.ts.map +1 -0
  1526. package/dist/lib/ikea.js +984 -0
  1527. package/dist/lib/ikea.js.map +1 -0
  1528. package/dist/lib/kelvinToXy.d.ts +8 -0
  1529. package/dist/lib/kelvinToXy.d.ts.map +1 -0
  1530. package/dist/lib/kelvinToXy.js +1913 -0
  1531. package/dist/lib/kelvinToXy.js.map +1 -0
  1532. package/dist/lib/ledvance.d.ts +20 -0
  1533. package/dist/lib/ledvance.d.ts.map +1 -0
  1534. package/dist/lib/ledvance.js +100 -0
  1535. package/dist/lib/ledvance.js.map +1 -0
  1536. package/dist/lib/legacy.d.ts +5197 -0
  1537. package/dist/lib/legacy.d.ts.map +1 -0
  1538. package/dist/lib/legacy.js +6865 -0
  1539. package/dist/lib/legacy.js.map +1 -0
  1540. package/dist/lib/legrand.d.ts +132 -0
  1541. package/dist/lib/legrand.d.ts.map +1 -0
  1542. package/dist/lib/legrand.js +404 -0
  1543. package/dist/lib/legrand.js.map +1 -0
  1544. package/dist/lib/light.d.ts +9 -0
  1545. package/dist/lib/light.d.ts.map +1 -0
  1546. package/dist/lib/light.js +144 -0
  1547. package/dist/lib/light.js.map +1 -0
  1548. package/dist/lib/logger.d.ts +4 -0
  1549. package/dist/lib/logger.d.ts.map +1 -0
  1550. package/dist/lib/logger.js +14 -0
  1551. package/dist/lib/logger.js.map +1 -0
  1552. package/dist/lib/lumi.d.ts +1093 -0
  1553. package/dist/lib/lumi.d.ts.map +1 -0
  1554. package/dist/lib/lumi.js +6479 -0
  1555. package/dist/lib/lumi.js.map +1 -0
  1556. package/dist/lib/modernExtend.d.ts +436 -0
  1557. package/dist/lib/modernExtend.d.ts.map +1 -0
  1558. package/dist/lib/modernExtend.js +2702 -0
  1559. package/dist/lib/modernExtend.js.map +1 -0
  1560. package/dist/lib/namron.d.ts +56 -0
  1561. package/dist/lib/namron.d.ts.map +1 -0
  1562. package/dist/lib/namron.js +433 -0
  1563. package/dist/lib/namron.js.map +1 -0
  1564. package/dist/lib/nodon.d.ts +3 -0
  1565. package/dist/lib/nodon.d.ts.map +1 -0
  1566. package/dist/lib/nodon.js +130 -0
  1567. package/dist/lib/nodon.js.map +1 -0
  1568. package/dist/lib/philips.d.ts +321 -0
  1569. package/dist/lib/philips.d.ts.map +1 -0
  1570. package/dist/lib/philips.js +876 -0
  1571. package/dist/lib/philips.js.map +1 -0
  1572. package/dist/lib/reporting.d.ts +57 -0
  1573. package/dist/lib/reporting.d.ts.map +1 -0
  1574. package/dist/lib/reporting.js +294 -0
  1575. package/dist/lib/reporting.js.map +1 -0
  1576. package/dist/lib/sonoff.d.ts +30 -0
  1577. package/dist/lib/sonoff.d.ts.map +1 -0
  1578. package/dist/lib/sonoff.js +91 -0
  1579. package/dist/lib/sonoff.js.map +1 -0
  1580. package/dist/lib/store.d.ts +7 -0
  1581. package/dist/lib/store.d.ts.map +1 -0
  1582. package/dist/lib/store.js +59 -0
  1583. package/dist/lib/store.js.map +1 -0
  1584. package/dist/lib/sunricher.d.ts +29 -0
  1585. package/dist/lib/sunricher.d.ts.map +1 -0
  1586. package/dist/lib/sunricher.js +838 -0
  1587. package/dist/lib/sunricher.js.map +1 -0
  1588. package/dist/lib/tuya.d.ts +998 -0
  1589. package/dist/lib/tuya.d.ts.map +1 -0
  1590. package/dist/lib/tuya.js +3043 -0
  1591. package/dist/lib/tuya.js.map +1 -0
  1592. package/dist/lib/types.d.ts +429 -0
  1593. package/dist/lib/types.d.ts.map +1 -0
  1594. package/dist/lib/types.js +3 -0
  1595. package/dist/lib/types.js.map +1 -0
  1596. package/dist/lib/ubisys.d.ts +107 -0
  1597. package/dist/lib/ubisys.d.ts.map +1 -0
  1598. package/dist/lib/ubisys.js +576 -0
  1599. package/dist/lib/ubisys.js.map +1 -0
  1600. package/dist/lib/utils.d.ts +95 -0
  1601. package/dist/lib/utils.d.ts.map +1 -0
  1602. package/dist/lib/utils.js +736 -0
  1603. package/dist/lib/utils.js.map +1 -0
  1604. package/dist/lib/zosung.d.ts +52 -0
  1605. package/dist/lib/zosung.d.ts.map +1 -0
  1606. package/dist/lib/zosung.js +264 -0
  1607. package/dist/lib/zosung.js.map +1 -0
  1608. package/dist/models-index.json +1 -0
  1609. package/package.json +2 -8
@@ -0,0 +1,2337 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.definitions = void 0;
37
+ const zigbee_herdsman_1 = require("@willieee802/zigbee-herdsman");
38
+ const fz = __importStar(require("../converters/fromZigbee"));
39
+ const tz = __importStar(require("../converters/toZigbee"));
40
+ const constants = __importStar(require("../lib/constants"));
41
+ const constants_1 = require("../lib/constants");
42
+ const exposes = __importStar(require("../lib/exposes"));
43
+ const logger_1 = require("../lib/logger");
44
+ const m = __importStar(require("../lib/modernExtend"));
45
+ const modernExtend_1 = require("../lib/modernExtend");
46
+ const reporting = __importStar(require("../lib/reporting"));
47
+ const reporting_1 = require("../lib/reporting");
48
+ const sunricher = __importStar(require("../lib/sunricher"));
49
+ const utils = __importStar(require("../lib/utils"));
50
+ const utils_1 = require("../lib/utils");
51
+ const NS = "zhc:sunricher";
52
+ const e = exposes.presets;
53
+ const ea = exposes.access;
54
+ const sunricherManufacturerCode = 0x1224;
55
+ const fzLocal = {
56
+ SRZGP2801K45C: {
57
+ cluster: "greenPower",
58
+ type: ["commandNotification", "commandCommissioningNotification"],
59
+ convert: (model, msg, publish, options, meta) => {
60
+ const commandID = msg.data.commandID;
61
+ if (utils.hasAlreadyProcessedMessage(msg, model, msg.data.frameCounter, `${msg.device.ieeeAddr}_${commandID}`))
62
+ return;
63
+ if (commandID === 224)
64
+ return;
65
+ const lookup = {
66
+ 33: "press_on",
67
+ 32: "press_off",
68
+ 55: "press_high",
69
+ 56: "press_low",
70
+ 53: "hold_high",
71
+ 54: "hold_low",
72
+ 52: "high_low_release",
73
+ 99: "cw_ww_release",
74
+ 98: "cw_dec_ww_inc",
75
+ 100: "ww_inc_cw_dec",
76
+ 65: "r_g_b",
77
+ 66: "b_g_r",
78
+ 64: "rgb_release",
79
+ };
80
+ return { action: utils.getFromLookup(commandID, lookup) };
81
+ },
82
+ },
83
+ ZG9095B: {
84
+ cluster: "hvacThermostat",
85
+ type: ["attributeReport", "readResponse"],
86
+ convert: (model, msg, _publish, _options, meta) => {
87
+ const result = {};
88
+ if (msg.data.minSetpointDeadBand !== undefined) {
89
+ const property = utils.postfixWithEndpointName("min_setpoint_deadband", msg, model, meta);
90
+ result[property] = utils.precisionRound(msg.data.minSetpointDeadBand, 2) / 10;
91
+ }
92
+ return result;
93
+ },
94
+ },
95
+ ZG2858A: {
96
+ cluster: "genBasic",
97
+ type: "write",
98
+ convert: (model, msg, publish, options, meta) => {
99
+ const number = msg.data["16389"];
100
+ const payload = { action: (0, utils_1.postfixWithEndpointName)(`scene_${number}`, msg, model, meta) };
101
+ if ((0, utils_1.hasAlreadyProcessedMessage)(msg, model))
102
+ return;
103
+ (0, utils_1.addActionGroup)(payload, msg, model);
104
+ return payload;
105
+ },
106
+ },
107
+ };
108
+ const tzLocal = {
109
+ ZG9095B: {
110
+ min_setpoint_deadband: {
111
+ key: ["min_setpoint_deadband"],
112
+ convertGet: async (entity, _key, _meta) => {
113
+ await entity.read("hvacThermostat", ["minSetpointDeadBand"]);
114
+ },
115
+ convertSet: async (entity, _key, value, _meta) => {
116
+ await entity.write("hvacThermostat", {
117
+ minSetpointDeadBand: Math.round(Number(value) * 10),
118
+ });
119
+ return { state: { min_setpoint_deadband: value } };
120
+ },
121
+ },
122
+ temperature_display: {
123
+ key: ["temperature_display"],
124
+ convertSet: async (entity, _key, value, _meta) => {
125
+ const lookup = { room: 0, set: 1, floor: 2 };
126
+ const payload = { 4104: { value: utils.getFromLookup(value, lookup), type: zigbee_herdsman_1.Zcl.DataType.ENUM8 } };
127
+ await entity.write("hvacThermostat", payload, { manufacturerCode: 0x1224 });
128
+ return { state: { temperature_display: value } };
129
+ },
130
+ convertGet: async (entity, _key, _meta) => {
131
+ await entity.read("hvacThermostat", [0x1008], { manufacturerCode: 0x1224 });
132
+ },
133
+ },
134
+ sensor: {
135
+ key: ["sensor"],
136
+ convertSet: async (entity, _key, value, _meta) => {
137
+ const lookup = { room: 1, floor: 2 };
138
+ const payload = { 4099: { value: utils.getFromLookup(value, lookup), type: zigbee_herdsman_1.Zcl.DataType.ENUM8 } };
139
+ await entity.write("hvacThermostat", payload, { manufacturerCode: 0x1224 });
140
+ return { state: { sensor: value } };
141
+ },
142
+ convertGet: async (entity, _key, _meta) => {
143
+ await entity.read("hvacThermostat", [0x1003], { manufacturerCode: 0x1224 });
144
+ },
145
+ },
146
+ lcd_brightness: {
147
+ key: ["lcd_brightness"],
148
+ convertSet: async (entity, _key, value, _meta) => {
149
+ const lookup = { low: 1, mid: 2, high: 3 };
150
+ const payload = { 4096: { value: utils.getFromLookup(value, lookup), type: zigbee_herdsman_1.Zcl.DataType.ENUM8 } };
151
+ await entity.write("hvacThermostat", payload, { manufacturerCode: 0x1224 });
152
+ return { state: { lcd_brightness: value } };
153
+ },
154
+ convertGet: async (entity, _key, _meta) => {
155
+ await entity.read("hvacThermostat", [0x1000], { manufacturerCode: 0x1224 });
156
+ },
157
+ },
158
+ },
159
+ };
160
+ const sunricherModernExtend = {
161
+ zg2858A() {
162
+ return {
163
+ exposes: [
164
+ e
165
+ .enum("action", ea.STATE, ["scene_1", "scene_2", "scene_3", "scene_4", "scene_5", "scene_6"])
166
+ .withDescription("Triggered action (e.g. a button click)")
167
+ .withCategory("diagnostic"),
168
+ ],
169
+ fromZigbee: [fzLocal.ZG2858A],
170
+ isModernExtend: true,
171
+ configure: [(0, modernExtend_1.setupConfigureForBinding)("genBasic", "output")],
172
+ };
173
+ },
174
+ };
175
+ async function syncTime(endpoint) {
176
+ try {
177
+ const time = Math.round((Date.now() - constants.OneJanuary2000) / 1000 + new Date().getTimezoneOffset() * -1 * 60);
178
+ const values = { time: time };
179
+ await endpoint.write("genTime", values);
180
+ }
181
+ catch {
182
+ /* Do nothing*/
183
+ logger_1.logger.warning(String(e), NS);
184
+ }
185
+ }
186
+ async function syncTimeWithTimeZone(endpoint) {
187
+ try {
188
+ const time = Math.round((Date.now() - constants.OneJanuary2000) / 1000);
189
+ const timeZone = new Date().getTimezoneOffset() * -1 * 60;
190
+ await endpoint.write("genTime", { time, timeZone });
191
+ }
192
+ catch {
193
+ logger_1.logger.error("Failed to sync time with time zone", NS);
194
+ }
195
+ }
196
+ exports.definitions = [
197
+ {
198
+ zigbeeModel: ["ZGRC-KEY-047"],
199
+ model: "SR-ZG2868K12-DIM",
200
+ vendor: "Sunricher",
201
+ description: "ZigBee single color remote",
202
+ extend: [
203
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3, "4": 4 } }),
204
+ m.battery(),
205
+ m.commandsOnOff({ endpointNames: ["1", "2", "3", "4"] }),
206
+ m.commandsLevelCtrl({ endpointNames: ["1", "2", "3", "4"] }),
207
+ m.commandsScenes({ commands: ["recall", "store"] }),
208
+ ],
209
+ },
210
+ {
211
+ fingerprint: [
212
+ { modelID: "ON/OFF (2CH)", manufacturerName: "Somfy" },
213
+ { modelID: "ON/OFF (2CH)", manufacturerName: "Sunricher" },
214
+ ],
215
+ model: "SR-ZG9001T2-SW",
216
+ vendor: "Sunricher",
217
+ description: "Zigbee 2-gang touch panel",
218
+ extend: [
219
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
220
+ m.onOff({ endpointNames: ["1", "2"] }),
221
+ m.commandsOnOff({ endpointNames: ["1", "2"] }),
222
+ m.identify(),
223
+ sunricher.extend.externalSwitchType(),
224
+ ],
225
+ },
226
+ {
227
+ zigbeeModel: ["ZG9041A-2R"],
228
+ model: "SR-ZG9041A-2R",
229
+ vendor: "Sunricher",
230
+ description: "Zigbee 2ch smart relay",
231
+ extend: [
232
+ m.identify(),
233
+ m.commandsScenes({ endpointNames: ["1", "2"] }),
234
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3 } }),
235
+ m.onOff({ powerOnBehavior: false, endpointNames: ["1", "2"], configureReporting: true }),
236
+ m.electricityMeter({ endpointNames: ["3"] }),
237
+ ],
238
+ meta: { multiEndpoint: true },
239
+ },
240
+ {
241
+ zigbeeModel: ["ZGRC-KEY-043"],
242
+ model: "SR-ZG2868EK7-CCT",
243
+ vendor: "Sunricher",
244
+ description: "Zigbee lighting remote control",
245
+ extend: [m.battery(), m.commandsOnOff(), m.commandsLevelCtrl(), m.commandsColorCtrl(), m.commandsScenes()],
246
+ },
247
+ {
248
+ zigbeeModel: ["ZG9098A-WinOnly"],
249
+ model: "SR-ZG9081A",
250
+ vendor: "Sunricher",
251
+ description: "Zigbee curtain control module",
252
+ extend: [
253
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3 } }),
254
+ m.windowCovering({
255
+ controls: ["lift", "tilt"],
256
+ coverInverted: true,
257
+ configureReporting: true,
258
+ endpointNames: ["1"],
259
+ }),
260
+ m.electricityMeter({ endpointNames: ["3"] }),
261
+ m.enumLookup({
262
+ name: "curtain_type",
263
+ cluster: "closuresWindowCovering",
264
+ attribute: { ID: 0x1000, type: zigbee_herdsman_1.Zcl.DataType.ENUM8 },
265
+ lookup: {
266
+ normal: 0,
267
+ venetian_blind: 1,
268
+ },
269
+ description: "Configure curtain type",
270
+ access: "ALL",
271
+ entityCategory: "config",
272
+ }),
273
+ sunricher.extend.motorControl(),
274
+ m.identify(),
275
+ ],
276
+ configure: async (device, coordinatorEndpoint) => {
277
+ const endpoint = device.getEndpoint(1);
278
+ await reporting.bind(endpoint, coordinatorEndpoint, ["closuresWindowCovering"]);
279
+ await reporting.currentPositionLiftPercentage(endpoint);
280
+ await reporting.currentPositionTiltPercentage(endpoint);
281
+ },
282
+ meta: { multiEndpoint: true },
283
+ },
284
+ {
285
+ zigbeeModel: ["ZG9100B-5A"],
286
+ model: "SR-ZG9041A-R",
287
+ vendor: "Sunricher",
288
+ description: "Zigbee smart relay module",
289
+ extend: [m.onOff({ powerOnBehavior: false }), m.electricityMeter(), sunricher.extend.externalSwitchType()],
290
+ },
291
+ {
292
+ zigbeeModel: ["ZG2819S-DIM"],
293
+ model: "SR-ZG2819S-DIM",
294
+ vendor: "Sunricher",
295
+ description: "Zigbee dim remote",
296
+ extend: [
297
+ m.identify(),
298
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3, "4": 4 } }),
299
+ m.battery(),
300
+ m.commandsOnOff({ endpointNames: ["1", "2", "3", "4"] }),
301
+ m.commandsLevelCtrl({ endpointNames: ["1", "2", "3", "4"] }),
302
+ m.commandsColorCtrl({ endpointNames: ["1", "2", "3", "4"] }),
303
+ m.commandsScenes({ endpointNames: ["1", "2", "3", "4"] }),
304
+ ],
305
+ meta: { multiEndpoint: true },
306
+ },
307
+ {
308
+ zigbeeModel: ["HK-ZRC-K5&RS-TL-G"],
309
+ model: "SR-ZG2836D5-G4",
310
+ vendor: "Sunricher",
311
+ description: "Zigbee smart remote",
312
+ extend: [
313
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3, "4": 4 } }),
314
+ m.battery(),
315
+ m.commandsOnOff({ endpointNames: ["1", "2", "3", "4"] }),
316
+ m.commandsLevelCtrl({ endpointNames: ["1", "2", "3", "4"] }),
317
+ m.commandsColorCtrl({ endpointNames: ["1", "2", "3", "4"] }),
318
+ m.commandsScenes({ endpointNames: ["1", "2", "3", "4"] }),
319
+ ],
320
+ meta: { multiEndpoint: true },
321
+ },
322
+ {
323
+ zigbeeModel: ["HK-DIM-MW2"],
324
+ model: "SR-ZG9032A-MW",
325
+ vendor: "Sunricher",
326
+ description: "Zigbee compatible fixture with integrated occupancy sensor",
327
+ extend: [
328
+ m.identify(),
329
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3 } }),
330
+ m.light({ configureReporting: true, endpointNames: ["1"] }),
331
+ m.occupancy({ endpointNames: ["2"] }),
332
+ m.illuminance({ endpointNames: ["3"] }),
333
+ m.commandsScenes({ endpointNames: ["1"] }),
334
+ m.commandsOnOff(),
335
+ m.commandsLevelCtrl(),
336
+ m.numeric({
337
+ name: "network_join_search_count",
338
+ cluster: "genBasic",
339
+ attribute: { ID: 0x9000, type: 0x20 },
340
+ valueMin: 1,
341
+ valueMax: 255,
342
+ description: "How many times will the device search and join a Zigbee network, searching every 15 seconds. Default: 2 (1~255, 255 means always searching)",
343
+ entityCategory: "config",
344
+ access: "ALL",
345
+ }),
346
+ m.numeric({
347
+ name: "light_pwm_frequency",
348
+ cluster: "genBasic",
349
+ attribute: { ID: 0x9001, type: 0x21 },
350
+ valueMin: 0,
351
+ valueMax: 65535,
352
+ description: "Light PWM Frequency. Works after reset power of the device. DO NOT set the PWM frequency too high which will affect the dimming resolution. Default: 3300",
353
+ entityCategory: "config",
354
+ access: "ALL",
355
+ }),
356
+ m.enumLookup({
357
+ name: "dimming_brightness_curve",
358
+ cluster: "genBasic",
359
+ attribute: { ID: 0x8806, type: 0x20 },
360
+ lookup: {
361
+ linear: 0x00,
362
+ gamma_1_5: 0x0f,
363
+ gamma_1_8: 0x12,
364
+ },
365
+ description: "Dimming brightness curve. Options: linear, gamma 1.5, gamma 1.8. Default: linear.",
366
+ entityCategory: "config",
367
+ access: "ALL",
368
+ }),
369
+ m.enumLookup({
370
+ name: "start_up_on_off",
371
+ cluster: "genOnOff",
372
+ attribute: { ID: 0x4003, type: 0x30 },
373
+ lookup: {
374
+ off: 0x00,
375
+ on: 0x01,
376
+ last_state: 0xff,
377
+ },
378
+ description: "Device power-on state. Options: off, on, restore previous state. Default: restore previous state.",
379
+ entityCategory: "config",
380
+ access: "ALL",
381
+ }),
382
+ m.numeric({
383
+ name: "motion_sensor_lux_threshold",
384
+ cluster: "genBasic",
385
+ attribute: { ID: 0x8903, type: 0x21 },
386
+ valueMin: 0,
387
+ valueMax: 65535,
388
+ description: "Daylight sensor lux threshold. When the measured lux is below this value, the light is allowed to turn on. Set to minimum value to disable this function. Default: disabled.",
389
+ entityCategory: "config",
390
+ access: "ALL",
391
+ }),
392
+ m.enumLookup({
393
+ name: "motion_sensor_operation_mode",
394
+ cluster: "genBasic",
395
+ attribute: { ID: 0x8904, type: 0x20 },
396
+ lookup: {
397
+ auto: 0x00,
398
+ manual: 0x01,
399
+ },
400
+ description: "Motion sensor operation mode. Options: auto (PWM output on motion), manual (PWM controlled by gateway or switch). Default: auto.",
401
+ entityCategory: "config",
402
+ access: "ALL",
403
+ }),
404
+ m.numeric({
405
+ name: "motion_sensor_sensitivity",
406
+ cluster: "genBasic",
407
+ attribute: { ID: 0x8905, type: 0x20 },
408
+ valueMin: 0,
409
+ valueMax: 15,
410
+ description: "Motion sensor sensitivity. 0 is highest sensitivity, 15 is lowest. Default: 1.",
411
+ entityCategory: "config",
412
+ access: "ALL",
413
+ }),
414
+ m.enumLookup({
415
+ name: "motion_sensor_microwave_detection",
416
+ cluster: "genBasic",
417
+ attribute: { ID: 0x8906, type: 0x20 },
418
+ lookup: {
419
+ disabled: 0x00,
420
+ enabled: 0x01,
421
+ },
422
+ description: "Enable or disable microwave detection. Options: enabled, disabled. Default: enabled.",
423
+ entityCategory: "config",
424
+ access: "ALL",
425
+ }),
426
+ m.enumLookup({
427
+ name: "touchlink_onoff_broadcast",
428
+ cluster: "genBasic",
429
+ attribute: { ID: 0x8907, type: 0x20 },
430
+ lookup: {
431
+ do_not_send: 0,
432
+ send: 1,
433
+ },
434
+ description: "Send ON/OFF command to touchlink or binding devices. Options: send, do not send. Default: send.",
435
+ entityCategory: "config",
436
+ access: "ALL",
437
+ }),
438
+ m.enumLookup({
439
+ name: "brightness_module_enable",
440
+ cluster: "genBasic",
441
+ attribute: { ID: 0x890c, type: 0x20 },
442
+ lookup: {
443
+ disabled: 0,
444
+ enabled: 1,
445
+ },
446
+ description: "Enable or disable the brightness module. Options: enabled, disabled. Default: enabled.",
447
+ entityCategory: "config",
448
+ access: "ALL",
449
+ }),
450
+ m.numeric({
451
+ name: "light_on_time",
452
+ cluster: "genBasic",
453
+ attribute: { ID: 0x8902, type: 0x21 },
454
+ valueMin: 0,
455
+ valueMax: 65535,
456
+ unit: "s",
457
+ description: "Light on time (first delay). When motion is detected and then the area is vacated, this is the time the light stays on. Unit: seconds. Default: 60 seconds.",
458
+ entityCategory: "config",
459
+ access: "ALL",
460
+ }),
461
+ m.numeric({
462
+ name: "pwm_brightness_value",
463
+ cluster: "genBasic",
464
+ attribute: { ID: 0x8908, type: 0x21 },
465
+ valueMin: 0,
466
+ valueMax: 1000,
467
+ unit: "lux",
468
+ description: "Brightness value for PWM output when motion is detected. 0 disables this function. Default: disabled.",
469
+ entityCategory: "config",
470
+ access: "ALL",
471
+ }),
472
+ m.numeric({
473
+ name: "pwm_output_percentage",
474
+ cluster: "genBasic",
475
+ attribute: { ID: 0x8909, type: 0x20 },
476
+ valueMin: 0,
477
+ valueMax: 254,
478
+ unit: "%",
479
+ description: "PWM output percentage when motion is detected. Range: 0-100%. Default: 100%.",
480
+ entityCategory: "config",
481
+ access: "ALL",
482
+ }),
483
+ m.numeric({
484
+ name: "light_status_after_first_delay",
485
+ cluster: "genBasic",
486
+ attribute: { ID: 0x890a, type: 0x20 },
487
+ valueMin: 0,
488
+ valueMax: 254,
489
+ unit: "%",
490
+ description: "Light status after the first delay expires, during the second delay. Range: 0-100%. Default: 0% (off).",
491
+ entityCategory: "config",
492
+ access: "ALL",
493
+ }),
494
+ m.numeric({
495
+ name: "second_delay_time",
496
+ cluster: "genBasic",
497
+ attribute: { ID: 0x8901, type: 0x21 },
498
+ valueMin: 0,
499
+ valueMax: 65535,
500
+ unit: "s",
501
+ description: "Duration of the second delay after the first delay expires. Unit: seconds. Default: 60 seconds.",
502
+ entityCategory: "config",
503
+ access: "ALL",
504
+ }),
505
+ m.numeric({
506
+ name: "light_status_after_second_delay",
507
+ cluster: "genBasic",
508
+ attribute: { ID: 0x890b, type: 0x20 },
509
+ valueMin: 0,
510
+ valueMax: 254,
511
+ unit: "%",
512
+ description: "Light status after the second delay expires. Range: 0-100%. Default: 0% (off).",
513
+ entityCategory: "config",
514
+ access: "ALL",
515
+ }),
516
+ m.numeric({
517
+ name: "linearity_error_ratio_lux",
518
+ cluster: "genBasic",
519
+ attribute: { ID: 0x890d, type: 0x21 },
520
+ valueMin: 100,
521
+ valueMax: 10000,
522
+ description: "Linearity error ratio coefficient for LUX measurement. 1000 means 1000‰ (default). Increasing this value magnifies the LUX measurement linearly, decreasing minifies it. For example, 1001 means 1.001x, 500 means 0.5x.",
523
+ entityCategory: "config",
524
+ access: "ALL",
525
+ }),
526
+ m.numeric({
527
+ name: "fixed_deviation_lux",
528
+ cluster: "genBasic",
529
+ attribute: { ID: 0x890e, type: 0x29 },
530
+ valueMin: -100,
531
+ valueMax: 100,
532
+ description: "Fixed deviation of LUX measurement. Signed 2-byte integer. Positive value increases, negative value decreases the measured LUX. For example, 100 means +100 LUX, -100 means -100 LUX.",
533
+ entityCategory: "config",
534
+ access: "ALL",
535
+ }),
536
+ ],
537
+ meta: { multiEndpoint: true },
538
+ },
539
+ {
540
+ zigbeeModel: ["ZG9098A-LightWin", "ZG9098A-Win"],
541
+ model: "SR-ZG9098A-Win",
542
+ vendor: "Sunricher",
543
+ description: "Zigbee curtain control module",
544
+ extend: [
545
+ sunricher.extend.configureReadModelID(),
546
+ m.commandsScenes({ endpointNames: ["1", "2"] }),
547
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3 } }),
548
+ m.windowCovering({
549
+ controls: ["lift", "tilt"],
550
+ coverInverted: true,
551
+ configureReporting: true,
552
+ endpointNames: ["1"],
553
+ }),
554
+ m.electricityMeter({ endpointNames: ["3"] }),
555
+ m.enumLookup({
556
+ name: "dev_mode",
557
+ cluster: "genBasic",
558
+ attribute: { ID: 0x0001, type: 0x30 },
559
+ lookup: {
560
+ curtain: 0,
561
+ light: 1,
562
+ },
563
+ description: "Set device type (curtain or light)",
564
+ entityCategory: "config",
565
+ access: "ALL",
566
+ zigbeeCommandOptions: { manufacturerCode: 0x1224 },
567
+ }),
568
+ m.enumLookup({
569
+ name: "curtain_type",
570
+ cluster: "closuresWindowCovering",
571
+ attribute: { ID: 0x1000, type: zigbee_herdsman_1.Zcl.DataType.ENUM8 },
572
+ lookup: {
573
+ normal: 0,
574
+ venetian_blind: 1,
575
+ },
576
+ description: "Configure curtain type",
577
+ access: "ALL",
578
+ entityCategory: "config",
579
+ zigbeeCommandOptions: { manufacturerCode: sunricherManufacturerCode },
580
+ }),
581
+ sunricher.extend.motorControl(),
582
+ m.identify(),
583
+ ],
584
+ configure: async (device, coordinatorEndpoint) => {
585
+ const endpoint = device.getEndpoint(1);
586
+ await reporting.bind(endpoint, coordinatorEndpoint, ["closuresWindowCovering"]);
587
+ await reporting.currentPositionLiftPercentage(endpoint);
588
+ await reporting.currentPositionTiltPercentage(endpoint);
589
+ },
590
+ meta: { multiEndpoint: true },
591
+ },
592
+ {
593
+ zigbeeModel: ["ZG9098A-Light", "ZG9098A-WinLight"],
594
+ model: "SR-ZG9098A-Light",
595
+ vendor: "Sunricher",
596
+ description: "Zigbee 2ch smart relay",
597
+ extend: [
598
+ sunricher.extend.configureReadModelID(),
599
+ m.identify(),
600
+ m.commandsScenes({ endpointNames: ["1", "2"] }),
601
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3 } }),
602
+ m.onOff({ powerOnBehavior: false, endpointNames: ["1", "2"], configureReporting: true }),
603
+ m.electricityMeter({ endpointNames: ["3"] }),
604
+ m.enumLookup({
605
+ name: "dev_mode",
606
+ cluster: "genBasic",
607
+ attribute: { ID: 0x0001, type: 0x30 },
608
+ lookup: {
609
+ curtain: 0,
610
+ light: 1,
611
+ },
612
+ description: "Set device type (curtain/light)",
613
+ entityCategory: "config",
614
+ access: "ALL",
615
+ zigbeeCommandOptions: { manufacturerCode: 0x1224 },
616
+ }),
617
+ ],
618
+ meta: { multiEndpoint: true },
619
+ },
620
+ {
621
+ zigbeeModel: ["ZG2833K8_EU05"],
622
+ model: "SR-ZG9001K8-DIM",
623
+ vendor: "Sunricher",
624
+ description: "Zigbee 8 button wall switch",
625
+ extend: [
626
+ m.commandsOnOff({
627
+ endpointNames: ["1", "2", "3", "4"],
628
+ }),
629
+ m.battery(),
630
+ m.commandsLevelCtrl({
631
+ commands: ["brightness_move_up", "brightness_move_down", "brightness_stop"],
632
+ endpointNames: ["1", "2", "3", "4"],
633
+ }),
634
+ ],
635
+ whiteLabel: [{ vendor: "Sunricher", model: "SR-ZG9001NK8-DIM" }],
636
+ meta: { multiEndpoint: true },
637
+ },
638
+ {
639
+ zigbeeModel: ["HK-ZRC-K10N-E"],
640
+ model: "SR-ZG2856-Pro",
641
+ vendor: "Sunricher",
642
+ description: "Zigbee smart remote",
643
+ extend: [
644
+ m.battery(),
645
+ m.deviceAddCustomCluster("sunricherRemote", {
646
+ ID: 0xff03,
647
+ attributes: {},
648
+ commands: {
649
+ press: {
650
+ ID: 0x01,
651
+ parameters: [
652
+ { name: "messageType", type: zigbee_herdsman_1.Zcl.DataType.UINT8, max: 0xff },
653
+ { name: "button2", type: zigbee_herdsman_1.Zcl.DataType.UINT8, max: 0xff },
654
+ { name: "button1", type: zigbee_herdsman_1.Zcl.DataType.UINT8, max: 0xff },
655
+ { name: "pressType", type: zigbee_herdsman_1.Zcl.DataType.UINT8, max: 0xff },
656
+ ],
657
+ },
658
+ },
659
+ commandsResponse: {},
660
+ }),
661
+ sunricher.extend.SRZG2856Pro(),
662
+ ],
663
+ },
664
+ {
665
+ zigbeeModel: ["ZG9340"],
666
+ model: "SR-ZG9093TRV",
667
+ vendor: "Sunricher",
668
+ description: "Zigbee thermostatic radiator valve",
669
+ extend: [
670
+ m.deviceAddCustomCluster("hvacThermostat", {
671
+ ID: zigbee_herdsman_1.Zcl.Clusters.hvacThermostat.ID,
672
+ attributes: {
673
+ screenTimeout: {
674
+ ID: 0x100d,
675
+ type: zigbee_herdsman_1.Zcl.DataType.UINT8,
676
+ manufacturerCode: sunricherManufacturerCode,
677
+ write: true,
678
+ max: 0xff,
679
+ },
680
+ antiFreezingTemp: {
681
+ ID: 0x1005,
682
+ type: zigbee_herdsman_1.Zcl.DataType.UINT8,
683
+ manufacturerCode: sunricherManufacturerCode,
684
+ write: true,
685
+ max: 0xff,
686
+ },
687
+ temperatureDisplayMode: {
688
+ ID: 0x1008,
689
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
690
+ manufacturerCode: sunricherManufacturerCode,
691
+ write: true,
692
+ max: 0xff,
693
+ },
694
+ windowOpenCheck: {
695
+ ID: 0x1009,
696
+ type: zigbee_herdsman_1.Zcl.DataType.UINT8,
697
+ manufacturerCode: sunricherManufacturerCode,
698
+ write: true,
699
+ max: 0xff,
700
+ },
701
+ hysteresis: {
702
+ ID: 0x100a,
703
+ type: zigbee_herdsman_1.Zcl.DataType.UINT8,
704
+ manufacturerCode: sunricherManufacturerCode,
705
+ write: true,
706
+ max: 0xff,
707
+ },
708
+ windowOpenFlag: {
709
+ ID: 0x100b,
710
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
711
+ manufacturerCode: sunricherManufacturerCode,
712
+ write: true,
713
+ max: 0xff,
714
+ },
715
+ forcedHeatingTime: {
716
+ ID: 0x100e,
717
+ type: zigbee_herdsman_1.Zcl.DataType.UINT8,
718
+ manufacturerCode: sunricherManufacturerCode,
719
+ write: true,
720
+ max: 0xff,
721
+ },
722
+ errorCode: {
723
+ ID: 0x2003,
724
+ type: zigbee_herdsman_1.Zcl.DataType.BITMAP8,
725
+ manufacturerCode: sunricherManufacturerCode,
726
+ write: true,
727
+ },
728
+ awayOrBoostMode: {
729
+ ID: 0x2002,
730
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
731
+ manufacturerCode: sunricherManufacturerCode,
732
+ write: true,
733
+ max: 0xff,
734
+ },
735
+ },
736
+ commands: {},
737
+ commandsResponse: {},
738
+ }),
739
+ sunricher.extend.thermostatPreset(),
740
+ sunricher.extend.thermostatCurrentHeatingSetpoint(),
741
+ m.battery(),
742
+ m.identify(),
743
+ m.numeric({
744
+ name: "screen_timeout",
745
+ cluster: "hvacThermostat",
746
+ attribute: "screenTimeout",
747
+ valueMin: 10,
748
+ valueMax: 30,
749
+ unit: "s",
750
+ description: "Screen Timeout for Inactivity (excluding gateway config). Range: 10-30s, Default: 10s",
751
+ access: "ALL",
752
+ entityCategory: "config",
753
+ }),
754
+ m.numeric({
755
+ name: "anti_freezing_temp",
756
+ cluster: "hvacThermostat",
757
+ attribute: "antiFreezingTemp",
758
+ valueMin: 0,
759
+ valueMax: 10,
760
+ unit: "°C",
761
+ description: "Anti Freezing(Low Temp) Mode Configuration. 0: disabled, 5~10: temperature (5°C by default)",
762
+ access: "ALL",
763
+ entityCategory: "config",
764
+ }),
765
+ m.enumLookup({
766
+ name: "temperature_display_mode",
767
+ cluster: "hvacThermostat",
768
+ attribute: "temperatureDisplayMode",
769
+ lookup: {
770
+ set_temp: 1,
771
+ room_temp: 2,
772
+ },
773
+ description: "Temperature Display Mode. 1: displays set temp, 2: displays room temp (default)",
774
+ access: "ALL",
775
+ }),
776
+ m.numeric({
777
+ name: "window_open_check",
778
+ cluster: "hvacThermostat",
779
+ attribute: "windowOpenCheck",
780
+ valueMin: 0,
781
+ valueMax: 10,
782
+ unit: "°C",
783
+ description: "The temperature threshold for Window Open Detect, value range 0~10, unit is 1°C, 0 means disabled, default value is 5",
784
+ access: "ALL",
785
+ entityCategory: "config",
786
+ }),
787
+ m.numeric({
788
+ name: "hysteresis",
789
+ cluster: "hvacThermostat",
790
+ attribute: "hysteresis",
791
+ valueMin: 5,
792
+ valueMax: 20,
793
+ valueStep: 0.1,
794
+ unit: "°C",
795
+ description: "Control hysteresis setting, range is 5-20, unit is 0.1°C, default value is 10. Because the sensor accuracy is 0.5°C, it is recommended not to set this value below 1°C to avoid affecting the battery life.",
796
+ access: "ALL",
797
+ entityCategory: "config",
798
+ }),
799
+ m.binary({
800
+ name: "window_open_flag",
801
+ cluster: "hvacThermostat",
802
+ attribute: "windowOpenFlag",
803
+ description: "Window open flag",
804
+ valueOn: ["opened", 1],
805
+ valueOff: ["not_opened", 0],
806
+ access: "STATE_GET",
807
+ }),
808
+ m.numeric({
809
+ name: "forced_heating_time",
810
+ cluster: "hvacThermostat",
811
+ attribute: "forcedHeatingTime",
812
+ valueMin: 10,
813
+ valueMax: 90,
814
+ unit: "10s",
815
+ description: "Forced heating time, range 10~90, unit is 10s, default value is 30(300s)",
816
+ access: "ALL",
817
+ entityCategory: "config",
818
+ }),
819
+ m.enumLookup({
820
+ name: "error_code",
821
+ cluster: "hvacThermostat",
822
+ attribute: "errorCode",
823
+ lookup: {
824
+ no_error: 0,
825
+ motor_error: 4,
826
+ motor_timeout: 5,
827
+ },
828
+ description: "Error code: 0=No hardware error, 4=Motor error (detected not running), 5=The motor runs exceeding the self-check time without finding the boundary",
829
+ access: "STATE_GET",
830
+ }),
831
+ m.enumLookup({
832
+ name: "temperature_display_unit",
833
+ cluster: "hvacUserInterfaceCfg",
834
+ attribute: { ID: 0x0000, type: 0x30 },
835
+ lookup: {
836
+ celsius: 0x00,
837
+ fahrenheit: 0x01,
838
+ },
839
+ description: "The temperature unit shown on the display",
840
+ access: "ALL",
841
+ entityCategory: "config",
842
+ }),
843
+ sunricher.extend.thermostatWeeklySchedule(),
844
+ sunricher.extend.thermostatChildLock(),
845
+ ],
846
+ fromZigbee: [fz.thermostat],
847
+ toZigbee: [
848
+ tz.thermostat_local_temperature,
849
+ tz.thermostat_local_temperature_calibration,
850
+ tz.thermostat_running_state,
851
+ tz.thermostat_temperature_display_mode,
852
+ ],
853
+ exposes: [
854
+ e
855
+ .climate()
856
+ .withLocalTemperature(ea.STATE_GET)
857
+ .withSetpoint("current_heating_setpoint", 5, 35, 0.1, ea.ALL)
858
+ .withLocalTemperatureCalibration(-30, 30, 0.5, ea.ALL)
859
+ .withPreset(["off", "auto", "away", "sleep", "manual", "forced"], "Preset of the thermostat. Manual: comfort temp (20°C), Auto: schedule temp (see schedule), " +
860
+ "Away: eco temp (6°C), Sleep: night temp (17°C), Forced: temporary heating with configurable duration (default 300s)")
861
+ .withSystemMode(["off", "auto", "heat", "sleep"], ea.ALL)
862
+ .withRunningState(["idle", "heat"]),
863
+ ],
864
+ configure: async (device, coordinatorEndpoint) => {
865
+ const endpoint = device.getEndpoint(1);
866
+ const bindClusters = ["genBasic", "genPowerCfg", "hvacThermostat", "hvacUserInterfaceCfg", "genTime"];
867
+ const maxRetries = 3;
868
+ let retryCount = 0;
869
+ let bindSuccess = false;
870
+ while (retryCount < maxRetries) {
871
+ try {
872
+ if (!bindSuccess) {
873
+ await reporting.bind(endpoint, coordinatorEndpoint, bindClusters);
874
+ bindSuccess = true;
875
+ }
876
+ const configPromises = [
877
+ reporting.thermostatTemperature(endpoint),
878
+ reporting.thermostatOccupiedHeatingSetpoint(endpoint),
879
+ reporting.thermostatUnoccupiedHeatingSetpoint(endpoint),
880
+ reporting.thermostatRunningState(endpoint),
881
+ reporting.batteryPercentageRemaining(endpoint),
882
+ endpoint.configureReporting("hvacUserInterfaceCfg", (0, reporting_1.payload)("tempDisplayMode", 10, constants_1.repInterval.MINUTE, null)),
883
+ ];
884
+ await Promise.all(configPromises);
885
+ const customAttributes = [
886
+ "screenTimeout",
887
+ "antiFreezingTemp",
888
+ "temperatureDisplayMode",
889
+ "windowOpenCheck",
890
+ "hysteresis",
891
+ "windowOpenFlag",
892
+ "forcedHeatingTime",
893
+ ];
894
+ await Promise.all(customAttributes.map((attr) => endpoint.configureReporting("hvacThermostat", (0, reporting_1.payload)(attr, 10, constants_1.repInterval.MINUTE, null))));
895
+ const readPromises = [
896
+ endpoint.read("hvacUserInterfaceCfg", ["tempDisplayMode"]),
897
+ endpoint.read("hvacThermostat", ["localTemp", "runningState"]),
898
+ endpoint.read("hvacThermostat", [
899
+ "screenTimeout",
900
+ "antiFreezingTemp",
901
+ "temperatureDisplayMode",
902
+ "windowOpenCheck",
903
+ "hysteresis",
904
+ "windowOpenFlag",
905
+ "forcedHeatingTime",
906
+ "errorCode",
907
+ ]),
908
+ ];
909
+ await Promise.all(readPromises);
910
+ await syncTimeWithTimeZone(endpoint);
911
+ break;
912
+ }
913
+ catch (error) {
914
+ retryCount++;
915
+ logger_1.logger.warning(`Configure attempt ${retryCount} failed: ${error}`, NS);
916
+ if (retryCount === maxRetries) {
917
+ logger_1.logger.error(`Failed to configure device after ${maxRetries} attempts`, NS);
918
+ throw error;
919
+ }
920
+ await new Promise((resolve) => setTimeout(resolve, 2000 * retryCount));
921
+ }
922
+ }
923
+ },
924
+ },
925
+ {
926
+ zigbeeModel: ["HK-SENSOR-SMO"],
927
+ model: "SR-ZG9070A-SS",
928
+ vendor: "Sunricher",
929
+ description: "Smart photoelectric smoke alarm",
930
+ extend: [
931
+ m.battery(),
932
+ m.iasZoneAlarm({
933
+ zoneType: "smoke",
934
+ zoneAttributes: ["alarm_1", "alarm_2", "tamper", "battery_low"],
935
+ }),
936
+ m.iasWarning(),
937
+ ],
938
+ },
939
+ {
940
+ zigbeeModel: ["HK-SENSOR-PRE"],
941
+ model: "SR-ZG9030F-PS",
942
+ vendor: "Sunricher",
943
+ description: "Smart human presence sensor",
944
+ extend: [
945
+ m.illuminance({ scale: (value) => value }),
946
+ m.occupancy(),
947
+ m.commandsOnOff(),
948
+ m.deviceAddCustomCluster("sunricherSensor", {
949
+ ID: 0xfc8b,
950
+ manufacturerCode: 0x120b,
951
+ attributes: {
952
+ indicatorLight: { ID: 0xf001, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
953
+ detectionArea: { ID: 0xf002, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
954
+ illuminanceThreshold: { ID: 0xf004, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
955
+ },
956
+ commands: {},
957
+ commandsResponse: {},
958
+ }),
959
+ sunricher.extend.indicatorLight(),
960
+ m.numeric({
961
+ name: "detection_area",
962
+ cluster: "sunricherSensor",
963
+ attribute: "detectionArea",
964
+ description: "Detection area range (default: 50%)",
965
+ valueMin: 0,
966
+ valueMax: 100,
967
+ valueStep: 1,
968
+ unit: "%",
969
+ access: "ALL",
970
+ entityCategory: "config",
971
+ }),
972
+ m.numeric({
973
+ name: "illuminance_threshold",
974
+ cluster: "sunricherSensor",
975
+ attribute: "illuminanceThreshold",
976
+ description: "Illuminance threshold for triggering (default: 100)",
977
+ valueMin: 10,
978
+ valueMax: 100,
979
+ valueStep: 1,
980
+ unit: "lx",
981
+ access: "ALL",
982
+ entityCategory: "config",
983
+ }),
984
+ ],
985
+ },
986
+ {
987
+ zigbeeModel: ["HK-SENSOR-GAS"],
988
+ model: "SR-ZG9060A-GS",
989
+ vendor: "Sunricher",
990
+ description: "Smart combustible gas sensor",
991
+ extend: [
992
+ m.iasZoneAlarm({
993
+ zoneType: "gas",
994
+ zoneAttributes: ["alarm_1", "alarm_2", "tamper", "battery_low"],
995
+ }),
996
+ m.iasWarning(),
997
+ ],
998
+ },
999
+ {
1000
+ zigbeeModel: ["HK-SENSOR-CO"],
1001
+ model: "SR-ZG9060B-CS",
1002
+ vendor: "Sunricher",
1003
+ description: "Smart carbon monoxide alarm",
1004
+ extend: [
1005
+ m.battery(),
1006
+ m.iasZoneAlarm({
1007
+ zoneType: "carbon_monoxide",
1008
+ zoneAttributes: ["alarm_1", "alarm_2", "tamper", "battery_low"],
1009
+ }),
1010
+ m.iasWarning(),
1011
+ ],
1012
+ },
1013
+ {
1014
+ zigbeeModel: ["HK-SENSOR-WT1"],
1015
+ model: "SR-ZG9050C-WS",
1016
+ vendor: "Sunricher",
1017
+ description: "Smart water leakage sensor",
1018
+ extend: [
1019
+ m.battery(),
1020
+ m.iasZoneAlarm({
1021
+ zoneType: "water_leak",
1022
+ zoneAttributes: ["alarm_1", "alarm_2", "tamper", "battery_low"],
1023
+ }),
1024
+ ],
1025
+ },
1026
+ {
1027
+ zigbeeModel: ["HK-SENSOR-WT2"],
1028
+ model: "SR-ZG9050B-WS",
1029
+ vendor: "Sunricher",
1030
+ description: "Water leakage alarm",
1031
+ extend: [
1032
+ m.battery(),
1033
+ m.temperature(),
1034
+ m.iasZoneAlarm({
1035
+ zoneType: "water_leak",
1036
+ zoneAttributes: ["alarm_1", "alarm_2", "tamper", "battery_low"],
1037
+ }),
1038
+ m.iasWarning(),
1039
+ ],
1040
+ },
1041
+ {
1042
+ zigbeeModel: ["HK-SL-DIM-UK"],
1043
+ model: "SR-ZG2835RAC-UK",
1044
+ vendor: "Sunricher",
1045
+ description: "Push compatible zigBee knob smart dimmer",
1046
+ extend: [m.light({ configureReporting: true }), m.electricityMeter(), sunricher.extend.externalSwitchType()],
1047
+ },
1048
+ {
1049
+ zigbeeModel: ["ZG2837RAC-K4"],
1050
+ model: "SR-ZG2835RAC-NK4",
1051
+ vendor: "Sunricher",
1052
+ description: "4-Key zigbee rotary & push button smart dimmer",
1053
+ extend: [m.light({ configureReporting: true }), m.electricityMeter(), m.commandsScenes()],
1054
+ },
1055
+ {
1056
+ zigbeeModel: ["HK-ZRC-K5&RS-TL"],
1057
+ model: "SR-ZG2836D5",
1058
+ vendor: "Sunricher",
1059
+ description: "Zigbee smart remote",
1060
+ extend: [m.battery(), m.commandsOnOff(), m.commandsLevelCtrl(), m.commandsWindowCovering(), m.commandsColorCtrl(), m.commandsScenes()],
1061
+ },
1062
+ {
1063
+ zigbeeModel: ["ZG9032B"],
1064
+ model: "SR-ZG9033TH",
1065
+ vendor: "Sunricher",
1066
+ description: "Zigbee temperature and humidity sensor",
1067
+ extend: [
1068
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
1069
+ m.battery(),
1070
+ m.temperature(),
1071
+ m.humidity({ endpointNames: ["2"] }),
1072
+ m.numeric({
1073
+ name: "temperature_sensor_compensation",
1074
+ cluster: 0x0402,
1075
+ attribute: { ID: 0x1000, type: 0x28 },
1076
+ valueMin: -5,
1077
+ valueMax: 5,
1078
+ valueStep: 1,
1079
+ unit: "°C",
1080
+ description: "Temperature sensor compensation (-5~+5°C)",
1081
+ access: "ALL",
1082
+ entityCategory: "config",
1083
+ zigbeeCommandOptions: { manufacturerCode: 0x1224 },
1084
+ endpointNames: ["1"],
1085
+ }),
1086
+ m.enumLookup({
1087
+ name: "temperature_display_unit",
1088
+ cluster: 0x0402,
1089
+ attribute: { ID: 0x1001, type: 0x30 },
1090
+ lookup: {
1091
+ celsius: 0,
1092
+ fahrenheit: 1,
1093
+ },
1094
+ description: "Temperature display unit",
1095
+ access: "ALL",
1096
+ endpointName: "1",
1097
+ entityCategory: "config",
1098
+ zigbeeCommandOptions: { manufacturerCode: 0x1224 },
1099
+ }),
1100
+ m.numeric({
1101
+ name: "humidity_sensor_compensation",
1102
+ cluster: 0x0405,
1103
+ attribute: { ID: 0x1000, type: 0x28 },
1104
+ valueMin: -5,
1105
+ valueMax: 5,
1106
+ valueStep: 1,
1107
+ unit: "%",
1108
+ description: "Humidity sensor compensation (-5~+5%)",
1109
+ access: "ALL",
1110
+ entityCategory: "config",
1111
+ zigbeeCommandOptions: { manufacturerCode: 0x1224 },
1112
+ endpointNames: ["2"],
1113
+ }),
1114
+ ],
1115
+ meta: { multiEndpoint: true },
1116
+ },
1117
+ {
1118
+ zigbeeModel: ["HK-ZRC-K16N-E"],
1119
+ model: "SR-ZG9002K16-Pro",
1120
+ vendor: "Sunricher",
1121
+ description: "Zigbee smart wall panel remote",
1122
+ extend: [m.battery(), sunricher.extend.SRZG9002K16Pro()],
1123
+ },
1124
+ {
1125
+ zigbeeModel: ["ZG9030A-MW"],
1126
+ model: "SR-ZG9030A-MW",
1127
+ vendor: "Sunricher",
1128
+ description: "Zigbee compatible ceiling mount occupancy sensor",
1129
+ extend: [
1130
+ m.numeric({
1131
+ name: "light_pwm_frequency",
1132
+ cluster: "genBasic",
1133
+ attribute: { ID: 0x9001, type: 0x21 },
1134
+ valueMin: 0,
1135
+ valueMax: 65535,
1136
+ description: "Light PWM frequency (0-65535, default: 3300)",
1137
+ entityCategory: "config",
1138
+ access: "ALL",
1139
+ }),
1140
+ m.enumLookup({
1141
+ name: "brightness_curve",
1142
+ cluster: "genBasic",
1143
+ attribute: { ID: 0x8806, type: 0x20 },
1144
+ lookup: {
1145
+ linear: 0,
1146
+ gamma_logistics_1_5: 0x0f,
1147
+ gamma_logistics_1_8: 0x12,
1148
+ },
1149
+ description: "Brightness curve (default: Linear)",
1150
+ entityCategory: "config",
1151
+ access: "ALL",
1152
+ }),
1153
+ m.enumLookup({
1154
+ name: "start_up_on_off",
1155
+ cluster: "genOnOff",
1156
+ attribute: { ID: 0x4003, type: 0x30 },
1157
+ lookup: {
1158
+ last_state: 0xff,
1159
+ on: 1,
1160
+ off: 0,
1161
+ },
1162
+ description: "Start up on/off (default: last_state)",
1163
+ entityCategory: "config",
1164
+ access: "ALL",
1165
+ }),
1166
+ m.numeric({
1167
+ name: "motion_sensor_light_duration",
1168
+ cluster: "genBasic",
1169
+ attribute: { ID: 0x8902, type: 0x21 },
1170
+ valueMin: 0,
1171
+ valueMax: 65535,
1172
+ unit: "s",
1173
+ description: "Motion sensor light duration (0s-65535s, default: 5s)",
1174
+ entityCategory: "config",
1175
+ access: "ALL",
1176
+ }),
1177
+ m.numeric({
1178
+ name: "motion_sensor_light_sensitivity",
1179
+ cluster: "genBasic",
1180
+ attribute: { ID: 0x8903, type: 0x21 },
1181
+ valueMin: 0,
1182
+ valueMax: 255,
1183
+ description: "Motion sensor light sensitivity (0-255, default: 0)",
1184
+ entityCategory: "config",
1185
+ access: "ALL",
1186
+ }),
1187
+ m.enumLookup({
1188
+ name: "motion_sensor_working_mode",
1189
+ cluster: "genBasic",
1190
+ attribute: { ID: 0x8904, type: 0x20 },
1191
+ lookup: {
1192
+ automatic: 0,
1193
+ manual: 1,
1194
+ },
1195
+ description: "Motion sensor working mode (default: Automatic)",
1196
+ entityCategory: "config",
1197
+ access: "ALL",
1198
+ }),
1199
+ m.numeric({
1200
+ name: "motion_sensor_sensing_distance",
1201
+ cluster: "genBasic",
1202
+ attribute: { ID: 0x8905, type: 0x20 },
1203
+ valueMin: 0,
1204
+ valueMax: 15,
1205
+ description: "Motion sensor sensing distance (0-15, default: 1)",
1206
+ entityCategory: "config",
1207
+ access: "ALL",
1208
+ }),
1209
+ m.enumLookup({
1210
+ name: "motion_sensor_microwave_switch",
1211
+ cluster: "genBasic",
1212
+ attribute: { ID: 0x8906, type: 0x20 },
1213
+ lookup: {
1214
+ on: 1,
1215
+ off: 0,
1216
+ },
1217
+ description: "Motion sensor microwave switch (default: On)",
1218
+ entityCategory: "config",
1219
+ access: "ALL",
1220
+ }),
1221
+ m.enumLookup({
1222
+ name: "motion_sensor_onoff_broadcast",
1223
+ cluster: "genBasic",
1224
+ attribute: { ID: 0x8907, type: 0x20 },
1225
+ lookup: {
1226
+ on: 1,
1227
+ off: 0,
1228
+ },
1229
+ description: "Motion sensor on/off broadcast (default: On)",
1230
+ entityCategory: "config",
1231
+ access: "ALL",
1232
+ }),
1233
+ m.enumLookup({
1234
+ name: "motion_sensor_light_state",
1235
+ cluster: "genBasic",
1236
+ attribute: { ID: 0x890c, type: 0x20 },
1237
+ lookup: {
1238
+ on: 1,
1239
+ off: 0,
1240
+ },
1241
+ description: "Motion sensor light state (default: On)",
1242
+ entityCategory: "config",
1243
+ access: "ALL",
1244
+ }),
1245
+ m.numeric({
1246
+ name: "motion_sensor_in_pwm_brightness",
1247
+ cluster: "genBasic",
1248
+ attribute: { ID: 0x8908, type: 0x21 },
1249
+ valueMin: 0,
1250
+ valueMax: 1000,
1251
+ unit: "lux",
1252
+ description: "Motion sensor IN PWM brightness (0-1000 lux, default: 0)",
1253
+ entityCategory: "config",
1254
+ access: "ALL",
1255
+ }),
1256
+ m.numeric({
1257
+ name: "motion_sensor_in_pwm_output",
1258
+ cluster: "genBasic",
1259
+ attribute: { ID: 0x8909, type: 0x20 },
1260
+ valueMin: 0,
1261
+ valueMax: 254,
1262
+ description: "Motion sensor IN PWM output (0-254, default: 254)",
1263
+ entityCategory: "config",
1264
+ access: "ALL",
1265
+ }),
1266
+ m.numeric({
1267
+ name: "motion_sensor_leave_pwm_output",
1268
+ cluster: "genBasic",
1269
+ attribute: { ID: 0x890a, type: 0x20 },
1270
+ valueMin: 0,
1271
+ valueMax: 100,
1272
+ unit: "%",
1273
+ description: "Motion sensor LEAVE PWM output (0%-100%, default: 0%)",
1274
+ entityCategory: "config",
1275
+ access: "ALL",
1276
+ }),
1277
+ m.numeric({
1278
+ name: "motion_sensor_leave_delay",
1279
+ cluster: "genBasic",
1280
+ attribute: { ID: 0x8901, type: 0x21 },
1281
+ valueMin: 0,
1282
+ valueMax: 65535,
1283
+ unit: "s",
1284
+ description: "Motion sensor LEAVE delay (0s-65535s, default: 0s)",
1285
+ entityCategory: "config",
1286
+ access: "ALL",
1287
+ }),
1288
+ m.numeric({
1289
+ name: "motion_sensor_pwm_output_after_delay",
1290
+ cluster: "genBasic",
1291
+ attribute: { ID: 0x890b, type: 0x20 },
1292
+ valueMin: 0,
1293
+ valueMax: 100,
1294
+ unit: "%",
1295
+ description: "Motion sensor PWM output after delay (0%-100%, default: 0%)",
1296
+ entityCategory: "config",
1297
+ access: "ALL",
1298
+ }),
1299
+ m.numeric({
1300
+ name: "linearity_error_ratio_lux",
1301
+ cluster: "genBasic",
1302
+ attribute: { ID: 0x890d, type: 0x21 },
1303
+ valueMin: 100,
1304
+ valueMax: 10000,
1305
+ description: "Linearity error ratio coefficient for LUX measurement. 1000 means 1000‰ (default). Increasing this value magnifies the LUX measurement linearly, decreasing minifies it. For example, 1001 means 1.001x, 500 means 0.5x.",
1306
+ entityCategory: "config",
1307
+ access: "ALL",
1308
+ }),
1309
+ m.numeric({
1310
+ name: "fixed_deviation_lux",
1311
+ cluster: "genBasic",
1312
+ attribute: { ID: 0x890e, type: 0x29 },
1313
+ valueMin: -100,
1314
+ valueMax: 100,
1315
+ description: "Fixed deviation of LUX measurement. Signed 2-byte integer. Positive value increases, negative value decreases the measured LUX. For example, 100 means +100 LUX, -100 means -100 LUX.",
1316
+ entityCategory: "config",
1317
+ access: "ALL",
1318
+ }),
1319
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3 } }),
1320
+ m.light({ configureReporting: true }),
1321
+ m.occupancy({ endpointNames: ["2"] }),
1322
+ m.illuminance({ endpointNames: ["3"] }),
1323
+ m.commandsOnOff(),
1324
+ m.commandsLevelCtrl(),
1325
+ ],
1326
+ meta: { multiEndpoint: true },
1327
+ toZigbee: [sunricher.tz.setModel],
1328
+ exposes: [e.enum("model", ea.SET, ["HK-DIM", "ZG9030A-MW"]).withDescription("Model of the device").withCategory("config")],
1329
+ },
1330
+ {
1331
+ zigbeeModel: ["HK-ZRC-K5&RS-E"],
1332
+ model: "SR-ZG2836D5-Pro",
1333
+ vendor: "Sunricher",
1334
+ description: "Zigbee smart remote",
1335
+ extend: [m.battery(), sunricher.extend.SRZG2836D5Pro()],
1336
+ },
1337
+ {
1338
+ zigbeeModel: ["HK-ZRC-K12&RS-E"],
1339
+ model: "SR-ZG9002KR12-Pro",
1340
+ vendor: "Sunricher",
1341
+ description: "Zigbee smart wall panel remote",
1342
+ extend: [m.battery(), sunricher.extend.SRZG9002KR12Pro()],
1343
+ },
1344
+ {
1345
+ zigbeeModel: ["ZV9380A", "ZG9380A"],
1346
+ model: "SR-ZG9042MP",
1347
+ vendor: "Sunricher",
1348
+ description: "Zigbee three phase power meter",
1349
+ extend: [m.electricityMeter()],
1350
+ },
1351
+ {
1352
+ zigbeeModel: ["HK-SL-DIM-AU-K-A"],
1353
+ model: "SR-ZG2835PAC-AU",
1354
+ vendor: "Sunricher",
1355
+ description: "Zigbee push button smart dimmer",
1356
+ extend: [m.light({ configureReporting: true }), sunricher.extend.externalSwitchType(), m.electricityMeter()],
1357
+ },
1358
+ {
1359
+ zigbeeModel: ["HK-SL-DIM-CLN"],
1360
+ model: "SR-ZG9101SAC-HP-CLN",
1361
+ vendor: "Sunricher",
1362
+ description: "Zigbee micro smart dimmer",
1363
+ extend: [m.light({ configureReporting: true }), sunricher.extend.externalSwitchType(), sunricher.extend.minimumPWM()],
1364
+ },
1365
+ {
1366
+ zigbeeModel: ["HK-SENSOR-CT-MINI"],
1367
+ model: "SR-ZG9011A-DS",
1368
+ vendor: "Sunricher",
1369
+ description: "Door/window sensor",
1370
+ extend: [
1371
+ m.battery(),
1372
+ m.iasZoneAlarm({
1373
+ zoneType: "contact",
1374
+ zoneAttributes: ["alarm_1", "battery_low"],
1375
+ }),
1376
+ ],
1377
+ },
1378
+ {
1379
+ zigbeeModel: ["ZG2858A"],
1380
+ model: "ZG2858A",
1381
+ vendor: "Sunricher",
1382
+ description: "Zigbee handheld remote RGBCCT 3 channels",
1383
+ extend: [
1384
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3 } }),
1385
+ m.battery({ voltage: true, voltageReporting: true }),
1386
+ m.identify({ isSleepy: true }),
1387
+ m.commandsOnOff({ commands: ["on", "off"] }),
1388
+ m.commandsLevelCtrl({
1389
+ commands: [
1390
+ "brightness_step_up",
1391
+ "brightness_step_down",
1392
+ "brightness_move_up",
1393
+ "brightness_move_down",
1394
+ "brightness_stop",
1395
+ "brightness_move_to_level",
1396
+ ],
1397
+ }),
1398
+ m.commandsColorCtrl({
1399
+ commands: ["color_temperature_move", "move_to_hue_and_saturation"],
1400
+ }),
1401
+ m.commandsScenes({ commands: ["recall", "store"] }),
1402
+ sunricherModernExtend.zg2858A(),
1403
+ ],
1404
+ },
1405
+ {
1406
+ zigbeeModel: ["ZGRC-KEY-044"],
1407
+ model: "SR-ZG2868EK7-DIM",
1408
+ vendor: "Sunricher",
1409
+ description: " ZigBee handheld diming remote, 4 scenes",
1410
+ extend: [
1411
+ m.battery(),
1412
+ m.commandsOnOff({ commands: ["on", "off"] }),
1413
+ m.commandsLevelCtrl({
1414
+ commands: ["brightness_step_up", "brightness_step_down", "brightness_move_up", "brightness_move_down", "brightness_stop"],
1415
+ }),
1416
+ m.commandsScenes({ commands: ["recall", "store"] }),
1417
+ ],
1418
+ },
1419
+ {
1420
+ zigbeeModel: ["HK-SL-DIM-US-A"],
1421
+ model: "HK-SL-DIM-US-A",
1422
+ vendor: "Sunricher",
1423
+ description: "Keypad smart dimmer",
1424
+ extend: [m.light({ configureReporting: true }), m.electricityMeter()],
1425
+ },
1426
+ {
1427
+ zigbeeModel: ["HK-SENSOR-4IN1-A"],
1428
+ model: "HK-SENSOR-4IN1-A",
1429
+ vendor: "Sunricher",
1430
+ description: "4IN1 Sensor",
1431
+ extend: [m.battery({ dontDividePercentage: true }), m.identify(), m.occupancy(), m.temperature(), m.humidity(), m.illuminance()],
1432
+ },
1433
+ {
1434
+ zigbeeModel: ["SR-ZG9023A-EU"],
1435
+ model: "SR-ZG9023A-EU",
1436
+ vendor: "Sunricher",
1437
+ description: "4 ports switch with 2 usb ports (no metering)",
1438
+ extend: [m.deviceEndpoints({ endpoints: { l1: 1, l2: 2, l3: 3, l4: 4, l5: 5 } }), m.onOff({ endpointNames: ["l1", "l2", "l3", "l4", "l5"] })],
1439
+ },
1440
+ {
1441
+ fingerprint: [{ modelID: "ON/OFF(2CH)", manufacturerName: "Sunricher", priority: 1 }],
1442
+ model: "SR-ZG9101SAC-HP-SWITCH-2CH",
1443
+ vendor: "Sunricher",
1444
+ description: "Zigbee 2 channels switch",
1445
+ whiteLabel: [{ vendor: "LED-Trading", model: "UP-SA-9127D", description: "2 channels AC switch" }],
1446
+ extend: [
1447
+ m.deviceEndpoints({ endpoints: { l1: 1, l2: 2 }, multiEndpointSkip: ["power", "energy", "current", "voltage"] }),
1448
+ m.onOff({ endpointNames: ["l1", "l2"] }),
1449
+ m.electricityMeter(),
1450
+ m.identify(),
1451
+ m.commandsOnOff({ endpointNames: ["l1", "l2"] }),
1452
+ sunricher.extend.externalSwitchType(),
1453
+ ],
1454
+ },
1455
+ {
1456
+ zigbeeModel: ["HK-ZD-CCT-A"],
1457
+ model: "HK-ZD-CCT-A",
1458
+ vendor: "Sunricher",
1459
+ description: "50W Zigbee CCT LED driver (constant current)",
1460
+ extend: [m.light({ colorTemp: { range: [160, 450] }, configureReporting: true })],
1461
+ },
1462
+ {
1463
+ zigbeeModel: ["ZGRC-KEY-004"],
1464
+ model: "SR-ZG9001K2-DIM",
1465
+ vendor: "Sunricher",
1466
+ description: "Zigbee wall remote control for single color, 1 zone",
1467
+ fromZigbee: [fz.command_on, fz.command_off, fz.command_move, fz.command_stop, fz.battery],
1468
+ toZigbee: [],
1469
+ exposes: [e.battery(), e.action(["on", "off", "brightness_move_up", "brightness_move_down", "brightness_move_stop"])],
1470
+ },
1471
+ {
1472
+ zigbeeModel: ["ZGRC-KEY-007"],
1473
+ model: "SR-ZG9001K2-DIM2",
1474
+ vendor: "Sunricher",
1475
+ description: "Zigbee 2 button wall switch",
1476
+ fromZigbee: [fz.command_on, fz.command_off, fz.command_move, fz.command_stop, fz.battery],
1477
+ exposes: [
1478
+ e.battery(),
1479
+ e.action([
1480
+ "on_1",
1481
+ "off_1",
1482
+ "stop_1",
1483
+ "brightness_move_up_1",
1484
+ "brightness_move_down_1",
1485
+ "brightness_stop_1",
1486
+ "on_2",
1487
+ "off_2",
1488
+ "stop_2",
1489
+ "brightness_move_up_2",
1490
+ "brightness_move_down_2",
1491
+ "brightness_stop_2",
1492
+ ]),
1493
+ ],
1494
+ toZigbee: [],
1495
+ meta: { multiEndpoint: true },
1496
+ },
1497
+ {
1498
+ zigbeeModel: ["ZGRC-KEY-009"],
1499
+ model: "50208693",
1500
+ vendor: "Sunricher",
1501
+ description: "Zigbee wall remote control for RGBW, 1 zone with 2 scenes",
1502
+ fromZigbee: [
1503
+ fz.command_on,
1504
+ fz.command_off,
1505
+ fz.command_move,
1506
+ fz.command_stop,
1507
+ fz.battery,
1508
+ fz.command_recall,
1509
+ fz.command_step,
1510
+ fz.command_move_to_color,
1511
+ fz.command_move_to_color_temp,
1512
+ ],
1513
+ toZigbee: [],
1514
+ exposes: [
1515
+ e.battery(),
1516
+ e.action([
1517
+ "on",
1518
+ "off",
1519
+ "brightness_move_up",
1520
+ "brightness_move_down",
1521
+ "brightness_move_stop",
1522
+ "brightness_step_up",
1523
+ "brightness_step_down",
1524
+ "recall_1",
1525
+ "recall_2",
1526
+ ]),
1527
+ ],
1528
+ },
1529
+ {
1530
+ zigbeeModel: ["ZGRC-KEY-012"],
1531
+ model: "SR-ZG9001K12-DIM-Z5",
1532
+ vendor: "Sunricher",
1533
+ description: "5 zone remote and dimmer",
1534
+ fromZigbee: [fz.command_on, fz.command_off, fz.command_move, fz.command_stop, fz.battery],
1535
+ toZigbee: [],
1536
+ exposes: [
1537
+ e.battery(),
1538
+ e.action([
1539
+ "on_1",
1540
+ "off_1",
1541
+ "brightness_move_up_1",
1542
+ "brightness_move_down_1",
1543
+ "brightness_stop_1",
1544
+ "on_2",
1545
+ "off_2",
1546
+ "brightness_move_up_2",
1547
+ "brightness_move_down_2",
1548
+ "brightness_stop_2",
1549
+ "on_3",
1550
+ "off_3",
1551
+ "brightness_move_up_3",
1552
+ "brightness_move_down_3",
1553
+ "brightness_stop_3",
1554
+ "on_4",
1555
+ "off_4",
1556
+ "brightness_move_up_4",
1557
+ "brightness_move_down_4",
1558
+ "brightness_stop_4",
1559
+ "on_5",
1560
+ "off_5",
1561
+ "brightness_move_up_5",
1562
+ "brightness_move_down_5",
1563
+ "brightness_stop_5",
1564
+ ]),
1565
+ ],
1566
+ meta: { multiEndpoint: true, battery: { dontDividePercentage: true } },
1567
+ configure: async (device, coordinatorEndpoint) => {
1568
+ await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ["genOnOff"]);
1569
+ await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ["genOnOff"]);
1570
+ await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ["genOnOff"]);
1571
+ await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ["genOnOff"]);
1572
+ await reporting.bind(device.getEndpoint(5), coordinatorEndpoint, ["genOnOff"]);
1573
+ },
1574
+ },
1575
+ {
1576
+ zigbeeModel: ["ZGRC-KEY-013"],
1577
+ model: "SR-ZG9001K12-DIM-Z4",
1578
+ vendor: "Sunricher",
1579
+ description: "4 zone remote and dimmer",
1580
+ fromZigbee: [fz.battery, fz.command_move, fz.command_stop, fz.command_on, fz.command_off, fz.command_recall],
1581
+ exposes: [e.battery(), e.action(["brightness_move_up", "brightness_move_down", "brightness_stop", "on", "off", "recall_*"])],
1582
+ toZigbee: [],
1583
+ whiteLabel: [{ vendor: "RGB Genie", model: "ZGRC-KEY-013" }],
1584
+ meta: { multiEndpoint: true, battery: { dontDividePercentage: true } },
1585
+ configure: async (device, coordinatorEndpoint) => {
1586
+ await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ["genOnOff", "genScenes"]);
1587
+ await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ["genOnOff"]);
1588
+ await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ["genOnOff"]);
1589
+ await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ["genOnOff"]);
1590
+ },
1591
+ },
1592
+ {
1593
+ zigbeeModel: ["ZGRC-TEUR-005"],
1594
+ model: "SR-ZG9001T4-DIM-EU",
1595
+ vendor: "Sunricher",
1596
+ description: "Zigbee wireless touch dimmer switch",
1597
+ fromZigbee: [fz.command_recall, fz.command_on, fz.command_off, fz.command_step, fz.command_move, fz.command_stop],
1598
+ exposes: [
1599
+ e.action([
1600
+ "recall_*",
1601
+ "on",
1602
+ "off",
1603
+ "brightness_stop",
1604
+ "brightness_move_down",
1605
+ "brightness_move_up",
1606
+ "brightness_step_down",
1607
+ "brightness_step_up",
1608
+ ]),
1609
+ ],
1610
+ toZigbee: [],
1611
+ },
1612
+ {
1613
+ zigbeeModel: ["CCT Lighting"],
1614
+ model: "ZG192910-4",
1615
+ vendor: "Sunricher",
1616
+ description: "Zigbee LED-controller",
1617
+ extend: [m.light({ colorTemp: { range: undefined }, configureReporting: true })],
1618
+ },
1619
+ {
1620
+ zigbeeModel: ["ZG9101SAC-HP"],
1621
+ model: "ZG9101SAC-HP",
1622
+ vendor: "Sunricher",
1623
+ description: "Zigbee AC phase-cut dimmer",
1624
+ extend: [m.light({ configureReporting: true })],
1625
+ },
1626
+ {
1627
+ zigbeeModel: ["ON/OFF", "ZIGBEE-SWITCH"],
1628
+ model: "ZG9101SAC-HP-Switch",
1629
+ vendor: "Sunricher",
1630
+ description: "Zigbee AC in wall switch",
1631
+ extend: [m.onOff({ powerOnBehavior: false, configureReporting: true }), sunricher.extend.externalSwitchType()],
1632
+ },
1633
+ {
1634
+ zigbeeModel: ["ON/OFF -M"],
1635
+ model: "ZG9101SAC-HP-Switch-B",
1636
+ vendor: "Sunricher",
1637
+ description: "Zigbee AC in wall switch with metering",
1638
+ extend: [m.onOff({ powerOnBehavior: false, configureReporting: true }), sunricher.extend.externalSwitchType(), m.electricityMeter()],
1639
+ },
1640
+ {
1641
+ zigbeeModel: ["Micro Smart Dimmer", "SM311", "HK-SL-RDIM-A", "HK-SL-DIM-EU-A"],
1642
+ model: "ZG2835RAC",
1643
+ vendor: "Sunricher",
1644
+ description: "Zigbee knob smart dimmer",
1645
+ extend: [m.light({ configureReporting: true }), m.electricityMeter()],
1646
+ whiteLabel: [
1647
+ { vendor: "YPHIX", model: "50208695" },
1648
+ { vendor: "Samotech", model: "SM311" },
1649
+ ],
1650
+ },
1651
+ {
1652
+ zigbeeModel: ["HK-SL-DIM-AU-R-A"],
1653
+ model: "HK-SL-DIM-AU-R-A",
1654
+ vendor: "Sunricher",
1655
+ description: "Zigbee knob smart dimmer",
1656
+ extend: [m.identify(), m.electricityMeter(), m.light({ configureReporting: true }), sunricher.extend.externalSwitchType()],
1657
+ },
1658
+ {
1659
+ zigbeeModel: ["ZG2835"],
1660
+ model: "ZG2835",
1661
+ vendor: "Sunricher",
1662
+ description: "Zigbee knob smart dimmer",
1663
+ fromZigbee: [fz.command_on, fz.command_off, fz.command_move_to_level],
1664
+ exposes: [e.action(["on", "off", "brightness_move_to_level"])],
1665
+ toZigbee: [],
1666
+ },
1667
+ {
1668
+ zigbeeModel: ["ZG2803-RGB-CCT"],
1669
+ model: "SR-ZG2803-G4-5C",
1670
+ vendor: "Sunricher",
1671
+ description: "4 groups remote",
1672
+ extend: [
1673
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3, "4": 4 } }),
1674
+ m.battery(),
1675
+ m.commandsOnOff({ endpointNames: ["1", "2", "3", "4"] }),
1676
+ m.commandsLevelCtrl({ endpointNames: ["1", "2", "3", "4"] }),
1677
+ m.commandsColorCtrl({ endpointNames: ["1", "2", "3", "4"] }),
1678
+ ],
1679
+ },
1680
+ {
1681
+ fingerprint: [{ modelID: "HK-SL-DIM-A", manufacturerName: "Sunricher", priority: 1 }],
1682
+ model: "SR-ZG9040A/ZG9041A-D",
1683
+ vendor: "Sunricher",
1684
+ description: "Zigbee micro smart dimmer",
1685
+ extend: [m.light({ configureReporting: true }), m.electricityMeter(), sunricher.extend.externalSwitchType(), sunricher.extend.minimumPWM()],
1686
+ },
1687
+ {
1688
+ zigbeeModel: ["HK-ZD-DIM-A"],
1689
+ model: "SRP-ZG9105-CC",
1690
+ vendor: "Sunricher",
1691
+ description: "Constant Current Zigbee LED dimmable driver",
1692
+ extend: [m.light({ configureReporting: true }), sunricher.extend.externalSwitchType()],
1693
+ },
1694
+ {
1695
+ zigbeeModel: ["3986"],
1696
+ model: "SRP-ZG9105-CV",
1697
+ vendor: "Sunricher",
1698
+ description: "Constant voltage Zigbee LED driver",
1699
+ extend: [m.light({ colorTemp: { range: [160, 450] }, color: false, configureReporting: true })],
1700
+ whiteLabel: [{ vendor: "LongLife LED", model: "3986" }],
1701
+ },
1702
+ {
1703
+ fingerprint: [{ modelID: "HK-ZD-DIM-A", softwareBuildID: "2.9.2_r72" }],
1704
+ model: "SR-ZG9101CS",
1705
+ vendor: "Sunricher",
1706
+ description: "Constant Current Zigbee LED dimmable driver",
1707
+ extend: [m.light({ configureReporting: true }), sunricher.extend.externalSwitchType()],
1708
+ },
1709
+ {
1710
+ zigbeeModel: ["HK-DIM"],
1711
+ model: "50208702",
1712
+ vendor: "Sunricher",
1713
+ description: "LED dimmable driver",
1714
+ extend: [m.light({ configureReporting: true })],
1715
+ whiteLabel: [{ vendor: "Yphix", model: "50208702" }],
1716
+ toZigbee: [sunricher.tz.setModel],
1717
+ // Some ZG9030A-MW devices were mistakenly set with the modelId HK-DIM during manufacturing.
1718
+ // This allows users to update the modelId from HK-DIM to ZG9030A-MW to ensure proper device functionality.
1719
+ exposes: [e.enum("model", ea.SET, ["HK-DIM", "ZG9030A-MW"]).withDescription("Model of the device")],
1720
+ },
1721
+ {
1722
+ zigbeeModel: ["SR-ZG9040A-S"],
1723
+ model: "SR-ZG9040A-S",
1724
+ vendor: "Sunricher",
1725
+ description: "Zigbee AC phase-cut dimmer single-line",
1726
+ extend: [m.light({ configureReporting: true })],
1727
+ },
1728
+ {
1729
+ zigbeeModel: ["Micro Smart OnOff", "HK-SL-RELAY-A"],
1730
+ model: "SR-ZG9100A-S",
1731
+ vendor: "Sunricher",
1732
+ description: "Zigbee AC in wall switch single-line",
1733
+ extend: [m.onOff()],
1734
+ },
1735
+ {
1736
+ zigbeeModel: ["ZG2819S-RGBW"],
1737
+ model: "ZG2819S-RGBW",
1738
+ vendor: "Sunricher",
1739
+ whiteLabel: [{ vendor: "Iluminize", model: "511.344" }],
1740
+ description: "Zigbee handheld remote RGBW 4 channels",
1741
+ extend: [
1742
+ m.deviceEndpoints({ endpoints: { ep1: 1, ep2: 2, ep3: 3, ep4: 4 } }),
1743
+ m.battery({ voltage: true, voltageReporting: true }),
1744
+ m.identify({ isSleepy: true }),
1745
+ m.commandsOnOff({ commands: ["on", "off"] }),
1746
+ m.commandsLevelCtrl({
1747
+ commands: ["brightness_step_up", "brightness_step_down", "brightness_move_up", "brightness_move_down", "brightness_stop"],
1748
+ }),
1749
+ m.commandsColorCtrl({
1750
+ commands: ["hue_move", "hue_stop", "color_move", "color_temperature_move"],
1751
+ }),
1752
+ m.commandsScenes({ commands: ["recall", "store"], bind: false }),
1753
+ ],
1754
+ },
1755
+ {
1756
+ zigbeeModel: ["ZG2819S-CCT"],
1757
+ model: "ZG2819S-CCT",
1758
+ vendor: "Sunricher",
1759
+ description: "Zigbee handheld remote CCT 4 channels",
1760
+ extend: [
1761
+ m.deviceEndpoints({ endpoints: { ep1: 1, ep2: 2, ep3: 3, ep4: 4 } }),
1762
+ m.battery({ voltage: true, voltageReporting: true }),
1763
+ m.identify({ isSleepy: true }),
1764
+ m.commandsOnOff({ commands: ["on", "off"] }),
1765
+ m.commandsLevelCtrl({
1766
+ commands: ["brightness_step_up", "brightness_step_down", "brightness_move_up", "brightness_move_down", "brightness_stop"],
1767
+ }),
1768
+ m.commandsColorCtrl({
1769
+ commands: ["hue_move", "hue_stop", "color_move", "color_temperature_move", "color_loop_set", "enhanced_move_to_hue_and_saturation"],
1770
+ }),
1771
+ m.commandsScenes({ commands: ["recall", "store"], bind: false }),
1772
+ ],
1773
+ },
1774
+ {
1775
+ zigbeeModel: ["HK-ZCC-A"],
1776
+ model: "SR-ZG9080A",
1777
+ vendor: "Sunricher",
1778
+ description: "Curtain motor controller",
1779
+ meta: { coverInverted: true },
1780
+ fromZigbee: [fz.cover_position_tilt],
1781
+ toZigbee: [tz.cover_state, tz.cover_position_tilt],
1782
+ exposes: [e.cover_position()],
1783
+ configure: async (device, coordinatorEndpoint) => {
1784
+ const endpoint = device.getEndpoint(1);
1785
+ await reporting.bind(endpoint, coordinatorEndpoint, ["closuresWindowCovering"]);
1786
+ await reporting.currentPositionLiftPercentage(endpoint);
1787
+ },
1788
+ },
1789
+ {
1790
+ fingerprint: [
1791
+ { modelID: "GreenPower_2", ieeeAddr: /^0x00000000010.....$/ },
1792
+ { modelID: "GreenPower_2", ieeeAddr: /^0x0000000001b.....$/ },
1793
+ ],
1794
+ model: "SR-ZGP2801K2-DIM",
1795
+ vendor: "Sunricher",
1796
+ description: "Pushbutton transmitter module",
1797
+ fromZigbee: [fz.sunricher_switch2801K2],
1798
+ toZigbee: [],
1799
+ exposes: [e.action(["press_on", "press_off", "hold_on", "hold_off", "release"])],
1800
+ },
1801
+ {
1802
+ fingerprint: [
1803
+ { modelID: "GreenPower_2", ieeeAddr: /^0x000000005d5.....$/ },
1804
+ { modelID: "GreenPower_2", ieeeAddr: /^0x0000000057e.....$/ },
1805
+ { modelID: "GreenPower_2", ieeeAddr: /^0x000000001fa.....$/ },
1806
+ { modelID: "GreenPower_2", ieeeAddr: /^0x0000000034b.....$/ },
1807
+ { modelID: "GreenPower_2", ieeeAddr: /^0x00000000f12.....$/ },
1808
+ ],
1809
+ model: "SR-ZGP2801K4-DIM",
1810
+ vendor: "Sunricher",
1811
+ description: "Pushbutton transmitter module",
1812
+ fromZigbee: [fz.sunricher_switch2801K4],
1813
+ toZigbee: [],
1814
+ exposes: [e.action(["press_on", "press_off", "press_high", "press_low", "hold_high", "hold_low", "release"])],
1815
+ },
1816
+ {
1817
+ fingerprint: [{ modelID: "GreenPower_2", ieeeAddr: /^0x00000000aaf.....$/ }],
1818
+ model: "SR-ZGP2801K-5C",
1819
+ vendor: "Sunricher",
1820
+ description: "Pushbutton transmitter module",
1821
+ fromZigbee: [fzLocal.SRZGP2801K45C],
1822
+ toZigbee: [],
1823
+ exposes: [
1824
+ e.action([
1825
+ "press_on",
1826
+ "press_off",
1827
+ "press_high",
1828
+ "press_low",
1829
+ "hold_high",
1830
+ "hold_low",
1831
+ "high_low_release",
1832
+ "cw_ww_release",
1833
+ "cw_dec_ww_inc",
1834
+ "ww_inc_cw_dec",
1835
+ "r_g_b",
1836
+ "b_g_r",
1837
+ "rgb_release",
1838
+ ]),
1839
+ ],
1840
+ },
1841
+ {
1842
+ zigbeeModel: ["ZG9092", "HK-LN-HEATER-A", "ROB_200-040-0", "HT-THERMZ3W-1"],
1843
+ model: "SR-ZG9092A",
1844
+ vendor: "Sunricher",
1845
+ description: "Touch thermostat",
1846
+ fromZigbee: [fz.thermostat, fz.namron_thermostat, fz.metering, fz.electrical_measurement, fz.namron_hvac_user_interface],
1847
+ toZigbee: [
1848
+ tz.thermostat_occupied_heating_setpoint,
1849
+ tz.thermostat_unoccupied_heating_setpoint,
1850
+ tz.thermostat_occupancy,
1851
+ tz.thermostat_local_temperature_calibration,
1852
+ tz.thermostat_local_temperature,
1853
+ tz.thermostat_outdoor_temperature,
1854
+ tz.thermostat_system_mode,
1855
+ tz.thermostat_control_sequence_of_operation,
1856
+ tz.thermostat_running_state,
1857
+ tz.namron_thermostat,
1858
+ tz.namron_thermostat_child_lock,
1859
+ ],
1860
+ exposes: [
1861
+ e.numeric("outdoor_temperature", ea.STATE_GET).withUnit("°C").withDescription("Current temperature measured from the floor sensor"),
1862
+ e
1863
+ .climate()
1864
+ .withSetpoint("occupied_heating_setpoint", 0, 40, 0.1)
1865
+ .withSetpoint("unoccupied_heating_setpoint", 0, 40, 0.1)
1866
+ .withLocalTemperature()
1867
+ .withLocalTemperatureCalibration(-3, 3, 0.1)
1868
+ .withSystemMode(["off", "auto", "heat"])
1869
+ .withRunningState(["idle", "heat"]),
1870
+ e.binary("away_mode", ea.ALL, "ON", "OFF").withDescription("Enable/disable away mode"),
1871
+ e.binary("child_lock", ea.ALL, "UNLOCK", "LOCK").withDescription("Enables/disables physical input on the device"),
1872
+ e.power(),
1873
+ e.current(),
1874
+ e.voltage(),
1875
+ e.energy(),
1876
+ e.enum("lcd_brightness", ea.ALL, ["low", "mid", "high"]).withDescription("OLED brightness when operating the buttons. Default: Medium."),
1877
+ e.enum("button_vibration_level", ea.ALL, ["off", "low", "high"]).withDescription("Key beep volume and vibration level. Default: Low."),
1878
+ e
1879
+ .enum("floor_sensor_type", ea.ALL, ["10k", "15k", "50k", "100k", "12k"])
1880
+ .withDescription("Type of the external floor sensor. Default: NTC 10K/25."),
1881
+ e.enum("sensor", ea.ALL, ["air", "floor", "both"]).withDescription("The sensor used for heat control. Default: Room Sensor."),
1882
+ e.enum("powerup_status", ea.ALL, ["default", "last_status"]).withDescription("The mode after a power reset. Default: Previous Mode."),
1883
+ e
1884
+ .numeric("floor_sensor_calibration", ea.ALL)
1885
+ .withUnit("°C")
1886
+ .withValueMin(-3)
1887
+ .withValueMax(3)
1888
+ .withValueStep(0.1)
1889
+ .withDescription("The tempearatue calibration for the external floor sensor, between -3 and 3 in 0.1°C. Default: 0."),
1890
+ e
1891
+ .numeric("dry_time", ea.ALL)
1892
+ .withUnit("min")
1893
+ .withValueMin(5)
1894
+ .withValueMax(100)
1895
+ .withDescription("The duration of Dry Mode, between 5 and 100 minutes. Default: 5."),
1896
+ e.enum("mode_after_dry", ea.ALL, ["off", "manual", "auto", "away"]).withDescription("The mode after Dry Mode. Default: Auto."),
1897
+ e.enum("temperature_display", ea.ALL, ["room", "floor"]).withDescription("The temperature on the display. Default: Room Temperature."),
1898
+ e
1899
+ .numeric("window_open_check", ea.ALL)
1900
+ .withUnit("°C")
1901
+ .withValueMin(0)
1902
+ .withValueMax(8)
1903
+ .withValueStep(0.5)
1904
+ .withDescription("The threshold to detect window open, between 0.0 and 8.0 in 0.5 °C. Default: 0 (disabled)."),
1905
+ e
1906
+ .numeric("hysterersis", ea.ALL)
1907
+ .withUnit("°C")
1908
+ .withValueMin(0.5)
1909
+ .withValueMax(2)
1910
+ .withValueStep(0.1)
1911
+ .withDescription("Hysteresis setting, between 0.5 and 2 in 0.1 °C. Default: 0.5."),
1912
+ e.enum("display_auto_off_enabled", ea.ALL, ["disabled", "enabled"]),
1913
+ e
1914
+ .numeric("alarm_airtemp_overvalue", ea.ALL)
1915
+ .withUnit("°C")
1916
+ .withValueMin(20)
1917
+ .withValueMax(60)
1918
+ .withDescription("Room temperature alarm threshold, between 20 and 60 in °C. 0 means disabled. Default: 45."),
1919
+ ],
1920
+ // Device does not ask for the time with binding, therefore we write the time every 24 hours
1921
+ extend: [m.writeTimeDaily({ endpointId: 1 })],
1922
+ configure: async (device, coordinatorEndpoint) => {
1923
+ const endpoint = device.getEndpoint(1);
1924
+ const binds = [
1925
+ "genBasic",
1926
+ "genIdentify",
1927
+ "hvacThermostat",
1928
+ "seMetering",
1929
+ "haElectricalMeasurement",
1930
+ "genAlarms",
1931
+ "msOccupancySensing",
1932
+ "genTime",
1933
+ "hvacUserInterfaceCfg",
1934
+ ];
1935
+ await reporting.bind(endpoint, coordinatorEndpoint, binds);
1936
+ // standard ZCL attributes
1937
+ await reporting.thermostatTemperature(endpoint);
1938
+ await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
1939
+ await reporting.thermostatUnoccupiedHeatingSetpoint(endpoint);
1940
+ try {
1941
+ await reporting.thermostatKeypadLockMode(endpoint);
1942
+ }
1943
+ catch {
1944
+ // Fails for some
1945
+ // https://github.com/Koenkk/zigbee2mqtt/issues/15025
1946
+ logger_1.logger.debug("Failed to setup keypadLockout reporting", NS);
1947
+ }
1948
+ try {
1949
+ await endpoint.configureReporting("hvacThermostat", [
1950
+ {
1951
+ attribute: "occupancy",
1952
+ minimumReportInterval: 0,
1953
+ maximumReportInterval: constants.repInterval.HOUR,
1954
+ reportableChange: null,
1955
+ },
1956
+ ]);
1957
+ }
1958
+ catch {
1959
+ // Fails for some
1960
+ // https://github.com/Koenkk/zigbee2mqtt/issues/29833
1961
+ logger_1.logger.debug("Failed to setup occupancy reporting", NS);
1962
+ }
1963
+ await endpoint.read("haElectricalMeasurement", ["acVoltageMultiplier", "acVoltageDivisor", "acCurrentMultiplier"]);
1964
+ await endpoint.read("haElectricalMeasurement", ["acCurrentDivisor"]);
1965
+ await endpoint.read("seMetering", ["multiplier", "divisor"]);
1966
+ await reporting.activePower(endpoint, { min: 30, change: 10 }); // Min report change 10W
1967
+ await reporting.rmsCurrent(endpoint, { min: 30, change: 50 }); // Min report change 0.05A
1968
+ await reporting.rmsVoltage(endpoint, { min: 30, change: 20 }); // Min report change 2V
1969
+ await reporting.readMeteringMultiplierDivisor(endpoint);
1970
+ await reporting.currentSummDelivered(endpoint);
1971
+ // Custom attributes
1972
+ const options = {
1973
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SHENZHEN_SUNRICHER_TECHNOLOGY_LTD,
1974
+ };
1975
+ // OperateDisplayLcdBrightnesss
1976
+ await endpoint.configureReporting("hvacThermostat", [
1977
+ {
1978
+ attribute: { ID: 0x1000, type: 0x30 },
1979
+ minimumReportInterval: 0,
1980
+ maximumReportInterval: constants.repInterval.HOUR,
1981
+ reportableChange: null,
1982
+ },
1983
+ ], options);
1984
+ // ButtonVibrationLevel
1985
+ await endpoint.configureReporting("hvacThermostat", [
1986
+ {
1987
+ attribute: { ID: 0x1001, type: 0x30 },
1988
+ minimumReportInterval: 0,
1989
+ maximumReportInterval: constants.repInterval.HOUR,
1990
+ reportableChange: null,
1991
+ },
1992
+ ], options);
1993
+ // FloorSensorType
1994
+ await endpoint.configureReporting("hvacThermostat", [
1995
+ {
1996
+ attribute: { ID: 0x1002, type: 0x30 },
1997
+ minimumReportInterval: 0,
1998
+ maximumReportInterval: constants.repInterval.HOUR,
1999
+ reportableChange: null,
2000
+ },
2001
+ ], options);
2002
+ // ControlType
2003
+ await endpoint.configureReporting("hvacThermostat", [
2004
+ {
2005
+ attribute: { ID: 0x1003, type: 0x30 },
2006
+ minimumReportInterval: 0,
2007
+ maximumReportInterval: constants.repInterval.HOUR,
2008
+ reportableChange: null,
2009
+ },
2010
+ ], options);
2011
+ // PowerUpStatus
2012
+ await endpoint.configureReporting("hvacThermostat", [
2013
+ {
2014
+ attribute: { ID: 0x1004, type: 0x30 },
2015
+ minimumReportInterval: 0,
2016
+ maximumReportInterval: constants.repInterval.HOUR,
2017
+ reportableChange: null,
2018
+ },
2019
+ ], options);
2020
+ // FloorSensorCalibration
2021
+ await endpoint.configureReporting("hvacThermostat", [
2022
+ {
2023
+ attribute: { ID: 0x1005, type: 0x28 },
2024
+ minimumReportInterval: 0,
2025
+ maximumReportInterval: constants.repInterval.HOUR,
2026
+ reportableChange: 0,
2027
+ },
2028
+ ], options);
2029
+ // DryTime
2030
+ await endpoint.configureReporting("hvacThermostat", [
2031
+ {
2032
+ attribute: { ID: 0x1006, type: 0x20 },
2033
+ minimumReportInterval: 0,
2034
+ maximumReportInterval: constants.repInterval.HOUR,
2035
+ reportableChange: 0,
2036
+ },
2037
+ ], options);
2038
+ // ModeAfterDry
2039
+ await endpoint.configureReporting("hvacThermostat", [
2040
+ {
2041
+ attribute: { ID: 0x1007, type: 0x30 },
2042
+ minimumReportInterval: 0,
2043
+ maximumReportInterval: constants.repInterval.HOUR,
2044
+ reportableChange: null,
2045
+ },
2046
+ ], options);
2047
+ // TemperatureDisplay
2048
+ await endpoint.configureReporting("hvacThermostat", [
2049
+ {
2050
+ attribute: { ID: 0x1008, type: 0x30 },
2051
+ minimumReportInterval: 0,
2052
+ maximumReportInterval: constants.repInterval.HOUR,
2053
+ reportableChange: null,
2054
+ },
2055
+ ], options);
2056
+ // WindowOpenCheck
2057
+ await endpoint.configureReporting("hvacThermostat", [
2058
+ {
2059
+ attribute: { ID: 0x1009, type: 0x20 },
2060
+ minimumReportInterval: 0,
2061
+ maximumReportInterval: constants.repInterval.HOUR,
2062
+ reportableChange: 0,
2063
+ },
2064
+ ], options);
2065
+ // Hysterersis
2066
+ await endpoint.configureReporting("hvacThermostat", [
2067
+ {
2068
+ attribute: { ID: 0x100a, type: 0x20 },
2069
+ minimumReportInterval: 0,
2070
+ maximumReportInterval: constants.repInterval.HOUR,
2071
+ reportableChange: 0,
2072
+ },
2073
+ ], options);
2074
+ // DisplayAutoOffEnable
2075
+ await endpoint.configureReporting("hvacThermostat", [
2076
+ {
2077
+ attribute: { ID: 0x100b, type: 0x30 },
2078
+ minimumReportInterval: 0,
2079
+ maximumReportInterval: constants.repInterval.HOUR,
2080
+ reportableChange: null,
2081
+ },
2082
+ ], options);
2083
+ // AlarmAirTempOverValue
2084
+ await endpoint.configureReporting("hvacThermostat", [
2085
+ {
2086
+ attribute: { ID: 0x2001, type: 0x20 },
2087
+ minimumReportInterval: 0,
2088
+ maximumReportInterval: constants.repInterval.HOUR,
2089
+ reportableChange: 0,
2090
+ },
2091
+ ], options);
2092
+ // Away Mode Set
2093
+ await endpoint.configureReporting("hvacThermostat", [
2094
+ {
2095
+ attribute: { ID: 0x2002, type: 0x30 },
2096
+ minimumReportInterval: 0,
2097
+ maximumReportInterval: constants.repInterval.HOUR,
2098
+ reportableChange: null,
2099
+ },
2100
+ ], options);
2101
+ // Device does not asks for the time with binding, we need to write time during configure
2102
+ await syncTime(endpoint);
2103
+ // Trigger initial read
2104
+ await endpoint.read("hvacThermostat", ["systemMode", "runningState", "occupiedHeatingSetpoint"]);
2105
+ await endpoint.read("hvacThermostat", [0x1000, 0x1001, 0x1002, 0x1003], options);
2106
+ await endpoint.read("hvacThermostat", [0x1004, 0x1005, 0x1006, 0x1007], options);
2107
+ await endpoint.read("hvacThermostat", [0x1008, 0x1009, 0x100a, 0x100b], options);
2108
+ await endpoint.read("hvacThermostat", [0x2001, 0x2002], options);
2109
+ },
2110
+ },
2111
+ {
2112
+ fingerprint: [
2113
+ { modelID: "TERNCY-DC01", manufacturerName: "Sunricher" },
2114
+ { modelID: "HK-SENSOR-CT-A", manufacturerName: "Sunricher" },
2115
+ ],
2116
+ model: "SR-ZG9010A",
2117
+ vendor: "Sunricher",
2118
+ description: "Door windows sensor",
2119
+ fromZigbee: [fz.U02I007C01_contact, fz.battery],
2120
+ toZigbee: [],
2121
+ exposes: [e.contact(), e.battery()],
2122
+ },
2123
+ {
2124
+ zigbeeModel: ["ZGRC-KEY-017"],
2125
+ model: "ZGRC-KEY-017",
2126
+ vendor: "Sunricher",
2127
+ description: "6-zone RGB+CCT remote",
2128
+ extend: [
2129
+ m.deviceEndpoints({ endpoints: { 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6 } }),
2130
+ m.battery(),
2131
+ m.commandsOnOff({ endpointNames: ["1", "2", "3", "4", "5", "6"] }),
2132
+ m.commandsLevelCtrl({ endpointNames: ["1", "2", "3", "4", "5", "6"] }),
2133
+ m.commandsColorCtrl({ endpointNames: ["1", "2", "3", "4", "5", "6"] }),
2134
+ ],
2135
+ },
2136
+ {
2137
+ zigbeeModel: ["ZG9095B"],
2138
+ model: "SR-ZG9095B",
2139
+ vendor: "Sunricher",
2140
+ description: "Touch thermostat",
2141
+ fromZigbee: [fz.thermostat, fz.namron_thermostat, fz.metering, fz.electrical_measurement, fz.namron_hvac_user_interface, fzLocal.ZG9095B],
2142
+ toZigbee: [
2143
+ tzLocal.ZG9095B.temperature_display,
2144
+ tzLocal.ZG9095B.sensor,
2145
+ tzLocal.ZG9095B.lcd_brightness,
2146
+ tz.thermostat_occupied_heating_setpoint,
2147
+ tz.thermostat_unoccupied_heating_setpoint,
2148
+ tz.thermostat_occupied_cooling_setpoint,
2149
+ tz.thermostat_unoccupied_cooling_setpoint,
2150
+ tz.thermostat_local_temperature_calibration,
2151
+ tz.thermostat_local_temperature,
2152
+ tz.thermostat_outdoor_temperature,
2153
+ tz.thermostat_system_mode,
2154
+ tz.thermostat_control_sequence_of_operation,
2155
+ tz.thermostat_running_state,
2156
+ tz.namron_thermostat,
2157
+ tz.namron_thermostat_child_lock,
2158
+ tz.fan_mode,
2159
+ tzLocal.ZG9095B.min_setpoint_deadband,
2160
+ ],
2161
+ exposes: [
2162
+ e.numeric("outdoor_temperature", ea.STATE_GET).withUnit("°C").withDescription("Current temperature measured from the floor sensor"),
2163
+ e
2164
+ .climate()
2165
+ .withSetpoint("occupied_heating_setpoint", 5, 32, 0.1)
2166
+ .withSetpoint("unoccupied_heating_setpoint", 5, 32, 0.1)
2167
+ .withSetpoint("occupied_cooling_setpoint", 5, 32, 0.1)
2168
+ .withSetpoint("unoccupied_cooling_setpoint", 5, 32, 0.1)
2169
+ .withLocalTemperature()
2170
+ .withLocalTemperatureCalibration(-2.5, 2.5, 0.1)
2171
+ .withSystemMode(["off", "auto", "cool", "heat", "fan_only"])
2172
+ .withRunningState(["idle", "heat", "cool", "fan_only"])
2173
+ .withFanMode(["off", "low", "medium", "high", "auto"])
2174
+ .withControlSequenceOfOperation(["cooling_only", "heating_only", "cooling_and_heating_4-pipes"]),
2175
+ e.binary("away_mode", ea.ALL, "ON", "OFF").withDescription("Enable/disable away mode"),
2176
+ e.binary("child_lock", ea.ALL, "UNLOCK", "LOCK").withDescription("Enables/disables physical input on the device"),
2177
+ e.enum("lcd_brightness", ea.ALL, ["low", "mid", "high"]).withDescription("OLED brightness when operating the buttons. Default: Medium."),
2178
+ e.enum("button_vibration_level", ea.ALL, ["off", "low", "high"]).withDescription("Key beep volume and vibration level. Default: Low."),
2179
+ e
2180
+ .enum("floor_sensor_type", ea.ALL, ["10k", "15k", "50k", "100k", "12k"])
2181
+ .withDescription("Type of the external floor sensor. Default: NTC 10K/25."),
2182
+ e.enum("sensor", ea.ALL, ["room", "floor"]).withDescription("The sensor used for heat control. Default: Room Sensor."),
2183
+ e.enum("powerup_status", ea.ALL, ["default", "last_status"]).withDescription("The mode after a power reset. Default: Previous Mode."),
2184
+ e
2185
+ .numeric("floor_sensor_calibration", ea.ALL)
2186
+ .withUnit("°C")
2187
+ .withValueMin(-2.5)
2188
+ .withValueMax(2.5)
2189
+ .withValueStep(0.1)
2190
+ .withDescription("The tempearatue calibration for the external floor sensor, between -3 and 3 in 0.1°C. Default: 0."),
2191
+ e
2192
+ .enum("temperature_display", ea.ALL, ["room", "set", "floor"])
2193
+ .withDescription("The temperature on the display. room: shows the temperature recorded by the sensor embedded in the thermostat. set: shows the set (target) temperature. floor: shows the temperature recorded by the external floor sensor Default: Room Temperature."),
2194
+ e
2195
+ .numeric("min_setpoint_deadband", ea.ALL)
2196
+ .withUnit("°C")
2197
+ .withValueMin(1)
2198
+ .withValueMax(1.5)
2199
+ .withValueStep(0.1)
2200
+ .withDescription("This parameter refers to the minimum difference between cooling and heating temperatures. between 1 and 1.5 in 0.1 °C Default: 1 °C. The hysteresis used by this device = MinSetpointDeadBand /2"),
2201
+ ],
2202
+ // Device does not ask for the time with binding, therefore we write the time every 24 hours
2203
+ extend: [m.writeTimeDaily({ endpointId: 1 })],
2204
+ configure: async (device, coordinatorEndpoint) => {
2205
+ const endpoint = device.getEndpoint(1);
2206
+ const binds = ["genBasic", "genIdentify", "hvacThermostat", "seMetering", "genTime", "hvacUserInterfaceCfg"];
2207
+ await reporting.bind(endpoint, coordinatorEndpoint, binds);
2208
+ // standard ZCL attributes
2209
+ await reporting.thermostatTemperature(endpoint);
2210
+ await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
2211
+ await reporting.thermostatUnoccupiedHeatingSetpoint(endpoint);
2212
+ try {
2213
+ await reporting.thermostatKeypadLockMode(endpoint);
2214
+ }
2215
+ catch {
2216
+ // Fails for some
2217
+ // https://github.com/Koenkk/zigbee2mqtt/issues/15025
2218
+ logger_1.logger.debug("Failed to setup keypadLockout reporting", NS);
2219
+ }
2220
+ // Custom attributes
2221
+ const options = { manufacturerCode: 0x1224 };
2222
+ // OperateDisplayLcdBrightnesss
2223
+ await endpoint.configureReporting("hvacThermostat", [
2224
+ {
2225
+ attribute: { ID: 0x1000, type: 0x30 },
2226
+ minimumReportInterval: 0,
2227
+ maximumReportInterval: constants.repInterval.HOUR,
2228
+ reportableChange: null,
2229
+ },
2230
+ ], options);
2231
+ // ButtonVibrationLevel
2232
+ await endpoint.configureReporting("hvacThermostat", [
2233
+ {
2234
+ attribute: { ID: 0x1001, type: 0x30 },
2235
+ minimumReportInterval: 0,
2236
+ maximumReportInterval: constants.repInterval.HOUR,
2237
+ reportableChange: null,
2238
+ },
2239
+ ], options);
2240
+ // FloorSensorType
2241
+ await endpoint.configureReporting("hvacThermostat", [
2242
+ {
2243
+ attribute: { ID: 0x1002, type: 0x30 },
2244
+ minimumReportInterval: 0,
2245
+ maximumReportInterval: constants.repInterval.HOUR,
2246
+ reportableChange: null,
2247
+ },
2248
+ ], options);
2249
+ // ControlType
2250
+ await endpoint.configureReporting("hvacThermostat", [
2251
+ {
2252
+ attribute: { ID: 0x1003, type: 0x30 },
2253
+ minimumReportInterval: 0,
2254
+ maximumReportInterval: constants.repInterval.HOUR,
2255
+ reportableChange: null,
2256
+ },
2257
+ ], options);
2258
+ // PowerUpStatus
2259
+ await endpoint.configureReporting("hvacThermostat", [
2260
+ {
2261
+ attribute: { ID: 0x1004, type: 0x30 },
2262
+ minimumReportInterval: 0,
2263
+ maximumReportInterval: constants.repInterval.HOUR,
2264
+ reportableChange: null,
2265
+ },
2266
+ ], options);
2267
+ // FloorSensorCalibration
2268
+ await endpoint.configureReporting("hvacThermostat", [
2269
+ {
2270
+ attribute: { ID: 0x1005, type: 0x28 },
2271
+ minimumReportInterval: 0,
2272
+ maximumReportInterval: constants.repInterval.HOUR,
2273
+ reportableChange: 0,
2274
+ },
2275
+ ], options);
2276
+ // AntiFreezingModeConfig
2277
+ await endpoint.configureReporting("hvacThermostat", [
2278
+ {
2279
+ attribute: { ID: 0x1006, type: 0x20 },
2280
+ minimumReportInterval: 0,
2281
+ maximumReportInterval: constants.repInterval.HOUR,
2282
+ reportableChange: 0,
2283
+ },
2284
+ ], options);
2285
+ // TemperatureDisplay
2286
+ await endpoint.configureReporting("hvacThermostat", [
2287
+ {
2288
+ attribute: { ID: 0x1008, type: 0x30 },
2289
+ minimumReportInterval: 0,
2290
+ maximumReportInterval: constants.repInterval.HOUR,
2291
+ reportableChange: null,
2292
+ },
2293
+ ], options);
2294
+ // Away mode set
2295
+ await endpoint.configureReporting("hvacThermostat", [
2296
+ {
2297
+ attribute: { ID: 0x2002, type: 0x30 },
2298
+ minimumReportInterval: 0,
2299
+ maximumReportInterval: constants.repInterval.HOUR,
2300
+ reportableChange: null,
2301
+ },
2302
+ ], options);
2303
+ // Control Sequence Of Operation
2304
+ await endpoint.configureReporting("hvacThermostat", [
2305
+ {
2306
+ attribute: { ID: 0x001b, type: 0x30 },
2307
+ minimumReportInterval: 0,
2308
+ maximumReportInterval: constants.repInterval.HOUR,
2309
+ reportableChange: null,
2310
+ },
2311
+ ]);
2312
+ // Device does not asks for the time with binding, we need to write time during configure
2313
+ await syncTime(endpoint);
2314
+ // Trigger initial read
2315
+ await endpoint.read("hvacThermostat", ["systemMode", "runningState", "occupiedHeatingSetpoint"]);
2316
+ await endpoint.read("hvacThermostat", [0x001b]);
2317
+ await endpoint.read("hvacThermostat", [0x1000, 0x1001, 0x1002, 0x1003, 0x2002], options);
2318
+ await endpoint.read("hvacThermostat", [0x1004, 0x1005, 0x1006], options);
2319
+ await endpoint.read("hvacThermostat", [0x1008], options);
2320
+ },
2321
+ },
2322
+ {
2323
+ fingerprint: [{ modelID: "DIM", manufacturerName: "Sunricher" }],
2324
+ model: "SR-ZG9101SAC-HP2",
2325
+ vendor: "Sunricher",
2326
+ description: "Zigbee 2 channel AC phase-cut dimmer",
2327
+ extend: [m.deviceEndpoints({ endpoints: { l1: 1, l2: 2 } }), m.light({ endpointNames: ["l1", "l2"], configureReporting: true })],
2328
+ },
2329
+ {
2330
+ zigbeeModel: ["ZG2855-RGB"],
2331
+ model: "ZG2855-RGB",
2332
+ vendor: "Sunricher",
2333
+ description: "DIM RGB 3 in 1 Zigbee remote",
2334
+ extend: [m.battery(), m.commandsOnOff(), m.commandsLevelCtrl(), m.commandsColorCtrl()],
2335
+ },
2336
+ ];
2337
+ //# sourceMappingURL=sunricher.js.map