@willieee802/zigbee-herdsman 0.36.0 → 0.48.2

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 (441) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +317 -0
  3. package/dist/adapter/adapter.d.ts +15 -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 +32 -36
  21. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
  22. package/dist/adapter/ember/adapter/emberAdapter.js +418 -446
  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 +10 -2
  29. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
  30. package/dist/adapter/ember/adapter/oneWaitress.js +19 -5
  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 +16 -21
  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 +12 -14
  44. package/dist/adapter/ember/enums.d.ts.map +1 -1
  45. package/dist/adapter/ember/enums.js +12 -14
  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 -2
  50. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
  51. package/dist/adapter/ember/ezsp/ezsp.js +218 -199
  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 +11 -5
  56. package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
  57. package/dist/adapter/ember/uart/ash.js +125 -93
  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/utils/math.d.ts.map +1 -1
  71. package/dist/adapter/ember/zdo.d.ts +6 -2
  72. package/dist/adapter/ember/zdo.d.ts.map +1 -1
  73. package/dist/adapter/ember/zdo.js +2 -2
  74. package/dist/adapter/ember/zdo.js.map +1 -1
  75. package/dist/adapter/events.d.ts +17 -23
  76. package/dist/adapter/events.d.ts.map +1 -1
  77. package/dist/adapter/events.js +1 -2
  78. package/dist/adapter/events.js.map +1 -1
  79. package/dist/adapter/ezsp/adapter/backup.d.ts +0 -1
  80. package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
  81. package/dist/adapter/ezsp/adapter/backup.js +3 -7
  82. package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
  83. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +13 -10
  84. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  85. package/dist/adapter/ezsp/adapter/ezspAdapter.js +79 -72
  86. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  87. package/dist/adapter/ezsp/driver/commands.d.ts.map +1 -1
  88. package/dist/adapter/ezsp/driver/commands.js +3 -5
  89. package/dist/adapter/ezsp/driver/commands.js.map +1 -1
  90. package/dist/adapter/ezsp/driver/driver.d.ts +1 -4
  91. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  92. package/dist/adapter/ezsp/driver/driver.js +101 -122
  93. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  94. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  95. package/dist/adapter/ezsp/driver/ezsp.js +61 -50
  96. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  97. package/dist/adapter/ezsp/driver/multicast.d.ts.map +1 -1
  98. package/dist/adapter/ezsp/driver/multicast.js +8 -12
  99. package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
  100. package/dist/adapter/ezsp/driver/parser.js +5 -5
  101. package/dist/adapter/ezsp/driver/parser.js.map +1 -1
  102. package/dist/adapter/ezsp/driver/types/basic.js +1 -1
  103. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  104. package/dist/adapter/ezsp/driver/types/named.js +2 -2
  105. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  106. package/dist/adapter/ezsp/driver/types/struct.js +2 -2
  107. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  108. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  109. package/dist/adapter/ezsp/driver/uart.js +46 -46
  110. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  111. package/dist/adapter/ezsp/driver/writer.js +3 -6
  112. package/dist/adapter/ezsp/driver/writer.js.map +1 -1
  113. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +0 -1
  114. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
  115. package/dist/adapter/z-stack/adapter/adapter-backup.js +25 -29
  116. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  117. package/dist/adapter/z-stack/adapter/endpoints.js +4 -4
  118. package/dist/adapter/z-stack/adapter/endpoints.js.map +1 -1
  119. package/dist/adapter/z-stack/adapter/manager.d.ts +1 -4
  120. package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
  121. package/dist/adapter/z-stack/adapter/manager.js +52 -61
  122. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  123. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +14 -10
  124. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  125. package/dist/adapter/z-stack/adapter/zStackAdapter.js +95 -69
  126. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  127. package/dist/adapter/z-stack/unpi/parser.d.ts +3 -1
  128. package/dist/adapter/z-stack/unpi/parser.d.ts.map +1 -1
  129. package/dist/adapter/z-stack/unpi/parser.js +18 -8
  130. package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
  131. package/dist/adapter/z-stack/unpi/writer.d.ts +3 -2
  132. package/dist/adapter/z-stack/unpi/writer.d.ts.map +1 -1
  133. package/dist/adapter/z-stack/unpi/writer.js +21 -11
  134. package/dist/adapter/z-stack/unpi/writer.js.map +1 -1
  135. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +4 -2
  136. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts.map +1 -1
  137. package/dist/adapter/z-stack/znp/buffaloZnp.js +154 -25
  138. package/dist/adapter/z-stack/znp/buffaloZnp.js.map +1 -1
  139. package/dist/adapter/z-stack/znp/definition.d.ts.map +1 -1
  140. package/dist/adapter/z-stack/znp/definition.js +2 -1
  141. package/dist/adapter/z-stack/znp/definition.js.map +1 -1
  142. package/dist/adapter/z-stack/znp/tstype.d.ts +4 -3
  143. package/dist/adapter/z-stack/znp/tstype.d.ts.map +1 -1
  144. package/dist/adapter/z-stack/znp/znp.d.ts +3 -1
  145. package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
  146. package/dist/adapter/z-stack/znp/znp.js +27 -32
  147. package/dist/adapter/z-stack/znp/znp.js.map +1 -1
  148. package/dist/adapter/z-stack/znp/zpiObject.js +2 -2
  149. package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
  150. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +13 -12
  151. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
  152. package/dist/adapter/zigate/adapter/zigateAdapter.js +81 -90
  153. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  154. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +7 -8
  155. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +1 -1
  156. package/dist/adapter/zigate/driver/buffaloZiGate.js +150 -100
  157. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
  158. package/dist/adapter/zigate/driver/commandType.d.ts +2 -1
  159. package/dist/adapter/zigate/driver/commandType.d.ts.map +1 -1
  160. package/dist/adapter/zigate/driver/commandType.js +56 -52
  161. package/dist/adapter/zigate/driver/commandType.js.map +1 -1
  162. package/dist/adapter/zigate/driver/frame.d.ts.map +1 -1
  163. package/dist/adapter/zigate/driver/frame.js +8 -8
  164. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  165. package/dist/adapter/zigate/driver/messageType.d.ts +2 -1
  166. package/dist/adapter/zigate/driver/messageType.d.ts.map +1 -1
  167. package/dist/adapter/zigate/driver/messageType.js +113 -108
  168. package/dist/adapter/zigate/driver/messageType.js.map +1 -1
  169. package/dist/adapter/zigate/driver/parameterType.d.ts +8 -1
  170. package/dist/adapter/zigate/driver/parameterType.d.ts.map +1 -1
  171. package/dist/adapter/zigate/driver/parameterType.js +9 -0
  172. package/dist/adapter/zigate/driver/parameterType.js.map +1 -1
  173. package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +1 -1
  174. package/dist/adapter/zigate/driver/ziGateObject.js +9 -9
  175. package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
  176. package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
  177. package/dist/adapter/zigate/driver/zigate.js +23 -31
  178. package/dist/adapter/zigate/driver/zigate.js.map +1 -1
  179. package/dist/buffalo/buffalo.d.ts +23 -19
  180. package/dist/buffalo/buffalo.d.ts.map +1 -1
  181. package/dist/buffalo/buffalo.js +74 -169
  182. package/dist/buffalo/buffalo.js.map +1 -1
  183. package/dist/buffalo/index.d.ts +1 -2
  184. package/dist/buffalo/index.d.ts.map +1 -1
  185. package/dist/buffalo/index.js +1 -26
  186. package/dist/buffalo/index.js.map +1 -1
  187. package/dist/controller/controller.d.ts +10 -5
  188. package/dist/controller/controller.d.ts.map +1 -1
  189. package/dist/controller/controller.js +184 -126
  190. package/dist/controller/controller.js.map +1 -1
  191. package/dist/controller/database.d.ts +1 -0
  192. package/dist/controller/database.d.ts.map +1 -1
  193. package/dist/controller/database.js +7 -10
  194. package/dist/controller/database.js.map +1 -1
  195. package/dist/controller/events.d.ts +2 -2
  196. package/dist/controller/events.d.ts.map +1 -1
  197. package/dist/controller/events.js +4 -0
  198. package/dist/controller/events.js.map +1 -1
  199. package/dist/controller/greenPower.d.ts +2 -1
  200. package/dist/controller/greenPower.d.ts.map +1 -1
  201. package/dist/controller/greenPower.js +51 -57
  202. package/dist/controller/greenPower.js.map +1 -1
  203. package/dist/controller/helpers/request.d.ts +3 -3
  204. package/dist/controller/helpers/request.d.ts.map +1 -1
  205. package/dist/controller/helpers/request.js +2 -2
  206. package/dist/controller/helpers/request.js.map +1 -1
  207. package/dist/controller/helpers/requestQueue.d.ts.map +1 -1
  208. package/dist/controller/helpers/requestQueue.js +26 -36
  209. package/dist/controller/helpers/requestQueue.js.map +1 -1
  210. package/dist/controller/helpers/zclFrameConverter.d.ts +4 -3
  211. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  212. package/dist/controller/helpers/zclFrameConverter.js +33 -14
  213. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  214. package/dist/controller/model/device.d.ts +12 -5
  215. package/dist/controller/model/device.d.ts.map +1 -1
  216. package/dist/controller/model/device.js +105 -86
  217. package/dist/controller/model/device.js.map +1 -1
  218. package/dist/controller/model/endpoint.d.ts +22 -17
  219. package/dist/controller/model/endpoint.d.ts.map +1 -1
  220. package/dist/controller/model/endpoint.js +139 -228
  221. package/dist/controller/model/endpoint.js.map +1 -1
  222. package/dist/controller/model/group.d.ts +1 -1
  223. package/dist/controller/model/group.d.ts.map +1 -1
  224. package/dist/controller/model/group.js +18 -18
  225. package/dist/controller/model/group.js.map +1 -1
  226. package/dist/controller/model/konnextConfig.d.ts +7 -0
  227. package/dist/controller/model/konnextConfig.d.ts.map +1 -0
  228. package/dist/controller/{logger-stub.js → model/konnextConfig.js} +1 -1
  229. package/dist/controller/model/konnextConfig.js.map +1 -0
  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/aes.d.ts +40 -0
  237. package/dist/utils/aes.d.ts.map +1 -0
  238. package/dist/utils/aes.js +198 -0
  239. package/dist/utils/aes.js.map +1 -0
  240. package/dist/utils/logger.d.ts +9 -0
  241. package/dist/utils/logger.d.ts.map +1 -0
  242. package/dist/utils/logger.js +14 -0
  243. package/dist/utils/logger.js.map +1 -0
  244. package/dist/zspec/consts.d.ts +60 -0
  245. package/dist/zspec/consts.d.ts.map +1 -0
  246. package/dist/zspec/consts.js +64 -0
  247. package/dist/zspec/consts.js.map +1 -0
  248. package/dist/zspec/enums.d.ts +19 -0
  249. package/dist/zspec/enums.d.ts.map +1 -0
  250. package/dist/zspec/enums.js +28 -0
  251. package/dist/zspec/enums.js.map +1 -0
  252. package/dist/zspec/index.d.ts +4 -0
  253. package/dist/zspec/index.d.ts.map +1 -0
  254. package/dist/zspec/index.js +43 -0
  255. package/dist/zspec/index.js.map +1 -0
  256. package/dist/zspec/tstypes.d.ts +19 -0
  257. package/dist/zspec/tstypes.d.ts.map +1 -0
  258. package/dist/{buffalo/tstype.js → zspec/tstypes.js} +1 -1
  259. package/dist/zspec/tstypes.js.map +1 -0
  260. package/dist/zspec/utils.d.ts +14 -0
  261. package/dist/zspec/utils.d.ts.map +1 -0
  262. package/dist/zspec/utils.js +29 -0
  263. package/dist/zspec/utils.js.map +1 -0
  264. package/dist/zspec/zcl/buffaloZcl.d.ts +55 -0
  265. package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -0
  266. package/dist/zspec/zcl/buffaloZcl.js +929 -0
  267. package/dist/zspec/zcl/buffaloZcl.js.map +1 -0
  268. package/dist/zspec/zcl/definition/cluster.d.ts +3 -0
  269. package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -0
  270. package/dist/zspec/zcl/definition/cluster.js +5500 -0
  271. package/dist/zspec/zcl/definition/cluster.js.map +1 -0
  272. package/dist/zspec/zcl/definition/consts.d.ts +9 -0
  273. package/dist/zspec/zcl/definition/consts.d.ts.map +1 -0
  274. package/dist/zspec/zcl/definition/consts.js +27 -0
  275. package/dist/zspec/zcl/definition/consts.js.map +1 -0
  276. package/dist/zspec/zcl/definition/enums.d.ts +177 -0
  277. package/dist/zspec/zcl/definition/enums.d.ts.map +1 -0
  278. package/dist/zspec/zcl/definition/enums.js +187 -0
  279. package/dist/zspec/zcl/definition/enums.js.map +1 -0
  280. package/dist/zspec/zcl/definition/foundation.d.ts +11 -0
  281. package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -0
  282. package/dist/zspec/zcl/definition/foundation.js +241 -0
  283. package/dist/zspec/zcl/definition/foundation.js.map +1 -0
  284. package/dist/zspec/zcl/definition/manufacturerCode.d.ts +727 -0
  285. package/dist/zspec/zcl/definition/manufacturerCode.d.ts.map +1 -0
  286. package/dist/zspec/zcl/definition/manufacturerCode.js +733 -0
  287. package/dist/zspec/zcl/definition/manufacturerCode.js.map +1 -0
  288. package/dist/zspec/zcl/definition/status.d.ts +69 -0
  289. package/dist/zspec/zcl/definition/status.d.ts.map +1 -0
  290. package/dist/zspec/zcl/definition/status.js +74 -0
  291. package/dist/zspec/zcl/definition/status.js.map +1 -0
  292. package/dist/zspec/zcl/definition/tstype.d.ts +114 -0
  293. package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -0
  294. package/dist/{zcl/zclHeader.js → zspec/zcl/definition/tstype.js} +2 -1
  295. package/dist/zspec/zcl/definition/tstype.js.map +1 -0
  296. package/dist/zspec/zcl/index.d.ts +11 -0
  297. package/dist/zspec/zcl/index.d.ts.map +1 -0
  298. package/dist/zspec/zcl/index.js +47 -0
  299. package/dist/zspec/zcl/index.js.map +1 -0
  300. package/dist/zspec/zcl/utils.d.ts +7 -0
  301. package/dist/zspec/zcl/utils.d.ts.map +1 -0
  302. package/dist/zspec/zcl/utils.js +234 -0
  303. package/dist/zspec/zcl/utils.js.map +1 -0
  304. package/dist/zspec/zcl/zclFrame.d.ts +36 -0
  305. package/dist/zspec/zcl/zclFrame.d.ts.map +1 -0
  306. package/dist/zspec/zcl/zclFrame.js +304 -0
  307. package/dist/zspec/zcl/zclFrame.js.map +1 -0
  308. package/dist/zspec/zcl/zclHeader.d.ts +17 -0
  309. package/dist/zspec/zcl/zclHeader.d.ts.map +1 -0
  310. package/dist/zspec/zcl/zclHeader.js +88 -0
  311. package/dist/zspec/zcl/zclHeader.js.map +1 -0
  312. package/dist/zspec/zcl/zclStatusError.d.ts +6 -0
  313. package/dist/zspec/zcl/zclStatusError.d.ts.map +1 -0
  314. package/dist/zspec/zcl/zclStatusError.js +13 -0
  315. package/dist/zspec/zcl/zclStatusError.js.map +1 -0
  316. package/dist/zspec/zdo/buffaloZdo.d.ts +438 -0
  317. package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -0
  318. package/dist/zspec/zdo/buffaloZdo.js +1892 -0
  319. package/dist/zspec/zdo/buffaloZdo.js.map +1 -0
  320. package/dist/zspec/zdo/definition/clusters.d.ts +624 -0
  321. package/dist/zspec/zdo/definition/clusters.d.ts.map +1 -0
  322. package/dist/zspec/zdo/definition/clusters.js +687 -0
  323. package/dist/zspec/zdo/definition/clusters.js.map +1 -0
  324. package/dist/zspec/zdo/definition/consts.d.ts +13 -0
  325. package/dist/zspec/zdo/definition/consts.d.ts.map +1 -0
  326. package/dist/zspec/zdo/definition/consts.js +16 -0
  327. package/dist/zspec/zdo/definition/consts.js.map +1 -0
  328. package/dist/zspec/zdo/definition/enums.d.ts +75 -0
  329. package/dist/zspec/zdo/definition/enums.d.ts.map +1 -0
  330. package/dist/zspec/zdo/definition/enums.js +97 -0
  331. package/dist/zspec/zdo/definition/enums.js.map +1 -0
  332. package/dist/zspec/zdo/definition/status.d.ts +99 -0
  333. package/dist/zspec/zdo/definition/status.d.ts.map +1 -0
  334. package/dist/zspec/zdo/definition/status.js +109 -0
  335. package/dist/zspec/zdo/definition/status.js.map +1 -0
  336. package/dist/zspec/zdo/definition/tstypes.d.ts +787 -0
  337. package/dist/zspec/zdo/definition/tstypes.d.ts.map +1 -0
  338. package/dist/{zcl/definition/tstype.js → zspec/zdo/definition/tstypes.js} +1 -1
  339. package/dist/zspec/zdo/definition/tstypes.js.map +1 -0
  340. package/dist/zspec/zdo/index.d.ts +7 -0
  341. package/dist/zspec/zdo/index.d.ts.map +1 -0
  342. package/dist/zspec/zdo/index.js +39 -0
  343. package/dist/zspec/zdo/index.js.map +1 -0
  344. package/dist/zspec/zdo/utils.d.ts +25 -0
  345. package/dist/zspec/zdo/utils.d.ts.map +1 -0
  346. package/dist/zspec/zdo/utils.js +75 -0
  347. package/dist/zspec/zdo/utils.js.map +1 -0
  348. package/dist/zspec/zdo/zdoStatusError.d.ts +6 -0
  349. package/dist/zspec/zdo/zdoStatusError.d.ts.map +1 -0
  350. package/dist/zspec/zdo/zdoStatusError.js +13 -0
  351. package/dist/zspec/zdo/zdoStatusError.js.map +1 -0
  352. package/examples/join-and-log.js +7 -12
  353. package/package.json +6 -6
  354. package/dist/adapter/zigate/debug.d.ts +0 -8
  355. package/dist/adapter/zigate/debug.d.ts.map +0 -1
  356. package/dist/adapter/zigate/debug.js +0 -20
  357. package/dist/adapter/zigate/debug.js.map +0 -1
  358. package/dist/buffalo/tstype.d.ts +0 -9
  359. package/dist/buffalo/tstype.d.ts.map +0 -1
  360. package/dist/buffalo/tstype.js.map +0 -1
  361. package/dist/controller/logger-stub.d.ts +0 -7
  362. package/dist/controller/logger-stub.d.ts.map +0 -1
  363. package/dist/controller/logger-stub.js.map +0 -1
  364. package/dist/zcl/buffaloZcl.d.ts +0 -42
  365. package/dist/zcl/buffaloZcl.d.ts.map +0 -1
  366. package/dist/zcl/buffaloZcl.js +0 -595
  367. package/dist/zcl/buffaloZcl.js.map +0 -1
  368. package/dist/zcl/definition/buffaloZclDataType.d.ts +0 -18
  369. package/dist/zcl/definition/buffaloZclDataType.d.ts.map +0 -1
  370. package/dist/zcl/definition/buffaloZclDataType.js +0 -21
  371. package/dist/zcl/definition/buffaloZclDataType.js.map +0 -1
  372. package/dist/zcl/definition/cluster.d.ts +0 -30
  373. package/dist/zcl/definition/cluster.d.ts.map +0 -1
  374. package/dist/zcl/definition/cluster.js +0 -5531
  375. package/dist/zcl/definition/cluster.js.map +0 -1
  376. package/dist/zcl/definition/dataType.d.ts +0 -60
  377. package/dist/zcl/definition/dataType.d.ts.map +0 -1
  378. package/dist/zcl/definition/dataType.js +0 -65
  379. package/dist/zcl/definition/dataType.js.map +0 -1
  380. package/dist/zcl/definition/direction.d.ts +0 -6
  381. package/dist/zcl/definition/direction.d.ts.map +0 -1
  382. package/dist/zcl/definition/direction.js +0 -9
  383. package/dist/zcl/definition/direction.js.map +0 -1
  384. package/dist/zcl/definition/endpointDeviceType.d.ts +0 -5
  385. package/dist/zcl/definition/endpointDeviceType.d.ts.map +0 -1
  386. package/dist/zcl/definition/endpointDeviceType.js +0 -16
  387. package/dist/zcl/definition/endpointDeviceType.js.map +0 -1
  388. package/dist/zcl/definition/foundation.d.ts +0 -12
  389. package/dist/zcl/definition/foundation.d.ts.map +0 -1
  390. package/dist/zcl/definition/foundation.js +0 -168
  391. package/dist/zcl/definition/foundation.js.map +0 -1
  392. package/dist/zcl/definition/frameControl.d.ts +0 -11
  393. package/dist/zcl/definition/frameControl.d.ts.map +0 -1
  394. package/dist/zcl/definition/frameControl.js +0 -3
  395. package/dist/zcl/definition/frameControl.js.map +0 -1
  396. package/dist/zcl/definition/frameType.d.ts +0 -6
  397. package/dist/zcl/definition/frameType.d.ts.map +0 -1
  398. package/dist/zcl/definition/frameType.js +0 -9
  399. package/dist/zcl/definition/frameType.js.map +0 -1
  400. package/dist/zcl/definition/index.d.ts +0 -14
  401. package/dist/zcl/definition/index.d.ts.map +0 -1
  402. package/dist/zcl/definition/index.js +0 -52
  403. package/dist/zcl/definition/index.js.map +0 -1
  404. package/dist/zcl/definition/manufacturerCode.d.ts +0 -1078
  405. package/dist/zcl/definition/manufacturerCode.d.ts.map +0 -1
  406. package/dist/zcl/definition/manufacturerCode.js +0 -1083
  407. package/dist/zcl/definition/manufacturerCode.js.map +0 -1
  408. package/dist/zcl/definition/powerSource.d.ts +0 -5
  409. package/dist/zcl/definition/powerSource.d.ts.map +0 -1
  410. package/dist/zcl/definition/powerSource.js +0 -13
  411. package/dist/zcl/definition/powerSource.js.map +0 -1
  412. package/dist/zcl/definition/status.d.ts +0 -39
  413. package/dist/zcl/definition/status.d.ts.map +0 -1
  414. package/dist/zcl/definition/status.js +0 -42
  415. package/dist/zcl/definition/status.js.map +0 -1
  416. package/dist/zcl/definition/tstype.d.ts +0 -17
  417. package/dist/zcl/definition/tstype.d.ts.map +0 -1
  418. package/dist/zcl/definition/tstype.js.map +0 -1
  419. package/dist/zcl/index.d.ts +0 -17
  420. package/dist/zcl/index.d.ts.map +0 -1
  421. package/dist/zcl/index.js +0 -56
  422. package/dist/zcl/index.js.map +0 -1
  423. package/dist/zcl/tstype.d.ts +0 -57
  424. package/dist/zcl/tstype.d.ts.map +0 -1
  425. package/dist/zcl/tstype.js +0 -10
  426. package/dist/zcl/tstype.js.map +0 -1
  427. package/dist/zcl/utils.d.ts +0 -7
  428. package/dist/zcl/utils.d.ts.map +0 -1
  429. package/dist/zcl/utils.js +0 -165
  430. package/dist/zcl/utils.js.map +0 -1
  431. package/dist/zcl/zclFrame.d.ts +0 -41
  432. package/dist/zcl/zclFrame.d.ts.map +0 -1
  433. package/dist/zcl/zclFrame.js +0 -352
  434. package/dist/zcl/zclFrame.js.map +0 -1
  435. package/dist/zcl/zclHeader.d.ts +0 -9
  436. package/dist/zcl/zclHeader.d.ts.map +0 -1
  437. package/dist/zcl/zclHeader.js.map +0 -1
  438. package/dist/zcl/zclStatusError.d.ts +0 -6
  439. package/dist/zcl/zclStatusError.d.ts.map +0 -1
  440. package/dist/zcl/zclStatusError.js +0 -15
  441. package/dist/zcl/zclStatusError.js.map +0 -1
@@ -31,14 +31,14 @@ const Events = __importStar(require("../../events"));
31
31
  const adapter_1 = __importDefault(require("../../adapter"));
32
32
  const znp_1 = require("../znp");
33
33
  const unpi_1 = require("../unpi");
34
- const zcl_1 = require("../../../zcl");
34
+ const Zcl = __importStar(require("../../../zspec/zcl"));
35
35
  const utils_1 = require("../../../utils");
36
36
  const Constants = __importStar(require("../constants"));
37
- const debug_1 = __importDefault(require("debug"));
38
37
  const debounce_1 = __importDefault(require("debounce"));
39
38
  const manager_1 = require("./manager");
40
39
  const assert_1 = __importDefault(require("assert"));
41
- const debug = (0, debug_1.default)("zigbee-herdsman:adapter:zStack:adapter");
40
+ const logger_1 = require("../../../utils/logger");
41
+ const NS = "zh:zstack";
42
42
  const Subsystem = unpi_1.Constants.Subsystem;
43
43
  const Type = unpi_1.Constants.Type;
44
44
  const { ZnpCommandStatus, AddressMode } = Constants.COMMON;
@@ -72,9 +72,11 @@ class ZStackAdapter extends adapter_1.default {
72
72
  interpanLock;
73
73
  interpanEndpointRegistered;
74
74
  waitress;
75
- constructor(networkOptions, serialPortOptions, backupPath, adapterOptions, logger) {
76
- super(networkOptions, serialPortOptions, backupPath, adapterOptions, logger);
77
- this.znp = new znp_1.Znp(this.serialPortOptions.path, this.serialPortOptions.baudRate, this.serialPortOptions.rtscts);
75
+ konnextConfig;
76
+ constructor(networkOptions, serialPortOptions, backupPath, adapterOptions, konnextConfig) {
77
+ super(networkOptions, serialPortOptions, backupPath, adapterOptions);
78
+ this.znp = new znp_1.Znp(this.serialPortOptions.path, this.serialPortOptions.baudRate, this.serialPortOptions.rtscts, konnextConfig);
79
+ this.konnextConfig = konnextConfig;
78
80
  this.transactionID = 0;
79
81
  this.deviceAnnounceRouteDiscoveryDebouncers = new Map();
80
82
  this.interpanLock = false;
@@ -106,22 +108,22 @@ class ZStackAdapter extends adapter_1.default {
106
108
  this.version = (await this.znp.request(Subsystem.SYS, 'version', {})).payload;
107
109
  }
108
110
  catch (e) {
109
- debug(`Failed to get zStack version, assuming 1.2`);
111
+ logger_1.logger.debug(`Failed to get zStack version, assuming 1.2`, NS);
110
112
  this.version = { "transportrev": 2, "product": 0, "majorrel": 2, "minorrel": 0, "maintrel": 0, "revision": "" };
111
113
  }
112
114
  const concurrent = this.adapterOptions && this.adapterOptions.concurrent ?
113
115
  this.adapterOptions.concurrent :
114
116
  (this.version.product === tstype_1.ZnpVersion.zStack3x0 ? 16 : 2);
115
- debug(`Adapter concurrent: ${concurrent}`);
117
+ logger_1.logger.debug(`Adapter concurrent: ${concurrent}`, NS);
116
118
  this.queue = new utils_1.Queue(concurrent);
117
- debug(`Detected znp version '${tstype_1.ZnpVersion[this.version.product]}' (${JSON.stringify(this.version)})`);
119
+ logger_1.logger.debug(`Detected znp version '${tstype_1.ZnpVersion[this.version.product]}' (${JSON.stringify(this.version)})`, NS);
118
120
  this.adapterManager = new manager_1.ZnpAdapterManager(this.znp, {
119
121
  backupPath: this.backupPath,
120
122
  version: this.version.product,
121
123
  greenPowerGroup: this.greenPowerGroup,
122
124
  networkOptions: this.networkOptions,
123
125
  adapterOptions: this.adapterOptions,
124
- }, this.logger);
126
+ });
125
127
  const startResult = this.adapterManager.start();
126
128
  if (this.adapterOptions.disableLED) {
127
129
  // Wait a bit for adapter to startup, otherwise led doesn't disable (tested with CC2531)
@@ -222,7 +224,7 @@ class ZStackAdapter extends adapter_1.default {
222
224
  * NOTE: There are cases where multiple nwkAddrRsp are recevied with different network addresses,
223
225
  * this is currently not handled, the first nwkAddrRsp is taken.
224
226
  */
225
- debug("Request network address of '%s'", ieeeAddr);
227
+ logger_1.logger.debug(`Request network address of '${ieeeAddr}'`, NS);
226
228
  const response = this.znp.waitFor(unpi_1.Constants.Type.AREQ, Subsystem.ZDO, 'nwkAddrRsp', { ieeeaddr: ieeeAddr });
227
229
  await this.znp.request(Subsystem.ZDO, 'nwkAddrReq', { ieeeaddr: ieeeAddr, reqtype: 0, startindex: 0 });
228
230
  const result = await response.start().promise;
@@ -235,7 +237,7 @@ class ZStackAdapter extends adapter_1.default {
235
237
  return this.version.product === tstype_1.ZnpVersion.zStack3x0 && parseInt(this.version.revision) >= 20201026;
236
238
  }
237
239
  async discoverRoute(networkAddress, wait = true) {
238
- debug('Discovering route to %d', networkAddress);
240
+ logger_1.logger.debug(`Discovering route to ${networkAddress}`, NS);
239
241
  const payload = { dstAddr: networkAddress, options: 0, radius: Constants.AF.DEFAULT_RADIUS };
240
242
  await this.znp.request(Subsystem.ZDO, 'extRouteDisc', payload);
241
243
  if (wait) {
@@ -250,7 +252,7 @@ class ZStackAdapter extends adapter_1.default {
250
252
  return result;
251
253
  }
252
254
  catch (error) {
253
- debug(`Node descriptor request for '${networkAddress}' failed (${error}), retry`);
255
+ logger_1.logger.debug(`Node descriptor request for '${networkAddress}' failed (${error}), retry`, NS);
254
256
  // Doing a route discovery after simple descriptor request fails makes it succeed sometimes.
255
257
  // https://github.com/Koenkk/zigbee2mqtt/issues/3276
256
258
  await this.discoverRoute(networkAddress);
@@ -313,19 +315,20 @@ class ZStackAdapter extends adapter_1.default {
313
315
  }, networkAddress);
314
316
  }
315
317
  async sendZclFrameToEndpointInternal(ieeeAddr, networkAddress, endpoint, sourceEndpoint, zclFrame, timeout, disableResponse, disableRecovery, responseAttempt, dataRequestAttempt, checkedNetworkAddress, discoveredRoute, assocRemove, assocRestore) {
316
- debug('sendZclFrameToEndpointInternal %s:%i/%i (%i,%i,%i)', ieeeAddr, networkAddress, endpoint, responseAttempt, dataRequestAttempt, this.queue.count());
318
+ logger_1.logger.debug(`sendZclFrameToEndpointInternal ${ieeeAddr}:${networkAddress}/${endpoint} `
319
+ + `(${responseAttempt},${dataRequestAttempt},${this.queue.count()})`, NS);
317
320
  let response = null;
318
- const command = zclFrame.getCommand();
321
+ const command = zclFrame.command;
319
322
  if (command.hasOwnProperty('response') && disableResponse === false) {
320
- response = this.waitForInternal(networkAddress, endpoint, zclFrame.Header.frameControl.frameType, zcl_1.Direction.SERVER_TO_CLIENT, zclFrame.Header.transactionSequenceNumber, zclFrame.Cluster.ID, command.response, timeout);
323
+ response = this.waitForInternal(networkAddress, endpoint, zclFrame.header.frameControl.frameType, Zcl.Direction.SERVER_TO_CLIENT, zclFrame.header.transactionSequenceNumber, zclFrame.cluster.ID, command.response, timeout);
321
324
  }
322
- else if (!zclFrame.Header.frameControl.disableDefaultResponse) {
323
- response = this.waitForInternal(networkAddress, endpoint, zcl_1.FrameType.GLOBAL, zcl_1.Direction.SERVER_TO_CLIENT, zclFrame.Header.transactionSequenceNumber, zclFrame.Cluster.ID, zcl_1.Foundation.defaultRsp.ID, timeout);
325
+ else if (!zclFrame.header.frameControl.disableDefaultResponse) {
326
+ response = this.waitForInternal(networkAddress, endpoint, Zcl.FrameType.GLOBAL, Zcl.Direction.SERVER_TO_CLIENT, zclFrame.header.transactionSequenceNumber, zclFrame.cluster.ID, Zcl.Foundation.defaultRsp.ID, timeout);
324
327
  }
325
- const dataConfirmResult = await this.dataRequest(networkAddress, endpoint, sourceEndpoint, zclFrame.Cluster.ID, Constants.AF.DEFAULT_RADIUS, zclFrame.toBuffer(), timeout);
328
+ const dataConfirmResult = await this.dataRequest(networkAddress, endpoint, sourceEndpoint, zclFrame.cluster.ID, Constants.AF.DEFAULT_RADIUS, zclFrame.toBuffer(), timeout);
326
329
  if (dataConfirmResult !== ZnpCommandStatus.SUCCESS) {
327
330
  // In case dataConfirm timesout (= null) or gives an error, try to recover
328
- debug('Data confirm error (%s:%d,%d,%d)', ieeeAddr, networkAddress, dataConfirmResult, dataRequestAttempt);
331
+ logger_1.logger.debug(`Data confirm error (${ieeeAddr}:${networkAddress},${dataConfirmResult},${dataRequestAttempt})`, NS);
329
332
  if (response !== null)
330
333
  response.cancel();
331
334
  /**
@@ -334,7 +337,7 @@ class ZStackAdapter extends adapter_1.default {
334
337
  * Re-add the device to the assoc table, otherwise we will never be able to reach it anymore.
335
338
  */
336
339
  if (assocRemove && assocRestore && this.supportsAssocAdd()) {
337
- debug('assocAdd(%s)', assocRestore.ieeeadr);
340
+ logger_1.logger.debug(`assocAdd(${assocRestore.ieeeadr})`, NS);
338
341
  await this.znp.request(Subsystem.UTIL, 'assocAdd', assocRestore);
339
342
  assocRestore = null;
340
343
  }
@@ -387,7 +390,7 @@ class ZStackAdapter extends adapter_1.default {
387
390
  * z-stack-firmware firmware version. In case it's not supported by the coordinator we will
388
391
  * automatically timeout after 60000ms.
389
392
  */
390
- debug('assocRemove(%s)', ieeeAddr);
393
+ logger_1.logger.debug(`assocRemove(${ieeeAddr})`, NS);
391
394
  await this.znp.request(Subsystem.UTIL, 'assocRemove', { ieeeadr: ieeeAddr });
392
395
  }
393
396
  else if (!discoveredRoute && dataRequestAttempt >= 1) {
@@ -400,19 +403,19 @@ class ZStackAdapter extends adapter_1.default {
400
403
  checkedNetworkAddress = true;
401
404
  const actualNetworkAddress = await this.requestNetworkAddress(ieeeAddr);
402
405
  if (networkAddress !== actualNetworkAddress) {
403
- debug(`Failed because request was done with wrong network address`);
406
+ logger_1.logger.debug(`Failed because request was done with wrong network address`, NS);
404
407
  discoveredRoute = true;
405
408
  networkAddress = actualNetworkAddress;
406
409
  await this.discoverRoute(actualNetworkAddress);
407
410
  }
408
411
  else {
409
- debug('Network address did not change');
412
+ logger_1.logger.debug('Network address did not change', NS);
410
413
  }
411
414
  }
412
415
  catch { }
413
416
  }
414
417
  else {
415
- debug('Wait 2000ms');
418
+ logger_1.logger.debug('Wait 2000ms', NS);
416
419
  await (0, utils_1.Wait)(2000);
417
420
  }
418
421
  return this.sendZclFrameToEndpointInternal(ieeeAddr, networkAddress, endpoint, sourceEndpoint, zclFrame, timeout, disableResponse, disableRecovery, responseAttempt, dataRequestAttempt + 1, checkedNetworkAddress, discoveredRoute, assocRemove, assocRestore);
@@ -424,16 +427,16 @@ class ZStackAdapter extends adapter_1.default {
424
427
  return result;
425
428
  }
426
429
  catch (error) {
427
- debug('Response timeout (%s:%d,%d)', ieeeAddr, networkAddress, responseAttempt);
430
+ logger_1.logger.debug(`Response timeout (${ieeeAddr}:${networkAddress},${responseAttempt})`, NS);
428
431
  if (responseAttempt < 1 && !disableRecovery) {
429
432
  // No response could be because the radio of the end device is turned off:
430
433
  // Sometimes the coordinator does not properly set the PENDING flag.
431
434
  // Try to rewrite the device entry in the association table, this fixes it sometimes.
432
435
  const match = await this.znp.request(Subsystem.UTIL, 'assocGetWithAddress', { extaddr: ieeeAddr, nwkaddr: networkAddress });
433
- debug(`Response timeout recovery: Node relation ${match.payload.noderelation} (${ieeeAddr} / ${match.payload.nwkaddr})`);
436
+ logger_1.logger.debug(`Response timeout recovery: Node relation ${match.payload.noderelation} (${ieeeAddr} / ${match.payload.nwkaddr})`, NS);
434
437
  if (this.supportsAssocAdd() && this.supportsAssocRemove() &&
435
438
  match.payload.nwkaddr !== 0xFFFE && match.payload.noderelation == 1) {
436
- debug(`Response timeout recovery: Rewrite association table entry (${ieeeAddr})`);
439
+ logger_1.logger.debug(`Response timeout recovery: Rewrite association table entry (${ieeeAddr})`, NS);
437
440
  await this.znp.request(Subsystem.UTIL, 'assocRemove', { ieeeadr: ieeeAddr });
438
441
  await this.znp.request(Subsystem.UTIL, 'assocAdd', { ieeeadr: ieeeAddr, nwkaddr: networkAddress, noderelation: match.payload.noderelation });
439
442
  }
@@ -453,7 +456,7 @@ class ZStackAdapter extends adapter_1.default {
453
456
  async sendZclFrameToGroup(groupID, zclFrame, sourceEndpoint) {
454
457
  return this.queue.execute(async () => {
455
458
  this.checkInterpanLock();
456
- await this.dataRequestExtended(AddressMode.ADDR_GROUP, groupID, 0xFF, 0, sourceEndpoint || 1, zclFrame.Cluster.ID, Constants.AF.DEFAULT_RADIUS, zclFrame.toBuffer(), 3000, true);
459
+ await this.dataRequestExtended(AddressMode.ADDR_GROUP, groupID, 0xFF, 0, sourceEndpoint || 1, zclFrame.cluster.ID, Constants.AF.DEFAULT_RADIUS, zclFrame.toBuffer(), 3000, true);
457
460
  /**
458
461
  * As a group command is not confirmed and thus immidiately returns
459
462
  * (contrary to network address requests) we will give the
@@ -462,10 +465,10 @@ class ZStackAdapter extends adapter_1.default {
462
465
  await (0, utils_1.Wait)(200);
463
466
  });
464
467
  }
465
- async sendZclFrameToAll(endpoint, zclFrame, sourceEndpoint) {
468
+ async sendZclFrameToAll(endpoint, zclFrame, sourceEndpoint, destination) {
466
469
  return this.queue.execute(async () => {
467
470
  this.checkInterpanLock();
468
- await this.dataRequestExtended(AddressMode.ADDR_16BIT, 0xFFFD, endpoint, 0, sourceEndpoint, zclFrame.Cluster.ID, Constants.AF.DEFAULT_RADIUS, zclFrame.toBuffer(), 3000, false, 0);
471
+ await this.dataRequestExtended(AddressMode.ADDR_16BIT, destination, endpoint, 0, sourceEndpoint, zclFrame.cluster.ID, Constants.AF.DEFAULT_RADIUS, zclFrame.toBuffer(), 3000, false, 0);
469
472
  /**
470
473
  * As a broadcast command is not confirmed and thus immidiately returns
471
474
  * (contrary to network address requests) we will give the
@@ -654,11 +657,28 @@ class ZStackAdapter extends adapter_1.default {
654
657
  };
655
658
  this.emit(Events.Events.networkAddress, payload);
656
659
  }
660
+ else if (object.command === 'concentratorIndCb') {
661
+ // Some routers may change short addresses and the announcement
662
+ // is missed by the coordinator. This can happen when there are
663
+ // power outages or other interruptions in service. They may
664
+ // not send additional announcements, causing the device to go
665
+ // offline. However, those devices may instead send
666
+ // Concentrator Indicator Callback commands, which contain both
667
+ // the short and the long address allowing us to update our own
668
+ // mappings.
669
+ // https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/158/4403.zstacktask.c
670
+ // https://github.com/Koenkk/zigbee-herdsman/issues/74
671
+ const payload = {
672
+ networkAddress: object.payload.srcaddr,
673
+ ieeeAddr: object.payload.extaddr,
674
+ };
675
+ this.emit(Events.Events.networkAddress, payload);
676
+ }
657
677
  else {
658
678
  /* istanbul ignore else */
659
679
  if (object.command === 'leaveInd') {
660
680
  if (object.payload.rejoin) {
661
- debug(`Device leave: Got leave indication with rejoin=true, nothing to do`);
681
+ logger_1.logger.debug(`Device leave: Got leave indication with rejoin=true, nothing to do`, NS);
662
682
  }
663
683
  else {
664
684
  const payload = {
@@ -675,32 +695,19 @@ class ZStackAdapter extends adapter_1.default {
675
695
  if (object.subsystem === Subsystem.AF) {
676
696
  /* istanbul ignore else */
677
697
  if (object.command === 'incomingMsg' || object.command === 'incomingMsgExt') {
678
- try {
679
- const payload = {
680
- frame: zcl_1.ZclFrame.fromBuffer(object.payload.clusterid, object.payload.data),
681
- address: object.payload.srcaddr,
682
- endpoint: object.payload.srcendpoint,
683
- linkquality: object.payload.linkquality,
684
- groupID: object.payload.groupid,
685
- wasBroadcast: object.payload.wasbroadcast === 1,
686
- destinationEndpoint: object.payload.dstendpoint,
687
- };
688
- this.waitress.resolve(payload);
689
- this.emit(Events.Events.zclData, payload);
690
- }
691
- catch (error) {
692
- const payload = {
693
- clusterID: object.payload.clusterid,
694
- data: object.payload.data,
695
- address: object.payload.srcaddr,
696
- endpoint: object.payload.srcendpoint,
697
- linkquality: object.payload.linkquality,
698
- groupID: object.payload.groupid,
699
- wasBroadcast: object.payload.wasbroadcast === 1,
700
- destinationEndpoint: object.payload.dstendpoint,
701
- };
702
- this.emit(Events.Events.rawData, payload);
703
- }
698
+ const payload = {
699
+ clusterID: object.payload.clusterid,
700
+ data: object.payload.data,
701
+ header: Zcl.Header.fromBuffer(object.payload.data),
702
+ address: object.payload.srcaddr,
703
+ endpoint: object.payload.srcendpoint,
704
+ linkquality: object.payload.linkquality,
705
+ groupID: object.payload.groupid,
706
+ wasBroadcast: object.payload.wasbroadcast === 1,
707
+ destinationEndpoint: object.payload.dstendpoint,
708
+ };
709
+ this.waitress.resolve(payload);
710
+ this.emit(Events.Events.zclPayload, payload);
704
711
  }
705
712
  }
706
713
  }
@@ -731,18 +738,18 @@ class ZStackAdapter extends adapter_1.default {
731
738
  }
732
739
  async sendZclFrameInterPANToIeeeAddr(zclFrame, ieeeAddr) {
733
740
  return this.queue.execute(async () => {
734
- await this.dataRequestExtended(AddressMode.ADDR_64BIT, ieeeAddr, 0xFE, 0xFFFF, 12, zclFrame.Cluster.ID, 30, zclFrame.toBuffer(), 10000, false);
741
+ await this.dataRequestExtended(AddressMode.ADDR_64BIT, ieeeAddr, 0xFE, 0xFFFF, 12, zclFrame.cluster.ID, 30, zclFrame.toBuffer(), 10000, false);
735
742
  });
736
743
  }
737
744
  async sendZclFrameInterPANBroadcast(zclFrame, timeout) {
738
745
  return this.queue.execute(async () => {
739
- const command = zclFrame.getCommand();
746
+ const command = zclFrame.command;
740
747
  if (!command.hasOwnProperty('response')) {
741
748
  throw new Error(`Command '${command.name}' has no response, cannot wait for response`);
742
749
  }
743
- const response = this.waitForInternal(null, 0xFE, zclFrame.Header.frameControl.frameType, zcl_1.Direction.SERVER_TO_CLIENT, null, zclFrame.Cluster.ID, command.response, timeout);
750
+ const response = this.waitForInternal(null, 0xFE, zclFrame.header.frameControl.frameType, Zcl.Direction.SERVER_TO_CLIENT, null, zclFrame.cluster.ID, command.response, timeout);
744
751
  try {
745
- await this.dataRequestExtended(AddressMode.ADDR_16BIT, 0xFFFF, 0xFE, 0xFFFF, 12, zclFrame.Cluster.ID, 30, zclFrame.toBuffer(), 10000, false);
752
+ await this.dataRequestExtended(AddressMode.ADDR_16BIT, 0xFFFF, 0xFE, 0xFFFF, 12, zclFrame.cluster.ID, 30, zclFrame.toBuffer(), 10000, false);
746
753
  }
747
754
  catch (error) {
748
755
  response.cancel();
@@ -759,6 +766,25 @@ class ZStackAdapter extends adapter_1.default {
759
766
  this.interpanLock = false;
760
767
  });
761
768
  }
769
+ async supportsChangeChannel() {
770
+ return false;
771
+ }
772
+ async changeChannel(newChannel) {
773
+ return this.queue.execute(async () => {
774
+ this.checkInterpanLock();
775
+ const payload = {
776
+ dstaddr: 0xFFFF, // broadcast with sleepy
777
+ dstaddrmode: AddressMode.ADDR_BROADCAST,
778
+ channelmask: [newChannel].reduce((a, c) => a + (1 << c), 0),
779
+ scanduration: 0xFE, // change channel
780
+ // scancount: null,// TODO: what's "not present" here?
781
+ // nwkmanageraddr: null,// TODO: what's "not present" here?
782
+ };
783
+ await this.znp.request(Subsystem.ZDO, 'mgmtNwkUpdateReq', payload);
784
+ // wait for the broadcast to propagate and the adapter to actually change
785
+ await (0, utils_1.Wait)(10000);
786
+ });
787
+ }
762
788
  async setTransmitPower(value) {
763
789
  return this.queue.execute(async () => {
764
790
  await this.znp.request(Subsystem.SYS, 'stackTune', { operation: 0, value });
@@ -867,14 +893,14 @@ class ZStackAdapter extends adapter_1.default {
867
893
  ` - ${matcher.commandIdentifier} after ${timeout}ms`;
868
894
  }
869
895
  waitressValidator(payload, matcher) {
870
- const transactionSequenceNumber = payload.frame.Header.transactionSequenceNumber;
871
- return (!matcher.address || payload.address === matcher.address) &&
896
+ return payload.header &&
897
+ (!matcher.address || payload.address === matcher.address) &&
872
898
  payload.endpoint === matcher.endpoint &&
873
- (!matcher.transactionSequenceNumber || transactionSequenceNumber === matcher.transactionSequenceNumber) &&
874
- payload.frame.Cluster.ID === matcher.clusterID &&
875
- matcher.frameType === payload.frame.Header.frameControl.frameType &&
876
- matcher.commandIdentifier === payload.frame.Header.commandIdentifier &&
877
- matcher.direction === payload.frame.Header.frameControl.direction;
899
+ (!matcher.transactionSequenceNumber || payload.header.transactionSequenceNumber === matcher.transactionSequenceNumber) &&
900
+ payload.clusterID === matcher.clusterID &&
901
+ matcher.frameType === payload.header.frameControl.frameType &&
902
+ matcher.commandIdentifier === payload.header.commandIdentifier &&
903
+ matcher.direction === payload.header.frameControl.direction;
878
904
  }
879
905
  checkInterpanLock() {
880
906
  if (this.interpanLock) {
@@ -1 +1 @@
1
- {"version":3,"file":"zStackAdapter.js","sourceRoot":"","sources":["../../../../src/adapter/z-stack/adapter/zStackAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zStackAdapter.js","sourceRoot":"","sources":["../../../../src/adapter/z-stack/adapter/zStackAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import * as stream from 'stream';
4
+ import { KonnextConfig } from '../../../controller/model/konnextConfig';
4
5
  declare class Parser extends stream.Transform {
5
6
  private buffer;
6
- constructor();
7
+ private konnextConfig;
8
+ constructor(konnextConfig: KonnextConfig);
7
9
  _transform(chunk: Buffer, _: string, cb: () => void): void;
8
10
  private parseNext;
9
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/adapter/z-stack/unpi/parser.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAOjC,cAAM,MAAO,SAAQ,MAAM,CAAC,SAAS;IACjC,OAAO,CAAC,MAAM,CAAS;;IAOhB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAOjE,OAAO,CAAC,SAAS;CAgCpB;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/adapter/z-stack/unpi/parser.ts"],"names":[],"mappings":";;AACA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAKjC,OAAO,EAAC,aAAa,EAAC,MAAM,yCAAyC,CAAC;AAItE,cAAM,MAAO,SAAQ,MAAM,CAAC,SAAS;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAgB;gBAElB,aAAa,EAAE,aAAa;IAMxC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAcjE,OAAO,CAAC,SAAS;CAgCpB;AAED,eAAe,MAAM,CAAC"}
@@ -29,22 +29,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const stream = __importStar(require("stream"));
30
30
  const constants_1 = require("./constants");
31
31
  const frame_1 = __importDefault(require("./frame"));
32
- const debug_1 = __importDefault(require("debug"));
33
- const debug = (0, debug_1.default)('zigbee-herdsman:adapter:zStack:unpi:parser');
32
+ const logger_1 = require("../../../utils/logger");
33
+ const aes_1 = require("../../../utils/aes");
34
+ const NS = 'zh:zstack:unpi:parser';
34
35
  class Parser extends stream.Transform {
35
36
  buffer;
36
- constructor() {
37
+ konnextConfig;
38
+ constructor(konnextConfig) {
37
39
  super();
38
40
  this.buffer = Buffer.from([]);
41
+ this.konnextConfig = konnextConfig;
39
42
  }
40
43
  _transform(chunk, _, cb) {
41
- debug(`<-- [${[...chunk]}]`);
42
- this.buffer = Buffer.concat([this.buffer, chunk]);
44
+ logger_1.logger.debug(`<-- [${[...chunk]}]`, NS);
45
+ logger_1.logger.debug(`zigbee-parse [${chunk.toString('utf-8')}]`, NS);
46
+ let newChunk = chunk;
47
+ if (this.konnextConfig.isEncrypted === 1 && this.konnextConfig.encryptMode === 'LOTENALL') {
48
+ newChunk = (0, aes_1.aesCbcDecryptBase64ToHex)(chunk.toString('utf-8'), this.konnextConfig.secretKey, this.konnextConfig.macAddress);
49
+ logger_1.logger.debug(`zigbee-chunk [${chunk}]`, NS);
50
+ logger_1.logger.debug(`zigbee-parse [${newChunk}]`, NS);
51
+ }
52
+ this.buffer = Buffer.concat([this.buffer, Buffer.from(newChunk, 'hex')]);
43
53
  this.parseNext();
44
54
  cb();
45
55
  }
46
56
  parseNext() {
47
- debug(`--- parseNext [${[...this.buffer]}]`);
57
+ logger_1.logger.debug(`--- parseNext [${[...this.buffer]}]`, NS);
48
58
  if (this.buffer.length !== 0 && this.buffer.readUInt8(0) !== constants_1.SOF) {
49
59
  // Buffer doesn't start with SOF, skip till SOF.
50
60
  const index = this.buffer.indexOf(constants_1.SOF);
@@ -60,11 +70,11 @@ class Parser extends stream.Transform {
60
70
  const frameBuffer = this.buffer.slice(0, frameLength);
61
71
  try {
62
72
  const frame = frame_1.default.fromBuffer(dataLength, fcsPosition, frameBuffer);
63
- debug(`--> parsed ${frame}`);
73
+ logger_1.logger.debug(`--> parsed ${frame}`, NS);
64
74
  this.emit('parsed', frame);
65
75
  }
66
76
  catch (error) {
67
- debug(`--> error ${error.stack}`);
77
+ logger_1.logger.debug(`--> error ${error.stack}`, NS);
68
78
  }
69
79
  this.buffer = this.buffer.slice(frameLength, this.buffer.length);
70
80
  this.parseNext();
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/adapter/z-stack/unpi/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,2CAAiF;AACjF,oDAA4B;AAC5B,kDAA0B;AAE1B,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,4CAA4C,CAAC,CAAC;AAElE,MAAM,MAAO,SAAQ,MAAM,CAAC,SAAS;IACzB,MAAM,CAAS;IAEvB;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAEM,UAAU,CAAC,KAAa,EAAE,CAAS,EAAE,EAAc;QACtD,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,EAAE,EAAE,CAAC;IACT,CAAC;IAEO,SAAS;QACb,KAAK,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,eAAG,EAAE,CAAC;YAC/D,gDAAgD;YAChD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAG,CAAC,CAAC;YACvC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,4BAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,eAAG,EAAE,CAAC;YAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,8BAAkB,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,qBAAS,GAAG,UAAU,CAAC;YAC3C,MAAM,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;YAEpC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;gBACpC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBAEtD,IAAI,CAAC;oBACD,MAAM,KAAK,GAAG,eAAK,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;oBACrE,KAAK,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC;oBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC/B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,KAAK,CAAC,aAAa,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBACtC,CAAC;gBAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACjE,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAED,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/adapter/z-stack/unpi/parser.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,10 @@
2
2
  /// <reference types="node" />
3
3
  import * as stream from 'stream';
4
4
  import Frame from './frame';
5
+ import { KonnextConfig } from '../../../controller/model/konnextConfig';
5
6
  declare class Writer extends stream.Readable {
6
- writeFrame(frame: Frame): void;
7
- writeBuffer(buffer: Buffer): void;
7
+ writeFrame(frame: Frame, konnextConfig: KonnextConfig): void;
8
+ writeBuffer(buffer: Buffer, konnextConfig: KonnextConfig): void;
8
9
  _read(): void;
9
10
  }
10
11
  export default Writer;