@willieee802/zigbee-herdsman-converters 19.44.3 → 19.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (591) hide show
  1. package/CHANGELOG.md +1101 -0
  2. package/dist/converters/actions.d.ts.map +1 -1
  3. package/dist/converters/actions.js +2 -0
  4. package/dist/converters/actions.js.map +1 -1
  5. package/dist/converters/fromZigbee.d.ts +1 -150
  6. package/dist/converters/fromZigbee.d.ts.map +1 -1
  7. package/dist/converters/fromZigbee.js +183 -3044
  8. package/dist/converters/fromZigbee.js.map +1 -1
  9. package/dist/converters/toZigbee.d.ts +0 -121
  10. package/dist/converters/toZigbee.d.ts.map +1 -1
  11. package/dist/converters/toZigbee.js +289 -2386
  12. package/dist/converters/toZigbee.js.map +1 -1
  13. package/dist/devices/ITCommander.d.ts.map +1 -1
  14. package/dist/devices/ITCommander.js +2 -1
  15. package/dist/devices/ITCommander.js.map +1 -1
  16. package/dist/devices/acova.d.ts.map +1 -1
  17. package/dist/devices/acova.js +69 -2
  18. package/dist/devices/acova.js.map +1 -1
  19. package/dist/devices/adeo.d.ts.map +1 -1
  20. package/dist/devices/adeo.js +35 -3
  21. package/dist/devices/adeo.js.map +1 -1
  22. package/dist/devices/adurosmart.js +1 -1
  23. package/dist/devices/adurosmart.js.map +1 -1
  24. package/dist/devices/amina.d.ts.map +1 -1
  25. package/dist/devices/amina.js +47 -10
  26. package/dist/devices/amina.js.map +1 -1
  27. package/dist/devices/aurora_lighting.d.ts.map +1 -1
  28. package/dist/devices/aurora_lighting.js +15 -0
  29. package/dist/devices/aurora_lighting.js.map +1 -1
  30. package/dist/devices/automaton.d.ts.map +1 -1
  31. package/dist/devices/automaton.js +1 -0
  32. package/dist/devices/automaton.js.map +1 -1
  33. package/dist/devices/avatto.d.ts.map +1 -1
  34. package/dist/devices/avatto.js +29 -24
  35. package/dist/devices/avatto.js.map +1 -1
  36. package/dist/devices/awox.d.ts.map +1 -1
  37. package/dist/devices/awox.js +41 -3
  38. package/dist/devices/awox.js.map +1 -1
  39. package/dist/devices/bacchus.d.ts.map +1 -1
  40. package/dist/devices/bacchus.js +75 -0
  41. package/dist/devices/bacchus.js.map +1 -1
  42. package/dist/devices/bitron.d.ts.map +1 -1
  43. package/dist/devices/bitron.js +29 -2
  44. package/dist/devices/bitron.js.map +1 -1
  45. package/dist/devices/bosch.d.ts.map +1 -1
  46. package/dist/devices/bosch.js +70 -50
  47. package/dist/devices/bosch.js.map +1 -1
  48. package/dist/devices/bticino.d.ts.map +1 -1
  49. package/dist/devices/bticino.js +11 -1
  50. package/dist/devices/bticino.js.map +1 -1
  51. package/dist/devices/byun.d.ts.map +1 -1
  52. package/dist/devices/byun.js +40 -3
  53. package/dist/devices/byun.js.map +1 -1
  54. package/dist/devices/candeo.d.ts.map +1 -1
  55. package/dist/devices/candeo.js +262 -9
  56. package/dist/devices/candeo.js.map +1 -1
  57. package/dist/devices/centralite.d.ts +9 -0
  58. package/dist/devices/centralite.d.ts.map +1 -1
  59. package/dist/devices/centralite.js +44 -5
  60. package/dist/devices/centralite.js.map +1 -1
  61. package/dist/devices/{aubess.d.ts → cigol.d.ts} +1 -1
  62. package/dist/devices/cigol.d.ts.map +1 -0
  63. package/dist/devices/cigol.js +260 -0
  64. package/dist/devices/cigol.js.map +1 -0
  65. package/dist/devices/cleverio.js +2 -2
  66. package/dist/devices/cleverio.js.map +1 -1
  67. package/dist/devices/climax.d.ts.map +1 -1
  68. package/dist/devices/climax.js +15 -1
  69. package/dist/devices/climax.js.map +1 -1
  70. package/dist/devices/ctm.d.ts.map +1 -1
  71. package/dist/devices/ctm.js +845 -496
  72. package/dist/devices/ctm.js.map +1 -1
  73. package/dist/devices/custom_devices_diy.d.ts +183 -1
  74. package/dist/devices/custom_devices_diy.d.ts.map +1 -1
  75. package/dist/devices/custom_devices_diy.js +390 -33
  76. package/dist/devices/custom_devices_diy.js.map +1 -1
  77. package/dist/devices/daewoo.d.ts +3 -0
  78. package/dist/devices/daewoo.d.ts.map +1 -0
  79. package/dist/devices/daewoo.js +198 -0
  80. package/dist/devices/daewoo.js.map +1 -0
  81. package/dist/devices/danfoss.d.ts.map +1 -1
  82. package/dist/devices/danfoss.js +1270 -296
  83. package/dist/devices/danfoss.js.map +1 -1
  84. package/dist/devices/databyte.d.ts.map +1 -1
  85. package/dist/devices/databyte.js +47 -3
  86. package/dist/devices/databyte.js.map +1 -1
  87. package/dist/devices/datek.d.ts.map +1 -1
  88. package/dist/devices/datek.js +202 -41
  89. package/dist/devices/datek.js.map +1 -1
  90. package/dist/devices/dawon_dns.d.ts.map +1 -1
  91. package/dist/devices/dawon_dns.js +14 -1
  92. package/dist/devices/dawon_dns.js.map +1 -1
  93. package/dist/devices/develco.d.ts.map +1 -1
  94. package/dist/devices/develco.js +145 -64
  95. package/dist/devices/develco.js.map +1 -1
  96. package/dist/devices/diyruz.d.ts.map +1 -1
  97. package/dist/devices/diyruz.js +444 -20
  98. package/dist/devices/diyruz.js.map +1 -1
  99. package/dist/devices/domraem.d.ts.map +1 -1
  100. package/dist/devices/domraem.js +7 -0
  101. package/dist/devices/domraem.js.map +1 -1
  102. package/dist/devices/easyaccess.d.ts.map +1 -1
  103. package/dist/devices/easyaccess.js +22 -2
  104. package/dist/devices/easyaccess.js.map +1 -1
  105. package/dist/devices/easyiot.d.ts.map +1 -1
  106. package/dist/devices/easyiot.js +767 -5
  107. package/dist/devices/easyiot.js.map +1 -1
  108. package/dist/devices/echostar.d.ts.map +1 -1
  109. package/dist/devices/echostar.js +25 -1
  110. package/dist/devices/echostar.js.map +1 -1
  111. package/dist/devices/ecodim.d.ts.map +1 -1
  112. package/dist/devices/ecodim.js +8 -0
  113. package/dist/devices/ecodim.js.map +1 -1
  114. package/dist/devices/ecolink.d.ts.map +1 -1
  115. package/dist/devices/ecolink.js +12 -0
  116. package/dist/devices/ecolink.js.map +1 -1
  117. package/dist/devices/efekta.d.ts.map +1 -1
  118. package/dist/devices/efekta.js +1615 -60
  119. package/dist/devices/efekta.js.map +1 -1
  120. package/dist/devices/eglo.d.ts.map +1 -1
  121. package/dist/devices/eglo.js +203 -17
  122. package/dist/devices/eglo.js.map +1 -1
  123. package/dist/devices/elko.d.ts.map +1 -1
  124. package/dist/devices/elko.js +20 -22
  125. package/dist/devices/elko.js.map +1 -1
  126. package/dist/devices/engo.d.ts.map +1 -1
  127. package/dist/devices/engo.js +201 -0
  128. package/dist/devices/engo.js.map +1 -1
  129. package/dist/devices/enocean.d.ts.map +1 -1
  130. package/dist/devices/enocean.js +132 -4
  131. package/dist/devices/enocean.js.map +1 -1
  132. package/dist/devices/ensystec.d.ts +3 -0
  133. package/dist/devices/ensystec.d.ts.map +1 -0
  134. package/dist/devices/ensystec.js +1200 -0
  135. package/dist/devices/ensystec.js.map +1 -0
  136. package/dist/devices/eurotronic.d.ts +78 -1
  137. package/dist/devices/eurotronic.d.ts.map +1 -1
  138. package/dist/devices/eurotronic.js +244 -40
  139. package/dist/devices/eurotronic.js.map +1 -1
  140. package/dist/devices/ewelink.d.ts.map +1 -1
  141. package/dist/devices/ewelink.js +154 -2
  142. package/dist/devices/ewelink.js.map +1 -1
  143. package/dist/devices/fantem.js +1 -1
  144. package/dist/devices/fantem.js.map +1 -1
  145. package/dist/devices/fireangel.d.ts.map +1 -1
  146. package/dist/devices/fireangel.js +12 -1
  147. package/dist/devices/fireangel.js.map +1 -1
  148. package/dist/devices/frankever.d.ts.map +1 -1
  149. package/dist/devices/frankever.js +96 -0
  150. package/dist/devices/frankever.js.map +1 -1
  151. package/dist/devices/frient.d.ts.map +1 -1
  152. package/dist/devices/frient.js +15 -0
  153. package/dist/devices/frient.js.map +1 -1
  154. package/dist/devices/girier.js +1 -1
  155. package/dist/devices/girier.js.map +1 -1
  156. package/dist/devices/gledopto.js +1 -1
  157. package/dist/devices/gledopto.js.map +1 -1
  158. package/dist/devices/gmmts.d.ts.map +1 -1
  159. package/dist/devices/gmmts.js +59 -55
  160. package/dist/devices/gmmts.js.map +1 -1
  161. package/dist/devices/halo_smart_labs.d.ts +3 -0
  162. package/dist/devices/halo_smart_labs.d.ts.map +1 -0
  163. package/dist/devices/halo_smart_labs.js +918 -0
  164. package/dist/devices/halo_smart_labs.js.map +1 -0
  165. package/dist/devices/handshake_finland.d.ts +3 -0
  166. package/dist/devices/handshake_finland.d.ts.map +1 -0
  167. package/dist/devices/handshake_finland.js +15 -0
  168. package/dist/devices/handshake_finland.js.map +1 -0
  169. package/dist/devices/heiman.d.ts.map +1 -1
  170. package/dist/devices/heiman.js +1361 -147
  171. package/dist/devices/heiman.js.map +1 -1
  172. package/dist/devices/heimgard_technologies.d.ts.map +1 -1
  173. package/dist/devices/heimgard_technologies.js +13 -0
  174. package/dist/devices/heimgard_technologies.js.map +1 -1
  175. package/dist/devices/hive.d.ts.map +1 -1
  176. package/dist/devices/hive.js +11 -0
  177. package/dist/devices/hive.js.map +1 -1
  178. package/dist/devices/ikea.d.ts.map +1 -1
  179. package/dist/devices/ikea.js +185 -135
  180. package/dist/devices/ikea.js.map +1 -1
  181. package/dist/devices/iluminize.d.ts.map +1 -1
  182. package/dist/devices/iluminize.js +8 -7
  183. package/dist/devices/iluminize.js.map +1 -1
  184. package/dist/devices/immax.d.ts.map +1 -1
  185. package/dist/devices/immax.js +3 -1
  186. package/dist/devices/immax.js.map +1 -1
  187. package/dist/devices/index.d.ts.map +1 -1
  188. package/dist/devices/index.js +20 -2
  189. package/dist/devices/index.js.map +1 -1
  190. package/dist/devices/innr.d.ts.map +1 -1
  191. package/dist/devices/innr.js +34 -2
  192. package/dist/devices/innr.js.map +1 -1
  193. package/dist/devices/inovelli.d.ts.map +1 -1
  194. package/dist/devices/inovelli.js +41 -2348
  195. package/dist/devices/inovelli.js.map +1 -1
  196. package/dist/devices/iris.d.ts.map +1 -1
  197. package/dist/devices/iris.js +13 -1
  198. package/dist/devices/iris.js.map +1 -1
  199. package/dist/devices/javis.d.ts.map +1 -1
  200. package/dist/devices/javis.js +39 -1
  201. package/dist/devices/javis.js.map +1 -1
  202. package/dist/devices/jxuan.d.ts.map +1 -1
  203. package/dist/devices/jxuan.js +37 -2
  204. package/dist/devices/jxuan.js.map +1 -1
  205. package/dist/devices/kami.d.ts.map +1 -1
  206. package/dist/devices/kami.js +21 -2
  207. package/dist/devices/kami.js.map +1 -1
  208. package/dist/devices/keen_home.d.ts.map +1 -1
  209. package/dist/devices/keen_home.js +13 -3
  210. package/dist/devices/keen_home.js.map +1 -1
  211. package/dist/devices/klikaanklikuit.d.ts.map +1 -1
  212. package/dist/devices/klikaanklikuit.js +7 -0
  213. package/dist/devices/klikaanklikuit.js.map +1 -1
  214. package/dist/devices/kmpcil.d.ts.map +1 -1
  215. package/dist/devices/kmpcil.js +44 -5
  216. package/dist/devices/kmpcil.js.map +1 -1
  217. package/dist/devices/konke.d.ts.map +1 -1
  218. package/dist/devices/konke.js +10 -1
  219. package/dist/devices/konke.js.map +1 -1
  220. package/dist/devices/lds.d.ts.map +1 -1
  221. package/dist/devices/lds.js +7 -0
  222. package/dist/devices/lds.js.map +1 -1
  223. package/dist/devices/led_trading.d.ts.map +1 -1
  224. package/dist/devices/led_trading.js +13 -13
  225. package/dist/devices/led_trading.js.map +1 -1
  226. package/dist/devices/leedarson.d.ts.map +1 -1
  227. package/dist/devices/leedarson.js +140 -1
  228. package/dist/devices/leedarson.js.map +1 -1
  229. package/dist/devices/legrand.d.ts.map +1 -1
  230. package/dist/devices/legrand.js +73 -42
  231. package/dist/devices/legrand.js.map +1 -1
  232. package/dist/devices/lellki.d.ts.map +1 -1
  233. package/dist/devices/lellki.js +3 -1
  234. package/dist/devices/lellki.js.map +1 -1
  235. package/dist/devices/letv.d.ts.map +1 -1
  236. package/dist/devices/letv.js +16 -2
  237. package/dist/devices/letv.js.map +1 -1
  238. package/dist/devices/lidl.d.ts.map +1 -1
  239. package/dist/devices/lidl.js +26 -6
  240. package/dist/devices/lidl.js.map +1 -1
  241. package/dist/devices/lincukoo.d.ts.map +1 -1
  242. package/dist/devices/lincukoo.js +92 -31
  243. package/dist/devices/lincukoo.js.map +1 -1
  244. package/dist/devices/linkind.d.ts.map +1 -1
  245. package/dist/devices/linkind.js +14 -1
  246. package/dist/devices/linkind.js.map +1 -1
  247. package/dist/devices/linptech.d.ts.map +1 -1
  248. package/dist/devices/linptech.js +3 -1
  249. package/dist/devices/linptech.js.map +1 -1
  250. package/dist/devices/livingwise.d.ts.map +1 -1
  251. package/dist/devices/livingwise.js +2 -1
  252. package/dist/devices/livingwise.js.map +1 -1
  253. package/dist/devices/livolo.d.ts.map +1 -1
  254. package/dist/devices/livolo.js +612 -20
  255. package/dist/devices/livolo.js.map +1 -1
  256. package/dist/devices/lixee.d.ts.map +1 -1
  257. package/dist/devices/lixee.js +46 -44
  258. package/dist/devices/lixee.js.map +1 -1
  259. package/dist/devices/lonsonho.d.ts.map +1 -1
  260. package/dist/devices/lonsonho.js +18 -11
  261. package/dist/devices/lonsonho.js.map +1 -1
  262. package/dist/devices/lumi.d.ts.map +1 -1
  263. package/dist/devices/lumi.js +877 -155
  264. package/dist/devices/lumi.js.map +1 -1
  265. package/dist/devices/lytko.d.ts.map +1 -1
  266. package/dist/devices/lytko.js +205 -556
  267. package/dist/devices/lytko.js.map +1 -1
  268. package/dist/devices/makegood.d.ts.map +1 -1
  269. package/dist/devices/makegood.js +5 -1
  270. package/dist/devices/makegood.js.map +1 -1
  271. package/dist/devices/mazda.js +7 -7
  272. package/dist/devices/mazda.js.map +1 -1
  273. package/dist/devices/meazon.d.ts.map +1 -1
  274. package/dist/devices/meazon.js +82 -20
  275. package/dist/devices/meazon.js.map +1 -1
  276. package/dist/devices/megaman.d.ts +4 -0
  277. package/dist/devices/megaman.d.ts.map +1 -0
  278. package/dist/devices/megaman.js +48 -0
  279. package/dist/devices/megaman.js.map +1 -0
  280. package/dist/devices/mercator.d.ts.map +1 -1
  281. package/dist/devices/mercator.js +20 -5
  282. package/dist/devices/mercator.js.map +1 -1
  283. package/dist/devices/miboxer.d.ts.map +1 -1
  284. package/dist/devices/miboxer.js +3 -1
  285. package/dist/devices/miboxer.js.map +1 -1
  286. package/dist/devices/mill.d.ts.map +1 -1
  287. package/dist/devices/mill.js +33 -7
  288. package/dist/devices/mill.js.map +1 -1
  289. package/dist/devices/moes.d.ts.map +1 -1
  290. package/dist/devices/moes.js +89 -15
  291. package/dist/devices/moes.js.map +1 -1
  292. package/dist/devices/msh.d.ts +3 -0
  293. package/dist/devices/msh.d.ts.map +1 -0
  294. package/dist/devices/msh.js +93 -0
  295. package/dist/devices/msh.js.map +1 -0
  296. package/dist/devices/muller_licht.d.ts.map +1 -1
  297. package/dist/devices/muller_licht.js +11 -0
  298. package/dist/devices/muller_licht.js.map +1 -1
  299. package/dist/devices/multir.d.ts.map +1 -1
  300. package/dist/devices/multir.js +12 -1
  301. package/dist/devices/multir.js.map +1 -1
  302. package/dist/devices/multiterm.js +2 -2
  303. package/dist/devices/multiterm.js.map +1 -1
  304. package/dist/devices/namron.d.ts.map +1 -1
  305. package/dist/devices/namron.js +488 -128
  306. package/dist/devices/namron.js.map +1 -1
  307. package/dist/devices/neo.d.ts.map +1 -1
  308. package/dist/devices/neo.js +151 -192
  309. package/dist/devices/neo.js.map +1 -1
  310. package/dist/devices/netica.d.ts +3 -0
  311. package/dist/devices/netica.d.ts.map +1 -0
  312. package/dist/devices/netica.js +153 -0
  313. package/dist/devices/netica.js.map +1 -0
  314. package/dist/devices/niko.d.ts.map +1 -1
  315. package/dist/devices/niko.js +10 -8
  316. package/dist/devices/niko.js.map +1 -1
  317. package/dist/devices/nodon.d.ts.map +1 -1
  318. package/dist/devices/nodon.js +6 -4
  319. package/dist/devices/nodon.js.map +1 -1
  320. package/dist/devices/nous.d.ts.map +1 -1
  321. package/dist/devices/nous.js +160 -61
  322. package/dist/devices/nous.js.map +1 -1
  323. package/dist/devices/nue_3a.d.ts.map +1 -1
  324. package/dist/devices/nue_3a.js +2 -0
  325. package/dist/devices/nue_3a.js.map +1 -1
  326. package/dist/devices/onesti.d.ts +11 -1
  327. package/dist/devices/onesti.d.ts.map +1 -1
  328. package/dist/devices/onesti.js +30 -6
  329. package/dist/devices/onesti.js.map +1 -1
  330. package/dist/devices/onokom.d.ts.map +1 -1
  331. package/dist/devices/onokom.js +1152 -2309
  332. package/dist/devices/onokom.js.map +1 -1
  333. package/dist/devices/orvibo.d.ts +17 -1
  334. package/dist/devices/orvibo.d.ts.map +1 -1
  335. package/dist/devices/orvibo.js +71 -4
  336. package/dist/devices/orvibo.js.map +1 -1
  337. package/dist/devices/owon.d.ts.map +1 -1
  338. package/dist/devices/owon.js +382 -62
  339. package/dist/devices/owon.js.map +1 -1
  340. package/dist/devices/paul_neuhaus.d.ts.map +1 -1
  341. package/dist/devices/paul_neuhaus.js +9 -0
  342. package/dist/devices/paul_neuhaus.js.map +1 -1
  343. package/dist/devices/paulmann.js +2 -2
  344. package/dist/devices/paulmann.js.map +1 -1
  345. package/dist/devices/perenio.d.ts.map +1 -1
  346. package/dist/devices/perenio.js +57 -39
  347. package/dist/devices/perenio.js.map +1 -1
  348. package/dist/devices/philips.d.ts.map +1 -1
  349. package/dist/devices/philips.js +194 -53
  350. package/dist/devices/philips.js.map +1 -1
  351. package/dist/devices/plaid.d.ts.map +1 -1
  352. package/dist/devices/plaid.js +18 -1
  353. package/dist/devices/plaid.js.map +1 -1
  354. package/dist/devices/plugwise.d.ts.map +1 -1
  355. package/dist/devices/plugwise.js +307 -26
  356. package/dist/devices/plugwise.js.map +1 -1
  357. package/dist/devices/profalux.d.ts.map +1 -1
  358. package/dist/devices/profalux.js +25 -1
  359. package/dist/devices/profalux.js.map +1 -1
  360. package/dist/devices/pushok.d.ts.map +1 -1
  361. package/dist/devices/pushok.js +44 -0
  362. package/dist/devices/pushok.js.map +1 -1
  363. package/dist/devices/qa.d.ts.map +1 -1
  364. package/dist/devices/qa.js +80 -32
  365. package/dist/devices/qa.js.map +1 -1
  366. package/dist/devices/repenic_ltd.d.ts +3 -0
  367. package/dist/devices/repenic_ltd.d.ts.map +1 -0
  368. package/dist/devices/repenic_ltd.js +97 -0
  369. package/dist/devices/repenic_ltd.js.map +1 -0
  370. package/dist/devices/robb.d.ts.map +1 -1
  371. package/dist/devices/robb.js +13 -1
  372. package/dist/devices/robb.js.map +1 -1
  373. package/dist/devices/rtx.js +1 -1
  374. package/dist/devices/rtx.js.map +1 -1
  375. package/dist/devices/salus_controls.d.ts.map +1 -1
  376. package/dist/devices/salus_controls.js +44 -17
  377. package/dist/devices/salus_controls.js.map +1 -1
  378. package/dist/devices/samotech.js +2 -2
  379. package/dist/devices/samotech.js.map +1 -1
  380. package/dist/devices/sber.d.ts.map +1 -1
  381. package/dist/devices/sber.js +435 -26
  382. package/dist/devices/sber.js.map +1 -1
  383. package/dist/devices/schneider_electric.d.ts.map +1 -1
  384. package/dist/devices/schneider_electric.js +808 -252
  385. package/dist/devices/schneider_electric.js.map +1 -1
  386. package/dist/devices/securifi.d.ts.map +1 -1
  387. package/dist/devices/securifi.js +24 -1
  388. package/dist/devices/securifi.js.map +1 -1
  389. package/dist/devices/sengled.d.ts.map +1 -1
  390. package/dist/devices/sengled.js +5 -4
  391. package/dist/devices/sengled.js.map +1 -1
  392. package/dist/devices/shada.d.ts +3 -0
  393. package/dist/devices/shada.d.ts.map +1 -0
  394. package/dist/devices/{aubess.js → shada.js} +7 -20
  395. package/dist/devices/shada.js.map +1 -0
  396. package/dist/devices/shelly.d.ts.map +1 -1
  397. package/dist/devices/shelly.js +646 -61
  398. package/dist/devices/shelly.js.map +1 -1
  399. package/dist/devices/shinasystem.d.ts.map +1 -1
  400. package/dist/devices/shinasystem.js +75 -16
  401. package/dist/devices/shinasystem.js.map +1 -1
  402. package/dist/devices/siglis.d.ts.map +1 -1
  403. package/dist/devices/siglis.js +26 -0
  404. package/dist/devices/siglis.js.map +1 -1
  405. package/dist/devices/sinope.d.ts.map +1 -1
  406. package/dist/devices/sinope.js +163 -83
  407. package/dist/devices/sinope.js.map +1 -1
  408. package/dist/devices/slacky_diy.d.ts.map +1 -1
  409. package/dist/devices/slacky_diy.js +3007 -69
  410. package/dist/devices/slacky_diy.js.map +1 -1
  411. package/dist/devices/smarli.d.ts.map +1 -1
  412. package/dist/devices/smarli.js +4 -5
  413. package/dist/devices/smarli.js.map +1 -1
  414. package/dist/devices/smartthings.d.ts +25 -0
  415. package/dist/devices/smartthings.d.ts.map +1 -1
  416. package/dist/devices/smartthings.js +62 -11
  417. package/dist/devices/smartthings.js.map +1 -1
  418. package/dist/devices/somfy.d.ts.map +1 -1
  419. package/dist/devices/somfy.js +14 -1
  420. package/dist/devices/somfy.js.map +1 -1
  421. package/dist/devices/sonoff.d.ts +42 -1
  422. package/dist/devices/sonoff.d.ts.map +1 -1
  423. package/dist/devices/sonoff.js +5161 -2007
  424. package/dist/devices/sonoff.js.map +1 -1
  425. package/dist/devices/sprut.d.ts.map +1 -1
  426. package/dist/devices/sprut.js +5 -4
  427. package/dist/devices/sprut.js.map +1 -1
  428. package/dist/devices/stello.d.ts.map +1 -1
  429. package/dist/devices/stello.js +6 -24
  430. package/dist/devices/stello.js.map +1 -1
  431. package/dist/devices/stelpro.d.ts +51 -1
  432. package/dist/devices/stelpro.d.ts.map +1 -1
  433. package/dist/devices/stelpro.js +86 -23
  434. package/dist/devices/stelpro.js.map +1 -1
  435. package/dist/devices/sunricher.d.ts.map +1 -1
  436. package/dist/devices/sunricher.js +215 -29
  437. package/dist/devices/sunricher.js.map +1 -1
  438. package/dist/devices/tech.d.ts.map +1 -1
  439. package/dist/devices/tech.js +35 -35
  440. package/dist/devices/tech.js.map +1 -1
  441. package/dist/devices/terncy.d.ts.map +1 -1
  442. package/dist/devices/terncy.js +398 -2
  443. package/dist/devices/terncy.js.map +1 -1
  444. package/dist/devices/third_reality.d.ts +42 -1
  445. package/dist/devices/third_reality.d.ts.map +1 -1
  446. package/dist/devices/third_reality.js +521 -110
  447. package/dist/devices/third_reality.js.map +1 -1
  448. package/dist/devices/tuya.d.ts.map +1 -1
  449. package/dist/devices/tuya.js +3143 -815
  450. package/dist/devices/tuya.js.map +1 -1
  451. package/dist/devices/ubisys.d.ts.map +1 -1
  452. package/dist/devices/ubisys.js +11 -8
  453. package/dist/devices/ubisys.js.map +1 -1
  454. package/dist/devices/vesternet.d.ts.map +1 -1
  455. package/dist/devices/vesternet.js +7 -0
  456. package/dist/devices/vesternet.js.map +1 -1
  457. package/dist/devices/viessmann.d.ts.map +1 -1
  458. package/dist/devices/viessmann.js +107 -4
  459. package/dist/devices/viessmann.js.map +1 -1
  460. package/dist/devices/vsmart.d.ts.map +1 -1
  461. package/dist/devices/vsmart.js +11 -0
  462. package/dist/devices/vsmart.js.map +1 -1
  463. package/dist/devices/weiser.d.ts.map +1 -1
  464. package/dist/devices/weiser.js +6 -0
  465. package/dist/devices/weiser.js.map +1 -1
  466. package/dist/devices/wirenboard.d.ts.map +1 -1
  467. package/dist/devices/wirenboard.js +124 -21
  468. package/dist/devices/wirenboard.js.map +1 -1
  469. package/dist/devices/wmun.d.ts.map +1 -1
  470. package/dist/devices/wmun.js +3 -2
  471. package/dist/devices/wmun.js.map +1 -1
  472. package/dist/devices/woolley.d.ts.map +1 -1
  473. package/dist/devices/woolley.js +6 -9
  474. package/dist/devices/woolley.js.map +1 -1
  475. package/dist/devices/woox.js +2 -2
  476. package/dist/devices/woox.js.map +1 -1
  477. package/dist/devices/xyzroe.d.ts.map +1 -1
  478. package/dist/devices/xyzroe.js +16 -4
  479. package/dist/devices/xyzroe.js.map +1 -1
  480. package/dist/devices/yale.d.ts.map +1 -1
  481. package/dist/devices/yale.js +138 -40
  482. package/dist/devices/yale.js.map +1 -1
  483. package/dist/devices/yandex.d.ts.map +1 -1
  484. package/dist/devices/yandex.js +93 -11
  485. package/dist/devices/yandex.js.map +1 -1
  486. package/dist/devices/yokis.d.ts.map +1 -1
  487. package/dist/devices/yokis.js +122 -85
  488. package/dist/devices/yokis.js.map +1 -1
  489. package/dist/devices/zbeacon.d.ts.map +1 -1
  490. package/dist/devices/zbeacon.js +0 -7
  491. package/dist/devices/zbeacon.js.map +1 -1
  492. package/dist/devices/zemismart.d.ts.map +1 -1
  493. package/dist/devices/zemismart.js +148 -11
  494. package/dist/devices/zemismart.js.map +1 -1
  495. package/dist/devices/zigbeetlc.js +1 -1
  496. package/dist/devices/zigbeetlc.js.map +1 -1
  497. package/dist/index.d.ts +1 -1
  498. package/dist/index.d.ts.map +1 -1
  499. package/dist/index.js +40 -35
  500. package/dist/index.js.map +1 -1
  501. package/dist/lib/bosch.d.ts.map +1 -1
  502. package/dist/lib/bosch.js +212 -42
  503. package/dist/lib/bosch.js.map +1 -1
  504. package/dist/lib/constants.d.ts +99 -17
  505. package/dist/lib/constants.d.ts.map +1 -1
  506. package/dist/lib/constants.js +15 -2
  507. package/dist/lib/constants.js.map +1 -1
  508. package/dist/lib/develco.d.ts +11 -0
  509. package/dist/lib/develco.d.ts.map +1 -1
  510. package/dist/lib/develco.js +78 -9
  511. package/dist/lib/develco.js.map +1 -1
  512. package/dist/lib/exposes.d.ts +11 -10
  513. package/dist/lib/exposes.d.ts.map +1 -1
  514. package/dist/lib/exposes.js +7 -48
  515. package/dist/lib/exposes.js.map +1 -1
  516. package/dist/lib/heiman.d.ts.map +1 -1
  517. package/dist/lib/heiman.js +34 -14
  518. package/dist/lib/heiman.js.map +1 -1
  519. package/dist/lib/ikea.d.ts +17 -0
  520. package/dist/lib/ikea.d.ts.map +1 -1
  521. package/dist/lib/ikea.js +46 -20
  522. package/dist/lib/ikea.js.map +1 -1
  523. package/dist/lib/inovelli.d.ts +86 -0
  524. package/dist/lib/inovelli.d.ts.map +1 -0
  525. package/dist/lib/inovelli.js +2580 -0
  526. package/dist/lib/inovelli.js.map +1 -0
  527. package/dist/lib/ledvance.d.ts +4 -4
  528. package/dist/lib/ledvance.d.ts.map +1 -1
  529. package/dist/lib/ledvance.js +23 -7
  530. package/dist/lib/ledvance.js.map +1 -1
  531. package/dist/lib/legacy.d.ts +21 -2
  532. package/dist/lib/legacy.d.ts.map +1 -1
  533. package/dist/lib/legacy.js +29 -2
  534. package/dist/lib/legacy.js.map +1 -1
  535. package/dist/lib/legrand.d.ts +65 -6
  536. package/dist/lib/legrand.d.ts.map +1 -1
  537. package/dist/lib/legrand.js +188 -9
  538. package/dist/lib/legrand.js.map +1 -1
  539. package/dist/lib/light.d.ts +1 -1
  540. package/dist/lib/light.d.ts.map +1 -1
  541. package/dist/lib/light.js +2 -2
  542. package/dist/lib/light.js.map +1 -1
  543. package/dist/lib/lumi.d.ts +88 -44
  544. package/dist/lib/lumi.d.ts.map +1 -1
  545. package/dist/lib/lumi.js +1813 -59
  546. package/dist/lib/lumi.js.map +1 -1
  547. package/dist/lib/modernExtend.d.ts +19 -14
  548. package/dist/lib/modernExtend.d.ts.map +1 -1
  549. package/dist/lib/modernExtend.js +37 -35
  550. package/dist/lib/modernExtend.js.map +1 -1
  551. package/dist/lib/namron.d.ts +131 -28
  552. package/dist/lib/namron.d.ts.map +1 -1
  553. package/dist/lib/namron.js +723 -42
  554. package/dist/lib/namron.js.map +1 -1
  555. package/dist/lib/nodon.d.ts.map +1 -1
  556. package/dist/lib/nodon.js +3 -1
  557. package/dist/lib/nodon.js.map +1 -1
  558. package/dist/lib/philips.d.ts +106 -2
  559. package/dist/lib/philips.d.ts.map +1 -1
  560. package/dist/lib/philips.js +945 -44
  561. package/dist/lib/philips.js.map +1 -1
  562. package/dist/lib/sonoff.d.ts +77 -10
  563. package/dist/lib/sonoff.d.ts.map +1 -1
  564. package/dist/lib/sonoff.js +165 -34
  565. package/dist/lib/sonoff.js.map +1 -1
  566. package/dist/lib/sunricher.d.ts +1 -1
  567. package/dist/lib/sunricher.d.ts.map +1 -1
  568. package/dist/lib/sunricher.js +6 -8
  569. package/dist/lib/sunricher.js.map +1 -1
  570. package/dist/lib/tuya.d.ts +558 -13
  571. package/dist/lib/tuya.d.ts.map +1 -1
  572. package/dist/lib/tuya.js +1518 -10
  573. package/dist/lib/tuya.js.map +1 -1
  574. package/dist/lib/types.d.ts +9 -6
  575. package/dist/lib/types.d.ts.map +1 -1
  576. package/dist/lib/ubisys.d.ts +1 -1
  577. package/dist/lib/ubisys.d.ts.map +1 -1
  578. package/dist/lib/ubisys.js +60 -5
  579. package/dist/lib/ubisys.js.map +1 -1
  580. package/dist/lib/utils.d.ts +5 -8
  581. package/dist/lib/utils.d.ts.map +1 -1
  582. package/dist/lib/utils.js +30 -17
  583. package/dist/lib/utils.js.map +1 -1
  584. package/dist/lib/zosung.d.ts +69 -6
  585. package/dist/lib/zosung.d.ts.map +1 -1
  586. package/dist/lib/zosung.js +113 -1
  587. package/dist/lib/zosung.js.map +1 -1
  588. package/dist/models-index.json +1 -1
  589. package/package.json +2 -2
  590. package/dist/devices/aubess.d.ts.map +0 -1
  591. package/dist/devices/aubess.js.map +0 -1
@@ -34,14 +34,428 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.definitions = void 0;
37
+ const zigbee_herdsman_1 = require("@willieee802/zigbee-herdsman");
37
38
  const fz = __importStar(require("../converters/fromZigbee"));
38
39
  const tz = __importStar(require("../converters/toZigbee"));
40
+ const ptvo = __importStar(require("../devices/custom_devices_diy"));
39
41
  const constants = __importStar(require("../lib/constants"));
40
42
  const exposes = __importStar(require("../lib/exposes"));
41
43
  const m = __importStar(require("../lib/modernExtend"));
42
44
  const reporting = __importStar(require("../lib/reporting"));
45
+ const utils = __importStar(require("../lib/utils"));
43
46
  const e = exposes.presets;
44
47
  const ea = exposes.access;
48
+ const diyruzExtend = {
49
+ addDiyruzGenOnOffCluster: () => m.deviceAddCustomCluster("genOnOff", {
50
+ name: "genOnOff",
51
+ ID: zigbee_herdsman_1.Zcl.Clusters.genOnOff.ID,
52
+ attributes: {
53
+ cpuTemperature: { name: "cpuTemperature", ID: 0xa191, type: zigbee_herdsman_1.Zcl.DataType.INT16 }, // 41361
54
+ power: { name: "power", ID: 0xa194, type: zigbee_herdsman_1.Zcl.DataType.INT16 }, // 41364
55
+ action: { name: "action", ID: 0xa197, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN }, // 41367
56
+ },
57
+ commands: {},
58
+ commandsResponse: {},
59
+ }),
60
+ addDiyruzMsIlluminanceLevelSensingCluster: () => m.deviceAddCustomCluster("msIlluminanceLevelSensing", {
61
+ name: "msIlluminanceLevelSensing",
62
+ ID: zigbee_herdsman_1.Zcl.Clusters.msIlluminanceLevelSensing.ID,
63
+ attributes: {
64
+ sensitivity: { name: "sensitivity", ID: 0xf000, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true }, // 61440
65
+ ledFeedback: { name: "ledFeedback", ID: 0xf001, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true }, // 61441
66
+ buzzerFeedback: { name: "buzzerFeedback", ID: 0xf002, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true }, // 61442
67
+ sensorsCount: { name: "sensorsCount", ID: 0xf003, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true }, // 61443
68
+ sensorsType: { name: "sensorsType", ID: 0xf004, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true }, // 61444
69
+ alertThreshold: { name: "alertThreshold", ID: 0xf005, type: zigbee_herdsman_1.Zcl.DataType.UINT32, write: true }, // 61445
70
+ },
71
+ commands: {},
72
+ commandsResponse: {},
73
+ }),
74
+ addDiyruzMsIlluminanceMeasurementCluster: () => m.deviceAddCustomCluster("msIlluminanceMeasurement", {
75
+ name: "msIlluminanceMeasurement",
76
+ ID: zigbee_herdsman_1.Zcl.Clusters.msIlluminanceMeasurement.ID,
77
+ attributes: {
78
+ radioactiveEventsPerMinute: { name: "radioactiveEventsPerMinute", ID: 0xf001, type: zigbee_herdsman_1.Zcl.DataType.UINT16 }, // 61441
79
+ radiationDosePerHour: { name: "radiationDosePerHour", ID: 0xf002, type: zigbee_herdsman_1.Zcl.DataType.UINT32 }, // 61442
80
+ },
81
+ commands: {},
82
+ commandsResponse: {},
83
+ }),
84
+ addDiyruzMsCO2Cluster: () => m.deviceAddCustomCluster("msCO2", {
85
+ name: "msCO2",
86
+ ID: zigbee_herdsman_1.Zcl.Clusters.msCO2.ID,
87
+ attributes: {
88
+ enableAbc: { name: "enableAbc", ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
89
+ ledFeedback: { name: "ledFeedback", ID: 0x0203, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
90
+ threshold1: { name: "threshold1", ID: 0x0204, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true },
91
+ threshold2: { name: "threshold2", ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true },
92
+ },
93
+ commands: {},
94
+ commandsResponse: {},
95
+ }),
96
+ addDiyruzMsTemperatureMeasurementCluster: () => m.deviceAddCustomCluster("msTemperatureMeasurement", {
97
+ name: "msTemperatureMeasurement",
98
+ ID: zigbee_herdsman_1.Zcl.Clusters.msTemperatureMeasurement.ID,
99
+ attributes: {
100
+ temperatureOffset: { name: "temperatureOffset", ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true },
101
+ },
102
+ commands: {},
103
+ commandsResponse: {},
104
+ }),
105
+ addDiyruzMsPressureMeasurementCluster: () => m.deviceAddCustomCluster("msPressureMeasurement", {
106
+ name: "msPressureMeasurement",
107
+ ID: zigbee_herdsman_1.Zcl.Clusters.msPressureMeasurement.ID,
108
+ attributes: {
109
+ pressureOffset: { name: "pressureOffset", ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT32, write: true },
110
+ },
111
+ commands: {},
112
+ commandsResponse: {},
113
+ }),
114
+ addDiyruzMsRelativeHumidityCluster: () => m.deviceAddCustomCluster("msRelativeHumidity", {
115
+ name: "msRelativeHumidity",
116
+ ID: zigbee_herdsman_1.Zcl.Clusters.msRelativeHumidity.ID,
117
+ attributes: {
118
+ humidityOffset: { name: "humidityOffset", ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true },
119
+ },
120
+ commands: {},
121
+ commandsResponse: {},
122
+ }),
123
+ addDiyruzClosuresDoorLockCluster: () => m.deviceAddCustomCluster("closuresDoorLock", {
124
+ name: "closuresDoorLock",
125
+ ID: zigbee_herdsman_1.Zcl.Clusters.closuresDoorLock.ID,
126
+ attributes: {
127
+ state: { name: "state", ID: 0x0050, type: zigbee_herdsman_1.Zcl.DataType.ENUM8 },
128
+ mode: { name: "mode", ID: 0x0051, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
129
+ sound: { name: "sound", ID: 0x0052, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
130
+ timeRing: { name: "timeRing", ID: 0x0053, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true },
131
+ timeTalk: { name: "timeTalk", ID: 0x0054, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true },
132
+ timeOpen: { name: "timeOpen", ID: 0x0055, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true },
133
+ timeReport: { name: "timeReport", ID: 0x0056, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true },
134
+ timeBell: { name: "timeBell", ID: 0x0057, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true },
135
+ },
136
+ commands: {},
137
+ commandsResponse: {},
138
+ }),
139
+ };
140
+ const tzLocal = {
141
+ diyruz_freepad_on_off_config: {
142
+ key: ["switch_type", "switch_actions"],
143
+ convertGet: async (entity, key, meta) => {
144
+ await entity.read("genOnOffSwitchCfg", ["switchType", "switchActions"]);
145
+ },
146
+ convertSet: async (entity, key, value, meta) => {
147
+ const switchTypesLookup = {
148
+ toggle: 0x00,
149
+ momentary: 0x01,
150
+ multifunction: 0x02,
151
+ };
152
+ const switchActionsLookup = {
153
+ on: 0x00,
154
+ off: 0x01,
155
+ toggle: 0x02,
156
+ };
157
+ const intVal = Number(value);
158
+ const switchType = utils.getFromLookup(value, switchTypesLookup, intVal);
159
+ const switchActions = utils.getFromLookup(value, switchActionsLookup, intVal);
160
+ const payloads = {
161
+ switch_type: { switchType },
162
+ switch_actions: { switchActions },
163
+ };
164
+ await entity.write("genOnOffSwitchCfg", payloads[key]);
165
+ return { state: { [`${key}`]: value } };
166
+ },
167
+ },
168
+ diyruz_geiger_config: {
169
+ key: ["sensitivity", "led_feedback", "buzzer_feedback", "sensors_count", "sensors_type", "alert_threshold"],
170
+ convertSet: async (entity, key, rawValue, meta) => {
171
+ const lookup = {
172
+ OFF: 0x00,
173
+ ON: 0x01,
174
+ };
175
+ const sensorsTypeLookup = {
176
+ "СБМ-20/СТС-5/BOI-33": "0",
177
+ "СБМ-19/СТС-6": "1",
178
+ Others: "2",
179
+ };
180
+ let value = utils.getFromLookup(rawValue, lookup, Number(rawValue));
181
+ if (key === "sensors_type") {
182
+ // @ts-expect-error ignore
183
+ value = utils.getFromLookup(rawValue, sensorsTypeLookup, Number(rawValue));
184
+ }
185
+ const payloads = {
186
+ sensitivity: { 61440: { value, type: 0x21 } },
187
+ led_feedback: { 61441: { value, type: 0x10 } },
188
+ buzzer_feedback: { 61442: { value, type: 0x10 } },
189
+ sensors_count: { 61443: { value, type: 0x20 } },
190
+ sensors_type: { 61444: { value, type: 0x30 } },
191
+ alert_threshold: { 61445: { value, type: 0x23 } },
192
+ };
193
+ await entity.write("msIlluminanceLevelSensing", payloads[key]);
194
+ return {
195
+ state: { [key]: rawValue },
196
+ };
197
+ },
198
+ convertGet: async (entity, key, meta) => {
199
+ await entity.read("msIlluminanceLevelSensing", [
200
+ "sensitivity",
201
+ "ledFeedback",
202
+ "buzzerFeedback",
203
+ ]);
204
+ await entity.read("msIlluminanceLevelSensing", [
205
+ "sensorsCount",
206
+ "sensorsType",
207
+ "alertThreshold",
208
+ ]);
209
+ },
210
+ },
211
+ diyruz_airsense_config: {
212
+ key: ["led_feedback", "enable_abc", "threshold1", "threshold2", "temperature_offset", "pressure_offset", "humidity_offset"],
213
+ convertSet: async (entity, key, rawValue, meta) => {
214
+ const lookup = { OFF: 0x00, ON: 0x01 };
215
+ const value = utils.getFromLookup(rawValue, lookup, Number(rawValue));
216
+ const payloads = {
217
+ led_feedback: ["msCO2", { 515: { value, type: 0x10 } }],
218
+ enable_abc: ["msCO2", { 514: { value, type: 0x10 } }],
219
+ threshold1: ["msCO2", { 516: { value, type: 0x21 } }],
220
+ threshold2: ["msCO2", { 517: { value, type: 0x21 } }],
221
+ temperature_offset: ["msTemperatureMeasurement", { 528: { value, type: 0x29 } }],
222
+ pressure_offset: ["msPressureMeasurement", { 528: { value, type: 0x2b } }],
223
+ humidity_offset: ["msRelativeHumidity", { 528: { value, type: 0x29 } }],
224
+ };
225
+ await entity.write(payloads[key][0], payloads[key][1]);
226
+ return {
227
+ state: { [key]: rawValue },
228
+ };
229
+ },
230
+ convertGet: async (entity, key, meta) => {
231
+ await entity.read("msCO2", ["ledFeedback", "enableAbc", "threshold1", "threshold2"]);
232
+ await entity.read("msTemperatureMeasurement", ["temperatureOffset"]);
233
+ await entity.read("msPressureMeasurement", ["pressureOffset"]);
234
+ await entity.read("msRelativeHumidity", ["humidityOffset"]);
235
+ },
236
+ },
237
+ diyruz_zintercom_config: {
238
+ key: ["mode", "sound", "time_ring", "time_talk", "time_open", "time_bell", "time_report"],
239
+ convertSet: async (entity, key, rawValue, meta) => {
240
+ const lookup = { OFF: 0x00, ON: 0x01 };
241
+ const modeOpenLookup = { never: "0", once: "1", always: "2", drop: "3" };
242
+ let value = utils.getFromLookup(rawValue, lookup, Number(rawValue));
243
+ if (key === "mode") {
244
+ // @ts-expect-error ignore
245
+ value = utils.getFromLookup(rawValue, modeOpenLookup, Number(rawValue));
246
+ }
247
+ const payloads = {
248
+ mode: { 81: { value, type: 0x30 } },
249
+ sound: { 82: { value, type: 0x10 } },
250
+ time_ring: { 83: { value, type: 0x20 } },
251
+ time_talk: { 84: { value, type: 0x20 } },
252
+ time_open: { 85: { value, type: 0x20 } },
253
+ time_bell: { 87: { value, type: 0x20 } },
254
+ time_report: { 86: { value, type: 0x20 } },
255
+ };
256
+ await entity.write("closuresDoorLock", payloads[key]);
257
+ return {
258
+ state: { [key]: rawValue },
259
+ };
260
+ },
261
+ convertGet: async (entity, key, meta) => {
262
+ await entity.read("closuresDoorLock", ["mode", "sound", "timeRing", "timeTalk"]);
263
+ await entity.read("closuresDoorLock", ["timeOpen", "timeBell", "timeReport"]);
264
+ },
265
+ },
266
+ };
267
+ const fzLocal = {
268
+ diyruz_contact: {
269
+ cluster: "genOnOff",
270
+ type: ["attributeReport", "readResponse"],
271
+ convert: (model, msg, publish, options, meta) => {
272
+ return { contact: msg.data.onOff !== 0 };
273
+ },
274
+ },
275
+ diyruz_rspm: {
276
+ cluster: "genOnOff",
277
+ type: ["attributeReport", "readResponse"],
278
+ convert: (model, msg, publish, options, meta) => {
279
+ const power = utils.precisionRound(msg.data["41364"], 2);
280
+ return {
281
+ state: msg.data.onOff === 1 ? "ON" : "OFF",
282
+ cpu_temperature: utils.precisionRound(msg.data["41361"], 2),
283
+ power: power,
284
+ current: utils.precisionRound(power / 230, 2),
285
+ action: msg.data["41367"] === 1 ? "hold" : "release",
286
+ };
287
+ },
288
+ },
289
+ diyruz_freepad_clicks: {
290
+ cluster: "genMultistateInput",
291
+ type: ["readResponse", "attributeReport"],
292
+ convert: (model, msg, publish, options, meta) => {
293
+ const button = utils.getKey(model.endpoint(msg.device), msg.endpoint.ID);
294
+ const lookup = { 0: "hold", 1: "single", 2: "double", 3: "triple", 4: "quadruple", 255: "release" };
295
+ const clicks = msg.data.presentValue;
296
+ const action = lookup[clicks] ? lookup[clicks] : `many_${clicks}`;
297
+ return { action: `${button}_${action}` };
298
+ },
299
+ },
300
+ diyruz_freepad_config: {
301
+ cluster: "genOnOffSwitchCfg",
302
+ type: ["readResponse"],
303
+ convert: (model, msg, publish, options, meta) => {
304
+ const button = utils.getKey(model.endpoint(msg.device), msg.endpoint.ID);
305
+ const { switchActions, switchType } = msg.data;
306
+ const switchTypesLookup = ["toggle", "momentary", "multifunction"];
307
+ const switchActionsLookup = ["on", "off", "toggle"];
308
+ return {
309
+ [`switch_type_${button}`]: switchTypesLookup[switchType],
310
+ [`switch_actions_${button}`]: switchActionsLookup[switchActions],
311
+ };
312
+ },
313
+ },
314
+ diyruz_geiger: {
315
+ cluster: "msIlluminanceMeasurement",
316
+ type: ["attributeReport", "readResponse"],
317
+ convert: (model, msg, publish, options, meta) => {
318
+ return {
319
+ radioactive_events_per_minute: msg.data.radioactiveEventsPerMinute,
320
+ radiation_dose_per_hour: msg.data.radiationDosePerHour,
321
+ };
322
+ },
323
+ },
324
+ diyruz_geiger_config: {
325
+ cluster: "msIlluminanceLevelSensing",
326
+ type: "readResponse",
327
+ convert: (model, msg, publish, options, meta) => {
328
+ const result = {};
329
+ if (msg.data.ledFeedback !== undefined) {
330
+ result.led_feedback = msg.data.ledFeedback ? "ON" : "OFF";
331
+ }
332
+ if (msg.data.buzzerFeedback !== undefined) {
333
+ result.buzzer_feedback = msg.data.buzzerFeedback ? "ON" : "OFF";
334
+ }
335
+ if (msg.data.sensitivity !== undefined) {
336
+ result.sensitivity = msg.data.sensitivity;
337
+ }
338
+ if (msg.data.sensorsCount !== undefined) {
339
+ result.sensors_count = msg.data.sensorsCount;
340
+ }
341
+ if (msg.data.sensorsType !== undefined) {
342
+ result.sensors_type = ["СБМ-20/СТС-5/BOI-33", "СБМ-19/СТС-6", "Others"][msg.data.sensorsType];
343
+ }
344
+ if (msg.data.alertThreshold !== undefined) {
345
+ result.alert_threshold = msg.data.alertThreshold;
346
+ }
347
+ return result;
348
+ },
349
+ },
350
+ diyruz_airsense_config_co2: {
351
+ cluster: "msCO2",
352
+ type: "readResponse",
353
+ convert: (model, msg, publish, options, meta) => {
354
+ const result = {};
355
+ if (msg.data.ledFeedback !== undefined) {
356
+ result.led_feedback = msg.data.ledFeedback ? "ON" : "OFF";
357
+ }
358
+ if (msg.data.enableAbc !== undefined) {
359
+ result.enable_abc = msg.data.enableAbc ? "ON" : "OFF";
360
+ }
361
+ if (msg.data.threshold1 !== undefined) {
362
+ result.threshold1 = msg.data.threshold1;
363
+ }
364
+ if (msg.data.threshold2 !== undefined) {
365
+ result.threshold2 = msg.data.threshold2;
366
+ }
367
+ return result;
368
+ },
369
+ },
370
+ diyruz_airsense_config_temp: {
371
+ cluster: "msTemperatureMeasurement",
372
+ type: "readResponse",
373
+ convert: (model, msg, publish, options, meta) => {
374
+ const result = {};
375
+ if (msg.data.temperatureOffset !== undefined) {
376
+ result.temperature_offset = msg.data.temperatureOffset;
377
+ }
378
+ return result;
379
+ },
380
+ },
381
+ diyruz_airsense_config_pres: {
382
+ cluster: "msPressureMeasurement",
383
+ type: "readResponse",
384
+ convert: (model, msg, publish, options, meta) => {
385
+ const result = {};
386
+ if (msg.data.pressureOffset !== undefined) {
387
+ result.pressure_offset = msg.data.pressureOffset;
388
+ }
389
+ return result;
390
+ },
391
+ },
392
+ diyruz_airsense_config_hum: {
393
+ cluster: "msRelativeHumidity",
394
+ type: "readResponse",
395
+ convert: (model, msg, publish, options, meta) => {
396
+ const result = {};
397
+ if (msg.data.humidityOffset !== undefined) {
398
+ result.humidity_offset = msg.data.humidityOffset;
399
+ }
400
+ return result;
401
+ },
402
+ },
403
+ diyruz_zintercom_config: {
404
+ cluster: "closuresDoorLock",
405
+ type: ["attributeReport", "readResponse"],
406
+ convert: (model, msg, publish, options, meta) => {
407
+ const result = {};
408
+ if (msg.data.state !== undefined) {
409
+ result.state = ["idle", "ring", "talk", "open", "drop"][msg.data.state];
410
+ }
411
+ if (msg.data.mode !== undefined) {
412
+ result.mode = ["never", "once", "always", "drop"][msg.data.mode];
413
+ }
414
+ if (msg.data.sound !== undefined) {
415
+ result.sound = msg.data.sound ? "ON" : "OFF";
416
+ }
417
+ if (msg.data.timeRing !== undefined) {
418
+ result.time_ring = msg.data.timeRing;
419
+ }
420
+ if (msg.data.timeTalk !== undefined) {
421
+ result.time_talk = msg.data.timeTalk;
422
+ }
423
+ if (msg.data.timeOpen !== undefined) {
424
+ result.time_open = msg.data.timeOpen;
425
+ }
426
+ if (msg.data.timeBell !== undefined) {
427
+ result.time_bell = msg.data.timeBell;
428
+ }
429
+ if (msg.data.timeReport !== undefined) {
430
+ result.time_report = msg.data.timeReport;
431
+ }
432
+ return result;
433
+ },
434
+ },
435
+ keypad20states: {
436
+ cluster: "genOnOff",
437
+ type: ["readResponse", "attributeReport"],
438
+ convert: (model, msg, publish, options, meta) => {
439
+ const button = utils.getKey(model.endpoint(msg.device), msg.endpoint.ID);
440
+ const state = msg.data.onOff === 1;
441
+ if (button) {
442
+ return { [button]: state };
443
+ }
444
+ },
445
+ },
446
+ keypad20_battery: {
447
+ cluster: "genPowerCfg",
448
+ type: ["readResponse", "attributeReport"],
449
+ convert: (model, msg, publish, options, meta) => {
450
+ const voltage = msg.data.mainsVoltage / 10;
451
+ return {
452
+ battery: utils.batteryVoltageToPercentage(voltage, "3V_2100"),
453
+ voltage: voltage, // @deprecated
454
+ // voltage: voltage / 1000.0,
455
+ };
456
+ },
457
+ },
458
+ };
45
459
  exports.definitions = [
46
460
  {
47
461
  zigbeeModel: ["DIYRuZ_R4_5"],
@@ -58,7 +472,7 @@ exports.definitions = [
58
472
  model: "DIYRuZ_KEYPAD20",
59
473
  vendor: "DIYRuZ",
60
474
  description: "DiY 20 button keypad",
61
- fromZigbee: [fz.keypad20states, fz.keypad20_battery],
475
+ fromZigbee: [fzLocal.keypad20states, fzLocal.keypad20_battery],
62
476
  toZigbee: [],
63
477
  exposes: [e.battery()],
64
478
  endpoint: (device) => {
@@ -91,7 +505,7 @@ exports.definitions = [
91
505
  model: "DIYRuZ_magnet",
92
506
  vendor: "DIYRuZ",
93
507
  description: "DIYRuZ contact sensor",
94
- fromZigbee: [fz.keypad20_battery, fz.diyruz_contact],
508
+ fromZigbee: [fzLocal.keypad20_battery, fzLocal.diyruz_contact],
95
509
  exposes: [e.battery(), e.contact()],
96
510
  toZigbee: [],
97
511
  },
@@ -100,7 +514,7 @@ exports.definitions = [
100
514
  model: "DIYRuZ_rspm",
101
515
  vendor: "DIYRuZ",
102
516
  description: "DIYRuZ relay switch power meter",
103
- fromZigbee: [fz.diyruz_rspm],
517
+ fromZigbee: [fzLocal.diyruz_rspm],
104
518
  toZigbee: [tz.on_off],
105
519
  exposes: [e.switch(), e.power(), e.current(), e.cpu_temperature(), e.action(["hold", "release"])],
106
520
  endpoint: (device) => {
@@ -112,7 +526,7 @@ exports.definitions = [
112
526
  model: "DIYRuZ_FreePad",
113
527
  vendor: "DIYRuZ",
114
528
  description: "DiY 8/12/20 button keypad",
115
- fromZigbee: [fz.diyruz_freepad_clicks, fz.diyruz_freepad_config, fz.battery],
529
+ fromZigbee: [fzLocal.diyruz_freepad_clicks, fzLocal.diyruz_freepad_config, fz.battery],
116
530
  exposes: [e.battery(), e.action(["*_single", "*_double", "*_triple", "*_quadruple", "*_release", "*_hold"])].concat(((enpoinsCount) => {
117
531
  const features = [];
118
532
  for (let i = 1; i <= enpoinsCount; i++) {
@@ -122,7 +536,7 @@ exports.definitions = [
122
536
  }
123
537
  return features;
124
538
  })(20)),
125
- toZigbee: [tz.diyruz_freepad_on_off_config],
539
+ toZigbee: [tzLocal.diyruz_freepad_on_off_config],
126
540
  configure: async (device, coordinatorEndpoint) => {
127
541
  const endpoint = device.getEndpoint(1);
128
542
  await reporting.bind(endpoint, coordinatorEndpoint, ["genPowerCfg"]);
@@ -180,7 +594,7 @@ exports.definitions = [
180
594
  model: "FreePad_LeTV_8",
181
595
  vendor: "DIYRuZ",
182
596
  description: "LeTV 8key FreePad mod",
183
- fromZigbee: [fz.diyruz_freepad_clicks, fz.diyruz_freepad_config, fz.battery],
597
+ fromZigbee: [fzLocal.diyruz_freepad_clicks, fzLocal.diyruz_freepad_config, fz.battery],
184
598
  exposes: [e.battery(), e.action(["*_single", "*_double", "*_triple", "*_quadruple", "*_release"])].concat(((enpoinsCount) => {
185
599
  const features = [];
186
600
  for (let i = 1; i <= enpoinsCount; i++) {
@@ -190,7 +604,7 @@ exports.definitions = [
190
604
  }
191
605
  return features;
192
606
  })(8)),
193
- toZigbee: [tz.diyruz_freepad_on_off_config],
607
+ toZigbee: [tzLocal.diyruz_freepad_on_off_config],
194
608
  configure: async (device, coordinatorEndpoint) => {
195
609
  const endpoint = device.getEndpoint(1);
196
610
  await reporting.bind(endpoint, coordinatorEndpoint, ["genPowerCfg"]);
@@ -227,7 +641,8 @@ exports.definitions = [
227
641
  model: "DIYRuZ_Geiger",
228
642
  vendor: "DIYRuZ",
229
643
  description: "DiY Geiger counter",
230
- fromZigbee: [fz.diyruz_geiger, fz.command_on, fz.command_off, fz.diyruz_geiger_config],
644
+ extend: [diyruzExtend.addDiyruzMsIlluminanceLevelSensingCluster(), diyruzExtend.addDiyruzMsIlluminanceMeasurementCluster()],
645
+ fromZigbee: [fzLocal.diyruz_geiger, fz.command_on, fz.command_off, fzLocal.diyruz_geiger_config],
231
646
  exposes: [
232
647
  e.action(["on", "off"]),
233
648
  e.numeric("radioactive_events_per_minute", ea.STATE).withUnit("rpm").withDescription("Current count radioactive pulses per minute"),
@@ -239,19 +654,19 @@ exports.definitions = [
239
654
  e.numeric("sensors_count", ea.ALL).withDescription("Count of installed tubes").withValueMin(0).withValueMax(50),
240
655
  e.numeric("sensitivity", ea.ALL).withDescription("This is applicable if tubes type is set to other").withValueMin(0).withValueMax(100),
241
656
  ],
242
- toZigbee: [tz.diyruz_geiger_config],
657
+ toZigbee: [tzLocal.diyruz_geiger_config],
243
658
  configure: async (device, coordinatorEndpoint) => {
244
659
  const endpoint = device.getEndpoint(1);
245
660
  await reporting.bind(endpoint, coordinatorEndpoint, ["msIlluminanceMeasurement", "genOnOff"]);
246
661
  const payload = [
247
662
  {
248
- attribute: { ID: 0xf001, type: 0x21 },
663
+ attribute: "radioactiveEventsPerMinute",
249
664
  minimumReportInterval: 0,
250
665
  maximumReportInterval: constants.repInterval.MINUTE,
251
666
  reportableChange: 0,
252
667
  },
253
668
  {
254
- attribute: { ID: 0xf002, type: 0x23 },
669
+ attribute: "radiationDosePerHour",
255
670
  minimumReportInterval: 0,
256
671
  maximumReportInterval: constants.repInterval.MINUTE,
257
672
  reportableChange: 0,
@@ -265,7 +680,7 @@ exports.definitions = [
265
680
  model: "DIYRuZ_R8_8",
266
681
  vendor: "DIYRuZ",
267
682
  description: "DiY 8 Relays + 8 switches",
268
- fromZigbee: [fz.ptvo_multistate_action],
683
+ fromZigbee: [ptvo.fzLocal.ptvo_multistate_action],
269
684
  extend: [
270
685
  m.deviceEndpoints({ endpoints: { l1: 1, l2: 2, l3: 3, l4: 4, l5: 5, l6: 6, l7: 7, l8: 8 } }),
271
686
  m.onOff({ endpointNames: ["l1", "l2", "l3", "l4", "l5", "l6", "l7", "l8"] }),
@@ -327,17 +742,23 @@ exports.definitions = [
327
742
  model: "DIYRuZ_AirSense",
328
743
  vendor: "DIYRuZ",
329
744
  description: "Air quality sensor",
745
+ extend: [
746
+ diyruzExtend.addDiyruzMsCO2Cluster(),
747
+ diyruzExtend.addDiyruzMsTemperatureMeasurementCluster(),
748
+ diyruzExtend.addDiyruzMsPressureMeasurementCluster(),
749
+ diyruzExtend.addDiyruzMsRelativeHumidityCluster(),
750
+ ],
330
751
  fromZigbee: [
331
752
  fz.temperature,
332
753
  fz.humidity,
333
754
  fz.co2,
334
755
  fz.pressure,
335
- fz.diyruz_airsense_config_co2,
336
- fz.diyruz_airsense_config_temp,
337
- fz.diyruz_airsense_config_pres,
338
- fz.diyruz_airsense_config_hum,
756
+ fzLocal.diyruz_airsense_config_co2,
757
+ fzLocal.diyruz_airsense_config_temp,
758
+ fzLocal.diyruz_airsense_config_pres,
759
+ fzLocal.diyruz_airsense_config_hum,
339
760
  ],
340
- toZigbee: [tz.diyruz_airsense_config],
761
+ toZigbee: [tzLocal.diyruz_airsense_config],
341
762
  configure: async (device, coordinatorEndpoint) => {
342
763
  const endpoint = device.getEndpoint(1);
343
764
  const clusters = ["msTemperatureMeasurement", "msRelativeHumidity", "msPressureMeasurement", "msCO2"];
@@ -368,8 +789,9 @@ exports.definitions = [
368
789
  model: "DIYRuZ_Zintercom",
369
790
  vendor: "DIYRuZ",
370
791
  description: "Matrix intercom auto opener",
371
- fromZigbee: [fz.battery, fz.diyruz_zintercom_config],
372
- toZigbee: [tz.diyruz_zintercom_config],
792
+ extend: [diyruzExtend.addDiyruzClosuresDoorLockCluster()],
793
+ fromZigbee: [fz.battery, fzLocal.diyruz_zintercom_config],
794
+ toZigbee: [tzLocal.diyruz_zintercom_config],
373
795
  configure: async (device, coordinatorEndpoint) => {
374
796
  const firstEndpoint = device.getEndpoint(1);
375
797
  await reporting.bind(firstEndpoint, coordinatorEndpoint, ["closuresDoorLock", "genPowerCfg"]);
@@ -378,7 +800,9 @@ exports.definitions = [
378
800
  { attribute: "batteryVoltage", minimumReportInterval: 0, maximumReportInterval: 3600, reportableChange: 0 },
379
801
  ];
380
802
  await firstEndpoint.configureReporting("genPowerCfg", payload1);
381
- const payload2 = [{ attribute: { ID: 0x0050, type: 0x30 }, minimumReportInterval: 0, maximumReportInterval: 3600, reportableChange: 0 }];
803
+ const payload2 = [
804
+ { attribute: "state", minimumReportInterval: 0, maximumReportInterval: 3600, reportableChange: 0 },
805
+ ];
382
806
  await firstEndpoint.configureReporting("closuresDoorLock", payload2);
383
807
  },
384
808
  exposes: [