zigbee-herdsman-converters 21.8.0 → 21.9.1

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 (714) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/converters/fromZigbee.d.ts.map +1 -1
  3. package/converters/fromZigbee.js.map +1 -1
  4. package/converters/toZigbee.d.ts.map +1 -1
  5. package/converters/toZigbee.js.map +1 -1
  6. package/devices/ITCommander.d.ts.map +1 -1
  7. package/devices/ITCommander.js.map +1 -1
  8. package/devices/acova.d.ts.map +1 -1
  9. package/devices/acova.js.map +1 -1
  10. package/devices/acuity_brands_lighting.d.ts.map +1 -1
  11. package/devices/acuity_brands_lighting.js.map +1 -1
  12. package/devices/adeo.d.ts.map +1 -1
  13. package/devices/adeo.js.map +1 -1
  14. package/devices/adurosmart.d.ts.map +1 -1
  15. package/devices/adurosmart.js.map +1 -1
  16. package/devices/aeotec.d.ts.map +1 -1
  17. package/devices/aeotec.js.map +1 -1
  18. package/devices/airam.d.ts.map +1 -1
  19. package/devices/airam.js.map +1 -1
  20. package/devices/airzone_aidoo.d.ts.map +1 -1
  21. package/devices/airzone_aidoo.js.map +1 -1
  22. package/devices/ajax_online.d.ts.map +1 -1
  23. package/devices/ajax_online.js.map +1 -1
  24. package/devices/akuvox.d.ts.map +1 -1
  25. package/devices/akuvox.js.map +1 -1
  26. package/devices/alchemy.d.ts.map +1 -1
  27. package/devices/alchemy.js.map +1 -1
  28. package/devices/aldi.d.ts.map +1 -1
  29. package/devices/aldi.js.map +1 -1
  30. package/devices/alecto.d.ts.map +1 -1
  31. package/devices/alecto.js.map +1 -1
  32. package/devices/amina.d.ts.map +1 -1
  33. package/devices/amina.js.map +1 -1
  34. package/devices/anchor.d.ts.map +1 -1
  35. package/devices/anchor.js.map +1 -1
  36. package/devices/atlantic.d.ts.map +1 -1
  37. package/devices/atlantic.js.map +1 -1
  38. package/devices/atsmart.d.ts.map +1 -1
  39. package/devices/atsmart.js.map +1 -1
  40. package/devices/aubess.d.ts.map +1 -1
  41. package/devices/aubess.js.map +1 -1
  42. package/devices/aurora_lighting.d.ts.map +1 -1
  43. package/devices/aurora_lighting.js.map +1 -1
  44. package/devices/automaton.d.ts.map +1 -1
  45. package/devices/automaton.js.map +1 -1
  46. package/devices/avatto.d.ts.map +1 -1
  47. package/devices/avatto.js.map +1 -1
  48. package/devices/awox.d.ts.map +1 -1
  49. package/devices/awox.js.map +1 -1
  50. package/devices/axis.d.ts.map +1 -1
  51. package/devices/axis.js.map +1 -1
  52. package/devices/bankamp.d.ts.map +1 -1
  53. package/devices/bankamp.js.map +1 -1
  54. package/devices/bega.d.ts.map +1 -1
  55. package/devices/bega.js.map +1 -1
  56. package/devices/belkin.d.ts.map +1 -1
  57. package/devices/belkin.js.map +1 -1
  58. package/devices/bitron.d.ts.map +1 -1
  59. package/devices/bitron.js.map +1 -1
  60. package/devices/bituo_technik.d.ts.map +1 -1
  61. package/devices/bituo_technik.js.map +1 -1
  62. package/devices/blaupunkt.d.ts.map +1 -1
  63. package/devices/blaupunkt.js.map +1 -1
  64. package/devices/blitzwolf.d.ts.map +1 -1
  65. package/devices/blitzwolf.js.map +1 -1
  66. package/devices/bosch.d.ts.map +1 -1
  67. package/devices/bosch.js.map +1 -1
  68. package/devices/bouffalo_lab.d.ts.map +1 -1
  69. package/devices/bouffalo_lab.js.map +1 -1
  70. package/devices/brimate.d.ts.map +1 -1
  71. package/devices/brimate.js.map +1 -1
  72. package/devices/bseed.d.ts.map +1 -1
  73. package/devices/bseed.js.map +1 -1
  74. package/devices/bticino.d.ts.map +1 -1
  75. package/devices/bticino.js.map +1 -1
  76. package/devices/busch_jaeger.d.ts.map +1 -1
  77. package/devices/busch_jaeger.js.map +1 -1
  78. package/devices/byun.d.ts.map +1 -1
  79. package/devices/byun.js.map +1 -1
  80. package/devices/calex.d.ts.map +1 -1
  81. package/devices/calex.js.map +1 -1
  82. package/devices/candeo.d.ts.map +1 -1
  83. package/devices/candeo.js.map +1 -1
  84. package/devices/casaia.d.ts.map +1 -1
  85. package/devices/casaia.js.map +1 -1
  86. package/devices/cel.d.ts.map +1 -1
  87. package/devices/cel.js.map +1 -1
  88. package/devices/centralite.d.ts.map +1 -1
  89. package/devices/centralite.js.map +1 -1
  90. package/devices/chacon.d.ts.map +1 -1
  91. package/devices/chacon.js.map +1 -1
  92. package/devices/cleode.d.ts.map +1 -1
  93. package/devices/cleode.js.map +1 -1
  94. package/devices/cleverio.d.ts.map +1 -1
  95. package/devices/cleverio.js.map +1 -1
  96. package/devices/climax.d.ts.map +1 -1
  97. package/devices/climax.js.map +1 -1
  98. package/devices/commercial_electric.d.ts.map +1 -1
  99. package/devices/commercial_electric.js.map +1 -1
  100. package/devices/cree.d.ts.map +1 -1
  101. package/devices/cree.js.map +1 -1
  102. package/devices/ctm.d.ts.map +1 -1
  103. package/devices/ctm.js.map +1 -1
  104. package/devices/current_products_corp.d.ts.map +1 -1
  105. package/devices/current_products_corp.js.map +1 -1
  106. package/devices/custom_devices_diy.d.ts.map +1 -1
  107. package/devices/custom_devices_diy.js.map +1 -1
  108. package/devices/cy_lighting.d.ts.map +1 -1
  109. package/devices/cy_lighting.js.map +1 -1
  110. package/devices/danalock.d.ts.map +1 -1
  111. package/devices/danalock.js.map +1 -1
  112. package/devices/danfoss.d.ts.map +1 -1
  113. package/devices/danfoss.js.map +1 -1
  114. package/devices/databyte.d.ts.map +1 -1
  115. package/devices/databyte.js.map +1 -1
  116. package/devices/datek.d.ts.map +1 -1
  117. package/devices/datek.js.map +1 -1
  118. package/devices/dawon_dns.d.ts.map +1 -1
  119. package/devices/dawon_dns.js.map +1 -1
  120. package/devices/develco.d.ts.map +1 -1
  121. package/devices/develco.js.map +1 -1
  122. package/devices/digi.d.ts.map +1 -1
  123. package/devices/digi.js.map +1 -1
  124. package/devices/diyruz.d.ts.map +1 -1
  125. package/devices/diyruz.js.map +1 -1
  126. package/devices/dlink.d.ts.map +1 -1
  127. package/devices/dlink.js.map +1 -1
  128. package/devices/dnake.d.ts.map +1 -1
  129. package/devices/dnake.js.map +1 -1
  130. package/devices/dowsing_reynolds.d.ts.map +1 -1
  131. package/devices/dowsing_reynolds.js.map +1 -1
  132. package/devices/dresden_elektronik.d.ts.map +1 -1
  133. package/devices/dresden_elektronik.js.map +1 -1
  134. package/devices/easyaccess.d.ts.map +1 -1
  135. package/devices/easyaccess.js.map +1 -1
  136. package/devices/easyiot.d.ts.map +1 -1
  137. package/devices/easyiot.js.map +1 -1
  138. package/devices/eatonhalo_led.d.ts.map +1 -1
  139. package/devices/eatonhalo_led.js.map +1 -1
  140. package/devices/echostar.d.ts.map +1 -1
  141. package/devices/echostar.js.map +1 -1
  142. package/devices/ecodim.d.ts.map +1 -1
  143. package/devices/ecodim.js.map +1 -1
  144. package/devices/ecolink.d.ts.map +1 -1
  145. package/devices/ecolink.js.map +1 -1
  146. package/devices/ecosmart.d.ts.map +1 -1
  147. package/devices/ecosmart.js.map +1 -1
  148. package/devices/ecozy.d.ts.map +1 -1
  149. package/devices/ecozy.js.map +1 -1
  150. package/devices/edp.d.ts.map +1 -1
  151. package/devices/edp.js.map +1 -1
  152. package/devices/efekta.d.ts.map +1 -1
  153. package/devices/efekta.js.map +1 -1
  154. package/devices/eglo.d.ts.map +1 -1
  155. package/devices/eglo.js.map +1 -1
  156. package/devices/elko.d.ts.map +1 -1
  157. package/devices/elko.js.map +1 -1
  158. package/devices/enbrighten.d.ts.map +1 -1
  159. package/devices/enbrighten.js.map +1 -1
  160. package/devices/enocean.d.ts.map +1 -1
  161. package/devices/enocean.js.map +1 -1
  162. package/devices/envilar.d.ts.map +1 -1
  163. package/devices/envilar.js.map +1 -1
  164. package/devices/essentialb.d.ts.map +1 -1
  165. package/devices/essentialb.js.map +1 -1
  166. package/devices/essentials.d.ts +4 -0
  167. package/devices/essentials.d.ts.map +1 -0
  168. package/devices/essentials.js +151 -0
  169. package/devices/essentials.js.map +1 -0
  170. package/devices/eucontrols.d.ts.map +1 -1
  171. package/devices/eucontrols.js.map +1 -1
  172. package/devices/eurotronic.d.ts.map +1 -1
  173. package/devices/eurotronic.js.map +1 -1
  174. package/devices/evanell.d.ts.map +1 -1
  175. package/devices/evanell.js.map +1 -1
  176. package/devices/evn.d.ts.map +1 -1
  177. package/devices/evn.js.map +1 -1
  178. package/devices/evology.d.ts.map +1 -1
  179. package/devices/evology.js.map +1 -1
  180. package/devices/evvr.d.ts.map +1 -1
  181. package/devices/evvr.js.map +1 -1
  182. package/devices/ewelink.d.ts.map +1 -1
  183. package/devices/ewelink.js +138 -0
  184. package/devices/ewelink.js.map +1 -1
  185. package/devices/ezex.d.ts.map +1 -1
  186. package/devices/ezex.js.map +1 -1
  187. package/devices/fantem.d.ts.map +1 -1
  188. package/devices/fantem.js.map +1 -1
  189. package/devices/feibit.d.ts.map +1 -1
  190. package/devices/feibit.js.map +1 -1
  191. package/devices/fireangel.d.ts.map +1 -1
  192. package/devices/fireangel.js.map +1 -1
  193. package/devices/frankever.d.ts.map +1 -1
  194. package/devices/frankever.js.map +1 -1
  195. package/devices/frient.d.ts.map +1 -1
  196. package/devices/frient.js.map +1 -1
  197. package/devices/futurehome.d.ts.map +1 -1
  198. package/devices/futurehome.js.map +1 -1
  199. package/devices/ge.d.ts.map +1 -1
  200. package/devices/ge.js.map +1 -1
  201. package/devices/gewiss.d.ts.map +1 -1
  202. package/devices/gewiss.js.map +1 -1
  203. package/devices/gidealed.d.ts.map +1 -1
  204. package/devices/gidealed.js.map +1 -1
  205. package/devices/giderwel.d.ts.map +1 -1
  206. package/devices/giderwel.js.map +1 -1
  207. package/devices/giex.d.ts.map +1 -1
  208. package/devices/giex.js.map +1 -1
  209. package/devices/girier.d.ts.map +1 -1
  210. package/devices/girier.js.map +1 -1
  211. package/devices/gledopto.d.ts.map +1 -1
  212. package/devices/gledopto.js.map +1 -1
  213. package/devices/gmmts.d.ts.map +1 -1
  214. package/devices/gmmts.js.map +1 -1
  215. package/devices/gmy.d.ts.map +1 -1
  216. package/devices/gmy.js.map +1 -1
  217. package/devices/gs.d.ts.map +1 -1
  218. package/devices/gs.js.map +1 -1
  219. package/devices/gumax.d.ts.map +1 -1
  220. package/devices/gumax.js.map +1 -1
  221. package/devices/halemeier.d.ts.map +1 -1
  222. package/devices/halemeier.js.map +1 -1
  223. package/devices/hampton_bay.d.ts.map +1 -1
  224. package/devices/hampton_bay.js.map +1 -1
  225. package/devices/heatit.d.ts.map +1 -1
  226. package/devices/heatit.js.map +1 -1
  227. package/devices/heiman.d.ts.map +1 -1
  228. package/devices/heiman.js.map +1 -1
  229. package/devices/heimgard_technologies.d.ts.map +1 -1
  230. package/devices/heimgard_technologies.js.map +1 -1
  231. package/devices/hej.d.ts.map +1 -1
  232. package/devices/hej.js.map +1 -1
  233. package/devices/hfh.d.ts.map +1 -1
  234. package/devices/hfh.js.map +1 -1
  235. package/devices/hilux.d.ts.map +1 -1
  236. package/devices/hilux.js.map +1 -1
  237. package/devices/hive.d.ts.map +1 -1
  238. package/devices/hive.js.map +1 -1
  239. package/devices/hommyn.d.ts.map +1 -1
  240. package/devices/hommyn.js.map +1 -1
  241. package/devices/honyar.d.ts.map +1 -1
  242. package/devices/honyar.js.map +1 -1
  243. package/devices/hornbach.d.ts.map +1 -1
  244. package/devices/hornbach.js.map +1 -1
  245. package/devices/hzc_electric.d.ts.map +1 -1
  246. package/devices/hzc_electric.js.map +1 -1
  247. package/devices/icasa.d.ts.map +1 -1
  248. package/devices/icasa.js.map +1 -1
  249. package/devices/idinio.d.ts.map +1 -1
  250. package/devices/idinio.js.map +1 -1
  251. package/devices/ihorn.d.ts.map +1 -1
  252. package/devices/ihorn.js.map +1 -1
  253. package/devices/ikea.d.ts.map +1 -1
  254. package/devices/ikea.js.map +1 -1
  255. package/devices/ilightsin.d.ts.map +1 -1
  256. package/devices/ilightsin.js.map +1 -1
  257. package/devices/iluminize.d.ts.map +1 -1
  258. package/devices/iluminize.js.map +1 -1
  259. package/devices/ilux.d.ts.map +1 -1
  260. package/devices/ilux.js.map +1 -1
  261. package/devices/imhotepcreation.d.ts.map +1 -1
  262. package/devices/imhotepcreation.js.map +1 -1
  263. package/devices/immax.d.ts.map +1 -1
  264. package/devices/immax.js.map +1 -1
  265. package/devices/imou.d.ts.map +1 -1
  266. package/devices/imou.js.map +1 -1
  267. package/devices/index.d.ts.map +1 -1
  268. package/devices/index.js +2 -0
  269. package/devices/index.js.map +1 -1
  270. package/devices/innr.d.ts.map +1 -1
  271. package/devices/innr.js.map +1 -1
  272. package/devices/inovelli.d.ts.map +1 -1
  273. package/devices/inovelli.js.map +1 -1
  274. package/devices/insta.d.ts.map +1 -1
  275. package/devices/insta.js.map +1 -1
  276. package/devices/iolloi.d.ts.map +1 -1
  277. package/devices/iolloi.js.map +1 -1
  278. package/devices/iotperfect.d.ts.map +1 -1
  279. package/devices/iotperfect.js.map +1 -1
  280. package/devices/iris.d.ts.map +1 -1
  281. package/devices/iris.js.map +1 -1
  282. package/devices/istar.d.ts.map +1 -1
  283. package/devices/istar.js.map +1 -1
  284. package/devices/jasco.d.ts.map +1 -1
  285. package/devices/jasco.js.map +1 -1
  286. package/devices/javis.d.ts.map +1 -1
  287. package/devices/javis.js.map +1 -1
  288. package/devices/jethome.d.ts.map +1 -1
  289. package/devices/jethome.js.map +1 -1
  290. package/devices/jiawen.d.ts.map +1 -1
  291. package/devices/jiawen.js.map +1 -1
  292. package/devices/jumitech.d.ts.map +1 -1
  293. package/devices/jumitech.js.map +1 -1
  294. package/devices/jxuan.d.ts.map +1 -1
  295. package/devices/jxuan.js.map +1 -1
  296. package/devices/kami.d.ts.map +1 -1
  297. package/devices/kami.js.map +1 -1
  298. package/devices/keen_home.d.ts.map +1 -1
  299. package/devices/keen_home.js.map +1 -1
  300. package/devices/klikaanklikuit.d.ts.map +1 -1
  301. package/devices/klikaanklikuit.js.map +1 -1
  302. package/devices/kmpcil.d.ts.map +1 -1
  303. package/devices/kmpcil.js.map +1 -1
  304. package/devices/konke.d.ts.map +1 -1
  305. package/devices/konke.js.map +1 -1
  306. package/devices/ksentry.d.ts.map +1 -1
  307. package/devices/ksentry.js.map +1 -1
  308. package/devices/kurvia.d.ts.map +1 -1
  309. package/devices/kurvia.js.map +1 -1
  310. package/devices/kwikset.d.ts.map +1 -1
  311. package/devices/kwikset.js.map +1 -1
  312. package/devices/lanesto.d.ts.map +1 -1
  313. package/devices/lanesto.js.map +1 -1
  314. package/devices/lds.d.ts.map +1 -1
  315. package/devices/lds.js.map +1 -1
  316. package/devices/led_trading.d.ts.map +1 -1
  317. package/devices/led_trading.js.map +1 -1
  318. package/devices/ledvance.d.ts.map +1 -1
  319. package/devices/ledvance.js.map +1 -1
  320. package/devices/leedarson.d.ts.map +1 -1
  321. package/devices/leedarson.js.map +1 -1
  322. package/devices/legrand.d.ts.map +1 -1
  323. package/devices/legrand.js.map +1 -1
  324. package/devices/lellki.d.ts.map +1 -1
  325. package/devices/lellki.js.map +1 -1
  326. package/devices/letsled.d.ts.map +1 -1
  327. package/devices/letsled.js.map +1 -1
  328. package/devices/letv.d.ts.map +1 -1
  329. package/devices/letv.js.map +1 -1
  330. package/devices/leviton.d.ts.map +1 -1
  331. package/devices/leviton.js.map +1 -1
  332. package/devices/lg.d.ts.map +1 -1
  333. package/devices/lg.js.map +1 -1
  334. package/devices/lidl.d.ts.map +1 -1
  335. package/devices/lidl.js.map +1 -1
  336. package/devices/lifecontrol.d.ts.map +1 -1
  337. package/devices/lifecontrol.js.map +1 -1
  338. package/devices/lightsolutions.d.ts.map +1 -1
  339. package/devices/lightsolutions.js.map +1 -1
  340. package/devices/linkind.d.ts.map +1 -1
  341. package/devices/linkind.js.map +1 -1
  342. package/devices/linptech.d.ts.map +1 -1
  343. package/devices/linptech.js.map +1 -1
  344. package/devices/livingwise.d.ts.map +1 -1
  345. package/devices/livingwise.js.map +1 -1
  346. package/devices/livolo.d.ts.map +1 -1
  347. package/devices/livolo.js.map +1 -1
  348. package/devices/lixee.d.ts.map +1 -1
  349. package/devices/lixee.js.map +1 -1
  350. package/devices/lonsonho.d.ts.map +1 -1
  351. package/devices/lonsonho.js.map +1 -1
  352. package/devices/ls.d.ts.map +1 -1
  353. package/devices/ls.js.map +1 -1
  354. package/devices/lubeez.d.ts.map +1 -1
  355. package/devices/lubeez.js.map +1 -1
  356. package/devices/lumi.d.ts.map +1 -1
  357. package/devices/lumi.js.map +1 -1
  358. package/devices/lupus.d.ts.map +1 -1
  359. package/devices/lupus.js.map +1 -1
  360. package/devices/lutron.d.ts.map +1 -1
  361. package/devices/lutron.js.map +1 -1
  362. package/devices/lux.d.ts.map +1 -1
  363. package/devices/lux.js.map +1 -1
  364. package/devices/lytko.d.ts.map +1 -1
  365. package/devices/lytko.js.map +1 -1
  366. package/devices/m_elec.d.ts.map +1 -1
  367. package/devices/m_elec.js.map +1 -1
  368. package/devices/makegood.d.ts.map +1 -1
  369. package/devices/makegood.js.map +1 -1
  370. package/devices/matcall_bv.d.ts.map +1 -1
  371. package/devices/matcall_bv.js.map +1 -1
  372. package/devices/mazda.d.ts.map +1 -1
  373. package/devices/mazda.js +43 -11
  374. package/devices/mazda.js.map +1 -1
  375. package/devices/meazon.d.ts.map +1 -1
  376. package/devices/meazon.js.map +1 -1
  377. package/devices/mercator.d.ts.map +1 -1
  378. package/devices/mercator.js.map +1 -1
  379. package/devices/miboxer.d.ts.map +1 -1
  380. package/devices/miboxer.js.map +1 -1
  381. package/devices/micromatic.d.ts.map +1 -1
  382. package/devices/micromatic.js.map +1 -1
  383. package/devices/modular.d.ts.map +1 -1
  384. package/devices/modular.js.map +1 -1
  385. package/devices/moes.d.ts.map +1 -1
  386. package/devices/moes.js.map +1 -1
  387. package/devices/muller_licht.d.ts.map +1 -1
  388. package/devices/muller_licht.js.map +1 -1
  389. package/devices/multiterm.d.ts.map +1 -1
  390. package/devices/multiterm.js.map +1 -1
  391. package/devices/namron.d.ts.map +1 -1
  392. package/devices/namron.js.map +1 -1
  393. package/devices/nanoleaf.d.ts.map +1 -1
  394. package/devices/nanoleaf.js.map +1 -1
  395. package/devices/nedis.d.ts.map +1 -1
  396. package/devices/nedis.js +1 -1
  397. package/devices/nedis.js.map +1 -1
  398. package/devices/neo.d.ts.map +1 -1
  399. package/devices/neo.js.map +1 -1
  400. package/devices/net2grid.d.ts.map +1 -1
  401. package/devices/net2grid.js.map +1 -1
  402. package/devices/netvox.d.ts.map +1 -1
  403. package/devices/netvox.js.map +1 -1
  404. package/devices/nexelec.d.ts.map +1 -1
  405. package/devices/nexelec.js.map +1 -1
  406. package/devices/niko.d.ts.map +1 -1
  407. package/devices/niko.js.map +1 -1
  408. package/devices/ninja_blocks.d.ts.map +1 -1
  409. package/devices/ninja_blocks.js.map +1 -1
  410. package/devices/niviss.d.ts.map +1 -1
  411. package/devices/niviss.js.map +1 -1
  412. package/devices/nodon.d.ts.map +1 -1
  413. package/devices/nodon.js.map +1 -1
  414. package/devices/nordtronic.d.ts.map +1 -1
  415. package/devices/nordtronic.js.map +1 -1
  416. package/devices/nous.d.ts.map +1 -1
  417. package/devices/nous.js.map +1 -1
  418. package/devices/novo.d.ts.map +1 -1
  419. package/devices/novo.js.map +1 -1
  420. package/devices/nue_3a.d.ts.map +1 -1
  421. package/devices/nue_3a.js.map +1 -1
  422. package/devices/nyce.d.ts.map +1 -1
  423. package/devices/nyce.js.map +1 -1
  424. package/devices/onenuo.d.ts.map +1 -1
  425. package/devices/onenuo.js.map +1 -1
  426. package/devices/onesti.d.ts.map +1 -1
  427. package/devices/onesti.js.map +1 -1
  428. package/devices/openlumi.d.ts.map +1 -1
  429. package/devices/openlumi.js.map +1 -1
  430. package/devices/orvibo.d.ts.map +1 -1
  431. package/devices/orvibo.js.map +1 -1
  432. package/devices/osram.d.ts.map +1 -1
  433. package/devices/osram.js.map +1 -1
  434. package/devices/oujiabao.d.ts.map +1 -1
  435. package/devices/oujiabao.js.map +1 -1
  436. package/devices/owon.d.ts.map +1 -1
  437. package/devices/owon.js.map +1 -1
  438. package/devices/ozsmartthings.d.ts.map +1 -1
  439. package/devices/ozsmartthings.js.map +1 -1
  440. package/devices/paul_neuhaus.d.ts.map +1 -1
  441. package/devices/paul_neuhaus.js.map +1 -1
  442. package/devices/paulmann.d.ts.map +1 -1
  443. package/devices/paulmann.js.map +1 -1
  444. package/devices/peq.d.ts.map +1 -1
  445. package/devices/peq.js.map +1 -1
  446. package/devices/perenio.d.ts.map +1 -1
  447. package/devices/perenio.js.map +1 -1
  448. package/devices/philio.d.ts.map +1 -1
  449. package/devices/philio.js.map +1 -1
  450. package/devices/philips.d.ts.map +1 -1
  451. package/devices/philips.js +14 -0
  452. package/devices/philips.js.map +1 -1
  453. package/devices/plaid.d.ts.map +1 -1
  454. package/devices/plaid.js.map +1 -1
  455. package/devices/plugwise.d.ts.map +1 -1
  456. package/devices/plugwise.js.map +1 -1
  457. package/devices/profalux.d.ts.map +1 -1
  458. package/devices/profalux.js.map +1 -1
  459. package/devices/prolight.d.ts.map +1 -1
  460. package/devices/prolight.js.map +1 -1
  461. package/devices/pushok.d.ts.map +1 -1
  462. package/devices/pushok.js.map +1 -1
  463. package/devices/qa.d.ts.map +1 -1
  464. package/devices/qa.js.map +1 -1
  465. package/devices/qmotion.d.ts.map +1 -1
  466. package/devices/qmotion.js.map +1 -1
  467. package/devices/qoto.d.ts.map +1 -1
  468. package/devices/qoto.js.map +1 -1
  469. package/devices/quotra.d.ts.map +1 -1
  470. package/devices/quotra.js.map +1 -1
  471. package/devices/rademacher.d.ts.map +1 -1
  472. package/devices/rademacher.js.map +1 -1
  473. package/devices/radium.d.ts.map +1 -1
  474. package/devices/radium.js.map +1 -1
  475. package/devices/raex.d.ts.map +1 -1
  476. package/devices/raex.js.map +1 -1
  477. package/devices/rgb_genie.d.ts.map +1 -1
  478. package/devices/rgb_genie.js.map +1 -1
  479. package/devices/robb.d.ts.map +1 -1
  480. package/devices/robb.js.map +1 -1
  481. package/devices/roome.d.ts.map +1 -1
  482. package/devices/roome.js.map +1 -1
  483. package/devices/rtx.d.ts.map +1 -1
  484. package/devices/rtx.js.map +1 -1
  485. package/devices/salus_controls.d.ts.map +1 -1
  486. package/devices/salus_controls.js.map +1 -1
  487. package/devices/samotech.d.ts.map +1 -1
  488. package/devices/samotech.js.map +1 -1
  489. package/devices/saswell.d.ts.map +1 -1
  490. package/devices/saswell.js.map +1 -1
  491. package/devices/sber.d.ts.map +1 -1
  492. package/devices/sber.js.map +1 -1
  493. package/devices/scanproducts.d.ts.map +1 -1
  494. package/devices/scanproducts.js.map +1 -1
  495. package/devices/schlage.d.ts.map +1 -1
  496. package/devices/schlage.js.map +1 -1
  497. package/devices/schneider_electric.d.ts.map +1 -1
  498. package/devices/schneider_electric.js.map +1 -1
  499. package/devices/schwaiger.d.ts.map +1 -1
  500. package/devices/schwaiger.js.map +1 -1
  501. package/devices/seastar_intelligence.d.ts.map +1 -1
  502. package/devices/seastar_intelligence.js.map +1 -1
  503. package/devices/securifi.d.ts.map +1 -1
  504. package/devices/securifi.js.map +1 -1
  505. package/devices/sengled.d.ts.map +1 -1
  506. package/devices/sengled.js.map +1 -1
  507. package/devices/sercomm.d.ts.map +1 -1
  508. package/devices/sercomm.js.map +1 -1
  509. package/devices/shade_control.d.ts.map +1 -1
  510. package/devices/shade_control.js.map +1 -1
  511. package/devices/shenzhen_homa.d.ts.map +1 -1
  512. package/devices/shenzhen_homa.js.map +1 -1
  513. package/devices/shinasystem.d.ts.map +1 -1
  514. package/devices/shinasystem.js.map +1 -1
  515. package/devices/shyugj.d.ts.map +1 -1
  516. package/devices/shyugj.js.map +1 -1
  517. package/devices/siglis.d.ts.map +1 -1
  518. package/devices/siglis.js.map +1 -1
  519. package/devices/sikom.d.ts.map +1 -1
  520. package/devices/sikom.js.map +1 -1
  521. package/devices/sinope.d.ts.map +1 -1
  522. package/devices/sinope.js.map +1 -1
  523. package/devices/siterwell.d.ts.map +1 -1
  524. package/devices/siterwell.js.map +1 -1
  525. package/devices/skydance.d.ts.map +1 -1
  526. package/devices/skydance.js.map +1 -1
  527. package/devices/slv.d.ts.map +1 -1
  528. package/devices/slv.js.map +1 -1
  529. package/devices/smart9.d.ts.map +1 -1
  530. package/devices/smart9.js.map +1 -1
  531. package/devices/smart_home_pty.d.ts.map +1 -1
  532. package/devices/smart_home_pty.js.map +1 -1
  533. package/devices/smartenit.d.ts.map +1 -1
  534. package/devices/smartenit.js.map +1 -1
  535. package/devices/smartthings.d.ts.map +1 -1
  536. package/devices/smartthings.js.map +1 -1
  537. package/devices/smartwings.d.ts.map +1 -1
  538. package/devices/smartwings.js.map +1 -1
  539. package/devices/smlight.d.ts.map +1 -1
  540. package/devices/smlight.js.map +1 -1
  541. package/devices/sohan_electric.d.ts.map +1 -1
  542. package/devices/sohan_electric.js.map +1 -1
  543. package/devices/solaredge.d.ts.map +1 -1
  544. package/devices/solaredge.js.map +1 -1
  545. package/devices/soma.d.ts.map +1 -1
  546. package/devices/soma.js.map +1 -1
  547. package/devices/somfy.d.ts.map +1 -1
  548. package/devices/somfy.js.map +1 -1
  549. package/devices/somgoms.d.ts.map +1 -1
  550. package/devices/somgoms.js.map +1 -1
  551. package/devices/sonoff.d.ts.map +1 -1
  552. package/devices/sonoff.js +9 -1
  553. package/devices/sonoff.js.map +1 -1
  554. package/devices/sowilo.d.ts.map +1 -1
  555. package/devices/sowilo.js.map +1 -1
  556. package/devices/spotmau.d.ts.map +1 -1
  557. package/devices/spotmau.js.map +1 -1
  558. package/devices/stelpro.d.ts.map +1 -1
  559. package/devices/stelpro.js.map +1 -1
  560. package/devices/sunricher.d.ts.map +1 -1
  561. package/devices/sunricher.js +194 -0
  562. package/devices/sunricher.js.map +1 -1
  563. package/devices/swann.d.ts.map +1 -1
  564. package/devices/swann.js.map +1 -1
  565. package/devices/sylvania.d.ts.map +1 -1
  566. package/devices/sylvania.js.map +1 -1
  567. package/devices/tapestry.d.ts.map +1 -1
  568. package/devices/tapestry.js.map +1 -1
  569. package/devices/tci.d.ts.map +1 -1
  570. package/devices/tci.js.map +1 -1
  571. package/devices/tech.d.ts.map +1 -1
  572. package/devices/tech.js.map +1 -1
  573. package/devices/technicolor.d.ts.map +1 -1
  574. package/devices/technicolor.js.map +1 -1
  575. package/devices/terncy.d.ts.map +1 -1
  576. package/devices/terncy.js.map +1 -1
  577. package/devices/the_light_group.d.ts.map +1 -1
  578. package/devices/the_light_group.js.map +1 -1
  579. package/devices/third_reality.d.ts.map +1 -1
  580. package/devices/third_reality.js +12 -0
  581. package/devices/third_reality.js.map +1 -1
  582. package/devices/titan_products.d.ts.map +1 -1
  583. package/devices/titan_products.js.map +1 -1
  584. package/devices/tlwglobal.d.ts.map +1 -1
  585. package/devices/tlwglobal.js.map +1 -1
  586. package/devices/tplink.d.ts.map +1 -1
  587. package/devices/tplink.js.map +1 -1
  588. package/devices/trust.d.ts.map +1 -1
  589. package/devices/trust.js.map +1 -1
  590. package/devices/tubeszb.d.ts.map +1 -1
  591. package/devices/tubeszb.js.map +1 -1
  592. package/devices/tuya.d.ts.map +1 -1
  593. package/devices/tuya.js +16 -18
  594. package/devices/tuya.js.map +1 -1
  595. package/devices/ubisys.d.ts.map +1 -1
  596. package/devices/ubisys.js.map +1 -1
  597. package/devices/uhome.d.ts.map +1 -1
  598. package/devices/uhome.js.map +1 -1
  599. package/devices/universal_electronics_inc.d.ts.map +1 -1
  600. package/devices/universal_electronics_inc.js.map +1 -1
  601. package/devices/vbled.d.ts.map +1 -1
  602. package/devices/vbled.js.map +1 -1
  603. package/devices/vesternet.d.ts.map +1 -1
  604. package/devices/vesternet.js.map +1 -1
  605. package/devices/viessmann.d.ts.map +1 -1
  606. package/devices/viessmann.js.map +1 -1
  607. package/devices/villeroy_boch.d.ts.map +1 -1
  608. package/devices/villeroy_boch.js.map +1 -1
  609. package/devices/vimar.d.ts.map +1 -1
  610. package/devices/vimar.js.map +1 -1
  611. package/devices/visonic.d.ts.map +1 -1
  612. package/devices/visonic.js.map +1 -1
  613. package/devices/vrey.d.ts.map +1 -1
  614. package/devices/vrey.js.map +1 -1
  615. package/devices/wally.d.ts.map +1 -1
  616. package/devices/wally.js.map +1 -1
  617. package/devices/waxman.d.ts.map +1 -1
  618. package/devices/waxman.js.map +1 -1
  619. package/devices/weiser.d.ts.map +1 -1
  620. package/devices/weiser.js.map +1 -1
  621. package/devices/weten.d.ts.map +1 -1
  622. package/devices/weten.js.map +1 -1
  623. package/devices/wirenboard.d.ts.map +1 -1
  624. package/devices/wirenboard.js.map +1 -1
  625. package/devices/wisdom.d.ts.map +1 -1
  626. package/devices/wisdom.js.map +1 -1
  627. package/devices/woolley.d.ts.map +1 -1
  628. package/devices/woolley.js.map +1 -1
  629. package/devices/woox.d.ts.map +1 -1
  630. package/devices/woox.js.map +1 -1
  631. package/devices/wyze.d.ts.map +1 -1
  632. package/devices/wyze.js.map +1 -1
  633. package/devices/xinghuoyuan.d.ts.map +1 -1
  634. package/devices/xinghuoyuan.js.map +1 -1
  635. package/devices/xyzroe.d.ts.map +1 -1
  636. package/devices/xyzroe.js.map +1 -1
  637. package/devices/yale.d.ts.map +1 -1
  638. package/devices/yale.js.map +1 -1
  639. package/devices/yandex.d.ts.map +1 -1
  640. package/devices/yandex.js.map +1 -1
  641. package/devices/ynoa.d.ts.map +1 -1
  642. package/devices/ynoa.js.map +1 -1
  643. package/devices/yookee.d.ts.map +1 -1
  644. package/devices/yookee.js.map +1 -1
  645. package/devices/ysrsai.d.ts.map +1 -1
  646. package/devices/ysrsai.js.map +1 -1
  647. package/devices/zemismart.d.ts.map +1 -1
  648. package/devices/zemismart.js.map +1 -1
  649. package/devices/zen.d.ts.map +1 -1
  650. package/devices/zen.js.map +1 -1
  651. package/devices/zigbeetlc.d.ts.map +1 -1
  652. package/devices/zigbeetlc.js.map +1 -1
  653. package/devices/zipato.d.ts.map +1 -1
  654. package/devices/zipato.js.map +1 -1
  655. package/index.d.ts.map +1 -1
  656. package/index.js.map +1 -1
  657. package/lib/color.d.ts.map +1 -1
  658. package/lib/color.js.map +1 -1
  659. package/lib/configureKey.d.ts.map +1 -1
  660. package/lib/configureKey.js.map +1 -1
  661. package/lib/constants.d.ts.map +1 -1
  662. package/lib/constants.js.map +1 -1
  663. package/lib/develco.d.ts.map +1 -1
  664. package/lib/develco.js.map +1 -1
  665. package/lib/ewelink.d.ts +24 -1
  666. package/lib/ewelink.d.ts.map +1 -1
  667. package/lib/ewelink.js +687 -3
  668. package/lib/ewelink.js.map +1 -1
  669. package/lib/exposes.d.ts.map +1 -1
  670. package/lib/exposes.js +1 -1
  671. package/lib/exposes.js.map +1 -1
  672. package/lib/generateDefinition.d.ts.map +1 -1
  673. package/lib/generateDefinition.js.map +1 -1
  674. package/lib/ikea.d.ts.map +1 -1
  675. package/lib/ikea.js.map +1 -1
  676. package/lib/kelvinToXy.d.ts.map +1 -1
  677. package/lib/kelvinToXy.js.map +1 -1
  678. package/lib/ledvance.d.ts.map +1 -1
  679. package/lib/ledvance.js.map +1 -1
  680. package/lib/legacy.d.ts.map +1 -1
  681. package/lib/legacy.js.map +1 -1
  682. package/lib/legrand.d.ts.map +1 -1
  683. package/lib/legrand.js.map +1 -1
  684. package/lib/light.d.ts.map +1 -1
  685. package/lib/light.js.map +1 -1
  686. package/lib/logger.d.ts.map +1 -1
  687. package/lib/logger.js.map +1 -1
  688. package/lib/lumi.d.ts.map +1 -1
  689. package/lib/lumi.js.map +1 -1
  690. package/lib/modernExtend.d.ts.map +1 -1
  691. package/lib/modernExtend.js.map +1 -1
  692. package/lib/ota.d.ts.map +1 -1
  693. package/lib/ota.js.map +1 -1
  694. package/lib/philips.d.ts.map +1 -1
  695. package/lib/philips.js.map +1 -1
  696. package/lib/reporting.d.ts.map +1 -1
  697. package/lib/reporting.js.map +1 -1
  698. package/lib/store.d.ts.map +1 -1
  699. package/lib/store.js.map +1 -1
  700. package/lib/sunricher.d.ts +13 -0
  701. package/lib/sunricher.d.ts.map +1 -0
  702. package/lib/sunricher.js +14 -0
  703. package/lib/sunricher.js.map +1 -0
  704. package/lib/tuya.d.ts.map +1 -1
  705. package/lib/tuya.js.map +1 -1
  706. package/lib/types.d.ts.map +1 -1
  707. package/lib/types.js.map +1 -1
  708. package/lib/ubisys.d.ts.map +1 -1
  709. package/lib/ubisys.js.map +1 -1
  710. package/lib/utils.d.ts.map +1 -1
  711. package/lib/utils.js.map +1 -1
  712. package/lib/zosung.d.ts.map +1 -1
  713. package/lib/zosung.js.map +1 -1
  714. package/package.json +8 -35
package/lib/ewelink.js CHANGED
@@ -1,8 +1,669 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.modernExtend = exports.ewelinkModernExtend = void 0;
36
+ exports.modernExtend = exports.ewelinkModernExtend = exports.ewelinkFromZigbee = exports.ewelinkToZigbee = void 0;
4
37
  const exposes_1 = require("./exposes");
5
38
  const modernExtend_1 = require("./modernExtend");
39
+ const utils = __importStar(require("./utils"));
40
+ const e = exposes_1.presets;
41
+ const ea = exposes_1.access;
42
+ // ====================== Type Or Interface ==============================
43
+ // ======================= Utils =========================================
44
+ const findKeyByValue = (object, value) => {
45
+ const entry = Object.entries(object).find(([key, val]) => val === value);
46
+ return entry ? entry[0] : undefined;
47
+ };
48
+ // ======================= Custom TZ =====================================
49
+ exports.ewelinkToZigbee = {
50
+ motor_direction: {
51
+ key: ['motor_direction'],
52
+ convertSet: async (entity, key, value, meta) => {
53
+ let windowCoveringMode;
54
+ if (value == 'forward') {
55
+ windowCoveringMode = 0x00;
56
+ }
57
+ else if (value == 'reverse') {
58
+ windowCoveringMode = 0x01;
59
+ }
60
+ await entity.write('closuresWindowCovering', { windowCoveringMode }, utils.getOptions(meta.mapped, entity));
61
+ return { state: { motor_direction: value } };
62
+ },
63
+ },
64
+ };
65
+ // ======================= Custom FZ =====================================
66
+ exports.ewelinkFromZigbee = {
67
+ motor_direction: {
68
+ cluster: 'closuresWindowCovering',
69
+ type: ['attributeReport', 'readResponse'],
70
+ options: [exposes_1.options.invert_cover()],
71
+ convert: (model, msg, publish, options, meta) => {
72
+ const result = {};
73
+ if (typeof msg.data === 'object' && Object.prototype.hasOwnProperty.call(msg.data, 'windowCoveringMode')) {
74
+ result['motor_direction'] = (msg.data.windowCoveringMode & (1 << 0)) > 0 == true ? 'reverse' : 'forward';
75
+ }
76
+ return result;
77
+ },
78
+ },
79
+ };
80
+ // ======================= Custom Extend =================================
81
+ function privateMotorClbByPosition(clusterName, writeCommand) {
82
+ const protocol = {
83
+ dooya: {
84
+ supportModel: ['CK-MG22-Z310EE07DOOYA-01(7015)', 'MYDY25Z-1', 'CK-MG22-JLDJ-01(7015)'],
85
+ mapping: {
86
+ open: 0x01,
87
+ close: 0x02,
88
+ other: 0x03,
89
+ clear: 0x10,
90
+ },
91
+ updateMotorClbCommand: {
92
+ privateCmd: 0x01,
93
+ subCmd: 0x09,
94
+ },
95
+ updatedMotorClbCommand: {
96
+ privateCmd: 0x01,
97
+ subCmd: 0x09,
98
+ },
99
+ deleteMotorClbCommand: {
100
+ privateCmd: 0x01,
101
+ subCmd: 0x0b,
102
+ },
103
+ deletedMotorClbCommand: {
104
+ privateCmd: 0x01,
105
+ subCmd: 0x0b,
106
+ },
107
+ },
108
+ raex: {
109
+ supportModel: ['MYRX25Z-1'],
110
+ mapping: {
111
+ open: 0x01,
112
+ close: 0x02,
113
+ clear: 0x01,
114
+ },
115
+ updateMotorClbCommand: {
116
+ privateCmd: 0x22,
117
+ dataLength: 0x02,
118
+ subCmd: 0x71,
119
+ },
120
+ deleteMotorClbCommand: {
121
+ privateCmd: 0x22,
122
+ dataLength: 0x02,
123
+ subCmd: 0x76,
124
+ },
125
+ },
126
+ ak: {
127
+ supportModel: ['AM25B-1-25-ES-E-Z', 'ZM25-EAZ', 'AM25C-1-25-ES-E-Z'],
128
+ mapping: {
129
+ open: 0x00,
130
+ close: 0x01,
131
+ clear: 0x02,
132
+ },
133
+ // AK Protocol setting the limit and clearing the limit use the same command.
134
+ updateMotorClbCommand: {
135
+ cmdType: 0x00,
136
+ privateCmd: 0x68,
137
+ dataType: 0x04,
138
+ dataLength: [0x00, 0x01],
139
+ },
140
+ updatedMotorClbCommand: {
141
+ cmdType: 0x01,
142
+ privateCmd: 0x68,
143
+ dataType: 0x04,
144
+ },
145
+ },
146
+ };
147
+ const exposes = [];
148
+ exposes.push(e.enum('motor_clb_position', ea.SET, ['open', 'close', 'other', 'clear']).withDescription('Motor Calibration By Position'));
149
+ exposes.push(e.text('motor_clb_position_result', ea.STATE).withDescription('Motor Calibration Result'));
150
+ const fromZigbee = [
151
+ {
152
+ cluster: clusterName,
153
+ type: ['raw'],
154
+ convert: (model, msg, publish, otions, meta) => {
155
+ if (msg.type === 'raw' && msg.data instanceof Buffer) {
156
+ // Raex Protocol,updated Report only through 'motor_info'.
157
+ if (protocol.dooya.supportModel.includes(model.model)) {
158
+ const bufferObj = msg.data.subarray(3, msg.data.length).toJSON(); // The first five bytes belong to the ZCL frame header, which are not of interest here; only the payload is extracted.
159
+ const payload = bufferObj.data;
160
+ const { privateCmd: updatedPrivateCmd, subCmd: updatedPrivateSubCmd } = protocol.dooya.updatedMotorClbCommand;
161
+ const { privateCmd: deletedPrivateCmd, subCmd: deletedPrivateSubCmd } = protocol.dooya.deletedMotorClbCommand;
162
+ if (payload[0] === updatedPrivateCmd && payload[1] === updatedPrivateSubCmd) {
163
+ const entities = Object.entries(protocol.dooya.mapping);
164
+ const motor_clb_position_result = {};
165
+ for (const entity of entities) {
166
+ if (entity[1] === payload[2]) {
167
+ motor_clb_position_result[entity[0]] = 'calibrated';
168
+ break;
169
+ }
170
+ }
171
+ return {
172
+ motor_clb_position_result,
173
+ };
174
+ }
175
+ else if (payload[0] === deletedPrivateCmd && payload[1] === deletedPrivateSubCmd) {
176
+ if (payload[2] === protocol.dooya.mapping.clear) {
177
+ const motor_clb_position_result = {
178
+ open: 'uncalibrated',
179
+ close: 'uncalibrated',
180
+ other: 'uncalibrated',
181
+ };
182
+ return {
183
+ motor_clb_position_result,
184
+ };
185
+ }
186
+ }
187
+ }
188
+ else if (protocol.ak.supportModel.includes(model.model)) {
189
+ const bufferObj = msg.data.subarray(3, msg.data.length).toJSON(); // The first five bytes belong to the ZCL frame header, which are not of interest here; only the payload is extracted.
190
+ const payload = bufferObj.data;
191
+ const { cmdType, privateCmd, dataType } = protocol.ak.updatedMotorClbCommand;
192
+ if (payload[0] === cmdType && payload[2] === privateCmd && payload[3] === dataType) {
193
+ if (payload[6] === protocol.ak.mapping.clear) {
194
+ const motor_clb_position_result = {
195
+ open: 'uncalibrated',
196
+ close: 'uncalibrated',
197
+ other: 'uncalibrated',
198
+ };
199
+ return {
200
+ motor_clb_position_result,
201
+ };
202
+ }
203
+ else {
204
+ const entities = Object.entries(protocol.ak.mapping);
205
+ const motor_clb_position_result = {};
206
+ for (const entity of entities) {
207
+ if (entity[1] === payload[6]) {
208
+ motor_clb_position_result[entity[0]] = 'calibrated';
209
+ break;
210
+ }
211
+ }
212
+ return {
213
+ motor_clb_position_result,
214
+ };
215
+ }
216
+ }
217
+ }
218
+ }
219
+ },
220
+ },
221
+ ];
222
+ const toZigbee = [
223
+ {
224
+ key: ['motor_clb_position'],
225
+ convertSet: async (entity, key, value, meta) => {
226
+ const device = entity.getDevice();
227
+ const modelID = device.modelID;
228
+ if (protocol.dooya.supportModel.includes(modelID)) {
229
+ const { deleteMotorClbCommand, updateMotorClbCommand, mapping } = protocol.dooya;
230
+ // Dooya Protocol
231
+ const payloadValue = [];
232
+ if (value === 'clear') {
233
+ // Clear limit postion
234
+ payloadValue[0] = deleteMotorClbCommand.privateCmd;
235
+ payloadValue[1] = deleteMotorClbCommand.subCmd;
236
+ payloadValue[2] = mapping[value];
237
+ }
238
+ else if (['open', 'close', 'other'].includes(value)) {
239
+ // Set limit postion
240
+ payloadValue[0] = updateMotorClbCommand.privateCmd;
241
+ payloadValue[1] = updateMotorClbCommand.subCmd;
242
+ payloadValue[2] = mapping[value];
243
+ }
244
+ await entity.command(clusterName, writeCommand, { data: payloadValue });
245
+ }
246
+ else if (protocol.raex.supportModel.includes(modelID)) {
247
+ const { deleteMotorClbCommand, updateMotorClbCommand, mapping } = protocol.raex;
248
+ // Raex Protocol
249
+ const payloadValue = [];
250
+ if (value === 'clear') {
251
+ // Clear limit postion
252
+ payloadValue[0] = deleteMotorClbCommand.privateCmd;
253
+ payloadValue[1] = deleteMotorClbCommand.dataLength;
254
+ payloadValue[2] = deleteMotorClbCommand.subCmd;
255
+ payloadValue[3] = mapping[value];
256
+ }
257
+ else if (['open', 'close', 'other'].includes(value)) {
258
+ // Set limit postion
259
+ payloadValue[0] = updateMotorClbCommand.privateCmd;
260
+ payloadValue[1] = updateMotorClbCommand.dataLength;
261
+ payloadValue[2] = updateMotorClbCommand.subCmd;
262
+ payloadValue[3] = mapping[value];
263
+ }
264
+ await entity.command(clusterName, writeCommand, { data: payloadValue });
265
+ }
266
+ else if (protocol.ak.supportModel.includes(modelID)) {
267
+ // AK Protocol
268
+ const { updateMotorClbCommand, mapping } = protocol.ak;
269
+ const payloadValue = [];
270
+ payloadValue[0] = updateMotorClbCommand.cmdType;
271
+ payloadValue[1] = 0x00;
272
+ payloadValue[2] = updateMotorClbCommand.privateCmd;
273
+ payloadValue[3] = updateMotorClbCommand.dataType;
274
+ payloadValue.push(...updateMotorClbCommand.dataLength);
275
+ payloadValue[6] = mapping[value];
276
+ await entity.command(clusterName, writeCommand, { data: payloadValue });
277
+ }
278
+ return { state: { [key]: value } };
279
+ },
280
+ },
281
+ ];
282
+ return { exposes, toZigbee, fromZigbee, isModernExtend: true };
283
+ }
284
+ function privateMotorMode(clusterName, writeCommand) {
285
+ const mode = ['inching', 'continuou'];
286
+ const protocol = {
287
+ dooya: {
288
+ supportModel: ['CK-MG22-Z310EE07DOOYA-01(7015)', 'MYDY25Z-1', 'CK-MG22-JLDJ-01(7015)'],
289
+ mapping: {
290
+ continuou: 0x20,
291
+ inching: 0x30,
292
+ },
293
+ updateMotorModeCommand: {
294
+ privateCmd: 0x01,
295
+ subCmd: 0x10,
296
+ },
297
+ updatedMotorModeCommand: {
298
+ privateCmd: 0x01,
299
+ subCmd: 0x10,
300
+ },
301
+ },
302
+ raex: {
303
+ supportModel: ['MYRX25Z-1'],
304
+ mapping: {
305
+ continuou: 0x01,
306
+ inching: 0x02,
307
+ },
308
+ updateMotorModeCommand: {
309
+ privateCmd: 0x11,
310
+ dataLength: 0x02,
311
+ subCmd: 0x54,
312
+ },
313
+ },
314
+ ak: {
315
+ supportModel: ['AM25B-1-25-ES-E-Z', 'ZM25-EAZ', 'AM25C-1-25-ES-E-Z'],
316
+ mapping: {
317
+ continuou: 0x00,
318
+ inching: 0x01,
319
+ },
320
+ updateMotorModeCommand: {
321
+ cmdType: 0x00,
322
+ privateCmd: 0x67,
323
+ dataType: 0x04,
324
+ dataLength: [0x00, 0x01],
325
+ },
326
+ updatedMotorModeCommand: {
327
+ cmdType: 0x01,
328
+ privateCmd: 0x67,
329
+ dataType: 0x04,
330
+ },
331
+ },
332
+ };
333
+ const expose = e.enum('motor_mode', ea.STATE_SET, mode).withDescription('Motor Mode');
334
+ const fromZigbee = [
335
+ {
336
+ cluster: clusterName,
337
+ type: ['raw'],
338
+ convert: (model, msg, publish, otions, meta) => {
339
+ if (msg.type === 'raw' && msg.data instanceof Buffer) {
340
+ if (protocol.dooya.supportModel.includes(model.model)) {
341
+ const bufferObj = msg.data.subarray(3, msg.data.length).toJSON();
342
+ const payload = bufferObj.data;
343
+ const { privateCmd, subCmd } = protocol.dooya.updatedMotorModeCommand;
344
+ if (payload[0] === privateCmd && payload[1] === subCmd) {
345
+ const entities = Object.entries(protocol.dooya.mapping);
346
+ let motor_mode;
347
+ for (const entity of entities) {
348
+ if (entity[1] === payload[2]) {
349
+ motor_mode = entity[0];
350
+ break;
351
+ }
352
+ }
353
+ return {
354
+ motor_mode,
355
+ };
356
+ }
357
+ }
358
+ else if (protocol.ak.supportModel.includes(model.model)) {
359
+ const bufferObj = msg.data.subarray(3, msg.data.length).toJSON();
360
+ const payload = bufferObj.data;
361
+ const { cmdType, privateCmd, dataType } = protocol.ak.updatedMotorModeCommand;
362
+ if (payload[0] === cmdType && payload[2] === privateCmd && payload[3] === dataType) {
363
+ const entities = Object.entries(protocol.ak.mapping);
364
+ let motor_mode;
365
+ for (const entity of entities) {
366
+ if (entity[1] === payload[6]) {
367
+ motor_mode = entity[0];
368
+ break;
369
+ }
370
+ }
371
+ return {
372
+ motor_mode,
373
+ };
374
+ }
375
+ }
376
+ }
377
+ },
378
+ },
379
+ ];
380
+ const toZigbee = [
381
+ {
382
+ key: ['motor_mode'],
383
+ convertSet: async (entity, key, value, meta) => {
384
+ const device = entity.getDevice();
385
+ const modelID = device.modelID;
386
+ if (protocol.dooya.supportModel.includes(modelID)) {
387
+ // Dooya Protocol
388
+ const payloadValue = [];
389
+ const { updateMotorModeCommand, mapping } = protocol.dooya;
390
+ payloadValue[0] = updateMotorModeCommand.privateCmd;
391
+ payloadValue[1] = updateMotorModeCommand.subCmd;
392
+ payloadValue[2] = mapping[value];
393
+ await entity.command(clusterName, writeCommand, { data: payloadValue });
394
+ }
395
+ else if (protocol.raex.supportModel.includes(modelID)) {
396
+ // Raex Protocol
397
+ const payloadValue = [];
398
+ const { updateMotorModeCommand, mapping } = protocol.raex;
399
+ payloadValue[0] = updateMotorModeCommand.privateCmd;
400
+ payloadValue[1] = updateMotorModeCommand.dataLength;
401
+ payloadValue[2] = updateMotorModeCommand.subCmd;
402
+ payloadValue[3] = mapping[value];
403
+ await entity.command(clusterName, writeCommand, { data: payloadValue });
404
+ }
405
+ else if (protocol.ak.supportModel.includes(modelID)) {
406
+ // AK Protocol
407
+ const payloadValue = [];
408
+ const { updateMotorModeCommand, mapping } = protocol.ak;
409
+ payloadValue[0] = updateMotorModeCommand.cmdType;
410
+ payloadValue[1] = 0x00;
411
+ payloadValue[2] = updateMotorModeCommand.privateCmd;
412
+ payloadValue[3] = updateMotorModeCommand.dataType;
413
+ payloadValue.push(...updateMotorModeCommand.dataLength);
414
+ payloadValue[6] = mapping[value];
415
+ await entity.command(clusterName, writeCommand, { data: payloadValue });
416
+ }
417
+ return { state: { [key]: value } };
418
+ },
419
+ },
420
+ ];
421
+ return { exposes: [expose], toZigbee, fromZigbee, isModernExtend: true };
422
+ }
423
+ function privateReportMotorInfo(clusterName) {
424
+ const protocol = {
425
+ dooya: {
426
+ supportModel: ['CK-MG22-Z310EE07DOOYA-01(7015)', 'MYDY25Z-1', 'CK-MG22-JLDJ-01(7015)', 'Grandekor Smart Curtain Grandekor'],
427
+ mapping: {
428
+ status: {
429
+ open: 0x01,
430
+ close: 0x02,
431
+ stop: 0x03,
432
+ },
433
+ itinerary: {
434
+ none: 0x00,
435
+ all: 0x01,
436
+ hasOpen: 0x02,
437
+ hasClose: 0x03,
438
+ hasThird: 0x04,
439
+ },
440
+ speed: {
441
+ none: 0x00,
442
+ T1: 0x01,
443
+ T2: 0x02,
444
+ T3: 0x03,
445
+ T4: 0x04,
446
+ T5: 0x05,
447
+ T6: 0x06,
448
+ T7: 0x07,
449
+ T8: 0x08,
450
+ T9: 0x09,
451
+ T10: 0x0a,
452
+ T11: 0x0b,
453
+ T12: 0x0c,
454
+ T13: 0x0d,
455
+ T14: 0x0e,
456
+ },
457
+ motorDirection: {
458
+ forward: 0x01,
459
+ reverse: 0x02,
460
+ },
461
+ motorMode: {
462
+ continuou: 0x01,
463
+ inching: 0x02,
464
+ },
465
+ },
466
+ updatedMotorInfoCommand: {
467
+ privateCmd: 0x03,
468
+ subCmd: 0x01,
469
+ },
470
+ },
471
+ raex: {
472
+ supportModel: ['MYRX25Z-1'],
473
+ mapping: {
474
+ status: {
475
+ open: '01',
476
+ close: '10',
477
+ stop: '00',
478
+ },
479
+ itinerary: {
480
+ none: 0x00,
481
+ hasOpen: 0x01,
482
+ hasClose: 0x02,
483
+ all: 0x03,
484
+ },
485
+ speed: {
486
+ none: 0x00,
487
+ T1: 0x01,
488
+ T2: 0x02,
489
+ T3: 0x03,
490
+ },
491
+ motorDirection: {
492
+ forward: '0',
493
+ reverse: '1',
494
+ },
495
+ motorMode: {
496
+ continuou: '0',
497
+ inching: '1',
498
+ },
499
+ },
500
+ updatedMotorInfoCommand: {
501
+ privateCmd: 0xa1,
502
+ subCmd: 0x0c,
503
+ },
504
+ },
505
+ };
506
+ const expose = e.text('motor_info', ea.STATE).withDescription('Motor Updated Info');
507
+ const fromZigbee = [
508
+ {
509
+ cluster: clusterName,
510
+ type: ['raw'],
511
+ convert: (model, msg, publish, otions, meta) => {
512
+ if (msg.type === 'raw' && msg.data instanceof Buffer) {
513
+ if (protocol.dooya.supportModel.includes(model.model)) {
514
+ // Dooya Protocol
515
+ const bufferObj = msg.data.subarray(3, msg.data.length).toJSON();
516
+ const payload = bufferObj.data;
517
+ const dooyaProtocol = protocol.dooya;
518
+ const { privateCmd, subCmd } = protocol.dooya.updatedMotorInfoCommand;
519
+ if (payload[0] === privateCmd && payload[1] === subCmd) {
520
+ const motor_status = findKeyByValue(dooyaProtocol.mapping.status, payload[2]);
521
+ const motor_percentage = payload[3];
522
+ const motor_angle = payload[4];
523
+ const motor_itinerary = findKeyByValue(dooyaProtocol.mapping.itinerary, payload[5]);
524
+ const motor_speed = payload[6];
525
+ const motor_direction = findKeyByValue(dooyaProtocol.mapping.motorDirection, payload[7]);
526
+ const motor_mode = findKeyByValue(dooyaProtocol.mapping.motorMode, payload[8]);
527
+ const battery = payload[9];
528
+ return {
529
+ [expose.property]: {
530
+ motor_status,
531
+ motor_percentage,
532
+ motor_angle,
533
+ motor_itinerary,
534
+ motor_speed,
535
+ motor_direction,
536
+ motor_mode,
537
+ battery,
538
+ },
539
+ };
540
+ }
541
+ }
542
+ else if (protocol.raex.supportModel.includes(model.model)) {
543
+ // Raex Protocol
544
+ const bufferObj = msg.data.subarray(3, msg.data.length).toJSON();
545
+ const payload = bufferObj.data;
546
+ const raexProtocol = protocol.raex;
547
+ const { privateCmd, subCmd } = raexProtocol.updatedMotorInfoCommand;
548
+ if (payload[0] === privateCmd && payload[1] === subCmd) {
549
+ const motor_status_binary = payload[2].toString(2).padStart(8, '0').slice(6, 8);
550
+ const motor_status = findKeyByValue(raexProtocol.mapping.status, motor_status_binary);
551
+ const motor_percentage = payload[3]; // 255 indicates that the motor cannot find the percentage.
552
+ const motor_angle = payload[4]; // 255 indicates that the motor cannot find the angle
553
+ const battery = payload[5];
554
+ const motor_itinerary = findKeyByValue(raexProtocol.mapping.itinerary, payload[11]);
555
+ const motor_speed = payload[9];
556
+ const motor_direction_binary = payload[8].toString(2).padStart(8, '0').slice(6, 7);
557
+ const motor_direction = findKeyByValue(raexProtocol.mapping.motorDirection, motor_direction_binary);
558
+ const motor_mode_binary = payload[8].toString(2).padStart(8, '0').slice(5, 6);
559
+ const motor_mode = findKeyByValue(raexProtocol.mapping.motorMode, motor_mode_binary);
560
+ return {
561
+ [expose.property]: {
562
+ motor_status,
563
+ motor_percentage,
564
+ motor_angle,
565
+ motor_itinerary,
566
+ motor_speed,
567
+ motor_direction,
568
+ motor_mode,
569
+ battery,
570
+ },
571
+ };
572
+ }
573
+ }
574
+ }
575
+ },
576
+ },
577
+ ];
578
+ return { exposes: [expose], fromZigbee, isModernExtend: true };
579
+ }
580
+ function privateMotorSpeed(clusterName, writeCommand, minSpeed, maxSpeed) {
581
+ const protocol = {
582
+ dooya: {
583
+ supportModel: ['CK-MG22-Z310EE07DOOYA-01(7015)', 'MYDY25Z-1', 'CK-MG22-JLDJ-01(7015)', 'Grandekor Smart Curtain Grandekor'],
584
+ updateMotorSpeedCommand: {
585
+ privateCmd: 0x01,
586
+ subCmd: 0xd1,
587
+ },
588
+ updatedMotorSpeedCommand: {
589
+ privateCmd: 0x01,
590
+ subCmd: 0xd1,
591
+ },
592
+ updatedMaxMotorSpeedCommand: {
593
+ privateCmd: 0x02,
594
+ subCmd: 0x0e,
595
+ },
596
+ },
597
+ raex: {
598
+ supportModel: ['MYRX25Z-1'],
599
+ updateMotorSpeedCommand: {
600
+ privateCmd: 0x11,
601
+ dataLength: 0x02,
602
+ subCmd: 0x53,
603
+ },
604
+ },
605
+ };
606
+ const exposes = [];
607
+ exposes.push(e.numeric('motor_speed', ea.STATE_SET).withDescription('Set the motor speed').withValueMin(minSpeed).withValueMax(maxSpeed));
608
+ exposes.push(e.numeric('supported_max_motor_speed', ea.STATE).withDescription('Supported max motor speed'));
609
+ const fromZigbee = [
610
+ {
611
+ cluster: clusterName,
612
+ type: ['raw'],
613
+ convert: (model, msg, publish, otions, meta) => {
614
+ if (msg.type === 'raw' && msg.data instanceof Buffer) {
615
+ if (protocol.dooya.supportModel.includes(model.model)) {
616
+ const bufferObj = msg.data.subarray(3, msg.data.length).toJSON();
617
+ const payload = bufferObj.data;
618
+ const { updatedMotorSpeedCommand, updatedMaxMotorSpeedCommand } = protocol.dooya;
619
+ if (payload[0] === updatedMotorSpeedCommand.privateCmd && payload[1] === updatedMotorSpeedCommand.subCmd) {
620
+ return {
621
+ motor_speed: payload[2], // If the gear position is 255, it means the device does not support speed adjustment.
622
+ };
623
+ }
624
+ else if (payload[0] === updatedMaxMotorSpeedCommand.privateCmd && payload[1] === updatedMaxMotorSpeedCommand.subCmd) {
625
+ const supportedMax = payload[2];
626
+ if (supportedMax === 0 || supportedMax === undefined) {
627
+ return {
628
+ supported_max_motor_speed: 0,
629
+ };
630
+ }
631
+ return { supported_max_motor_speed: supportedMax };
632
+ }
633
+ }
634
+ }
635
+ },
636
+ },
637
+ ];
638
+ const toZigbee = [
639
+ {
640
+ key: ['motor_speed'],
641
+ convertSet: async (entity, key, value, meta) => {
642
+ const device = entity.getDevice();
643
+ const modelID = device.modelID;
644
+ if (protocol.dooya.supportModel.includes(modelID)) {
645
+ const payloadValue = [];
646
+ const { updateMotorSpeedCommand } = protocol.dooya;
647
+ payloadValue[0] = updateMotorSpeedCommand.privateCmd;
648
+ payloadValue[1] = updateMotorSpeedCommand.subCmd;
649
+ payloadValue[2] = value;
650
+ await entity.command(clusterName, writeCommand, { data: payloadValue });
651
+ }
652
+ else if (protocol.raex.supportModel.includes(modelID)) {
653
+ const payloadValue = [];
654
+ const { updateMotorSpeedCommand } = protocol.raex;
655
+ payloadValue[0] = updateMotorSpeedCommand.privateCmd;
656
+ payloadValue[1] = updateMotorSpeedCommand.dataLength;
657
+ payloadValue[2] = updateMotorSpeedCommand.subCmd;
658
+ payloadValue[3] = value;
659
+ await entity.command(clusterName, writeCommand, { data: payloadValue });
660
+ }
661
+ return { state: { [key]: value } };
662
+ },
663
+ },
664
+ ];
665
+ return { exposes, toZigbee, fromZigbee, isModernExtend: true };
666
+ }
6
667
  exports.ewelinkModernExtend = {
7
668
  ewelinkAction: () => {
8
669
  const exposes = [exposes_1.presets.action(['single', 'double', 'long'])];
@@ -25,10 +686,33 @@ exports.ewelinkModernExtend = {
25
686
  return (0, modernExtend_1.battery)({
26
687
  voltage: true,
27
688
  voltageReporting: true,
28
- percentageReportingConfig: { min: 3600, max: 7200, change: 10 },
29
- voltageReportingConfig: { min: 3600, max: 7200, change: 10 },
689
+ percentageReportingConfig: { min: 3600, max: 7200, change: 2 },
690
+ voltageReportingConfig: { min: 3600, max: 7200, change: 100 },
30
691
  });
31
692
  },
693
+ ewelinkMotorReverse: () => {
694
+ const exposes = [e.enum('motor_direction', ea.STATE_SET, ['forward', 'reverse']).withDescription('Set the motor direction')];
695
+ const toZigbee = [exports.ewelinkToZigbee.motor_direction];
696
+ const fromZigbee = [exports.ewelinkFromZigbee.motor_direction];
697
+ return {
698
+ exposes,
699
+ fromZigbee,
700
+ toZigbee,
701
+ isModernExtend: true,
702
+ };
703
+ },
704
+ ewelinkMotorClbByPosition: (clusterName, writeCommand) => {
705
+ return privateMotorClbByPosition(clusterName, writeCommand);
706
+ },
707
+ ewelinkMotorMode: (clusterName, writeCommand) => {
708
+ return privateMotorMode(clusterName, writeCommand);
709
+ },
710
+ ewelinkReportMotorInfo: (clusterName) => {
711
+ return privateReportMotorInfo(clusterName);
712
+ },
713
+ ewelinkMotorSpeed: (clusterName, writeCommand, min, max) => {
714
+ return privateMotorSpeed(clusterName, writeCommand, min, max);
715
+ },
32
716
  };
33
717
  exports.modernExtend = exports.ewelinkModernExtend;
34
718
  //# sourceMappingURL=ewelink.js.map