@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,1921 @@
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 logger_1 = require("../lib/logger");
43
+ const m = __importStar(require("../lib/modernExtend"));
44
+ const reporting = __importStar(require("../lib/reporting"));
45
+ const tuya = __importStar(require("../lib/tuya"));
46
+ const utils = __importStar(require("../lib/utils"));
47
+ const e = exposes.presets;
48
+ const ea = exposes.access;
49
+ const NS = "zhc:sber";
50
+ const { tuyaMagicPacket, tuyaOnOffActionLegacy } = tuya.modernExtend;
51
+ const manufacturerOptions = { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD };
52
+ const defaultResponseOptions = { disableDefaultResponse: false };
53
+ const sdevices = {
54
+ fz: {
55
+ emergency_shutoff_state: {
56
+ cluster: "manuSpecificSDevices",
57
+ type: ["attributeReport", "readResponse"],
58
+ convert: (model, msg, publish, options, meta) => {
59
+ if (msg.data.emergencyShutoffState !== undefined) {
60
+ const stateBitmap = msg.data.emergencyShutoffState;
61
+ const emergencyOvervoltage = stateBitmap & 0x01;
62
+ const emergencyUndervoltage = (stateBitmap & 0x02) >> 1;
63
+ const emergencyOvercurrent = (stateBitmap & 0x04) >> 2;
64
+ const emergencyOverheat = (stateBitmap & 0x08) >> 3;
65
+ return {
66
+ emergency_overvoltage: !!emergencyOvervoltage,
67
+ emergency_undervoltage: !!emergencyUndervoltage,
68
+ emergency_overcurrent: !!emergencyOvercurrent,
69
+ emergency_overheat: !!emergencyOverheat,
70
+ };
71
+ }
72
+ },
73
+ },
74
+ emergency_shutoff_state_v2: {
75
+ cluster: "manuSpecificSDevices",
76
+ type: ["attributeReport", "readResponse"],
77
+ convert: (model, msg, publish, options, meta) => {
78
+ if (msg.data.emergencyShutoffState !== undefined) {
79
+ const stateBitmap = msg.data.emergencyShutoffState;
80
+ const emergencyOvercurrent = (stateBitmap & 0x04) >> 2;
81
+ const emergencyOverheat = (stateBitmap & 0x08) >> 3;
82
+ const emergencyNoLoad = (stateBitmap & 0x10) >> 4;
83
+ return {
84
+ emergency_overcurrent: !!emergencyOvercurrent,
85
+ emergency_overheat: !!emergencyOverheat,
86
+ emergency_no_load: !!emergencyNoLoad,
87
+ };
88
+ }
89
+ },
90
+ },
91
+ led_indicator_settings: {
92
+ cluster: "manuSpecificSDevices",
93
+ type: ["attributeReport", "readResponse"],
94
+ convert: (model, msg, publish, options, meta) => {
95
+ const result = {};
96
+ if (msg.data.ledIndicatorOnEnable !== undefined) {
97
+ result[utils.postfixWithEndpointName("led_indicator_on_enable", msg, model, meta)] = msg.data.ledIndicatorOnEnable ? "ON" : "OFF";
98
+ }
99
+ if (msg.data.ledIndicatorOnH !== undefined) {
100
+ result[utils.postfixWithEndpointName("led_indicator_on_h", msg, model, meta)] = msg.data.ledIndicatorOnH;
101
+ }
102
+ if (msg.data.ledIndicatorOnS !== undefined) {
103
+ result[utils.postfixWithEndpointName("led_indicator_on_s", msg, model, meta)] = msg.data.ledIndicatorOnS;
104
+ }
105
+ if (msg.data.ledIndicatorOnB !== undefined) {
106
+ result[utils.postfixWithEndpointName("led_indicator_on_b", msg, model, meta)] = msg.data.ledIndicatorOnB;
107
+ }
108
+ if (msg.data.ledIndicatorOffEnable !== undefined) {
109
+ result[utils.postfixWithEndpointName("led_indicator_off_enable", msg, model, meta)] = msg.data.ledIndicatorOffEnable
110
+ ? "ON"
111
+ : "OFF";
112
+ }
113
+ if (msg.data.ledIndicatorOffH !== undefined) {
114
+ result[utils.postfixWithEndpointName("led_indicator_off_h", msg, model, meta)] = msg.data.ledIndicatorOffH;
115
+ }
116
+ if (msg.data.ledIndicatorOffS !== undefined) {
117
+ result[utils.postfixWithEndpointName("led_indicator_off_s", msg, model, meta)] = msg.data.ledIndicatorOffS;
118
+ }
119
+ if (msg.data.ledIndicatorOffB !== undefined) {
120
+ result[utils.postfixWithEndpointName("led_indicator_off_b", msg, model, meta)] = msg.data.ledIndicatorOffB;
121
+ }
122
+ return result;
123
+ },
124
+ },
125
+ multistate_input: {
126
+ cluster: "genMultistateInput",
127
+ type: ["attributeReport"],
128
+ convert: (model, msg, publish, options, meta) => {
129
+ const actionLookup = { 0: "hold", 1: "single", 2: "double" };
130
+ const value = msg.data.presentValue;
131
+ const action = actionLookup[value];
132
+ return { action: utils.postfixWithEndpointName(action, msg, model, meta) };
133
+ },
134
+ },
135
+ decouple_relay: {
136
+ cluster: "genOnOff",
137
+ type: ["attributeReport", "readResponse"],
138
+ convert: (model, msg, publish, options, meta) => {
139
+ const state = {};
140
+ if (msg.data.sdevicesRelayDecouple !== undefined) {
141
+ const relayDecoupleLookup = { 0: "control_relay", 1: "decoupled" };
142
+ state[utils.postfixWithEndpointName("relay_mode", msg, model, meta)] = utils.getFromLookup(msg.data.sdevicesRelayDecouple, relayDecoupleLookup);
143
+ }
144
+ return state;
145
+ },
146
+ },
147
+ allow_double_click: {
148
+ cluster: "manuSpecificSDevices",
149
+ type: ["attributeReport", "readResponse"],
150
+ convert: (model, msg, publish, options, meta) => {
151
+ const result = {};
152
+ if (msg.data.buttonEnableMultiClick !== undefined) {
153
+ result[utils.postfixWithEndpointName("allow_double_click", msg, model, meta)] = msg.data.buttonEnableMultiClick ? "ON" : "OFF";
154
+ }
155
+ return result;
156
+ },
157
+ },
158
+ cover_position_tilt: {
159
+ cluster: "closuresWindowCovering",
160
+ type: ["attributeReport", "readResponse"],
161
+ options: [exposes.options.invert_cover()],
162
+ convert: (model, msg, publish, options, meta) => {
163
+ const result = {};
164
+ // Zigbee officially expects 'open' to be 0 and 'closed' to be 100 whereas
165
+ // HomeAssistant etc. work the other way round.
166
+ // For zigbee-herdsman-converters: open = 100, close = 0
167
+ const metaInvert = model.meta?.coverInverted;
168
+ const invert = metaInvert ? !options.invert_cover : options.invert_cover;
169
+ if (msg.data.currentPositionLiftPercentage !== undefined && msg.data.currentPositionLiftPercentage <= 100) {
170
+ const value = msg.data.currentPositionLiftPercentage;
171
+ result[utils.postfixWithEndpointName("position", msg, model, meta)] = invert ? value : 100 - value;
172
+ result[utils.postfixWithEndpointName("current_state", msg, model, meta)] = metaInvert
173
+ ? value === 0
174
+ ? "CLOSE"
175
+ : "OPEN"
176
+ : value === 100
177
+ ? "CLOSE"
178
+ : "OPEN";
179
+ }
180
+ if (msg.data.windowCoveringMode !== undefined) {
181
+ result[utils.postfixWithEndpointName("cover_mode", msg, model, meta)] = {
182
+ reversed_cover: (msg.data.windowCoveringMode & (1 << 0)) > 0,
183
+ };
184
+ }
185
+ return result;
186
+ },
187
+ },
188
+ closures: {
189
+ cluster: "closuresWindowCovering",
190
+ type: ["attributeReport", "readResponse"],
191
+ convert: (model, msg, publish, options, meta) => {
192
+ const result = {};
193
+ if (msg.data.sdevicesCalibrationTime !== undefined) {
194
+ result[utils.postfixWithEndpointName("calibration_time", msg, model, meta)] = msg.data.sdevicesCalibrationTime * 0.1;
195
+ }
196
+ if (msg.data.sdevicesButtonsMode !== undefined) {
197
+ result[utils.postfixWithEndpointName("buttons_mode", msg, model, meta)] = msg.data.sdevicesButtonsMode ? "inverted" : "normal";
198
+ }
199
+ if (msg.data.sdevicesMotorTimeout !== undefined) {
200
+ result[utils.postfixWithEndpointName("motor_timeout", msg, model, meta)] = msg.data.sdevicesMotorTimeout;
201
+ }
202
+ return result;
203
+ },
204
+ },
205
+ sensor_error: {
206
+ cluster: "hvacThermostat",
207
+ type: ["attributeReport", "readResponse"],
208
+ convert: (model, msg, publish, options, meta) => {
209
+ if (msg.data.sdevicesSensorError !== undefined) {
210
+ const stateBitmap = msg.data.sdevicesSensorError;
211
+ const errorRemoteDisconnected = stateBitmap & 0x01;
212
+ const errorLocalDisconnected = (stateBitmap & 0x02) >> 1;
213
+ const errorShortCircuit = (stateBitmap & 0x04) >> 2;
214
+ return {
215
+ sensor_error_remote_disconnected: !!errorRemoteDisconnected,
216
+ sensor_error_local_disconnected: !!errorLocalDisconnected,
217
+ sensor_error_short_circuit: !!errorShortCircuit,
218
+ };
219
+ }
220
+ },
221
+ },
222
+ event_status: {
223
+ cluster: "hvacThermostat",
224
+ type: ["attributeReport", "readResponse"],
225
+ convert: (model, msg, publish, options, meta) => {
226
+ if (msg.data.sdevicesEventStatus !== undefined) {
227
+ const stateBitmap = msg.data.sdevicesEventStatus;
228
+ const statusInefficient = stateBitmap & 0x01;
229
+ const statusAntifrost = (stateBitmap & 0x02) >> 1;
230
+ const statusInvalidTime = (stateBitmap & 0x08) >> 3;
231
+ return {
232
+ status_heat_inefficient: !!statusInefficient,
233
+ status_antifrost: !!statusAntifrost,
234
+ status_invalid_time: !!statusInvalidTime,
235
+ };
236
+ }
237
+ },
238
+ },
239
+ },
240
+ tz: {
241
+ custom_on_off: {
242
+ key: ["state"],
243
+ convertSet: async (entity, key, value, meta) => {
244
+ const state = utils.isString(meta.message.state) ? meta.message.state.toLowerCase() : null;
245
+ utils.validateValue(state, ["toggle", "off", "on"]);
246
+ await entity.command("genOnOff", state, {}, utils.getOptions(meta.mapped, entity));
247
+ if (state === "toggle") {
248
+ const currentState = meta.state[`state${meta.endpoint_name ? `_${meta.endpoint_name}` : ""}`];
249
+ return currentState ? { state: { state: currentState === "OFF" ? "ON" : "OFF" } } : {};
250
+ }
251
+ return { state: { state: state.toUpperCase() } };
252
+ },
253
+ convertGet: async (entity, key, meta) => {
254
+ // Allow reading only if endpoint is explicitly stated.
255
+ // Workaround to prevent reading from non-existing genOnOff cluster at EP3 during availability check.
256
+ if (meta.endpoint_name) {
257
+ await entity.read("genOnOff", ["onOff"]);
258
+ }
259
+ },
260
+ },
261
+ led_indicator_on_settings: {
262
+ key: ["led_indicator_on_enable", "led_indicator_on_h", "led_indicator_on_s", "led_indicator_on_b"],
263
+ convertSet: async (entity, key, value, meta) => {
264
+ utils.assertString(key);
265
+ const payload = {};
266
+ switch (key) {
267
+ case "led_indicator_on_enable":
268
+ utils.assertString(value);
269
+ payload.ledIndicatorOnEnable = value.toUpperCase() === "ON" ? 1 : 0;
270
+ break;
271
+ case "led_indicator_on_h":
272
+ payload.ledIndicatorOnH = value;
273
+ break;
274
+ case "led_indicator_on_s":
275
+ payload.ledIndicatorOnS = value;
276
+ break;
277
+ case "led_indicator_on_b":
278
+ payload.ledIndicatorOnB = value;
279
+ break;
280
+ }
281
+ await utils.determineEndpoint(entity, meta, "manuSpecificSDevices").write("manuSpecificSDevices", payload, defaultResponseOptions);
282
+ return { state: { [key]: value } };
283
+ },
284
+ convertGet: async (entity, key, meta) => {
285
+ await utils
286
+ .determineEndpoint(entity, meta, "manuSpecificSDevices")
287
+ .read("manuSpecificSDevices", ["ledIndicatorOnEnable", "ledIndicatorOnH", "ledIndicatorOnS", "ledIndicatorOnB"], defaultResponseOptions);
288
+ },
289
+ },
290
+ led_indicator_off_settings: {
291
+ key: ["led_indicator_off_enable", "led_indicator_off_h", "led_indicator_off_s", "led_indicator_off_b"],
292
+ convertSet: async (entity, key, value, meta) => {
293
+ utils.assertString(key);
294
+ const payload = {};
295
+ switch (key) {
296
+ case "led_indicator_off_enable":
297
+ utils.assertString(value);
298
+ payload.ledIndicatorOffEnable = value.toUpperCase() === "ON" ? 1 : 0;
299
+ break;
300
+ case "led_indicator_off_h":
301
+ payload.ledIndicatorOffH = value;
302
+ break;
303
+ case "led_indicator_off_s":
304
+ payload.ledIndicatorOffS = value;
305
+ break;
306
+ case "led_indicator_off_b":
307
+ payload.ledIndicatorOffB = value;
308
+ break;
309
+ }
310
+ await utils.determineEndpoint(entity, meta, "manuSpecificSDevices").write("manuSpecificSDevices", payload, defaultResponseOptions);
311
+ return { state: { [key]: value } };
312
+ },
313
+ convertGet: async (entity, key, meta) => {
314
+ await utils
315
+ .determineEndpoint(entity, meta, "manuSpecificSDevices")
316
+ .read("manuSpecificSDevices", ["ledIndicatorOffEnable", "ledIndicatorOffH", "ledIndicatorOffS", "ledIndicatorOffB"], defaultResponseOptions);
317
+ },
318
+ },
319
+ identify: {
320
+ key: ["identify"],
321
+ options: [
322
+ e
323
+ .numeric("identify_timeout", ea.SET)
324
+ .withDescription("Sets the duration of the identification procedure in seconds (i.e., how long the device would flash)." +
325
+ "The value ranges from 1 to 60 seconds (default: 30).")
326
+ .withValueMin(1)
327
+ .withValueMax(60),
328
+ ],
329
+ convertSet: async (entity, key, value, meta) => {
330
+ const identifyTimeout = meta.options.identify_timeout ?? 30;
331
+ await entity.command("genIdentify", "identify", { identifytime: identifyTimeout }, utils.getOptions(meta.mapped, entity));
332
+ },
333
+ },
334
+ decouple_relay: {
335
+ key: ["relay_mode"],
336
+ convertSet: async (entity, key, value, meta) => {
337
+ if (typeof value !== "string") {
338
+ return;
339
+ }
340
+ const relayDecoupleLookup = { control_relay: 0, decoupled: 1 };
341
+ utils.assertEndpoint(entity);
342
+ await utils.enforceEndpoint(entity, key, meta).write("genOnOff", {
343
+ sdevicesRelayDecouple: utils.getFromLookup(value, relayDecoupleLookup),
344
+ }, manufacturerOptions);
345
+ return { state: { relay_mode: value.toLowerCase() } };
346
+ },
347
+ convertGet: async (entity, key, meta) => {
348
+ utils.assertEndpoint(entity);
349
+ await utils
350
+ .enforceEndpoint(entity, key, meta)
351
+ .read("genOnOff", ["sdevicesRelayDecouple"], manufacturerOptions);
352
+ },
353
+ },
354
+ allow_double_click: {
355
+ key: ["allow_double_click"],
356
+ convertSet: async (entity, key, value, meta) => {
357
+ if (typeof value !== "string") {
358
+ return;
359
+ }
360
+ const payload = {};
361
+ payload.buttonEnableMultiClick = value.toUpperCase() === "ON" ? 1 : 0;
362
+ await utils.determineEndpoint(entity, meta, "manuSpecificSDevices").write("manuSpecificSDevices", payload, defaultResponseOptions);
363
+ return { state: { [key]: value } };
364
+ },
365
+ convertGet: async (entity, key, meta) => {
366
+ await utils
367
+ .determineEndpoint(entity, meta, "manuSpecificSDevices")
368
+ .read("manuSpecificSDevices", ["buttonEnableMultiClick"], defaultResponseOptions);
369
+ },
370
+ },
371
+ cover_mode: {
372
+ key: ["cover_mode"],
373
+ convertSet: async (entity, key, value, meta) => {
374
+ utils.assertObject(value, key);
375
+ const old_value = meta.state.cover_mode_cover;
376
+ const combined_value = Object.assign(old_value, value);
377
+ const windowCoveringMode = old_value | ((combined_value.reversed_cover ? 1 : 0) << 0);
378
+ await entity.write("closuresWindowCovering", { windowCoveringMode }, utils.getOptions(meta.mapped, entity));
379
+ return { state: { cover_mode: combined_value } };
380
+ },
381
+ convertGet: async (entity, key, meta) => {
382
+ await entity.read("closuresWindowCovering", ["windowCoveringMode"]);
383
+ },
384
+ },
385
+ cover_state: {
386
+ key: ["current_state"],
387
+ convertSet: async (entity, key, value, meta) => {
388
+ const lookup = {
389
+ open: "upOpen",
390
+ close: "downClose",
391
+ stop: "stop",
392
+ on: "upOpen",
393
+ off: "downClose",
394
+ };
395
+ utils.assertString(value, key);
396
+ value = value.toLowerCase();
397
+ await entity.command("closuresWindowCovering", utils.getFromLookup(value, lookup), {}, utils.getOptions(meta.mapped, entity));
398
+ },
399
+ },
400
+ closures_custom: {
401
+ key: ["calibration_time", "buttons_mode", "motor_timeout"],
402
+ convertSet: async (entity, key, value, meta) => {
403
+ if (key === "calibration_time") {
404
+ utils.assertNumber(value);
405
+ const calibration = value * 10;
406
+ await entity.write("closuresWindowCovering", { sdevicesCalibrationTime: calibration }, manufacturerOptions);
407
+ return { state: { calibration_time: value } };
408
+ }
409
+ if (key === "buttons_mode") {
410
+ utils.assertString(value, key);
411
+ value = value.toLowerCase();
412
+ const lookup = { normal: 0, inverted: 1 };
413
+ await entity.write("closuresWindowCovering", { sdevicesButtonsMode: utils.getFromLookup(value, lookup) }, manufacturerOptions);
414
+ return { state: { buttons_mode: value } };
415
+ }
416
+ if (key === "motor_timeout") {
417
+ utils.assertNumber(value);
418
+ await entity.write("closuresWindowCovering", { sdevicesMotorTimeout: value }, manufacturerOptions);
419
+ return { state: { motor_timeout: value } };
420
+ }
421
+ },
422
+ convertGet: async (entity, key, meta) => {
423
+ switch (key) {
424
+ case "calibration_time":
425
+ await entity.read("closuresWindowCovering", ["sdevicesCalibrationTime"], manufacturerOptions);
426
+ break;
427
+ case "buttons_mode":
428
+ await entity.read("closuresWindowCovering", ["sdevicesButtonsMode"], manufacturerOptions);
429
+ break;
430
+ case "motor_timeout":
431
+ await entity.read("closuresWindowCovering", ["sdevicesMotorTimeout"], manufacturerOptions);
432
+ break;
433
+ }
434
+ },
435
+ },
436
+ thermostat_abs_min_heat_setpoint_limit: {
437
+ key: ["abs_min_heat_setpoint_limit"],
438
+ convertGet: async (entity, key, meta) => {
439
+ await entity.read("hvacThermostat", ["absMinHeatSetpointLimit"]);
440
+ },
441
+ },
442
+ thermostat_abs_max_heat_setpoint_limit: {
443
+ key: ["abs_max_heat_setpoint_limit"],
444
+ convertGet: async (entity, key, meta) => {
445
+ await entity.read("hvacThermostat", ["absMaxHeatSetpointLimit"]);
446
+ },
447
+ },
448
+ },
449
+ };
450
+ const sdevicesCustomClusterDefinition = {
451
+ ID: 0xfccf,
452
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
453
+ attributes: {
454
+ buttonEnableMultiClick: { ID: 0x1002, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
455
+ childLock: { ID: 0x1003, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
456
+ ledIndicatorOnEnable: { ID: 0x2001, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
457
+ ledIndicatorOnH: { ID: 0x2002, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
458
+ ledIndicatorOnS: { ID: 0x2003, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
459
+ ledIndicatorOnB: { ID: 0x2004, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
460
+ ledIndicatorOffEnable: { ID: 0x2005, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
461
+ ledIndicatorOffH: { ID: 0x2006, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
462
+ ledIndicatorOffS: { ID: 0x2007, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
463
+ ledIndicatorOffB: { ID: 0x2008, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
464
+ emergencyShutoffState: { ID: 0x3001, type: zigbee_herdsman_1.Zcl.DataType.BITMAP16 },
465
+ emergencyShutoffRecovery: { ID: 0x3002, type: zigbee_herdsman_1.Zcl.DataType.BITMAP16, write: true, max: 0xffff },
466
+ upperVoltageThreshold: { ID: 0x3011, type: zigbee_herdsman_1.Zcl.DataType.UINT32, write: true, max: 0xffffffff },
467
+ lowerVoltageThreshold: { ID: 0x3012, type: zigbee_herdsman_1.Zcl.DataType.UINT32, write: true, max: 0xffffffff },
468
+ upperCurrentThreshold: { ID: 0x3013, type: zigbee_herdsman_1.Zcl.DataType.UINT32, write: true, max: 0xffffffff },
469
+ upperTempThreshold: { ID: 0x3014, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, min: -32768 },
470
+ rmsVoltageMv: { ID: 0x4001, type: zigbee_herdsman_1.Zcl.DataType.UINT32 },
471
+ rmsCurrentMa: { ID: 0x4002, type: zigbee_herdsman_1.Zcl.DataType.UINT32 },
472
+ activePowerMw: { ID: 0x4003, type: zigbee_herdsman_1.Zcl.DataType.INT32 },
473
+ rtcStatus: { ID: 0x5001, type: zigbee_herdsman_1.Zcl.DataType.BITMAP16 },
474
+ },
475
+ commands: {},
476
+ commandsResponse: {},
477
+ };
478
+ const sdevicesExtend = {
479
+ sdevicesCustomCluster: () => m.deviceAddCustomCluster("manuSpecificSDevices", sdevicesCustomClusterDefinition),
480
+ haDiagnosticCluster: () => m.deviceAddCustomCluster("haDiagnostic", {
481
+ ID: zigbee_herdsman_1.Zcl.Clusters.haDiagnostic.ID,
482
+ attributes: {
483
+ sdevicesUptimeS: {
484
+ ID: 0x1001,
485
+ type: zigbee_herdsman_1.Zcl.DataType.UINT32,
486
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
487
+ },
488
+ sdevicesButton1Clicks: {
489
+ ID: 0x1002,
490
+ type: zigbee_herdsman_1.Zcl.DataType.UINT32,
491
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
492
+ },
493
+ sdevicesButton2Clicks: {
494
+ ID: 0x1003,
495
+ type: zigbee_herdsman_1.Zcl.DataType.UINT32,
496
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
497
+ },
498
+ sdevicesButton3Clicks: {
499
+ ID: 0x1004,
500
+ type: zigbee_herdsman_1.Zcl.DataType.UINT32,
501
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
502
+ },
503
+ sdevicesRelay1Switches: {
504
+ ID: 0x1005,
505
+ type: zigbee_herdsman_1.Zcl.DataType.UINT32,
506
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
507
+ },
508
+ sdevicesRelay2Switches: {
509
+ ID: 0x1006,
510
+ type: zigbee_herdsman_1.Zcl.DataType.UINT32,
511
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
512
+ },
513
+ },
514
+ commands: {},
515
+ commandsResponse: {},
516
+ }),
517
+ closuresWindowCoveringCluster: () => m.deviceAddCustomCluster("closuresWindowCovering", {
518
+ ID: zigbee_herdsman_1.Zcl.Clusters.closuresWindowCovering.ID,
519
+ attributes: {
520
+ sdevicesCalibrationTime: {
521
+ ID: 0x1001,
522
+ type: zigbee_herdsman_1.Zcl.DataType.UINT16,
523
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
524
+ write: true,
525
+ max: 0xffff,
526
+ },
527
+ sdevicesButtonsMode: {
528
+ ID: 0x1002,
529
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
530
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
531
+ write: true,
532
+ max: 0x01,
533
+ },
534
+ sdevicesMotorTimeout: {
535
+ ID: 0x1003,
536
+ type: zigbee_herdsman_1.Zcl.DataType.UINT16,
537
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
538
+ write: true,
539
+ max: 0xffff,
540
+ },
541
+ },
542
+ commands: {},
543
+ commandsResponse: {},
544
+ }),
545
+ hvacThermostatCluster: () => m.deviceAddCustomCluster("hvacThermostat", {
546
+ ID: zigbee_herdsman_1.Zcl.Clusters.hvacThermostat.ID,
547
+ attributes: {
548
+ sdevicesRemoteTemperature: {
549
+ ID: 0x4001,
550
+ type: zigbee_herdsman_1.Zcl.DataType.INT16,
551
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
552
+ write: true,
553
+ min: -32768,
554
+ },
555
+ sdevicesRemoteTemperatureCalibration: {
556
+ ID: 0x4002,
557
+ type: zigbee_herdsman_1.Zcl.DataType.INT8,
558
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
559
+ write: true,
560
+ min: -128,
561
+ },
562
+ sdevicesSensorMode: {
563
+ ID: 0x4003,
564
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
565
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
566
+ write: true,
567
+ max: 0x02,
568
+ },
569
+ sdevicesHeatingHysteresis: {
570
+ ID: 0x4019,
571
+ type: zigbee_herdsman_1.Zcl.DataType.INT8,
572
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
573
+ write: true,
574
+ min: -128,
575
+ },
576
+ sdevicesMinLocalTemperatureLimit: {
577
+ ID: 0x40f0,
578
+ type: zigbee_herdsman_1.Zcl.DataType.INT16,
579
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
580
+ write: true,
581
+ min: -32768,
582
+ },
583
+ sdevicesMaxLocalTemperatureLimit: {
584
+ ID: 0x40f1,
585
+ type: zigbee_herdsman_1.Zcl.DataType.INT16,
586
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
587
+ write: true,
588
+ min: -32768,
589
+ },
590
+ sdevicesOutputMode: {
591
+ ID: 0x4100,
592
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
593
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
594
+ write: true,
595
+ max: 0xff,
596
+ },
597
+ sdevicesLocalSensorType: {
598
+ ID: 0x4101,
599
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
600
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
601
+ write: true,
602
+ max: 0xff,
603
+ },
604
+ sdevicesSensorError: { ID: 0x4102, type: zigbee_herdsman_1.Zcl.DataType.BITMAP16, manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD },
605
+ sdevicesEventStatus: { ID: 0x4103, type: zigbee_herdsman_1.Zcl.DataType.BITMAP16, manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD },
606
+ sdevicesRemoteSensorTimeout: {
607
+ ID: 0x4203,
608
+ type: zigbee_herdsman_1.Zcl.DataType.UINT16,
609
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
610
+ write: true,
611
+ max: 0xffff,
612
+ },
613
+ },
614
+ commands: {},
615
+ commandsResponse: {},
616
+ }),
617
+ hvacUserInterfaceCfgCluster: () => m.deviceAddCustomCluster("hvacUserInterfaceCfg", {
618
+ ID: zigbee_herdsman_1.Zcl.Clusters.hvacUserInterfaceCfg.ID,
619
+ attributes: {
620
+ sdevicesBrightnessOperationsMode: {
621
+ ID: 0x2001,
622
+ type: zigbee_herdsman_1.Zcl.DataType.UINT16,
623
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
624
+ write: true,
625
+ max: 0xffff,
626
+ },
627
+ sdevicesBrightnessSteadyMode: {
628
+ ID: 0x2002,
629
+ type: zigbee_herdsman_1.Zcl.DataType.UINT16,
630
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD,
631
+ write: true,
632
+ max: 0xffff,
633
+ },
634
+ },
635
+ commands: {},
636
+ commandsResponse: {},
637
+ }),
638
+ genOnOffCluster: () => m.deviceAddCustomCluster("genOnOff", {
639
+ ID: zigbee_herdsman_1.Zcl.Clusters.genOnOff.ID,
640
+ attributes: {
641
+ sdevicesRelayDecouple: { ID: 0x10dc, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SBERDEVICES_LTD, write: true },
642
+ },
643
+ commands: {},
644
+ commandsResponse: {},
645
+ }),
646
+ deviceInfo: () => {
647
+ const toZigbee = [
648
+ {
649
+ key: ["serial_number"],
650
+ convertGet: async (entity, key, meta) => {
651
+ await entity.read("genBasic", ["serialNumber"]);
652
+ },
653
+ },
654
+ ];
655
+ const fromZigbee = [
656
+ {
657
+ cluster: "genBasic",
658
+ type: ["attributeReport", "readResponse"],
659
+ convert: (model, msg, publish, options, meta) => {
660
+ const result = {};
661
+ if (msg.data.serialNumber !== undefined) {
662
+ result.serial_number = msg.data.serialNumber.toString();
663
+ }
664
+ return result;
665
+ },
666
+ },
667
+ ];
668
+ const exposes = [e.text("serial_number", ea.STATE_GET).withLabel("Serial Number").withCategory("diagnostic")];
669
+ return { exposes, fromZigbee, toZigbee, isModernExtend: true };
670
+ },
671
+ onOffRelayDecouple: (args) => m.enumLookup({
672
+ name: "relay_mode",
673
+ description: "Decoupled mode for button",
674
+ cluster: "genOnOff",
675
+ attribute: "sdevicesRelayDecouple",
676
+ lookup: { control_relay: 0, decoupled: 1 },
677
+ zigbeeCommandOptions: manufacturerOptions,
678
+ ...args,
679
+ }),
680
+ ledIndicatorSettings: () => {
681
+ const fromZigbee = [
682
+ {
683
+ cluster: "manuSpecificSDevices",
684
+ type: ["attributeReport", "readResponse"],
685
+ convert: (model, msg, publish, options, meta) => {
686
+ const result = {};
687
+ if (msg.data.ledIndicatorOnEnable !== undefined) {
688
+ result.led_indicator_on_enable = msg.data.ledIndicatorOnEnable ? "ON" : "OFF";
689
+ }
690
+ if (msg.data.ledIndicatorOnH !== undefined) {
691
+ result.led_indicator_on_h = msg.data.ledIndicatorOnH;
692
+ }
693
+ if (msg.data.ledIndicatorOnS !== undefined) {
694
+ result.led_indicator_on_s = msg.data.ledIndicatorOnS;
695
+ }
696
+ if (msg.data.ledIndicatorOnB !== undefined) {
697
+ result.led_indicator_on_b = msg.data.ledIndicatorOnB;
698
+ }
699
+ if (msg.data.ledIndicatorOffEnable !== undefined) {
700
+ result.led_indicator_off_enable = msg.data.ledIndicatorOffEnable ? "ON" : "OFF";
701
+ }
702
+ if (msg.data.ledIndicatorOffH !== undefined) {
703
+ result.led_indicator_off_h = msg.data.ledIndicatorOffH;
704
+ }
705
+ if (msg.data.ledIndicatorOffS !== undefined) {
706
+ result.led_indicator_off_s = msg.data.ledIndicatorOffS;
707
+ }
708
+ if (msg.data.ledIndicatorOffB !== undefined) {
709
+ result.led_indicator_off_b = msg.data.ledIndicatorOffB;
710
+ }
711
+ return result;
712
+ },
713
+ },
714
+ ];
715
+ const toZigbee = [
716
+ {
717
+ key: ["led_indicator_on_enable", "led_indicator_on_h", "led_indicator_on_s", "led_indicator_on_b"],
718
+ convertSet: async (entity, key, value, meta) => {
719
+ const payload = {};
720
+ switch (key) {
721
+ case "led_indicator_on_enable":
722
+ utils.assertString(value);
723
+ payload.ledIndicatorOnEnable = value.toUpperCase() === "ON" ? 1 : 0;
724
+ break;
725
+ case "led_indicator_on_h":
726
+ payload.ledIndicatorOnH = value;
727
+ break;
728
+ case "led_indicator_on_s":
729
+ payload.ledIndicatorOnS = value;
730
+ break;
731
+ case "led_indicator_on_b":
732
+ payload.ledIndicatorOnB = value;
733
+ break;
734
+ }
735
+ await entity.write("manuSpecificSDevices", payload, defaultResponseOptions);
736
+ return { state: { [key]: value } };
737
+ },
738
+ convertGet: async (entity, key, meta) => {
739
+ await entity.read("manuSpecificSDevices", ["ledIndicatorOnEnable", "ledIndicatorOnH", "ledIndicatorOnS", "ledIndicatorOnB"], defaultResponseOptions);
740
+ },
741
+ },
742
+ {
743
+ key: ["led_indicator_off_enable", "led_indicator_off_h", "led_indicator_off_s", "led_indicator_off_b"],
744
+ convertSet: async (entity, key, value, meta) => {
745
+ const payload = {};
746
+ switch (key) {
747
+ case "led_indicator_off_enable":
748
+ utils.assertString(value);
749
+ payload.ledIndicatorOffEnable = value.toUpperCase() === "ON" ? 1 : 0;
750
+ break;
751
+ case "led_indicator_off_h":
752
+ payload.ledIndicatorOffH = value;
753
+ break;
754
+ case "led_indicator_off_s":
755
+ payload.ledIndicatorOffS = value;
756
+ break;
757
+ case "led_indicator_off_b":
758
+ payload.ledIndicatorOffB = value;
759
+ break;
760
+ }
761
+ await entity.write("manuSpecificSDevices", payload, defaultResponseOptions);
762
+ return { state: { [key]: value } };
763
+ },
764
+ convertGet: async (entity, key, meta) => {
765
+ await entity.read("manuSpecificSDevices", ["ledIndicatorOffEnable", "ledIndicatorOffH", "ledIndicatorOffS", "ledIndicatorOffB"], defaultResponseOptions);
766
+ },
767
+ },
768
+ ];
769
+ const exposes = [
770
+ e
771
+ .binary("led_indicator_on_enable", ea.ALL, "ON", "OFF")
772
+ .withLabel("LED indication")
773
+ .withDescription("Is LED indicator enabled in ON state"),
774
+ e
775
+ .numeric("led_indicator_on_h", ea.ALL)
776
+ .withUnit("°")
777
+ .withValueMin(0)
778
+ .withValueMax(359)
779
+ .withLabel("Hue")
780
+ .withDescription("Hue of LED in ON state"),
781
+ e
782
+ .numeric("led_indicator_on_s", ea.ALL)
783
+ .withValueMin(0)
784
+ .withValueMax(0xfe)
785
+ .withLabel("Saturation")
786
+ .withDescription("Saturation of LED in ON state"),
787
+ e
788
+ .numeric("led_indicator_on_b", ea.ALL)
789
+ .withValueMin(1)
790
+ .withValueMax(0xfe)
791
+ .withLabel("Brightness")
792
+ .withDescription("Brightness of LED in ON state"),
793
+ e
794
+ .binary("led_indicator_off_enable", ea.ALL, "ON", "OFF")
795
+ .withLabel("LED indication")
796
+ .withDescription("Is LED indicator enabled in OFF state"),
797
+ e
798
+ .numeric("led_indicator_off_h", ea.ALL)
799
+ .withUnit("°")
800
+ .withValueMin(0)
801
+ .withValueMax(359)
802
+ .withLabel("Hue")
803
+ .withDescription("Hue of LED in OFF state"),
804
+ e
805
+ .numeric("led_indicator_off_s", ea.ALL)
806
+ .withValueMin(0)
807
+ .withValueMax(0xfe)
808
+ .withLabel("Saturation")
809
+ .withDescription("Saturation of LED in OFF state"),
810
+ e
811
+ .numeric("led_indicator_off_b", ea.ALL)
812
+ .withValueMin(1)
813
+ .withValueMax(0xfe)
814
+ .withLabel("Brightness")
815
+ .withDescription("Brightness of LED in OFF state"),
816
+ ];
817
+ return { exposes, fromZigbee, toZigbee, isModernExtend: true };
818
+ },
819
+ electricityMeter: () => {
820
+ const exposes = [e.voltage().withAccess(ea.STATE_GET), e.current().withAccess(ea.STATE_GET), e.power().withAccess(ea.STATE_GET)];
821
+ const fromZigbee = [
822
+ {
823
+ cluster: "manuSpecificSDevices",
824
+ type: ["attributeReport", "readResponse"],
825
+ convert: (model, msg, publish, options, meta) => {
826
+ if (utils.hasAlreadyProcessedMessage(msg, model))
827
+ return;
828
+ const lookup = [
829
+ { key: "rmsVoltageMv", name: "voltage", multiplier: 0.001 },
830
+ { key: "rmsCurrentMa", name: "current", multiplier: 0.001 },
831
+ { key: "activePowerMw", name: "power", multiplier: 0.001 },
832
+ ];
833
+ const payload = {};
834
+ for (const entry of lookup) {
835
+ if (msg.data[entry.key] !== undefined) {
836
+ const value = msg.data[entry.key] * entry.multiplier;
837
+ payload[entry.name] = value;
838
+ }
839
+ }
840
+ return payload;
841
+ },
842
+ },
843
+ ];
844
+ const toZigbee = [
845
+ {
846
+ key: ["voltage"],
847
+ convertGet: async (entity, key, meta) => {
848
+ await entity.read("manuSpecificSDevices", ["rmsVoltageMv"]);
849
+ },
850
+ },
851
+ {
852
+ key: ["current"],
853
+ convertGet: async (entity, key, meta) => {
854
+ await entity.read("manuSpecificSDevices", ["rmsCurrentMa"]);
855
+ },
856
+ },
857
+ {
858
+ key: ["power"],
859
+ convertGet: async (entity, key, meta) => {
860
+ await entity.read("manuSpecificSDevices", ["activePowerMw"]);
861
+ },
862
+ },
863
+ ];
864
+ return { exposes, fromZigbee, toZigbee, isModernExtend: true };
865
+ },
866
+ rtcStatus: () => {
867
+ const exposes = [
868
+ e
869
+ .list("rtc_status", ea.STATE_GET, e
870
+ .composite("rtc_status_list", "rtc_status_list", ea.STATE_GET)
871
+ .withFeature(e.binary("unavailable", ea.STATE_GET, true, false).withDescription("RTC hardware in unavailable"))
872
+ .withFeature(e.binary("data_not_vaild", ea.STATE_GET, true, false).withDescription("RTC data is not valid")))
873
+ .withDescription("List of active RTC warnings"),
874
+ ];
875
+ const toZigbee = [
876
+ {
877
+ key: ["rtc_status"],
878
+ convertGet: async (entity, key, meta) => {
879
+ await entity.read("manuSpecificSDevices", ["rtcStatus"]);
880
+ },
881
+ },
882
+ ];
883
+ const fromZigbee = [
884
+ {
885
+ cluster: "manuSpecificSDevices",
886
+ type: ["attributeReport", "readResponse"],
887
+ convert: (model, msg, publish, options, meta) => {
888
+ if (msg.data.rtcStatus !== undefined) {
889
+ const stateBitmap = msg.data.rtcStatus;
890
+ const statusRtcUnavailable = stateBitmap & 0x01;
891
+ const statusRtcDataNotValid = (stateBitmap & 0x02) >> 1;
892
+ const rtc_status = {
893
+ unavailable: !!statusRtcUnavailable,
894
+ data_not_vaild: !!statusRtcDataNotValid,
895
+ };
896
+ return { rtc_status: rtc_status };
897
+ }
898
+ },
899
+ },
900
+ ];
901
+ return { exposes, fromZigbee, toZigbee, isModernExtend: true };
902
+ },
903
+ thermostatSensorType: () => m.enumLookup({
904
+ name: "sensor_type",
905
+ description: "Resistance of NTC sensor, default is 10 kOhm",
906
+ cluster: "hvacThermostat",
907
+ attribute: "sdevicesLocalSensorType",
908
+ lookup: {
909
+ "4p7K": 0,
910
+ "6p8K": 1,
911
+ "10K": 2,
912
+ "12K": 3,
913
+ "15K": 4,
914
+ "33K": 5,
915
+ "47K": 6,
916
+ },
917
+ zigbeeCommandOptions: manufacturerOptions,
918
+ }),
919
+ thermostatWeeklySchedule: () => {
920
+ const exposes = e
921
+ .composite("schedule", "weekly_schedule", ea.ALL)
922
+ .withDescription("The heating schedule to use when the operation mode is set to 'schedule'. " +
923
+ "Up to 10 transitions can be defined per day, where a transition is expressed in the format 'HH:mm/temperature', each " +
924
+ "separated by a space. The valid temperature range is 1-50°C.")
925
+ .withFeature(e.text("sunday", ea.STATE_SET))
926
+ .withFeature(e.text("monday", ea.STATE_SET))
927
+ .withFeature(e.text("tuesday", ea.STATE_SET))
928
+ .withFeature(e.text("wednesday", ea.STATE_SET))
929
+ .withFeature(e.text("thursday", ea.STATE_SET))
930
+ .withFeature(e.text("friday", ea.STATE_SET))
931
+ .withFeature(e.text("saturday", ea.STATE_SET));
932
+ const fromZigbee = [
933
+ {
934
+ cluster: "hvacThermostat",
935
+ type: ["commandGetWeeklyScheduleRsp"],
936
+ convert: (model, msg, publish, options, meta) => {
937
+ const day = Object.entries(constants.thermostatDayOfWeek).find((d) => msg.data.dayofweek & (1 << +d[0]))[1];
938
+ const transitions = msg.data.transitions
939
+ .map((t) => {
940
+ const totalMinutes = t.transitionTime;
941
+ const hours = totalMinutes / 60;
942
+ const rHours = Math.floor(hours);
943
+ const minutes = (hours - rHours) * 60;
944
+ const rMinutes = Math.round(minutes);
945
+ const strHours = rHours.toString().padStart(2, "0");
946
+ const strMinutes = rMinutes.toString().padStart(2, "0");
947
+ return `${strHours}:${strMinutes}/${t.heatSetpoint / 100}`;
948
+ })
949
+ .sort()
950
+ .join(" ");
951
+ return {
952
+ weekly_schedule: {
953
+ ...meta.state.weekly_schedule,
954
+ [day]: transitions,
955
+ },
956
+ };
957
+ },
958
+ },
959
+ ];
960
+ const toZigbee = [
961
+ {
962
+ key: ["weekly_schedule"],
963
+ convertSet: async (entity, key, value, meta) => {
964
+ // Transition format: HH:mm/temperature
965
+ const transitionRegex = /^(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])\/(\d+(\.5)?)$/;
966
+ utils.assertObject(value, key);
967
+ const schedule = [];
968
+ for (const dayOfWeekName of Object.keys(value)) {
969
+ const dayKey = utils.getKey(constants.thermostatDayOfWeek, dayOfWeekName.toLowerCase(), null);
970
+ if (dayKey === null) {
971
+ throw new Error(`Invalid schedule: invalid day name, found: ${dayOfWeekName}`);
972
+ }
973
+ const dayOfWeekBit = Number(dayKey);
974
+ const transitions = value[dayOfWeekName] === "" ? [] : value[dayOfWeekName].split(" ").sort();
975
+ if (transitions.length > 10) {
976
+ throw new Error("Invalid schedule: days must have no more than 10 transitions");
977
+ }
978
+ const payload = {
979
+ dayofweek: 1 << Number(dayOfWeekBit),
980
+ numoftrans: transitions.length,
981
+ mode: 1 << 0, // heat only
982
+ transitions: [],
983
+ };
984
+ for (const transition of transitions) {
985
+ const matches = transition.match(transitionRegex);
986
+ if (!matches) {
987
+ throw new Error(`Invalid schedule: transitions must be in format HH:mm/temperature (e.g. 12:00/25.5), found: ${transition}`);
988
+ }
989
+ const hour = Number.parseInt(matches[1], 10);
990
+ const mins = Number.parseInt(matches[2], 10);
991
+ const temp = Number.parseFloat(matches[3]);
992
+ if (temp < 1 || temp > 50) {
993
+ throw new Error(`Invalid schedule: temperature value must be between 1-50 (inclusive), found: ${temp}`);
994
+ }
995
+ payload.transitions.push({
996
+ transitionTime: hour * 60 + mins,
997
+ heatSetpoint: Math.round(temp * 100),
998
+ });
999
+ }
1000
+ schedule.push(payload);
1001
+ }
1002
+ const reduced_schedule = schedule.reduce((a, b) => {
1003
+ const index = a.findIndex((x) => JSON.stringify(x.transitions) === JSON.stringify(b.transitions));
1004
+ if (index < 0) {
1005
+ a.push(b);
1006
+ }
1007
+ else {
1008
+ a[index].dayofweek = a[index].dayofweek | b.dayofweek;
1009
+ }
1010
+ return a;
1011
+ }, []);
1012
+ for (const payload of reduced_schedule) {
1013
+ await entity.command("hvacThermostat", "setWeeklySchedule", payload, utils.getOptions(meta.mapped, entity));
1014
+ }
1015
+ for (let dayOfWeekBit = 0; dayOfWeekBit < 7; dayOfWeekBit++) {
1016
+ const payload = {
1017
+ daystoreturn: 1 << dayOfWeekBit,
1018
+ modetoreturn: 1 << 0, // heat only
1019
+ };
1020
+ await entity.command("hvacThermostat", "getWeeklySchedule", payload, { disableDefaultResponse: true });
1021
+ }
1022
+ },
1023
+ convertGet: async (entity, key, meta) => {
1024
+ for (let dayOfWeekBit = 0; dayOfWeekBit < 7; dayOfWeekBit++) {
1025
+ const payload = {
1026
+ daystoreturn: 1 << dayOfWeekBit,
1027
+ modetoreturn: 1 << 0, // heat only
1028
+ };
1029
+ await entity.command("hvacThermostat", "getWeeklySchedule", payload, { disableDefaultResponse: true });
1030
+ }
1031
+ },
1032
+ },
1033
+ ];
1034
+ return {
1035
+ exposes: [exposes],
1036
+ fromZigbee,
1037
+ toZigbee,
1038
+ isModernExtend: true,
1039
+ };
1040
+ },
1041
+ childLock: () => m.binary({
1042
+ name: "child_lock",
1043
+ cluster: "manuSpecificSDevices",
1044
+ attribute: "childLock",
1045
+ description: "Enable child lock to prevent manual button operation",
1046
+ valueOn: ["ON", 0x01],
1047
+ valueOff: ["OFF", 0x00],
1048
+ zigbeeCommandOptions: manufacturerOptions,
1049
+ }),
1050
+ deviceTemperature: () => m.numeric({
1051
+ name: "device_temperature",
1052
+ cluster: "genDeviceTempCfg",
1053
+ attribute: "currentTemperature",
1054
+ description: "Temperature of the device",
1055
+ unit: "°C",
1056
+ access: "STATE_GET",
1057
+ entityCategory: "diagnostic",
1058
+ }),
1059
+ emergencyShutoffRecovery: () => m.enumLookup({
1060
+ name: "emergency_shutoff_recovery",
1061
+ cluster: "manuSpecificSDevices",
1062
+ attribute: "emergencyShutoffRecovery",
1063
+ description: "Condition of automatic recovery after emergency shutoff",
1064
+ lookup: { disabled: 0, voltage_is_good: 1 },
1065
+ zigbeeCommandOptions: manufacturerOptions,
1066
+ }),
1067
+ upperVoltageThreshold: () => m.numeric({
1068
+ name: "upper_voltage_threshold",
1069
+ cluster: "manuSpecificSDevices",
1070
+ attribute: "upperVoltageThreshold",
1071
+ description: "Upper voltage threshold",
1072
+ valueMin: 230000,
1073
+ valueMax: 260000,
1074
+ valueStep: 1000,
1075
+ unit: "mV",
1076
+ zigbeeCommandOptions: manufacturerOptions,
1077
+ }),
1078
+ lowerVoltageThreshold: () => m.numeric({
1079
+ name: "lower_voltage_threshold",
1080
+ cluster: "manuSpecificSDevices",
1081
+ attribute: "lowerVoltageThreshold",
1082
+ description: "Lower voltage threshold (use with caution)",
1083
+ valueMin: 100000,
1084
+ valueMax: 230000,
1085
+ valueStep: 1000,
1086
+ unit: "mV",
1087
+ zigbeeCommandOptions: manufacturerOptions,
1088
+ }),
1089
+ upperCurrentThreshold: () => m.numeric({
1090
+ name: "upper_current_threshold",
1091
+ cluster: "manuSpecificSDevices",
1092
+ attribute: "upperCurrentThreshold",
1093
+ description: "Upper current threshold",
1094
+ valueMin: 100,
1095
+ valueMax: 16000,
1096
+ valueStep: 100,
1097
+ unit: "mA",
1098
+ zigbeeCommandOptions: manufacturerOptions,
1099
+ }),
1100
+ temperatureThreshold: () => m.numeric({
1101
+ name: "temperature_threshold",
1102
+ cluster: "manuSpecificSDevices",
1103
+ attribute: "upperTempThreshold",
1104
+ description: "Overtemperature threshold (use with caution)",
1105
+ valueMin: -200,
1106
+ valueMax: 200,
1107
+ valueStep: 1,
1108
+ unit: "°C",
1109
+ zigbeeCommandOptions: manufacturerOptions,
1110
+ }),
1111
+ deviceCustomDiagnostic: (buttonsCount, relaysCount) => {
1112
+ const extend = m.numeric({
1113
+ name: "resets_count",
1114
+ cluster: "haDiagnostic",
1115
+ attribute: "numberOfResets",
1116
+ description: "(telemetry) Number of resets",
1117
+ entityCategory: "diagnostic",
1118
+ access: "STATE_GET",
1119
+ });
1120
+ // Custom diagnostics attributes should not be configured automatically
1121
+ extend.configure = [];
1122
+ const uptime = m.numeric({
1123
+ name: "uptime",
1124
+ cluster: "haDiagnostic",
1125
+ attribute: "sdevicesUptimeS",
1126
+ description: "(telemetry) Device uptime, in seconds",
1127
+ entityCategory: "diagnostic",
1128
+ unit: "s",
1129
+ access: "STATE_GET",
1130
+ zigbeeCommandOptions: manufacturerOptions,
1131
+ });
1132
+ extend.fromZigbee.push(...uptime.fromZigbee);
1133
+ extend.toZigbee.push(...uptime.toZigbee);
1134
+ extend.exposes.push(...uptime.exposes);
1135
+ for (let i = 1; i <= Math.min(buttonsCount, 3); i++) {
1136
+ const attrNames = ["sdevicesButton1Clicks", "sdevicesButton2Clicks", "sdevicesButton3Clicks"];
1137
+ const buttonClicks = m.numeric({
1138
+ name: `button_clicks_count_${i}`,
1139
+ cluster: "haDiagnostic",
1140
+ attribute: attrNames[i - 1],
1141
+ description: `(telemetry) Total clicks count of button ${i}`,
1142
+ entityCategory: "diagnostic",
1143
+ access: "STATE_GET",
1144
+ zigbeeCommandOptions: manufacturerOptions,
1145
+ });
1146
+ extend.fromZigbee.push(...buttonClicks.fromZigbee);
1147
+ extend.toZigbee.push(...buttonClicks.toZigbee);
1148
+ extend.exposes.push(...buttonClicks.exposes);
1149
+ }
1150
+ for (let i = 1; i <= Math.min(relaysCount, 2); i++) {
1151
+ const attrNames = ["sdevicesRelay1Switches", "sdevicesRelay2Switches"];
1152
+ const relayToggles = m.numeric({
1153
+ name: `relay_switches_count_${i}`,
1154
+ cluster: "haDiagnostic",
1155
+ attribute: attrNames[i - 1],
1156
+ description: `(telemetry) Total toggle count of relay ${i}`,
1157
+ entityCategory: "diagnostic",
1158
+ access: "STATE_GET",
1159
+ zigbeeCommandOptions: manufacturerOptions,
1160
+ reporting: false,
1161
+ });
1162
+ extend.fromZigbee.push(...relayToggles.fromZigbee);
1163
+ extend.toZigbee.push(...relayToggles.toZigbee);
1164
+ extend.exposes.push(...relayToggles.exposes);
1165
+ }
1166
+ return extend;
1167
+ },
1168
+ };
1169
+ exports.definitions = [
1170
+ {
1171
+ fingerprint: tuya.fingerprint("SM0202", ["_TYZB01_2jzbhomb"]),
1172
+ model: "SBDV-00029",
1173
+ vendor: "Sber",
1174
+ description: "Smart motion sensor",
1175
+ extend: [
1176
+ m.iasZoneAlarm({ zoneType: "occupancy", zoneAttributes: ["alarm_1", "tamper", "battery_low"], alarmTimeout: true }),
1177
+ m.battery({ voltage: true, voltageReporting: true }),
1178
+ ],
1179
+ },
1180
+ {
1181
+ fingerprint: tuya.fingerprint("TS0203", ["_TYZB01_epni2jgy"]),
1182
+ model: "SBDV-00030",
1183
+ vendor: "Sber",
1184
+ description: "Smart opening sensor",
1185
+ extend: [
1186
+ m.ignoreClusterReport({ cluster: "genBasic" }),
1187
+ m.iasZoneAlarm({ zoneType: "contact", zoneAttributes: ["alarm_1", "tamper", "battery_low"] }),
1188
+ m.battery({ voltage: true, voltageReporting: true }),
1189
+ ],
1190
+ },
1191
+ {
1192
+ fingerprint: tuya.fingerprint("TS0041A", ["_TYZB01_ub7urdza"]),
1193
+ model: "SBDV-00032",
1194
+ vendor: "Sber",
1195
+ description: "Smart button",
1196
+ extend: [
1197
+ tuyaMagicPacket(),
1198
+ tuyaOnOffActionLegacy({ actions: ["single", "double", "hold"] }),
1199
+ m.battery({ percentageReporting: false }),
1200
+ /*
1201
+ * reporting.batteryPercentageRemaining removed as it was causing devices to fall of the network
1202
+ * every 1 hour, with light flashing when it happened, extremely short battery life, 2 presses for
1203
+ * action to register: https://github.com/Koenkk/zigbee2mqtt/issues/8072
1204
+ * Initially wrapped in a try catch: https://github.com/Koenkk/zigbee2mqtt/issues/6313
1205
+ */
1206
+ ],
1207
+ },
1208
+ {
1209
+ fingerprint: tuya.fingerprint("TS0201", ["_TZ3000_zfirri2d"]),
1210
+ model: "SBDV-00079",
1211
+ vendor: "Sber",
1212
+ description: "Smart temperature and humidity sensor",
1213
+ extend: [m.temperature(), m.humidity(), m.battery({ voltage: true, voltageReporting: true })],
1214
+ },
1215
+ {
1216
+ fingerprint: tuya.fingerprint("TS0207", ["_TZ3000_c8bqthpo"]),
1217
+ model: "SBDV-00154",
1218
+ vendor: "Sber",
1219
+ description: "Smart water leak sensor",
1220
+ extend: [
1221
+ m.ignoreClusterReport({ cluster: "genBasic" }),
1222
+ m.iasZoneAlarm({ zoneType: "water_leak", zoneAttributes: ["alarm_1", "battery_low"] }),
1223
+ m.battery(),
1224
+ ],
1225
+ },
1226
+ {
1227
+ fingerprint: [{ modelID: "SBDV-00196", manufacturerName: "SDevices" }],
1228
+ model: "SBDV-00196",
1229
+ vendor: "Sber",
1230
+ description: "Smart Wall Switch (with neutral, single button)",
1231
+ fromZigbee: [],
1232
+ toZigbee: [],
1233
+ extend: [
1234
+ sdevicesExtend.sdevicesCustomCluster(),
1235
+ sdevicesExtend.haDiagnosticCluster(),
1236
+ sdevicesExtend.genOnOffCluster(),
1237
+ m.binary({
1238
+ name: "allow_double_click",
1239
+ cluster: "manuSpecificSDevices",
1240
+ attribute: "buttonEnableMultiClick",
1241
+ description: "Allow detection of double clicks, may introduce delay in reaction when enabled",
1242
+ valueOn: ["ON", 0x01],
1243
+ valueOff: ["OFF", 0x00],
1244
+ zigbeeCommandOptions: manufacturerOptions,
1245
+ }),
1246
+ sdevicesExtend.ledIndicatorSettings(),
1247
+ m.identify(),
1248
+ m.onOff({
1249
+ powerOnBehavior: true,
1250
+ configureReporting: false,
1251
+ }),
1252
+ sdevicesExtend.onOffRelayDecouple({
1253
+ name: "relay_mode",
1254
+ description: "Decoupled mode for button",
1255
+ }),
1256
+ m.actionEnumLookup({
1257
+ cluster: "genMultistateInput",
1258
+ attribute: "presentValue",
1259
+ actionLookup: { hold: 0, single: 1, double: 2 },
1260
+ }),
1261
+ sdevicesExtend.childLock(),
1262
+ sdevicesExtend.deviceInfo(),
1263
+ sdevicesExtend.deviceCustomDiagnostic(2, 1),
1264
+ ],
1265
+ ota: true,
1266
+ configure: async (device, coordinatorEndpoint) => {
1267
+ await device.getEndpoint(1).read("genOnOff", ["onOff", "startUpOnOff"]);
1268
+ await device.getEndpoint(1).read("genBasic", ["serialNumber"]);
1269
+ await device
1270
+ .getEndpoint(1)
1271
+ .read("manuSpecificSDevices", [
1272
+ "ledIndicatorOnEnable",
1273
+ "ledIndicatorOnH",
1274
+ "ledIndicatorOnS",
1275
+ "ledIndicatorOnB",
1276
+ "ledIndicatorOffEnable",
1277
+ "ledIndicatorOffH",
1278
+ "ledIndicatorOffS",
1279
+ "ledIndicatorOffB",
1280
+ ]);
1281
+ await device.getEndpoint(1).read("manuSpecificSDevices", ["buttonEnableMultiClick"]);
1282
+ try {
1283
+ await device.getEndpoint(1).read("manuSpecificSDevices", ["childLock"]);
1284
+ }
1285
+ catch (error) {
1286
+ if (error.message.includes("UNSUPPORTED_ATTRIBUTE")) {
1287
+ // ignore: attribute is not supported in early versions
1288
+ }
1289
+ else {
1290
+ logger_1.logger.warning(`Configure failed: ${error}`, NS);
1291
+ }
1292
+ }
1293
+ await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ["genOnOff", "genMultistateInput"]);
1294
+ await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ["haDiagnostic"]);
1295
+ },
1296
+ },
1297
+ {
1298
+ fingerprint: [{ modelID: "SBDV-00199", manufacturerName: "SDevices" }],
1299
+ model: "SBDV-00199",
1300
+ vendor: "Sber",
1301
+ description: "Smart Wall Switch (with neutral, two buttons)",
1302
+ fromZigbee: [
1303
+ fz.on_off,
1304
+ fz.power_on_behavior,
1305
+ sdevices.fz.cover_position_tilt,
1306
+ sdevices.fz.multistate_input,
1307
+ sdevices.fz.led_indicator_settings,
1308
+ sdevices.fz.decouple_relay,
1309
+ sdevices.fz.allow_double_click,
1310
+ sdevices.fz.closures,
1311
+ ],
1312
+ toZigbee: [
1313
+ sdevices.tz.custom_on_off,
1314
+ tz.power_on_behavior,
1315
+ tz.cover_position_tilt,
1316
+ sdevices.tz.cover_state,
1317
+ sdevices.tz.cover_mode,
1318
+ sdevices.tz.identify,
1319
+ sdevices.tz.led_indicator_on_settings,
1320
+ sdevices.tz.led_indicator_off_settings,
1321
+ sdevices.tz.decouple_relay,
1322
+ sdevices.tz.allow_double_click,
1323
+ sdevices.tz.closures_custom,
1324
+ ],
1325
+ exposes: (device, options) => {
1326
+ const switchExposes = [];
1327
+ if (!utils.isDummyDevice(device)) {
1328
+ const coversEpName = "cover";
1329
+ const coversExposes = [
1330
+ e.enum("State", ea.STATE_SET, ["OPEN", "CLOSE", "STOP"]).withProperty("current_state").withEndpoint(coversEpName),
1331
+ e
1332
+ .numeric("position", ea.ALL)
1333
+ .withValueMin(0)
1334
+ .withValueMax(100)
1335
+ .withDescription("Position of this cover, 100 is fully open if 'Invert cover' option is false (default)")
1336
+ .withUnit("%")
1337
+ .withEndpoint(coversEpName),
1338
+ e
1339
+ .composite("cover_mode", "cover_mode", ea.ALL)
1340
+ .withFeature(e.binary("reversed", ea.ALL, true, false).withDescription("Reversal of the motor rotating direction"))
1341
+ .withEndpoint(coversEpName),
1342
+ e
1343
+ .numeric("calibration_time", ea.ALL)
1344
+ .withValueMin(0)
1345
+ .withValueMax(3600)
1346
+ .withValueStep(0.1)
1347
+ .withDescription("Calibration time")
1348
+ .withUnit("s")
1349
+ .withEndpoint(coversEpName),
1350
+ e
1351
+ .numeric("motor_timeout", ea.ALL)
1352
+ .withValueMin(0)
1353
+ .withValueMax(3600)
1354
+ .withDescription("Timeout for continuous motor action")
1355
+ .withUnit("s")
1356
+ .withEndpoint(coversEpName),
1357
+ e.enum("Buttons mode", ea.ALL, ["normal", "inverted"]).withProperty("buttons_mode").withEndpoint(coversEpName),
1358
+ e
1359
+ .enum("identify", ea.SET, ["identify"])
1360
+ .withLabel("Identify")
1361
+ .withDescription("Initiate device identification")
1362
+ .withCategory("config")
1363
+ .withEndpoint(coversEpName),
1364
+ e
1365
+ .binary("led_indicator_off_enable", ea.ALL, "ON", "OFF")
1366
+ .withLabel("LED indication")
1367
+ .withDescription("Is LED indicator enabled")
1368
+ .withEndpoint(coversEpName),
1369
+ e
1370
+ .numeric("led_indicator_off_h", ea.ALL)
1371
+ .withUnit("°")
1372
+ .withValueMin(0)
1373
+ .withValueMax(359)
1374
+ .withLabel("Hue")
1375
+ .withDescription("Hue of LED indicator")
1376
+ .withEndpoint(coversEpName),
1377
+ e
1378
+ .numeric("led_indicator_off_s", ea.ALL)
1379
+ .withValueMin(0)
1380
+ .withValueMax(0xfe)
1381
+ .withLabel("Saturation")
1382
+ .withDescription("Saturation of LED indicator")
1383
+ .withEndpoint(coversEpName),
1384
+ e
1385
+ .numeric("led_indicator_off_b", ea.ALL)
1386
+ .withValueMin(1)
1387
+ .withValueMax(0xfe)
1388
+ .withLabel("Brightness")
1389
+ .withDescription("Brightness of LED indicator")
1390
+ .withEndpoint(coversEpName),
1391
+ ];
1392
+ if (device.meta.window_covering_enabled) {
1393
+ return [...coversExposes];
1394
+ }
1395
+ }
1396
+ const endpointsCount = 2;
1397
+ switchExposes.push(e.action(["hold_switch_1", "hold_switch_2", "single_switch_1", "single_switch_2", "double_switch_1", "double_switch_2"]));
1398
+ for (let i = 1; i <= endpointsCount; i++) {
1399
+ const epName = `switch_${i}`;
1400
+ const epPrefix = `(${i}) `;
1401
+ switchExposes.push(e.switch().withEndpoint(epName));
1402
+ switchExposes.push(e.power_on_behavior(["off", "on", "toggle", "previous"]).withLabel(`${epPrefix}Power-on behavior`).withEndpoint(epName));
1403
+ switchExposes.push(e
1404
+ .enum("relay_mode", ea.ALL, ["control_relay", "decoupled"])
1405
+ .withLabel(`${epPrefix}Relay mode`)
1406
+ .withDescription("Decoupled mode")
1407
+ .withEndpoint(epName));
1408
+ switchExposes.push(e
1409
+ .binary("allow_double_click", ea.ALL, "ON", "OFF")
1410
+ .withLabel(`${epPrefix}Allow double clicks`)
1411
+ .withDescription("Allow detection of double clicks, may introduce delay in reaction when enabled")
1412
+ .withEndpoint(epName));
1413
+ switchExposes.push(e
1414
+ .enum("identify", ea.SET, ["identify"])
1415
+ .withLabel(`${epPrefix}Identify`)
1416
+ .withDescription("Initiate device identification")
1417
+ .withCategory("config")
1418
+ .withEndpoint(epName));
1419
+ switchExposes.push(e
1420
+ .binary("led_indicator_on_enable", ea.ALL, "ON", "OFF")
1421
+ .withLabel(`${epPrefix}LED indication`)
1422
+ .withDescription("Is LED indicator enabled in ON state")
1423
+ .withEndpoint(epName));
1424
+ switchExposes.push(e
1425
+ .numeric("led_indicator_on_h", ea.ALL)
1426
+ .withUnit("°")
1427
+ .withValueMin(0)
1428
+ .withValueMax(359)
1429
+ .withLabel(`${epPrefix}Hue`)
1430
+ .withDescription("Hue of LED in ON state")
1431
+ .withEndpoint(epName));
1432
+ switchExposes.push(e
1433
+ .numeric("led_indicator_on_s", ea.ALL)
1434
+ .withValueMin(0)
1435
+ .withValueMax(0xfe)
1436
+ .withLabel(`${epPrefix}Saturation`)
1437
+ .withDescription("Saturation of LED in ON state")
1438
+ .withEndpoint(epName));
1439
+ switchExposes.push(e
1440
+ .numeric("led_indicator_on_b", ea.ALL)
1441
+ .withValueMin(1)
1442
+ .withValueMax(0xfe)
1443
+ .withLabel(`${epPrefix}Brightness`)
1444
+ .withDescription("Brightness of LED in ON state")
1445
+ .withEndpoint(epName));
1446
+ switchExposes.push(e
1447
+ .binary("led_indicator_off_enable", ea.ALL, "ON", "OFF")
1448
+ .withLabel(`${epPrefix}LED indication`)
1449
+ .withDescription("Is LED indicator enabled in OFF state")
1450
+ .withEndpoint(epName));
1451
+ switchExposes.push(e
1452
+ .numeric("led_indicator_off_h", ea.ALL)
1453
+ .withUnit("°")
1454
+ .withValueMin(0)
1455
+ .withValueMax(359)
1456
+ .withLabel(`${epPrefix}Hue`)
1457
+ .withDescription("Hue of LED in OFF state")
1458
+ .withEndpoint(epName));
1459
+ switchExposes.push(e
1460
+ .numeric("led_indicator_off_s", ea.ALL)
1461
+ .withValueMin(0)
1462
+ .withValueMax(0xfe)
1463
+ .withLabel(`${epPrefix}Saturation`)
1464
+ .withDescription("Saturation of LED in OFF state")
1465
+ .withEndpoint(epName));
1466
+ switchExposes.push(e
1467
+ .numeric("led_indicator_off_b", ea.ALL)
1468
+ .withValueMin(1)
1469
+ .withValueMax(0xfe)
1470
+ .withLabel(`${epPrefix}Brightness`)
1471
+ .withDescription("Brightness of LED in OFF state")
1472
+ .withEndpoint(epName));
1473
+ }
1474
+ return [...switchExposes];
1475
+ },
1476
+ extend: [
1477
+ m.deviceEndpoints({ endpoints: { switch_1: 1, switch_2: 2, cover: 3 } }),
1478
+ sdevicesExtend.sdevicesCustomCluster(),
1479
+ sdevicesExtend.haDiagnosticCluster(),
1480
+ sdevicesExtend.genOnOffCluster(),
1481
+ sdevicesExtend.closuresWindowCoveringCluster(),
1482
+ sdevicesExtend.childLock(),
1483
+ sdevicesExtend.deviceInfo(),
1484
+ sdevicesExtend.deviceCustomDiagnostic(3, 2),
1485
+ ],
1486
+ ota: true,
1487
+ configure: async (device, coordinatorEndpoint) => {
1488
+ if (!device.customClusters.manuSpecificSDevices) {
1489
+ device.addCustomCluster("manuSpecificSDevices", sdevicesCustomClusterDefinition);
1490
+ }
1491
+ const coveringEp = device.getEndpoint(3);
1492
+ if (coveringEp != null) {
1493
+ try {
1494
+ const deviceCoverMode = await device.getEndpoint(3).read("genBasic", ["deviceEnabled"]);
1495
+ device.meta.window_covering_enabled = !!deviceCoverMode.deviceEnabled;
1496
+ device.save();
1497
+ }
1498
+ catch (error) {
1499
+ if (error.message.includes("UNSUPPORTED_ATTRIBUTE")) {
1500
+ device.meta.window_covering_enabled = false;
1501
+ device.save();
1502
+ }
1503
+ else {
1504
+ throw error;
1505
+ }
1506
+ }
1507
+ }
1508
+ else {
1509
+ device.meta.window_covering_enabled = false;
1510
+ device.save();
1511
+ }
1512
+ if (device.meta.window_covering_enabled) {
1513
+ /* Device is in Window Covering mode */
1514
+ await device.getEndpoint(3).read("genBasic", ["serialNumber"]);
1515
+ await device.getEndpoint(3).read("closuresWindowCovering", ["currentPositionLiftPercentage", "windowCoveringMode"]);
1516
+ await device
1517
+ .getEndpoint(3)
1518
+ .read("closuresWindowCovering", ["sdevicesCalibrationTime", "sdevicesButtonsMode", "sdevicesMotorTimeout"], manufacturerOptions);
1519
+ await device
1520
+ .getEndpoint(3)
1521
+ .read("manuSpecificSDevices", ["ledIndicatorOffEnable", "ledIndicatorOffH", "ledIndicatorOffS", "ledIndicatorOffB"], manufacturerOptions);
1522
+ await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ["closuresWindowCovering"]);
1523
+ await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ["manuSpecificSDevices"]);
1524
+ await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ["haDiagnostic"]);
1525
+ try {
1526
+ await device.getEndpoint(3).read("manuSpecificSDevices", ["childLock"]);
1527
+ }
1528
+ catch (error) {
1529
+ if (error.message.includes("UNSUPPORTED_ATTRIBUTE")) {
1530
+ // ignore: attribute is not supported in early versions
1531
+ }
1532
+ else {
1533
+ logger_1.logger.warning(`Configure failed: ${error}`, NS);
1534
+ }
1535
+ }
1536
+ }
1537
+ else {
1538
+ /* Device is in 2-button Switch mode */
1539
+ await device.getEndpoint(1).read("genBasic", ["serialNumber"]);
1540
+ await device.getEndpoint(1).read("genOnOff", ["onOff", "startUpOnOff"]);
1541
+ await device.getEndpoint(2).read("genOnOff", ["onOff", "startUpOnOff"]);
1542
+ await device.getEndpoint(1).read("genOnOff", ["sdevicesRelayDecouple"], manufacturerOptions);
1543
+ await device.getEndpoint(2).read("genOnOff", ["sdevicesRelayDecouple"], manufacturerOptions);
1544
+ await device
1545
+ .getEndpoint(1)
1546
+ .read("manuSpecificSDevices", [
1547
+ "buttonEnableMultiClick",
1548
+ "ledIndicatorOnEnable",
1549
+ "ledIndicatorOnH",
1550
+ "ledIndicatorOnS",
1551
+ "ledIndicatorOnB",
1552
+ "ledIndicatorOffEnable",
1553
+ "ledIndicatorOffH",
1554
+ "ledIndicatorOffS",
1555
+ "ledIndicatorOffB",
1556
+ ], manufacturerOptions);
1557
+ await device
1558
+ .getEndpoint(2)
1559
+ .read("manuSpecificSDevices", [
1560
+ "buttonEnableMultiClick",
1561
+ "ledIndicatorOnEnable",
1562
+ "ledIndicatorOnH",
1563
+ "ledIndicatorOnS",
1564
+ "ledIndicatorOnB",
1565
+ "ledIndicatorOffEnable",
1566
+ "ledIndicatorOffH",
1567
+ "ledIndicatorOffS",
1568
+ "ledIndicatorOffB",
1569
+ ], manufacturerOptions);
1570
+ await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ["genOnOff", "genMultistateInput"]);
1571
+ await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ["genOnOff", "genMultistateInput"]);
1572
+ await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ["manuSpecificSDevices"]);
1573
+ await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ["haDiagnostic"]);
1574
+ try {
1575
+ await device.getEndpoint(1).read("manuSpecificSDevices", ["childLock"]);
1576
+ }
1577
+ catch (error) {
1578
+ if (error.message.includes("UNSUPPORTED_ATTRIBUTE")) {
1579
+ // ignore: attribute is not supported in early versions
1580
+ }
1581
+ else {
1582
+ logger_1.logger.warning(`Configure failed: ${error}`, NS);
1583
+ }
1584
+ }
1585
+ }
1586
+ device.save();
1587
+ },
1588
+ },
1589
+ {
1590
+ fingerprint: [{ modelID: "SBDV-00202", manufacturerName: "SDevices" }],
1591
+ model: "SBDV-00202",
1592
+ vendor: "Sber",
1593
+ description: "Smart Wall Socket",
1594
+ fromZigbee: [sdevices.fz.emergency_shutoff_state],
1595
+ exposes: [
1596
+ e.binary("emergency_overvoltage", ea.STATE, true, false).withDescription("Overvoltage alarm is triggered").withCategory("diagnostic"),
1597
+ e.binary("emergency_undervoltage", ea.STATE, true, false).withDescription("Undervoltage alarm is triggered").withCategory("diagnostic"),
1598
+ e.binary("emergency_overcurrent", ea.STATE, true, false).withDescription("Overcurrent alarm is triggered").withCategory("diagnostic"),
1599
+ e.binary("emergency_overheat", ea.STATE, true, false).withDescription("Overheat alarm is triggered").withCategory("diagnostic"),
1600
+ ],
1601
+ extend: [
1602
+ sdevicesExtend.sdevicesCustomCluster(),
1603
+ sdevicesExtend.haDiagnosticCluster(),
1604
+ m.identify(),
1605
+ sdevicesExtend.deviceTemperature(),
1606
+ m.onOff({
1607
+ powerOnBehavior: true,
1608
+ configureReporting: false,
1609
+ }),
1610
+ sdevicesExtend.childLock(),
1611
+ sdevicesExtend.electricityMeter(),
1612
+ sdevicesExtend.ledIndicatorSettings(),
1613
+ sdevicesExtend.emergencyShutoffRecovery(),
1614
+ sdevicesExtend.upperVoltageThreshold(),
1615
+ sdevicesExtend.lowerVoltageThreshold(),
1616
+ sdevicesExtend.upperCurrentThreshold(),
1617
+ sdevicesExtend.temperatureThreshold(),
1618
+ sdevicesExtend.deviceInfo(),
1619
+ sdevicesExtend.deviceCustomDiagnostic(1, 1),
1620
+ ],
1621
+ ota: true,
1622
+ configure: async (device, coordinatorEndpoint) => {
1623
+ const endpoint = device.getEndpoint(1);
1624
+ await endpoint.read("genBasic", ["serialNumber"]);
1625
+ await endpoint.read("genOnOff", ["onOff", "startUpOnOff"]);
1626
+ await endpoint.read("manuSpecificSDevices", [
1627
+ "childLock",
1628
+ "rmsVoltageMv",
1629
+ "rmsCurrentMa",
1630
+ "activePowerMw",
1631
+ ]);
1632
+ await endpoint.read("manuSpecificSDevices", [
1633
+ "ledIndicatorOnEnable",
1634
+ "ledIndicatorOnH",
1635
+ "ledIndicatorOnS",
1636
+ "ledIndicatorOnB",
1637
+ "ledIndicatorOffEnable",
1638
+ "ledIndicatorOffH",
1639
+ "ledIndicatorOffS",
1640
+ "ledIndicatorOffB",
1641
+ ]);
1642
+ await endpoint.read("manuSpecificSDevices", [
1643
+ "upperVoltageThreshold",
1644
+ "lowerVoltageThreshold",
1645
+ "upperCurrentThreshold",
1646
+ "upperTempThreshold",
1647
+ ]);
1648
+ await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "genDeviceTempCfg", "manuSpecificSDevices"]);
1649
+ await reporting.bind(endpoint, coordinatorEndpoint, ["haDiagnostic"]);
1650
+ },
1651
+ },
1652
+ {
1653
+ fingerprint: [{ modelID: "SBDV-00205", manufacturerName: "SDevices" }],
1654
+ model: "SBDV-00205",
1655
+ vendor: "Sber",
1656
+ description: "Smart Thermostat",
1657
+ fromZigbee: [
1658
+ sdevices.fz.emergency_shutoff_state_v2,
1659
+ sdevices.fz.sensor_error,
1660
+ sdevices.fz.event_status,
1661
+ fz.temperature,
1662
+ fz.thermostat,
1663
+ fz.hvac_user_interface,
1664
+ ],
1665
+ toZigbee: [
1666
+ tz.thermostat_local_temperature,
1667
+ tz.thermostat_occupied_heating_setpoint,
1668
+ tz.thermostat_local_temperature_calibration,
1669
+ tz.thermostat_system_mode,
1670
+ tz.thermostat_running_mode,
1671
+ tz.thermostat_running_state,
1672
+ tz.thermostat_keypad_lockout,
1673
+ tz.thermostat_min_heat_setpoint_limit,
1674
+ tz.thermostat_max_heat_setpoint_limit,
1675
+ tz.thermostat_control_sequence_of_operation,
1676
+ tz.thermostat_clear_weekly_schedule,
1677
+ tz.thermostat_programming_operation_mode,
1678
+ sdevices.tz.thermostat_abs_min_heat_setpoint_limit,
1679
+ sdevices.tz.thermostat_abs_max_heat_setpoint_limit,
1680
+ ],
1681
+ exposes: [
1682
+ e.binary("emergency_overcurrent", ea.STATE, true, false).withDescription("Overcurrent alarm is triggered").withCategory("diagnostic"),
1683
+ e.binary("emergency_overheat", ea.STATE, true, false).withDescription("Overheat alarm is triggered").withCategory("diagnostic"),
1684
+ e.binary("emergency_no_load", ea.STATE, true, false).withDescription("Load disconnection alarm is triggered").withCategory("diagnostic"),
1685
+ e
1686
+ .binary("sensor_error_remote_disconnected", ea.STATE, true, false)
1687
+ .withDescription("Wireless sensor disconnected")
1688
+ .withCategory("diagnostic"),
1689
+ e
1690
+ .binary("sensor_error_local_disconnected", ea.STATE, true, false)
1691
+ .withDescription("Wired sensor disconnected")
1692
+ .withCategory("diagnostic"),
1693
+ e.binary("sensor_error_short_circuit", ea.STATE, true, false).withDescription("Wired sensor short circuit").withCategory("diagnostic"),
1694
+ e.binary("status_heat_inefficient", ea.STATE, true, false).withDescription("Heating is inefficient").withCategory("diagnostic"),
1695
+ e.binary("status_antifrost", ea.STATE, true, false).withDescription("Antifrost mode").withCategory("diagnostic"),
1696
+ e
1697
+ .binary("status_invalid_time", ea.STATE, true, false)
1698
+ .withDescription("Time information is not valid, schedule is not functioning")
1699
+ .withCategory("diagnostic"),
1700
+ e.enum("keypad_lockout", ea.ALL, ["unlock", "lock1"]).withDescription("Enables/disables physical input on the device"),
1701
+ e
1702
+ .climate()
1703
+ .withSetpoint("occupied_heating_setpoint", 1, 50, 0.5)
1704
+ .withLocalTemperature(ea.STATE_GET, "Current temperature value used by thermostat")
1705
+ .withSystemMode(["heat", "off", "sleep"])
1706
+ .withLocalTemperatureCalibration()
1707
+ .withControlSequenceOfOperation(["heating_only"], ea.ALL)
1708
+ .withRunningMode(["off", "heat"])
1709
+ .withRunningState(["idle", "heat"], ea.STATE_GET),
1710
+ e.enum("clear_weekly_schedule", ea.SET, ["Clear"]),
1711
+ e
1712
+ .programming_operation_mode(["setpoint", "schedule"])
1713
+ .withDescription("Controls how programming affects the thermostat. Possible values: setpoint (only use specified setpoint), " +
1714
+ "schedule (follow programmed setpoint schedule)"),
1715
+ e.numeric("abs_min_heat_setpoint_limit", ea.STATE_GET).withUnit("°C").withDescription("Absolute min temperature allowed on the device"),
1716
+ e.numeric("abs_max_heat_setpoint_limit", ea.STATE_GET).withUnit("°C").withDescription("Absolute max temperature allowed on the device"),
1717
+ e.min_heat_setpoint_limit(1, 35, 0.5),
1718
+ e.max_heat_setpoint_limit(5, 50, 0.5),
1719
+ ],
1720
+ extend: [
1721
+ sdevicesExtend.sdevicesCustomCluster(),
1722
+ sdevicesExtend.haDiagnosticCluster(),
1723
+ sdevicesExtend.hvacThermostatCluster(),
1724
+ sdevicesExtend.hvacUserInterfaceCfgCluster(),
1725
+ sdevicesExtend.thermostatWeeklySchedule(),
1726
+ m.numeric({
1727
+ name: "min_local_temperature_limit",
1728
+ cluster: "hvacThermostat",
1729
+ attribute: "sdevicesMinLocalTemperatureLimit",
1730
+ description: "Min Local Temperature Threshold",
1731
+ valueMin: 1.0,
1732
+ valueMax: 35.0,
1733
+ valueStep: 0.01,
1734
+ scale: 100,
1735
+ unit: "°C",
1736
+ zigbeeCommandOptions: manufacturerOptions,
1737
+ }),
1738
+ m.numeric({
1739
+ name: "max_local_temperature_limit",
1740
+ cluster: "hvacThermostat",
1741
+ attribute: "sdevicesMaxLocalTemperatureLimit",
1742
+ description: "Max Local Temperature Threshold",
1743
+ valueMin: 5.0,
1744
+ valueMax: 50.0,
1745
+ valueStep: 0.01,
1746
+ scale: 100,
1747
+ unit: "°C",
1748
+ zigbeeCommandOptions: manufacturerOptions,
1749
+ }),
1750
+ m.numeric({
1751
+ name: "heating_hysteresis",
1752
+ cluster: "hvacThermostat",
1753
+ attribute: "sdevicesHeatingHysteresis",
1754
+ description: "Heating hysteresis",
1755
+ valueMin: 1.0,
1756
+ valueMax: 10.0,
1757
+ valueStep: 0.1,
1758
+ scale: 10,
1759
+ unit: "°C",
1760
+ zigbeeCommandOptions: manufacturerOptions,
1761
+ }),
1762
+ sdevicesExtend.deviceTemperature(),
1763
+ m.temperature({
1764
+ label: "Sensor Temperature (Wired)",
1765
+ description: "Temperature from wired NTC sensor",
1766
+ }),
1767
+ sdevicesExtend.electricityMeter(),
1768
+ sdevicesExtend.upperCurrentThreshold(),
1769
+ sdevicesExtend.temperatureThreshold(),
1770
+ sdevicesExtend.thermostatSensorType(),
1771
+ m.enumLookup({
1772
+ name: "sensor_mode",
1773
+ description: "Sensor mode selects active temperature sensor: local (wired), remote (wireless), or combined logic which uses both sensors",
1774
+ cluster: "hvacThermostat",
1775
+ attribute: "sdevicesSensorMode",
1776
+ lookup: {
1777
+ local: 0,
1778
+ remote: 1,
1779
+ both: 2,
1780
+ },
1781
+ zigbeeCommandOptions: manufacturerOptions,
1782
+ }),
1783
+ m.numeric({
1784
+ name: "remote_temperature",
1785
+ cluster: "hvacThermostat",
1786
+ attribute: "sdevicesRemoteTemperature",
1787
+ description: "Remote Temperature",
1788
+ valueMin: -273.15,
1789
+ valueMax: 327.67,
1790
+ valueStep: 0.01,
1791
+ scale: 100,
1792
+ unit: "°C",
1793
+ zigbeeCommandOptions: manufacturerOptions,
1794
+ }),
1795
+ m.numeric({
1796
+ name: "remote_temperature_calibration",
1797
+ cluster: "hvacThermostat",
1798
+ attribute: "sdevicesRemoteTemperatureCalibration",
1799
+ description: "Remote Temperature Calibration",
1800
+ valueMin: -12.8,
1801
+ valueMax: 12.7,
1802
+ valueStep: 0.1,
1803
+ scale: 10,
1804
+ unit: "°C",
1805
+ zigbeeCommandOptions: manufacturerOptions,
1806
+ }),
1807
+ m.numeric({
1808
+ name: "remote_sensor_timeout",
1809
+ cluster: "hvacThermostat",
1810
+ attribute: "sdevicesRemoteSensorTimeout",
1811
+ valueMin: 1,
1812
+ valueMax: 65535,
1813
+ description: "Timeout of remote temperature sensor (in seconds)",
1814
+ zigbeeCommandOptions: manufacturerOptions,
1815
+ }),
1816
+ m.enumLookup({
1817
+ name: "output_mode",
1818
+ description: "Output mode: normal or inverted logic of relay",
1819
+ cluster: "hvacThermostat",
1820
+ attribute: "sdevicesOutputMode",
1821
+ lookup: {
1822
+ normal: 0,
1823
+ inverted: 1,
1824
+ },
1825
+ zigbeeCommandOptions: manufacturerOptions,
1826
+ }),
1827
+ m.numeric({
1828
+ name: "brightness_operations_mode",
1829
+ cluster: "hvacUserInterfaceCfg",
1830
+ attribute: "sdevicesBrightnessOperationsMode",
1831
+ valueMin: 0,
1832
+ valueMax: 1000,
1833
+ description: "Brightness (active mode)",
1834
+ zigbeeCommandOptions: manufacturerOptions,
1835
+ }),
1836
+ m.numeric({
1837
+ name: "brightness_steady_mode",
1838
+ cluster: "hvacUserInterfaceCfg",
1839
+ attribute: "sdevicesBrightnessSteadyMode",
1840
+ valueMin: 0,
1841
+ valueMax: 1000,
1842
+ description: "Brightness (steady mode)",
1843
+ zigbeeCommandOptions: manufacturerOptions,
1844
+ }),
1845
+ m.identify(),
1846
+ sdevicesExtend.rtcStatus(),
1847
+ sdevicesExtend.deviceInfo(),
1848
+ sdevicesExtend.deviceCustomDiagnostic(3, 1),
1849
+ ],
1850
+ ota: true,
1851
+ configure: async (device, coordinatorEndpoint) => {
1852
+ const endpoint = device.getEndpoint(1);
1853
+ await endpoint.read("genBasic", ["serialNumber"]);
1854
+ await endpoint.read("manuSpecificSDevices", [
1855
+ "rmsVoltageMv",
1856
+ "rmsCurrentMa",
1857
+ "activePowerMw",
1858
+ "emergencyShutoffState",
1859
+ "upperCurrentThreshold",
1860
+ "upperTempThreshold",
1861
+ ]);
1862
+ await endpoint.read("genDeviceTempCfg", ["currentTemperature"]);
1863
+ await endpoint.read("msTemperatureMeasurement", ["measuredValue"]);
1864
+ await endpoint.read("hvacThermostat", [
1865
+ "occupiedHeatingSetpoint",
1866
+ "localTemp",
1867
+ "localTemperatureCalibration",
1868
+ "absMinHeatSetpointLimit",
1869
+ "absMaxHeatSetpointLimit",
1870
+ "minHeatSetpointLimit",
1871
+ "maxHeatSetpointLimit",
1872
+ "ctrlSeqeOfOper",
1873
+ "systemMode",
1874
+ "runningMode",
1875
+ ]);
1876
+ await endpoint.read("hvacThermostat", ["startOfWeek", "numberOfWeeklyTrans", "numberOfDailyTrans", "programingOperMode", "runningState"]);
1877
+ await endpoint.read("hvacThermostat", [
1878
+ "sdevicesRemoteTemperature",
1879
+ "sdevicesRemoteTemperatureCalibration",
1880
+ "sdevicesHeatingHysteresis",
1881
+ "sdevicesMinLocalTemperatureLimit",
1882
+ "sdevicesMaxLocalTemperatureLimit",
1883
+ "sdevicesSensorError",
1884
+ "sdevicesEventStatus",
1885
+ ]);
1886
+ await endpoint.read("hvacThermostat", ["sdevicesRemoteSensorTimeout"]);
1887
+ await endpoint.read("hvacUserInterfaceCfg", ["keypadLockout"]);
1888
+ await endpoint.read("hvacUserInterfaceCfg", [
1889
+ "sdevicesBrightnessOperationsMode",
1890
+ "sdevicesBrightnessSteadyMode",
1891
+ ]);
1892
+ try {
1893
+ await endpoint.read("manuSpecificSDevices", ["rtcStatus"]);
1894
+ }
1895
+ catch (error) {
1896
+ if (error.message.includes("UNSUPPORTED_ATTRIBUTE")) {
1897
+ // ignore: attribute is not supported in early versions of firmware
1898
+ }
1899
+ else {
1900
+ logger_1.logger.warning(`Configure failed: ${error}`, NS);
1901
+ }
1902
+ }
1903
+ for (let dayOfWeekBit = 0; dayOfWeekBit < 7; dayOfWeekBit++) {
1904
+ const payload = {
1905
+ daystoreturn: 1 << dayOfWeekBit,
1906
+ modetoreturn: 1 << 0, // heat only
1907
+ };
1908
+ await endpoint.command("hvacThermostat", "getWeeklySchedule", payload, { disableDefaultResponse: true });
1909
+ }
1910
+ await reporting.bind(endpoint, coordinatorEndpoint, [
1911
+ "genDeviceTempCfg",
1912
+ "msTemperatureMeasurement",
1913
+ "hvacThermostat",
1914
+ "hvacUserInterfaceCfg",
1915
+ "manuSpecificSDevices",
1916
+ ]);
1917
+ await reporting.bind(endpoint, coordinatorEndpoint, ["haDiagnostic"]);
1918
+ },
1919
+ },
1920
+ ];
1921
+ //# sourceMappingURL=sber.js.map