@willieee802/zigbee-herdsman 0.34.3 → 0.48.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 (438) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +403 -0
  3. package/dist/adapter/adapter.d.ts +14 -13
  4. package/dist/adapter/adapter.d.ts.map +1 -1
  5. package/dist/adapter/adapter.js +15 -17
  6. package/dist/adapter/adapter.js.map +1 -1
  7. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +14 -12
  8. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  9. package/dist/adapter/deconz/adapter/deconzAdapter.js +118 -128
  10. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  11. package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
  12. package/dist/adapter/deconz/driver/driver.js +44 -44
  13. package/dist/adapter/deconz/driver/driver.js.map +1 -1
  14. package/dist/adapter/deconz/driver/frameParser.js +43 -43
  15. package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
  16. package/dist/adapter/deconz/driver/parser.js +6 -6
  17. package/dist/adapter/deconz/driver/parser.js.map +1 -1
  18. package/dist/adapter/deconz/driver/writer.js +3 -3
  19. package/dist/adapter/deconz/driver/writer.js.map +1 -1
  20. package/dist/adapter/ember/adapter/emberAdapter.d.ts +60 -71
  21. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
  22. package/dist/adapter/ember/adapter/emberAdapter.js +453 -492
  23. package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
  24. package/dist/adapter/ember/adapter/endpoints.d.ts +5 -3
  25. package/dist/adapter/ember/adapter/endpoints.d.ts.map +1 -1
  26. package/dist/adapter/ember/adapter/endpoints.js +33 -31
  27. package/dist/adapter/ember/adapter/endpoints.js.map +1 -1
  28. package/dist/adapter/ember/adapter/oneWaitress.d.ts +16 -5
  29. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
  30. package/dist/adapter/ember/adapter/oneWaitress.js +19 -4
  31. package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
  32. package/dist/adapter/ember/adapter/requestQueue.d.ts +2 -4
  33. package/dist/adapter/ember/adapter/requestQueue.d.ts.map +1 -1
  34. package/dist/adapter/ember/adapter/requestQueue.js +17 -22
  35. package/dist/adapter/ember/adapter/requestQueue.js.map +1 -1
  36. package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -1
  37. package/dist/adapter/ember/adapter/tokensManager.js +23 -20
  38. package/dist/adapter/ember/adapter/tokensManager.js.map +1 -1
  39. package/dist/adapter/ember/consts.d.ts +0 -7
  40. package/dist/adapter/ember/consts.d.ts.map +1 -1
  41. package/dist/adapter/ember/consts.js +2 -9
  42. package/dist/adapter/ember/consts.js.map +1 -1
  43. package/dist/adapter/ember/enums.d.ts +133 -145
  44. package/dist/adapter/ember/enums.d.ts.map +1 -1
  45. package/dist/adapter/ember/enums.js +132 -148
  46. package/dist/adapter/ember/enums.js.map +1 -1
  47. package/dist/adapter/ember/ezsp/buffalo.js +4 -4
  48. package/dist/adapter/ember/ezsp/buffalo.js.map +1 -1
  49. package/dist/adapter/ember/ezsp/ezsp.d.ts +1 -3
  50. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
  51. package/dist/adapter/ember/ezsp/ezsp.js +224 -208
  52. package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
  53. package/dist/adapter/ember/types.d.ts +9 -9
  54. package/dist/adapter/ember/types.d.ts.map +1 -1
  55. package/dist/adapter/ember/uart/ash.d.ts +27 -14
  56. package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
  57. package/dist/adapter/ember/uart/ash.js +158 -109
  58. package/dist/adapter/ember/uart/ash.js.map +1 -1
  59. package/dist/adapter/ember/uart/consts.d.ts +1 -1
  60. package/dist/adapter/ember/uart/consts.js +1 -1
  61. package/dist/adapter/ember/uart/parser.d.ts.map +1 -1
  62. package/dist/adapter/ember/uart/parser.js +5 -9
  63. package/dist/adapter/ember/uart/parser.js.map +1 -1
  64. package/dist/adapter/ember/uart/queues.d.ts.map +1 -1
  65. package/dist/adapter/ember/uart/queues.js +3 -1
  66. package/dist/adapter/ember/uart/queues.js.map +1 -1
  67. package/dist/adapter/ember/uart/writer.d.ts.map +1 -1
  68. package/dist/adapter/ember/uart/writer.js +4 -6
  69. package/dist/adapter/ember/uart/writer.js.map +1 -1
  70. package/dist/adapter/ember/zdo.d.ts +6 -2
  71. package/dist/adapter/ember/zdo.d.ts.map +1 -1
  72. package/dist/adapter/ember/zdo.js +2 -2
  73. package/dist/adapter/ember/zdo.js.map +1 -1
  74. package/dist/adapter/events.d.ts +17 -23
  75. package/dist/adapter/events.d.ts.map +1 -1
  76. package/dist/adapter/events.js +1 -2
  77. package/dist/adapter/events.js.map +1 -1
  78. package/dist/adapter/ezsp/adapter/backup.d.ts +4 -1
  79. package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
  80. package/dist/adapter/ezsp/adapter/backup.js +35 -7
  81. package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
  82. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +12 -9
  83. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  84. package/dist/adapter/ezsp/adapter/ezspAdapter.js +79 -75
  85. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  86. package/dist/adapter/ezsp/driver/commands.d.ts.map +1 -1
  87. package/dist/adapter/ezsp/driver/commands.js +3 -5
  88. package/dist/adapter/ezsp/driver/commands.js.map +1 -1
  89. package/dist/adapter/ezsp/driver/driver.d.ts +4 -2
  90. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  91. package/dist/adapter/ezsp/driver/driver.js +183 -119
  92. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  93. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  94. package/dist/adapter/ezsp/driver/ezsp.js +62 -50
  95. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  96. package/dist/adapter/ezsp/driver/multicast.d.ts.map +1 -1
  97. package/dist/adapter/ezsp/driver/multicast.js +8 -12
  98. package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
  99. package/dist/adapter/ezsp/driver/parser.js +5 -5
  100. package/dist/adapter/ezsp/driver/parser.js.map +1 -1
  101. package/dist/adapter/ezsp/driver/types/basic.js +1 -1
  102. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  103. package/dist/adapter/ezsp/driver/types/named.js +2 -2
  104. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  105. package/dist/adapter/ezsp/driver/types/struct.d.ts +1 -1
  106. package/dist/adapter/ezsp/driver/types/struct.d.ts.map +1 -1
  107. package/dist/adapter/ezsp/driver/types/struct.js +2 -2
  108. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  109. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  110. package/dist/adapter/ezsp/driver/uart.js +46 -46
  111. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  112. package/dist/adapter/ezsp/driver/utils/index.d.ts +2 -1
  113. package/dist/adapter/ezsp/driver/utils/index.d.ts.map +1 -1
  114. package/dist/adapter/ezsp/driver/utils/index.js +2 -2
  115. package/dist/adapter/ezsp/driver/utils/index.js.map +1 -1
  116. package/dist/adapter/ezsp/driver/writer.js +3 -6
  117. package/dist/adapter/ezsp/driver/writer.js.map +1 -1
  118. package/dist/adapter/serialPort.d.ts +3 -0
  119. package/dist/adapter/serialPort.d.ts.map +1 -1
  120. package/dist/adapter/serialPort.js +16 -23
  121. package/dist/adapter/serialPort.js.map +1 -1
  122. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +0 -1
  123. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
  124. package/dist/adapter/z-stack/adapter/adapter-backup.js +25 -29
  125. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  126. package/dist/adapter/z-stack/adapter/endpoints.js +4 -4
  127. package/dist/adapter/z-stack/adapter/endpoints.js.map +1 -1
  128. package/dist/adapter/z-stack/adapter/manager.d.ts +1 -4
  129. package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
  130. package/dist/adapter/z-stack/adapter/manager.js +52 -61
  131. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  132. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +12 -10
  133. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  134. package/dist/adapter/z-stack/adapter/zStackAdapter.js +102 -84
  135. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  136. package/dist/adapter/z-stack/unpi/parser.js +6 -6
  137. package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
  138. package/dist/adapter/z-stack/unpi/writer.js +4 -7
  139. package/dist/adapter/z-stack/unpi/writer.js.map +1 -1
  140. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +4 -2
  141. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts.map +1 -1
  142. package/dist/adapter/z-stack/znp/buffaloZnp.js +154 -25
  143. package/dist/adapter/z-stack/znp/buffaloZnp.js.map +1 -1
  144. package/dist/adapter/z-stack/znp/definition.d.ts.map +1 -1
  145. package/dist/adapter/z-stack/znp/definition.js +2 -1
  146. package/dist/adapter/z-stack/znp/definition.js.map +1 -1
  147. package/dist/adapter/z-stack/znp/tstype.d.ts +4 -3
  148. package/dist/adapter/z-stack/znp/tstype.d.ts.map +1 -1
  149. package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
  150. package/dist/adapter/z-stack/znp/znp.js +18 -25
  151. package/dist/adapter/z-stack/znp/znp.js.map +1 -1
  152. package/dist/adapter/z-stack/znp/zpiObject.js +2 -2
  153. package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
  154. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +13 -12
  155. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
  156. package/dist/adapter/zigate/adapter/zigateAdapter.js +81 -90
  157. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  158. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +7 -8
  159. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +1 -1
  160. package/dist/adapter/zigate/driver/buffaloZiGate.js +150 -100
  161. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
  162. package/dist/adapter/zigate/driver/commandType.d.ts +2 -1
  163. package/dist/adapter/zigate/driver/commandType.d.ts.map +1 -1
  164. package/dist/adapter/zigate/driver/commandType.js +56 -52
  165. package/dist/adapter/zigate/driver/commandType.js.map +1 -1
  166. package/dist/adapter/zigate/driver/frame.d.ts.map +1 -1
  167. package/dist/adapter/zigate/driver/frame.js +8 -8
  168. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  169. package/dist/adapter/zigate/driver/messageType.d.ts +2 -1
  170. package/dist/adapter/zigate/driver/messageType.d.ts.map +1 -1
  171. package/dist/adapter/zigate/driver/messageType.js +113 -108
  172. package/dist/adapter/zigate/driver/messageType.js.map +1 -1
  173. package/dist/adapter/zigate/driver/parameterType.d.ts +8 -1
  174. package/dist/adapter/zigate/driver/parameterType.d.ts.map +1 -1
  175. package/dist/adapter/zigate/driver/parameterType.js +9 -0
  176. package/dist/adapter/zigate/driver/parameterType.js.map +1 -1
  177. package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +1 -1
  178. package/dist/adapter/zigate/driver/ziGateObject.js +9 -9
  179. package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
  180. package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
  181. package/dist/adapter/zigate/driver/zigate.js +23 -31
  182. package/dist/adapter/zigate/driver/zigate.js.map +1 -1
  183. package/dist/buffalo/buffalo.d.ts +23 -19
  184. package/dist/buffalo/buffalo.d.ts.map +1 -1
  185. package/dist/buffalo/buffalo.js +74 -169
  186. package/dist/buffalo/buffalo.js.map +1 -1
  187. package/dist/buffalo/index.d.ts +1 -2
  188. package/dist/buffalo/index.d.ts.map +1 -1
  189. package/dist/buffalo/index.js +1 -26
  190. package/dist/buffalo/index.js.map +1 -1
  191. package/dist/controller/controller.d.ts +8 -5
  192. package/dist/controller/controller.d.ts.map +1 -1
  193. package/dist/controller/controller.js +181 -126
  194. package/dist/controller/controller.js.map +1 -1
  195. package/dist/controller/database.d.ts +1 -0
  196. package/dist/controller/database.d.ts.map +1 -1
  197. package/dist/controller/database.js +7 -10
  198. package/dist/controller/database.js.map +1 -1
  199. package/dist/controller/events.d.ts +2 -2
  200. package/dist/controller/events.d.ts.map +1 -1
  201. package/dist/controller/events.js +4 -0
  202. package/dist/controller/events.js.map +1 -1
  203. package/dist/controller/greenPower.d.ts +2 -1
  204. package/dist/controller/greenPower.d.ts.map +1 -1
  205. package/dist/controller/greenPower.js +51 -57
  206. package/dist/controller/greenPower.js.map +1 -1
  207. package/dist/controller/helpers/request.d.ts +3 -3
  208. package/dist/controller/helpers/request.d.ts.map +1 -1
  209. package/dist/controller/helpers/request.js +2 -2
  210. package/dist/controller/helpers/request.js.map +1 -1
  211. package/dist/controller/helpers/requestQueue.d.ts.map +1 -1
  212. package/dist/controller/helpers/requestQueue.js +26 -36
  213. package/dist/controller/helpers/requestQueue.js.map +1 -1
  214. package/dist/controller/helpers/zclFrameConverter.d.ts +4 -3
  215. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  216. package/dist/controller/helpers/zclFrameConverter.js +33 -14
  217. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  218. package/dist/controller/model/device.d.ts +12 -5
  219. package/dist/controller/model/device.d.ts.map +1 -1
  220. package/dist/controller/model/device.js +108 -87
  221. package/dist/controller/model/device.js.map +1 -1
  222. package/dist/controller/model/endpoint.d.ts +22 -17
  223. package/dist/controller/model/endpoint.d.ts.map +1 -1
  224. package/dist/controller/model/endpoint.js +139 -228
  225. package/dist/controller/model/endpoint.js.map +1 -1
  226. package/dist/controller/model/group.d.ts +1 -1
  227. package/dist/controller/model/group.d.ts.map +1 -1
  228. package/dist/controller/model/group.js +18 -18
  229. package/dist/controller/model/group.js.map +1 -1
  230. package/dist/controller/touchlink.js +25 -28
  231. package/dist/controller/touchlink.js.map +1 -1
  232. package/dist/index.d.ts +5 -3
  233. package/dist/index.d.ts.map +1 -1
  234. package/dist/index.js +8 -5
  235. package/dist/index.js.map +1 -1
  236. package/dist/utils/logger.d.ts +9 -0
  237. package/dist/utils/logger.d.ts.map +1 -0
  238. package/dist/utils/logger.js +14 -0
  239. package/dist/utils/logger.js.map +1 -0
  240. package/dist/zspec/consts.d.ts +60 -0
  241. package/dist/zspec/consts.d.ts.map +1 -0
  242. package/dist/zspec/consts.js +64 -0
  243. package/dist/zspec/consts.js.map +1 -0
  244. package/dist/zspec/enums.d.ts +19 -0
  245. package/dist/zspec/enums.d.ts.map +1 -0
  246. package/dist/zspec/enums.js +28 -0
  247. package/dist/zspec/enums.js.map +1 -0
  248. package/dist/zspec/index.d.ts +4 -0
  249. package/dist/zspec/index.d.ts.map +1 -0
  250. package/dist/zspec/index.js +43 -0
  251. package/dist/zspec/index.js.map +1 -0
  252. package/dist/zspec/tstypes.d.ts +19 -0
  253. package/dist/zspec/tstypes.d.ts.map +1 -0
  254. package/dist/{buffalo/tstype.js → zspec/tstypes.js} +1 -1
  255. package/dist/zspec/tstypes.js.map +1 -0
  256. package/dist/zspec/utils.d.ts +14 -0
  257. package/dist/zspec/utils.d.ts.map +1 -0
  258. package/dist/zspec/utils.js +29 -0
  259. package/dist/zspec/utils.js.map +1 -0
  260. package/dist/zspec/zcl/buffaloZcl.d.ts +55 -0
  261. package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -0
  262. package/dist/zspec/zcl/buffaloZcl.js +929 -0
  263. package/dist/zspec/zcl/buffaloZcl.js.map +1 -0
  264. package/dist/zspec/zcl/definition/cluster.d.ts +3 -0
  265. package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -0
  266. package/dist/zspec/zcl/definition/cluster.js +5500 -0
  267. package/dist/zspec/zcl/definition/cluster.js.map +1 -0
  268. package/dist/zspec/zcl/definition/consts.d.ts +9 -0
  269. package/dist/zspec/zcl/definition/consts.d.ts.map +1 -0
  270. package/dist/zspec/zcl/definition/consts.js +27 -0
  271. package/dist/zspec/zcl/definition/consts.js.map +1 -0
  272. package/dist/zspec/zcl/definition/enums.d.ts +177 -0
  273. package/dist/zspec/zcl/definition/enums.d.ts.map +1 -0
  274. package/dist/zspec/zcl/definition/enums.js +187 -0
  275. package/dist/zspec/zcl/definition/enums.js.map +1 -0
  276. package/dist/zspec/zcl/definition/foundation.d.ts +11 -0
  277. package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -0
  278. package/dist/zspec/zcl/definition/foundation.js +241 -0
  279. package/dist/zspec/zcl/definition/foundation.js.map +1 -0
  280. package/dist/zspec/zcl/definition/manufacturerCode.d.ts +727 -0
  281. package/dist/zspec/zcl/definition/manufacturerCode.d.ts.map +1 -0
  282. package/dist/zspec/zcl/definition/manufacturerCode.js +733 -0
  283. package/dist/zspec/zcl/definition/manufacturerCode.js.map +1 -0
  284. package/dist/zspec/zcl/definition/status.d.ts +69 -0
  285. package/dist/zspec/zcl/definition/status.d.ts.map +1 -0
  286. package/dist/zspec/zcl/definition/status.js +74 -0
  287. package/dist/zspec/zcl/definition/status.js.map +1 -0
  288. package/dist/zspec/zcl/definition/tstype.d.ts +114 -0
  289. package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -0
  290. package/dist/{zcl/zclHeader.js → zspec/zcl/definition/tstype.js} +2 -1
  291. package/dist/zspec/zcl/definition/tstype.js.map +1 -0
  292. package/dist/zspec/zcl/index.d.ts +11 -0
  293. package/dist/zspec/zcl/index.d.ts.map +1 -0
  294. package/dist/zspec/zcl/index.js +47 -0
  295. package/dist/zspec/zcl/index.js.map +1 -0
  296. package/dist/zspec/zcl/utils.d.ts +7 -0
  297. package/dist/zspec/zcl/utils.d.ts.map +1 -0
  298. package/dist/zspec/zcl/utils.js +234 -0
  299. package/dist/zspec/zcl/utils.js.map +1 -0
  300. package/dist/zspec/zcl/zclFrame.d.ts +36 -0
  301. package/dist/zspec/zcl/zclFrame.d.ts.map +1 -0
  302. package/dist/zspec/zcl/zclFrame.js +304 -0
  303. package/dist/zspec/zcl/zclFrame.js.map +1 -0
  304. package/dist/zspec/zcl/zclHeader.d.ts +17 -0
  305. package/dist/zspec/zcl/zclHeader.d.ts.map +1 -0
  306. package/dist/zspec/zcl/zclHeader.js +88 -0
  307. package/dist/zspec/zcl/zclHeader.js.map +1 -0
  308. package/dist/zspec/zcl/zclStatusError.d.ts +6 -0
  309. package/dist/zspec/zcl/zclStatusError.d.ts.map +1 -0
  310. package/dist/zspec/zcl/zclStatusError.js +13 -0
  311. package/dist/zspec/zcl/zclStatusError.js.map +1 -0
  312. package/dist/zspec/zdo/buffaloZdo.d.ts +438 -0
  313. package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -0
  314. package/dist/zspec/zdo/buffaloZdo.js +1892 -0
  315. package/dist/zspec/zdo/buffaloZdo.js.map +1 -0
  316. package/dist/zspec/zdo/definition/clusters.d.ts +624 -0
  317. package/dist/zspec/zdo/definition/clusters.d.ts.map +1 -0
  318. package/dist/zspec/zdo/definition/clusters.js +687 -0
  319. package/dist/zspec/zdo/definition/clusters.js.map +1 -0
  320. package/dist/zspec/zdo/definition/consts.d.ts +13 -0
  321. package/dist/zspec/zdo/definition/consts.d.ts.map +1 -0
  322. package/dist/zspec/zdo/definition/consts.js +16 -0
  323. package/dist/zspec/zdo/definition/consts.js.map +1 -0
  324. package/dist/zspec/zdo/definition/enums.d.ts +75 -0
  325. package/dist/zspec/zdo/definition/enums.d.ts.map +1 -0
  326. package/dist/zspec/zdo/definition/enums.js +97 -0
  327. package/dist/zspec/zdo/definition/enums.js.map +1 -0
  328. package/dist/zspec/zdo/definition/status.d.ts +99 -0
  329. package/dist/zspec/zdo/definition/status.d.ts.map +1 -0
  330. package/dist/zspec/zdo/definition/status.js +109 -0
  331. package/dist/zspec/zdo/definition/status.js.map +1 -0
  332. package/dist/zspec/zdo/definition/tstypes.d.ts +787 -0
  333. package/dist/zspec/zdo/definition/tstypes.d.ts.map +1 -0
  334. package/dist/{zcl/definition/tstype.js → zspec/zdo/definition/tstypes.js} +1 -1
  335. package/dist/zspec/zdo/definition/tstypes.js.map +1 -0
  336. package/dist/zspec/zdo/index.d.ts +7 -0
  337. package/dist/zspec/zdo/index.d.ts.map +1 -0
  338. package/dist/zspec/zdo/index.js +39 -0
  339. package/dist/zspec/zdo/index.js.map +1 -0
  340. package/dist/zspec/zdo/utils.d.ts +25 -0
  341. package/dist/zspec/zdo/utils.d.ts.map +1 -0
  342. package/dist/zspec/zdo/utils.js +75 -0
  343. package/dist/zspec/zdo/utils.js.map +1 -0
  344. package/dist/zspec/zdo/zdoStatusError.d.ts +6 -0
  345. package/dist/zspec/zdo/zdoStatusError.d.ts.map +1 -0
  346. package/dist/zspec/zdo/zdoStatusError.js +13 -0
  347. package/dist/zspec/zdo/zdoStatusError.js.map +1 -0
  348. package/examples/join-and-log.js +7 -12
  349. package/package.json +5 -5
  350. package/dist/adapter/zigate/debug.d.ts +0 -8
  351. package/dist/adapter/zigate/debug.d.ts.map +0 -1
  352. package/dist/adapter/zigate/debug.js +0 -20
  353. package/dist/adapter/zigate/debug.js.map +0 -1
  354. package/dist/buffalo/tstype.d.ts +0 -9
  355. package/dist/buffalo/tstype.d.ts.map +0 -1
  356. package/dist/buffalo/tstype.js.map +0 -1
  357. package/dist/controller/logger-stub.d.ts +0 -7
  358. package/dist/controller/logger-stub.d.ts.map +0 -1
  359. package/dist/controller/logger-stub.js +0 -3
  360. package/dist/controller/logger-stub.js.map +0 -1
  361. package/dist/zcl/buffaloZcl.d.ts +0 -42
  362. package/dist/zcl/buffaloZcl.d.ts.map +0 -1
  363. package/dist/zcl/buffaloZcl.js +0 -595
  364. package/dist/zcl/buffaloZcl.js.map +0 -1
  365. package/dist/zcl/definition/buffaloZclDataType.d.ts +0 -18
  366. package/dist/zcl/definition/buffaloZclDataType.d.ts.map +0 -1
  367. package/dist/zcl/definition/buffaloZclDataType.js +0 -21
  368. package/dist/zcl/definition/buffaloZclDataType.js.map +0 -1
  369. package/dist/zcl/definition/cluster.d.ts +0 -30
  370. package/dist/zcl/definition/cluster.d.ts.map +0 -1
  371. package/dist/zcl/definition/cluster.js +0 -5521
  372. package/dist/zcl/definition/cluster.js.map +0 -1
  373. package/dist/zcl/definition/dataType.d.ts +0 -60
  374. package/dist/zcl/definition/dataType.d.ts.map +0 -1
  375. package/dist/zcl/definition/dataType.js +0 -65
  376. package/dist/zcl/definition/dataType.js.map +0 -1
  377. package/dist/zcl/definition/direction.d.ts +0 -6
  378. package/dist/zcl/definition/direction.d.ts.map +0 -1
  379. package/dist/zcl/definition/direction.js +0 -9
  380. package/dist/zcl/definition/direction.js.map +0 -1
  381. package/dist/zcl/definition/endpointDeviceType.d.ts +0 -5
  382. package/dist/zcl/definition/endpointDeviceType.d.ts.map +0 -1
  383. package/dist/zcl/definition/endpointDeviceType.js +0 -16
  384. package/dist/zcl/definition/endpointDeviceType.js.map +0 -1
  385. package/dist/zcl/definition/foundation.d.ts +0 -12
  386. package/dist/zcl/definition/foundation.d.ts.map +0 -1
  387. package/dist/zcl/definition/foundation.js +0 -168
  388. package/dist/zcl/definition/foundation.js.map +0 -1
  389. package/dist/zcl/definition/frameControl.d.ts +0 -11
  390. package/dist/zcl/definition/frameControl.d.ts.map +0 -1
  391. package/dist/zcl/definition/frameControl.js +0 -3
  392. package/dist/zcl/definition/frameControl.js.map +0 -1
  393. package/dist/zcl/definition/frameType.d.ts +0 -6
  394. package/dist/zcl/definition/frameType.d.ts.map +0 -1
  395. package/dist/zcl/definition/frameType.js +0 -9
  396. package/dist/zcl/definition/frameType.js.map +0 -1
  397. package/dist/zcl/definition/index.d.ts +0 -14
  398. package/dist/zcl/definition/index.d.ts.map +0 -1
  399. package/dist/zcl/definition/index.js +0 -52
  400. package/dist/zcl/definition/index.js.map +0 -1
  401. package/dist/zcl/definition/manufacturerCode.d.ts +0 -1078
  402. package/dist/zcl/definition/manufacturerCode.d.ts.map +0 -1
  403. package/dist/zcl/definition/manufacturerCode.js +0 -1083
  404. package/dist/zcl/definition/manufacturerCode.js.map +0 -1
  405. package/dist/zcl/definition/powerSource.d.ts +0 -5
  406. package/dist/zcl/definition/powerSource.d.ts.map +0 -1
  407. package/dist/zcl/definition/powerSource.js +0 -13
  408. package/dist/zcl/definition/powerSource.js.map +0 -1
  409. package/dist/zcl/definition/status.d.ts +0 -39
  410. package/dist/zcl/definition/status.d.ts.map +0 -1
  411. package/dist/zcl/definition/status.js +0 -42
  412. package/dist/zcl/definition/status.js.map +0 -1
  413. package/dist/zcl/definition/tstype.d.ts +0 -17
  414. package/dist/zcl/definition/tstype.d.ts.map +0 -1
  415. package/dist/zcl/definition/tstype.js.map +0 -1
  416. package/dist/zcl/index.d.ts +0 -17
  417. package/dist/zcl/index.d.ts.map +0 -1
  418. package/dist/zcl/index.js +0 -56
  419. package/dist/zcl/index.js.map +0 -1
  420. package/dist/zcl/tstype.d.ts +0 -57
  421. package/dist/zcl/tstype.d.ts.map +0 -1
  422. package/dist/zcl/tstype.js +0 -10
  423. package/dist/zcl/tstype.js.map +0 -1
  424. package/dist/zcl/utils.d.ts +0 -7
  425. package/dist/zcl/utils.d.ts.map +0 -1
  426. package/dist/zcl/utils.js +0 -165
  427. package/dist/zcl/utils.js.map +0 -1
  428. package/dist/zcl/zclFrame.d.ts +0 -41
  429. package/dist/zcl/zclFrame.d.ts.map +0 -1
  430. package/dist/zcl/zclFrame.js +0 -352
  431. package/dist/zcl/zclFrame.js.map +0 -1
  432. package/dist/zcl/zclHeader.d.ts +0 -9
  433. package/dist/zcl/zclHeader.d.ts.map +0 -1
  434. package/dist/zcl/zclHeader.js.map +0 -1
  435. package/dist/zcl/zclStatusError.d.ts +0 -6
  436. package/dist/zcl/zclStatusError.d.ts.map +0 -1
  437. package/dist/zcl/zclStatusError.js +0 -15
  438. package/dist/zcl/zclStatusError.js.map +0 -1
@@ -1,23 +1,21 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.EZSPAdapterBackup = void 0;
7
- /* istanbul ignore file */
8
- const debug_1 = __importDefault(require("debug"));
9
4
  const types_1 = require("../driver/types");
10
5
  const utils_1 = require("../driver/utils");
6
+ const mz_1 = require("mz");
7
+ const utils_2 = require("../../../utils");
8
+ const logger_1 = require("../../../utils/logger");
9
+ const NS = 'zh:ezsp:backup';
11
10
  class EZSPAdapterBackup {
12
11
  driver;
13
12
  defaultPath;
14
- debug = (0, debug_1.default)("zigbee-herdsman:adapter:ezsp:backup");
15
13
  constructor(driver, path) {
16
14
  this.driver = driver;
17
15
  this.defaultPath = path;
18
16
  }
19
17
  async createBackup() {
20
- this.debug("creating backup");
18
+ logger_1.logger.debug("creating backup", NS);
21
19
  const version = await this.driver.ezsp.version();
22
20
  const linkResult = await this.driver.getKey(types_1.EmberKeyType.TRUST_CENTER_LINK_KEY);
23
21
  const netParams = await this.driver.ezsp.execCommand('getNetworkParameters');
@@ -68,6 +66,36 @@ class EZSPAdapterBackup {
68
66
  devices: []
69
67
  };
70
68
  }
69
+ /**
70
+ * Loads currently stored backup and returns it in internal backup model.
71
+ */
72
+ async getStoredBackup() {
73
+ try {
74
+ await mz_1.fs.access(this.defaultPath);
75
+ }
76
+ catch (error) {
77
+ return null;
78
+ }
79
+ let data;
80
+ try {
81
+ data = JSON.parse((await mz_1.fs.readFile(this.defaultPath)).toString());
82
+ }
83
+ catch (error) {
84
+ throw new Error('Coordinator backup is corrupted');
85
+ }
86
+ if (data.metadata?.format === "zigpy/open-coordinator-backup" && data.metadata?.version) {
87
+ if (data.metadata?.version !== 1) {
88
+ throw new Error(`Unsupported open coordinator backup version (version=${data.metadata?.version})`);
89
+ }
90
+ if (!data.metadata.internal?.ezspVersion) {
91
+ throw new Error(`This open coordinator backup format not for EZSP adapter`);
92
+ }
93
+ return utils_2.BackupUtils.fromUnifiedBackup(data);
94
+ }
95
+ else {
96
+ throw new Error("Unknown backup format");
97
+ }
98
+ }
71
99
  }
72
100
  exports.EZSPAdapterBackup = EZSPAdapterBackup;
73
101
  //# sourceMappingURL=backup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../../../src/adapter/ezsp/adapter/backup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../../../src/adapter/ezsp/adapter/backup.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,17 @@
1
1
  /// <reference types="node" />
2
2
  import { NetworkOptions, SerialPortOptions, Coordinator, CoordinatorVersion, NodeDescriptor, ActiveEndpoints, SimpleDescriptor, LQI, RoutingTable, NetworkParameters, StartResult, AdapterOptions } from '../../tstype';
3
3
  import Adapter from '../../adapter';
4
- import { ZclFrame, FrameType, Direction } from '../../../zcl';
4
+ import * as Zcl from '../../../zspec/zcl';
5
5
  import * as Events from '../../events';
6
6
  import * as Models from "../../../models";
7
+ import { BroadcastAddress } from '../../../zspec/enums';
7
8
  declare class EZSPAdapter extends Adapter {
8
9
  private driver;
9
10
  private waitress;
10
11
  private interpanLock;
11
- private backupMan;
12
12
  private queue;
13
13
  private closing;
14
+ private deprecatedTimer;
14
15
  constructor(networkOptions: NetworkOptions, serialPortOptions: SerialPortOptions, backupPath: string, adapterOptions: AdapterOptions);
15
16
  private processMessage;
16
17
  private handleDeviceJoin;
@@ -34,10 +35,10 @@ declare class EZSPAdapter extends Adapter {
34
35
  private nodeDescriptorInternal;
35
36
  activeEndpoints(networkAddress: number): Promise<ActiveEndpoints>;
36
37
  simpleDescriptor(networkAddress: number, endpointID: number): Promise<SimpleDescriptor>;
37
- sendZclFrameToEndpoint(ieeeAddr: string, networkAddress: number, endpoint: number, zclFrame: ZclFrame, timeout: number, disableResponse: boolean, disableRecovery: boolean, sourceEndpoint?: number): Promise<Events.ZclDataPayload>;
38
+ sendZclFrameToEndpoint(ieeeAddr: string, networkAddress: number, endpoint: number, zclFrame: Zcl.Frame, timeout: number, disableResponse: boolean, disableRecovery: boolean, sourceEndpoint?: number): Promise<Events.ZclPayload>;
38
39
  private sendZclFrameToEndpointInternal;
39
- sendZclFrameToGroup(groupID: number, zclFrame: ZclFrame): Promise<void>;
40
- sendZclFrameToAll(endpoint: number, zclFrame: ZclFrame, sourceEndpoint: number): Promise<void>;
40
+ sendZclFrameToGroup(groupID: number, zclFrame: Zcl.Frame): Promise<void>;
41
+ sendZclFrameToAll(endpoint: number, zclFrame: Zcl.Frame, sourceEndpoint: number, destination: BroadcastAddress): Promise<void>;
41
42
  bind(destinationNetworkAddress: number, sourceIeeeAddress: string, sourceEndpoint: number, clusterID: number, destinationAddressOrGroup: string | number, type: 'endpoint' | 'group', destinationEndpoint?: number): Promise<void>;
42
43
  unbind(destinationNetworkAddress: number, sourceIeeeAddress: string, sourceEndpoint: number, clusterID: number, destinationAddressOrGroup: string | number, type: 'endpoint' | 'group', destinationEndpoint: number): Promise<void>;
43
44
  removeDevice(networkAddress: number, ieeeAddr: string): Promise<void>;
@@ -46,13 +47,15 @@ declare class EZSPAdapter extends Adapter {
46
47
  backup(): Promise<Models.Backup>;
47
48
  restoreChannelInterPAN(): Promise<void>;
48
49
  private checkInterpanLock;
49
- sendZclFrameInterPANToIeeeAddr(zclFrame: ZclFrame, ieeeAddr: string): Promise<void>;
50
- sendZclFrameInterPANBroadcast(zclFrame: ZclFrame, timeout: number): Promise<Events.ZclDataPayload>;
50
+ sendZclFrameInterPANToIeeeAddr(zclFrame: Zcl.Frame, ieeeAddr: string): Promise<void>;
51
+ sendZclFrameInterPANBroadcast(zclFrame: Zcl.Frame, timeout: number): Promise<Events.ZclPayload>;
52
+ supportsChangeChannel(): Promise<boolean>;
53
+ changeChannel(newChannel: number): Promise<void>;
51
54
  setTransmitPower(value: number): Promise<void>;
52
55
  setChannelInterPAN(channel: number): Promise<void>;
53
56
  private waitForInternal;
54
- waitFor(networkAddress: number, endpoint: number, frameType: FrameType, direction: Direction, transactionSequenceNumber: number, clusterID: number, commandIdentifier: number, timeout: number): {
55
- promise: Promise<Events.ZclDataPayload>;
57
+ waitFor(networkAddress: number, endpoint: number, frameType: Zcl.FrameType, direction: Zcl.Direction, transactionSequenceNumber: number, clusterID: number, commandIdentifier: number, timeout: number): {
58
+ promise: Promise<Events.ZclPayload>;
56
59
  cancel: () => void;
57
60
  };
58
61
  private waitressTimeoutFormatter;
@@ -1 +1 @@
1
- {"version":3,"file":"ezspAdapter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/ezsp/adapter/ezspAdapter.ts"],"names":[],"mappings":";AACA,OAAO,EACH,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAClF,eAAe,EAAE,gBAAgB,EAAE,GAAG,EAAE,YAAY,EAAE,iBAAiB,EACvE,WAAW,EAAkC,cAAc,EAC9D,MAAM,cAAc,CAAC;AAEtB,OAAO,OAAO,MAAM,eAAe,CAAC;AAKpC,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAqB1C,cAAM,WAAY,SAAQ,OAAO;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAmD;IACnE,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,OAAO,CAAU;gBAGN,cAAc,EAAE,cAAc,EAC7C,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc;YAqB9E,cAAc;YAqFd,gBAAgB;IAgB9B,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAI7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;WAQvB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAc3C,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAMxC,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAkCtC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlE,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIpD,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,GAAG,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA8CzC,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA2C3D,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YAc9D,sBAAsB;IAYvB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAWjE,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkBvF,sBAAsB,CAC/B,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAC/F,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,GAC5E,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;YAUnB,8BAA8B;IA6D/B,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB9F,IAAI,CACb,yBAAyB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EACpF,SAAS,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,EACzF,mBAAmB,CAAC,EAAE,MAAM,GAC7B,OAAO,CAAC,IAAI,CAAC;IA2BH,MAAM,CACf,yBAAyB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EACpF,SAAS,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,EACzF,mBAAmB,EAAE,MAAM,GAC5B,OAAO,CAAC,IAAI,CAAC;IA2BT,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/D,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAQlD,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IAMhC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpD,OAAO,CAAC,iBAAiB;IAMZ,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnF,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;IAkClG,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9C,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/D,OAAO,CAAC,eAAe;IAahB,OAAO,CACV,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EACpF,yBAAyB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GACjG;QAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE;IASlE,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,iBAAiB;CAQ5B;AAGD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ezspAdapter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/ezsp/adapter/ezspAdapter.ts"],"names":[],"mappings":"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"}
@@ -26,17 +26,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- const debug_1 = __importDefault(require("debug"));
30
29
  const adapter_1 = __importDefault(require("../../adapter"));
31
- const debug = (0, debug_1.default)("zigbee-herdsman:adapter:ezsp:debg");
32
30
  const driver_1 = require("../driver");
33
31
  const types_1 = require("../driver/types");
34
- const zcl_1 = require("../../../zcl");
32
+ const Zcl = __importStar(require("../../../zspec/zcl"));
35
33
  const Events = __importStar(require("../../events"));
36
34
  const utils_1 = require("../../../utils");
37
35
  const serialPortUtils_1 = __importDefault(require("../../serialPortUtils"));
38
36
  const socketPortUtils_1 = __importDefault(require("../../socketPortUtils"));
39
- const backup_1 = require("./backup");
37
+ const logger_1 = require("../../../utils/logger");
38
+ const NS = 'zh:ezsp';
40
39
  const autoDetectDefinitions = [
41
40
  { manufacturer: 'ITEAD', vendorId: '1a86', productId: '55d4' }, // Sonoff ZBDongle-E
42
41
  { manufacturer: 'Nabu Casa', vendorId: '10c4', productId: 'ea60' }, // Home Assistant SkyConnect
@@ -45,26 +44,25 @@ class EZSPAdapter extends adapter_1.default {
45
44
  driver;
46
45
  waitress;
47
46
  interpanLock;
48
- backupMan;
49
47
  queue;
50
48
  closing;
49
+ deprecatedTimer;
51
50
  constructor(networkOptions, serialPortOptions, backupPath, adapterOptions) {
52
51
  super(networkOptions, serialPortOptions, backupPath, adapterOptions);
53
52
  this.waitress = new utils_1.Waitress(this.waitressValidator, this.waitressTimeoutFormatter);
54
53
  this.interpanLock = false;
55
54
  this.closing = false;
56
55
  const concurrent = adapterOptions && adapterOptions.concurrent ? adapterOptions.concurrent : 8;
57
- debug(`Adapter concurrent: ${concurrent}`);
56
+ logger_1.logger.debug(`Adapter concurrent: ${concurrent}`, NS);
58
57
  this.queue = new utils_1.Queue(concurrent);
59
- this.driver = new driver_1.Driver(this.serialPortOptions, this.networkOptions, this.greenPowerGroup);
58
+ this.driver = new driver_1.Driver(this.serialPortOptions, this.networkOptions, this.greenPowerGroup, backupPath);
60
59
  this.driver.on('close', this.onDriverClose.bind(this));
61
60
  this.driver.on('deviceJoined', this.handleDeviceJoin.bind(this));
62
61
  this.driver.on('deviceLeft', this.handleDeviceLeft.bind(this));
63
62
  this.driver.on('incomingMessage', this.processMessage.bind(this));
64
- this.backupMan = new backup_1.EZSPAdapterBackup(this.driver, backupPath);
65
63
  }
66
64
  async processMessage(frame) {
67
- debug(`processMessage: ${JSON.stringify(frame)}`);
65
+ logger_1.logger.debug(`processMessage: ${JSON.stringify(frame)}`, NS);
68
66
  if (frame.apsFrame.profileId == 0) {
69
67
  if (frame.apsFrame.clusterId == types_1.EmberZDOCmd.Device_annce &&
70
68
  frame.apsFrame.destinationEndpoint == 0) {
@@ -73,41 +71,30 @@ class EZSPAdapter extends adapter_1.default {
73
71
  [nwk, rst] = types_1.uint16_t.deserialize(types_1.uint16_t, frame.message.subarray(1));
74
72
  [ieee, rst] = types_1.EmberEUI64.deserialize(types_1.EmberEUI64, rst);
75
73
  ieee = new types_1.EmberEUI64(ieee);
76
- debug("ZDO Device announce: %s, %s", nwk, ieee.toString());
74
+ logger_1.logger.debug(`ZDO Device announce: ${nwk}, ${ieee.toString()}`, NS);
77
75
  this.driver.handleNodeJoined(nwk, ieee);
78
76
  }
79
77
  }
80
78
  else if (frame.apsFrame.profileId == 260 || frame.apsFrame.profileId == 0xFFFF) {
81
- try {
82
- const payload = {
83
- frame: zcl_1.ZclFrame.fromBuffer(frame.apsFrame.clusterId, frame.message),
84
- address: frame.sender,
85
- endpoint: frame.apsFrame.sourceEndpoint,
86
- linkquality: frame.lqi,
87
- groupID: frame.apsFrame.groupId,
88
- wasBroadcast: false, // TODO
89
- destinationEndpoint: frame.apsFrame.destinationEndpoint,
90
- };
91
- this.waitress.resolve(payload);
92
- this.emit(Events.Events.zclData, payload);
93
- }
94
- catch (error) {
95
- const payload = {
96
- clusterID: frame.apsFrame.clusterId,
97
- data: frame.message,
98
- address: frame.sender,
99
- endpoint: frame.apsFrame.sourceEndpoint,
100
- linkquality: frame.lqi,
101
- groupID: frame.apsFrame.groupId,
102
- wasBroadcast: false, // TODO
103
- destinationEndpoint: frame.apsFrame.destinationEndpoint,
104
- };
105
- this.emit(Events.Events.rawData, payload);
106
- }
79
+ const payload = {
80
+ clusterID: frame.apsFrame.clusterId,
81
+ header: Zcl.Header.fromBuffer(frame.message),
82
+ data: frame.message,
83
+ address: frame.sender,
84
+ endpoint: frame.apsFrame.sourceEndpoint,
85
+ linkquality: frame.lqi,
86
+ groupID: frame.apsFrame.groupId,
87
+ wasBroadcast: false, // TODO
88
+ destinationEndpoint: frame.apsFrame.destinationEndpoint,
89
+ };
90
+ this.waitress.resolve(payload);
91
+ this.emit(Events.Events.zclPayload, payload);
107
92
  }
108
93
  else if (frame.apsFrame.profileId == 0xc05e && frame.senderEui64) { // ZLL Frame
109
94
  const payload = {
110
- frame: zcl_1.ZclFrame.fromBuffer(frame.apsFrame.clusterId, frame.message),
95
+ clusterID: frame.apsFrame.clusterId,
96
+ header: Zcl.Header.fromBuffer(frame.message),
97
+ data: frame.message,
111
98
  address: `0x${frame.senderEui64.toString()}`,
112
99
  endpoint: 0xFE,
113
100
  linkquality: frame.lqi,
@@ -116,16 +103,17 @@ class EZSPAdapter extends adapter_1.default {
116
103
  destinationEndpoint: null,
117
104
  };
118
105
  this.waitress.resolve(payload);
119
- this.emit(Events.Events.zclData, payload);
106
+ this.emit(Events.Events.zclPayload, payload);
120
107
  }
121
108
  else if (frame.apsFrame.profileId == 0xA1E0) { // GP Frame
122
109
  // Only handle when clusterId == 33 (greenPower), some devices send messages with this profileId
123
110
  // while the cluster is not greenPower
124
111
  // https://github.com/Koenkk/zigbee2mqtt/issues/20838
125
112
  if (frame.apsFrame.clusterId === 33) {
126
- const zclFrame = zcl_1.ZclFrame.create(zcl_1.FrameType.SPECIFIC, zcl_1.Direction.CLIENT_TO_SERVER, true, null, frame.apsFrame.sequence, (frame.messageType == 0xE0) ? 'commissioningNotification' : 'notification', frame.apsFrame.clusterId, frame.message);
127
113
  const payload = {
128
- frame: zclFrame,
114
+ header: Zcl.Header.fromBuffer(frame.message),
115
+ clusterID: frame.apsFrame.clusterId,
116
+ data: frame.message,
129
117
  address: frame.sender,
130
118
  endpoint: frame.apsFrame.sourceEndpoint,
131
119
  linkquality: frame.lqi,
@@ -134,10 +122,10 @@ class EZSPAdapter extends adapter_1.default {
134
122
  destinationEndpoint: frame.apsFrame.sourceEndpoint,
135
123
  };
136
124
  this.waitress.resolve(payload);
137
- this.emit(Events.Events.zclData, payload);
125
+ this.emit(Events.Events.zclPayload, payload);
138
126
  }
139
127
  else {
140
- debug(`Ignoring GP frame because clusterId is not greenPower`);
128
+ logger_1.logger.debug(`Ignoring GP frame because clusterId is not greenPower`, NS);
141
129
  }
142
130
  }
143
131
  this.emit('event', frame);
@@ -145,7 +133,7 @@ class EZSPAdapter extends adapter_1.default {
145
133
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
146
134
  async handleDeviceJoin(arr) {
147
135
  const [nwk, ieee] = arr;
148
- debug('Device join request received: %s %s', nwk, ieee.toString('hex'));
136
+ logger_1.logger.debug(`Device join request received: ${nwk} ${ieee.toString('hex')}`, NS);
149
137
  const payload = {
150
138
  networkAddress: nwk,
151
139
  ieeeAddr: `0x${ieee.toString('hex')}`,
@@ -160,7 +148,7 @@ class EZSPAdapter extends adapter_1.default {
160
148
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
161
149
  handleDeviceLeft(arr) {
162
150
  const [nwk, ieee] = arr;
163
- debug('Device left network request received: %s %s', nwk, ieee);
151
+ logger_1.logger.debug(`Device left network request received: ${nwk} ${ieee}`, NS);
164
152
  const payload = {
165
153
  networkAddress: nwk,
166
154
  ieeeAddr: `0x${ieee.toString('hex')}`,
@@ -171,14 +159,22 @@ class EZSPAdapter extends adapter_1.default {
171
159
  * Adapter methods
172
160
  */
173
161
  async start() {
162
+ const logEzspDeprecated = () => {
163
+ const message = `Deprecated driver 'ezsp' currently in use, 'ember' will become the officially supported EmberZNet ` +
164
+ `driver in next release. If using Zigbee2MQTT see https://github.com/Koenkk/zigbee2mqtt/discussions/21462`;
165
+ logger_1.logger.warning(message, NS);
166
+ };
167
+ logEzspDeprecated();
168
+ this.deprecatedTimer = setInterval(logEzspDeprecated, 60 * 60 * 1000); // Every 60 mins
174
169
  return this.driver.startup();
175
170
  }
176
171
  async stop() {
177
172
  this.closing = true;
173
+ clearInterval(this.deprecatedTimer);
178
174
  await this.driver.stop();
179
175
  }
180
176
  async onDriverClose() {
181
- debug(`onDriverClose()`);
177
+ logger_1.logger.debug(`onDriverClose()`, NS);
182
178
  if (!this.closing) {
183
179
  this.emit(Events.Events.disconnected);
184
180
  }
@@ -192,7 +188,7 @@ class EZSPAdapter extends adapter_1.default {
192
188
  return serialPortUtils_1.default.is((0, utils_1.RealpathSync)(path), autoDetectDefinitions);
193
189
  }
194
190
  catch (error) {
195
- debug(`Failed to determine if path is valid: '${error}'`);
191
+ logger_1.logger.debug(`Failed to determine if path is valid: '${error}'`, NS);
196
192
  return false;
197
193
  }
198
194
  }
@@ -329,12 +325,12 @@ class EZSPAdapter extends adapter_1.default {
329
325
  return this.queue.execute(async () => {
330
326
  this.checkInterpanLock();
331
327
  try {
332
- debug(`Requesting 'Node Descriptor' for '${networkAddress}'`);
328
+ logger_1.logger.debug(`Requesting 'Node Descriptor' for '${networkAddress}'`, NS);
333
329
  const result = await this.nodeDescriptorInternal(networkAddress);
334
330
  return result;
335
331
  }
336
332
  catch (error) {
337
- debug(`Node descriptor request for '${networkAddress}' failed (${error}), retry`);
333
+ logger_1.logger.debug(`Node descriptor request for '${networkAddress}' failed (${error}), retry`, NS);
338
334
  throw error;
339
335
  }
340
336
  });
@@ -348,14 +344,14 @@ class EZSPAdapter extends adapter_1.default {
348
344
  };
349
345
  }
350
346
  async activeEndpoints(networkAddress) {
351
- debug(`Requesting 'Active endpoints' for '${networkAddress}'`);
347
+ logger_1.logger.debug(`Requesting 'Active endpoints' for '${networkAddress}'`, NS);
352
348
  return this.queue.execute(async () => {
353
349
  const endpoints = await this.driver.zdoRequest(networkAddress, types_1.EmberZDOCmd.Active_EP_req, types_1.EmberZDOCmd.Active_EP_rsp, { dstaddr: networkAddress });
354
350
  return { endpoints: [...endpoints.activeeplist] };
355
351
  }, networkAddress);
356
352
  }
357
353
  async simpleDescriptor(networkAddress, endpointID) {
358
- debug(`Requesting 'Simple Descriptor' for '${networkAddress}' endpoint ${endpointID}`);
354
+ logger_1.logger.debug(`Requesting 'Simple Descriptor' for '${networkAddress}' endpoint ${endpointID}`, NS);
359
355
  return this.queue.execute(async () => {
360
356
  this.checkInterpanLock();
361
357
  const descriptor = await this.driver.zdoRequest(networkAddress, types_1.EmberZDOCmd.Simple_Desc_req, types_1.EmberZDOCmd.Simple_Desc_rsp, { dstaddr: networkAddress, targetEp: endpointID });
@@ -378,16 +374,17 @@ class EZSPAdapter extends adapter_1.default {
378
374
  if (ieeeAddr == null) {
379
375
  ieeeAddr = `0x${this.driver.ieee.toString()}`;
380
376
  }
381
- debug('sendZclFrameToEndpointInternal %s:%i/%i (%i,%i,%i), timeout=%i', ieeeAddr, networkAddress, endpoint, responseAttempt, dataRequestAttempt, this.queue.count(), timeout);
377
+ logger_1.logger.debug(`sendZclFrameToEndpointInternal ${ieeeAddr}:${networkAddress}/${endpoint} `
378
+ + `(${responseAttempt},${dataRequestAttempt},${this.queue.count()}), timeout=${timeout}`, NS);
382
379
  let response = null;
383
- const command = zclFrame.getCommand();
380
+ const command = zclFrame.command;
384
381
  if (command.hasOwnProperty('response') && disableResponse === false) {
385
- response = this.waitForInternal(networkAddress, endpoint, zclFrame.Header.transactionSequenceNumber, zclFrame.Cluster.ID, command.response, timeout);
382
+ response = this.waitForInternal(networkAddress, endpoint, zclFrame.header.transactionSequenceNumber, zclFrame.cluster.ID, command.response, timeout);
386
383
  }
387
- else if (!zclFrame.Header.frameControl.disableDefaultResponse) {
388
- response = this.waitForInternal(networkAddress, endpoint, zclFrame.Header.transactionSequenceNumber, zclFrame.Cluster.ID, zcl_1.Foundation.defaultRsp.ID, timeout);
384
+ else if (!zclFrame.header.frameControl.disableDefaultResponse) {
385
+ response = this.waitForInternal(networkAddress, endpoint, zclFrame.header.transactionSequenceNumber, zclFrame.cluster.ID, Zcl.Foundation.defaultRsp.ID, timeout);
389
386
  }
390
- const frame = this.driver.makeApsFrame(zclFrame.Cluster.ID, disableResponse || zclFrame.Header.frameControl.disableDefaultResponse);
387
+ const frame = this.driver.makeApsFrame(zclFrame.cluster.ID, disableResponse || zclFrame.header.frameControl.disableDefaultResponse);
391
388
  frame.profileId = 0x0104;
392
389
  frame.sourceEndpoint = sourceEndpoint || 0x01;
393
390
  frame.destinationEndpoint = endpoint;
@@ -406,7 +403,7 @@ class EZSPAdapter extends adapter_1.default {
406
403
  return result;
407
404
  }
408
405
  catch (error) {
409
- debug('Response timeout (%s:%d,%d)', ieeeAddr, networkAddress, responseAttempt);
406
+ logger_1.logger.debug(`Response timeout (${ieeeAddr}:${networkAddress},${responseAttempt})`, NS);
410
407
  if (responseAttempt < 1 && !disableRecovery) {
411
408
  return this.sendZclFrameToEndpointInternal(ieeeAddr, networkAddress, endpoint, sourceEndpoint, zclFrame, timeout, disableResponse, disableRecovery, responseAttempt + 1, dataRequestAttempt, checkedNetworkAddress, discoveredRoute, assocRemove, assocRestore);
412
409
  }
@@ -422,7 +419,7 @@ class EZSPAdapter extends adapter_1.default {
422
419
  async sendZclFrameToGroup(groupID, zclFrame) {
423
420
  return this.queue.execute(async () => {
424
421
  this.checkInterpanLock();
425
- const frame = this.driver.makeApsFrame(zclFrame.Cluster.ID, false);
422
+ const frame = this.driver.makeApsFrame(zclFrame.cluster.ID, false);
426
423
  frame.profileId = 0x0104;
427
424
  frame.sourceEndpoint = 0x01;
428
425
  frame.destinationEndpoint = 0x01;
@@ -436,14 +433,14 @@ class EZSPAdapter extends adapter_1.default {
436
433
  await (0, utils_1.Wait)(200);
437
434
  });
438
435
  }
439
- async sendZclFrameToAll(endpoint, zclFrame, sourceEndpoint) {
436
+ async sendZclFrameToAll(endpoint, zclFrame, sourceEndpoint, destination) {
440
437
  return this.queue.execute(async () => {
441
438
  this.checkInterpanLock();
442
- const frame = this.driver.makeApsFrame(zclFrame.Cluster.ID, false);
439
+ const frame = this.driver.makeApsFrame(zclFrame.cluster.ID, false);
443
440
  frame.profileId = sourceEndpoint === 242 && endpoint === 242 ? 0xA1E0 : 0x0104;
444
441
  frame.sourceEndpoint = sourceEndpoint;
445
442
  frame.destinationEndpoint = endpoint;
446
- frame.groupId = 0xFFFD;
443
+ frame.groupId = destination;
447
444
  await this.driver.mrequest(frame, zclFrame.toBuffer());
448
445
  /**
449
446
  * As a broadcast command is not confirmed and thus immidiately returns
@@ -517,11 +514,11 @@ class EZSPAdapter extends adapter_1.default {
517
514
  };
518
515
  }
519
516
  async supportsBackup() {
520
- return (this.driver?.ezsp?.ezspV < 13);
517
+ return true;
521
518
  }
522
519
  async backup() {
523
520
  if (this.driver.ezsp.isInitialized()) {
524
- return this.backupMan.createBackup();
521
+ return this.driver.backupMan.createBackup();
525
522
  }
526
523
  }
527
524
  async restoreChannelInterPAN() {
@@ -540,7 +537,7 @@ class EZSPAdapter extends adapter_1.default {
540
537
  }
541
538
  async sendZclFrameInterPANToIeeeAddr(zclFrame, ieeeAddr) {
542
539
  return this.queue.execute(async () => {
543
- debug(`sendZclFrameInterPANToIeeeAddr to ${ieeeAddr}`);
540
+ logger_1.logger.debug(`sendZclFrameInterPANToIeeeAddr to ${ieeeAddr}`, NS);
544
541
  try {
545
542
  const frame = this.driver.makeEmberIeeeRawFrame();
546
543
  frame.ieeeFrameControl = 0xcc21;
@@ -550,7 +547,7 @@ class EZSPAdapter extends adapter_1.default {
550
547
  frame.sourceAddress = this.driver.ieee;
551
548
  frame.nwkFrameControl = 0x000b;
552
549
  frame.appFrameControl = 0x03;
553
- frame.clusterId = zclFrame.Cluster.ID;
550
+ frame.clusterId = zclFrame.cluster.ID;
554
551
  frame.profileId = 0xc05e;
555
552
  await this.driver.ieeerawrequest(frame, zclFrame.toBuffer());
556
553
  }
@@ -561,12 +558,12 @@ class EZSPAdapter extends adapter_1.default {
561
558
  }
562
559
  async sendZclFrameInterPANBroadcast(zclFrame, timeout) {
563
560
  return this.queue.execute(async () => {
564
- debug(`sendZclFrameInterPANBroadcast`);
565
- const command = zclFrame.getCommand();
561
+ logger_1.logger.debug(`sendZclFrameInterPANBroadcast`, NS);
562
+ const command = zclFrame.command;
566
563
  if (!command.hasOwnProperty('response')) {
567
564
  throw new Error(`Command '${command.name}' has no response, cannot wait for response`);
568
565
  }
569
- const response = this.waitForInternal(null, 0xFE, null, zclFrame.Cluster.ID, command.response, timeout);
566
+ const response = this.waitForInternal(null, 0xFE, null, zclFrame.cluster.ID, command.response, timeout);
570
567
  try {
571
568
  const frame = this.driver.makeEmberRawFrame();
572
569
  frame.ieeeFrameControl = 0xc801;
@@ -576,7 +573,7 @@ class EZSPAdapter extends adapter_1.default {
576
573
  frame.ieeeAddress = this.driver.ieee;
577
574
  frame.nwkFrameControl = 0x000b;
578
575
  frame.appFrameControl = 0x0b;
579
- frame.clusterId = zclFrame.Cluster.ID;
576
+ frame.clusterId = zclFrame.cluster.ID;
580
577
  frame.profileId = 0xc05e;
581
578
  await this.driver.rawrequest(frame, zclFrame.toBuffer());
582
579
  }
@@ -587,8 +584,15 @@ class EZSPAdapter extends adapter_1.default {
587
584
  return response.start().promise;
588
585
  });
589
586
  }
587
+ async supportsChangeChannel() {
588
+ return false;
589
+ }
590
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
591
+ async changeChannel(newChannel) {
592
+ return Promise.reject(new Error("Not supported"));
593
+ }
590
594
  async setTransmitPower(value) {
591
- debug(`setTransmitPower to ${value}`);
595
+ logger_1.logger.debug(`setTransmitPower to ${value}`, NS);
592
596
  return this.queue.execute(async () => {
593
597
  await this.driver.setRadioPower(value);
594
598
  });
@@ -618,12 +622,12 @@ class EZSPAdapter extends adapter_1.default {
618
622
  ` - ${matcher.commandIdentifier} after ${timeout}ms`;
619
623
  }
620
624
  waitressValidator(payload, matcher) {
621
- const transactionSequenceNumber = payload.frame.Header.transactionSequenceNumber;
622
- return (!matcher.address || payload.address === matcher.address) &&
625
+ return payload.header &&
626
+ (!matcher.address || payload.address === matcher.address) &&
623
627
  payload.endpoint === matcher.endpoint &&
624
- (!matcher.transactionSequenceNumber || transactionSequenceNumber === matcher.transactionSequenceNumber) &&
625
- payload.frame.Cluster.ID === matcher.clusterID &&
626
- matcher.commandIdentifier === payload.frame.Header.commandIdentifier;
628
+ (!matcher.transactionSequenceNumber || payload.header.transactionSequenceNumber === matcher.transactionSequenceNumber) &&
629
+ payload.clusterID === matcher.clusterID &&
630
+ matcher.commandIdentifier === payload.header.commandIdentifier;
627
631
  }
628
632
  }
629
633
  exports.default = EZSPAdapter;