@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,2801 @@
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 exposes = __importStar(require("../lib/exposes"));
42
+ const m = __importStar(require("../lib/modernExtend"));
43
+ const reporting = __importStar(require("../lib/reporting"));
44
+ const utils = __importStar(require("../lib/utils"));
45
+ const utils_1 = require("../lib/utils");
46
+ const e = exposes.presets;
47
+ const ea = exposes.access;
48
+ function indicatorMode(endpoint) {
49
+ let description = "Set Indicator Mode.";
50
+ if (endpoint) {
51
+ description = `Set Indicator Mode for ${endpoint} switch.`;
52
+ }
53
+ return m.enumLookup({
54
+ name: "indicator_mode",
55
+ lookup: {
56
+ reverse_with_load: 2,
57
+ consistent_with_load: 0,
58
+ always_off: 3,
59
+ always_on: 1,
60
+ },
61
+ cluster: "manuSpecificSchneiderLightSwitchConfiguration",
62
+ attribute: "ledIndication",
63
+ description: description,
64
+ endpointName: endpoint,
65
+ });
66
+ }
67
+ function socketIndicatorMode() {
68
+ return m.enumLookup({
69
+ name: "indicator_mode",
70
+ lookup: {
71
+ reverse_with_load: 0,
72
+ consistent_with_load: 1,
73
+ always_off: 2,
74
+ always_on: 3,
75
+ },
76
+ cluster: "manuSpecificSchneiderFanSwitchConfiguration",
77
+ attribute: "ledIndication",
78
+ description: "Set indicator mode",
79
+ });
80
+ }
81
+ function evlinkIndicatorMode() {
82
+ return m.enumLookup({
83
+ name: "indicator_mode",
84
+ lookup: {
85
+ default: 1,
86
+ temporary: 5,
87
+ },
88
+ cluster: "manuSpecificSchneiderFanSwitchConfiguration",
89
+ attribute: "ledIndication",
90
+ description: "Set indicator mode",
91
+ });
92
+ }
93
+ function fanIndicatorMode() {
94
+ const description = "Set Indicator Mode.";
95
+ return m.enumLookup({
96
+ name: "indicator_mode",
97
+ lookup: {
98
+ always_on: 3,
99
+ on_with_timeout_but_as_locator: 4,
100
+ on_with_timeout: 5,
101
+ },
102
+ cluster: "manuSpecificSchneiderFanSwitchConfiguration",
103
+ attribute: "ledIndication",
104
+ description: description,
105
+ });
106
+ }
107
+ function fanIndicatorOrientation() {
108
+ const description = "Set Indicator Orientation.";
109
+ return m.enumLookup({
110
+ name: "indicator_orientation",
111
+ lookup: {
112
+ horizontal_left: 2,
113
+ horizontal_right: 0,
114
+ vertical_top: 3,
115
+ vertical_bottom: 1,
116
+ },
117
+ cluster: "manuSpecificSchneiderFanSwitchConfiguration",
118
+ attribute: "ledOrientation",
119
+ description: description,
120
+ });
121
+ }
122
+ function switchActions(endpoint) {
123
+ let description = "Set Switch Action.";
124
+ if (endpoint) {
125
+ description = `Set Switch Action for ${endpoint} Button.`;
126
+ }
127
+ return m.enumLookup({
128
+ name: "switch_actions",
129
+ lookup: {
130
+ light: 0,
131
+ light_opposite: 254,
132
+ dimmer: 1,
133
+ dimmer_opposite: 253,
134
+ standard_shutter: 2,
135
+ standard_shutter_opposite: 252,
136
+ schneider_shutter: 3,
137
+ schneider_shutter_opposite: 251,
138
+ scene: 4,
139
+ toggle_light: 5,
140
+ toggle_dimmer: 6,
141
+ alternate_light: 7,
142
+ alternate_dimmer: 8,
143
+ not_used: 127,
144
+ },
145
+ cluster: "manuSpecificSchneiderLightSwitchConfiguration",
146
+ attribute: "switchActions",
147
+ description: description,
148
+ endpointName: endpoint,
149
+ });
150
+ }
151
+ const schneiderElectricExtend = {
152
+ addVisaConfigurationCluster: (enumDataType) => m.deviceAddCustomCluster("visaConfiguration", {
153
+ ID: 0xfc04,
154
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
155
+ attributes: {
156
+ indicatorLuminanceLevel: { ID: 0x0000, type: enumDataType, write: true },
157
+ indicatorColor: { ID: 0x0001, type: enumDataType, write: true },
158
+ indicatorMode: { ID: 0x0002, type: enumDataType, write: true },
159
+ motorTypeChannel1: { ID: 0x0003, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
160
+ motorTypeChannel2: { ID: 0x0004, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
161
+ curtainStatusChannel1: { ID: 0x0005, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
162
+ curtainStatusChannel2: { ID: 0x0006, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
163
+ key1EventNotification: { ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
164
+ key2EventNotification: { ID: 0x0021, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
165
+ key3EventNotification: { ID: 0x0022, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
166
+ key4EventNotification: { ID: 0x0023, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
167
+ },
168
+ commands: {},
169
+ commandsResponse: {},
170
+ }),
171
+ visaConfigIndicatorLuminanceLevel: () => {
172
+ return m.enumLookup({
173
+ name: "indicator_luminance_level",
174
+ lookup: {
175
+ "100": 0,
176
+ "80": 1,
177
+ "60": 2,
178
+ "40": 3,
179
+ "20": 4,
180
+ "0": 5,
181
+ },
182
+ cluster: "visaConfiguration",
183
+ attribute: "indicatorLuminanceLevel",
184
+ description: "Set indicator luminance Level",
185
+ });
186
+ },
187
+ visaConfigIndicatorColor: () => {
188
+ return m.enumLookup({
189
+ name: "indicator_color",
190
+ lookup: {
191
+ white: 0,
192
+ blue: 1,
193
+ },
194
+ cluster: "visaConfiguration",
195
+ attribute: "indicatorColor",
196
+ description: "Set indicator color",
197
+ });
198
+ },
199
+ visaIndicatorMode: ([reverseWithLoad, consistentWithLoad, alwaysOff, alwaysOn]) => {
200
+ return m.enumLookup({
201
+ name: "indicator_mode",
202
+ lookup: {
203
+ reverse_with_load: reverseWithLoad,
204
+ consistent_with_load: consistentWithLoad,
205
+ always_off: alwaysOff,
206
+ always_on: alwaysOn,
207
+ },
208
+ cluster: "visaConfiguration",
209
+ attribute: "indicatorMode",
210
+ description: "Set indicator mode for switch",
211
+ });
212
+ },
213
+ visaConfigMotorType: (channel) => {
214
+ // TODO: was defaulting `motorTypeChannel` which is not part of the custom cluster
215
+ const attribute = `motorTypeChannel${channel}`;
216
+ const description = `Set motor type for channel ${channel || ""}`;
217
+ return m.enumLookup({
218
+ name: `motor_type${channel ? `_${channel}` : ""}`,
219
+ lookup: {
220
+ ac_motor: 0,
221
+ pulse_motor: 1,
222
+ },
223
+ cluster: "visaConfiguration",
224
+ attribute: attribute,
225
+ description: description,
226
+ });
227
+ },
228
+ visaConfigCurtainStatus: (channel) => {
229
+ // TODO: was defaulting `motorTypeChannel` which is not part of the custom cluster
230
+ const attribute = `curtainStatusChannel${channel}`;
231
+ const description = `Set curtain status for channel ${channel}`;
232
+ return m.enumLookup({
233
+ access: "STATE",
234
+ name: `curtain_status${channel ? `_${channel}` : ""}`,
235
+ lookup: {
236
+ stop: 0,
237
+ opening: 1,
238
+ closing: 2,
239
+ },
240
+ cluster: "visaConfiguration",
241
+ attribute: attribute,
242
+ description: description,
243
+ });
244
+ },
245
+ visaWiserCurtain: (endpointNames) => {
246
+ return {
247
+ isModernExtend: true,
248
+ fromZigbee: [
249
+ {
250
+ cluster: "genLevelCtrl",
251
+ type: ["attributeReport", "readResponse"],
252
+ convert: (model, msg, publish, options, meta) => {
253
+ const onOffTransitionTime = Number(msg.data.onOffTransitionTime) / 10;
254
+ const currentLevel = utils.mapNumberRange(Number(msg.data.currentLevel), 0, 255, 0, 100);
255
+ const transition = (0, utils_1.postfixWithEndpointName)("transition", msg, model, meta);
256
+ const position = (0, utils_1.postfixWithEndpointName)("position", msg, model, meta);
257
+ return {
258
+ [transition]: onOffTransitionTime,
259
+ [position]: currentLevel,
260
+ };
261
+ },
262
+ },
263
+ ],
264
+ toZigbee: [
265
+ {
266
+ key: ["transition", "position"],
267
+ convertGet: async (entity, key, meta) => {
268
+ await entity.read("genLevelCtrl", ["onOffTransitionTime", "currentLevel"]);
269
+ },
270
+ convertSet: async (entity, key, value, meta) => {
271
+ if (key === "transition") {
272
+ await entity.write("genLevelCtrl", { onOffTransitionTime: +value * 10 }, utils.getOptions(meta.mapped, entity));
273
+ }
274
+ else if (key === "position") {
275
+ await entity.command("genLevelCtrl", "moveToLevelWithOnOff", { level: utils.mapNumberRange(Number(value), 0, 100, 0, 255), transtime: 0, optionsMask: 0, optionsOverride: 0 }, utils.getOptions(meta.mapped, entity));
276
+ }
277
+ },
278
+ },
279
+ {
280
+ key: ["state"],
281
+ convertSet: async (entity, key, value, meta) => {
282
+ if (value === "OPEN") {
283
+ await entity.command("genOnOff", "on", {}, utils.getOptions(meta.mapped, entity));
284
+ }
285
+ else if (value === "CLOSE") {
286
+ await entity.command("genOnOff", "off", {}, utils.getOptions(meta.mapped, entity));
287
+ }
288
+ else if (value === "STOP") {
289
+ await entity.command("genLevelCtrl", "stop", { optionsMask: 0, optionsOverride: 0 }, utils.getOptions(meta.mapped, entity));
290
+ }
291
+ },
292
+ },
293
+ ],
294
+ exposes: [
295
+ ...endpointNames.map((endpointName) => e.cover_position().withDescription("State of the curtain").withEndpoint(endpointName)),
296
+ ...endpointNames.map((endpointName) => e
297
+ .numeric("transition", ea.ALL)
298
+ .withValueMin(0)
299
+ .withValueMax(300)
300
+ .withUnit("s")
301
+ .withDescription("Transition time in seconds")
302
+ .withEndpoint(endpointName)),
303
+ ],
304
+ };
305
+ },
306
+ visaKeyEventNotification: (key) => {
307
+ return {
308
+ isModernExtend: true,
309
+ fromZigbee: [
310
+ {
311
+ cluster: "visaConfiguration",
312
+ type: ["attributeReport"],
313
+ convert: (model, msg, publish, options, meta) => {
314
+ for (const key of ["1", "2", "3", "4"]) {
315
+ const zigbeeKey = `key${key}EventNotification`;
316
+ if (Object.hasOwn(msg.data, zigbeeKey)) {
317
+ return { action: `scene_${key}` };
318
+ }
319
+ }
320
+ },
321
+ },
322
+ ],
323
+ };
324
+ },
325
+ dimmingMode: () => {
326
+ const extend = m.enumLookup({
327
+ name: "dimmer_mode",
328
+ lookup: {
329
+ Auto: 0,
330
+ "RL-LED": 3,
331
+ },
332
+ cluster: "lightingBallastCfg",
333
+ attribute: "wiserControlMode",
334
+ description: "Auto detects the correct mode for the ballast. RL-LED may have improved dimming quality for LEDs.",
335
+ entityCategory: "config",
336
+ });
337
+ extend.configure.push(m.setupConfigureForReading("lightingBallastCfg", ["wiserControlMode"]));
338
+ return extend;
339
+ },
340
+ addOccupancyConfigurationCluster: () => m.deviceAddCustomCluster("occupancyConfiguration", {
341
+ ID: 0xff19,
342
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
343
+ attributes: {
344
+ ambienceLightThreshold: { ID: 0x0000, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
345
+ occupancyActions: { ID: 0x0001, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
346
+ unoccupiedLevelDflt: { ID: 0x0002, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
347
+ unoccupiedLevel: { ID: 0x0003, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
348
+ },
349
+ commands: {},
350
+ commandsResponse: {},
351
+ }),
352
+ occupancyConfiguration: () => {
353
+ const extend = m.enumLookup({
354
+ name: "occupancy_sensitivity",
355
+ lookup: {
356
+ Low: 50,
357
+ Medium: 75,
358
+ High: 100,
359
+ },
360
+ cluster: "msOccupancySensing",
361
+ attribute: { ID: 0xe003, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
362
+ zigbeeCommandOptions: {
363
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
364
+ },
365
+ description: "Sensitivity of the occupancy sensor",
366
+ entityCategory: "config",
367
+ });
368
+ const luxScale = (value, type) => {
369
+ if (type === "from") {
370
+ return Math.round(10 ** ((value - 1) / 10000));
371
+ }
372
+ return Math.round(10000 * Math.log10(value) + 1);
373
+ };
374
+ const luxThresholdExtend = m.numeric({
375
+ name: "ambience_light_threshold",
376
+ cluster: "occupancyConfiguration",
377
+ attribute: "ambienceLightThreshold",
378
+ reporting: { min: "10_SECONDS", max: "1_HOUR", change: 5 },
379
+ description: "Threshold above which occupancy will not trigger the light switch.",
380
+ unit: "lx",
381
+ scale: luxScale,
382
+ entityCategory: "config",
383
+ valueMin: 1,
384
+ valueMax: 2000,
385
+ });
386
+ extend.fromZigbee.push(...luxThresholdExtend.fromZigbee);
387
+ extend.toZigbee.push(...luxThresholdExtend.toZigbee);
388
+ extend.exposes.push(...luxThresholdExtend.exposes);
389
+ extend.configure.push(m.setupConfigureForReading("occupancyConfiguration", ["ambienceLightThreshold"]));
390
+ return extend;
391
+ },
392
+ thermostatWithPower: (options) => {
393
+ const extend = m.thermostat(options);
394
+ const climateExpose = extend.exposes.find((exp) => typeof exp !== "function" && "type" in exp && exp.type === "climate");
395
+ if (climateExpose) {
396
+ climateExpose.withRunningState(["idle", "heat"]);
397
+ const runningStateFeature = climateExpose.features.find((f) => typeof f !== "function" && "name" in f && f.name === "running_state");
398
+ if (runningStateFeature) {
399
+ runningStateFeature.withDescription("Running state based on power draw (>10W)");
400
+ }
401
+ }
402
+ extend.fromZigbee.push({
403
+ cluster: "seMetering",
404
+ type: ["attributeReport", "readResponse"],
405
+ convert: (model, msg, publish, options, meta) => {
406
+ if ("instantaneousDemand" in msg.data) {
407
+ const w = Math.max(0, Number(msg.data.instantaneousDemand));
408
+ return { running_state: w > 10 ? "heat" : "idle" };
409
+ }
410
+ },
411
+ });
412
+ return extend;
413
+ },
414
+ addHeatingCoolingOutputClusterServer: () => m.deviceAddCustomCluster("heatingCoolingOutputClusterServer", {
415
+ ID: 0xff23,
416
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
417
+ attributes: {
418
+ measuredTemperature: { ID: 0x0000, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
419
+ absMinHeatTemperatureLimit: { ID: 0x0003, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
420
+ absMaxHeatTemperatureLimit: { ID: 0x0004, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
421
+ absMinCoolTemperatureLimit: { ID: 0x0005, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
422
+ absMaxCoolTemperatureLimit: { ID: 0x0006, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
423
+ minHeatTemperatureLimit: { ID: 0x0015, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
424
+ maxHeatTemperatureLimit: { ID: 0x0016, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
425
+ minCoolTemperatureLimit: { ID: 0x0017, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
426
+ maxCoolTemperatureLimit: { ID: 0x0018, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
427
+ heatTemperatureHighLimit: { ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
428
+ heatTemperatureLowLimit: { ID: 0x0021, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
429
+ coolTemperatureHighLimit: { ID: 0x0022, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
430
+ coolTemperatureLowLimit: { ID: 0x0023, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
431
+ coolingOutputMode: { ID: 0x0030, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
432
+ heatingOutputMode: { ID: 0x0031, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
433
+ maximumIdleTime: { ID: 0x0041, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 8784 },
434
+ antiIdleExerciseTime: { ID: 0x0042, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 3600 },
435
+ preferredExerciseTime: { ID: 0x0043, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 1439 },
436
+ minOffTime: { ID: 0x0044, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true },
437
+ minOnTime: { ID: 0x0045, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true },
438
+ maxOverallDutyCycle: { ID: 0xe207, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, min: 900, max: 3600 },
439
+ overallDutyCyclePeriod: { ID: 0xe208, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 1440 },
440
+ clusterRevision: { ID: 0xfffd, type: zigbee_herdsman_1.Zcl.DataType.UINT16, max: 0xfffe },
441
+ },
442
+ commands: {},
443
+ commandsResponse: {},
444
+ }),
445
+ heatingOutputMode: () => m.enumLookup({
446
+ name: "heating_output_mode",
447
+ cluster: "heatingCoolingOutputClusterServer",
448
+ attribute: "heatingOutputMode",
449
+ description: "On devices with alternate heating output types, this selects which should be used to control the heating unit. This attribute is (mistakenly) also called pilot_mode on some devices.",
450
+ entityCategory: "config",
451
+ access: "ALL",
452
+ lookup: {
453
+ Disabled: 0,
454
+ Relay: 1,
455
+ OpenTherm: 2,
456
+ "Fil Pilote": 3,
457
+ "Relay NC": 4,
458
+ },
459
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
460
+ }),
461
+ pilotMode: () => m.enumLookup({
462
+ name: "schneider_pilot_mode",
463
+ cluster: "heatingCoolingOutputClusterServer",
464
+ attribute: "heatingOutputMode",
465
+ description: "Controls piloting mode (from 'old description'). According to SE the attribute is called 'Heating output mode', and the corresponding custom cluster is heatingCoolingOutputClusterServer.",
466
+ entityCategory: "config",
467
+ access: "ALL",
468
+ lookup: {
469
+ contactor: 1,
470
+ pilot: 3,
471
+ },
472
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
473
+ }),
474
+ addHvacUserInterfaceCfgCustomAttributes: () => m.deviceAddCustomCluster("hvacUserInterfaceCfg", {
475
+ ID: zigbee_herdsman_1.Zcl.Clusters.hvacUserInterfaceCfg.ID,
476
+ attributes: {
477
+ displayBrightnessActive: {
478
+ ID: 0xe000,
479
+ type: zigbee_herdsman_1.Zcl.DataType.UINT8,
480
+ write: true,
481
+ min: 0,
482
+ max: 100,
483
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
484
+ },
485
+ displayBrightnessInactive: {
486
+ ID: 0xe001,
487
+ type: zigbee_herdsman_1.Zcl.DataType.UINT8,
488
+ write: true,
489
+ min: 0,
490
+ max: 100,
491
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
492
+ },
493
+ displayActiveTimeout: {
494
+ ID: 0xe002,
495
+ type: zigbee_herdsman_1.Zcl.DataType.UINT16,
496
+ write: true,
497
+ min: 5,
498
+ max: 600,
499
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
500
+ },
501
+ },
502
+ commands: {},
503
+ commandsResponse: {},
504
+ }),
505
+ displayBrightnessActive: () => m.numeric({
506
+ name: "display_brightness_active",
507
+ cluster: "hvacUserInterfaceCfg",
508
+ attribute: "displayBrightnessActive",
509
+ description: "Sets brightness of the temperature display during active state",
510
+ entityCategory: "config",
511
+ unit: "%",
512
+ valueMin: 0,
513
+ valueMax: 100,
514
+ valueStep: 1,
515
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
516
+ }),
517
+ displayBrightnessInactive: () => m.numeric({
518
+ name: "display_brightness_inactive",
519
+ cluster: "hvacUserInterfaceCfg",
520
+ attribute: "displayBrightnessInactive",
521
+ description: "Sets brightness of the temperature display during inactive state",
522
+ entityCategory: "config",
523
+ unit: "%",
524
+ valueMin: 0,
525
+ valueMax: 100,
526
+ valueStep: 1,
527
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
528
+ }),
529
+ displayActiveTimeout: () => m.numeric({
530
+ name: "display_active_timeout",
531
+ cluster: "hvacUserInterfaceCfg",
532
+ attribute: "displayActiveTimeout",
533
+ description: "Sets timeout of the temperature display active state",
534
+ entityCategory: "config",
535
+ unit: "seconds",
536
+ valueMin: 5,
537
+ valueMax: 600,
538
+ valueStep: 5,
539
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
540
+ }),
541
+ customTemperatureMeasurementCluster: () => m.deviceAddCustomCluster("msTemperatureMeasurement", {
542
+ ID: zigbee_herdsman_1.Zcl.Clusters.msTemperatureMeasurement.ID,
543
+ attributes: {
544
+ sensorCorrection: {
545
+ ID: 0xe020,
546
+ type: zigbee_herdsman_1.Zcl.DataType.INT16,
547
+ write: true,
548
+ min: -900,
549
+ max: 900,
550
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
551
+ },
552
+ temperatureSensorType: {
553
+ ID: 0xe021,
554
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
555
+ write: true,
556
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
557
+ },
558
+ },
559
+ commands: {},
560
+ commandsResponse: {},
561
+ }),
562
+ customMeteringCluster: () => m.deviceAddCustomCluster("seMetering", {
563
+ ID: zigbee_herdsman_1.Zcl.Clusters.seMetering.ID,
564
+ attributes: {
565
+ fixedLoadDemand: {
566
+ ID: 0x4510,
567
+ type: zigbee_herdsman_1.Zcl.DataType.UINT24,
568
+ write: true,
569
+ max: 0x7fffff,
570
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
571
+ },
572
+ },
573
+ commands: {},
574
+ commandsResponse: {},
575
+ }),
576
+ fixedLoadDemand: () => m.numeric({
577
+ name: "fixed_load_demand",
578
+ cluster: "seMetering",
579
+ attribute: "fixedLoadDemand",
580
+ description: "This attribute specifies the demand of a switched load when it is energised",
581
+ entityCategory: "config",
582
+ unit: "W",
583
+ valueMin: 1,
584
+ valueMax: 3600,
585
+ valueStep: 1,
586
+ }),
587
+ customThermostatCluster: () => m.deviceAddCustomCluster("hvacThermostat", {
588
+ ID: zigbee_herdsman_1.Zcl.Clusters.hvacThermostat.ID,
589
+ attributes: {
590
+ controlStatus: {
591
+ ID: 0xe211,
592
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
593
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
594
+ },
595
+ localTemperatureSourceSelect: {
596
+ ID: 0xe212,
597
+ type: zigbee_herdsman_1.Zcl.DataType.UINT8,
598
+ write: true,
599
+ max: 0xfe,
600
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
601
+ },
602
+ controlType: {
603
+ ID: 0xe213,
604
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
605
+ write: true,
606
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
607
+ },
608
+ thermostatApplication: {
609
+ ID: 0xe216,
610
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
611
+ write: true,
612
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
613
+ },
614
+ heatingFuel: {
615
+ ID: 0xe217,
616
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
617
+ write: true,
618
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
619
+ },
620
+ heatTransferMedium: {
621
+ ID: 0xe218,
622
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
623
+ write: true,
624
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
625
+ },
626
+ heatingEmitter: {
627
+ ID: 0xe21a,
628
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
629
+ write: true,
630
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
631
+ },
632
+ },
633
+ commands: {},
634
+ commandsResponse: {},
635
+ }),
636
+ controlStatus: () => m.enumLookup({
637
+ name: "control_status",
638
+ cluster: "hvacThermostat",
639
+ attribute: "controlStatus",
640
+ description: "This indicates the status of the thermostat and allows reporting of abnormal and fault conditions.",
641
+ entityCategory: "diagnostic",
642
+ access: "STATE",
643
+ lookup: {
644
+ "Normal Operation": 0x00,
645
+ "No Temperature": 0x20,
646
+ "Remote Demand Override": 0x40,
647
+ "Window Open": 0x41,
648
+ "Local Force On": 0x61,
649
+ Maintenance: 0x82,
650
+ "Output Temporal Limit": 0x83,
651
+ "Sensor Fault": 0x84,
652
+ },
653
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
654
+ }),
655
+ localTemperatureSourceSelect: () => m.enumLookup({
656
+ name: "local_temperature_source_select",
657
+ cluster: "hvacThermostat",
658
+ attribute: "localTemperatureSourceSelect",
659
+ description: "On devices with more than one temperature input, this selects which should be used for LocalTemperature.",
660
+ entityCategory: "config",
661
+ lookup: { Ambient: 2, External: 3 },
662
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
663
+ }),
664
+ controlType: () => m.enumLookup({
665
+ name: "control_type",
666
+ cluster: "hvacThermostat",
667
+ attribute: "controlType",
668
+ description: "'On/Off', 'PI' and 'None' supported. This specifies the type of control algorithm to be used to regulate temperature.",
669
+ entityCategory: "config",
670
+ lookup: { "On/Off": 0, PI: 1, None: 0xff },
671
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
672
+ }),
673
+ thermostatApplication: () => m.enumLookup({
674
+ name: "thermostat_application",
675
+ cluster: "hvacThermostat",
676
+ attribute: "thermostatApplication",
677
+ description: "This is used to specify what the Thermostat is regulating. 'Occupied Space' - heating where the room temperature is used as the control value, 'Floor' - Floor warming applications where the temperature of the floor itself is regulated.",
678
+ entityCategory: "config",
679
+ lookup: { "Occupied Space": 0, Floor: 1, "Not known": 0xff },
680
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
681
+ }),
682
+ heatingFuel: () => m.enumLookup({
683
+ name: "heating_fuel",
684
+ cluster: "hvacThermostat",
685
+ attribute: "heatingFuel",
686
+ description: "Type of fuel used for heating.",
687
+ entityCategory: "config",
688
+ lookup: {
689
+ electricity: 0x00,
690
+ gas: 0x01,
691
+ oil: 0x02,
692
+ solid_fuel: 0x03,
693
+ solar: 0x04,
694
+ community_heating: 0x05,
695
+ heat_pump: 0x06,
696
+ not_specified: 0xff,
697
+ },
698
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
699
+ }),
700
+ heatTransferMedium: () => m.enumLookup({
701
+ name: "heat_transfer_medium",
702
+ cluster: "hvacThermostat",
703
+ attribute: "heatTransferMedium",
704
+ description: "Medium used to transfer heat.",
705
+ entityCategory: "config",
706
+ lookup: { nothing: 0x00, hydronic: 0x01, air: 0x02 },
707
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
708
+ }),
709
+ heatingEmitter: () => m.enumLookup({
710
+ name: "heating_emitter",
711
+ cluster: "hvacThermostat",
712
+ attribute: "heatingEmitter",
713
+ description: "This is used to specify the heat emitter.",
714
+ entityCategory: "config",
715
+ lookup: { None: 0, Radiator: 1, "Fan Assisted Radiator": 2, "Radiant Panel": 3, Floor: 4, "Not specified": 0xff },
716
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
717
+ }),
718
+ addWiserDeviceInfoCluster: () => m.deviceAddCustomCluster("wiserDeviceInfo", {
719
+ ID: 0xfe03,
720
+ attributes: {
721
+ deviceInfo: { ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.CHAR_STR, write: true },
722
+ },
723
+ commands: {},
724
+ commandsResponse: {},
725
+ }),
726
+ addSchneiderLightSwitchConfigurationCluster: () => m.deviceAddCustomCluster("manuSpecificSchneiderLightSwitchConfiguration", {
727
+ ID: 0xff17,
728
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
729
+ attributes: {
730
+ ledIndication: { ID: 0x0000, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
731
+ upSceneID: { ID: 0x0010, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
732
+ upGroupID: { ID: 0x0011, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
733
+ downSceneID: { ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
734
+ downGroupID: { ID: 0x0021, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
735
+ switchActions: { ID: 0x0001, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
736
+ },
737
+ commands: {},
738
+ commandsResponse: {},
739
+ }),
740
+ addSchneiderFanSwitchConfigurationCluster: () => m.deviceAddCustomCluster("manuSpecificSchneiderFanSwitchConfiguration", {
741
+ ID: 0xfc04,
742
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
743
+ attributes: {
744
+ ledIndication: { ID: 0x0002, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
745
+ ledOrientation: { ID: 0x0060, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
746
+ },
747
+ commands: {},
748
+ commandsResponse: {},
749
+ }),
750
+ };
751
+ const tzLocal = {
752
+ lift_duration: {
753
+ key: ["lift_duration"],
754
+ convertSet: async (entity, key, value, meta) => {
755
+ await entity.write(0x0102, { 57344: { value, type: 0x21 } }, { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC });
756
+ return { state: { lift_duration: value } };
757
+ },
758
+ },
759
+ fan_mode: {
760
+ ...tz.fan_mode,
761
+ convertSet: async (entity, key, value, meta) => {
762
+ utils.assertString(value);
763
+ if (value.toLowerCase() === "on")
764
+ value = "low";
765
+ return await tz.fan_mode.convertSet(entity, key, value, meta);
766
+ },
767
+ },
768
+ };
769
+ const fzLocal = {
770
+ schneider_powertag: {
771
+ cluster: "greenPower",
772
+ type: ["commandNotification", "commandCommissioningNotification"],
773
+ convert: async (model, msg, publish, options, meta) => {
774
+ if (msg.type !== "commandNotification") {
775
+ return;
776
+ }
777
+ const commandID = msg.data.commandID;
778
+ if (utils.hasAlreadyProcessedMessage(msg, model, msg.data.frameCounter, `${msg.device.ieeeAddr}_${commandID}`))
779
+ return;
780
+ const rxAfterTx = msg.data.options & (1 << 11);
781
+ const ret = {};
782
+ switch (commandID) {
783
+ case 0xa1: {
784
+ const attr = msg.data.commandFrame.attributes;
785
+ const clusterID = msg.data.commandFrame.clusterID;
786
+ switch (clusterID) {
787
+ case 2820: {
788
+ // haElectricalMeasurement
789
+ const acCurrentDivisor = attr.acCurrentDivisor;
790
+ const acVoltageDivisor = attr.acVoltageDivisor;
791
+ const acFrequencyDivisor = attr.acFrequencyDivisor;
792
+ const powerDivisor = attr.powerDivisor;
793
+ if (attr.rmsVoltage !== undefined) {
794
+ ret.voltage_phase_a = attr.rmsVoltage / acVoltageDivisor;
795
+ }
796
+ if (attr.rmsVoltagePhB !== undefined) {
797
+ ret.voltage_phase_b = attr.rmsVoltagePhB / acVoltageDivisor;
798
+ }
799
+ if (attr.rmsVoltagePhC !== undefined) {
800
+ ret.voltage_phase_c = attr.rmsVoltagePhC / acVoltageDivisor;
801
+ }
802
+ if (attr["19200"] !== undefined) {
803
+ ret.voltage_phase_ab = attr["19200"] / acVoltageDivisor;
804
+ }
805
+ if (attr["19456"] !== undefined) {
806
+ ret.voltage_phase_bc = attr["19456"] / acVoltageDivisor;
807
+ }
808
+ if (attr["19712"] !== undefined) {
809
+ ret.voltage_phase_ca = attr["19712"] / acVoltageDivisor;
810
+ }
811
+ if (attr.rmsCurrent !== undefined) {
812
+ ret.current_phase_a = attr.rmsCurrent / acCurrentDivisor;
813
+ }
814
+ if (attr.rmsCurrentPhB !== undefined) {
815
+ ret.current_phase_b = attr.rmsCurrentPhB / acCurrentDivisor;
816
+ }
817
+ if (attr.rmsCurrentPhC !== undefined) {
818
+ ret.current_phase_c = attr.rmsCurrentPhC / acCurrentDivisor;
819
+ }
820
+ if (attr.totalActivePower !== undefined) {
821
+ ret.power = (attr.totalActivePower * 1000) / powerDivisor;
822
+ }
823
+ if (attr.totalApparentPower !== undefined) {
824
+ ret.power_apparent = (attr.totalApparentPower * 1000) / powerDivisor;
825
+ }
826
+ if (attr.acFrequency !== undefined) {
827
+ ret.ac_frequency = attr.acFrequency / acFrequencyDivisor;
828
+ }
829
+ if (attr.activePower !== undefined) {
830
+ ret.power_phase_a = (attr.activePower * 1000) / powerDivisor;
831
+ }
832
+ if (attr.activePowerPhB !== undefined) {
833
+ ret.power_phase_b = (attr.activePowerPhB * 1000) / powerDivisor;
834
+ }
835
+ if (attr.activePowerPhC !== undefined) {
836
+ ret.power_phase_c = (attr.activePowerPhC * 1000) / powerDivisor;
837
+ }
838
+ break;
839
+ }
840
+ case 1794: {
841
+ // seMetering
842
+ const divisor = attr.divisor;
843
+ if (attr.currentSummDelivered !== undefined) {
844
+ const val = attr.currentSummDelivered;
845
+ ret.energy = val / divisor;
846
+ }
847
+ if (attr["16652"] !== undefined) {
848
+ const val = attr["16652"];
849
+ ret.energy_phase_a = val / divisor;
850
+ }
851
+ if (attr["16908"] !== undefined) {
852
+ const val = attr["16908"];
853
+ ret.energy_phase_b = val / divisor;
854
+ }
855
+ if (attr["17164"] !== undefined) {
856
+ const val = attr["17164"];
857
+ ret.energy_phase_c = val / divisor;
858
+ }
859
+ if (attr.powerFactor !== undefined) {
860
+ ret.power_factor = attr.powerFactor;
861
+ }
862
+ break;
863
+ }
864
+ }
865
+ break;
866
+ }
867
+ case 0xa3:
868
+ // Should handle this cluster as well
869
+ break;
870
+ }
871
+ if (rxAfterTx) {
872
+ // Send Schneider specific ACK to make PowerTag happy
873
+ // @ts-expect-error ignore
874
+ const networkParameters = await msg.device.constructor.adapter.getNetworkParameters();
875
+ await msg.endpoint.commandResponse("greenPower", "response", {
876
+ options: 0b000,
877
+ tempMaster: msg.data.gppNwkAddr,
878
+ tempMasterTx: networkParameters.channel - 11,
879
+ srcID: msg.data.srcID,
880
+ gpdCmd: 0xfe,
881
+ gpdPayload: {
882
+ commandID: 0xfe,
883
+ buffer: Buffer.alloc(1),
884
+ },
885
+ }, {
886
+ srcEndpoint: 242,
887
+ disableDefaultResponse: true,
888
+ });
889
+ }
890
+ return ret;
891
+ },
892
+ },
893
+ wiser_device_info: {
894
+ cluster: "wiserDeviceInfo",
895
+ type: "attributeReport",
896
+ convert: (model, msg, publish, options, meta) => {
897
+ const result = {};
898
+ const data = msg.data.deviceInfo.split(",");
899
+ if (data[0] === "ALG") {
900
+ // TODO What is ALG
901
+ const alg = data.slice(1);
902
+ result.ALG = alg.join(",");
903
+ result.occupied_heating_setpoint = Number.parseInt(alg[2], 10) / 10;
904
+ result.local_temperature = Number.parseInt(alg[3], 10) / 10;
905
+ result.pi_heating_demand = Number.parseInt(alg[9], 10);
906
+ }
907
+ else if (data[0] === "ADC") {
908
+ // TODO What is ADC
909
+ const adc = data.slice(1);
910
+ result.ADC = adc.join(",");
911
+ // TODO: should parseInt?
912
+ result.occupied_heating_setpoint = Number.parseInt(adc[5], 10) / 100;
913
+ result.local_temperature = Number.parseInt(adc[3], 10) / 10;
914
+ }
915
+ else if (data[0] === "UI") {
916
+ if (data[1] === "BoostUp") {
917
+ result.boost = "Up";
918
+ }
919
+ else if (data[1] === "BoostDown") {
920
+ result.boost = "Down";
921
+ }
922
+ else {
923
+ result.boost = "None";
924
+ }
925
+ }
926
+ else if (data[0] === "MOT") {
927
+ // Info about the motor
928
+ result.MOT = data[1];
929
+ }
930
+ return result;
931
+ },
932
+ },
933
+ };
934
+ exports.definitions = [
935
+ {
936
+ zigbeeModel: ["W564100"],
937
+ model: "W564100",
938
+ vendor: "Schneider Electric",
939
+ description: "Motion sensor",
940
+ extend: [
941
+ m.onOff({ powerOnBehavior: false }),
942
+ // Illuminance doesn't require scale
943
+ // https://github.com/Koenkk/zigbee2mqtt/issues/30580#issuecomment-3742159287
944
+ m.illuminance({ scale: (v) => v }),
945
+ m.temperature(),
946
+ m.iasZoneAlarm({ zoneType: "occupancy", zoneAttributes: ["alarm_2"] }),
947
+ m.commandsOnOff(),
948
+ m.commandsLevelCtrl(),
949
+ ],
950
+ },
951
+ {
952
+ zigbeeModel: ["PUCK/SHUTTER/1"],
953
+ model: "CCT5015-0001",
954
+ vendor: "Schneider Electric",
955
+ description: "Roller shutter module",
956
+ fromZigbee: [fz.cover_position_tilt],
957
+ toZigbee: [tz.cover_position_tilt, tz.cover_state, tzLocal.lift_duration],
958
+ exposes: [
959
+ e.cover_position(),
960
+ e.numeric("lift_duration", ea.STATE_SET).withUnit("s").withValueMin(0).withValueMax(300).withDescription("Duration of lift"),
961
+ ],
962
+ meta: { coverInverted: true },
963
+ configure: async (device, coordinatorEndpoint) => {
964
+ const endpoint = device.getEndpoint(5);
965
+ await reporting.bind(endpoint, coordinatorEndpoint, ["closuresWindowCovering"]);
966
+ await reporting.currentPositionLiftPercentage(endpoint);
967
+ },
968
+ },
969
+ {
970
+ zigbeeModel: ["NHPB/SHUTTER/1"],
971
+ model: "S520567",
972
+ vendor: "Schneider Electric",
973
+ description: "Roller shutter",
974
+ fromZigbee: [fz.cover_position_tilt],
975
+ toZigbee: [tz.cover_position_tilt, tz.cover_state, tzLocal.lift_duration],
976
+ exposes: [
977
+ e.cover_position_tilt(),
978
+ e.numeric("lift_duration", ea.STATE_SET).withUnit("s").withValueMin(0).withValueMax(300).withDescription("Duration of lift"),
979
+ ],
980
+ meta: { coverInverted: true },
981
+ configure: async (device, coordinatorEndpoint) => {
982
+ const endpoint = device.getEndpoint(5);
983
+ await reporting.bind(endpoint, coordinatorEndpoint, ["closuresWindowCovering"]);
984
+ await reporting.currentPositionLiftPercentage(endpoint);
985
+ },
986
+ },
987
+ {
988
+ zigbeeModel: ["iTRV"],
989
+ model: "WV704R0A0902",
990
+ vendor: "Schneider Electric",
991
+ description: "Wiser radiator thermostat",
992
+ fromZigbee: [fz.ignore_haDiagnostic, fz.thermostat, fz.battery, fz.hvac_user_interface, fzLocal.wiser_device_info],
993
+ toZigbee: [tz.thermostat_occupied_heating_setpoint, tz.thermostat_keypad_lockout],
994
+ meta: { battery: { voltageToPercentage: { min: 2500, max: 3200 } } },
995
+ extend: [schneiderElectricExtend.addWiserDeviceInfoCluster()],
996
+ exposes: [
997
+ e
998
+ .climate()
999
+ .withSetpoint("occupied_heating_setpoint", 5, 30, 0.5)
1000
+ .withLocalTemperature(ea.STATE)
1001
+ .withRunningState(["idle", "heat"], ea.STATE)
1002
+ .withPiHeatingDemand(),
1003
+ e.battery(),
1004
+ e.battery_voltage(),
1005
+ e.keypad_lockout().withAccess(ea.ALL),
1006
+ ],
1007
+ configure: async (device, coordinatorEndpoint) => {
1008
+ const endpoint = device.getEndpoint(1);
1009
+ const binds = ["genBasic", "genPowerCfg", "hvacThermostat", "haDiagnostic"];
1010
+ await reporting.bind(endpoint, coordinatorEndpoint, binds);
1011
+ await reporting.batteryVoltage(endpoint);
1012
+ await reporting.thermostatTemperature(endpoint);
1013
+ await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
1014
+ await reporting.thermostatPIHeatingDemand(endpoint);
1015
+ // bind of hvacUserInterfaceCfg fails with 'Table Full', does this have any effect?
1016
+ await endpoint.configureReporting("hvacUserInterfaceCfg", [
1017
+ {
1018
+ attribute: "keypadLockout",
1019
+ reportableChange: 1,
1020
+ minimumReportInterval: constants.repInterval.MINUTE,
1021
+ maximumReportInterval: constants.repInterval.HOUR,
1022
+ },
1023
+ ]);
1024
+ },
1025
+ },
1026
+ {
1027
+ zigbeeModel: ["U202DST600ZB"],
1028
+ model: "U202DST600ZB",
1029
+ vendor: "Schneider Electric",
1030
+ description: "EZinstall3 2 gang 2x300W dimmer module",
1031
+ extend: [m.deviceEndpoints({ endpoints: { l1: 10, l2: 11 } }), m.light({ endpointNames: ["l1", "l2"], configureReporting: true })],
1032
+ },
1033
+ {
1034
+ zigbeeModel: ["PUCK/DIMMER/1"],
1035
+ model: "CCT5010-0001",
1036
+ vendor: "Schneider Electric",
1037
+ description: "Micro module dimmer",
1038
+ ota: true,
1039
+ extend: [m.light({ powerOnBehavior: false, configureReporting: true, levelConfig: {} })],
1040
+ fromZigbee: [fz.wiser_lighting_ballast_configuration],
1041
+ toZigbee: [tz.ballast_config, tz.wiser_dimmer_mode],
1042
+ exposes: [
1043
+ e
1044
+ .numeric("ballast_minimum_level", ea.ALL)
1045
+ .withValueMin(1)
1046
+ .withValueMax(254)
1047
+ .withDescription("Specifies the minimum light output of the ballast"),
1048
+ e
1049
+ .numeric("ballast_maximum_level", ea.ALL)
1050
+ .withValueMin(1)
1051
+ .withValueMax(254)
1052
+ .withDescription("Specifies the maximum light output of the ballast"),
1053
+ e
1054
+ .enum("dimmer_mode", ea.ALL, ["auto", "rc", "rl", "rl_led"])
1055
+ .withDescription("Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)"),
1056
+ ],
1057
+ whiteLabel: [
1058
+ { vendor: "Elko", model: "EKO07090" },
1059
+ { vendor: "Schneider Electric", model: "550B1012" },
1060
+ ],
1061
+ },
1062
+ {
1063
+ zigbeeModel: ["PUCK/SWITCH/1"],
1064
+ model: "CCT5011-0001/CCT5011-0002/MEG5011-0001",
1065
+ vendor: "Schneider Electric",
1066
+ description: "Micro module switch",
1067
+ ota: true,
1068
+ extend: [m.onOff({ powerOnBehavior: false })],
1069
+ whiteLabel: [{ vendor: "Elko", model: "EKO07144" }],
1070
+ },
1071
+ {
1072
+ zigbeeModel: ["PUCK/UNIDIM/1"],
1073
+ model: "CCT5010-0003",
1074
+ vendor: "Schneider Electric",
1075
+ description: "Micro module dimmer with neutral lead",
1076
+ ota: true,
1077
+ extend: [m.light({ configureReporting: true, levelConfig: {} })],
1078
+ fromZigbee: [fz.wiser_lighting_ballast_configuration],
1079
+ toZigbee: [tz.ballast_config, tz.wiser_dimmer_mode],
1080
+ exposes: [
1081
+ e
1082
+ .numeric("ballast_minimum_level", ea.ALL)
1083
+ .withValueMin(1)
1084
+ .withValueMax(254)
1085
+ .withDescription("Specifies the minimum light output of the ballast"),
1086
+ e
1087
+ .numeric("ballast_maximum_level", ea.ALL)
1088
+ .withValueMin(1)
1089
+ .withValueMax(254)
1090
+ .withDescription("Specifies the maximum light output of the ballast"),
1091
+ e
1092
+ .enum("dimmer_mode", ea.ALL, ["auto", "rc", "rl", "rl_led"])
1093
+ .withDescription("Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)"),
1094
+ ],
1095
+ },
1096
+ {
1097
+ zigbeeModel: ["CCTFR6730"],
1098
+ model: "CCTFR6730",
1099
+ vendor: "Schneider Electric",
1100
+ description: "Wiser power micromodule",
1101
+ whiteLabel: [{ vendor: "Elko", model: "EKO20004" }],
1102
+ extend: [m.onOff({ powerOnBehavior: true }), m.electricityMeter({ cluster: "metering" }), m.identify()],
1103
+ },
1104
+ {
1105
+ zigbeeModel: ["NHROTARY/DIMMER/1"],
1106
+ model: "WDE002334",
1107
+ vendor: "Schneider Electric",
1108
+ description: "Rotary dimmer",
1109
+ fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fz.wiser_lighting_ballast_configuration],
1110
+ toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config, tz.wiser_dimmer_mode],
1111
+ exposes: [
1112
+ e.light_brightness().withLevelConfig(),
1113
+ e
1114
+ .numeric("ballast_minimum_level", ea.ALL)
1115
+ .withValueMin(1)
1116
+ .withValueMax(254)
1117
+ .withDescription("Specifies the minimum light output of the ballast"),
1118
+ e
1119
+ .numeric("ballast_maximum_level", ea.ALL)
1120
+ .withValueMin(1)
1121
+ .withValueMax(254)
1122
+ .withDescription("Specifies the maximum light output of the ballast"),
1123
+ e
1124
+ .enum("dimmer_mode", ea.ALL, ["auto", "rc", "rl", "rl_led"])
1125
+ .withDescription("Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)"),
1126
+ ],
1127
+ configure: async (device, coordinatorEndpoint) => {
1128
+ const endpoint = device.getEndpoint(3);
1129
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "genLevelCtrl", "lightingBallastCfg"]);
1130
+ await reporting.onOff(endpoint);
1131
+ await reporting.brightness(endpoint);
1132
+ },
1133
+ },
1134
+ {
1135
+ zigbeeModel: ["NHROTARY/UNIDIM/1"],
1136
+ model: "NH3516A",
1137
+ vendor: "Schneider Electric",
1138
+ description: "Rotary dimmer",
1139
+ extend: [
1140
+ m.light({
1141
+ effect: false,
1142
+ powerOnBehavior: false,
1143
+ color: false,
1144
+ configureReporting: true,
1145
+ levelConfig: { features: ["on_level", "current_level_startup"] },
1146
+ }),
1147
+ m.lightingBallast(),
1148
+ schneiderElectricExtend.dimmingMode(),
1149
+ ],
1150
+ whiteLabel: [
1151
+ { vendor: "Elko", model: "EKO07278" },
1152
+ { vendor: "Elko", model: "EKO07279" },
1153
+ { vendor: "Elko", model: "EKO07280" },
1154
+ { vendor: "Elko", model: "EKO07281" },
1155
+ { vendor: "Elko", model: "EKO30198" },
1156
+ { vendor: "Schneider", model: "WDE002961" },
1157
+ { vendor: "Schneider", model: "WDE003961" },
1158
+ { vendor: "Schneider", model: "WDE004961" },
1159
+ ],
1160
+ },
1161
+ {
1162
+ zigbeeModel: ["NHPB/UNIDIM/1"],
1163
+ model: "WDE002960",
1164
+ vendor: "Schneider Electric",
1165
+ description: "Push button dimmer",
1166
+ fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fz.wiser_lighting_ballast_configuration],
1167
+ toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config, tz.wiser_dimmer_mode],
1168
+ exposes: [
1169
+ e.light_brightness().withLevelConfig(),
1170
+ e
1171
+ .numeric("ballast_minimum_level", ea.ALL)
1172
+ .withValueMin(1)
1173
+ .withValueMax(254)
1174
+ .withDescription("Specifies the minimum light output of the ballast"),
1175
+ e
1176
+ .numeric("ballast_maximum_level", ea.ALL)
1177
+ .withValueMin(1)
1178
+ .withValueMax(254)
1179
+ .withDescription("Specifies the maximum light output of the ballast"),
1180
+ e
1181
+ .enum("dimmer_mode", ea.ALL, ["auto", "rc", "rl", "rl_led"])
1182
+ .withDescription("Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)"),
1183
+ ],
1184
+ configure: async (device, coordinatorEndpoint) => {
1185
+ const endpoint = device.getEndpoint(3);
1186
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "genLevelCtrl", "lightingBallastCfg"]);
1187
+ await reporting.onOff(endpoint);
1188
+ await reporting.brightness(endpoint);
1189
+ },
1190
+ },
1191
+ {
1192
+ zigbeeModel: ["CCT593011_AS"],
1193
+ model: "550B1024",
1194
+ vendor: "Schneider Electric",
1195
+ description: "Temperature & humidity sensor",
1196
+ fromZigbee: [fz.humidity, fz.temperature, fz.battery],
1197
+ toZigbee: [],
1198
+ exposes: [e.battery(), e.temperature(), e.humidity()],
1199
+ configure: async (device, coordinatorEndpoint) => {
1200
+ const endpoint = device.getEndpoint(1);
1201
+ const binds = ["msTemperatureMeasurement", "genPowerCfg", "msRelativeHumidity"];
1202
+ await reporting.bind(endpoint, coordinatorEndpoint, binds);
1203
+ await reporting.batteryPercentageRemaining(endpoint);
1204
+ await reporting.temperature(endpoint);
1205
+ await reporting.humidity(endpoint);
1206
+ },
1207
+ },
1208
+ {
1209
+ zigbeeModel: ["NHPB/DIMMER/1"],
1210
+ model: "WDE002386",
1211
+ vendor: "Schneider Electric",
1212
+ description: "Push button dimmer",
1213
+ extend: [
1214
+ m.light({
1215
+ effect: false,
1216
+ powerOnBehavior: true,
1217
+ configureReporting: true,
1218
+ levelConfig: { features: ["on_level", "current_level_startup"] },
1219
+ }),
1220
+ m.lightingBallast(),
1221
+ m.identify(),
1222
+ schneiderElectricExtend.dimmingMode(),
1223
+ schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(),
1224
+ indicatorMode(),
1225
+ ],
1226
+ meta: { omitOptionalLevelParams: true },
1227
+ configure: async (device, coordinatorEndpoint) => {
1228
+ const endpoint = device.getEndpoint(3);
1229
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "genLevelCtrl", "lightingBallastCfg"]);
1230
+ await reporting.onOff(endpoint);
1231
+ await reporting.brightness(endpoint);
1232
+ },
1233
+ },
1234
+ {
1235
+ zigbeeModel: ["CH/DIMMER/1"],
1236
+ model: "41EPBDWCLMZ/354PBDMBTZ",
1237
+ vendor: "Schneider Electric",
1238
+ description: "Wiser 40/300-Series Module Dimmer",
1239
+ fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fz.lighting_ballast_configuration],
1240
+ toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config],
1241
+ exposes: [
1242
+ e.light_brightness(),
1243
+ e
1244
+ .numeric("ballast_minimum_level", ea.ALL)
1245
+ .withValueMin(1)
1246
+ .withValueMax(254)
1247
+ .withDescription("Specifies the minimum light output of the ballast"),
1248
+ e
1249
+ .numeric("ballast_maximum_level", ea.ALL)
1250
+ .withValueMin(1)
1251
+ .withValueMax(254)
1252
+ .withDescription("Specifies the maximum light output of the ballast"),
1253
+ ],
1254
+ ota: true,
1255
+ extend: [schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(), indicatorMode("smart")],
1256
+ meta: { multiEndpoint: true },
1257
+ configure: async (device, coordinatorEndpoint) => {
1258
+ const endpoint = device.getEndpoint(3);
1259
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "genLevelCtrl", "lightingBallastCfg"]);
1260
+ await reporting.onOff(endpoint);
1261
+ await reporting.brightness(endpoint);
1262
+ },
1263
+ endpoint: (device) => {
1264
+ return { smart: 21 };
1265
+ },
1266
+ },
1267
+ {
1268
+ zigbeeModel: ["CH2AX/SWITCH/1"],
1269
+ model: "41E2PBSWMZ/356PB2MBTZ",
1270
+ vendor: "Schneider Electric",
1271
+ description: "Wiser 40/300-Series module switch 2AX",
1272
+ ota: true,
1273
+ extend: [schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(), m.onOff({ powerOnBehavior: false }), indicatorMode("smart")],
1274
+ meta: { multiEndpoint: true },
1275
+ configure: async (device, coordinatorEndpoint) => {
1276
+ const endpoint = device.getEndpoint(1);
1277
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff"]);
1278
+ await reporting.onOff(endpoint);
1279
+ },
1280
+ endpoint: (device) => {
1281
+ return { smart: 21 };
1282
+ },
1283
+ },
1284
+ {
1285
+ zigbeeModel: ["CH10AX/SWITCH/1"],
1286
+ model: "41E10PBSWMZ-VW",
1287
+ vendor: "Schneider Electric",
1288
+ description: "Wiser 40/300-Series module switch 10AX with ControlLink",
1289
+ ota: true,
1290
+ extend: [schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(), m.onOff({ powerOnBehavior: false }), indicatorMode("smart")],
1291
+ meta: { multiEndpoint: true },
1292
+ configure: async (device, coordinatorEndpoint) => {
1293
+ const endpoint = device.getEndpoint(1);
1294
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff"]);
1295
+ await reporting.onOff(endpoint);
1296
+ },
1297
+ endpoint: (device) => {
1298
+ return { smart: 21 };
1299
+ },
1300
+ },
1301
+ {
1302
+ zigbeeModel: ["CHFAN/SWITCH/1"],
1303
+ model: "41ECSFWMZ-VW",
1304
+ vendor: "Schneider Electric",
1305
+ description: "Wiser 40/300-Series Module AC Fan Controller",
1306
+ fromZigbee: [fz.fan],
1307
+ toZigbee: [tzLocal.fan_mode],
1308
+ exposes: [e.fan().withState("fan_state").withModes(["off", "low", "medium", "high", "on"])],
1309
+ ota: true,
1310
+ extend: [schneiderElectricExtend.addSchneiderFanSwitchConfigurationCluster(), fanIndicatorMode(), fanIndicatorOrientation()],
1311
+ configure: async (device, coordinatorEndpoint) => {
1312
+ const endpoint = device.getEndpoint(7);
1313
+ await reporting.bind(endpoint, coordinatorEndpoint, ["hvacFanCtrl"]);
1314
+ await reporting.fanMode(endpoint);
1315
+ },
1316
+ },
1317
+ {
1318
+ zigbeeModel: ["SMARTPLUG/1"],
1319
+ model: "CCT711119",
1320
+ vendor: "Schneider Electric",
1321
+ description: "Wiser smart plug",
1322
+ fromZigbee: [fz.on_off, fz.electrical_measurement, fz.metering, fz.power_on_behavior],
1323
+ toZigbee: [tz.on_off, tz.power_on_behavior, tz.electrical_measurement_power],
1324
+ exposes: [
1325
+ e.switch(),
1326
+ e.power().withAccess(ea.STATE_GET),
1327
+ e.energy(),
1328
+ e.enum("power_on_behavior", ea.ALL, ["off", "previous", "on"]).withDescription("Controls the behaviour when the device is powered on"),
1329
+ ],
1330
+ configure: async (device, coordinatorEndpoint) => {
1331
+ const endpoint = device.getEndpoint(1);
1332
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "haElectricalMeasurement", "seMetering"]);
1333
+ await reporting.onOff(endpoint);
1334
+ // only activePower seems to be support, although compliance document states otherwise
1335
+ await endpoint.read("haElectricalMeasurement", ["acPowerMultiplier", "acPowerDivisor"]);
1336
+ await reporting.activePower(endpoint);
1337
+ await reporting.readMeteringMultiplierDivisor(endpoint);
1338
+ await reporting.currentSummDelivered(endpoint, { min: 60, change: 1 });
1339
+ },
1340
+ },
1341
+ {
1342
+ zigbeeModel: ["U201DST600ZB"],
1343
+ model: "U201DST600ZB",
1344
+ vendor: "Schneider Electric",
1345
+ description: "EZinstall3 1 gang 550W dimmer module",
1346
+ extend: [m.light({ configureReporting: true })],
1347
+ },
1348
+ {
1349
+ zigbeeModel: ["U201SRY2KWZB"],
1350
+ model: "U201SRY2KWZB",
1351
+ vendor: "Schneider Electric",
1352
+ description: "Ulti 240V 9.1 A 1 gang relay switch impress switch module, amber LED",
1353
+ extend: [m.onOff()],
1354
+ },
1355
+ {
1356
+ zigbeeModel: ["CCTFR6100"],
1357
+ model: "CCTFR6100Z3",
1358
+ vendor: "Schneider Electric",
1359
+ description: "Wiser radiator thermostat",
1360
+ fromZigbee: [fz.ignore_haDiagnostic, fz.thermostat, fz.battery, fz.hvac_user_interface, fzLocal.wiser_device_info],
1361
+ toZigbee: [tz.thermostat_occupied_heating_setpoint, tz.thermostat_keypad_lockout],
1362
+ extend: [schneiderElectricExtend.addWiserDeviceInfoCluster()],
1363
+ exposes: [
1364
+ e
1365
+ .climate()
1366
+ .withSetpoint("occupied_heating_setpoint", 7, 30, 1)
1367
+ .withLocalTemperature(ea.STATE)
1368
+ .withRunningState(["idle", "heat"], ea.STATE)
1369
+ .withPiHeatingDemand(),
1370
+ ],
1371
+ configure: async (device, coordinatorEndpoint) => {
1372
+ const endpoint = device.getEndpoint(1);
1373
+ const binds = ["genBasic", "genPowerCfg", "hvacThermostat", "haDiagnostic"];
1374
+ await reporting.bind(endpoint, coordinatorEndpoint, binds);
1375
+ await reporting.batteryVoltage(endpoint);
1376
+ await reporting.thermostatTemperature(endpoint);
1377
+ await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
1378
+ await reporting.thermostatPIHeatingDemand(endpoint);
1379
+ // bind of hvacUserInterfaceCfg fails with 'Table Full', does this have any effect?
1380
+ await endpoint.configureReporting("hvacUserInterfaceCfg", [
1381
+ {
1382
+ attribute: "keypadLockout",
1383
+ reportableChange: 1,
1384
+ minimumReportInterval: constants.repInterval.MINUTE,
1385
+ maximumReportInterval: constants.repInterval.HOUR,
1386
+ },
1387
+ ]);
1388
+ },
1389
+ },
1390
+ {
1391
+ zigbeeModel: ["NHPB/SWITCH/1"],
1392
+ model: "S520530W",
1393
+ vendor: "Schneider Electric",
1394
+ description: "Odace connectable relay switch 10A",
1395
+ extend: [m.onOff({ powerOnBehavior: false }), m.commandsOnOff()],
1396
+ },
1397
+ {
1398
+ zigbeeModel: ["U202SRY2KWZB"],
1399
+ model: "U202SRY2KWZB",
1400
+ vendor: "Schneider Electric",
1401
+ description: "Ulti 240V 9.1 A 2 gangs relay switch impress switch module, amber LED",
1402
+ extend: [m.deviceEndpoints({ endpoints: { l1: 10, l2: 11 } }), m.onOff({ endpointNames: ["l1", "l2"] })],
1403
+ },
1404
+ {
1405
+ zigbeeModel: ["1GANG/SHUTTER/1"],
1406
+ model: "MEG5113-0300/MEG5165-0000",
1407
+ vendor: "Schneider Electric",
1408
+ description: "Merten MEG5165 PlusLink Shutter insert with Merten Wiser System M Push Button (1fold)",
1409
+ fromZigbee: [fz.cover_position_tilt, fz.command_cover_close, fz.command_cover_open, fz.command_cover_stop],
1410
+ toZigbee: [tz.cover_position_tilt, tz.cover_state, tzLocal.lift_duration],
1411
+ exposes: [
1412
+ e.cover_position_tilt(),
1413
+ e.numeric("lift_duration", ea.STATE_SET).withUnit("s").withValueMin(0).withValueMax(300).withDescription("Duration of lift"),
1414
+ ],
1415
+ meta: { coverInverted: true },
1416
+ configure: async (device, coordinatorEndpoint) => {
1417
+ const endpoint = device.getEndpoint(1) || device.getEndpoint(5);
1418
+ await reporting.bind(endpoint, coordinatorEndpoint, ["closuresWindowCovering"]);
1419
+ await reporting.currentPositionLiftPercentage(endpoint);
1420
+ },
1421
+ },
1422
+ {
1423
+ zigbeeModel: ["1GANG/DIMMER/1", "1GANG/DALI/1"],
1424
+ model: "MEG5116-0300/MEG5171-0000",
1425
+ vendor: "Schneider Electric",
1426
+ description: "Merten MEG5171 PlusLink Dimmer insert with Merten Wiser System M Push Button (1fold)",
1427
+ fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fz.wiser_lighting_ballast_configuration],
1428
+ toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config, tz.wiser_dimmer_mode],
1429
+ exposes: [
1430
+ e.light_brightness().withLevelConfig(),
1431
+ e
1432
+ .numeric("ballast_minimum_level", ea.ALL)
1433
+ .withValueMin(1)
1434
+ .withValueMax(254)
1435
+ .withDescription("Specifies the minimum light output of the ballast"),
1436
+ e
1437
+ .numeric("ballast_maximum_level", ea.ALL)
1438
+ .withValueMin(1)
1439
+ .withValueMax(254)
1440
+ .withDescription("Specifies the maximum light output of the ballast"),
1441
+ e
1442
+ .enum("dimmer_mode", ea.ALL, ["auto", "rc", "rl", "rl_led"])
1443
+ .withDescription("Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)"),
1444
+ ],
1445
+ extend: [schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(), indicatorMode(), switchActions()],
1446
+ configure: async (device, coordinatorEndpoint) => {
1447
+ const endpoint = device.getEndpoint(3);
1448
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "genLevelCtrl", "lightingBallastCfg"]);
1449
+ await reporting.onOff(endpoint);
1450
+ await reporting.brightness(endpoint);
1451
+ },
1452
+ },
1453
+ {
1454
+ zigbeeModel: ["2GANG/DIMMER/1"],
1455
+ model: "MEG5126-0300/MEG5171-0000",
1456
+ vendor: "Schneider Electric",
1457
+ description: "Merten MEG5171 PlusLink Dimmer insert with Merten Wiser System M Push Button (2fold)",
1458
+ fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fz.wiser_lighting_ballast_configuration],
1459
+ toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config, tz.wiser_dimmer_mode],
1460
+ exposes: [
1461
+ e.light_brightness().withLevelConfig(),
1462
+ e
1463
+ .numeric("ballast_minimum_level", ea.ALL)
1464
+ .withValueMin(1)
1465
+ .withValueMax(254)
1466
+ .withDescription("Specifies the minimum light output of the ballast"),
1467
+ e
1468
+ .numeric("ballast_maximum_level", ea.ALL)
1469
+ .withValueMin(1)
1470
+ .withValueMax(254)
1471
+ .withDescription("Specifies the maximum light output of the ballast"),
1472
+ e
1473
+ .enum("dimmer_mode", ea.ALL, ["auto", "rc", "rl", "rl_led"])
1474
+ .withDescription("Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)"),
1475
+ ],
1476
+ extend: [
1477
+ schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(),
1478
+ indicatorMode("right"),
1479
+ indicatorMode("left"),
1480
+ switchActions("right"),
1481
+ switchActions("left"),
1482
+ ],
1483
+ meta: { multiEndpoint: true },
1484
+ configure: async (device, coordinatorEndpoint) => {
1485
+ const endpoint = device.getEndpoint(3);
1486
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "genLevelCtrl", "lightingBallastCfg"]);
1487
+ await reporting.onOff(endpoint);
1488
+ await reporting.brightness(endpoint);
1489
+ },
1490
+ endpoint: (device) => {
1491
+ return { right: 21, left: 22 };
1492
+ },
1493
+ },
1494
+ {
1495
+ zigbeeModel: ["2GANG/DIMMER/2"],
1496
+ model: "MEG5126-0300/MEG5172-0000",
1497
+ vendor: "Schneider Electric",
1498
+ description: "Merten MEG5172 PlusLink Dimmer insert with Merten Wiser System M Push Button (2fold)",
1499
+ fromZigbee: [fz.wiser_lighting_ballast_configuration],
1500
+ toZigbee: [tz.ballast_config, tz.wiser_dimmer_mode],
1501
+ exposes: [
1502
+ e
1503
+ .numeric("ballast_minimum_level", ea.ALL)
1504
+ .withValueMin(1)
1505
+ .withValueMax(254)
1506
+ .withDescription("Specifies the minimum light output of the ballast"),
1507
+ e
1508
+ .numeric("ballast_maximum_level", ea.ALL)
1509
+ .withValueMin(1)
1510
+ .withValueMax(254)
1511
+ .withDescription("Specifies the maximum light output of the ballast"),
1512
+ e
1513
+ .enum("dimmer_mode", ea.ALL, ["auto", "rc", "rl", "rl_led"])
1514
+ .withDescription("Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)"),
1515
+ ],
1516
+ extend: [
1517
+ m.deviceEndpoints({ endpoints: { left: 4, right: 3, left_btn: 22, right_btn: 21 } }),
1518
+ m.light({ endpointNames: ["left", "right"], configureReporting: true }),
1519
+ schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(),
1520
+ switchActions("left_btn"),
1521
+ switchActions("right_btn"),
1522
+ indicatorMode("left_btn"),
1523
+ ],
1524
+ },
1525
+ {
1526
+ zigbeeModel: ["1GANG/SWITCH/1"],
1527
+ model: "MEG5161-0000",
1528
+ vendor: "Schneider Electric",
1529
+ description: "Merten PlusLink relay insert with Merten Wiser system M push button (1fold)",
1530
+ extend: [m.onOff({ powerOnBehavior: false })],
1531
+ },
1532
+ {
1533
+ zigbeeModel: ["LK Switch"],
1534
+ model: "545D6514",
1535
+ vendor: "Schneider Electric",
1536
+ description: "LK FUGA wiser wireless double relay",
1537
+ meta: { multiEndpoint: true },
1538
+ fromZigbee: [fz.on_off, fz.command_on, fz.command_off],
1539
+ toZigbee: [tz.on_off],
1540
+ endpoint: (device) => {
1541
+ return { l1: 1, l2: 2, s1: 21, s2: 22, s3: 23, s4: 24 };
1542
+ },
1543
+ extend: [
1544
+ schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(),
1545
+ indicatorMode("s1"),
1546
+ indicatorMode("s2"),
1547
+ indicatorMode("s3"),
1548
+ indicatorMode("s4"),
1549
+ switchActions("s1"),
1550
+ switchActions("s2"),
1551
+ switchActions("s3"),
1552
+ switchActions("s4"),
1553
+ ],
1554
+ exposes: [e.switch().withEndpoint("l1"), e.switch().withEndpoint("l2"), e.action(["on_s*", "off_s*"])],
1555
+ configure: (device, coordinatorEndpoint) => {
1556
+ device.endpoints.forEach(async (ep) => {
1557
+ if (ep.outputClusters.includes(6) || ep.ID <= 2) {
1558
+ await reporting.bind(ep, coordinatorEndpoint, ["genOnOff"]);
1559
+ if (ep.ID <= 2) {
1560
+ await reporting.onOff(ep);
1561
+ }
1562
+ }
1563
+ });
1564
+ },
1565
+ },
1566
+ {
1567
+ zigbeeModel: ["LK Dimmer"],
1568
+ model: "545D6102",
1569
+ vendor: "Schneider Electric",
1570
+ description: "LK FUGA wiser wireless dimmer",
1571
+ fromZigbee: [fz.schneider_lighting_ballast_configuration, fz.command_recall, fz.command_on, fz.command_off, fz.command_move, fz.command_stop],
1572
+ toZigbee: [tz.ballast_config, tz.schneider_dimmer_mode],
1573
+ endpoint: (device) => {
1574
+ return { l1: 3, s1: 21, s2: 22, s3: 23, s4: 24 };
1575
+ },
1576
+ meta: { multiEndpoint: true },
1577
+ extend: [
1578
+ m.light({ endpointNames: ["l1"], configureReporting: true, levelConfig: {} }),
1579
+ schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(),
1580
+ indicatorMode("s1"),
1581
+ indicatorMode("s2"),
1582
+ indicatorMode("s3"),
1583
+ indicatorMode("s4"),
1584
+ switchActions("s1"),
1585
+ switchActions("s2"),
1586
+ switchActions("s3"),
1587
+ switchActions("s4"),
1588
+ ],
1589
+ exposes: [
1590
+ e
1591
+ .numeric("ballast_minimum_level", ea.ALL)
1592
+ .withValueMin(1)
1593
+ .withValueMax(254)
1594
+ .withDescription("Specifies the minimum light output of the ballast")
1595
+ .withEndpoint("l1"),
1596
+ e
1597
+ .numeric("ballast_maximum_level", ea.ALL)
1598
+ .withValueMin(1)
1599
+ .withValueMax(254)
1600
+ .withDescription("Specifies the maximum light output of the ballast")
1601
+ .withEndpoint("l1"),
1602
+ e.enum("dimmer_mode", ea.ALL, ["RC", "RL"]).withDescription("Controls Capacitive or Inductive Dimming Mode").withEndpoint("l1"),
1603
+ e.action(["on", "off", "brightness_move_up", "brightness_move_down", "brightness_stop", "recall_*"]),
1604
+ ],
1605
+ configure: async (device, coordinatorEndpoint) => {
1606
+ // Configure the dimmer actuator endpoint
1607
+ const endpoint = device.getEndpoint(3);
1608
+ await reporting.bind(endpoint, coordinatorEndpoint, ["lightingBallastCfg"]);
1609
+ // Configure the four front switches
1610
+ device.endpoints.forEach(async (ep) => {
1611
+ if (21 <= ep.ID && ep.ID <= 22) {
1612
+ await reporting.bind(ep, coordinatorEndpoint, ["genOnOff", "genLevelCtrl"]);
1613
+ }
1614
+ else if (23 <= ep.ID && ep.ID <= 24) {
1615
+ await reporting.bind(ep, coordinatorEndpoint, ["genScenes"]);
1616
+ }
1617
+ });
1618
+ },
1619
+ onEvent: (event) => {
1620
+ // Record the factory default bindings for easy removal/change after deviceInterview
1621
+ if (event.type === "deviceInterview") {
1622
+ const dimmer = event.data.device.getEndpoint(3);
1623
+ event.data.device.endpoints.forEach((ep) => {
1624
+ if (21 <= ep.ID && ep.ID <= 22) {
1625
+ ep.addBinding("genOnOff", dimmer);
1626
+ ep.addBinding("genLevelCtrl", dimmer);
1627
+ }
1628
+ if (23 <= ep.ID && ep.ID <= 24) {
1629
+ ep.addBinding("genScenes", dimmer);
1630
+ }
1631
+ });
1632
+ }
1633
+ },
1634
+ },
1635
+ {
1636
+ zigbeeModel: ["FLS/AIRLINK/4"],
1637
+ model: "550D6001",
1638
+ vendor: "Schneider Electric",
1639
+ description: "LK FUGA wiser wireless battery 4 button switch",
1640
+ fromZigbee: [fz.command_on, fz.command_off, fz.command_move, fz.command_stop, fz.battery],
1641
+ toZigbee: [],
1642
+ endpoint: (device) => {
1643
+ return { top: 21, bottom: 22 };
1644
+ },
1645
+ whiteLabel: [{ vendor: "Elko", model: "EKO07117" }],
1646
+ meta: { multiEndpoint: true },
1647
+ exposes: [
1648
+ e.action([
1649
+ "on_top",
1650
+ "off_top",
1651
+ "on_bottom",
1652
+ "off_bottom",
1653
+ "brightness_move_up_top",
1654
+ "brightness_stop_top",
1655
+ "brightness_move_down_top",
1656
+ "brightness_stop_top",
1657
+ "brightness_move_up_bottom",
1658
+ "brightness_stop_bottom",
1659
+ "brightness_move_down_bottom",
1660
+ "brightness_stop_bottom",
1661
+ ]),
1662
+ e.battery(),
1663
+ ],
1664
+ configure: async (device, coordinatorEndpoint) => {
1665
+ // When in 2-gang operation mode, unit operates out of endpoints 21 and 22, otherwise just 21
1666
+ const topButtonsEndpoint = device.getEndpoint(21);
1667
+ await reporting.bind(topButtonsEndpoint, coordinatorEndpoint, ["genOnOff", "genLevelCtrl", "genPowerCfg"]);
1668
+ await reporting.batteryPercentageRemaining(topButtonsEndpoint);
1669
+ const bottomButtonsEndpoint = device.getEndpoint(22);
1670
+ await reporting.bind(bottomButtonsEndpoint, coordinatorEndpoint, ["genOnOff", "genLevelCtrl"]);
1671
+ },
1672
+ },
1673
+ {
1674
+ fingerprint: [
1675
+ { modelID: "CCTFR6700", manufacturerName: "Schneider Electric" },
1676
+ { modelID: "CCTFR6710", manufacturerName: "Schneider Electric" },
1677
+ ],
1678
+ model: "CCTFR6700",
1679
+ vendor: "Schneider Electric",
1680
+ description: "Heating thermostat",
1681
+ whiteLabel: [{ model: "CCTFR6710", fingerprint: [{ modelID: "CCTFR6710" }] }],
1682
+ fromZigbee: [fz.thermostat, fz.metering],
1683
+ toZigbee: [
1684
+ tz.schneider_temperature_measured_value,
1685
+ tz.thermostat_system_mode,
1686
+ tz.thermostat_running_state,
1687
+ tz.thermostat_local_temperature,
1688
+ tz.thermostat_occupied_heating_setpoint,
1689
+ tz.thermostat_control_sequence_of_operation,
1690
+ tz.schneider_temperature_measured_value,
1691
+ ],
1692
+ extend: [schneiderElectricExtend.addHeatingCoolingOutputClusterServer(), schneiderElectricExtend.pilotMode()],
1693
+ exposes: [
1694
+ e.power(),
1695
+ e.energy(),
1696
+ e
1697
+ .climate()
1698
+ .withSetpoint("occupied_heating_setpoint", 4, 30, 0.5)
1699
+ .withLocalTemperature()
1700
+ .withSystemMode(["off", "auto", "heat"])
1701
+ .withPiHeatingDemand(),
1702
+ ],
1703
+ configure: async (device, coordinatorEndpoint) => {
1704
+ const endpoint1 = device.getEndpoint(1);
1705
+ const endpoint2 = device.getEndpoint(2);
1706
+ await reporting.bind(endpoint1, coordinatorEndpoint, ["hvacThermostat"]);
1707
+ await reporting.thermostatOccupiedHeatingSetpoint(endpoint1);
1708
+ await reporting.thermostatPIHeatingDemand(endpoint1);
1709
+ await reporting.bind(endpoint2, coordinatorEndpoint, ["seMetering"]);
1710
+ await reporting.instantaneousDemand(endpoint2, { min: 0, max: 60, change: 1 });
1711
+ await reporting.currentSummDelivered(endpoint2, { min: 0, max: 60, change: 1 });
1712
+ },
1713
+ },
1714
+ {
1715
+ fingerprint: [{ modelID: "Thermostat", manufacturerName: "Schneider Electric" }],
1716
+ model: "CCTFR6400",
1717
+ vendor: "Schneider Electric",
1718
+ description: "Temperature/Humidity measurement with thermostat interface",
1719
+ fromZigbee: [fz.battery, fz.schneider_temperature, fz.humidity, fz.thermostat, fz.schneider_ui_action],
1720
+ toZigbee: [
1721
+ tz.schneider_thermostat_system_mode,
1722
+ tz.schneider_thermostat_occupied_heating_setpoint,
1723
+ tz.schneider_thermostat_control_sequence_of_operation,
1724
+ tz.schneider_thermostat_pi_heating_demand,
1725
+ tz.schneider_thermostat_keypad_lockout,
1726
+ ],
1727
+ exposes: [
1728
+ e.keypad_lockout().withAccess(ea.STATE_SET),
1729
+ e.humidity(),
1730
+ e.battery(),
1731
+ e.battery_voltage(),
1732
+ e.action(["screen_sleep", "screen_wake", "button_press_plus_down", "button_press_center_down", "button_press_minus_down"]),
1733
+ e.climate().withSetpoint("occupied_heating_setpoint", 4, 30, 0.5, ea.SET).withLocalTemperature(ea.STATE).withPiHeatingDemand(ea.SET),
1734
+ ],
1735
+ meta: { battery: { dontDividePercentage: true } },
1736
+ configure: async (device, coordinatorEndpoint) => {
1737
+ const endpoint1 = device.getEndpoint(1);
1738
+ await reporting.bind(endpoint1, coordinatorEndpoint, ["genPowerCfg", "hvacThermostat", "msTemperatureMeasurement", "msRelativeHumidity"]);
1739
+ await reporting.temperature(endpoint1);
1740
+ await reporting.humidity(endpoint1);
1741
+ await reporting.batteryPercentageRemaining(endpoint1);
1742
+ endpoint1.saveClusterAttributeKeyValue("genBasic", { zclVersion: 3 });
1743
+ endpoint1.saveClusterAttributeKeyValue("hvacThermostat", { schneiderWiserSpecific: 1, systemMode: 4, ctrlSeqeOfOper: 2 });
1744
+ endpoint1.saveClusterAttributeKeyValue("hvacUserInterfaceCfg", { keypadLockout: 0 });
1745
+ },
1746
+ },
1747
+ {
1748
+ zigbeeModel: ["EH-ZB-SPD-V2"],
1749
+ model: "EER40030",
1750
+ vendor: "Schneider Electric",
1751
+ description: "Zigbee smart plug with power meter",
1752
+ fromZigbee: [fz.on_off, fz.metering],
1753
+ toZigbee: [tz.on_off],
1754
+ exposes: [e.switch(), e.power(), e.energy()],
1755
+ configure: async (device, coordinatorEndpoint) => {
1756
+ const endpoint = device.getEndpoint(11);
1757
+ const options = { disableDefaultResponse: true };
1758
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "seMetering"]);
1759
+ await reporting.onOff(endpoint);
1760
+ await reporting.readMeteringMultiplierDivisor(endpoint);
1761
+ await reporting.instantaneousDemand(endpoint);
1762
+ await endpoint.write("genBasic", { 57424: { value: 1, type: 0x10 } }, options);
1763
+ },
1764
+ },
1765
+ {
1766
+ zigbeeModel: ["EH-ZB-LMACT"],
1767
+ model: "EER42000",
1768
+ vendor: "Schneider Electric",
1769
+ description: "Zigbee load actuator with power meter",
1770
+ fromZigbee: [fz.on_off, fz.metering],
1771
+ toZigbee: [tz.on_off],
1772
+ exposes: [e.switch(), e.power(), e.energy()],
1773
+ configure: async (device, coordinatorEndpoint) => {
1774
+ const endpoint = device.getEndpoint(11);
1775
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "seMetering"]);
1776
+ await reporting.onOff(endpoint);
1777
+ await reporting.readMeteringMultiplierDivisor(endpoint);
1778
+ await reporting.instantaneousDemand(endpoint);
1779
+ },
1780
+ },
1781
+ {
1782
+ zigbeeModel: ["2GANG/SWITCH/2", "2GANG/SWITCH/1"],
1783
+ model: "MEG5126-0300",
1784
+ vendor: "Schneider Electric",
1785
+ description: "Merten MEG5165 PlusLink relais insert with Merten Wiser System M push button (2fold)",
1786
+ extend: [m.deviceEndpoints({ endpoints: { l1: 1, l2: 2 } }), m.onOff({ endpointNames: ["l1", "l2"], powerOnBehavior: false })],
1787
+ },
1788
+ {
1789
+ zigbeeModel: ["EH-ZB-VACT"],
1790
+ model: "EER53000",
1791
+ vendor: "Schneider Electric",
1792
+ description: "Wiser radiator thermostat (VACT)",
1793
+ fromZigbee: [
1794
+ fz.battery,
1795
+ fz.hvac_user_interface,
1796
+ fz.wiser_smart_thermostat,
1797
+ fz.wiser_smart_thermostat_client,
1798
+ fz.wiser_smart_setpoint_command_client,
1799
+ ],
1800
+ toZigbee: [
1801
+ tz.wiser_sed_thermostat_local_temperature_calibration,
1802
+ tz.wiser_sed_occupied_heating_setpoint,
1803
+ tz.wiser_sed_thermostat_keypad_lockout,
1804
+ tz.wiser_vact_calibrate_valve,
1805
+ tz.wiser_sed_zone_mode,
1806
+ ],
1807
+ exposes: [
1808
+ e.battery(),
1809
+ e.binary("keypad_lockout", ea.STATE_SET, "lock1", "unlock").withDescription("Enables/disables physical input on the device"),
1810
+ e.binary("calibrate_valve", ea.STATE_SET, "calibrate", "idle").withDescription("Calibrates valve on next wakeup"),
1811
+ e.enum("valve_calibration_status", ea.STATE, ["ongoing", "successful", "uncalibrated", "failed_e1", "failed_e2", "failed_e3"]),
1812
+ e.enum("zone_mode", ea.STATE_SET, ["manual", "schedule", "energy_saver", "holiday"]).withDescription("Icon shown on device displays"),
1813
+ e
1814
+ .climate()
1815
+ .withSetpoint("occupied_heating_setpoint", 7, 30, 0.5, ea.STATE_SET)
1816
+ .withLocalTemperature(ea.STATE)
1817
+ .withLocalTemperatureCalibration(-12.8, 12.7, 0.1, ea.STATE_SET)
1818
+ .withPiHeatingDemand(),
1819
+ ],
1820
+ meta: { battery: { voltageToPercentage: { min: 2500, max: 3000 } } },
1821
+ configure: async (device, coordinatorEndpoint) => {
1822
+ const endpoint = device.getEndpoint(11);
1823
+ // Insert default values for client requested attributes
1824
+ endpoint.saveClusterAttributeKeyValue("hvacThermostat", { minHeatSetpointLimit: 7 * 100 });
1825
+ endpoint.saveClusterAttributeKeyValue("hvacThermostat", { maxHeatSetpointLimit: 30 * 100 });
1826
+ endpoint.saveClusterAttributeKeyValue("hvacThermostat", { occupiedHeatingSetpoint: 20 * 100 });
1827
+ endpoint.saveClusterAttributeKeyValue("hvacThermostat", { systemMode: 4 });
1828
+ // VACT needs binding to endpoint 11 due to some hardcoding in the device
1829
+ const coordinatorEndpointB = coordinatorEndpoint.getDevice().getEndpoint(11);
1830
+ const binds = ["genBasic", "genPowerCfg", "hvacThermostat"];
1831
+ await reporting.bind(endpoint, coordinatorEndpointB, binds);
1832
+ await reporting.batteryVoltage(endpoint);
1833
+ await reporting.thermostatTemperature(endpoint);
1834
+ await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
1835
+ await endpoint.configureReporting("hvacUserInterfaceCfg", [
1836
+ {
1837
+ attribute: "keypadLockout",
1838
+ minimumReportInterval: constants.repInterval.MINUTE,
1839
+ maximumReportInterval: constants.repInterval.HOUR,
1840
+ reportableChange: 1,
1841
+ },
1842
+ ]);
1843
+ },
1844
+ },
1845
+ {
1846
+ zigbeeModel: ["EH-ZB-RTS"],
1847
+ model: "EER51000",
1848
+ vendor: "Schneider Electric",
1849
+ description: "Wiser thermostat (RTS)",
1850
+ fromZigbee: [
1851
+ fz.battery,
1852
+ fz.hvac_user_interface,
1853
+ fz.wiser_smart_thermostat_client,
1854
+ fz.wiser_smart_setpoint_command_client,
1855
+ fz.schneider_temperature,
1856
+ ],
1857
+ toZigbee: [tz.wiser_sed_zone_mode, tz.wiser_sed_occupied_heating_setpoint],
1858
+ exposes: [
1859
+ e.battery(),
1860
+ e.climate().withSetpoint("occupied_heating_setpoint", 7, 30, 0.5, ea.STATE_SET).withLocalTemperature(ea.STATE),
1861
+ e.enum("zone_mode", ea.STATE_SET, ["manual", "schedule", "energy_saver", "holiday"]).withDescription("Icon shown on device displays"),
1862
+ ],
1863
+ meta: { battery: { voltageToPercentage: { min: 3000, max: 4200 } } },
1864
+ configure: async (device, coordinatorEndpoint) => {
1865
+ const endpoint = device.getEndpoint(11);
1866
+ // Insert default values for client requested attributes
1867
+ endpoint.saveClusterAttributeKeyValue("hvacThermostat", { minHeatSetpointLimit: 7 * 100 });
1868
+ endpoint.saveClusterAttributeKeyValue("hvacThermostat", { maxHeatSetpointLimit: 30 * 100 });
1869
+ endpoint.saveClusterAttributeKeyValue("hvacThermostat", { occupiedHeatingSetpoint: 20 * 100 });
1870
+ endpoint.saveClusterAttributeKeyValue("hvacThermostat", { systemMode: 4 });
1871
+ // RTS needs binding to endpoint 11 due to some hardcoding in the device
1872
+ const coordinatorEndpointB = coordinatorEndpoint.getDevice().getEndpoint(11);
1873
+ const binds = [
1874
+ "genBasic",
1875
+ "genPowerCfg",
1876
+ "genIdentify",
1877
+ "genAlarms",
1878
+ "genOta",
1879
+ "hvacThermostat",
1880
+ "hvacUserInterfaceCfg",
1881
+ "msTemperatureMeasurement",
1882
+ ];
1883
+ await reporting.bind(endpoint, coordinatorEndpointB, binds);
1884
+ // Battery reports without config once a day, do the first read manually
1885
+ await endpoint.read("genPowerCfg", ["batteryVoltage"]);
1886
+ await endpoint.configureReporting("msTemperatureMeasurement", [
1887
+ {
1888
+ attribute: "measuredValue",
1889
+ minimumReportInterval: constants.repInterval.MINUTE,
1890
+ maximumReportInterval: constants.repInterval.MINUTES_10,
1891
+ reportableChange: 50,
1892
+ },
1893
+ ]);
1894
+ },
1895
+ },
1896
+ {
1897
+ zigbeeModel: ["EH-ZB-HACT"],
1898
+ model: "EER50000",
1899
+ vendor: "Schneider Electric",
1900
+ description: "Wiser H-Relay (HACT)",
1901
+ fromZigbee: [fz.wiser_smart_thermostat, fz.metering, fz.identify],
1902
+ toZigbee: [
1903
+ tz.thermostat_local_temperature,
1904
+ tz.thermostat_occupied_heating_setpoint,
1905
+ tz.wiser_fip_setting,
1906
+ tz.wiser_hact_config,
1907
+ tz.wiser_zone_mode,
1908
+ tz.identify,
1909
+ ],
1910
+ exposes: [
1911
+ e.climate().withSetpoint("occupied_heating_setpoint", 7, 30, 0.5).withLocalTemperature(),
1912
+ e.power(),
1913
+ e.energy(),
1914
+ e.enum("identify", ea.SET, ["0", "30", "60", "600", "900"]).withDescription("Flash green tag for x seconds"),
1915
+ e.enum("zone_mode", ea.ALL, ["manual", "schedule", "energy_saver", "holiday"]),
1916
+ e
1917
+ .enum("hact_config", ea.ALL, ["unconfigured", "setpoint_switch", "setpoint_fip", "fip_fip"])
1918
+ .withDescription("Input (command) and output (control) behavior of actuator"),
1919
+ e
1920
+ .enum("fip_setting", ea.ALL, ["comfort", "comfort_-1", "comfort_-2", "energy_saving", "frost_protection", "off"])
1921
+ .withDescription("Output signal when operating in fil pilote mode (fip_fip)"),
1922
+ ],
1923
+ configure: async (device, coordinatorEndpoint) => {
1924
+ const endpoint = device.getEndpoint(11);
1925
+ const binds = ["genBasic", "genPowerCfg", "hvacThermostat", "msTemperatureMeasurement", "seMetering"];
1926
+ await reporting.bind(endpoint, coordinatorEndpoint, binds);
1927
+ await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
1928
+ await reporting.readMeteringMultiplierDivisor(endpoint);
1929
+ await reporting.instantaneousDemand(endpoint);
1930
+ },
1931
+ },
1932
+ {
1933
+ zigbeeModel: ["FLS/SYSTEM-M/4"],
1934
+ model: "WDE002906/MEG5001-0300",
1935
+ vendor: "Schneider Electric",
1936
+ description: "Wiser wireless switch 1-gang or 2-gang",
1937
+ extend: [
1938
+ m.battery(),
1939
+ m.deviceEndpoints({ endpoints: { right: 21, left: 22 } }),
1940
+ schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(),
1941
+ switchActions("right"),
1942
+ switchActions("left"),
1943
+ m.commandsOnOff({ endpointNames: ["right", "left"] }),
1944
+ m.commandsLevelCtrl({ endpointNames: ["right", "left"] }),
1945
+ ],
1946
+ },
1947
+ {
1948
+ zigbeeModel: ["SOCKET/OUTLET/2"],
1949
+ model: "EKO09738",
1950
+ vendor: "Schneider Electric",
1951
+ description: "Zigbee smart socket with power meter",
1952
+ fromZigbee: [fz.on_off, fz.electrical_measurement, fz.EKO09738_metering, fz.power_on_behavior],
1953
+ toZigbee: [tz.on_off, tz.power_on_behavior],
1954
+ exposes: [
1955
+ e.switch(),
1956
+ e.power(),
1957
+ e.energy(),
1958
+ e.enum("power_on_behavior", ea.ALL, ["off", "previous", "on"]).withDescription("Controls the behaviour when the device is powered on"),
1959
+ e.current(),
1960
+ e.voltage(),
1961
+ ],
1962
+ whiteLabel: [{ vendor: "Elko", model: "EKO09738", description: "SmartStikk" }],
1963
+ configure: async (device, coordinatorEndpoint) => {
1964
+ const endpoint = device.getEndpoint(6);
1965
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "haElectricalMeasurement", "seMetering"]);
1966
+ await reporting.onOff(endpoint);
1967
+ // Unit supports acVoltage and acCurrent, but only acCurrent divisor/multiplier can be read
1968
+ await endpoint.read("haElectricalMeasurement", ["acCurrentDivisor", "acCurrentMultiplier"]);
1969
+ await reporting.readMeteringMultiplierDivisor(endpoint);
1970
+ },
1971
+ },
1972
+ {
1973
+ zigbeeModel: ["SOCKET/OUTLET/1"],
1974
+ model: "EKO09716",
1975
+ vendor: "Schneider Electric",
1976
+ description: "Zigbee smart socket with power meter",
1977
+ fromZigbee: [fz.on_off, fz.electrical_measurement, fz.EKO09738_metering, fz.power_on_behavior],
1978
+ toZigbee: [tz.on_off, tz.power_on_behavior],
1979
+ exposes: [
1980
+ e.switch(),
1981
+ e.power(),
1982
+ e.energy(),
1983
+ e.enum("power_on_behavior", ea.ALL, ["off", "previous", "on"]).withDescription("Controls the behaviour when the device is powered on"),
1984
+ e.current(),
1985
+ e.voltage(),
1986
+ ],
1987
+ extend: [schneiderElectricExtend.addSchneiderFanSwitchConfigurationCluster(), socketIndicatorMode()],
1988
+ configure: async (device, coordinatorEndpoint) => {
1989
+ const endpoint = device.getEndpoint(6);
1990
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "haElectricalMeasurement", "seMetering"]);
1991
+ await reporting.onOff(endpoint);
1992
+ // Unit supports acVoltage and acCurrent, but only acCurrent divisor/multiplier can be read
1993
+ await endpoint.read("haElectricalMeasurement", ["acCurrentDivisor", "acCurrentMultiplier"]);
1994
+ await reporting.readMeteringMultiplierDivisor(endpoint);
1995
+ },
1996
+ },
1997
+ {
1998
+ zigbeeModel: ["LK/OUTLET/1"],
1999
+ model: "545D6115",
2000
+ vendor: "Schneider Electric",
2001
+ description: "LK FUGA wiser wireless socket outlet",
2002
+ fromZigbee: [fz.on_off, fz.electrical_measurement, fz.EKO09738_metering, fz.power_on_behavior],
2003
+ toZigbee: [tz.on_off, tz.power_on_behavior],
2004
+ extend: [schneiderElectricExtend.addSchneiderFanSwitchConfigurationCluster(), socketIndicatorMode()],
2005
+ exposes: [
2006
+ e.switch(),
2007
+ e.power(),
2008
+ e.energy(),
2009
+ e.current(),
2010
+ e.voltage(),
2011
+ e.enum("power_on_behavior", ea.ALL, ["off", "previous", "on"]).withDescription("Controls the behaviour when the device is powered on"),
2012
+ ],
2013
+ configure: async (device, coordinatorEndpoint) => {
2014
+ const endpoint = device.getEndpoint(6);
2015
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "haElectricalMeasurement", "seMetering"]);
2016
+ await reporting.onOff(endpoint);
2017
+ // Unit supports acVoltage and acCurrent, but only acCurrent divisor/multiplier can be read
2018
+ await endpoint.read("haElectricalMeasurement", ["acCurrentDivisor", "acCurrentMultiplier"]);
2019
+ await reporting.readMeteringMultiplierDivisor(endpoint);
2020
+ await reporting.currentSummDelivered(endpoint, { min: 60, change: 1 });
2021
+ },
2022
+ },
2023
+ {
2024
+ zigbeeModel: ["EVSCKT/OUTLET/1"],
2025
+ model: "MUR36014",
2026
+ vendor: "Schneider Electric",
2027
+ description: "Mureva EVlink Smart socket outlet",
2028
+ extend: [
2029
+ schneiderElectricExtend.addSchneiderFanSwitchConfigurationCluster(),
2030
+ m.onOff(),
2031
+ m.electricityMeter({
2032
+ // Unit supports acVoltage and acCurrent, but only acCurrent divisor/multiplier can be read
2033
+ voltage: { multiplier: 1, divisor: 1 },
2034
+ // power is provided by 'seMetering' instead of "haElectricalMeasurement"
2035
+ power: { cluster: "metering" },
2036
+ }),
2037
+ evlinkIndicatorMode(),
2038
+ ],
2039
+ },
2040
+ {
2041
+ zigbeeModel: ["NHMOTION/SWITCH/1"],
2042
+ model: "NH3526",
2043
+ vendor: "Schneider Electric",
2044
+ description: "Motion sensor with switch",
2045
+ extend: [
2046
+ m.onOff({
2047
+ powerOnBehavior: false,
2048
+ configureReporting: true,
2049
+ }),
2050
+ m.illuminance(),
2051
+ m.occupancy({
2052
+ pirConfig: ["otu_delay"],
2053
+ }),
2054
+ schneiderElectricExtend.addOccupancyConfigurationCluster(),
2055
+ schneiderElectricExtend.occupancyConfiguration(),
2056
+ ],
2057
+ whiteLabel: [
2058
+ { vendor: "Elko", model: "EKO06988" },
2059
+ { vendor: "Elko", model: "EKO06989" },
2060
+ { vendor: "Elko", model: "EKO06990" },
2061
+ { vendor: "Elko", model: "EKO06991" },
2062
+ { vendor: "LK", model: "545D6306" },
2063
+ ],
2064
+ },
2065
+ {
2066
+ zigbeeModel: ["CCT595011_AS"],
2067
+ model: "CCT595011",
2068
+ vendor: "Schneider Electric",
2069
+ description: "Wiser motion sensor",
2070
+ fromZigbee: [fz.battery, fz.ias_enroll, fz.ias_occupancy_only_alarm_2],
2071
+ toZigbee: [],
2072
+ configure: async (device, coordinatorEndpoint) => {
2073
+ const endpoint = device.getEndpoint(1);
2074
+ const binds = ["genPowerCfg"];
2075
+ await reporting.bind(endpoint, coordinatorEndpoint, binds);
2076
+ await reporting.batteryPercentageRemaining(endpoint);
2077
+ },
2078
+ exposes: [e.battery(), e.occupancy()],
2079
+ extend: [m.illuminance()],
2080
+ },
2081
+ {
2082
+ zigbeeModel: ["CH/Socket/2"],
2083
+ model: "3025CSGZ",
2084
+ vendor: "Schneider Electric",
2085
+ description: "Dual connected smart socket",
2086
+ ota: true,
2087
+ extend: [m.deviceEndpoints({ endpoints: { l1: 1, l2: 2 } }), m.onOff({ endpointNames: ["l1", "l2"] })],
2088
+ },
2089
+ {
2090
+ zigbeeModel: ["CCT592011_AS"],
2091
+ model: "CCT592011",
2092
+ vendor: "Schneider Electric",
2093
+ description: "Wiser water leakage sensor",
2094
+ fromZigbee: [fz.ias_water_leak_alarm_1],
2095
+ toZigbee: [],
2096
+ exposes: [e.battery_low(), e.water_leak(), e.tamper()],
2097
+ },
2098
+ {
2099
+ fingerprint: [{ modelID: "GreenPower_254", ieeeAddr: /^0x00000000e.......$/ }],
2100
+ model: "A9MEM1570",
2101
+ vendor: "Schneider Electric",
2102
+ description: "PowerTag power sensor",
2103
+ fromZigbee: [fzLocal.schneider_powertag],
2104
+ toZigbee: [],
2105
+ exposes: [
2106
+ e.power(),
2107
+ e.power_apparent(),
2108
+ e.numeric("power_phase_a", ea.STATE).withUnit("W").withDescription("Instantaneous measured power on phase A"),
2109
+ e.numeric("power_phase_b", ea.STATE).withUnit("W").withDescription("Instantaneous measured power on phase B"),
2110
+ e.numeric("power_phase_c", ea.STATE).withUnit("W").withDescription("Instantaneous measured power on phase C"),
2111
+ e.power_factor(),
2112
+ e.energy(),
2113
+ e.numeric("energy_phase_a", ea.STATE).withUnit("kWh").withDescription("Sum of consumed energy on phase A"),
2114
+ e.numeric("energy_phase_b", ea.STATE).withUnit("kWh").withDescription("Sum of consumed energy on phase B"),
2115
+ e.numeric("energy_phase_c", ea.STATE).withUnit("kWh").withDescription("Sum of consumed energy on phase C"),
2116
+ e.ac_frequency(),
2117
+ e.numeric("voltage_phase_a", ea.STATE).withUnit("V").withDescription("Measured electrical potential value on phase A"),
2118
+ e.numeric("voltage_phase_b", ea.STATE).withUnit("V").withDescription("Measured electrical potential value on phase B"),
2119
+ e.numeric("voltage_phase_c", ea.STATE).withUnit("V").withDescription("Measured electrical potential value on phase C"),
2120
+ e.numeric("voltage_phase_ab", ea.STATE).withUnit("V").withDescription("Measured electrical potential value between phase A and B"),
2121
+ e.numeric("voltage_phase_bc", ea.STATE).withUnit("V").withDescription("Measured electrical potential value between phase B and C"),
2122
+ e.numeric("voltage_phase_ca", ea.STATE).withUnit("V").withDescription("Measured electrical potential value between phase C and A"),
2123
+ e.numeric("current_phase_a", ea.STATE).withUnit("A").withDescription("Instantaneous measured electrical current on phase A"),
2124
+ e.numeric("current_phase_b", ea.STATE).withUnit("A").withDescription("Instantaneous measured electrical current on phase B"),
2125
+ e.numeric("current_phase_c", ea.STATE).withUnit("A").withDescription("Instantaneous measured electrical current on phase C"),
2126
+ ],
2127
+ },
2128
+ {
2129
+ zigbeeModel: ["W599001", "W599501", "755WSA"],
2130
+ model: "W599001",
2131
+ vendor: "Schneider Electric",
2132
+ description: "Wiser smoke alarm",
2133
+ extend: [
2134
+ m.battery({ voltage: true, voltageReporting: true }),
2135
+ m.temperature(),
2136
+ m.iasZoneAlarm({
2137
+ zoneType: "smoke",
2138
+ zoneAttributes: ["alarm_1", "tamper", "battery_low", "test"],
2139
+ zoneStatusReporting: true,
2140
+ manufacturerZoneAttributes: [
2141
+ {
2142
+ bit: 1,
2143
+ name: "heat",
2144
+ valueOn: true,
2145
+ valueOff: false,
2146
+ description: "Indicates whether the device has detected high temperature",
2147
+ },
2148
+ {
2149
+ bit: 11,
2150
+ name: "hush",
2151
+ valueOn: true,
2152
+ valueOff: false,
2153
+ description: "Indicates whether the device is in hush mode",
2154
+ entityCategory: "diagnostic",
2155
+ },
2156
+ ],
2157
+ }),
2158
+ ],
2159
+ whiteLabel: [
2160
+ { vendor: "Schneider Electric", model: "W599501", description: "Wiser smoke alarm", fingerprint: [{ modelID: "W599501" }] },
2161
+ { vendor: "Schneider Electric", model: "755WSA", description: "Clipsal Wiser smoke alarm", fingerprint: [{ modelID: "755WSA" }] },
2162
+ ],
2163
+ },
2164
+ {
2165
+ zigbeeModel: ["CCT591011_AS"],
2166
+ model: "CCT591011_AS",
2167
+ vendor: "Schneider Electric",
2168
+ description: "Wiser window/door sensor",
2169
+ fromZigbee: [fz.ias_contact_alarm_1, fz.ias_contact_alarm_1_report],
2170
+ toZigbee: [],
2171
+ exposes: [e.battery_low(), e.contact(), e.tamper()],
2172
+ },
2173
+ {
2174
+ zigbeeModel: ["EKO07259"],
2175
+ model: "EKO07259",
2176
+ vendor: "Schneider Electric",
2177
+ description: "Smart thermostat",
2178
+ extend: [
2179
+ schneiderElectricExtend.thermostatWithPower({
2180
+ localTemperature: {
2181
+ values: {
2182
+ description: "The temperature measured by the selected sensor (see 'Local temperature source select', Ambient or External).",
2183
+ },
2184
+ },
2185
+ setpoints: { values: { occupiedHeatingSetpoint: { min: 4, max: 40, step: 0.5 } } },
2186
+ setpointsLimit: {
2187
+ maxHeatSetpointLimit: { min: 4, max: 40, step: 0.5 },
2188
+ minHeatSetpointLimit: { min: 4, max: 40, step: 0.5 },
2189
+ },
2190
+ systemMode: { values: ["off", "heat"] },
2191
+ piHeatingDemand: { values: true },
2192
+ ctrlSeqeOfOper: { values: ["cooling_only", "heating_only"] },
2193
+ }),
2194
+ m.electricityMeter({
2195
+ cluster: "metering",
2196
+ voltage: false,
2197
+ current: false,
2198
+ configureReporting: true,
2199
+ energy: { divisor: 1000, multiplier: 1 },
2200
+ }),
2201
+ schneiderElectricExtend.customMeteringCluster(),
2202
+ schneiderElectricExtend.fixedLoadDemand(),
2203
+ schneiderElectricExtend.addHvacUserInterfaceCfgCustomAttributes(),
2204
+ schneiderElectricExtend.displayBrightnessActive(),
2205
+ schneiderElectricExtend.displayBrightnessInactive(),
2206
+ schneiderElectricExtend.displayActiveTimeout(),
2207
+ schneiderElectricExtend.customThermostatCluster(),
2208
+ schneiderElectricExtend.localTemperatureSourceSelect(),
2209
+ schneiderElectricExtend.controlType(),
2210
+ schneiderElectricExtend.controlStatus(),
2211
+ schneiderElectricExtend.thermostatApplication(),
2212
+ schneiderElectricExtend.heatingEmitter(),
2213
+ schneiderElectricExtend.addHeatingCoolingOutputClusterServer(),
2214
+ m.enumLookup({
2215
+ name: "heating_output_mode",
2216
+ cluster: "heatingCoolingOutputClusterServer",
2217
+ attribute: "heatingOutputMode",
2218
+ description: "On devices with alternate heating output types, this selects which should be used to control the heating unit. This attribute is (mistakenly) also called pilot_mode on some devices.",
2219
+ entityCategory: "config",
2220
+ access: "ALL",
2221
+ lookup: { Disabled: 0, Relay: 1 },
2222
+ }),
2223
+ schneiderElectricExtend.customTemperatureMeasurementCluster(),
2224
+ m.deviceEndpoints({
2225
+ endpoints: { floor: 3 },
2226
+ }),
2227
+ m.numeric({
2228
+ name: "temperature_sensor_correction",
2229
+ cluster: "msTemperatureMeasurement",
2230
+ attribute: "sensorCorrection",
2231
+ description: "This is a user correction, possibly negative, to be added to the temperature measured by the sensor.",
2232
+ unit: "°C",
2233
+ scale: 100,
2234
+ valueMin: -9,
2235
+ valueMax: 9,
2236
+ valueStep: 0.01,
2237
+ endpointNames: ["floor"],
2238
+ access: "ALL",
2239
+ entityCategory: "config",
2240
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
2241
+ }),
2242
+ m.enumLookup({
2243
+ name: "temperature_sensor_type",
2244
+ cluster: "msTemperatureMeasurement",
2245
+ attribute: "temperatureSensorType",
2246
+ description: "This is used to specify the type of temperature sensor connected to this input",
2247
+ entityCategory: "config",
2248
+ access: "ALL",
2249
+ endpointName: "floor",
2250
+ lookup: {
2251
+ "2kΩ sensor from HRT/Alre": 1,
2252
+ "10kΩ sensor from B+J": 2,
2253
+ "12kΩ sensor from OJ": 3,
2254
+ "15kΩ sensor from DEVI": 4,
2255
+ "33kΩ sensor from EBERLE": 5,
2256
+ "47kΩ sensor from CTM": 6,
2257
+ "No sensor": 0xff,
2258
+ },
2259
+ zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
2260
+ }),
2261
+ m.enumLookup({
2262
+ name: "temperature_display_mode",
2263
+ lookup: { celsius: 0 },
2264
+ cluster: "hvacUserInterfaceCfg",
2265
+ attribute: "tempDisplayMode",
2266
+ description: "The unit of the temperature displayed on the device screen. Celsius is the only supported unit.",
2267
+ entityCategory: "config",
2268
+ }),
2269
+ m.binary({
2270
+ name: "child_lock",
2271
+ valueOn: ["LOCK", 1],
2272
+ valueOff: ["UNLOCK", 0],
2273
+ cluster: "hvacUserInterfaceCfg",
2274
+ attribute: "keypadLockout",
2275
+ description: "Enables/disables physical input on the device",
2276
+ access: "ALL",
2277
+ reporting: { min: 0, max: 3600, change: 0 },
2278
+ }),
2279
+ schneiderElectricExtend.addWiserDeviceInfoCluster(),
2280
+ ],
2281
+ },
2282
+ {
2283
+ zigbeeModel: ["WDE002497"],
2284
+ model: "WDE002497",
2285
+ vendor: "Schneider Electric",
2286
+ description: "Smart thermostat",
2287
+ fromZigbee: [fz.stelpro_thermostat, fz.metering, fzLocal.wiser_device_info, fz.hvac_user_interface, fz.temperature],
2288
+ toZigbee: [
2289
+ tz.thermostat_occupied_heating_setpoint,
2290
+ tz.thermostat_system_mode,
2291
+ tz.thermostat_running_state,
2292
+ tz.thermostat_local_temperature,
2293
+ tz.thermostat_control_sequence_of_operation,
2294
+ tz.schneider_thermostat_keypad_lockout,
2295
+ tz.thermostat_temperature_display_mode,
2296
+ ],
2297
+ extend: [
2298
+ schneiderElectricExtend.addWiserDeviceInfoCluster(),
2299
+ schneiderElectricExtend.addHeatingCoolingOutputClusterServer(),
2300
+ schneiderElectricExtend.pilotMode(),
2301
+ ],
2302
+ exposes: [
2303
+ e.binary("keypad_lockout", ea.STATE_SET, "lock1", "unlock").withDescription("Enables/disables physical input on the device"),
2304
+ e
2305
+ .enum("temperature_display_mode", ea.ALL, ["celsius", "fahrenheit"])
2306
+ .withDescription("The temperature format displayed on the thermostat screen"),
2307
+ e
2308
+ .climate()
2309
+ .withSetpoint("occupied_heating_setpoint", 4, 30, 0.5)
2310
+ .withLocalTemperature()
2311
+ .withSystemMode(["off", "heat"])
2312
+ .withRunningState(["idle", "heat"])
2313
+ .withPiHeatingDemand(),
2314
+ e.temperature(),
2315
+ ],
2316
+ configure: async (device, coordinatorEndpoint) => {
2317
+ const endpoint1 = device.getEndpoint(1);
2318
+ const endpoint2 = device.getEndpoint(2);
2319
+ await reporting.bind(endpoint1, coordinatorEndpoint, ["hvacThermostat"]);
2320
+ await reporting.thermostatPIHeatingDemand(endpoint1);
2321
+ await reporting.thermostatOccupiedHeatingSetpoint(endpoint1);
2322
+ await reporting.bind(endpoint2, coordinatorEndpoint, ["msTemperatureMeasurement"]);
2323
+ await reporting.temperature(endpoint2);
2324
+ await endpoint1.read("hvacUserInterfaceCfg", ["keypadLockout", "tempDisplayMode"]);
2325
+ },
2326
+ },
2327
+ {
2328
+ zigbeeModel: ["WDE011680"],
2329
+ model: "WDE011680",
2330
+ vendor: "Schneider Electric",
2331
+ description: "Smart thermostat",
2332
+ fromZigbee: [fz.stelpro_thermostat, fz.metering, fzLocal.wiser_device_info, fz.hvac_user_interface, fz.temperature],
2333
+ toZigbee: [
2334
+ tz.thermostat_occupied_heating_setpoint,
2335
+ tz.thermostat_system_mode,
2336
+ tz.thermostat_running_state,
2337
+ tz.thermostat_local_temperature,
2338
+ tz.thermostat_control_sequence_of_operation,
2339
+ tz.schneider_thermostat_keypad_lockout,
2340
+ tz.thermostat_temperature_display_mode,
2341
+ ],
2342
+ extend: [
2343
+ schneiderElectricExtend.addWiserDeviceInfoCluster(),
2344
+ schneiderElectricExtend.addHeatingCoolingOutputClusterServer(),
2345
+ schneiderElectricExtend.pilotMode(),
2346
+ ],
2347
+ exposes: [
2348
+ e.binary("keypad_lockout", ea.STATE_SET, "lock1", "unlock").withDescription("Enables/disables physical input on the device"),
2349
+ e
2350
+ .enum("temperature_display_mode", ea.ALL, ["celsius", "fahrenheit"])
2351
+ .withDescription("The temperature format displayed on the thermostat screen"),
2352
+ e
2353
+ .climate()
2354
+ .withSetpoint("occupied_heating_setpoint", 4, 30, 0.5)
2355
+ .withLocalTemperature()
2356
+ .withSystemMode(["off", "heat"])
2357
+ .withRunningState(["idle", "heat"])
2358
+ .withPiHeatingDemand(),
2359
+ e.temperature(),
2360
+ ],
2361
+ configure: async (device, coordinatorEndpoint) => {
2362
+ const endpoint1 = device.getEndpoint(1);
2363
+ const endpoint2 = device.getEndpoint(2);
2364
+ await reporting.bind(endpoint1, coordinatorEndpoint, ["hvacThermostat"]);
2365
+ await reporting.thermostatPIHeatingDemand(endpoint1);
2366
+ await reporting.thermostatOccupiedHeatingSetpoint(endpoint1);
2367
+ await reporting.bind(endpoint2, coordinatorEndpoint, ["msTemperatureMeasurement"]);
2368
+ await reporting.temperature(endpoint2);
2369
+ await endpoint1.read("hvacUserInterfaceCfg", ["keypadLockout", "tempDisplayMode"]);
2370
+ },
2371
+ },
2372
+ {
2373
+ zigbeeModel: ["2GANG/ESWITCH/2"],
2374
+ model: "MEG5126-0300_MEG5152-0000",
2375
+ vendor: "Schneider Electric",
2376
+ description: "Merten MEG5152 switch insert (2fold) with Merten System M push button (2fold)",
2377
+ extend: [
2378
+ m.deviceEndpoints({ endpoints: { left: 1, right: 2, left_sw: 21, right_sw: 22 } }),
2379
+ m.identify(),
2380
+ m.onOff({ powerOnBehavior: false, endpointNames: ["left", "right"] }),
2381
+ m.commandsOnOff({ endpointNames: ["left_sw", "right_sw"] }),
2382
+ ],
2383
+ },
2384
+ {
2385
+ zigbeeModel: ["1GANG/SWITCH/2"],
2386
+ model: "MEG5116-0300_MEG5162-0000",
2387
+ vendor: "Schneider Electric",
2388
+ description: "Merten MEG5162 switch insert (2fold) with Merten System M push button (1fold)",
2389
+ extend: [
2390
+ m.deviceEndpoints({ endpoints: { left: 1, right: 2, left_sw: 21 } }),
2391
+ m.identify(),
2392
+ m.onOff({ powerOnBehavior: false, endpointNames: ["left", "right"] }),
2393
+ m.commandsOnOff({ endpointNames: ["left_sw"] }),
2394
+ ],
2395
+ },
2396
+ {
2397
+ zigbeeModel: ["1GANG/ESWITCH/1"],
2398
+ model: "MEG5116-0300_MEG5151-0000",
2399
+ vendor: "Schneider Electric",
2400
+ description: "Merten MEG5151 switch insert with Merten System M push button (1fold)",
2401
+ extend: [
2402
+ m.deviceEndpoints({ endpoints: { switch: 1, switch_sw: 21 } }),
2403
+ m.identify(),
2404
+ m.onOff({ powerOnBehavior: false }),
2405
+ m.commandsOnOff({ endpointNames: ["switch_sw"] }),
2406
+ ],
2407
+ },
2408
+ {
2409
+ zigbeeModel: ["MEG5779"],
2410
+ model: "MEG5779",
2411
+ vendor: "Schneider Electric",
2412
+ description: "Merten Connected Room Temperature Controller",
2413
+ fromZigbee: [
2414
+ {
2415
+ cluster: "hvacThermostat",
2416
+ type: ["attributeReport", "readResponse"],
2417
+ convert: (model, msg, publish, options, meta) => {
2418
+ if (msg.data.pIHeatingDemand !== undefined) {
2419
+ return { running_state: msg.data.pIHeatingDemand > 0 ? "heat" : "idle" };
2420
+ }
2421
+ if (msg.data.pICoolingDemand !== undefined) {
2422
+ return { running_state: msg.data.pICoolingDemand > 0 ? "cool" : "idle" };
2423
+ }
2424
+ },
2425
+ },
2426
+ ],
2427
+ extend: [
2428
+ m.thermostat({
2429
+ setpoints: {
2430
+ values: {
2431
+ occupiedHeatingSetpoint: { min: 4, max: 30, step: 0.5 },
2432
+ unoccupiedHeatingSetpoint: { min: 4, max: 30, step: 0.5 },
2433
+ occupiedCoolingSetpoint: { min: 4, max: 30, step: 0.5 },
2434
+ unoccupiedCoolingSetpoint: { min: 4, max: 30, step: 0.5 },
2435
+ },
2436
+ },
2437
+ setpointsLimit: {
2438
+ maxHeatSetpointLimit: { min: 4, max: 30, step: 0.5 },
2439
+ minHeatSetpointLimit: { min: 4, max: 30, step: 0.5 },
2440
+ maxCoolSetpointLimit: { min: 4, max: 30, step: 0.5 },
2441
+ minCoolSetpointLimit: { min: 4, max: 30, step: 0.5 },
2442
+ },
2443
+ systemMode: {
2444
+ values: ["off", "heat", "cool"],
2445
+ },
2446
+ runningState: {
2447
+ values: ["idle", "heat", "cool"],
2448
+ configure: { reporting: false },
2449
+ },
2450
+ piHeatingDemand: {
2451
+ values: ea.ALL,
2452
+ },
2453
+ }),
2454
+ schneiderElectricExtend.addHvacUserInterfaceCfgCustomAttributes(),
2455
+ schneiderElectricExtend.displayBrightnessActive(),
2456
+ schneiderElectricExtend.displayBrightnessInactive(),
2457
+ schneiderElectricExtend.displayActiveTimeout(),
2458
+ m.enumLookup({
2459
+ name: "temperature_display_mode",
2460
+ lookup: { celsius: 0, fahrenheit: 1 },
2461
+ cluster: "hvacUserInterfaceCfg",
2462
+ attribute: "tempDisplayMode",
2463
+ description: "The unit of the temperature displayed on the device screen.",
2464
+ }),
2465
+ m.enumLookup({
2466
+ name: "keypadLockout",
2467
+ lookup: { unlock: 0, lock1: 1 },
2468
+ cluster: "hvacUserInterfaceCfg",
2469
+ attribute: "keypadLockout",
2470
+ description: "Enables/disables physical input on the device.",
2471
+ }),
2472
+ schneiderElectricExtend.customThermostatCluster(),
2473
+ schneiderElectricExtend.thermostatApplication(),
2474
+ schneiderElectricExtend.heatingFuel(),
2475
+ schneiderElectricExtend.heatTransferMedium(),
2476
+ schneiderElectricExtend.heatingEmitter(),
2477
+ ],
2478
+ },
2479
+ {
2480
+ zigbeeModel: ["E8331DST300ZB"],
2481
+ model: "E8331DST300ZB",
2482
+ vendor: "Schneider Electric",
2483
+ description: "Wiser AvatarOn 1G dimmer switch",
2484
+ extend: [
2485
+ m.light({ effect: false, color: false, powerOnBehavior: false, configureReporting: true }),
2486
+ schneiderElectricExtend.addVisaConfigurationCluster(zigbee_herdsman_1.Zcl.DataType.UINT8),
2487
+ schneiderElectricExtend.visaConfigIndicatorLuminanceLevel(),
2488
+ schneiderElectricExtend.visaConfigIndicatorColor(),
2489
+ schneiderElectricExtend.visaIndicatorMode([0, 1, 2, 3]),
2490
+ ],
2491
+ },
2492
+ {
2493
+ zigbeeModel: ["E8332DST350ZB"],
2494
+ model: "E8332DST350ZB",
2495
+ vendor: "Schneider Electric",
2496
+ description: "Wiser AvatarOn 2G dimmer switch",
2497
+ extend: [
2498
+ m.deviceEndpoints({ endpoints: { l1: 10, l2: 11 } }),
2499
+ m.light({
2500
+ endpointNames: ["l1", "l2"],
2501
+ effect: false,
2502
+ color: false,
2503
+ powerOnBehavior: false,
2504
+ configureReporting: true,
2505
+ }),
2506
+ schneiderElectricExtend.addVisaConfigurationCluster(zigbee_herdsman_1.Zcl.DataType.ENUM8),
2507
+ schneiderElectricExtend.visaConfigIndicatorLuminanceLevel(),
2508
+ schneiderElectricExtend.visaConfigIndicatorColor(),
2509
+ schneiderElectricExtend.visaIndicatorMode([2, 0, 3, 1]),
2510
+ ],
2511
+ },
2512
+ {
2513
+ zigbeeModel: ["E8331SRY800ZB"],
2514
+ model: "E8331SRY800ZB",
2515
+ vendor: "Schneider Electric",
2516
+ description: "Wiser AvatarOn 1G onoff switch",
2517
+ extend: [
2518
+ m.deviceEndpoints({ endpoints: { l1: 10 } }),
2519
+ m.onOff({ endpointNames: ["l1"], powerOnBehavior: false }),
2520
+ schneiderElectricExtend.addVisaConfigurationCluster(zigbee_herdsman_1.Zcl.DataType.UINT8),
2521
+ schneiderElectricExtend.visaConfigIndicatorLuminanceLevel(),
2522
+ schneiderElectricExtend.visaConfigIndicatorColor(),
2523
+ schneiderElectricExtend.visaIndicatorMode([0, 1, 2, 3]),
2524
+ ],
2525
+ },
2526
+ {
2527
+ zigbeeModel: ["A3N31SR800ZB_xx_C1"],
2528
+ model: "E8331SRY800ZB_NEW",
2529
+ vendor: "Schneider Electric",
2530
+ description: "Wiser AvatarOn 1G onoff switch",
2531
+ extend: [
2532
+ m.deviceEndpoints({ endpoints: { l1: 10 } }),
2533
+ m.onOff({ endpointNames: ["l1"], powerOnBehavior: false }),
2534
+ schneiderElectricExtend.addVisaConfigurationCluster(zigbee_herdsman_1.Zcl.DataType.UINT8),
2535
+ schneiderElectricExtend.visaIndicatorMode([0, 1, 2, 3]),
2536
+ ],
2537
+ },
2538
+ {
2539
+ zigbeeModel: ["E8332SRY800ZB"],
2540
+ model: "E8332SRY800ZB",
2541
+ vendor: "Schneider Electric",
2542
+ description: "Wiser AvatarOn 2G onoff switch",
2543
+ extend: [
2544
+ m.deviceEndpoints({ endpoints: { l1: 10, l2: 11 } }),
2545
+ m.onOff({ endpointNames: ["l1", "l2"], powerOnBehavior: false }),
2546
+ schneiderElectricExtend.addVisaConfigurationCluster(zigbee_herdsman_1.Zcl.DataType.UINT8),
2547
+ schneiderElectricExtend.visaConfigIndicatorLuminanceLevel(),
2548
+ schneiderElectricExtend.visaConfigIndicatorColor(),
2549
+ schneiderElectricExtend.visaIndicatorMode([0, 1, 2, 3]),
2550
+ ],
2551
+ },
2552
+ {
2553
+ zigbeeModel: ["A3N32SR800ZB_xx_C1"],
2554
+ model: "E8332SRY800ZB_NEW",
2555
+ vendor: "Schneider Electric",
2556
+ description: "Wiser AvatarOn 2G onoff switch",
2557
+ extend: [
2558
+ m.deviceEndpoints({ endpoints: { l1: 10, l2: 11 } }),
2559
+ m.onOff({ endpointNames: ["l1", "l2"], powerOnBehavior: false }),
2560
+ schneiderElectricExtend.addVisaConfigurationCluster(zigbee_herdsman_1.Zcl.DataType.UINT8),
2561
+ schneiderElectricExtend.visaIndicatorMode([0, 1, 2, 3]),
2562
+ ],
2563
+ },
2564
+ {
2565
+ zigbeeModel: ["E8333SRY800ZB"],
2566
+ model: "E8333SRY800ZB",
2567
+ vendor: "Schneider Electric",
2568
+ description: "Wiser AvatarOn 3G onoff switch",
2569
+ extend: [
2570
+ m.deviceEndpoints({ endpoints: { l1: 10, l2: 11, l3: 12 } }),
2571
+ m.onOff({ endpointNames: ["l1", "l2", "l3"], powerOnBehavior: false }),
2572
+ schneiderElectricExtend.addVisaConfigurationCluster(zigbee_herdsman_1.Zcl.DataType.UINT8),
2573
+ schneiderElectricExtend.visaConfigIndicatorLuminanceLevel(),
2574
+ schneiderElectricExtend.visaConfigIndicatorColor(),
2575
+ schneiderElectricExtend.visaIndicatorMode([0, 1, 2, 3]),
2576
+ ],
2577
+ },
2578
+ {
2579
+ zigbeeModel: ["A3N33SR800ZB_xx_C1"],
2580
+ model: "E8333SRY800ZB_NEW",
2581
+ vendor: "Schneider Electric",
2582
+ description: "Wiser AvatarOn 3G onoff switch",
2583
+ extend: [
2584
+ m.deviceEndpoints({ endpoints: { l1: 10, l2: 11, l3: 12 } }),
2585
+ m.onOff({ endpointNames: ["l1", "l2", "l3"], powerOnBehavior: false }),
2586
+ schneiderElectricExtend.addVisaConfigurationCluster(zigbee_herdsman_1.Zcl.DataType.UINT8),
2587
+ schneiderElectricExtend.visaIndicatorMode([0, 1, 2, 3]),
2588
+ ],
2589
+ },
2590
+ {
2591
+ zigbeeModel: ["E8332SCN300ZB"],
2592
+ model: "E8332SCN300ZB",
2593
+ vendor: "Schneider Electric",
2594
+ description: "Wiser AvatarOn 2G curtain switch",
2595
+ extend: [
2596
+ m.deviceEndpoints({ endpoints: { l1: 10, l2: 11 } }),
2597
+ schneiderElectricExtend.addVisaConfigurationCluster(zigbee_herdsman_1.Zcl.DataType.UINT8),
2598
+ schneiderElectricExtend.visaConfigIndicatorLuminanceLevel(),
2599
+ schneiderElectricExtend.visaConfigIndicatorColor(),
2600
+ schneiderElectricExtend.visaIndicatorMode([0, 1, 2, 3]),
2601
+ schneiderElectricExtend.visaWiserCurtain(["l1", "l2"]),
2602
+ schneiderElectricExtend.visaConfigMotorType(1),
2603
+ schneiderElectricExtend.visaConfigMotorType(2),
2604
+ schneiderElectricExtend.visaConfigCurtainStatus(1),
2605
+ schneiderElectricExtend.visaConfigCurtainStatus(2),
2606
+ ],
2607
+ },
2608
+ {
2609
+ zigbeeModel: ["E8334RWMZB"],
2610
+ model: "E8334RWMZB",
2611
+ vendor: "Schneider Electric",
2612
+ description: "Wiser AvatarOn 4K Freelocate",
2613
+ extend: [
2614
+ schneiderElectricExtend.addVisaConfigurationCluster(zigbee_herdsman_1.Zcl.DataType.UINT8),
2615
+ schneiderElectricExtend.visaConfigIndicatorLuminanceLevel(),
2616
+ schneiderElectricExtend.visaConfigIndicatorColor(),
2617
+ schneiderElectricExtend.visaKeyEventNotification("1"),
2618
+ schneiderElectricExtend.visaKeyEventNotification("2"),
2619
+ schneiderElectricExtend.visaKeyEventNotification("3"),
2620
+ schneiderElectricExtend.visaKeyEventNotification("4"),
2621
+ ],
2622
+ exposes: [e.action(["key1", "key2", "key3", "key4"]).withDescription("Last Visa key pressed")],
2623
+ },
2624
+ {
2625
+ zigbeeModel: ["NHMOTION/DIMMER/1"],
2626
+ model: "NH3527A",
2627
+ vendor: "Schneider Electric",
2628
+ description: "Motion sensor with dimmer",
2629
+ extend: [
2630
+ m.light({
2631
+ effect: false,
2632
+ powerOnBehavior: false,
2633
+ color: false,
2634
+ configureReporting: true,
2635
+ levelConfig: { features: ["on_level", "current_level_startup"] },
2636
+ }),
2637
+ m.lightingBallast(),
2638
+ m.illuminance(),
2639
+ m.occupancy({
2640
+ pirConfig: ["otu_delay"],
2641
+ }),
2642
+ schneiderElectricExtend.addOccupancyConfigurationCluster(),
2643
+ schneiderElectricExtend.occupancyConfiguration(),
2644
+ schneiderElectricExtend.dimmingMode(),
2645
+ ],
2646
+ whiteLabel: [
2647
+ { vendor: "Elko", model: "EKO07250" },
2648
+ { vendor: "Elko", model: "EKO07251" },
2649
+ { vendor: "Elko", model: "EKO07252" },
2650
+ { vendor: "Elko", model: "EKO07253" },
2651
+ { vendor: "Elko", model: "EKO30199" },
2652
+ { vendor: "Exxact", model: "WDE002962" },
2653
+ { vendor: "Exxact", model: "WDE003962" },
2654
+ ],
2655
+ },
2656
+ {
2657
+ zigbeeModel: ["NHMOTION/UNIDIM/1"],
2658
+ model: "NHMOTION/UNIDIM/1",
2659
+ vendor: "Schneider Electric",
2660
+ description: "Motion sensor with dimmer",
2661
+ extend: [
2662
+ m.light({
2663
+ effect: false,
2664
+ powerOnBehavior: false,
2665
+ color: false,
2666
+ configureReporting: true,
2667
+ levelConfig: {
2668
+ features: ["on_level", "current_level_startup"],
2669
+ },
2670
+ }),
2671
+ m.lightingBallast(),
2672
+ m.illuminance(),
2673
+ m.occupancy({
2674
+ pirConfig: ["otu_delay"],
2675
+ }),
2676
+ schneiderElectricExtend.addOccupancyConfigurationCluster(),
2677
+ schneiderElectricExtend.occupancyConfiguration(),
2678
+ schneiderElectricExtend.dimmingMode(),
2679
+ ],
2680
+ whiteLabel: [
2681
+ { vendor: "ELKO", model: "EKO06984", description: "SmartPir with push dimmer" },
2682
+ { vendor: "ELKO", model: "EKO06985", description: "SmartPir with push dimmer" },
2683
+ { vendor: "ELKO", model: "EKO06986", description: "SmartPir with push dimmer" },
2684
+ ],
2685
+ },
2686
+ {
2687
+ zigbeeModel: ["S520619"],
2688
+ model: "S520619",
2689
+ vendor: "Schneider Electric",
2690
+ description: "Wiser Odace Smart thermostat",
2691
+ fromZigbee: [fz.stelpro_thermostat, fz.metering, fzLocal.wiser_device_info, fz.hvac_user_interface, fz.temperature, fz.occupancy],
2692
+ toZigbee: [
2693
+ tz.thermostat_occupied_heating_setpoint,
2694
+ tz.thermostat_occupied_cooling_setpoint,
2695
+ tz.thermostat_system_mode,
2696
+ tz.thermostat_local_temperature,
2697
+ tz.thermostat_control_sequence_of_operation,
2698
+ tz.schneider_thermostat_keypad_lockout,
2699
+ tz.thermostat_temperature_display_mode,
2700
+ tz.thermostat_running_state,
2701
+ ],
2702
+ exposes: [
2703
+ e.binary("keypad_lockout", ea.STATE_SET, "lock1", "unlock").withDescription("Enables/disables physical input on the device"),
2704
+ e
2705
+ .enum("temperature_display_mode", ea.ALL, ["celsius", "fahrenheit"])
2706
+ .withDescription("The temperature format displayed on the thermostat screen"),
2707
+ e
2708
+ .climate()
2709
+ .withSetpoint("occupied_heating_setpoint", 4, 30, 0.5)
2710
+ .withSetpoint("occupied_cooling_setpoint", 4, 30, 0.5)
2711
+ .withLocalTemperature()
2712
+ .withSystemMode(["off", "heat", "cool"])
2713
+ .withRunningState(["idle", "heat", "cool"])
2714
+ .withPiHeatingDemand()
2715
+ .withPiCoolingDemand(),
2716
+ e.temperature(),
2717
+ e.occupancy(),
2718
+ ],
2719
+ configure: async (device, coordinatorEndpoint) => {
2720
+ const endpoint1 = device.getEndpoint(1);
2721
+ const endpoint2 = device.getEndpoint(2);
2722
+ const endpoint4 = device.getEndpoint(4);
2723
+ await reporting.bind(endpoint1, coordinatorEndpoint, ["hvacThermostat"]);
2724
+ await reporting.thermostatPIHeatingDemand(endpoint1);
2725
+ await reporting.thermostatPICoolingDemand(endpoint1);
2726
+ await reporting.thermostatOccupiedHeatingSetpoint(endpoint1);
2727
+ await reporting.thermostatOccupiedCoolingSetpoint(endpoint1);
2728
+ await reporting.temperature(endpoint2);
2729
+ await endpoint1.read("hvacUserInterfaceCfg", ["keypadLockout", "tempDisplayMode"]);
2730
+ await reporting.bind(endpoint4, coordinatorEndpoint, ["msOccupancySensing"]);
2731
+ await utils.ignoreUnsupportedAttribute(async () => await reporting.thermostatOccupancy(endpoint4), "thermostatOccupancy");
2732
+ },
2733
+ extend: [
2734
+ schneiderElectricExtend.addWiserDeviceInfoCluster(),
2735
+ schneiderElectricExtend.addHeatingCoolingOutputClusterServer(),
2736
+ schneiderElectricExtend.pilotMode(),
2737
+ m.poll({
2738
+ key: "measurement",
2739
+ option: exposes.options.measurement_poll_interval().withDescription("Polling interval of the occupied heating/cooling setpoint"),
2740
+ defaultIntervalSeconds: 20,
2741
+ poll: async (device) => {
2742
+ const endpoint = device.getEndpoint(1);
2743
+ await endpoint.read("hvacThermostat", ["occupiedHeatingSetpoint", "occupiedCoolingSetpoint"]);
2744
+ },
2745
+ }),
2746
+ ],
2747
+ },
2748
+ {
2749
+ zigbeeModel: ["E8332RWMZB"],
2750
+ model: "E8332RWMZB",
2751
+ vendor: "Schneider Electric",
2752
+ description: "Wiser AvatarOn 2K Freelocate",
2753
+ extend: [
2754
+ schneiderElectricExtend.addVisaConfigurationCluster(zigbee_herdsman_1.Zcl.DataType.UINT8),
2755
+ schneiderElectricExtend.visaConfigIndicatorLuminanceLevel(),
2756
+ schneiderElectricExtend.visaConfigIndicatorColor(),
2757
+ schneiderElectricExtend.visaKeyEventNotification("1"),
2758
+ schneiderElectricExtend.visaKeyEventNotification("2"),
2759
+ ],
2760
+ exposes: [e.action(["key1", "key2"]).withDescription("Last Visa key pressed")],
2761
+ },
2762
+ {
2763
+ zigbeeModel: ["E8331SCN200ZB"],
2764
+ model: "E8331SCN200ZB",
2765
+ vendor: "Schneider Electric",
2766
+ description: "Wiser AvatarOn 1G curtain switch",
2767
+ extend: [
2768
+ m.deviceEndpoints({ endpoints: { l1: 10 } }),
2769
+ schneiderElectricExtend.addVisaConfigurationCluster(zigbee_herdsman_1.Zcl.DataType.UINT8),
2770
+ schneiderElectricExtend.visaConfigIndicatorLuminanceLevel(),
2771
+ schneiderElectricExtend.visaConfigIndicatorColor(),
2772
+ schneiderElectricExtend.visaIndicatorMode([0, 1, 2, 3]),
2773
+ schneiderElectricExtend.visaWiserCurtain(["l1"]),
2774
+ schneiderElectricExtend.visaConfigMotorType(1),
2775
+ schneiderElectricExtend.visaConfigCurtainStatus(1),
2776
+ ],
2777
+ },
2778
+ {
2779
+ fingerprint: [{ modelID: "GreenPower_254", ieeeAddr: /^0x00000000e205567e$/ }],
2780
+ model: "EKO01825",
2781
+ vendor: "Elko",
2782
+ description: "PowerTag power sensor",
2783
+ whiteLabel: [{ vendor: "Schneider Electric", model: "A9MEM1570" }],
2784
+ fromZigbee: [fzLocal.schneider_powertag],
2785
+ toZigbee: [],
2786
+ exposes: [
2787
+ e.power(),
2788
+ e.power_apparent(),
2789
+ e.power_factor(),
2790
+ e.energy(),
2791
+ e.ac_frequency(),
2792
+ e.numeric("voltage_phase_l1_l2", ea.STATE).withUnit("V").withDescription("Measured electrical potential value between phase L1 and L2"),
2793
+ e.numeric("voltage_phase_l2_l3", ea.STATE).withUnit("V").withDescription("Measured electrical potential value between phase L2 and L3"),
2794
+ e.numeric("voltage_phase_l1_l3", ea.STATE).withUnit("V").withDescription("Measured electrical potential value between phase L1 and L3"),
2795
+ e.numeric("current_phase_l1", ea.STATE).withUnit("A").withDescription("Instantaneous measured electrical current on phase L1"),
2796
+ e.numeric("current_phase_l2", ea.STATE).withUnit("A").withDescription("Instantaneous measured electrical current on phase L2"),
2797
+ e.numeric("current_phase_l3", ea.STATE).withUnit("A").withDescription("Instantaneous measured electrical current on phase L3"),
2798
+ ],
2799
+ },
2800
+ ];
2801
+ //# sourceMappingURL=schneider_electric.js.map