@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
@@ -39,6 +39,7 @@ const fz = __importStar(require("../converters/fromZigbee"));
39
39
  const tz = __importStar(require("../converters/toZigbee"));
40
40
  const constants = __importStar(require("../lib/constants"));
41
41
  const exposes = __importStar(require("../lib/exposes"));
42
+ const logger_1 = require("../lib/logger");
42
43
  const m = __importStar(require("../lib/modernExtend"));
43
44
  const reporting = __importStar(require("../lib/reporting"));
44
45
  const utils = __importStar(require("../lib/utils"));
@@ -48,58 +49,99 @@ const ea = exposes.access;
48
49
  const manuSinope = { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SINOPE_TECHNOLOGIES };
49
50
  const sinopeExtend = {
50
51
  addManuSpecificSinopeCluster: () => m.deviceAddCustomCluster("manuSpecificSinope", {
52
+ name: "manuSpecificSinope",
51
53
  ID: 0xff01,
52
54
  manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SINOPE_TECHNOLOGIES,
53
55
  attributes: {
54
56
  // attribute ID :1's readable
55
- keypadLockout: { ID: 0x0002, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
57
+ keypadLockout: { name: "keypadLockout", ID: 0x0002, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
56
58
  // 'firmware number': {ID: 3, type: Zcl.DataType.UNKNOWN}, write: true,
57
- firmwareVersion: { ID: 0x0004, type: zigbee_herdsman_1.Zcl.DataType.CHAR_STR, write: true },
58
- outdoorTempToDisplay: { ID: 0x0010, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff },
59
- outdoorTempToDisplayTimeout: { ID: 0x0011, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
60
- secondScreenBehavior: { ID: 0x0012, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff }, // auto:0,setpoint:1,outside:2
61
- currentTimeToDisplay: { ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.UINT32, write: true, max: 0xffffffff },
62
- ledIntensityOn: { ID: 0x0052, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
63
- ledIntensityOff: { ID: 0x0053, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
64
- ledColorOn: { ID: 0x0050, type: zigbee_herdsman_1.Zcl.DataType.UINT24, write: true, max: 0xffffff }, // inversed hex BBGGRR
65
- ledColorOff: { ID: 0x0051, type: zigbee_herdsman_1.Zcl.DataType.UINT24, write: true, max: 0xffffff },
66
- onLedIntensity: { ID: 0x0052, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff }, // percent
67
- offLedIntensity: { ID: 0x0053, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff }, // percent
68
- actionReport: { ID: 0x0054, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff }, // singleTapUp: 1,2, doubleTapUp: 1,4, singleTapDown: 17,18, doubleTapDown: 17,20
69
- minimumBrightness: { ID: 0x0055, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
70
- connectedLoadRM: { ID: 0x0060, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff }, // unit watt/hr for Calypso RM3500 & Load Controller RM3250
71
- currentLoad: { ID: 0x0070, type: zigbee_herdsman_1.Zcl.DataType.BITMAP8, write: true }, // related to ecoMode(s)
72
- ecoMode: { ID: 0x0071, type: zigbee_herdsman_1.Zcl.DataType.INT8, write: true, min: -128, max: 127, default: -128 }, // -100-0-100%
73
- ecoMode1: { ID: 0x0072, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff, default: 0xff }, // 0-99
74
- ecoMode2: { ID: 0x0073, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff, default: 0xff }, // 0-100
75
- unknown: { ID: 0x0075, type: zigbee_herdsman_1.Zcl.DataType.BITMAP32, write: true, max: 0xffffffff }, // RW *testing*
76
- drConfigWaterTempMin: { ID: 0x0076, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff }, // value 45 or 0
77
- drConfigWaterTempTime: { ID: 0x0077, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff, default: 2 }, // default 2
78
- drWTTimeOn: { ID: 0x0078, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
79
- unknown1: { ID: 0x0080, type: zigbee_herdsman_1.Zcl.DataType.UINT32, max: 0xffffffff }, // readOnly stringNumber *testing*
80
- dimmerTimmer: { ID: 0x00a0, type: zigbee_herdsman_1.Zcl.DataType.UINT32, write: true, max: 0xffffffff },
81
- unknown2: { ID: 0x0100, type: zigbee_herdsman_1.Zcl.DataType.UINT8, max: 0xff }, // readOnly *testing*
82
- floorControlMode: { ID: 0x0105, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff }, // airFloorMode
83
- auxOutputMode: { ID: 0x0106, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
84
- floorTemperature: { ID: 0x0107, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff },
85
- ambiantMaxHeatSetpointLimit: { ID: 0x0108, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff },
86
- floorMinHeatSetpointLimit: { ID: 0x0109, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff },
87
- floorMaxHeatSetpointLimit: { ID: 0x010a, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff },
88
- temperatureSensor: { ID: 0x010b, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
89
- floorLimitStatus: { ID: 0x010c, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
90
- roomTemperature: { ID: 0x010d, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff },
91
- timeFormatToDisplay: { ID: 0x0114, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
92
- GFCiStatus: { ID: 0x0115, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
93
- auxConnectedLoad: { ID: 0x0118, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xff },
94
- connectedLoad: { ID: 0x0119, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
95
- pumpProtection: { ID: 0x0128, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
96
- unknown3: { ID: 0x012a, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff, default: 60 }, // RW 5,10,15,20,30,60 *testing*
97
- currentSetpoint: { ID: 0x012b, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff }, // W:to ocuppiedHeatSetpoint, R:depends of SinopeOccupancy
59
+ firmwareVersion: { name: "firmwareVersion", ID: 0x0004, type: zigbee_herdsman_1.Zcl.DataType.CHAR_STR, write: true },
60
+ outdoorTempToDisplay: { name: "outdoorTempToDisplay", ID: 0x0010, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff },
61
+ outdoorTempToDisplayTimeout: { name: "outdoorTempToDisplayTimeout", ID: 0x0011, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
62
+ secondScreenBehavior: { name: "secondScreenBehavior", ID: 0x0012, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff }, // auto:0,setpoint:1,outside:2
63
+ currentTimeToDisplay: { name: "currentTimeToDisplay", ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.UINT32, write: true, max: 0xffffffff },
64
+ ledIntensityOn: { name: "ledIntensityOn", ID: 0x0052, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
65
+ ledIntensityOff: { name: "ledIntensityOff", ID: 0x0053, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
66
+ ledColorOn: { name: "ledColorOn", ID: 0x0050, type: zigbee_herdsman_1.Zcl.DataType.UINT24, write: true, max: 0xffffff }, // inversed hex BBGGRR
67
+ ledColorOff: { name: "ledColorOff", ID: 0x0051, type: zigbee_herdsman_1.Zcl.DataType.UINT24, write: true, max: 0xffffff },
68
+ onLedIntensity: { name: "onLedIntensity", ID: 0x0052, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff }, // percent
69
+ offLedIntensity: { name: "offLedIntensity", ID: 0x0053, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff }, // percent
70
+ actionReport: { name: "actionReport", ID: 0x0054, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff }, // singleTapUp: 1,2, doubleTapUp: 1,4, singleTapDown: 17,18, doubleTapDown: 17,20
71
+ minimumBrightness: { name: "minimumBrightness", ID: 0x0055, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
72
+ connectedLoadRM: { name: "connectedLoadRM", ID: 0x0060, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff }, // unit watt/hr for Calypso RM3500 & Load Controller RM3250
73
+ currentLoad: { name: "currentLoad", ID: 0x0070, type: zigbee_herdsman_1.Zcl.DataType.BITMAP8, write: true }, // related to ecoMode(s)
74
+ ecoMode: { name: "ecoMode", ID: 0x0071, type: zigbee_herdsman_1.Zcl.DataType.INT8, write: true, min: -128, max: 127, default: -128 }, // -100-0-100%
75
+ ecoMode1: { name: "ecoMode1", ID: 0x0072, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff, default: 0xff }, // 0-99
76
+ ecoMode2: { name: "ecoMode2", ID: 0x0073, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff, default: 0xff }, // 0-100
77
+ unknown: { name: "unknown", ID: 0x0075, type: zigbee_herdsman_1.Zcl.DataType.BITMAP32, write: true, max: 0xffffffff }, // RW *testing*
78
+ drConfigWaterTempMin: { name: "drConfigWaterTempMin", ID: 0x0076, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff }, // value 45 or 0
79
+ drConfigWaterTempTime: { name: "drConfigWaterTempTime", ID: 0x0077, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff, default: 2 }, // default 2
80
+ drWTTimeOn: { name: "drWTTimeOn", ID: 0x0078, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
81
+ unknown1: { name: "unknown1", ID: 0x0080, type: zigbee_herdsman_1.Zcl.DataType.UINT32, max: 0xffffffff }, // readOnly stringNumber *testing*
82
+ dimmerTimmer: { name: "dimmerTimmer", ID: 0x00a0, type: zigbee_herdsman_1.Zcl.DataType.UINT32, write: true, max: 0xffffffff },
83
+ unknown2: { name: "unknown2", ID: 0x0100, type: zigbee_herdsman_1.Zcl.DataType.UINT8, max: 0xff }, // readOnly *testing*
84
+ floorControlMode: { name: "floorControlMode", ID: 0x0105, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff }, // airFloorMode
85
+ auxOutputMode: { name: "auxOutputMode", ID: 0x0106, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
86
+ floorTemperature: { name: "floorTemperature", ID: 0x0107, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff },
87
+ ambiantMaxHeatSetpointLimit: { name: "ambiantMaxHeatSetpointLimit", ID: 0x0108, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff },
88
+ floorMinHeatSetpointLimit: { name: "floorMinHeatSetpointLimit", ID: 0x0109, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff },
89
+ floorMaxHeatSetpointLimit: { name: "floorMaxHeatSetpointLimit", ID: 0x010a, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff },
90
+ temperatureSensor: { name: "temperatureSensor", ID: 0x010b, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
91
+ floorLimitStatus: { name: "floorLimitStatus", ID: 0x010c, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
92
+ roomTemperature: { name: "roomTemperature", ID: 0x010d, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff },
93
+ timeFormatToDisplay: { name: "timeFormatToDisplay", ID: 0x0114, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
94
+ GFCiStatus: { name: "GFCiStatus", ID: 0x0115, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
95
+ auxConnectedLoad: { name: "auxConnectedLoad", ID: 0x0118, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xff },
96
+ connectedLoad: { name: "connectedLoad", ID: 0x0119, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
97
+ pumpProtection: { name: "pumpProtection", ID: 0x0128, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
98
+ unknown3: { name: "unknown3", ID: 0x012a, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff, default: 60 }, // RW 5,10,15,20,30,60 *testing*
99
+ currentSetpoint: { name: "currentSetpoint", ID: 0x012b, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0xffff }, // W:to ocuppiedHeatSetpoint, R:depends of sinopeOccupancy
98
100
  // attribute ID: 300's readable, returns a buffer
99
- reportLocalTemperature: { ID: 0x012d, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, min: -32768, max: 32767 },
101
+ reportLocalTemperature: { name: "reportLocalTemperature", ID: 0x012d, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, min: -32768, max: 32767 },
100
102
  // attribute ID: 512's readable
101
- flowMeterConfig: { ID: 0x0240, type: zigbee_herdsman_1.Zcl.DataType.ARRAY, write: true },
102
- coldLoadPickupStatus: { ID: 0x0283, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
103
+ flowMeterConfig: { name: "flowMeterConfig", ID: 0x0240, type: zigbee_herdsman_1.Zcl.DataType.ARRAY, write: true },
104
+ coldLoadPickupStatus: { name: "coldLoadPickupStatus", ID: 0x0283, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
105
+ },
106
+ commands: {},
107
+ commandsResponse: {},
108
+ }),
109
+ addSinopeHvacThermostatCluster: () => m.deviceAddCustomCluster("hvacThermostat", {
110
+ name: "hvacThermostat",
111
+ ID: zigbee_herdsman_1.Zcl.Clusters.hvacThermostat.ID,
112
+ attributes: {
113
+ sinopeOccupancy: {
114
+ name: "sinopeOccupancy",
115
+ ID: 0x0400,
116
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
117
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SINOPE_TECHNOLOGIES,
118
+ write: true,
119
+ max: 0xff,
120
+ },
121
+ sinopeMainCycleOutput: {
122
+ name: "sinopeMainCycleOutput",
123
+ ID: 0x0401,
124
+ type: zigbee_herdsman_1.Zcl.DataType.UINT16,
125
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SINOPE_TECHNOLOGIES,
126
+ write: true,
127
+ max: 0xffff,
128
+ },
129
+ sinopeBacklight: {
130
+ name: "sinopeBacklight",
131
+ ID: 0x0402,
132
+ type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
133
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SINOPE_TECHNOLOGIES,
134
+ write: true,
135
+ max: 0xff,
136
+ },
137
+ sinopeAuxCycleOutput: {
138
+ name: "sinopeAuxCycleOutput",
139
+ ID: 0x0404,
140
+ type: zigbee_herdsman_1.Zcl.DataType.UINT16,
141
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SINOPE_TECHNOLOGIES,
142
+ write: true,
143
+ max: 0xffff,
144
+ },
103
145
  },
104
146
  commands: {},
105
147
  commandsResponse: {},
@@ -130,14 +172,14 @@ const fzLocal = {
130
172
  if (msg.data["1024"] !== undefined) {
131
173
  result.thermostat_occupancy = utils.getFromLookup(msg.data["1024"], occupancyLookup);
132
174
  }
133
- if (msg.data.SinopeOccupancy !== undefined) {
134
- result.thermostat_occupancy = utils.getFromLookup(msg.data.SinopeOccupancy, occupancyLookup);
175
+ if (msg.data.sinopeOccupancy !== undefined) {
176
+ result.thermostat_occupancy = utils.getFromLookup(msg.data.sinopeOccupancy, occupancyLookup);
135
177
  }
136
178
  if (msg.data["1025"] !== undefined) {
137
179
  result.main_cycle_output = utils.getFromLookup(msg.data["1025"], cycleOutputLookup);
138
180
  }
139
- if (msg.data.SinopeMainCycleOutput !== undefined) {
140
- result.main_cycle_output = utils.getFromLookup(msg.data.SinopeMainCycleOutput, cycleOutputLookup);
181
+ if (msg.data.sinopeMainCycleOutput !== undefined) {
182
+ result.main_cycle_output = utils.getFromLookup(msg.data.sinopeMainCycleOutput, cycleOutputLookup);
141
183
  }
142
184
  if (msg.data["1026"] !== undefined) {
143
185
  const lookup = utils.getMetaValue(msg.endpoint, model, "sinopeAlternateBacklightAutoDim", "allEqual", false)
@@ -145,17 +187,24 @@ const fzLocal = {
145
187
  : { 0: "on_demand", 1: "sensing", 2: "off" };
146
188
  result.backlight_auto_dim = utils.getFromLookup(msg.data["1026"], lookup);
147
189
  }
148
- if (msg.data.SinopeBacklight !== undefined) {
190
+ if (msg.data.sinopeBacklight !== undefined) {
149
191
  const lookup = utils.getMetaValue(msg.endpoint, model, "sinopeAlternateBacklightAutoDim", "allEqual", false)
150
192
  ? { 0: "on_demand", 1: "off", 2: "sensing" }
151
193
  : { 0: "on_demand", 1: "sensing", 2: "off" };
152
- result.backlight_auto_dim = utils.getFromLookup(msg.data.SinopeBacklight, lookup);
194
+ result.backlight_auto_dim = utils.getFromLookup(msg.data.sinopeBacklight, lookup);
153
195
  }
154
196
  if (msg.data["1028"] !== undefined) {
155
197
  result.aux_cycle_output = utils.getFromLookup(msg.data["1028"], cycleOutputLookup);
156
198
  }
157
199
  if (msg.data.localTemp !== undefined) {
158
200
  result.local_temperature = (0, utils_1.precisionRound)(msg.data.localTemp, 2) / 100;
201
+ if (model.model === "TH1300ZB") {
202
+ // floorTemperature and roomTemperature do not support configureReporting;
203
+ // piggyback on local_temperature reports to keep values in sync.
204
+ msg.endpoint
205
+ .read("manuSpecificSinope", ["floorTemperature", "roomTemperature"], manuSinope)
206
+ .catch((e) => logger_1.logger.debug(`TH1300ZB: failed to read floor/room temperature: ${e}`, "sinope"));
207
+ }
159
208
  }
160
209
  if (msg.data.localTemperatureCalibration !== undefined) {
161
210
  result.local_temperature_calibration = (0, utils_1.precisionRound)(msg.data.localTemperatureCalibration, 2) / 10;
@@ -176,10 +225,10 @@ const fzLocal = {
176
225
  result.unoccupied_cooling_setpoint = (0, utils_1.precisionRound)(msg.data.unoccupiedCoolingSetpoint, 2) / 100;
177
226
  }
178
227
  if (msg.data.ctrlSeqeOfOper !== undefined) {
179
- result.control_sequence_of_operation = constants.thermostatControlSequenceOfOperations[msg.data.ctrlSeqeOfOper];
228
+ result.control_sequence_of_operation = utils.getFromLookup(msg.data.ctrlSeqeOfOper, constants.thermostatControlSequenceOfOperations);
180
229
  }
181
230
  if (msg.data.systemMode !== undefined) {
182
- result.system_mode = constants.thermostatSystemModes[msg.data.systemMode];
231
+ result.system_mode = utils.getFromLookup(msg.data.systemMode, constants.thermostatSystemModes);
183
232
  }
184
233
  if (msg.data.pIHeatingDemand !== undefined) {
185
234
  result.pi_heating_demand = (0, utils_1.precisionRound)(msg.data.pIHeatingDemand, 0);
@@ -287,6 +336,12 @@ const fzLocal = {
287
336
  const lookup = { 0: "10k", 1: "12k" };
288
337
  result.floor_temperature_sensor = utils.getFromLookup(msg.data.temperatureSensor, lookup);
289
338
  }
339
+ if (msg.data.floorTemperature !== undefined) {
340
+ result.floor_temperature = (0, utils_1.precisionRound)(msg.data.floorTemperature, 2) / 100;
341
+ }
342
+ if (msg.data.roomTemperature !== undefined) {
343
+ result.room_temperature = (0, utils_1.precisionRound)(msg.data.roomTemperature, 2) / 100;
344
+ }
290
345
  if (msg.data.timeFormatToDisplay !== undefined) {
291
346
  const lookup = { 0: "24h", 1: "12h" };
292
347
  result.time_format = utils.getFromLookup(msg.data.timeFormatToDisplay, lookup);
@@ -346,13 +401,13 @@ const tzLocal = {
346
401
  thermostat_occupancy: {
347
402
  key: ["thermostat_occupancy"],
348
403
  convertSet: async (entity, key, value, meta) => {
349
- const sinopeOccupancy = { 0: "unoccupied", 1: "occupied" };
350
- const SinopeOccupancy = utils.getKey(sinopeOccupancy, value, value, Number);
351
- await entity.write("hvacThermostat", { SinopeOccupancy }, manuSinope);
404
+ const lookup = { 0: "unoccupied", 1: "occupied" };
405
+ const sinopeOccupancy = utils.getKey(lookup, value, value, Number);
406
+ await entity.write("hvacThermostat", { sinopeOccupancy }, manuSinope);
352
407
  return { state: { thermostat_occupancy: value } };
353
408
  },
354
409
  convertGet: async (entity, key, meta) => {
355
- await entity.read("hvacThermostat", ["SinopeOccupancy"], manuSinope);
410
+ await entity.read("hvacThermostat", ["sinopeOccupancy"], manuSinope);
356
411
  },
357
412
  },
358
413
  backlight_autodim: {
@@ -361,23 +416,23 @@ const tzLocal = {
361
416
  const sinopeBacklightParam = utils.getMetaValue(entity, meta.mapped, "sinopeAlternateBacklightAutoDim", "allEqual", false)
362
417
  ? { 0: "on_demand", 1: "off", 2: "sensing" }
363
418
  : { 0: "on_demand", 1: "sensing", 2: "off" };
364
- const SinopeBacklight = utils.getKey(sinopeBacklightParam, value, value, Number);
365
- await entity.write("hvacThermostat", { SinopeBacklight }, manuSinope);
419
+ const sinopeBacklight = utils.getKey(sinopeBacklightParam, value, value, Number);
420
+ await entity.write("hvacThermostat", { sinopeBacklight }, manuSinope);
366
421
  return { state: { backlight_auto_dim: value } };
367
422
  },
368
423
  convertGet: async (entity, key, meta) => {
369
- await entity.read("hvacThermostat", ["SinopeBacklight"], manuSinope);
424
+ await entity.read("hvacThermostat", ["sinopeBacklight"], manuSinope);
370
425
  },
371
426
  },
372
427
  main_cycle_output: {
373
428
  key: ["main_cycle_output"],
374
429
  convertSet: async (entity, key, value, meta) => {
375
430
  const lookup = { "15_sec": 15, "5_min": 300, "10_min": 600, "15_min": 900, "20_min": 1200, "30_min": 1800 };
376
- await entity.write("hvacThermostat", { SinopeMainCycleOutput: utils.getFromLookup(value, lookup) }, manuSinope);
431
+ await entity.write("hvacThermostat", { sinopeMainCycleOutput: utils.getFromLookup(value, lookup) }, manuSinope);
377
432
  return { state: { main_cycle_output: value } };
378
433
  },
379
434
  convertGet: async (entity, key, meta) => {
380
- await entity.read("hvacThermostat", ["SinopeMainCycleOutput"], manuSinope);
435
+ await entity.read("hvacThermostat", ["sinopeMainCycleOutput"], manuSinope);
381
436
  },
382
437
  },
383
438
  aux_cycle_output: {
@@ -385,11 +440,11 @@ const tzLocal = {
385
440
  key: ["aux_cycle_output"],
386
441
  convertSet: async (entity, key, value, meta) => {
387
442
  const lookup = { off: 65535, "15_sec": 15, "5_min": 300, "10_min": 600, "15_min": 900, "20_min": 1200, "30_min": 1800 };
388
- await entity.write("hvacThermostat", { SinopeAuxCycleOutput: utils.getFromLookup(value, lookup) });
443
+ await entity.write("hvacThermostat", { sinopeAuxCycleOutput: utils.getFromLookup(value, lookup) });
389
444
  return { state: { aux_cycle_output: value } };
390
445
  },
391
446
  convertGet: async (entity, key, meta) => {
392
- await entity.read("hvacThermostat", ["SinopeAuxCycleOutput"]);
447
+ await entity.read("hvacThermostat", ["sinopeAuxCycleOutput"]);
393
448
  },
394
449
  },
395
450
  enable_outdoor_temperature: {
@@ -414,7 +469,9 @@ const tzLocal = {
414
469
  key: ["second_display_mode"],
415
470
  convertSet: async (entity, key, value, meta) => {
416
471
  const lookup = { auto: 0, setpoint: 1, "outdoor temp": 2 };
417
- await entity.write("manuSpecificSinope", { secondScreenBehavior: utils.getFromLookup(value, lookup) });
472
+ await entity.write("manuSpecificSinope", {
473
+ secondScreenBehavior: utils.getFromLookup(value, lookup),
474
+ });
418
475
  return { state: { second_display_mode: value } };
419
476
  },
420
477
  convertGet: async (entity, key, meta) => {
@@ -473,7 +530,9 @@ const tzLocal = {
473
530
  value = value.toLowerCase();
474
531
  // @ts-expect-error ignore
475
532
  if (lookup[value] !== undefined) {
476
- await entity.write("manuSpecificSinope", { floorControlMode: utils.getFromLookup(value, lookup) });
533
+ await entity.write("manuSpecificSinope", {
534
+ floorControlMode: utils.getFromLookup(value, lookup),
535
+ });
477
536
  }
478
537
  return { state: { floor_control_mode: value } };
479
538
  },
@@ -487,8 +546,9 @@ const tzLocal = {
487
546
  convertSet: async (entity, key, value, meta) => {
488
547
  // @ts-expect-error ignore
489
548
  if ((value >= 5 && value <= 36) || value === "off") {
490
- // @ts-expect-error ignore
491
- await entity.write("manuSpecificSinope", { ambiantMaxHeatSetpointLimit: value === "off" ? -32768 : value * 100 });
549
+ await entity.write("manuSpecificSinope", {
550
+ ambiantMaxHeatSetpointLimit: value === "off" ? -32768 : value * 100,
551
+ });
492
552
  return { state: { ambiant_max_heat_setpoint: value } };
493
553
  }
494
554
  },
@@ -502,8 +562,9 @@ const tzLocal = {
502
562
  convertSet: async (entity, key, value, meta) => {
503
563
  // @ts-expect-error ignore
504
564
  if ((value >= 5 && value <= 34) || value === "off") {
505
- // @ts-expect-error ignore
506
- await entity.write("manuSpecificSinope", { floorMinHeatSetpointLimit: value === "off" ? -32768 : value * 100 });
565
+ await entity.write("manuSpecificSinope", {
566
+ floorMinHeatSetpointLimit: value === "off" ? -32768 : value * 100,
567
+ });
507
568
  return { state: { floor_min_heat_setpoint: value } };
508
569
  }
509
570
  },
@@ -517,8 +578,9 @@ const tzLocal = {
517
578
  convertSet: async (entity, key, value, meta) => {
518
579
  // @ts-expect-error ignore
519
580
  if ((value >= 7 && value <= 36) || value === "off") {
520
- // @ts-expect-error ignore
521
- await entity.write("manuSpecificSinope", { floorMaxHeatSetpointLimit: value === "off" ? -32768 : value * 100 });
581
+ await entity.write("manuSpecificSinope", {
582
+ floorMaxHeatSetpointLimit: value === "off" ? -32768 : value * 100,
583
+ });
522
584
  return { state: { floor_max_heat_setpoint: value } };
523
585
  }
524
586
  },
@@ -537,7 +599,9 @@ const tzLocal = {
537
599
  value = value.toLowerCase();
538
600
  // @ts-expect-error ignore
539
601
  if (lookup[value] !== undefined) {
540
- await entity.write("manuSpecificSinope", { temperatureSensor: utils.getFromLookup(value, lookup) });
602
+ await entity.write("manuSpecificSinope", {
603
+ temperatureSensor: utils.getFromLookup(value, lookup),
604
+ });
541
605
  }
542
606
  return { state: { floor_temperature_sensor: value } };
543
607
  },
@@ -812,7 +876,7 @@ exports.definitions = [
812
876
  model: "TH1123ZB",
813
877
  vendor: "Sinopé",
814
878
  description: "Zigbee line volt thermostat",
815
- extend: [sinopeExtend.addManuSpecificSinopeCluster(), m.electricityMeter()],
879
+ extend: [sinopeExtend.addManuSpecificSinopeCluster(), sinopeExtend.addSinopeHvacThermostatCluster(), m.electricityMeter()],
816
880
  fromZigbee: [fzLocal.thermostat, fzLocal.sinope, fz.hvac_user_interface, fz.ignore_temperature_report],
817
881
  toZigbee: [
818
882
  tz.thermostat_local_temperature,
@@ -918,7 +982,7 @@ exports.definitions = [
918
982
  model: "TH1124ZB",
919
983
  vendor: "Sinopé",
920
984
  description: "Zigbee line volt thermostat",
921
- extend: [sinopeExtend.addManuSpecificSinopeCluster(), m.electricityMeter()],
985
+ extend: [sinopeExtend.addManuSpecificSinopeCluster(), sinopeExtend.addSinopeHvacThermostatCluster(), m.electricityMeter()],
922
986
  fromZigbee: [fzLocal.thermostat, fzLocal.sinope, fz.hvac_user_interface, fz.ignore_temperature_report],
923
987
  toZigbee: [
924
988
  tz.thermostat_local_temperature,
@@ -1024,7 +1088,11 @@ exports.definitions = [
1024
1088
  model: "TH1123ZB-G2",
1025
1089
  vendor: "Sinopé",
1026
1090
  description: "Zigbee line volt thermostat",
1027
- extend: [sinopeExtend.addManuSpecificSinopeCluster(), m.electricityMeter({ energy: { divisor: 1000, multiplier: 1 } })],
1091
+ extend: [
1092
+ sinopeExtend.addManuSpecificSinopeCluster(),
1093
+ sinopeExtend.addSinopeHvacThermostatCluster(),
1094
+ m.electricityMeter({ energy: { divisor: 1000, multiplier: 1 } }),
1095
+ ],
1028
1096
  meta: { sinopeAlternateBacklightAutoDim: true },
1029
1097
  fromZigbee: [fzLocal.thermostat, fzLocal.sinope, fz.hvac_user_interface, fz.ignore_temperature_report],
1030
1098
  toZigbee: [
@@ -1150,7 +1218,11 @@ exports.definitions = [
1150
1218
  model: "TH1124ZB-G2",
1151
1219
  vendor: "Sinopé",
1152
1220
  description: "Zigbee line volt thermostat",
1153
- extend: [sinopeExtend.addManuSpecificSinopeCluster(), m.electricityMeter({ energy: { divisor: 1000, multiplier: 1 } })],
1221
+ extend: [
1222
+ sinopeExtend.addManuSpecificSinopeCluster(),
1223
+ sinopeExtend.addSinopeHvacThermostatCluster(),
1224
+ m.electricityMeter({ energy: { divisor: 1000, multiplier: 1 } }),
1225
+ ],
1154
1226
  meta: { sinopeAlternateBacklightAutoDim: true },
1155
1227
  fromZigbee: [fzLocal.thermostat, fzLocal.sinope, fz.hvac_user_interface, fz.ignore_temperature_report],
1156
1228
  toZigbee: [
@@ -1279,7 +1351,7 @@ exports.definitions = [
1279
1351
  whiteLabel: [
1280
1352
  { model: "TH1320ZB-04", vendor: "Sinopé", description: "Zigbee smart floor heating thermostat", fingerprint: [{ modelID: "TH1320ZB-04" }] },
1281
1353
  ],
1282
- extend: [sinopeExtend.addManuSpecificSinopeCluster(), m.electricityMeter()],
1354
+ extend: [sinopeExtend.addManuSpecificSinopeCluster(), sinopeExtend.addSinopeHvacThermostatCluster(), m.electricityMeter()],
1283
1355
  fromZigbee: [fzLocal.thermostat, fzLocal.sinope, fz.hvac_user_interface, fz.ignore_temperature_report],
1284
1356
  toZigbee: [
1285
1357
  tz.thermostat_local_temperature,
@@ -1341,6 +1413,8 @@ exports.definitions = [
1341
1413
  e.enum("time_format", ea.ALL, ["24h", "12h"]).withDescription("The time format featured on the thermostat display"),
1342
1414
  e.enum("backlight_auto_dim", ea.ALL, ["on_demand", "sensing"]).withDescription("Control backlight dimming behavior"),
1343
1415
  e.enum("keypad_lockout", ea.ALL, ["unlock", "lock1"]).withDescription("Enables or disables the device’s buttons"),
1416
+ e.numeric("floor_temperature", ea.STATE).withUnit("°C").withDescription("Floor temperature (read-only, poll on demand)"),
1417
+ e.numeric("room_temperature", ea.STATE).withUnit("°C").withDescription("Room temperature (read-only, poll on demand)"),
1344
1418
  ],
1345
1419
  configure: async (device, coordinatorEndpoint) => {
1346
1420
  const endpoint = device.getEndpoint(1);
@@ -1370,6 +1444,12 @@ exports.definitions = [
1370
1444
  { attribute: "floorLimitStatus", minimumReportInterval: 1, maximumReportInterval: constants.repInterval.HOUR, reportableChange: 1 },
1371
1445
  ]);
1372
1446
  await reporting.temperature(endpoint, { min: 1, max: 0xffff }); // disable reporting
1447
+ // floorTemperature (0x0107) and roomTemperature (0x010D) do not support configureReporting
1448
+ // (device returns UNREPORTABLE_ATTRIBUTE). Perform an initial read on pairing; ongoing sync
1449
+ // is handled by piggybacking on local_temperature reports in fzLocal.thermostat.
1450
+ await endpoint.read("manuSpecificSinope", ["floorTemperature", "roomTemperature"], {
1451
+ manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SINOPE_TECHNOLOGIES,
1452
+ });
1373
1453
  },
1374
1454
  },
1375
1455
  {
@@ -1377,7 +1457,7 @@ exports.definitions = [
1377
1457
  model: "TH1400ZB",
1378
1458
  vendor: "Sinopé",
1379
1459
  description: "Zigbee low volt thermostat",
1380
- extend: [sinopeExtend.addManuSpecificSinopeCluster()],
1460
+ extend: [sinopeExtend.addManuSpecificSinopeCluster(), sinopeExtend.addSinopeHvacThermostatCluster()],
1381
1461
  fromZigbee: [
1382
1462
  fzLocal.thermostat,
1383
1463
  fzLocal.sinope,
@@ -1527,11 +1607,11 @@ exports.definitions = [
1527
1607
  "localTemp",
1528
1608
  "systemMode",
1529
1609
  "pIHeatingDemand",
1530
- "SinopeBacklight",
1610
+ "sinopeBacklight",
1531
1611
  "maxHeatSetpointLimit",
1532
1612
  "minHeatSetpointLimit",
1533
- "SinopeMainCycleOutput",
1534
- "SinopeAuxCycleOutput",
1613
+ "sinopeMainCycleOutput",
1614
+ "sinopeAuxCycleOutput",
1535
1615
  ]);
1536
1616
  await endpoint.read("hvacUserInterfaceCfg", ["keypadLockout", "tempDisplayMode"]);
1537
1617
  await endpoint.read("manuSpecificSinope", [
@@ -1554,7 +1634,7 @@ exports.definitions = [
1554
1634
  model: "TH1500ZB",
1555
1635
  vendor: "Sinopé",
1556
1636
  description: "Zigbee dual pole line volt thermostat",
1557
- extend: [sinopeExtend.addManuSpecificSinopeCluster()],
1637
+ extend: [sinopeExtend.addManuSpecificSinopeCluster(), sinopeExtend.addSinopeHvacThermostatCluster()],
1558
1638
  fromZigbee: [
1559
1639
  fzLocal.thermostat,
1560
1640
  fzLocal.sinope,