@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
@@ -38,6 +38,7 @@ const fz = __importStar(require("../converters/fromZigbee"));
38
38
  const tz = __importStar(require("../converters/toZigbee"));
39
39
  const exposes = __importStar(require("../lib/exposes"));
40
40
  const m = __importStar(require("../lib/modernExtend"));
41
+ const namron = __importStar(require("../lib/namron"));
41
42
  const reporting = __importStar(require("../lib/reporting"));
42
43
  const utils = __importStar(require("../lib/utils"));
43
44
  //import {logger} from "../lib/logger";
@@ -533,7 +534,7 @@ const tzLocal = {
533
534
  thermostat_manuf_name: {
534
535
  key: ["manuf_name"],
535
536
  convertSet: async (entity, key, value, meta) => {
536
- const lookup = { R00: 0, R01: 1, R02: 2, R03: 3, R04: 4, R05: 5, R06: 6, R07: 7, R08: 8, R09: 9, R0A: 10, R0B: 11 };
537
+ const lookup = { R00: 0, R01: 1, R02: 2, R03: 3, R04: 4, R05: 5, R06: 6, R07: 7, R08: 8, R09: 9, R0A: 10, R0B: 11, R0C: 12, R0D: 13 };
537
538
  await entity.write("hvacThermostat", { [attrThermManufName]: { value: utils.getFromLookup(value, lookup), type: 0x30 } });
538
539
  return { state: { manuf_name: value } };
539
540
  },
@@ -557,7 +558,7 @@ const localFromZigbeeThermostat = [
557
558
  fz.humidity,
558
559
  fz.thermostat,
559
560
  fz.fan,
560
- fz.namron_hvac_user_interface,
561
+ namron.fromZigbee.namron_hvac_user_interface,
561
562
  fz.thermostat_weekly_schedule,
562
563
  fzLocal.thermostat_custom_fw,
563
564
  fzLocal.thermostat_schedule,
@@ -575,7 +576,7 @@ const localToZigbeeThermostat = [
575
576
  tz.thermostat_min_heat_setpoint_limit,
576
577
  tz.thermostat_max_heat_setpoint_limit,
577
578
  tz.thermostat_programming_operation_mode,
578
- tz.namron_thermostat_child_lock,
579
+ namron.toZigbee.namron_thermostat_child_lock,
579
580
  tz.thermostat_weekly_schedule,
580
581
  tz.fan_mode,
581
582
  tzLocal.display_brightness,
@@ -1422,35 +1423,42 @@ exports.definitions = [
1422
1423
  description: "Electricity Meter via optical port",
1423
1424
  extend: [
1424
1425
  m.deviceAddCustomCluster("seMetering", {
1426
+ name: "seMetering",
1425
1427
  ID: 0x0702,
1426
1428
  attributes: {
1427
1429
  deviceModel: {
1430
+ name: "deviceModel",
1428
1431
  ID: attrElCityMeterModelPreset,
1429
1432
  type: 0x30,
1430
1433
  write: true,
1431
1434
  max: 0xff,
1432
1435
  },
1433
1436
  deviceAddress: {
1437
+ name: "deviceAddress",
1434
1438
  ID: attrElCityMeterAddressPreset,
1435
1439
  type: 0x23,
1436
1440
  write: true,
1437
1441
  max: 0xffffffff,
1438
1442
  },
1439
1443
  readPeriod: {
1444
+ name: "readPeriod",
1440
1445
  ID: attrElCityMeterMeasurementPreset,
1441
1446
  type: 0x20,
1442
1447
  write: true,
1443
1448
  max: 0xff,
1444
1449
  },
1445
1450
  dateRelease: {
1451
+ name: "dateRelease",
1446
1452
  ID: attrElCityMeterDateRelease,
1447
1453
  type: 0x41,
1448
1454
  },
1449
1455
  deviceName: {
1456
+ name: "deviceName",
1450
1457
  ID: attrElCityMeterModelName,
1451
1458
  type: 0x41,
1452
1459
  },
1453
1460
  devicePassword: {
1461
+ name: "devicePassword",
1454
1462
  ID: attrElCityMeterPasswordPreset,
1455
1463
  write: true,
1456
1464
  type: 0x41,
@@ -1490,35 +1498,42 @@ exports.definitions = [
1490
1498
  description: "Three phase Electricity Meter via optical port",
1491
1499
  extend: [
1492
1500
  m.deviceAddCustomCluster("seMetering", {
1501
+ name: "seMetering",
1493
1502
  ID: 0x0702,
1494
1503
  attributes: {
1495
1504
  deviceModel: {
1505
+ name: "deviceModel",
1496
1506
  ID: attrElCityMeterModelPreset,
1497
1507
  type: 0x30,
1498
1508
  write: true,
1499
1509
  max: 0xff,
1500
1510
  },
1501
1511
  deviceAddress: {
1512
+ name: "deviceAddress",
1502
1513
  ID: attrElCityMeterAddressPreset,
1503
1514
  type: 0x23,
1504
1515
  write: true,
1505
1516
  max: 0xffffffff,
1506
1517
  },
1507
1518
  readPeriod: {
1519
+ name: "readPeriod",
1508
1520
  ID: attrElCityMeterMeasurementPreset,
1509
1521
  type: 0x20,
1510
1522
  write: true,
1511
1523
  max: 0xff,
1512
1524
  },
1513
1525
  dateRelease: {
1526
+ name: "dateRelease",
1514
1527
  ID: attrElCityMeterDateRelease,
1515
1528
  type: 0x41,
1516
1529
  },
1517
1530
  deviceName: {
1531
+ name: "deviceName",
1518
1532
  ID: attrElCityMeterModelName,
1519
1533
  type: 0x41,
1520
1534
  },
1521
1535
  devicePassword: {
1536
+ name: "devicePassword",
1522
1537
  ID: attrElCityMeterPasswordPreset,
1523
1538
  write: true,
1524
1539
  type: 0x41,
@@ -1557,15 +1572,18 @@ exports.definitions = [
1557
1572
  configure: configureCommon,
1558
1573
  extend: [
1559
1574
  m.deviceAddCustomCluster("hvacThermostat", {
1575
+ name: "hvacThermostat",
1560
1576
  ID: 0x0201,
1561
1577
  attributes: {
1562
1578
  localTemperatureCalibration: {
1579
+ name: "localTemperatureCalibration",
1563
1580
  ID: 0x0010,
1564
1581
  type: 0x28,
1565
1582
  write: true,
1566
1583
  max: 0xff,
1567
1584
  },
1568
1585
  minSetpointDeadBand: {
1586
+ name: "minSetpointDeadBand",
1569
1587
  ID: 0x0019,
1570
1588
  type: 0x28,
1571
1589
  write: true,
@@ -1622,15 +1640,18 @@ exports.definitions = [
1622
1640
  configure: configureCommon,
1623
1641
  extend: [
1624
1642
  m.deviceAddCustomCluster("hvacThermostat", {
1643
+ name: "hvacThermostat",
1625
1644
  ID: 0x0201,
1626
1645
  attributes: {
1627
1646
  localTemperatureCalibration: {
1647
+ name: "localTemperatureCalibration",
1628
1648
  ID: 0x0010,
1629
1649
  type: 0x28,
1630
1650
  write: true,
1631
1651
  max: 0xff,
1632
1652
  },
1633
1653
  minSetpointDeadBand: {
1654
+ name: "minSetpointDeadBand",
1634
1655
  ID: 0x0019,
1635
1656
  type: 0x28,
1636
1657
  write: true,
@@ -1713,15 +1734,18 @@ exports.definitions = [
1713
1734
  configure: configureCommon,
1714
1735
  extend: [
1715
1736
  m.deviceAddCustomCluster("hvacThermostat", {
1737
+ name: "hvacThermostat",
1716
1738
  ID: 0x0201,
1717
1739
  attributes: {
1718
1740
  localTemperatureCalibration: {
1741
+ name: "localTemperatureCalibration",
1719
1742
  ID: 0x0010,
1720
1743
  type: 0x28,
1721
1744
  write: true,
1722
1745
  max: 0xff,
1723
1746
  },
1724
1747
  minSetpointDeadBand: {
1748
+ name: "minSetpointDeadBand",
1725
1749
  ID: 0x0019,
1726
1750
  type: 0x28,
1727
1751
  write: true,
@@ -1814,15 +1838,18 @@ exports.definitions = [
1814
1838
  configure: configureCommon,
1815
1839
  extend: [
1816
1840
  m.deviceAddCustomCluster("hvacThermostat", {
1841
+ name: "hvacThermostat",
1817
1842
  ID: 0x0201,
1818
1843
  attributes: {
1819
1844
  localTemperatureCalibration: {
1845
+ name: "localTemperatureCalibration",
1820
1846
  ID: 0x0010,
1821
1847
  type: 0x28,
1822
1848
  write: true,
1823
1849
  max: 0xff,
1824
1850
  },
1825
1851
  minSetpointDeadBand: {
1852
+ name: "minSetpointDeadBand",
1826
1853
  ID: 0x0019,
1827
1854
  type: 0x28,
1828
1855
  write: true,
@@ -1914,15 +1941,18 @@ exports.definitions = [
1914
1941
  configure: configureCommon,
1915
1942
  extend: [
1916
1943
  m.deviceAddCustomCluster("hvacThermostat", {
1944
+ name: "hvacThermostat",
1917
1945
  ID: 0x0201,
1918
1946
  attributes: {
1919
1947
  localTemperatureCalibration: {
1948
+ name: "localTemperatureCalibration",
1920
1949
  ID: 0x0010,
1921
1950
  type: 0x28,
1922
1951
  write: true,
1923
1952
  max: 0xff,
1924
1953
  },
1925
1954
  minSetpointDeadBand: {
1955
+ name: "minSetpointDeadBand",
1926
1956
  ID: 0x0019,
1927
1957
  type: 0x28,
1928
1958
  write: true,
@@ -1998,15 +2028,18 @@ exports.definitions = [
1998
2028
  configure: configureCommon,
1999
2029
  extend: [
2000
2030
  m.deviceAddCustomCluster("hvacThermostat", {
2031
+ name: "hvacThermostat",
2001
2032
  ID: 0x0201,
2002
2033
  attributes: {
2003
2034
  localTemperatureCalibration: {
2035
+ name: "localTemperatureCalibration",
2004
2036
  ID: 0x0010,
2005
2037
  type: 0x28,
2006
2038
  write: true,
2007
2039
  max: 0xff,
2008
2040
  },
2009
2041
  minSetpointDeadBand: {
2042
+ name: "minSetpointDeadBand",
2010
2043
  ID: 0x0019,
2011
2044
  type: 0x28,
2012
2045
  write: true,
@@ -2075,15 +2108,18 @@ exports.definitions = [
2075
2108
  configure: configureCommon,
2076
2109
  extend: [
2077
2110
  m.deviceAddCustomCluster("hvacThermostat", {
2111
+ name: "hvacThermostat",
2078
2112
  ID: 0x0201,
2079
2113
  attributes: {
2080
2114
  localTemperatureCalibration: {
2115
+ name: "localTemperatureCalibration",
2081
2116
  ID: 0x0010,
2082
2117
  type: 0x28,
2083
2118
  write: true,
2084
2119
  max: 0xff,
2085
2120
  },
2086
2121
  minSetpointDeadBand: {
2122
+ name: "minSetpointDeadBand",
2087
2123
  ID: 0x0019,
2088
2124
  type: 0x28,
2089
2125
  write: true,
@@ -2167,15 +2203,18 @@ exports.definitions = [
2167
2203
  configure: configureCommon,
2168
2204
  extend: [
2169
2205
  m.deviceAddCustomCluster("hvacThermostat", {
2206
+ name: "hvacThermostat",
2170
2207
  ID: 0x0201,
2171
2208
  attributes: {
2172
2209
  localTemperatureCalibration: {
2210
+ name: "localTemperatureCalibration",
2173
2211
  ID: 0x0010,
2174
2212
  type: 0x28,
2175
2213
  write: true,
2176
2214
  max: 0xff,
2177
2215
  },
2178
2216
  minSetpointDeadBand: {
2217
+ name: "minSetpointDeadBand",
2179
2218
  ID: 0x0019,
2180
2219
  type: 0x28,
2181
2220
  write: true,
@@ -2239,15 +2278,18 @@ exports.definitions = [
2239
2278
  configure: configureCommon,
2240
2279
  extend: [
2241
2280
  m.deviceAddCustomCluster("hvacThermostat", {
2281
+ name: "hvacThermostat",
2242
2282
  ID: 0x0201,
2243
2283
  attributes: {
2244
2284
  localTemperatureCalibration: {
2285
+ name: "localTemperatureCalibration",
2245
2286
  ID: 0x0010,
2246
2287
  type: 0x28,
2247
2288
  write: true,
2248
2289
  max: 0xff,
2249
2290
  },
2250
2291
  minSetpointDeadBand: {
2292
+ name: "minSetpointDeadBand",
2251
2293
  ID: 0x0019,
2252
2294
  type: 0x28,
2253
2295
  write: true,
@@ -2350,15 +2392,18 @@ exports.definitions = [
2350
2392
  configure: configureCommon,
2351
2393
  extend: [
2352
2394
  m.deviceAddCustomCluster("hvacThermostat", {
2395
+ name: "hvacThermostat",
2353
2396
  ID: 0x0201,
2354
2397
  attributes: {
2355
2398
  localTemperatureCalibration: {
2399
+ name: "localTemperatureCalibration",
2356
2400
  ID: 0x0010,
2357
2401
  type: 0x28,
2358
2402
  write: true,
2359
2403
  max: 0xff,
2360
2404
  },
2361
2405
  minSetpointDeadBand: {
2406
+ name: "minSetpointDeadBand",
2362
2407
  ID: 0x0019,
2363
2408
  type: 0x28,
2364
2409
  write: true,
@@ -2430,15 +2475,18 @@ exports.definitions = [
2430
2475
  configure: configureCommon,
2431
2476
  extend: [
2432
2477
  m.deviceAddCustomCluster("hvacThermostat", {
2478
+ name: "hvacThermostat",
2433
2479
  ID: 0x0201,
2434
2480
  attributes: {
2435
2481
  localTemperatureCalibration: {
2482
+ name: "localTemperatureCalibration",
2436
2483
  ID: 0x0010,
2437
2484
  type: 0x28,
2438
2485
  write: true,
2439
2486
  max: 0xff,
2440
2487
  },
2441
2488
  minSetpointDeadBand: {
2489
+ name: "minSetpointDeadBand",
2442
2490
  ID: 0x0019,
2443
2491
  type: 0x28,
2444
2492
  write: true,
@@ -2478,7 +2526,7 @@ exports.definitions = [
2478
2526
  e
2479
2527
  .climate()
2480
2528
  .withLocalTemperature()
2481
- .withSetpoint("occupied_heating_setpoint", 1, 50, 1)
2529
+ .withSetpoint("occupied_heating_setpoint", 1, 50, 0.5)
2482
2530
  .withLocalTemperatureCalibration(-9, 9, 1)
2483
2531
  .withSystemMode(["off", "heat"])
2484
2532
  .withRunningState(["idle", "heat"], ea.STATE)
@@ -2503,15 +2551,18 @@ exports.definitions = [
2503
2551
  configure: configureCommon,
2504
2552
  extend: [
2505
2553
  m.deviceAddCustomCluster("hvacThermostat", {
2554
+ name: "hvacThermostat",
2506
2555
  ID: 0x0201,
2507
2556
  attributes: {
2508
2557
  localTemperatureCalibration: {
2558
+ name: "localTemperatureCalibration",
2509
2559
  ID: 0x0010,
2510
2560
  type: 0x28,
2511
2561
  write: true,
2512
2562
  max: 0xff,
2513
2563
  },
2514
2564
  minSetpointDeadBand: {
2565
+ name: "minSetpointDeadBand",
2515
2566
  ID: 0x0019,
2516
2567
  type: 0x28,
2517
2568
  write: true,
@@ -2611,15 +2662,18 @@ exports.definitions = [
2611
2662
  configure: configureCommon,
2612
2663
  extend: [
2613
2664
  m.deviceAddCustomCluster("hvacThermostat", {
2665
+ name: "hvacThermostat",
2614
2666
  ID: 0x0201,
2615
2667
  attributes: {
2616
2668
  localTemperatureCalibration: {
2669
+ name: "localTemperatureCalibration",
2617
2670
  ID: 0x0010,
2618
2671
  type: 0x28,
2619
2672
  write: true,
2620
2673
  max: 0xff,
2621
2674
  },
2622
2675
  minSetpointDeadBand: {
2676
+ name: "minSetpointDeadBand",
2623
2677
  ID: 0x0019,
2624
2678
  type: 0x28,
2625
2679
  write: true,
@@ -2701,7 +2755,16 @@ exports.definitions = [
2701
2755
  ota: true,
2702
2756
  },
2703
2757
  {
2704
- zigbeeModel: ["TS0201-z-SlD", "TS0201-z15-SlD", "TS0201-z21-SlD", "TS0201-z22-SlD", "TS0201-z23-SlD", "TS0201-z24-SlD"],
2758
+ zigbeeModel: [
2759
+ "TS0201-z-SlD",
2760
+ "TS0201-z15-SlD",
2761
+ "TS0201-z21-SlD",
2762
+ "TS0201-z22-SlD",
2763
+ "TS0201-z23-SlD",
2764
+ "TS0201-z24-SlD",
2765
+ "TS0201-z28-SlD",
2766
+ "TS0201-z29-SlD",
2767
+ ],
2705
2768
  model: "TS0201-z-SlD",
2706
2769
  vendor: "Slacky-DIY",
2707
2770
  description: "Tuya temperature and humidity sensor with custom Firmware",
@@ -3034,9 +3097,77 @@ exports.definitions = [
3034
3097
  vendor: "Svetomaniya",
3035
3098
  description: "Smart light switch module 1 gang",
3036
3099
  extend: [
3100
+ m.deviceAddCustomCluster("genOnOffSwitchCfg", {
3101
+ name: "genOnOffSwitchCfg",
3102
+ ID: 0x0007,
3103
+ attributes: {
3104
+ customSwitchType: {
3105
+ name: "customSwitchType",
3106
+ ID: attrSwitchType,
3107
+ type: 0x30,
3108
+ write: true,
3109
+ max: 0xff,
3110
+ },
3111
+ customRelayControl: {
3112
+ name: "customRelayControl",
3113
+ ID: attrSwitchDecoupled,
3114
+ type: 0x30,
3115
+ write: true,
3116
+ max: 0xff,
3117
+ },
3118
+ },
3119
+ commands: {},
3120
+ commandsResponse: {},
3121
+ }),
3122
+ m.deviceAddCustomCluster("genLevelCtrl", {
3123
+ name: "genLevelCtrl",
3124
+ ID: 0x0008,
3125
+ attributes: {
3126
+ minLevel: {
3127
+ name: "minLevel",
3128
+ ID: 0x0002,
3129
+ type: 0x20,
3130
+ write: true,
3131
+ max: 0xff,
3132
+ },
3133
+ maxLevel: {
3134
+ name: "maxLevel",
3135
+ ID: 0x0003,
3136
+ type: 0x20,
3137
+ write: true,
3138
+ max: 0xff,
3139
+ },
3140
+ },
3141
+ commands: {},
3142
+ commandsResponse: {},
3143
+ }),
3144
+ m.deviceAddCustomCluster("genScenes", {
3145
+ name: "genScenes",
3146
+ ID: 0x0005,
3147
+ attributes: {
3148
+ customSceneId: {
3149
+ name: "customSceneId",
3150
+ ID: attrSceneId,
3151
+ type: 0x20,
3152
+ write: true,
3153
+ max: 0xff,
3154
+ },
3155
+ customGroupId: {
3156
+ name: "customGroupId",
3157
+ ID: attrGroupId,
3158
+ type: 0x21,
3159
+ write: true,
3160
+ max: 0xffff,
3161
+ },
3162
+ },
3163
+ commands: {},
3164
+ commandsResponse: {},
3165
+ }),
3037
3166
  m.onOff({ powerOnBehavior: true }),
3038
3167
  m.commandsOnOff(),
3039
- localActionExtend(),
3168
+ localActionExtend({ reporting: false }),
3169
+ m.commandsLevelCtrl(),
3170
+ m.commandsColorCtrl(),
3040
3171
  m.enumLookup({
3041
3172
  name: "switch_actions",
3042
3173
  lookup: { off: 0, on: 1 },
@@ -3046,19 +3177,62 @@ exports.definitions = [
3046
3177
  }),
3047
3178
  m.enumLookup({
3048
3179
  name: "switch_type",
3049
- lookup: { toggle: 0, momentary: 1, multifunction: 2 },
3180
+ lookup: {
3181
+ toggle: 0,
3182
+ momentary: 1,
3183
+ multifunction: 2,
3184
+ light_control: 3,
3185
+ scene: 6,
3186
+ },
3050
3187
  cluster: "genOnOffSwitchCfg",
3051
- attribute: { ID: 0xf000, type: 0x30 },
3188
+ attribute: "customSwitchType",
3052
3189
  description: "Switch type",
3053
3190
  }),
3054
3191
  m.enumLookup({
3055
3192
  name: "operation_mode",
3056
3193
  lookup: { control_relay: 0, decoupled: 1 },
3057
3194
  cluster: "genOnOffSwitchCfg",
3058
- attribute: { ID: 0xf001, type: 0x30 },
3195
+ attribute: "customRelayControl",
3059
3196
  reporting: { min: 0, max: 65000, change: 0 },
3060
3197
  description: "Relay decoupled",
3061
3198
  }),
3199
+ m.commandsScenes(),
3200
+ m.numeric({
3201
+ name: "scene_id",
3202
+ access: "ALL",
3203
+ cluster: "genScenes",
3204
+ attribute: "customSceneId",
3205
+ valueMin: 0,
3206
+ valueMax: 255,
3207
+ description: "Scene ID",
3208
+ }),
3209
+ m.numeric({
3210
+ name: "group_id",
3211
+ access: "ALL",
3212
+ cluster: "genScenes",
3213
+ attribute: "customGroupId",
3214
+ valueMin: 0,
3215
+ valueMax: 65527,
3216
+ description: "Group ID for scenes",
3217
+ }),
3218
+ m.numeric({
3219
+ name: "min_level",
3220
+ access: "ALL",
3221
+ cluster: "genLevelCtrl",
3222
+ attribute: "minLevel",
3223
+ valueMin: 1,
3224
+ valueMax: 255,
3225
+ description: "Minimum level when decreasing",
3226
+ }),
3227
+ m.numeric({
3228
+ name: "max_level",
3229
+ access: "ALL",
3230
+ cluster: "genLevelCtrl",
3231
+ attribute: "maxLevel",
3232
+ valueMin: 1,
3233
+ valueMax: 255,
3234
+ description: "Maximum level when increasing",
3235
+ }),
3062
3236
  ],
3063
3237
  meta: {},
3064
3238
  ota: true,
@@ -3069,17 +3243,90 @@ exports.definitions = [
3069
3243
  vendor: "Svetomaniya",
3070
3244
  description: "Smart light switch module 2 gang",
3071
3245
  extend: [
3246
+ m.deviceAddCustomCluster("genOnOffSwitchCfg", {
3247
+ name: "genOnOffSwitchCfg",
3248
+ ID: 0x0007,
3249
+ attributes: {
3250
+ customSwitchType: {
3251
+ name: "customSwitchType",
3252
+ ID: attrSwitchType,
3253
+ type: 0x30,
3254
+ write: true,
3255
+ max: 0xff,
3256
+ },
3257
+ customRelayControl: {
3258
+ name: "customRelayControl",
3259
+ ID: attrSwitchDecoupled,
3260
+ type: 0x30,
3261
+ write: true,
3262
+ max: 0xff,
3263
+ },
3264
+ },
3265
+ commands: {},
3266
+ commandsResponse: {},
3267
+ }),
3268
+ m.deviceAddCustomCluster("genLevelCtrl", {
3269
+ name: "genLevelCtrl",
3270
+ ID: 0x0008,
3271
+ attributes: {
3272
+ minLevel: {
3273
+ name: "minLevel",
3274
+ ID: 0x0002,
3275
+ type: 0x20,
3276
+ write: true,
3277
+ max: 0xff,
3278
+ },
3279
+ maxLevel: {
3280
+ name: "maxLevel",
3281
+ ID: 0x0003,
3282
+ type: 0x20,
3283
+ write: true,
3284
+ max: 0xff,
3285
+ },
3286
+ },
3287
+ commands: {},
3288
+ commandsResponse: {},
3289
+ }),
3290
+ m.deviceAddCustomCluster("genScenes", {
3291
+ name: "genScenes",
3292
+ ID: 0x0005,
3293
+ attributes: {
3294
+ customSceneId: {
3295
+ name: "customSceneId",
3296
+ ID: attrSceneId,
3297
+ type: 0x20,
3298
+ write: true,
3299
+ max: 0xff,
3300
+ },
3301
+ customGroupId: {
3302
+ name: "customGroupId",
3303
+ ID: attrGroupId,
3304
+ type: 0x21,
3305
+ write: true,
3306
+ max: 0xffff,
3307
+ },
3308
+ },
3309
+ commands: {},
3310
+ commandsResponse: {},
3311
+ }),
3072
3312
  m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
3073
3313
  m.onOff({ powerOnBehavior: true, endpointNames: ["1", "2"] }),
3074
3314
  m.commandsOnOff({ endpointNames: ["1", "2"] }),
3075
- localActionExtend({ endpointNames: ["1", "2"] }),
3315
+ localActionExtend({
3316
+ endpointNames: ["1", "2"],
3317
+ reporting: false,
3318
+ }),
3319
+ m.commandsLevelCtrl({ endpointNames: ["1", "2"] }),
3320
+ m.commandsColorCtrl({
3321
+ endpointNames: ["1", "2"],
3322
+ }),
3076
3323
  m.enumLookup({
3077
3324
  name: "switch_actions",
3078
3325
  endpointName: "1",
3079
3326
  lookup: { off: 0, on: 1 },
3080
3327
  cluster: "genOnOffSwitchCfg",
3081
3328
  attribute: "switchActions",
3082
- description: "Actions switch 1",
3329
+ description: "Actions switch",
3083
3330
  }),
3084
3331
  m.enumLookup({
3085
3332
  name: "switch_actions",
@@ -3087,44 +3334,101 @@ exports.definitions = [
3087
3334
  lookup: { off: 0, on: 1 },
3088
3335
  cluster: "genOnOffSwitchCfg",
3089
3336
  attribute: "switchActions",
3090
- description: "Actions switch 2",
3337
+ description: "Actions switch",
3091
3338
  }),
3092
3339
  m.enumLookup({
3093
3340
  name: "switch_type",
3094
3341
  endpointName: "1",
3095
- lookup: { toggle: 0, momentary: 1, multifunction: 2 },
3342
+ lookup: {
3343
+ toggle: 0,
3344
+ momentary: 1,
3345
+ multifunction: 2,
3346
+ light_control: 3,
3347
+ light_control_up: 4,
3348
+ light_control_down: 5,
3349
+ scene: 6,
3350
+ },
3096
3351
  cluster: "genOnOffSwitchCfg",
3097
- attribute: { ID: 0xf000, type: 0x30 },
3098
- description: "Switch 1 type",
3352
+ attribute: "customSwitchType",
3353
+ description: "Switch type",
3099
3354
  }),
3100
3355
  m.enumLookup({
3101
3356
  name: "switch_type",
3102
3357
  endpointName: "2",
3103
- lookup: { toggle: 0, momentary: 1, multifunction: 2 },
3358
+ lookup: {
3359
+ toggle: 0,
3360
+ momentary: 1,
3361
+ multifunction: 2,
3362
+ light_control: 3,
3363
+ light_control_up: 4,
3364
+ light_control_down: 5,
3365
+ scene: 6,
3366
+ },
3104
3367
  cluster: "genOnOffSwitchCfg",
3105
- attribute: { ID: 0xf000, type: 0x30 },
3106
- description: "Switch 2 type",
3368
+ attribute: "customSwitchType",
3369
+ description: "Switch type",
3107
3370
  }),
3108
3371
  m.enumLookup({
3109
3372
  name: "operation_mode",
3110
3373
  endpointName: "1",
3111
3374
  lookup: { control_relay: 0, decoupled: 1 },
3112
3375
  cluster: "genOnOffSwitchCfg",
3113
- attribute: { ID: 0xf001, type: 0x30 },
3376
+ attribute: "customRelayControl",
3114
3377
  reporting: { min: 0, max: 65000, change: 0 },
3115
- description: "Relay 1 decoupled",
3378
+ description: "Relay decoupled",
3116
3379
  }),
3117
3380
  m.enumLookup({
3118
3381
  name: "operation_mode",
3119
3382
  endpointName: "2",
3120
3383
  lookup: { control_relay: 0, decoupled: 1 },
3121
3384
  cluster: "genOnOffSwitchCfg",
3122
- attribute: { ID: 0xf001, type: 0x30 },
3385
+ attribute: "customRelayControl",
3123
3386
  reporting: { min: 0, max: 65000, change: 0 },
3124
- description: "Relay 2 decoupled",
3387
+ description: "Relay decoupled",
3388
+ }),
3389
+ m.commandsScenes({ endpointNames: ["1", "2"] }),
3390
+ m.numeric({
3391
+ name: "scene_id",
3392
+ endpointNames: ["1", "2"],
3393
+ access: "ALL",
3394
+ cluster: "genScenes",
3395
+ attribute: "customSceneId",
3396
+ valueMin: 0,
3397
+ valueMax: 255,
3398
+ description: "Scene ID",
3399
+ }),
3400
+ m.numeric({
3401
+ name: "group_id",
3402
+ endpointNames: ["1", "2"],
3403
+ access: "ALL",
3404
+ cluster: "genScenes",
3405
+ attribute: "customGroupId",
3406
+ valueMin: 0,
3407
+ valueMax: 65527,
3408
+ description: "Group ID for scenes",
3409
+ }),
3410
+ m.numeric({
3411
+ name: "min_level",
3412
+ endpointNames: ["1", "2"],
3413
+ access: "ALL",
3414
+ cluster: "genLevelCtrl",
3415
+ attribute: "minLevel",
3416
+ valueMin: 1,
3417
+ valueMax: 255,
3418
+ description: "Minimum level when decreasing",
3419
+ }),
3420
+ m.numeric({
3421
+ name: "max_level",
3422
+ endpointNames: ["1", "2"],
3423
+ access: "ALL",
3424
+ cluster: "genLevelCtrl",
3425
+ attribute: "maxLevel",
3426
+ valueMin: 1,
3427
+ valueMax: 255,
3428
+ description: "Maximum level when increasing",
3125
3429
  }),
3126
3430
  ],
3127
- meta: { multiEndpoint: true },
3431
+ meta: {},
3128
3432
  ota: true,
3129
3433
  },
3130
3434
  {
@@ -3157,10 +3461,12 @@ exports.definitions = [
3157
3461
  acFrequency: { divisor: 100 },
3158
3462
  }),
3159
3463
  m.deviceAddCustomCluster("seMetering", {
3464
+ name: "seMetering",
3160
3465
  ID: 0x0702,
3161
3466
  attributes: {},
3162
3467
  commands: {
3163
3468
  resetEnergyMeters: {
3469
+ name: "resetEnergyMeters",
3164
3470
  ID: 0x80,
3165
3471
  parameters: [],
3166
3472
  },
@@ -3276,10 +3582,12 @@ exports.definitions = [
3276
3582
  acFrequency: { divisor: 100 },
3277
3583
  }),
3278
3584
  m.deviceAddCustomCluster("seMetering", {
3585
+ name: "seMetering",
3279
3586
  ID: 0x0702,
3280
3587
  attributes: {},
3281
3588
  commands: {
3282
3589
  resetEnergyMeters: {
3590
+ name: "resetEnergyMeters",
3283
3591
  ID: 0x80,
3284
3592
  parameters: [],
3285
3593
  },
@@ -3363,21 +3671,25 @@ exports.definitions = [
3363
3671
  description: "Tuya switch module 1 gang with custom firmware",
3364
3672
  extend: [
3365
3673
  m.deviceAddCustomCluster("genOnOffSwitchCfg", {
3674
+ name: "genOnOffSwitchCfg",
3366
3675
  ID: 0x0007,
3367
3676
  attributes: {
3368
3677
  customSwitchType: {
3678
+ name: "customSwitchType",
3369
3679
  ID: attrSwitchType,
3370
3680
  type: 0x30,
3371
3681
  write: true,
3372
3682
  max: 0xff,
3373
3683
  },
3374
3684
  customRelayControl: {
3685
+ name: "customRelayControl",
3375
3686
  ID: attrSwitchDecoupled,
3376
3687
  type: 0x30,
3377
3688
  write: true,
3378
3689
  max: 0xff,
3379
3690
  },
3380
3691
  customDeviceModelNumber: {
3692
+ name: "customDeviceModelNumber",
3381
3693
  ID: attrDeviceModelNumber,
3382
3694
  type: 0x30,
3383
3695
  write: true,
@@ -3424,33 +3736,39 @@ exports.definitions = [
3424
3736
  toZigbee: [tzLocal.device_model_number],
3425
3737
  extend: [
3426
3738
  m.deviceAddCustomCluster("genOnOffSwitchCfg", {
3739
+ name: "genOnOffSwitchCfg",
3427
3740
  ID: 0x0007,
3428
3741
  attributes: {
3429
3742
  customDelayOn: {
3743
+ name: "customDelayOn",
3430
3744
  ID: attrDoorDelayOn,
3431
3745
  type: 0x20,
3432
3746
  write: true,
3433
3747
  max: 0xff,
3434
3748
  },
3435
3749
  customDelayOff: {
3750
+ name: "customDelayOff",
3436
3751
  ID: attrDoorDelayOff,
3437
3752
  type: 0x20,
3438
3753
  write: true,
3439
3754
  max: 0xff,
3440
3755
  },
3441
3756
  customDeviceModelNumber: {
3757
+ name: "customDeviceModelNumber",
3442
3758
  ID: attrDeviceModelNumber,
3443
3759
  type: 0x30,
3444
3760
  write: true,
3445
3761
  max: 0xff,
3446
3762
  },
3447
3763
  customOnCmdOff: {
3764
+ name: "customOnCmdOff",
3448
3765
  ID: attrDoorOnCmdOff,
3449
3766
  type: 0x10,
3450
3767
  write: true,
3451
3768
  max: 0x01,
3452
3769
  },
3453
3770
  customOffCmdOff: {
3771
+ name: "customOffCmdOff",
3454
3772
  ID: attrDoorOffCmdOff,
3455
3773
  type: 0x10,
3456
3774
  write: true,
@@ -3520,21 +3838,32 @@ exports.definitions = [
3520
3838
  ota: true,
3521
3839
  },
3522
3840
  {
3523
- zigbeeModel: ["TS0044-z-SlD"],
3524
- model: "TS0044-z-SlD",
3841
+ fingerprint: [
3842
+ { modelID: "TS0041-M001-SlD", manufacturerName: "Slacky-DIY" },
3843
+ { modelID: "TS0041-M002-SlD", manufacturerName: "Slacky-DIY" },
3844
+ { modelID: "TS0041-M005-SlD", manufacturerName: "Slacky-DIY" },
3845
+ ],
3846
+ model: "TS0041-M001-SlD",
3525
3847
  vendor: "Slacky-DIY",
3526
- description: "Tuya wireless switch with 4 buttons with custom firmware",
3848
+ description: "Tuya wireless switch with 1 buttons with custom firmware",
3849
+ whiteLabel: [
3850
+ { model: "TS0041-M002-SlD", fingerprint: [{ modelID: "TS0041-M002-SlD" }] },
3851
+ { model: "TS0041-M005-SlD", fingerprint: [{ modelID: "TS0041-M005-SlD" }] },
3852
+ ],
3527
3853
  extend: [
3528
3854
  m.deviceAddCustomCluster("genOnOffSwitchCfg", {
3855
+ name: "genOnOffSwitchCfg",
3529
3856
  ID: 0x0007,
3530
3857
  attributes: {
3531
3858
  customSwitchType: {
3859
+ name: "customSwitchType",
3532
3860
  ID: attrSwitchType,
3533
3861
  type: 0x30,
3534
3862
  write: true,
3535
3863
  max: 0xff,
3536
3864
  },
3537
3865
  customDeviceModelNumber: {
3866
+ name: "customDeviceModelNumber",
3538
3867
  ID: attrDeviceModelNumber,
3539
3868
  type: 0x30,
3540
3869
  write: true,
@@ -3544,16 +3873,41 @@ exports.definitions = [
3544
3873
  commands: {},
3545
3874
  commandsResponse: {},
3546
3875
  }),
3876
+ m.deviceAddCustomCluster("genLevelCtrl", {
3877
+ name: "genLevelCtrl",
3878
+ ID: 0x0008,
3879
+ attributes: {
3880
+ minLevel: {
3881
+ name: "minLevel",
3882
+ ID: 0x0002,
3883
+ type: 0x20,
3884
+ write: true,
3885
+ max: 0xff,
3886
+ },
3887
+ maxLevel: {
3888
+ name: "maxLevel",
3889
+ ID: 0x0003,
3890
+ type: 0x20,
3891
+ write: true,
3892
+ max: 0xff,
3893
+ },
3894
+ },
3895
+ commands: {},
3896
+ commandsResponse: {},
3897
+ }),
3547
3898
  m.deviceAddCustomCluster("genScenes", {
3899
+ name: "genScenes",
3548
3900
  ID: 0x0005,
3549
3901
  attributes: {
3550
3902
  customSceneId: {
3903
+ name: "customSceneId",
3551
3904
  ID: attrSceneId,
3552
3905
  type: 0x20,
3553
3906
  write: true,
3554
3907
  max: 0xff,
3555
3908
  },
3556
3909
  customGroupId: {
3910
+ name: "customGroupId",
3557
3911
  ID: attrGroupId,
3558
3912
  type: 0x21,
3559
3913
  write: true,
@@ -3563,16 +3917,17 @@ exports.definitions = [
3563
3917
  commands: {},
3564
3918
  commandsResponse: {},
3565
3919
  }),
3566
- m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3, "4": 4 } }),
3920
+ m.deviceEndpoints({ endpoints: { "1": 1 } }),
3567
3921
  m.battery({
3568
3922
  percentageReportingConfig: { min: 3600, max: 14400, change: 0 },
3569
3923
  }),
3570
- m.commandsOnOff({ endpointNames: ["1", "2", "3", "4"] }),
3924
+ m.commandsOnOff({ endpointNames: ["1"] }),
3571
3925
  localActionExtend({
3572
- endpointNames: ["1", "2", "3", "4"],
3926
+ endpointNames: ["1"],
3573
3927
  reporting: false,
3574
3928
  }),
3575
- m.commandsLevelCtrl({ endpointNames: ["1", "2", "3", "4"] }),
3929
+ m.commandsLevelCtrl({ endpointNames: ["1"] }),
3930
+ m.commandsColorCtrl({ endpointNames: ["1"] }),
3576
3931
  m.enumLookup({
3577
3932
  name: "switch_actions",
3578
3933
  endpointName: "1",
@@ -3581,30 +3936,6 @@ exports.definitions = [
3581
3936
  attribute: "switchActions",
3582
3937
  description: "Actions switch",
3583
3938
  }),
3584
- m.enumLookup({
3585
- name: "switch_actions",
3586
- endpointName: "2",
3587
- lookup: { off: 0, on: 1, toggle: 2 },
3588
- cluster: "genOnOffSwitchCfg",
3589
- attribute: "switchActions",
3590
- description: "Actions switch",
3591
- }),
3592
- m.enumLookup({
3593
- name: "switch_actions",
3594
- endpointName: "3",
3595
- lookup: { off: 0, on: 1, toggle: 2 },
3596
- cluster: "genOnOffSwitchCfg",
3597
- attribute: "switchActions",
3598
- description: "Actions switch",
3599
- }),
3600
- m.enumLookup({
3601
- name: "switch_actions",
3602
- endpointName: "4",
3603
- lookup: { off: 0, on: 1, toggle: 2 },
3604
- cluster: "genOnOffSwitchCfg",
3605
- attribute: "switchActions",
3606
- description: "Actions switch",
3607
- }),
3608
3939
  m.enumLookup({
3609
3940
  name: "switch_type",
3610
3941
  endpointName: "1",
@@ -3612,9 +3943,2506 @@ exports.definitions = [
3612
3943
  toggle: 0,
3613
3944
  momentary: 1,
3614
3945
  multifunction: 2,
3615
- brightness_level_up: 3,
3616
- brightness_level_down: 4,
3617
- scene: 5,
3946
+ brightness_level: 3,
3947
+ move_to_color_temperature: 6,
3948
+ scene: 9,
3949
+ },
3950
+ cluster: "genOnOffSwitchCfg",
3951
+ attribute: "customSwitchType",
3952
+ description: "Switch type",
3953
+ }),
3954
+ m.commandsScenes({ endpointNames: ["1"] }),
3955
+ m.numeric({
3956
+ name: "scene_id",
3957
+ access: "ALL",
3958
+ endpointNames: ["1"],
3959
+ cluster: "genScenes",
3960
+ attribute: "customSceneId",
3961
+ reporting: false,
3962
+ valueMin: 0,
3963
+ valueMax: 255,
3964
+ description: "Scene ID",
3965
+ }),
3966
+ m.numeric({
3967
+ name: "group_id",
3968
+ access: "ALL",
3969
+ endpointNames: ["1"],
3970
+ cluster: "genScenes",
3971
+ attribute: "customGroupId",
3972
+ reporting: false,
3973
+ valueMin: 0,
3974
+ valueMax: 65527,
3975
+ description: "Group ID for scenes",
3976
+ }),
3977
+ m.numeric({
3978
+ name: "min_level",
3979
+ endpointNames: ["1"],
3980
+ access: "ALL",
3981
+ cluster: "genLevelCtrl",
3982
+ attribute: "minLevel",
3983
+ valueMin: 1,
3984
+ valueMax: 255,
3985
+ description: "Minimum level when decreasing",
3986
+ }),
3987
+ m.numeric({
3988
+ name: "max_level",
3989
+ endpointNames: ["1"],
3990
+ access: "ALL",
3991
+ cluster: "genLevelCtrl",
3992
+ attribute: "maxLevel",
3993
+ valueMin: 1,
3994
+ valueMax: 255,
3995
+ description: "Maximum level when increasing",
3996
+ }),
3997
+ ],
3998
+ meta: {},
3999
+ ota: true,
4000
+ },
4001
+ {
4002
+ fingerprint: [
4003
+ { modelID: "TS0042-z-SlD", manufacturerName: "Slacky-DIY" },
4004
+ { modelID: "TS0042-M003-SlD", manufacturerName: "Slacky-DIY" },
4005
+ { modelID: "TS0042-M006-SlD", manufacturerName: "Slacky-DIY" },
4006
+ ],
4007
+ model: "TS0042-z-SlD",
4008
+ vendor: "Slacky-DIY",
4009
+ description: "Tuya wireless switch with 2 buttons with custom firmware",
4010
+ whiteLabel: [
4011
+ { model: "TS0042-M003-SlD", fingerprint: [{ modelID: "TS0042-M003-SlD" }] },
4012
+ { model: "TS0042-M006-SlD", fingerprint: [{ modelID: "TS0042-M006-SlD" }] },
4013
+ ],
4014
+ extend: [
4015
+ m.deviceAddCustomCluster("genOnOffSwitchCfg", {
4016
+ name: "genOnOffSwitchCfg",
4017
+ ID: 0x0007,
4018
+ attributes: {
4019
+ customSwitchType: {
4020
+ name: "customSwitchType",
4021
+ ID: attrSwitchType,
4022
+ type: 0x30,
4023
+ write: true,
4024
+ max: 0xff,
4025
+ },
4026
+ customDeviceModelNumber: {
4027
+ name: "customDeviceModelNumber",
4028
+ ID: attrDeviceModelNumber,
4029
+ type: 0x30,
4030
+ write: true,
4031
+ max: 0xff,
4032
+ },
4033
+ },
4034
+ commands: {},
4035
+ commandsResponse: {},
4036
+ }),
4037
+ m.deviceAddCustomCluster("genLevelCtrl", {
4038
+ name: "genLevelCtrl",
4039
+ ID: 0x0008,
4040
+ attributes: {
4041
+ minLevel: {
4042
+ name: "minLevel",
4043
+ ID: 0x0002,
4044
+ type: 0x20,
4045
+ write: true,
4046
+ max: 0xff,
4047
+ },
4048
+ maxLevel: {
4049
+ name: "maxLevel",
4050
+ ID: 0x0003,
4051
+ type: 0x20,
4052
+ write: true,
4053
+ max: 0xff,
4054
+ },
4055
+ },
4056
+ commands: {},
4057
+ commandsResponse: {},
4058
+ }),
4059
+ m.deviceAddCustomCluster("genScenes", {
4060
+ name: "genScenes",
4061
+ ID: 0x0005,
4062
+ attributes: {
4063
+ customSceneId: {
4064
+ name: "customSceneId",
4065
+ ID: attrSceneId,
4066
+ type: 0x20,
4067
+ write: true,
4068
+ max: 0xff,
4069
+ },
4070
+ customGroupId: {
4071
+ name: "customGroupId",
4072
+ ID: attrGroupId,
4073
+ type: 0x21,
4074
+ write: true,
4075
+ max: 0xffff,
4076
+ },
4077
+ },
4078
+ commands: {},
4079
+ commandsResponse: {},
4080
+ }),
4081
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
4082
+ m.battery({
4083
+ percentageReportingConfig: { min: 3600, max: 14400, change: 0 },
4084
+ }),
4085
+ m.commandsOnOff({ endpointNames: ["1", "2"] }),
4086
+ localActionExtend({
4087
+ endpointNames: ["1", "2"],
4088
+ reporting: false,
4089
+ }),
4090
+ m.commandsLevelCtrl({ endpointNames: ["1", "2"] }),
4091
+ m.commandsColorCtrl({ endpointNames: ["1", "2"] }),
4092
+ m.enumLookup({
4093
+ name: "switch_actions",
4094
+ endpointName: "1",
4095
+ lookup: { off: 0, on: 1, toggle: 2 },
4096
+ cluster: "genOnOffSwitchCfg",
4097
+ attribute: "switchActions",
4098
+ description: "Actions switch",
4099
+ }),
4100
+ m.enumLookup({
4101
+ name: "switch_actions",
4102
+ endpointName: "2",
4103
+ lookup: { off: 0, on: 1, toggle: 2 },
4104
+ cluster: "genOnOffSwitchCfg",
4105
+ attribute: "switchActions",
4106
+ description: "Actions switch",
4107
+ }),
4108
+ m.enumLookup({
4109
+ name: "switch_type",
4110
+ endpointName: "1",
4111
+ lookup: {
4112
+ toggle: 0,
4113
+ momentary: 1,
4114
+ multifunction: 2,
4115
+ brightness_level: 3,
4116
+ brightness_level_up: 4,
4117
+ brightness_level_down: 5,
4118
+ move_to_color_temperature: 6,
4119
+ move_to_color_temperature_up: 7,
4120
+ move_to_color_temperature_down: 8,
4121
+ scene: 9,
4122
+ },
4123
+ cluster: "genOnOffSwitchCfg",
4124
+ attribute: "customSwitchType",
4125
+ description: "Switch type",
4126
+ }),
4127
+ m.enumLookup({
4128
+ name: "switch_type",
4129
+ endpointName: "2",
4130
+ lookup: {
4131
+ toggle: 0,
4132
+ momentary: 1,
4133
+ multifunction: 2,
4134
+ brightness_level: 3,
4135
+ brightness_level_up: 4,
4136
+ brightness_level_down: 5,
4137
+ move_to_color_temperature: 6,
4138
+ move_to_color_temperature_up: 7,
4139
+ move_to_color_temperature_down: 8,
4140
+ scene: 9,
4141
+ },
4142
+ cluster: "genOnOffSwitchCfg",
4143
+ attribute: "customSwitchType",
4144
+ description: "Switch type",
4145
+ }),
4146
+ m.commandsScenes({ endpointNames: ["1", "2"] }),
4147
+ m.numeric({
4148
+ name: "scene_id",
4149
+ endpointNames: ["1", "2"],
4150
+ access: "ALL",
4151
+ cluster: "genScenes",
4152
+ attribute: "customSceneId",
4153
+ valueMin: 0,
4154
+ valueMax: 255,
4155
+ description: "Scene ID",
4156
+ }),
4157
+ m.numeric({
4158
+ name: "group_id",
4159
+ endpointNames: ["1", "2"],
4160
+ access: "ALL",
4161
+ cluster: "genScenes",
4162
+ attribute: "customGroupId",
4163
+ valueMin: 0,
4164
+ valueMax: 65527,
4165
+ description: "Group ID for scenes",
4166
+ }),
4167
+ m.numeric({
4168
+ name: "min_level",
4169
+ endpointNames: ["1", "2"],
4170
+ access: "ALL",
4171
+ cluster: "genLevelCtrl",
4172
+ attribute: "minLevel",
4173
+ valueMin: 1,
4174
+ valueMax: 255,
4175
+ description: "Minimum level when decreasing",
4176
+ }),
4177
+ m.numeric({
4178
+ name: "max_level",
4179
+ endpointNames: ["1", "2"],
4180
+ access: "ALL",
4181
+ cluster: "genLevelCtrl",
4182
+ attribute: "maxLevel",
4183
+ valueMin: 1,
4184
+ valueMax: 255,
4185
+ description: "Maximum level when increasing",
4186
+ }),
4187
+ ],
4188
+ meta: {},
4189
+ ota: true,
4190
+ },
4191
+ {
4192
+ fingerprint: [
4193
+ { modelID: "TS0043-z-SlD", manufacturerName: "Slacky-DIY" },
4194
+ { modelID: "TS0043-M007-SlD", manufacturerName: "Slacky-DIY" },
4195
+ ],
4196
+ model: "TS0043-z-SlD",
4197
+ vendor: "Slacky-DIY",
4198
+ description: "Tuya wireless switch with 3 buttons with custom firmware",
4199
+ whiteLabel: [{ model: "TS0043-M007-SlD", fingerprint: [{ modelID: "TS0043-M007-SlD" }] }],
4200
+ extend: [
4201
+ m.deviceAddCustomCluster("genOnOffSwitchCfg", {
4202
+ name: "genOnOffSwitchCfg",
4203
+ ID: 0x0007,
4204
+ attributes: {
4205
+ customSwitchType: {
4206
+ name: "customSwitchType",
4207
+ ID: attrSwitchType,
4208
+ type: 0x30,
4209
+ write: true,
4210
+ max: 0xff,
4211
+ },
4212
+ customDeviceModelNumber: {
4213
+ name: "customDeviceModelNumber",
4214
+ ID: attrDeviceModelNumber,
4215
+ type: 0x30,
4216
+ write: true,
4217
+ max: 0xff,
4218
+ },
4219
+ },
4220
+ commands: {},
4221
+ commandsResponse: {},
4222
+ }),
4223
+ m.deviceAddCustomCluster("genLevelCtrl", {
4224
+ name: "genLevelCtrl",
4225
+ ID: 0x0008,
4226
+ attributes: {
4227
+ minLevel: {
4228
+ name: "minLevel",
4229
+ ID: 0x0002,
4230
+ type: 0x20,
4231
+ write: true,
4232
+ max: 0xff,
4233
+ },
4234
+ maxLevel: {
4235
+ name: "maxLevel",
4236
+ ID: 0x0003,
4237
+ type: 0x20,
4238
+ write: true,
4239
+ max: 0xff,
4240
+ },
4241
+ },
4242
+ commands: {},
4243
+ commandsResponse: {},
4244
+ }),
4245
+ m.deviceAddCustomCluster("genScenes", {
4246
+ name: "genScenes",
4247
+ ID: 0x0005,
4248
+ attributes: {
4249
+ customSceneId: {
4250
+ name: "customSceneId",
4251
+ ID: attrSceneId,
4252
+ type: 0x20,
4253
+ write: true,
4254
+ max: 0xff,
4255
+ },
4256
+ customGroupId: {
4257
+ name: "customGroupId",
4258
+ ID: attrGroupId,
4259
+ type: 0x21,
4260
+ write: true,
4261
+ max: 0xffff,
4262
+ },
4263
+ },
4264
+ commands: {},
4265
+ commandsResponse: {},
4266
+ }),
4267
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3 } }),
4268
+ m.battery({
4269
+ percentageReportingConfig: { min: 3600, max: 14400, change: 0 },
4270
+ }),
4271
+ m.commandsOnOff({ endpointNames: ["1", "2", "3"] }),
4272
+ localActionExtend({
4273
+ endpointNames: ["1", "2", "3"],
4274
+ reporting: false,
4275
+ }),
4276
+ m.commandsLevelCtrl({ endpointNames: ["1", "2", "3"] }),
4277
+ m.commandsColorCtrl({ endpointNames: ["1", "2", "3"] }),
4278
+ m.enumLookup({
4279
+ name: "switch_actions",
4280
+ endpointName: "1",
4281
+ lookup: { off: 0, on: 1, toggle: 2 },
4282
+ cluster: "genOnOffSwitchCfg",
4283
+ attribute: "switchActions",
4284
+ description: "Actions switch",
4285
+ }),
4286
+ m.enumLookup({
4287
+ name: "switch_actions",
4288
+ endpointName: "2",
4289
+ lookup: { off: 0, on: 1, toggle: 2 },
4290
+ cluster: "genOnOffSwitchCfg",
4291
+ attribute: "switchActions",
4292
+ description: "Actions switch",
4293
+ }),
4294
+ m.enumLookup({
4295
+ name: "switch_actions",
4296
+ endpointName: "3",
4297
+ lookup: { off: 0, on: 1, toggle: 2 },
4298
+ cluster: "genOnOffSwitchCfg",
4299
+ attribute: "switchActions",
4300
+ description: "Actions switch",
4301
+ }),
4302
+ m.enumLookup({
4303
+ name: "switch_type",
4304
+ endpointName: "1",
4305
+ lookup: {
4306
+ toggle: 0,
4307
+ momentary: 1,
4308
+ multifunction: 2,
4309
+ brightness_level: 3,
4310
+ brightness_level_up: 4,
4311
+ brightness_level_down: 5,
4312
+ move_to_color_temperature: 6,
4313
+ move_to_color_temperature_up: 7,
4314
+ move_to_color_temperature_down: 8,
4315
+ scene: 9,
4316
+ },
4317
+ cluster: "genOnOffSwitchCfg",
4318
+ attribute: "customSwitchType",
4319
+ description: "Switch type",
4320
+ }),
4321
+ m.enumLookup({
4322
+ name: "switch_type",
4323
+ endpointName: "2",
4324
+ lookup: {
4325
+ toggle: 0,
4326
+ momentary: 1,
4327
+ multifunction: 2,
4328
+ brightness_level: 3,
4329
+ brightness_level_up: 4,
4330
+ brightness_level_down: 5,
4331
+ move_to_color_temperature: 6,
4332
+ move_to_color_temperature_up: 7,
4333
+ move_to_color_temperature_down: 8,
4334
+ scene: 9,
4335
+ },
4336
+ cluster: "genOnOffSwitchCfg",
4337
+ attribute: "customSwitchType",
4338
+ description: "Switch type",
4339
+ }),
4340
+ m.enumLookup({
4341
+ name: "switch_type",
4342
+ endpointName: "3",
4343
+ lookup: {
4344
+ toggle: 0,
4345
+ momentary: 1,
4346
+ multifunction: 2,
4347
+ brightness_level: 3,
4348
+ brightness_level_up: 4,
4349
+ brightness_level_down: 5,
4350
+ move_to_color_temperature: 6,
4351
+ move_to_color_temperature_up: 7,
4352
+ move_to_color_temperature_down: 8,
4353
+ scene: 9,
4354
+ },
4355
+ cluster: "genOnOffSwitchCfg",
4356
+ attribute: "customSwitchType",
4357
+ description: "Switch type",
4358
+ }),
4359
+ m.commandsScenes({ endpointNames: ["1", "2", "3"] }),
4360
+ m.numeric({
4361
+ name: "scene_id",
4362
+ endpointNames: ["1", "2", "3"],
4363
+ access: "ALL",
4364
+ cluster: "genScenes",
4365
+ attribute: "customSceneId",
4366
+ valueMin: 0,
4367
+ valueMax: 255,
4368
+ description: "Scene ID",
4369
+ }),
4370
+ m.numeric({
4371
+ name: "group_id",
4372
+ endpointNames: ["1", "2", "3"],
4373
+ access: "ALL",
4374
+ cluster: "genScenes",
4375
+ attribute: "customGroupId",
4376
+ valueMin: 0,
4377
+ valueMax: 65527,
4378
+ description: "Group ID for scenes",
4379
+ }),
4380
+ m.numeric({
4381
+ name: "min_level",
4382
+ endpointNames: ["1", "2", "3"],
4383
+ access: "ALL",
4384
+ cluster: "genLevelCtrl",
4385
+ attribute: "minLevel",
4386
+ valueMin: 1,
4387
+ valueMax: 255,
4388
+ description: "Minimum level when decreasing",
4389
+ }),
4390
+ m.numeric({
4391
+ name: "max_level",
4392
+ endpointNames: ["1", "2", "3"],
4393
+ access: "ALL",
4394
+ cluster: "genLevelCtrl",
4395
+ attribute: "maxLevel",
4396
+ valueMin: 1,
4397
+ valueMax: 255,
4398
+ description: "Maximum level when increasing",
4399
+ }),
4400
+ ],
4401
+ meta: {},
4402
+ ota: true,
4403
+ },
4404
+ {
4405
+ fingerprint: [
4406
+ { modelID: "TS0044-z-SlD", manufacturerName: "Slacky-DIY" },
4407
+ { modelID: "TS0044-M004-SlD", manufacturerName: "Slacky-DIY" },
4408
+ ],
4409
+ model: "TS0044-z-SlD",
4410
+ vendor: "Slacky-DIY",
4411
+ description: "Tuya wireless switch with 4 buttons with custom firmware",
4412
+ whiteLabel: [{ model: "TS0044-M004-SlD", fingerprint: [{ modelID: "TS0044-M004-SlD" }] }],
4413
+ extend: [
4414
+ m.deviceAddCustomCluster("genOnOffSwitchCfg", {
4415
+ name: "genOnOffSwitchCfg",
4416
+ ID: 0x0007,
4417
+ attributes: {
4418
+ customSwitchType: {
4419
+ name: "customSwitchType",
4420
+ ID: attrSwitchType,
4421
+ type: 0x30,
4422
+ write: true,
4423
+ max: 0xff,
4424
+ },
4425
+ customDeviceModelNumber: {
4426
+ name: "customDeviceModelNumber",
4427
+ ID: attrDeviceModelNumber,
4428
+ type: 0x30,
4429
+ write: true,
4430
+ max: 0xff,
4431
+ },
4432
+ },
4433
+ commands: {},
4434
+ commandsResponse: {},
4435
+ }),
4436
+ m.deviceAddCustomCluster("genLevelCtrl", {
4437
+ name: "genLevelCtrl",
4438
+ ID: 0x0008,
4439
+ attributes: {
4440
+ minLevel: {
4441
+ name: "minLevel",
4442
+ ID: 0x0002,
4443
+ type: 0x20,
4444
+ write: true,
4445
+ max: 0xff,
4446
+ },
4447
+ maxLevel: {
4448
+ name: "maxLevel",
4449
+ ID: 0x0003,
4450
+ type: 0x20,
4451
+ write: true,
4452
+ max: 0xff,
4453
+ },
4454
+ },
4455
+ commands: {},
4456
+ commandsResponse: {},
4457
+ }),
4458
+ m.deviceAddCustomCluster("genScenes", {
4459
+ name: "genScenes",
4460
+ ID: 0x0005,
4461
+ attributes: {
4462
+ customSceneId: {
4463
+ name: "customSceneId",
4464
+ ID: attrSceneId,
4465
+ type: 0x20,
4466
+ write: true,
4467
+ max: 0xff,
4468
+ },
4469
+ customGroupId: {
4470
+ name: "customGroupId",
4471
+ ID: attrGroupId,
4472
+ type: 0x21,
4473
+ write: true,
4474
+ max: 0xffff,
4475
+ },
4476
+ },
4477
+ commands: {},
4478
+ commandsResponse: {},
4479
+ }),
4480
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3, "4": 4 } }),
4481
+ m.battery({
4482
+ percentageReportingConfig: { min: 3600, max: 14400, change: 0 },
4483
+ }),
4484
+ m.commandsOnOff({ endpointNames: ["1", "2", "3", "4"] }),
4485
+ localActionExtend({
4486
+ endpointNames: ["1", "2", "3", "4"],
4487
+ reporting: false,
4488
+ }),
4489
+ m.commandsLevelCtrl({ endpointNames: ["1", "2", "3", "4"] }),
4490
+ m.commandsColorCtrl({ endpointNames: ["1", "2", "3", "4"] }),
4491
+ m.enumLookup({
4492
+ name: "switch_actions",
4493
+ endpointName: "1",
4494
+ lookup: { off: 0, on: 1, toggle: 2 },
4495
+ cluster: "genOnOffSwitchCfg",
4496
+ attribute: "switchActions",
4497
+ description: "Actions switch",
4498
+ }),
4499
+ m.enumLookup({
4500
+ name: "switch_actions",
4501
+ endpointName: "2",
4502
+ lookup: { off: 0, on: 1, toggle: 2 },
4503
+ cluster: "genOnOffSwitchCfg",
4504
+ attribute: "switchActions",
4505
+ description: "Actions switch",
4506
+ }),
4507
+ m.enumLookup({
4508
+ name: "switch_actions",
4509
+ endpointName: "3",
4510
+ lookup: { off: 0, on: 1, toggle: 2 },
4511
+ cluster: "genOnOffSwitchCfg",
4512
+ attribute: "switchActions",
4513
+ description: "Actions switch",
4514
+ }),
4515
+ m.enumLookup({
4516
+ name: "switch_actions",
4517
+ endpointName: "4",
4518
+ lookup: { off: 0, on: 1, toggle: 2 },
4519
+ cluster: "genOnOffSwitchCfg",
4520
+ attribute: "switchActions",
4521
+ description: "Actions switch",
4522
+ }),
4523
+ m.enumLookup({
4524
+ name: "switch_type",
4525
+ endpointName: "1",
4526
+ lookup: {
4527
+ toggle: 0,
4528
+ momentary: 1,
4529
+ multifunction: 2,
4530
+ brightness_level: 3,
4531
+ brightness_level_up: 4,
4532
+ brightness_level_down: 5,
4533
+ move_to_color_temperature: 6,
4534
+ move_to_color_temperature_up: 7,
4535
+ move_to_color_temperature_down: 8,
4536
+ scene: 9,
4537
+ },
4538
+ cluster: "genOnOffSwitchCfg",
4539
+ attribute: "customSwitchType",
4540
+ description: "Switch type",
4541
+ }),
4542
+ m.enumLookup({
4543
+ name: "switch_type",
4544
+ endpointName: "2",
4545
+ lookup: {
4546
+ toggle: 0,
4547
+ momentary: 1,
4548
+ multifunction: 2,
4549
+ brightness_level: 3,
4550
+ brightness_level_up: 4,
4551
+ brightness_level_down: 5,
4552
+ move_to_color_temperature: 6,
4553
+ move_to_color_temperature_up: 7,
4554
+ move_to_color_temperature_down: 8,
4555
+ scene: 9,
4556
+ },
4557
+ cluster: "genOnOffSwitchCfg",
4558
+ attribute: "customSwitchType",
4559
+ description: "Switch type",
4560
+ }),
4561
+ m.enumLookup({
4562
+ name: "switch_type",
4563
+ endpointName: "3",
4564
+ lookup: {
4565
+ toggle: 0,
4566
+ momentary: 1,
4567
+ multifunction: 2,
4568
+ brightness_level: 3,
4569
+ brightness_level_up: 4,
4570
+ brightness_level_down: 5,
4571
+ move_to_color_temperature: 6,
4572
+ move_to_color_temperature_up: 7,
4573
+ move_to_color_temperature_down: 8,
4574
+ scene: 9,
4575
+ },
4576
+ cluster: "genOnOffSwitchCfg",
4577
+ attribute: "customSwitchType",
4578
+ description: "Switch type",
4579
+ }),
4580
+ m.enumLookup({
4581
+ name: "switch_type",
4582
+ endpointName: "4",
4583
+ lookup: {
4584
+ toggle: 0,
4585
+ momentary: 1,
4586
+ multifunction: 2,
4587
+ brightness_level: 3,
4588
+ brightness_level_up: 4,
4589
+ brightness_level_down: 5,
4590
+ move_to_color_temperature: 6,
4591
+ move_to_color_temperature_up: 7,
4592
+ move_to_color_temperature_down: 8,
4593
+ scene: 9,
4594
+ },
4595
+ cluster: "genOnOffSwitchCfg",
4596
+ attribute: "customSwitchType",
4597
+ description: "Switch type",
4598
+ }),
4599
+ m.commandsScenes({ endpointNames: ["1", "2", "3", "4"] }),
4600
+ m.numeric({
4601
+ name: "scene_id",
4602
+ endpointNames: ["1", "2", "3", "4"],
4603
+ access: "ALL",
4604
+ cluster: "genScenes",
4605
+ attribute: "customSceneId",
4606
+ valueMin: 0,
4607
+ valueMax: 255,
4608
+ description: "Scene ID",
4609
+ }),
4610
+ m.numeric({
4611
+ name: "group_id",
4612
+ endpointNames: ["1", "2", "3", "4"],
4613
+ access: "ALL",
4614
+ cluster: "genScenes",
4615
+ attribute: "customGroupId",
4616
+ valueMin: 0,
4617
+ valueMax: 65527,
4618
+ description: "Group ID for scenes",
4619
+ }),
4620
+ m.numeric({
4621
+ name: "min_level",
4622
+ endpointNames: ["1", "2", "3", "4"],
4623
+ access: "ALL",
4624
+ cluster: "genLevelCtrl",
4625
+ attribute: "minLevel",
4626
+ valueMin: 1,
4627
+ valueMax: 255,
4628
+ description: "Minimum level when decreasing",
4629
+ }),
4630
+ m.numeric({
4631
+ name: "max_level",
4632
+ endpointNames: ["1", "2", "3", "4"],
4633
+ access: "ALL",
4634
+ cluster: "genLevelCtrl",
4635
+ attribute: "maxLevel",
4636
+ valueMin: 1,
4637
+ valueMax: 255,
4638
+ description: "Maximum level when increasing",
4639
+ }),
4640
+ ],
4641
+ meta: {},
4642
+ ota: true,
4643
+ },
4644
+ {
4645
+ zigbeeModel: ["TS0046-z-SlD"],
4646
+ model: "TS0046-z-SlD",
4647
+ vendor: "Slacky-DIY",
4648
+ description: "Tuya wireless switch with 6 buttons with custom firmware",
4649
+ extend: [
4650
+ m.deviceAddCustomCluster("genOnOffSwitchCfg", {
4651
+ name: "genOnOffSwitchCfg",
4652
+ ID: 0x0007,
4653
+ attributes: {
4654
+ customSwitchType: {
4655
+ name: "customSwitchType",
4656
+ ID: attrSwitchType,
4657
+ type: 0x30,
4658
+ write: true,
4659
+ max: 0xff,
4660
+ },
4661
+ customDeviceModelNumber: {
4662
+ name: "customDeviceModelNumber",
4663
+ ID: attrDeviceModelNumber,
4664
+ type: 0x30,
4665
+ write: true,
4666
+ max: 0xff,
4667
+ },
4668
+ },
4669
+ commands: {},
4670
+ commandsResponse: {},
4671
+ }),
4672
+ m.deviceAddCustomCluster("genLevelCtrl", {
4673
+ name: "genLevelCtrl",
4674
+ ID: 0x0008,
4675
+ attributes: {
4676
+ minLevel: {
4677
+ name: "minLevel",
4678
+ ID: 0x0002,
4679
+ type: 0x20,
4680
+ write: true,
4681
+ max: 0xff,
4682
+ },
4683
+ maxLevel: {
4684
+ name: "maxLevel",
4685
+ ID: 0x0003,
4686
+ type: 0x20,
4687
+ write: true,
4688
+ max: 0xff,
4689
+ },
4690
+ },
4691
+ commands: {},
4692
+ commandsResponse: {},
4693
+ }),
4694
+ m.deviceAddCustomCluster("genScenes", {
4695
+ name: "genScenes",
4696
+ ID: 0x0005,
4697
+ attributes: {
4698
+ customSceneId: {
4699
+ name: "customSceneId",
4700
+ ID: attrSceneId,
4701
+ type: 0x20,
4702
+ write: true,
4703
+ max: 0xff,
4704
+ },
4705
+ customGroupId: {
4706
+ name: "customGroupId",
4707
+ ID: attrGroupId,
4708
+ type: 0x21,
4709
+ write: true,
4710
+ max: 0xffff,
4711
+ },
4712
+ },
4713
+ commands: {},
4714
+ commandsResponse: {},
4715
+ }),
4716
+ m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6 } }),
4717
+ m.battery({
4718
+ percentageReportingConfig: { min: 3600, max: 14400, change: 0 },
4719
+ }),
4720
+ m.commandsOnOff({ endpointNames: ["1", "2", "3", "4", "5", "6"] }),
4721
+ localActionExtend({
4722
+ endpointNames: ["1", "2", "3", "4", "5", "6"],
4723
+ reporting: false,
4724
+ }),
4725
+ m.commandsLevelCtrl({ endpointNames: ["1", "2", "3", "4", "5", "6"] }),
4726
+ m.commandsColorCtrl({ endpointNames: ["1", "2", "3", "4", "5", "6"] }),
4727
+ m.enumLookup({
4728
+ name: "switch_actions",
4729
+ endpointName: "1",
4730
+ lookup: { off: 0, on: 1, toggle: 2 },
4731
+ cluster: "genOnOffSwitchCfg",
4732
+ attribute: "switchActions",
4733
+ description: "Actions switch",
4734
+ }),
4735
+ m.enumLookup({
4736
+ name: "switch_actions",
4737
+ endpointName: "2",
4738
+ lookup: { off: 0, on: 1, toggle: 2 },
4739
+ cluster: "genOnOffSwitchCfg",
4740
+ attribute: "switchActions",
4741
+ description: "Actions switch",
4742
+ }),
4743
+ m.enumLookup({
4744
+ name: "switch_actions",
4745
+ endpointName: "3",
4746
+ lookup: { off: 0, on: 1, toggle: 2 },
4747
+ cluster: "genOnOffSwitchCfg",
4748
+ attribute: "switchActions",
4749
+ description: "Actions switch",
4750
+ }),
4751
+ m.enumLookup({
4752
+ name: "switch_actions",
4753
+ endpointName: "4",
4754
+ lookup: { off: 0, on: 1, toggle: 2 },
4755
+ cluster: "genOnOffSwitchCfg",
4756
+ attribute: "switchActions",
4757
+ description: "Actions switch",
4758
+ }),
4759
+ m.enumLookup({
4760
+ name: "switch_actions",
4761
+ endpointName: "5",
4762
+ lookup: { off: 0, on: 1, toggle: 2 },
4763
+ cluster: "genOnOffSwitchCfg",
4764
+ attribute: "switchActions",
4765
+ description: "Actions switch",
4766
+ }),
4767
+ m.enumLookup({
4768
+ name: "switch_actions",
4769
+ endpointName: "6",
4770
+ lookup: { off: 0, on: 1, toggle: 2 },
4771
+ cluster: "genOnOffSwitchCfg",
4772
+ attribute: "switchActions",
4773
+ description: "Actions switch",
4774
+ }),
4775
+ m.enumLookup({
4776
+ name: "switch_type",
4777
+ endpointName: "1",
4778
+ lookup: {
4779
+ toggle: 0,
4780
+ momentary: 1,
4781
+ multifunction: 2,
4782
+ brightness_level: 3,
4783
+ brightness_level_up: 4,
4784
+ brightness_level_down: 5,
4785
+ move_to_color_temperature: 6,
4786
+ move_to_color_temperature_up: 7,
4787
+ move_to_color_temperature_down: 8,
4788
+ scene: 9,
4789
+ },
4790
+ cluster: "genOnOffSwitchCfg",
4791
+ attribute: "customSwitchType",
4792
+ description: "Switch type",
4793
+ }),
4794
+ m.enumLookup({
4795
+ name: "switch_type",
4796
+ endpointName: "2",
4797
+ lookup: {
4798
+ toggle: 0,
4799
+ momentary: 1,
4800
+ multifunction: 2,
4801
+ brightness_level: 3,
4802
+ brightness_level_up: 4,
4803
+ brightness_level_down: 5,
4804
+ move_to_color_temperature: 6,
4805
+ move_to_color_temperature_up: 7,
4806
+ move_to_color_temperature_down: 8,
4807
+ scene: 9,
4808
+ },
4809
+ cluster: "genOnOffSwitchCfg",
4810
+ attribute: "customSwitchType",
4811
+ description: "Switch type",
4812
+ }),
4813
+ m.enumLookup({
4814
+ name: "switch_type",
4815
+ endpointName: "3",
4816
+ lookup: {
4817
+ toggle: 0,
4818
+ momentary: 1,
4819
+ multifunction: 2,
4820
+ brightness_level: 3,
4821
+ brightness_level_up: 4,
4822
+ brightness_level_down: 5,
4823
+ move_to_color_temperature: 6,
4824
+ move_to_color_temperature_up: 7,
4825
+ move_to_color_temperature_down: 8,
4826
+ scene: 9,
4827
+ },
4828
+ cluster: "genOnOffSwitchCfg",
4829
+ attribute: "customSwitchType",
4830
+ description: "Switch type",
4831
+ }),
4832
+ m.enumLookup({
4833
+ name: "switch_type",
4834
+ endpointName: "4",
4835
+ lookup: {
4836
+ toggle: 0,
4837
+ momentary: 1,
4838
+ multifunction: 2,
4839
+ brightness_level: 3,
4840
+ brightness_level_up: 4,
4841
+ brightness_level_down: 5,
4842
+ move_to_color_temperature: 6,
4843
+ move_to_color_temperature_up: 7,
4844
+ move_to_color_temperature_down: 8,
4845
+ scene: 9,
4846
+ },
4847
+ cluster: "genOnOffSwitchCfg",
4848
+ attribute: "customSwitchType",
4849
+ description: "Switch type",
4850
+ }),
4851
+ m.enumLookup({
4852
+ name: "switch_type",
4853
+ endpointName: "5",
4854
+ lookup: {
4855
+ toggle: 0,
4856
+ momentary: 1,
4857
+ multifunction: 2,
4858
+ brightness_level: 3,
4859
+ brightness_level_up: 4,
4860
+ brightness_level_down: 5,
4861
+ move_to_color_temperature: 6,
4862
+ move_to_color_temperature_up: 7,
4863
+ move_to_color_temperature_down: 8,
4864
+ scene: 9,
4865
+ },
4866
+ cluster: "genOnOffSwitchCfg",
4867
+ attribute: "customSwitchType",
4868
+ description: "Switch type",
4869
+ }),
4870
+ m.enumLookup({
4871
+ name: "switch_type",
4872
+ endpointName: "6",
4873
+ lookup: {
4874
+ toggle: 0,
4875
+ momentary: 1,
4876
+ multifunction: 2,
4877
+ brightness_level: 3,
4878
+ brightness_level_up: 4,
4879
+ brightness_level_down: 5,
4880
+ move_to_color_temperature: 6,
4881
+ move_to_color_temperature_up: 7,
4882
+ move_to_color_temperature_down: 8,
4883
+ scene: 9,
4884
+ },
4885
+ cluster: "genOnOffSwitchCfg",
4886
+ attribute: "customSwitchType",
4887
+ description: "Switch type",
4888
+ }),
4889
+ m.commandsScenes({ endpointNames: ["1", "2", "3", "4", "5", "6"] }),
4890
+ m.numeric({
4891
+ name: "scene_id",
4892
+ endpointNames: ["1", "2", "3", "4", "5", "6"],
4893
+ access: "ALL",
4894
+ cluster: "genScenes",
4895
+ attribute: "customSceneId",
4896
+ valueMin: 0,
4897
+ valueMax: 255,
4898
+ description: "Scene ID",
4899
+ }),
4900
+ m.numeric({
4901
+ name: "group_id",
4902
+ endpointNames: ["1", "2", "3", "4", "5", "6"],
4903
+ access: "ALL",
4904
+ cluster: "genScenes",
4905
+ attribute: "customGroupId",
4906
+ valueMin: 0,
4907
+ valueMax: 65527,
4908
+ description: "Group ID for scenes",
4909
+ }),
4910
+ m.numeric({
4911
+ name: "min_level",
4912
+ endpointNames: ["1", "2", "3", "4", "5", "6"],
4913
+ access: "ALL",
4914
+ cluster: "genLevelCtrl",
4915
+ attribute: "minLevel",
4916
+ valueMin: 1,
4917
+ valueMax: 255,
4918
+ description: "Minimum level when decreasing",
4919
+ }),
4920
+ m.numeric({
4921
+ name: "max_level",
4922
+ endpointNames: ["1", "2", "3", "4", "5", "6"],
4923
+ access: "ALL",
4924
+ cluster: "genLevelCtrl",
4925
+ attribute: "maxLevel",
4926
+ valueMin: 1,
4927
+ valueMax: 255,
4928
+ description: "Maximum level when increasing",
4929
+ }),
4930
+ ],
4931
+ meta: {},
4932
+ ota: true,
4933
+ },
4934
+ {
4935
+ zigbeeModel: ["FreePad-20K-SlD"],
4936
+ model: "FreePad-20K-SlD",
4937
+ vendor: "Slacky-DIY",
4938
+ description: "DIY 20 buttons keypad",
4939
+ extend: [
4940
+ m.deviceAddCustomCluster("genOnOffSwitchCfg", {
4941
+ name: "genOnOffSwitchCfg",
4942
+ ID: 0x0007,
4943
+ attributes: {
4944
+ customSwitchType: {
4945
+ name: "customSwitchType",
4946
+ ID: attrSwitchType,
4947
+ type: 0x30,
4948
+ write: true,
4949
+ max: 0xff,
4950
+ },
4951
+ customDeviceModelNumber: {
4952
+ name: "customDeviceModelNumber",
4953
+ ID: attrDeviceModelNumber,
4954
+ type: 0x30,
4955
+ write: true,
4956
+ max: 0xff,
4957
+ },
4958
+ },
4959
+ commands: {},
4960
+ commandsResponse: {},
4961
+ }),
4962
+ m.deviceAddCustomCluster("genLevelCtrl", {
4963
+ name: "genLevelCtrl",
4964
+ ID: 0x0008,
4965
+ attributes: {
4966
+ minLevel: {
4967
+ name: "minLevel",
4968
+ ID: 0x0002,
4969
+ type: 0x20,
4970
+ write: true,
4971
+ max: 0xff,
4972
+ },
4973
+ maxLevel: {
4974
+ name: "maxLevel",
4975
+ ID: 0x0003,
4976
+ type: 0x20,
4977
+ write: true,
4978
+ max: 0xff,
4979
+ },
4980
+ },
4981
+ commands: {},
4982
+ commandsResponse: {},
4983
+ }),
4984
+ m.deviceAddCustomCluster("genScenes", {
4985
+ name: "genScenes",
4986
+ ID: 0x0005,
4987
+ attributes: {
4988
+ customSceneId: {
4989
+ name: "customSceneId",
4990
+ ID: attrSceneId,
4991
+ type: 0x20,
4992
+ write: true,
4993
+ max: 0xff,
4994
+ },
4995
+ customGroupId: {
4996
+ name: "customGroupId",
4997
+ ID: attrGroupId,
4998
+ type: 0x21,
4999
+ write: true,
5000
+ max: 0xffff,
5001
+ },
5002
+ },
5003
+ commands: {},
5004
+ commandsResponse: {},
5005
+ }),
5006
+ m.deviceEndpoints({
5007
+ endpoints: {
5008
+ "1": 1,
5009
+ "2": 2,
5010
+ "3": 3,
5011
+ "4": 4,
5012
+ "5": 5,
5013
+ "6": 6,
5014
+ "7": 7,
5015
+ "8": 8,
5016
+ "9": 9,
5017
+ "10": 10,
5018
+ "11": 11,
5019
+ "12": 12,
5020
+ "13": 13,
5021
+ "14": 14,
5022
+ "15": 15,
5023
+ "16": 16,
5024
+ "17": 17,
5025
+ "18": 18,
5026
+ "19": 19,
5027
+ "20": 20,
5028
+ },
5029
+ }),
5030
+ m.battery({
5031
+ percentageReportingConfig: { min: 3600, max: 14400, change: 0 },
5032
+ }),
5033
+ m.commandsOnOff({
5034
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"],
5035
+ }),
5036
+ localActionExtend({
5037
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"],
5038
+ reporting: false,
5039
+ }),
5040
+ m.commandsLevelCtrl({
5041
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"],
5042
+ }),
5043
+ m.commandsColorCtrl({
5044
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"],
5045
+ }),
5046
+ m.enumLookup({
5047
+ name: "switch_actions",
5048
+ endpointName: "1",
5049
+ lookup: {
5050
+ off: 0,
5051
+ on: 1,
5052
+ toggle: 2,
5053
+ },
5054
+ cluster: "genOnOffSwitchCfg",
5055
+ attribute: "switchActions",
5056
+ description: "Actions switch",
5057
+ }),
5058
+ m.enumLookup({
5059
+ name: "switch_actions",
5060
+ endpointName: "2",
5061
+ lookup: {
5062
+ off: 0,
5063
+ on: 1,
5064
+ toggle: 2,
5065
+ },
5066
+ cluster: "genOnOffSwitchCfg",
5067
+ attribute: "switchActions",
5068
+ description: "Actions switch",
5069
+ }),
5070
+ m.enumLookup({
5071
+ name: "switch_actions",
5072
+ endpointName: "3",
5073
+ lookup: {
5074
+ off: 0,
5075
+ on: 1,
5076
+ toggle: 2,
5077
+ },
5078
+ cluster: "genOnOffSwitchCfg",
5079
+ attribute: "switchActions",
5080
+ description: "Actions switch",
5081
+ }),
5082
+ m.enumLookup({
5083
+ name: "switch_actions",
5084
+ endpointName: "4",
5085
+ lookup: {
5086
+ off: 0,
5087
+ on: 1,
5088
+ toggle: 2,
5089
+ },
5090
+ cluster: "genOnOffSwitchCfg",
5091
+ attribute: "switchActions",
5092
+ description: "Actions switch",
5093
+ }),
5094
+ m.enumLookup({
5095
+ name: "switch_actions",
5096
+ endpointName: "5",
5097
+ lookup: {
5098
+ off: 0,
5099
+ on: 1,
5100
+ toggle: 2,
5101
+ },
5102
+ cluster: "genOnOffSwitchCfg",
5103
+ attribute: "switchActions",
5104
+ description: "Actions switch",
5105
+ }),
5106
+ m.enumLookup({
5107
+ name: "switch_actions",
5108
+ endpointName: "6",
5109
+ lookup: {
5110
+ off: 0,
5111
+ on: 1,
5112
+ toggle: 2,
5113
+ },
5114
+ cluster: "genOnOffSwitchCfg",
5115
+ attribute: "switchActions",
5116
+ description: "Actions switch",
5117
+ }),
5118
+ m.enumLookup({
5119
+ name: "switch_actions",
5120
+ endpointName: "7",
5121
+ lookup: {
5122
+ off: 0,
5123
+ on: 1,
5124
+ toggle: 2,
5125
+ },
5126
+ cluster: "genOnOffSwitchCfg",
5127
+ attribute: "switchActions",
5128
+ description: "Actions switch",
5129
+ }),
5130
+ m.enumLookup({
5131
+ name: "switch_actions",
5132
+ endpointName: "8",
5133
+ lookup: {
5134
+ off: 0,
5135
+ on: 1,
5136
+ toggle: 2,
5137
+ },
5138
+ cluster: "genOnOffSwitchCfg",
5139
+ attribute: "switchActions",
5140
+ description: "Actions switch",
5141
+ }),
5142
+ m.enumLookup({
5143
+ name: "switch_actions",
5144
+ endpointName: "9",
5145
+ lookup: {
5146
+ off: 0,
5147
+ on: 1,
5148
+ toggle: 2,
5149
+ },
5150
+ cluster: "genOnOffSwitchCfg",
5151
+ attribute: "switchActions",
5152
+ description: "Actions switch",
5153
+ }),
5154
+ m.enumLookup({
5155
+ name: "switch_actions",
5156
+ endpointName: "10",
5157
+ lookup: {
5158
+ off: 0,
5159
+ on: 1,
5160
+ toggle: 2,
5161
+ },
5162
+ cluster: "genOnOffSwitchCfg",
5163
+ attribute: "switchActions",
5164
+ description: "Actions switch",
5165
+ }),
5166
+ m.enumLookup({
5167
+ name: "switch_actions",
5168
+ endpointName: "11",
5169
+ lookup: {
5170
+ off: 0,
5171
+ on: 1,
5172
+ toggle: 2,
5173
+ },
5174
+ cluster: "genOnOffSwitchCfg",
5175
+ attribute: "switchActions",
5176
+ description: "Actions switch",
5177
+ }),
5178
+ m.enumLookup({
5179
+ name: "switch_actions",
5180
+ endpointName: "12",
5181
+ lookup: {
5182
+ off: 0,
5183
+ on: 1,
5184
+ toggle: 2,
5185
+ },
5186
+ cluster: "genOnOffSwitchCfg",
5187
+ attribute: "switchActions",
5188
+ description: "Actions switch",
5189
+ }),
5190
+ m.enumLookup({
5191
+ name: "switch_actions",
5192
+ endpointName: "13",
5193
+ lookup: {
5194
+ off: 0,
5195
+ on: 1,
5196
+ toggle: 2,
5197
+ },
5198
+ cluster: "genOnOffSwitchCfg",
5199
+ attribute: "switchActions",
5200
+ description: "Actions switch",
5201
+ }),
5202
+ m.enumLookup({
5203
+ name: "switch_actions",
5204
+ endpointName: "14",
5205
+ lookup: {
5206
+ off: 0,
5207
+ on: 1,
5208
+ toggle: 2,
5209
+ },
5210
+ cluster: "genOnOffSwitchCfg",
5211
+ attribute: "switchActions",
5212
+ description: "Actions switch",
5213
+ }),
5214
+ m.enumLookup({
5215
+ name: "switch_actions",
5216
+ endpointName: "15",
5217
+ lookup: {
5218
+ off: 0,
5219
+ on: 1,
5220
+ toggle: 2,
5221
+ },
5222
+ cluster: "genOnOffSwitchCfg",
5223
+ attribute: "switchActions",
5224
+ description: "Actions switch",
5225
+ }),
5226
+ m.enumLookup({
5227
+ name: "switch_actions",
5228
+ endpointName: "16",
5229
+ lookup: {
5230
+ off: 0,
5231
+ on: 1,
5232
+ toggle: 2,
5233
+ },
5234
+ cluster: "genOnOffSwitchCfg",
5235
+ attribute: "switchActions",
5236
+ description: "Actions switch",
5237
+ }),
5238
+ m.enumLookup({
5239
+ name: "switch_actions",
5240
+ endpointName: "17",
5241
+ lookup: {
5242
+ off: 0,
5243
+ on: 1,
5244
+ toggle: 2,
5245
+ },
5246
+ cluster: "genOnOffSwitchCfg",
5247
+ attribute: "switchActions",
5248
+ description: "Actions switch",
5249
+ }),
5250
+ m.enumLookup({
5251
+ name: "switch_actions",
5252
+ endpointName: "18",
5253
+ lookup: {
5254
+ off: 0,
5255
+ on: 1,
5256
+ toggle: 2,
5257
+ },
5258
+ cluster: "genOnOffSwitchCfg",
5259
+ attribute: "switchActions",
5260
+ description: "Actions switch",
5261
+ }),
5262
+ m.enumLookup({
5263
+ name: "switch_actions",
5264
+ endpointName: "19",
5265
+ lookup: {
5266
+ off: 0,
5267
+ on: 1,
5268
+ toggle: 2,
5269
+ },
5270
+ cluster: "genOnOffSwitchCfg",
5271
+ attribute: "switchActions",
5272
+ description: "Actions switch",
5273
+ }),
5274
+ m.enumLookup({
5275
+ name: "switch_actions",
5276
+ endpointName: "20",
5277
+ lookup: {
5278
+ off: 0,
5279
+ on: 1,
5280
+ toggle: 2,
5281
+ },
5282
+ cluster: "genOnOffSwitchCfg",
5283
+ attribute: "switchActions",
5284
+ description: "Actions switch",
5285
+ }),
5286
+ m.enumLookup({
5287
+ name: "switch_type",
5288
+ endpointName: "1",
5289
+ lookup: {
5290
+ toggle: 0,
5291
+ momentary: 1,
5292
+ multifunction: 2,
5293
+ brightness_level: 3,
5294
+ brightness_level_up: 4,
5295
+ brightness_level_down: 5,
5296
+ move_to_color_temperature: 6,
5297
+ move_to_color_temperature_up: 7,
5298
+ move_to_color_temperature_down: 8,
5299
+ scene: 9,
5300
+ },
5301
+ cluster: "genOnOffSwitchCfg",
5302
+ attribute: "customSwitchType",
5303
+ description: "Switch type",
5304
+ }),
5305
+ m.enumLookup({
5306
+ name: "switch_type",
5307
+ endpointName: "2",
5308
+ lookup: {
5309
+ toggle: 0,
5310
+ momentary: 1,
5311
+ multifunction: 2,
5312
+ brightness_level: 3,
5313
+ brightness_level_up: 4,
5314
+ brightness_level_down: 5,
5315
+ move_to_color_temperature: 6,
5316
+ move_to_color_temperature_up: 7,
5317
+ move_to_color_temperature_down: 8,
5318
+ scene: 9,
5319
+ },
5320
+ cluster: "genOnOffSwitchCfg",
5321
+ attribute: "customSwitchType",
5322
+ description: "Switch type",
5323
+ }),
5324
+ m.enumLookup({
5325
+ name: "switch_type",
5326
+ endpointName: "3",
5327
+ lookup: {
5328
+ toggle: 0,
5329
+ momentary: 1,
5330
+ multifunction: 2,
5331
+ brightness_level: 3,
5332
+ brightness_level_up: 4,
5333
+ brightness_level_down: 5,
5334
+ move_to_color_temperature: 6,
5335
+ move_to_color_temperature_up: 7,
5336
+ move_to_color_temperature_down: 8,
5337
+ scene: 9,
5338
+ },
5339
+ cluster: "genOnOffSwitchCfg",
5340
+ attribute: "customSwitchType",
5341
+ description: "Switch type",
5342
+ }),
5343
+ m.enumLookup({
5344
+ name: "switch_type",
5345
+ endpointName: "4",
5346
+ lookup: {
5347
+ toggle: 0,
5348
+ momentary: 1,
5349
+ multifunction: 2,
5350
+ brightness_level: 3,
5351
+ brightness_level_up: 4,
5352
+ brightness_level_down: 5,
5353
+ move_to_color_temperature: 6,
5354
+ move_to_color_temperature_up: 7,
5355
+ move_to_color_temperature_down: 8,
5356
+ scene: 9,
5357
+ },
5358
+ cluster: "genOnOffSwitchCfg",
5359
+ attribute: "customSwitchType",
5360
+ description: "Switch type",
5361
+ }),
5362
+ m.enumLookup({
5363
+ name: "switch_type",
5364
+ endpointName: "5",
5365
+ lookup: {
5366
+ toggle: 0,
5367
+ momentary: 1,
5368
+ multifunction: 2,
5369
+ brightness_level: 3,
5370
+ brightness_level_up: 4,
5371
+ brightness_level_down: 5,
5372
+ move_to_color_temperature: 6,
5373
+ move_to_color_temperature_up: 7,
5374
+ move_to_color_temperature_down: 8,
5375
+ scene: 9,
5376
+ },
5377
+ cluster: "genOnOffSwitchCfg",
5378
+ attribute: "customSwitchType",
5379
+ description: "Switch type",
5380
+ }),
5381
+ m.enumLookup({
5382
+ name: "switch_type",
5383
+ endpointName: "6",
5384
+ lookup: {
5385
+ toggle: 0,
5386
+ momentary: 1,
5387
+ multifunction: 2,
5388
+ brightness_level: 3,
5389
+ brightness_level_up: 4,
5390
+ brightness_level_down: 5,
5391
+ move_to_color_temperature: 6,
5392
+ move_to_color_temperature_up: 7,
5393
+ move_to_color_temperature_down: 8,
5394
+ scene: 9,
5395
+ },
5396
+ cluster: "genOnOffSwitchCfg",
5397
+ attribute: "customSwitchType",
5398
+ description: "Switch type",
5399
+ }),
5400
+ m.enumLookup({
5401
+ name: "switch_type",
5402
+ endpointName: "7",
5403
+ lookup: {
5404
+ toggle: 0,
5405
+ momentary: 1,
5406
+ multifunction: 2,
5407
+ brightness_level: 3,
5408
+ brightness_level_up: 4,
5409
+ brightness_level_down: 5,
5410
+ move_to_color_temperature: 6,
5411
+ move_to_color_temperature_up: 7,
5412
+ move_to_color_temperature_down: 8,
5413
+ scene: 9,
5414
+ },
5415
+ cluster: "genOnOffSwitchCfg",
5416
+ attribute: "customSwitchType",
5417
+ description: "Switch type",
5418
+ }),
5419
+ m.enumLookup({
5420
+ name: "switch_type",
5421
+ endpointName: "8",
5422
+ lookup: {
5423
+ toggle: 0,
5424
+ momentary: 1,
5425
+ multifunction: 2,
5426
+ brightness_level: 3,
5427
+ brightness_level_up: 4,
5428
+ brightness_level_down: 5,
5429
+ move_to_color_temperature: 6,
5430
+ move_to_color_temperature_up: 7,
5431
+ move_to_color_temperature_down: 8,
5432
+ scene: 9,
5433
+ },
5434
+ cluster: "genOnOffSwitchCfg",
5435
+ attribute: "customSwitchType",
5436
+ description: "Switch type",
5437
+ }),
5438
+ m.enumLookup({
5439
+ name: "switch_type",
5440
+ endpointName: "9",
5441
+ lookup: {
5442
+ toggle: 0,
5443
+ momentary: 1,
5444
+ multifunction: 2,
5445
+ brightness_level: 3,
5446
+ brightness_level_up: 4,
5447
+ brightness_level_down: 5,
5448
+ move_to_color_temperature: 6,
5449
+ move_to_color_temperature_up: 7,
5450
+ move_to_color_temperature_down: 8,
5451
+ scene: 9,
5452
+ },
5453
+ cluster: "genOnOffSwitchCfg",
5454
+ attribute: "customSwitchType",
5455
+ description: "Switch type",
5456
+ }),
5457
+ m.enumLookup({
5458
+ name: "switch_type",
5459
+ endpointName: "10",
5460
+ lookup: {
5461
+ toggle: 0,
5462
+ momentary: 1,
5463
+ multifunction: 2,
5464
+ brightness_level: 3,
5465
+ brightness_level_up: 4,
5466
+ brightness_level_down: 5,
5467
+ move_to_color_temperature: 6,
5468
+ move_to_color_temperature_up: 7,
5469
+ move_to_color_temperature_down: 8,
5470
+ scene: 9,
5471
+ },
5472
+ cluster: "genOnOffSwitchCfg",
5473
+ attribute: "customSwitchType",
5474
+ description: "Switch type",
5475
+ }),
5476
+ m.enumLookup({
5477
+ name: "switch_type",
5478
+ endpointName: "11",
5479
+ lookup: {
5480
+ toggle: 0,
5481
+ momentary: 1,
5482
+ multifunction: 2,
5483
+ brightness_level: 3,
5484
+ brightness_level_up: 4,
5485
+ brightness_level_down: 5,
5486
+ move_to_color_temperature: 6,
5487
+ move_to_color_temperature_up: 7,
5488
+ move_to_color_temperature_down: 8,
5489
+ scene: 9,
5490
+ },
5491
+ cluster: "genOnOffSwitchCfg",
5492
+ attribute: "customSwitchType",
5493
+ description: "Switch type",
5494
+ }),
5495
+ m.enumLookup({
5496
+ name: "switch_type",
5497
+ endpointName: "12",
5498
+ lookup: {
5499
+ toggle: 0,
5500
+ momentary: 1,
5501
+ multifunction: 2,
5502
+ brightness_level: 3,
5503
+ brightness_level_up: 4,
5504
+ brightness_level_down: 5,
5505
+ move_to_color_temperature: 6,
5506
+ move_to_color_temperature_up: 7,
5507
+ move_to_color_temperature_down: 8,
5508
+ scene: 9,
5509
+ },
5510
+ cluster: "genOnOffSwitchCfg",
5511
+ attribute: "customSwitchType",
5512
+ description: "Switch type",
5513
+ }),
5514
+ m.enumLookup({
5515
+ name: "switch_type",
5516
+ endpointName: "13",
5517
+ lookup: {
5518
+ toggle: 0,
5519
+ momentary: 1,
5520
+ multifunction: 2,
5521
+ brightness_level: 3,
5522
+ brightness_level_up: 4,
5523
+ brightness_level_down: 5,
5524
+ move_to_color_temperature: 6,
5525
+ move_to_color_temperature_up: 7,
5526
+ move_to_color_temperature_down: 8,
5527
+ scene: 9,
5528
+ },
5529
+ cluster: "genOnOffSwitchCfg",
5530
+ attribute: "customSwitchType",
5531
+ description: "Switch type",
5532
+ }),
5533
+ m.enumLookup({
5534
+ name: "switch_type",
5535
+ endpointName: "14",
5536
+ lookup: {
5537
+ toggle: 0,
5538
+ momentary: 1,
5539
+ multifunction: 2,
5540
+ brightness_level: 3,
5541
+ brightness_level_up: 4,
5542
+ brightness_level_down: 5,
5543
+ move_to_color_temperature: 6,
5544
+ move_to_color_temperature_up: 7,
5545
+ move_to_color_temperature_down: 8,
5546
+ scene: 9,
5547
+ },
5548
+ cluster: "genOnOffSwitchCfg",
5549
+ attribute: "customSwitchType",
5550
+ description: "Switch type",
5551
+ }),
5552
+ m.enumLookup({
5553
+ name: "switch_type",
5554
+ endpointName: "15",
5555
+ lookup: {
5556
+ toggle: 0,
5557
+ momentary: 1,
5558
+ multifunction: 2,
5559
+ brightness_level: 3,
5560
+ brightness_level_up: 4,
5561
+ brightness_level_down: 5,
5562
+ move_to_color_temperature: 6,
5563
+ move_to_color_temperature_up: 7,
5564
+ move_to_color_temperature_down: 8,
5565
+ scene: 9,
5566
+ },
5567
+ cluster: "genOnOffSwitchCfg",
5568
+ attribute: "customSwitchType",
5569
+ description: "Switch type",
5570
+ }),
5571
+ m.enumLookup({
5572
+ name: "switch_type",
5573
+ endpointName: "16",
5574
+ lookup: {
5575
+ toggle: 0,
5576
+ momentary: 1,
5577
+ multifunction: 2,
5578
+ brightness_level: 3,
5579
+ brightness_level_up: 4,
5580
+ brightness_level_down: 5,
5581
+ move_to_color_temperature: 6,
5582
+ move_to_color_temperature_up: 7,
5583
+ move_to_color_temperature_down: 8,
5584
+ scene: 9,
5585
+ },
5586
+ cluster: "genOnOffSwitchCfg",
5587
+ attribute: "customSwitchType",
5588
+ description: "Switch type",
5589
+ }),
5590
+ m.enumLookup({
5591
+ name: "switch_type",
5592
+ endpointName: "17",
5593
+ lookup: {
5594
+ toggle: 0,
5595
+ momentary: 1,
5596
+ multifunction: 2,
5597
+ brightness_level: 3,
5598
+ brightness_level_up: 4,
5599
+ brightness_level_down: 5,
5600
+ move_to_color_temperature: 6,
5601
+ move_to_color_temperature_up: 7,
5602
+ move_to_color_temperature_down: 8,
5603
+ scene: 9,
5604
+ },
5605
+ cluster: "genOnOffSwitchCfg",
5606
+ attribute: "customSwitchType",
5607
+ description: "Switch type",
5608
+ }),
5609
+ m.enumLookup({
5610
+ name: "switch_type",
5611
+ endpointName: "18",
5612
+ lookup: {
5613
+ toggle: 0,
5614
+ momentary: 1,
5615
+ multifunction: 2,
5616
+ brightness_level: 3,
5617
+ brightness_level_up: 4,
5618
+ brightness_level_down: 5,
5619
+ move_to_color_temperature: 6,
5620
+ move_to_color_temperature_up: 7,
5621
+ move_to_color_temperature_down: 8,
5622
+ scene: 9,
5623
+ },
5624
+ cluster: "genOnOffSwitchCfg",
5625
+ attribute: "customSwitchType",
5626
+ description: "Switch type",
5627
+ }),
5628
+ m.enumLookup({
5629
+ name: "switch_type",
5630
+ endpointName: "19",
5631
+ lookup: {
5632
+ toggle: 0,
5633
+ momentary: 1,
5634
+ multifunction: 2,
5635
+ brightness_level: 3,
5636
+ brightness_level_up: 4,
5637
+ brightness_level_down: 5,
5638
+ move_to_color_temperature: 6,
5639
+ move_to_color_temperature_up: 7,
5640
+ move_to_color_temperature_down: 8,
5641
+ scene: 9,
5642
+ },
5643
+ cluster: "genOnOffSwitchCfg",
5644
+ attribute: "customSwitchType",
5645
+ description: "Switch type",
5646
+ }),
5647
+ m.enumLookup({
5648
+ name: "switch_type",
5649
+ endpointName: "20",
5650
+ lookup: {
5651
+ toggle: 0,
5652
+ momentary: 1,
5653
+ multifunction: 2,
5654
+ brightness_level: 3,
5655
+ brightness_level_up: 4,
5656
+ brightness_level_down: 5,
5657
+ move_to_color_temperature: 6,
5658
+ move_to_color_temperature_up: 7,
5659
+ move_to_color_temperature_down: 8,
5660
+ scene: 9,
5661
+ },
5662
+ cluster: "genOnOffSwitchCfg",
5663
+ attribute: "customSwitchType",
5664
+ description: "Switch type",
5665
+ }),
5666
+ m.commandsScenes({
5667
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"],
5668
+ }),
5669
+ m.numeric({
5670
+ name: "scene_id",
5671
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"],
5672
+ access: "ALL",
5673
+ cluster: "genScenes",
5674
+ attribute: "customSceneId",
5675
+ valueMin: 0,
5676
+ valueMax: 255,
5677
+ description: "Scene ID",
5678
+ }),
5679
+ m.numeric({
5680
+ name: "group_id",
5681
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"],
5682
+ access: "ALL",
5683
+ cluster: "genScenes",
5684
+ attribute: "customGroupId",
5685
+ valueMin: 0,
5686
+ valueMax: 65527,
5687
+ description: "Group ID for scenes",
5688
+ }),
5689
+ m.numeric({
5690
+ name: "min_level",
5691
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"],
5692
+ access: "ALL",
5693
+ cluster: "genLevelCtrl",
5694
+ attribute: "minLevel",
5695
+ valueMin: 1,
5696
+ valueMax: 255,
5697
+ description: "Minimum level when decreasing",
5698
+ }),
5699
+ m.numeric({
5700
+ name: "max_level",
5701
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"],
5702
+ access: "ALL",
5703
+ cluster: "genLevelCtrl",
5704
+ attribute: "maxLevel",
5705
+ valueMin: 1,
5706
+ valueMax: 255,
5707
+ description: "Maximum level when increasing",
5708
+ }),
5709
+ ],
5710
+ meta: {},
5711
+ ota: true,
5712
+ },
5713
+ {
5714
+ zigbeeModel: ["FreePad-12K-SlD"],
5715
+ model: "FreePad-12K-SlD",
5716
+ vendor: "Slacky-DIY",
5717
+ description: "DIY 12 buttons keypad",
5718
+ extend: [
5719
+ m.deviceAddCustomCluster("genOnOffSwitchCfg", {
5720
+ name: "genOnOffSwitchCfg",
5721
+ ID: 0x0007,
5722
+ attributes: {
5723
+ customSwitchType: {
5724
+ name: "customSwitchType",
5725
+ ID: attrSwitchType,
5726
+ type: 0x30,
5727
+ write: true,
5728
+ max: 0xff,
5729
+ },
5730
+ customDeviceModelNumber: {
5731
+ name: "customDeviceModelNumber",
5732
+ ID: attrDeviceModelNumber,
5733
+ type: 0x30,
5734
+ write: true,
5735
+ max: 0xff,
5736
+ },
5737
+ },
5738
+ commands: {},
5739
+ commandsResponse: {},
5740
+ }),
5741
+ m.deviceAddCustomCluster("genLevelCtrl", {
5742
+ name: "genLevelCtrl",
5743
+ ID: 0x0008,
5744
+ attributes: {
5745
+ minLevel: {
5746
+ name: "minLevel",
5747
+ ID: 0x0002,
5748
+ type: 0x20,
5749
+ write: true,
5750
+ max: 0xff,
5751
+ },
5752
+ maxLevel: {
5753
+ name: "maxLevel",
5754
+ ID: 0x0003,
5755
+ type: 0x20,
5756
+ write: true,
5757
+ max: 0xff,
5758
+ },
5759
+ },
5760
+ commands: {},
5761
+ commandsResponse: {},
5762
+ }),
5763
+ m.deviceAddCustomCluster("genScenes", {
5764
+ name: "genScenes",
5765
+ ID: 0x0005,
5766
+ attributes: {
5767
+ customSceneId: {
5768
+ name: "customSceneId",
5769
+ ID: attrSceneId,
5770
+ type: 0x20,
5771
+ write: true,
5772
+ max: 0xff,
5773
+ },
5774
+ customGroupId: {
5775
+ name: "customGroupId",
5776
+ ID: attrGroupId,
5777
+ type: 0x21,
5778
+ write: true,
5779
+ max: 0xffff,
5780
+ },
5781
+ },
5782
+ commands: {},
5783
+ commandsResponse: {},
5784
+ }),
5785
+ m.deviceEndpoints({
5786
+ endpoints: {
5787
+ "1": 1,
5788
+ "2": 2,
5789
+ "3": 3,
5790
+ "4": 4,
5791
+ "5": 5,
5792
+ "6": 6,
5793
+ "7": 7,
5794
+ "8": 8,
5795
+ "9": 9,
5796
+ "10": 10,
5797
+ "11": 11,
5798
+ "12": 12,
5799
+ },
5800
+ }),
5801
+ m.battery({
5802
+ percentageReportingConfig: { min: 3600, max: 14400, change: 0 },
5803
+ }),
5804
+ m.commandsOnOff({
5805
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
5806
+ }),
5807
+ localActionExtend({
5808
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
5809
+ reporting: false,
5810
+ }),
5811
+ m.commandsLevelCtrl({
5812
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
5813
+ }),
5814
+ m.commandsColorCtrl({
5815
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
5816
+ }),
5817
+ m.enumLookup({
5818
+ name: "switch_actions",
5819
+ endpointName: "1",
5820
+ lookup: {
5821
+ off: 0,
5822
+ on: 1,
5823
+ toggle: 2,
5824
+ },
5825
+ cluster: "genOnOffSwitchCfg",
5826
+ attribute: "switchActions",
5827
+ description: "Actions switch",
5828
+ }),
5829
+ m.enumLookup({
5830
+ name: "switch_actions",
5831
+ endpointName: "2",
5832
+ lookup: {
5833
+ off: 0,
5834
+ on: 1,
5835
+ toggle: 2,
5836
+ },
5837
+ cluster: "genOnOffSwitchCfg",
5838
+ attribute: "switchActions",
5839
+ description: "Actions switch",
5840
+ }),
5841
+ m.enumLookup({
5842
+ name: "switch_actions",
5843
+ endpointName: "3",
5844
+ lookup: {
5845
+ off: 0,
5846
+ on: 1,
5847
+ toggle: 2,
5848
+ },
5849
+ cluster: "genOnOffSwitchCfg",
5850
+ attribute: "switchActions",
5851
+ description: "Actions switch",
5852
+ }),
5853
+ m.enumLookup({
5854
+ name: "switch_actions",
5855
+ endpointName: "4",
5856
+ lookup: {
5857
+ off: 0,
5858
+ on: 1,
5859
+ toggle: 2,
5860
+ },
5861
+ cluster: "genOnOffSwitchCfg",
5862
+ attribute: "switchActions",
5863
+ description: "Actions switch",
5864
+ }),
5865
+ m.enumLookup({
5866
+ name: "switch_actions",
5867
+ endpointName: "5",
5868
+ lookup: {
5869
+ off: 0,
5870
+ on: 1,
5871
+ toggle: 2,
5872
+ },
5873
+ cluster: "genOnOffSwitchCfg",
5874
+ attribute: "switchActions",
5875
+ description: "Actions switch",
5876
+ }),
5877
+ m.enumLookup({
5878
+ name: "switch_actions",
5879
+ endpointName: "6",
5880
+ lookup: {
5881
+ off: 0,
5882
+ on: 1,
5883
+ toggle: 2,
5884
+ },
5885
+ cluster: "genOnOffSwitchCfg",
5886
+ attribute: "switchActions",
5887
+ description: "Actions switch",
5888
+ }),
5889
+ m.enumLookup({
5890
+ name: "switch_actions",
5891
+ endpointName: "7",
5892
+ lookup: {
5893
+ off: 0,
5894
+ on: 1,
5895
+ toggle: 2,
5896
+ },
5897
+ cluster: "genOnOffSwitchCfg",
5898
+ attribute: "switchActions",
5899
+ description: "Actions switch",
5900
+ }),
5901
+ m.enumLookup({
5902
+ name: "switch_actions",
5903
+ endpointName: "8",
5904
+ lookup: {
5905
+ off: 0,
5906
+ on: 1,
5907
+ toggle: 2,
5908
+ },
5909
+ cluster: "genOnOffSwitchCfg",
5910
+ attribute: "switchActions",
5911
+ description: "Actions switch",
5912
+ }),
5913
+ m.enumLookup({
5914
+ name: "switch_actions",
5915
+ endpointName: "9",
5916
+ lookup: {
5917
+ off: 0,
5918
+ on: 1,
5919
+ toggle: 2,
5920
+ },
5921
+ cluster: "genOnOffSwitchCfg",
5922
+ attribute: "switchActions",
5923
+ description: "Actions switch",
5924
+ }),
5925
+ m.enumLookup({
5926
+ name: "switch_actions",
5927
+ endpointName: "10",
5928
+ lookup: {
5929
+ off: 0,
5930
+ on: 1,
5931
+ toggle: 2,
5932
+ },
5933
+ cluster: "genOnOffSwitchCfg",
5934
+ attribute: "switchActions",
5935
+ description: "Actions switch",
5936
+ }),
5937
+ m.enumLookup({
5938
+ name: "switch_actions",
5939
+ endpointName: "11",
5940
+ lookup: {
5941
+ off: 0,
5942
+ on: 1,
5943
+ toggle: 2,
5944
+ },
5945
+ cluster: "genOnOffSwitchCfg",
5946
+ attribute: "switchActions",
5947
+ description: "Actions switch",
5948
+ }),
5949
+ m.enumLookup({
5950
+ name: "switch_actions",
5951
+ endpointName: "12",
5952
+ lookup: {
5953
+ off: 0,
5954
+ on: 1,
5955
+ toggle: 2,
5956
+ },
5957
+ cluster: "genOnOffSwitchCfg",
5958
+ attribute: "switchActions",
5959
+ description: "Actions switch",
5960
+ }),
5961
+ m.enumLookup({
5962
+ name: "switch_type",
5963
+ endpointName: "1",
5964
+ lookup: {
5965
+ toggle: 0,
5966
+ momentary: 1,
5967
+ multifunction: 2,
5968
+ brightness_level: 3,
5969
+ brightness_level_up: 4,
5970
+ brightness_level_down: 5,
5971
+ move_to_color_temperature: 6,
5972
+ move_to_color_temperature_up: 7,
5973
+ move_to_color_temperature_down: 8,
5974
+ scene: 9,
5975
+ },
5976
+ cluster: "genOnOffSwitchCfg",
5977
+ attribute: "customSwitchType",
5978
+ description: "Switch type",
5979
+ }),
5980
+ m.enumLookup({
5981
+ name: "switch_type",
5982
+ endpointName: "2",
5983
+ lookup: {
5984
+ toggle: 0,
5985
+ momentary: 1,
5986
+ multifunction: 2,
5987
+ brightness_level: 3,
5988
+ brightness_level_up: 4,
5989
+ brightness_level_down: 5,
5990
+ move_to_color_temperature: 6,
5991
+ move_to_color_temperature_up: 7,
5992
+ move_to_color_temperature_down: 8,
5993
+ scene: 9,
5994
+ },
5995
+ cluster: "genOnOffSwitchCfg",
5996
+ attribute: "customSwitchType",
5997
+ description: "Switch type",
5998
+ }),
5999
+ m.enumLookup({
6000
+ name: "switch_type",
6001
+ endpointName: "3",
6002
+ lookup: {
6003
+ toggle: 0,
6004
+ momentary: 1,
6005
+ multifunction: 2,
6006
+ brightness_level: 3,
6007
+ brightness_level_up: 4,
6008
+ brightness_level_down: 5,
6009
+ move_to_color_temperature: 6,
6010
+ move_to_color_temperature_up: 7,
6011
+ move_to_color_temperature_down: 8,
6012
+ scene: 9,
6013
+ },
6014
+ cluster: "genOnOffSwitchCfg",
6015
+ attribute: "customSwitchType",
6016
+ description: "Switch type",
6017
+ }),
6018
+ m.enumLookup({
6019
+ name: "switch_type",
6020
+ endpointName: "4",
6021
+ lookup: {
6022
+ toggle: 0,
6023
+ momentary: 1,
6024
+ multifunction: 2,
6025
+ brightness_level: 3,
6026
+ brightness_level_up: 4,
6027
+ brightness_level_down: 5,
6028
+ move_to_color_temperature: 6,
6029
+ move_to_color_temperature_up: 7,
6030
+ move_to_color_temperature_down: 8,
6031
+ scene: 9,
6032
+ },
6033
+ cluster: "genOnOffSwitchCfg",
6034
+ attribute: "customSwitchType",
6035
+ description: "Switch type",
6036
+ }),
6037
+ m.enumLookup({
6038
+ name: "switch_type",
6039
+ endpointName: "5",
6040
+ lookup: {
6041
+ toggle: 0,
6042
+ momentary: 1,
6043
+ multifunction: 2,
6044
+ brightness_level: 3,
6045
+ brightness_level_up: 4,
6046
+ brightness_level_down: 5,
6047
+ move_to_color_temperature: 6,
6048
+ move_to_color_temperature_up: 7,
6049
+ move_to_color_temperature_down: 8,
6050
+ scene: 9,
6051
+ },
6052
+ cluster: "genOnOffSwitchCfg",
6053
+ attribute: "customSwitchType",
6054
+ description: "Switch type",
6055
+ }),
6056
+ m.enumLookup({
6057
+ name: "switch_type",
6058
+ endpointName: "6",
6059
+ lookup: {
6060
+ toggle: 0,
6061
+ momentary: 1,
6062
+ multifunction: 2,
6063
+ brightness_level: 3,
6064
+ brightness_level_up: 4,
6065
+ brightness_level_down: 5,
6066
+ move_to_color_temperature: 6,
6067
+ move_to_color_temperature_up: 7,
6068
+ move_to_color_temperature_down: 8,
6069
+ scene: 9,
6070
+ },
6071
+ cluster: "genOnOffSwitchCfg",
6072
+ attribute: "customSwitchType",
6073
+ description: "Switch type",
6074
+ }),
6075
+ m.enumLookup({
6076
+ name: "switch_type",
6077
+ endpointName: "7",
6078
+ lookup: {
6079
+ toggle: 0,
6080
+ momentary: 1,
6081
+ multifunction: 2,
6082
+ brightness_level: 3,
6083
+ brightness_level_up: 4,
6084
+ brightness_level_down: 5,
6085
+ move_to_color_temperature: 6,
6086
+ move_to_color_temperature_up: 7,
6087
+ move_to_color_temperature_down: 8,
6088
+ scene: 9,
6089
+ },
6090
+ cluster: "genOnOffSwitchCfg",
6091
+ attribute: "customSwitchType",
6092
+ description: "Switch type",
6093
+ }),
6094
+ m.enumLookup({
6095
+ name: "switch_type",
6096
+ endpointName: "8",
6097
+ lookup: {
6098
+ toggle: 0,
6099
+ momentary: 1,
6100
+ multifunction: 2,
6101
+ brightness_level: 3,
6102
+ brightness_level_up: 4,
6103
+ brightness_level_down: 5,
6104
+ move_to_color_temperature: 6,
6105
+ move_to_color_temperature_up: 7,
6106
+ move_to_color_temperature_down: 8,
6107
+ scene: 9,
6108
+ },
6109
+ cluster: "genOnOffSwitchCfg",
6110
+ attribute: "customSwitchType",
6111
+ description: "Switch type",
6112
+ }),
6113
+ m.enumLookup({
6114
+ name: "switch_type",
6115
+ endpointName: "9",
6116
+ lookup: {
6117
+ toggle: 0,
6118
+ momentary: 1,
6119
+ multifunction: 2,
6120
+ brightness_level: 3,
6121
+ brightness_level_up: 4,
6122
+ brightness_level_down: 5,
6123
+ move_to_color_temperature: 6,
6124
+ move_to_color_temperature_up: 7,
6125
+ move_to_color_temperature_down: 8,
6126
+ scene: 9,
6127
+ },
6128
+ cluster: "genOnOffSwitchCfg",
6129
+ attribute: "customSwitchType",
6130
+ description: "Switch type",
6131
+ }),
6132
+ m.enumLookup({
6133
+ name: "switch_type",
6134
+ endpointName: "10",
6135
+ lookup: {
6136
+ toggle: 0,
6137
+ momentary: 1,
6138
+ multifunction: 2,
6139
+ brightness_level: 3,
6140
+ brightness_level_up: 4,
6141
+ brightness_level_down: 5,
6142
+ move_to_color_temperature: 6,
6143
+ move_to_color_temperature_up: 7,
6144
+ move_to_color_temperature_down: 8,
6145
+ scene: 9,
6146
+ },
6147
+ cluster: "genOnOffSwitchCfg",
6148
+ attribute: "customSwitchType",
6149
+ description: "Switch type",
6150
+ }),
6151
+ m.enumLookup({
6152
+ name: "switch_type",
6153
+ endpointName: "11",
6154
+ lookup: {
6155
+ toggle: 0,
6156
+ momentary: 1,
6157
+ multifunction: 2,
6158
+ brightness_level: 3,
6159
+ brightness_level_up: 4,
6160
+ brightness_level_down: 5,
6161
+ move_to_color_temperature: 6,
6162
+ move_to_color_temperature_up: 7,
6163
+ move_to_color_temperature_down: 8,
6164
+ scene: 9,
6165
+ },
6166
+ cluster: "genOnOffSwitchCfg",
6167
+ attribute: "customSwitchType",
6168
+ description: "Switch type",
6169
+ }),
6170
+ m.enumLookup({
6171
+ name: "switch_type",
6172
+ endpointName: "12",
6173
+ lookup: {
6174
+ toggle: 0,
6175
+ momentary: 1,
6176
+ multifunction: 2,
6177
+ brightness_level: 3,
6178
+ brightness_level_up: 4,
6179
+ brightness_level_down: 5,
6180
+ move_to_color_temperature: 6,
6181
+ move_to_color_temperature_up: 7,
6182
+ move_to_color_temperature_down: 8,
6183
+ scene: 9,
6184
+ },
6185
+ cluster: "genOnOffSwitchCfg",
6186
+ attribute: "customSwitchType",
6187
+ description: "Switch type",
6188
+ }),
6189
+ m.commandsScenes({
6190
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
6191
+ }),
6192
+ m.numeric({
6193
+ name: "scene_id",
6194
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
6195
+ access: "ALL",
6196
+ cluster: "genScenes",
6197
+ attribute: "customSceneId",
6198
+ valueMin: 0,
6199
+ valueMax: 255,
6200
+ description: "Scene ID",
6201
+ }),
6202
+ m.numeric({
6203
+ name: "group_id",
6204
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
6205
+ access: "ALL",
6206
+ cluster: "genScenes",
6207
+ attribute: "customGroupId",
6208
+ valueMin: 0,
6209
+ valueMax: 65527,
6210
+ description: "Group ID for scenes",
6211
+ }),
6212
+ m.numeric({
6213
+ name: "min_level",
6214
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
6215
+ access: "ALL",
6216
+ cluster: "genLevelCtrl",
6217
+ attribute: "minLevel",
6218
+ valueMin: 1,
6219
+ valueMax: 255,
6220
+ description: "Minimum level when decreasing",
6221
+ }),
6222
+ m.numeric({
6223
+ name: "max_level",
6224
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
6225
+ access: "ALL",
6226
+ cluster: "genLevelCtrl",
6227
+ attribute: "maxLevel",
6228
+ valueMin: 1,
6229
+ valueMax: 255,
6230
+ description: "Maximum level when increasing",
6231
+ }),
6232
+ ],
6233
+ meta: {},
6234
+ ota: true,
6235
+ },
6236
+ {
6237
+ zigbeeModel: ["FreePad-08K-SlD"],
6238
+ model: "FreePad-08K-SlD",
6239
+ vendor: "Slacky-DIY",
6240
+ description: "DIY 8 buttons keypad",
6241
+ extend: [
6242
+ m.deviceAddCustomCluster("genOnOffSwitchCfg", {
6243
+ name: "genOnOffSwitchCfg",
6244
+ ID: 0x0007,
6245
+ attributes: {
6246
+ customSwitchType: {
6247
+ name: "customSwitchType",
6248
+ ID: attrSwitchType,
6249
+ type: 0x30,
6250
+ write: true,
6251
+ max: 0xff,
6252
+ },
6253
+ customDeviceModelNumber: {
6254
+ name: "customDeviceModelNumber",
6255
+ ID: attrDeviceModelNumber,
6256
+ type: 0x30,
6257
+ write: true,
6258
+ max: 0xff,
6259
+ },
6260
+ },
6261
+ commands: {},
6262
+ commandsResponse: {},
6263
+ }),
6264
+ m.deviceAddCustomCluster("genLevelCtrl", {
6265
+ name: "genLevelCtrl",
6266
+ ID: 0x0008,
6267
+ attributes: {
6268
+ minLevel: {
6269
+ name: "minLevel",
6270
+ ID: 0x0002,
6271
+ type: 0x20,
6272
+ write: true,
6273
+ max: 0xff,
6274
+ },
6275
+ maxLevel: {
6276
+ name: "maxLevel",
6277
+ ID: 0x0003,
6278
+ type: 0x20,
6279
+ write: true,
6280
+ max: 0xff,
6281
+ },
6282
+ },
6283
+ commands: {},
6284
+ commandsResponse: {},
6285
+ }),
6286
+ m.deviceAddCustomCluster("genScenes", {
6287
+ name: "genScenes",
6288
+ ID: 0x0005,
6289
+ attributes: {
6290
+ customSceneId: {
6291
+ name: "customSceneId",
6292
+ ID: attrSceneId,
6293
+ type: 0x20,
6294
+ write: true,
6295
+ max: 0xff,
6296
+ },
6297
+ customGroupId: {
6298
+ name: "customGroupId",
6299
+ ID: attrGroupId,
6300
+ type: 0x21,
6301
+ write: true,
6302
+ max: 0xffff,
6303
+ },
6304
+ },
6305
+ commands: {},
6306
+ commandsResponse: {},
6307
+ }),
6308
+ m.deviceEndpoints({
6309
+ endpoints: {
6310
+ "1": 1,
6311
+ "2": 2,
6312
+ "3": 3,
6313
+ "4": 4,
6314
+ "5": 5,
6315
+ "6": 6,
6316
+ "7": 7,
6317
+ "8": 8,
6318
+ },
6319
+ }),
6320
+ m.battery({
6321
+ percentageReportingConfig: { min: 3600, max: 14400, change: 0 },
6322
+ }),
6323
+ m.commandsOnOff({
6324
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8"],
6325
+ }),
6326
+ localActionExtend({
6327
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8"],
6328
+ reporting: false,
6329
+ }),
6330
+ m.commandsLevelCtrl({
6331
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8"],
6332
+ }),
6333
+ m.commandsColorCtrl({
6334
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8"],
6335
+ }),
6336
+ m.enumLookup({
6337
+ name: "switch_actions",
6338
+ endpointName: "1",
6339
+ lookup: {
6340
+ off: 0,
6341
+ on: 1,
6342
+ toggle: 2,
6343
+ },
6344
+ cluster: "genOnOffSwitchCfg",
6345
+ attribute: "switchActions",
6346
+ description: "Actions switch",
6347
+ }),
6348
+ m.enumLookup({
6349
+ name: "switch_actions",
6350
+ endpointName: "2",
6351
+ lookup: {
6352
+ off: 0,
6353
+ on: 1,
6354
+ toggle: 2,
6355
+ },
6356
+ cluster: "genOnOffSwitchCfg",
6357
+ attribute: "switchActions",
6358
+ description: "Actions switch",
6359
+ }),
6360
+ m.enumLookup({
6361
+ name: "switch_actions",
6362
+ endpointName: "3",
6363
+ lookup: {
6364
+ off: 0,
6365
+ on: 1,
6366
+ toggle: 2,
6367
+ },
6368
+ cluster: "genOnOffSwitchCfg",
6369
+ attribute: "switchActions",
6370
+ description: "Actions switch",
6371
+ }),
6372
+ m.enumLookup({
6373
+ name: "switch_actions",
6374
+ endpointName: "4",
6375
+ lookup: {
6376
+ off: 0,
6377
+ on: 1,
6378
+ toggle: 2,
6379
+ },
6380
+ cluster: "genOnOffSwitchCfg",
6381
+ attribute: "switchActions",
6382
+ description: "Actions switch",
6383
+ }),
6384
+ m.enumLookup({
6385
+ name: "switch_actions",
6386
+ endpointName: "5",
6387
+ lookup: {
6388
+ off: 0,
6389
+ on: 1,
6390
+ toggle: 2,
6391
+ },
6392
+ cluster: "genOnOffSwitchCfg",
6393
+ attribute: "switchActions",
6394
+ description: "Actions switch",
6395
+ }),
6396
+ m.enumLookup({
6397
+ name: "switch_actions",
6398
+ endpointName: "6",
6399
+ lookup: {
6400
+ off: 0,
6401
+ on: 1,
6402
+ toggle: 2,
6403
+ },
6404
+ cluster: "genOnOffSwitchCfg",
6405
+ attribute: "switchActions",
6406
+ description: "Actions switch",
6407
+ }),
6408
+ m.enumLookup({
6409
+ name: "switch_actions",
6410
+ endpointName: "7",
6411
+ lookup: {
6412
+ off: 0,
6413
+ on: 1,
6414
+ toggle: 2,
6415
+ },
6416
+ cluster: "genOnOffSwitchCfg",
6417
+ attribute: "switchActions",
6418
+ description: "Actions switch",
6419
+ }),
6420
+ m.enumLookup({
6421
+ name: "switch_actions",
6422
+ endpointName: "8",
6423
+ lookup: {
6424
+ off: 0,
6425
+ on: 1,
6426
+ toggle: 2,
6427
+ },
6428
+ cluster: "genOnOffSwitchCfg",
6429
+ attribute: "switchActions",
6430
+ description: "Actions switch",
6431
+ }),
6432
+ m.enumLookup({
6433
+ name: "switch_type",
6434
+ endpointName: "1",
6435
+ lookup: {
6436
+ toggle: 0,
6437
+ momentary: 1,
6438
+ multifunction: 2,
6439
+ brightness_level: 3,
6440
+ brightness_level_up: 4,
6441
+ brightness_level_down: 5,
6442
+ move_to_color_temperature: 6,
6443
+ move_to_color_temperature_up: 7,
6444
+ move_to_color_temperature_down: 8,
6445
+ scene: 9,
3618
6446
  },
3619
6447
  cluster: "genOnOffSwitchCfg",
3620
6448
  attribute: "customSwitchType",
@@ -3627,9 +6455,13 @@ exports.definitions = [
3627
6455
  toggle: 0,
3628
6456
  momentary: 1,
3629
6457
  multifunction: 2,
3630
- brightness_level_up: 3,
3631
- brightness_level_down: 4,
3632
- scene: 5,
6458
+ brightness_level: 3,
6459
+ brightness_level_up: 4,
6460
+ brightness_level_down: 5,
6461
+ move_to_color_temperature: 6,
6462
+ move_to_color_temperature_up: 7,
6463
+ move_to_color_temperature_down: 8,
6464
+ scene: 9,
3633
6465
  },
3634
6466
  cluster: "genOnOffSwitchCfg",
3635
6467
  attribute: "customSwitchType",
@@ -3642,9 +6474,13 @@ exports.definitions = [
3642
6474
  toggle: 0,
3643
6475
  momentary: 1,
3644
6476
  multifunction: 2,
3645
- brightness_level_up: 3,
3646
- brightness_level_down: 4,
3647
- scene: 5,
6477
+ brightness_level: 3,
6478
+ brightness_level_up: 4,
6479
+ brightness_level_down: 5,
6480
+ move_to_color_temperature: 6,
6481
+ move_to_color_temperature_up: 7,
6482
+ move_to_color_temperature_down: 8,
6483
+ scene: 9,
3648
6484
  },
3649
6485
  cluster: "genOnOffSwitchCfg",
3650
6486
  attribute: "customSwitchType",
@@ -3657,18 +6493,100 @@ exports.definitions = [
3657
6493
  toggle: 0,
3658
6494
  momentary: 1,
3659
6495
  multifunction: 2,
3660
- brightness_level_up: 3,
3661
- brightness_level_down: 4,
3662
- scene: 5,
6496
+ brightness_level: 3,
6497
+ brightness_level_up: 4,
6498
+ brightness_level_down: 5,
6499
+ move_to_color_temperature: 6,
6500
+ move_to_color_temperature_up: 7,
6501
+ move_to_color_temperature_down: 8,
6502
+ scene: 9,
3663
6503
  },
3664
6504
  cluster: "genOnOffSwitchCfg",
3665
6505
  attribute: "customSwitchType",
3666
6506
  description: "Switch type",
3667
6507
  }),
3668
- m.commandsScenes({ endpointNames: ["1", "2", "3", "4"] }),
6508
+ m.enumLookup({
6509
+ name: "switch_type",
6510
+ endpointName: "5",
6511
+ lookup: {
6512
+ toggle: 0,
6513
+ momentary: 1,
6514
+ multifunction: 2,
6515
+ brightness_level: 3,
6516
+ brightness_level_up: 4,
6517
+ brightness_level_down: 5,
6518
+ move_to_color_temperature: 6,
6519
+ move_to_color_temperature_up: 7,
6520
+ move_to_color_temperature_down: 8,
6521
+ scene: 9,
6522
+ },
6523
+ cluster: "genOnOffSwitchCfg",
6524
+ attribute: "customSwitchType",
6525
+ description: "Switch type",
6526
+ }),
6527
+ m.enumLookup({
6528
+ name: "switch_type",
6529
+ endpointName: "6",
6530
+ lookup: {
6531
+ toggle: 0,
6532
+ momentary: 1,
6533
+ multifunction: 2,
6534
+ brightness_level: 3,
6535
+ brightness_level_up: 4,
6536
+ brightness_level_down: 5,
6537
+ move_to_color_temperature: 6,
6538
+ move_to_color_temperature_up: 7,
6539
+ move_to_color_temperature_down: 8,
6540
+ scene: 9,
6541
+ },
6542
+ cluster: "genOnOffSwitchCfg",
6543
+ attribute: "customSwitchType",
6544
+ description: "Switch type",
6545
+ }),
6546
+ m.enumLookup({
6547
+ name: "switch_type",
6548
+ endpointName: "7",
6549
+ lookup: {
6550
+ toggle: 0,
6551
+ momentary: 1,
6552
+ multifunction: 2,
6553
+ brightness_level: 3,
6554
+ brightness_level_up: 4,
6555
+ brightness_level_down: 5,
6556
+ move_to_color_temperature: 6,
6557
+ move_to_color_temperature_up: 7,
6558
+ move_to_color_temperature_down: 8,
6559
+ scene: 9,
6560
+ },
6561
+ cluster: "genOnOffSwitchCfg",
6562
+ attribute: "customSwitchType",
6563
+ description: "Switch type",
6564
+ }),
6565
+ m.enumLookup({
6566
+ name: "switch_type",
6567
+ endpointName: "8",
6568
+ lookup: {
6569
+ toggle: 0,
6570
+ momentary: 1,
6571
+ multifunction: 2,
6572
+ brightness_level: 3,
6573
+ brightness_level_up: 4,
6574
+ brightness_level_down: 5,
6575
+ move_to_color_temperature: 6,
6576
+ move_to_color_temperature_up: 7,
6577
+ move_to_color_temperature_down: 8,
6578
+ scene: 9,
6579
+ },
6580
+ cluster: "genOnOffSwitchCfg",
6581
+ attribute: "customSwitchType",
6582
+ description: "Switch type",
6583
+ }),
6584
+ m.commandsScenes({
6585
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8"],
6586
+ }),
3669
6587
  m.numeric({
3670
6588
  name: "scene_id",
3671
- endpointNames: ["1", "2", "3", "4"],
6589
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8"],
3672
6590
  access: "ALL",
3673
6591
  cluster: "genScenes",
3674
6592
  attribute: "customSceneId",
@@ -3678,7 +6596,7 @@ exports.definitions = [
3678
6596
  }),
3679
6597
  m.numeric({
3680
6598
  name: "group_id",
3681
- endpointNames: ["1", "2", "3", "4"],
6599
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8"],
3682
6600
  access: "ALL",
3683
6601
  cluster: "genScenes",
3684
6602
  attribute: "customGroupId",
@@ -3686,6 +6604,26 @@ exports.definitions = [
3686
6604
  valueMax: 65527,
3687
6605
  description: "Group ID for scenes",
3688
6606
  }),
6607
+ m.numeric({
6608
+ name: "min_level",
6609
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8"],
6610
+ access: "ALL",
6611
+ cluster: "genLevelCtrl",
6612
+ attribute: "minLevel",
6613
+ valueMin: 1,
6614
+ valueMax: 255,
6615
+ description: "Minimum level when decreasing",
6616
+ }),
6617
+ m.numeric({
6618
+ name: "max_level",
6619
+ endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8"],
6620
+ access: "ALL",
6621
+ cluster: "genLevelCtrl",
6622
+ attribute: "maxLevel",
6623
+ valueMin: 1,
6624
+ valueMax: 255,
6625
+ description: "Maximum level when increasing",
6626
+ }),
3689
6627
  ],
3690
6628
  meta: {},
3691
6629
  ota: true,