@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
@@ -5,9 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Ezsp = exports.EzspEvents = void 0;
7
7
  /* istanbul ignore file */
8
- const debug_1 = __importDefault(require("debug"));
9
8
  const events_1 = __importDefault(require("events"));
10
- const cluster_1 = __importDefault(require("../../../zcl/definition/cluster"));
9
+ const cluster_1 = require("../../../zspec/zcl/definition/cluster");
11
10
  const math_1 = require("../utils/math");
12
11
  const enums_1 = require("../enums");
13
12
  const zdo_1 = require("../zdo");
@@ -17,7 +16,8 @@ const ash_1 = require("../uart/ash");
17
16
  const buffalo_1 = require("./buffalo");
18
17
  const consts_2 = require("../consts");
19
18
  const endpoints_1 = require("../adapter/endpoints");
20
- const debug = (0, debug_1.default)('zigbee-herdsman:adapter:ember:ezsp');
19
+ const logger_1 = require("../../../utils/logger");
20
+ const NS = 'zh:ember:ezsp';
21
21
  /** no multi-network atm, so just use const */
22
22
  const DEFAULT_NETWORK_INDEX = endpoints_1.FIXED_ENDPOINTS[0].networkIndex;
23
23
  /** other values not supported atm */
@@ -106,13 +106,11 @@ class Ezsp extends events_1.default {
106
106
  tickHandle;
107
107
  constructor(tickInterval, options) {
108
108
  super();
109
- this.tickInterval = tickInterval || 60;
109
+ this.tickInterval = tickInterval || 5;
110
110
  this.frameContents = Buffer.alloc(consts_1.EZSP_MAX_FRAME_LENGTH);
111
111
  this.buffalo = new buffalo_1.EzspBuffalo(this.frameContents);
112
112
  this.ash = new ash_1.UartAsh(options);
113
- this.ash.on(ash_1.AshEvents.hostError, this.onAshHostError.bind(this));
114
- this.ash.on(ash_1.AshEvents.ncpError, this.onAshNCPError.bind(this));
115
- this.ash.on(ash_1.AshEvents.frame, this.onAshFrame.bind(this));
113
+ this.ash.on(ash_1.AshEvents.FRAME, this.onAshFrame.bind(this));
116
114
  }
117
115
  /**
118
116
  * Returns the number of EZSP responses that have been received by the serial
@@ -130,7 +128,11 @@ class Ezsp extends events_1.default {
130
128
  return `[FRAME: ID=${id}:"${enums_2.EzspFrameID[id]}" Seq=${this.frameContents[consts_1.EZSP_SEQUENCE_INDEX]} Len=${this.frameLength}]`;
131
129
  }
132
130
  initVariables() {
133
- clearInterval(this.tickHandle);
131
+ if (this.waitingForResponse) {
132
+ clearTimeout(this.responseWaiter.timer);
133
+ }
134
+ clearTimeout(this.tickHandle);
135
+ this.ash.removeAllListeners(ash_1.AshEvents.FATAL_ERROR);
134
136
  this.frameContents.fill(0);
135
137
  this.frameLength = 0;
136
138
  this.buffalo.setPosition(0);
@@ -144,18 +146,21 @@ class Ezsp extends events_1.default {
144
146
  this.tickHandle = null;
145
147
  }
146
148
  async start() {
147
- console.log(`======== EZSP starting ========`);
149
+ logger_1.logger.info(`======== EZSP starting ========`, NS);
148
150
  this.initVariables();
149
151
  let status;
150
152
  for (let i = 0; i < MAX_INIT_ATTEMPTS; i++) {
151
153
  status = await this.ash.resetNcp();
154
+ // fail early if we couldn't even get the port set up
152
155
  if (status !== enums_1.EzspStatus.SUCCESS) {
153
156
  return status;
154
157
  }
155
158
  status = await this.ash.start();
156
159
  if (status === enums_1.EzspStatus.SUCCESS) {
157
- console.log(`======== EZSP started ========`);
158
- this.registerHandlers();
160
+ logger_1.logger.info(`======== EZSP started ========`, NS);
161
+ // registered after reset sequence to avoid bubbling up to adapter before this point
162
+ this.ash.on(ash_1.AshEvents.FATAL_ERROR, this.onAshFatalError.bind(this));
163
+ this.tick();
159
164
  return status;
160
165
  }
161
166
  }
@@ -167,12 +172,8 @@ class Ezsp extends events_1.default {
167
172
  */
168
173
  async stop() {
169
174
  await this.ash.stop();
170
- if (this.waitingForResponse) {
171
- clearTimeout(this.responseWaiter.timer);
172
- }
173
- clearInterval(this.tickHandle);
174
175
  this.initVariables();
175
- console.log(`======== EZSP stopped ========`);
176
+ logger_1.logger.info(`======== EZSP stopped ========`, NS);
176
177
  }
177
178
  /**
178
179
  * Check if connected.
@@ -183,11 +184,8 @@ class Ezsp extends events_1.default {
183
184
  checkConnection() {
184
185
  return this.ash.connected;
185
186
  }
186
- onAshHostError(status) {
187
- this.ezspErrorHandler(status);
188
- }
189
- onAshNCPError(status) {
190
- this.ezspErrorHandler(status);
187
+ onAshFatalError(status) {
188
+ this.emit(EzspEvents.ncpNeedsResetAndInit, status);
191
189
  }
192
190
  onAshFrame() {
193
191
  // let tick handle if not waiting for response (CBs)
@@ -211,14 +209,13 @@ class Ezsp extends events_1.default {
211
209
  const lastFrameStr = `Last: ${this.frameToString}.`;
212
210
  if (status === enums_1.EzspStatus.ERROR_QUEUE_FULL) {
213
211
  this.counterErrQueueFull += 1;
214
- console.error(`NCP Queue full (counter: ${this.counterErrQueueFull}). ${lastFrameStr}`);
212
+ logger_1.logger.error(`NCP Queue full (counter: ${this.counterErrQueueFull}). ${lastFrameStr}`, NS);
215
213
  }
216
214
  else if (status === enums_1.EzspStatus.ERROR_OVERFLOW) {
217
- console.error(`The NCP has run out of buffers, causing general malfunction. Remediate network congestion, if present. `
218
- + lastFrameStr);
215
+ logger_1.logger.error(`The NCP has run out of buffers, causing general malfunction. Remediate network congestion, if present. ${lastFrameStr}`, NS);
219
216
  }
220
217
  else {
221
- console.error(`ERROR Transaction failure; status=${enums_1.EzspStatus[status]}. ${lastFrameStr}`);
218
+ logger_1.logger.error(`ERROR Transaction failure; status=${enums_1.EzspStatus[status]}. ${lastFrameStr}`, NS);
222
219
  }
223
220
  // Do not reset if this is a decryption failure, as we ignored the packet
224
221
  // Do not reset for a callback overflow or error queue, as we don't want the device to reboot under stress;
@@ -230,31 +227,25 @@ class Ezsp extends events_1.default {
230
227
  this.emit(EzspEvents.ncpNeedsResetAndInit, status);
231
228
  }
232
229
  }
233
- registerHandlers() {
234
- this.tickHandle = setInterval(this.tick.bind(this), this.tickInterval);
235
- }
236
230
  /**
237
231
  * The Host application must call this function periodically to allow the EZSP layer to handle asynchronous events.
238
232
  */
239
233
  tick() {
240
- if (this.sendingCommand) {
241
- // don't process any callbacks while expecting a command's response
242
- return;
243
- }
234
+ // don't process any callbacks while sending a command and waiting for its response
244
235
  // nothing in the rx queue, nothing to receive
245
- if (this.ash.rxQueue.empty) {
246
- return;
247
- }
248
- if (this.responseReceived() === enums_1.EzspStatus.SUCCESS) {
249
- this.callbackDispatch();
236
+ if (!this.sendingCommand && !this.ash.rxQueue.empty) {
237
+ if (this.responseReceived() === enums_1.EzspStatus.SUCCESS) {
238
+ this.callbackDispatch();
239
+ }
250
240
  }
241
+ this.tickHandle = setTimeout(this.tick.bind(this), this.tickInterval);
251
242
  }
252
243
  nextFrameSequence() {
253
244
  return (this.frameSequence = ((++this.frameSequence) & 0xFF));
254
245
  }
255
246
  startCommand(command) {
256
247
  if (this.sendingCommand) {
257
- console.error(`[SEND COMMAND] Cannot send second one before processing response from first one.`);
248
+ logger_1.logger.error(`[SEND COMMAND] Cannot send second one before processing response from first one.`, NS);
258
249
  throw new Error(enums_1.EzspStatus[enums_1.EzspStatus.ERROR_INVALID_CALL]);
259
250
  }
260
251
  this.sendingCommand = true;
@@ -298,7 +289,7 @@ class Ezsp extends events_1.default {
298
289
  */
299
290
  async sendCommand() {
300
291
  if (!this.checkConnection()) {
301
- debug("[SEND COMMAND] NOT CONNECTED");
292
+ logger_1.logger.debug(`[SEND COMMAND] NOT CONNECTED`, NS);
302
293
  return enums_1.EzspStatus.NOT_CONNECTED;
303
294
  }
304
295
  this.buffalo.setCommandByte(consts_1.EZSP_SEQUENCE_INDEX, this.nextFrameSequence());
@@ -322,7 +313,7 @@ class Ezsp extends events_1.default {
322
313
  }
323
314
  this.frameLength = length;
324
315
  let status;
325
- debug(`===> ${this.frameToString}`);
316
+ logger_1.logger.debug(`===> ${this.frameToString}`, NS);
326
317
  try {
327
318
  status = await (new Promise((resolve, reject) => {
328
319
  const sendStatus = (this.ash.send(this.frameLength, this.frameContents));
@@ -342,11 +333,11 @@ class Ezsp extends events_1.default {
342
333
  };
343
334
  }));
344
335
  if (status !== enums_1.EzspStatus.SUCCESS) {
345
- throw status;
336
+ throw new Error(enums_1.EzspStatus[status]);
346
337
  }
347
338
  }
348
339
  catch (err) {
349
- debug(`=x=> ${this.frameToString} Error: ${err}`);
340
+ logger_1.logger.debug(`=x=> ${this.frameToString} Error: ${err}`, NS);
350
341
  this.ezspErrorHandler(status);
351
342
  }
352
343
  this.sendingCommand = false;
@@ -369,7 +360,7 @@ class Ezsp extends events_1.default {
369
360
  // While we are waiting for a response to a command, we use the asynch callback flag to ignore asynchronous callbacks.
370
361
  // This allows our caller to assume that no callbacks will appear between sending a command and receiving its response.
371
362
  if (this.waitingForResponse && (buffer.data[consts_1.EZSP_FRAME_CONTROL_INDEX] & consts_1.EZSP_FRAME_CONTROL_ASYNCH_CB)) {
372
- debug(`Skipping async callback while waiting for response to command.`);
363
+ logger_1.logger.debug(`Skipping async callback while waiting for response to command.`, NS);
373
364
  if (this.ash.rxFree.length === 0) {
374
365
  dropBuffer = buffer;
375
366
  }
@@ -379,7 +370,7 @@ class Ezsp extends events_1.default {
379
370
  this.ash.rxQueue.removeEntry(buffer);
380
371
  buffer.data.copy(this.frameContents, 0, 0, buffer.len); // take only what len tells us is actual content
381
372
  this.frameLength = buffer.len;
382
- debug(`<=== ${this.frameToString}`); // raw=${this.frameContents.subarray(0, this.frameLength).toString('hex')}`);
373
+ logger_1.logger.debug(`<=== ${this.frameToString}`, NS);
383
374
  this.ash.rxFree.freeBuffer(buffer);
384
375
  buffer = null;
385
376
  status = enums_1.EzspStatus.SUCCESS;
@@ -389,7 +380,7 @@ class Ezsp extends events_1.default {
389
380
  if (dropBuffer != null) {
390
381
  this.ash.rxQueue.removeEntry(dropBuffer);
391
382
  this.ash.rxFree.freeBuffer(dropBuffer);
392
- debug(`ERROR Host receive queue full. Dropping received callback: ${dropBuffer.data.toString('hex')}`);
383
+ logger_1.logger.debug(`ERROR Host receive queue full. Dropping received callback: ${dropBuffer.data.toString('hex')}`, NS);
393
384
  this.ezspErrorHandler(enums_1.EzspStatus.ERROR_QUEUE_FULL);
394
385
  }
395
386
  return status;
@@ -430,7 +421,7 @@ class Ezsp extends events_1.default {
430
421
  //this.callbackNetworkIndex = (frameControl & EZSP_FRAME_CONTROL_NETWORK_INDEX_MASK) >> EZSP_FRAME_CONTROL_NETWORK_INDEX_OFFSET;
431
422
  }
432
423
  if (status !== enums_1.EzspStatus.SUCCESS) {
433
- debug(`[RESPONSE RECEIVED] ERROR ${enums_1.EzspStatus[status]}`);
424
+ logger_1.logger.debug(`[RESPONSE RECEIVED] ERROR ${enums_1.EzspStatus[status]}`, NS);
434
425
  this.ezspErrorHandler(status);
435
426
  }
436
427
  this.buffalo.setPosition(parametersIndex);
@@ -468,7 +459,7 @@ class Ezsp extends events_1.default {
468
459
  }
469
460
  case enums_2.EzspFrameID.CUSTOM_FRAME_HANDLER: {
470
461
  const payloadLength = this.buffalo.readUInt8();
471
- const payload = this.buffalo.readListUInt8({ length: payloadLength });
462
+ const payload = this.buffalo.readListUInt8(payloadLength);
472
463
  this.ezspCustomFrameHandler(payloadLength, payload);
473
464
  break;
474
465
  }
@@ -479,14 +470,14 @@ class Ezsp extends events_1.default {
479
470
  }
480
471
  case enums_2.EzspFrameID.ENERGY_SCAN_RESULT_HANDLER: {
481
472
  const channel = this.buffalo.readUInt8();
482
- const maxRssiValue = this.buffalo.readUInt8();
473
+ const maxRssiValue = this.buffalo.readInt8();
483
474
  this.ezspEnergyScanResultHandler(channel, maxRssiValue);
484
475
  break;
485
476
  }
486
477
  case enums_2.EzspFrameID.NETWORK_FOUND_HANDLER: {
487
478
  const networkFound = this.buffalo.readEmberZigbeeNetwork();
488
479
  const lastHopLqi = this.buffalo.readUInt8();
489
- const lastHopRssi = this.buffalo.readUInt8();
480
+ const lastHopRssi = this.buffalo.readInt8();
490
481
  this.ezspNetworkFoundHandler(networkFound, lastHopLqi, lastHopRssi);
491
482
  break;
492
483
  }
@@ -563,7 +554,7 @@ class Ezsp extends events_1.default {
563
554
  const type = this.buffalo.readUInt8();
564
555
  const apsFrame = this.buffalo.readEmberApsFrame();
565
556
  const lastHopLqi = this.buffalo.readUInt8();
566
- const lastHopRssi = this.buffalo.readUInt8();
557
+ const lastHopRssi = this.buffalo.readInt8();
567
558
  const sender = this.buffalo.readUInt16();
568
559
  const bindingIndex = this.buffalo.readUInt8();
569
560
  const addressIndex = this.buffalo.readUInt8();
@@ -594,9 +585,9 @@ class Ezsp extends events_1.default {
594
585
  const source = this.buffalo.readUInt16();
595
586
  const sourceEui = this.buffalo.readIeeeAddr();
596
587
  const lastHopLqi = this.buffalo.readUInt8();
597
- const lastHopRssi = this.buffalo.readUInt8();
588
+ const lastHopRssi = this.buffalo.readInt8();
598
589
  const relayCount = this.buffalo.readUInt8();
599
- const relayList = this.buffalo.readListUInt16({ length: relayCount }); //this.buffalo.readListUInt8({length: (relayCount * 2)});
590
+ const relayList = this.buffalo.readListUInt16(relayCount); //this.buffalo.readListUInt8(relayCount * 2);
600
591
  this.ezspIncomingRouteRecordHandler(source, sourceEui, lastHopLqi, lastHopRssi, relayCount, relayList);
601
592
  break;
602
593
  }
@@ -608,7 +599,7 @@ class Ezsp extends events_1.default {
608
599
  case enums_2.EzspFrameID.MAC_PASSTHROUGH_MESSAGE_HANDLER: {
609
600
  const messageType = this.buffalo.readUInt8();
610
601
  const lastHopLqi = this.buffalo.readUInt8();
611
- const lastHopRssi = this.buffalo.readUInt8();
602
+ const lastHopRssi = this.buffalo.readInt8();
612
603
  const messageContents = this.buffalo.readPayload();
613
604
  this.ezspMacPassthroughMessageHandler(messageType, lastHopLqi, lastHopRssi, messageContents);
614
605
  break;
@@ -617,7 +608,7 @@ class Ezsp extends events_1.default {
617
608
  const filterIndexMatch = this.buffalo.readUInt8();
618
609
  const legacyPassthroughType = this.buffalo.readUInt8();
619
610
  const lastHopLqi = this.buffalo.readUInt8();
620
- const lastHopRssi = this.buffalo.readUInt8();
611
+ const lastHopRssi = this.buffalo.readInt8();
621
612
  const messageContents = this.buffalo.readPayload();
622
613
  this.ezspMacFilterMatchMessageHandler(filterIndexMatch, legacyPassthroughType, lastHopLqi, lastHopRssi, messageContents);
623
614
  break;
@@ -686,16 +677,16 @@ class Ezsp extends events_1.default {
686
677
  }
687
678
  case enums_2.EzspFrameID.MFGLIB_RX_HANDLER: {
688
679
  const linkQuality = this.buffalo.readUInt8();
689
- const rssi = this.buffalo.readUInt8();
680
+ const rssi = this.buffalo.readInt8();
690
681
  const packetLength = this.buffalo.readUInt8();
691
- const packetContents = this.buffalo.readListUInt8({ length: packetLength });
682
+ const packetContents = this.buffalo.readListUInt8(packetLength);
692
683
  this.ezspMfglibRxHandler(linkQuality, rssi, packetLength, packetContents);
693
684
  break;
694
685
  }
695
686
  case enums_2.EzspFrameID.INCOMING_BOOTLOAD_MESSAGE_HANDLER: {
696
687
  const longId = this.buffalo.readIeeeAddr();
697
688
  const lastHopLqi = this.buffalo.readUInt8();
698
- const lastHopRssi = this.buffalo.readUInt8();
689
+ const lastHopRssi = this.buffalo.readInt8();
699
690
  const messageContents = this.buffalo.readPayload();
700
691
  this.ezspIncomingBootloadMessageHandler(longId, lastHopLqi, lastHopRssi, messageContents);
701
692
  break;
@@ -711,7 +702,7 @@ class Ezsp extends events_1.default {
711
702
  const isDeviceInfoNull = this.buffalo.readUInt8() === 1 ? true : false;
712
703
  const deviceInfo = this.buffalo.readEmberZllDeviceInfoRecord();
713
704
  const lastHopLqi = this.buffalo.readUInt8();
714
- const lastHopRssi = this.buffalo.readUInt8();
705
+ const lastHopRssi = this.buffalo.readInt8();
715
706
  this.ezspZllNetworkFoundHandler(networkInfo, isDeviceInfoNull, deviceInfo, lastHopLqi, lastHopRssi);
716
707
  break;
717
708
  }
@@ -723,7 +714,7 @@ class Ezsp extends events_1.default {
723
714
  case enums_2.EzspFrameID.ZLL_ADDRESS_ASSIGNMENT_HANDLER: {
724
715
  const addressInfo = this.buffalo.readEmberZllAddressAssignment();
725
716
  const lastHopLqi = this.buffalo.readUInt8();
726
- const lastHopRssi = this.buffalo.readUInt8();
717
+ const lastHopRssi = this.buffalo.readInt8();
727
718
  this.ezspZllAddressAssignmentHandler(addressInfo, lastHopLqi, lastHopRssi);
728
719
  break;
729
720
  }
@@ -816,7 +807,7 @@ class Ezsp extends events_1.default {
816
807
  }
817
808
  apsFrame.sequence = apsSequence;
818
809
  // NOTE: match `~~~>` from adapter since this is just a wrapper for it
819
- debug(`~~~> [SENT type=${enums_1.EmberOutgoingMessageType[type]} apsSequence=${apsSequence} messageTag=${messageTag} status=${enums_1.EmberStatus[status]}]`);
810
+ logger_1.logger.debug(`~~~> [SENT type=${enums_1.EmberOutgoingMessageType[type]} apsSequence=${apsSequence} messageTag=${messageTag} status=${enums_1.EmberStatus[status]}]`, NS);
820
811
  return [status, messageTag];
821
812
  }
822
813
  /**
@@ -1043,7 +1034,7 @@ class Ezsp extends events_1.default {
1043
1034
  if (readLength > maxReadLength) {
1044
1035
  throw enums_1.EzspStatus.ERROR_INVALID_VALUE;
1045
1036
  }
1046
- const data = this.buffalo.readListUInt8({ length: readLength });
1037
+ const data = this.buffalo.readListUInt8(readLength);
1047
1038
  return [status, dataType, readLength, data];
1048
1039
  }
1049
1040
  /**
@@ -1191,7 +1182,7 @@ class Ezsp extends events_1.default {
1191
1182
  if (valueLength > maxValueLength) {
1192
1183
  throw enums_1.EzspStatus.ERROR_INVALID_VALUE;
1193
1184
  }
1194
- const value = this.buffalo.readListUInt8({ length: valueLength });
1185
+ const value = this.buffalo.readListUInt8(valueLength);
1195
1186
  return [status, valueLength, value];
1196
1187
  }
1197
1188
  /**
@@ -1223,7 +1214,7 @@ class Ezsp extends events_1.default {
1223
1214
  if (valueLength > maxValueLength) {
1224
1215
  throw enums_1.EzspStatus.ERROR_INVALID_VALUE;
1225
1216
  }
1226
- const value = this.buffalo.readListUInt8({ length: valueLength });
1217
+ const value = this.buffalo.readListUInt8(valueLength);
1227
1218
  return [status, valueLength, value];
1228
1219
  }
1229
1220
  /**
@@ -1318,7 +1309,7 @@ class Ezsp extends events_1.default {
1318
1309
  * Indicates that there are currently no pending callbacks.
1319
1310
  */
1320
1311
  ezspNoCallbacks() {
1321
- debug(`ezspNoCallbacks(): callback called`);
1312
+ logger_1.logger.debug(`ezspNoCallbacks(): callback called`, NS);
1322
1313
  }
1323
1314
  /**
1324
1315
  * Sets a token (8 bytes of non-volatile storage) in the Simulated EEPROM of the NCP.
@@ -1352,7 +1343,7 @@ class Ezsp extends events_1.default {
1352
1343
  throw new Error(enums_1.EzspStatus[sendStatus]);
1353
1344
  }
1354
1345
  const status = this.buffalo.readUInt8();
1355
- const tokenData = this.buffalo.readListUInt8({ length: 8 });
1346
+ const tokenData = this.buffalo.readListUInt8(8);
1356
1347
  return [status, tokenData];
1357
1348
  }
1358
1349
  /**
@@ -1410,7 +1401,7 @@ class Ezsp extends events_1.default {
1410
1401
  if (tokenDataLength != expectedTokenDataLength) {
1411
1402
  throw enums_1.EzspStatus.ERROR_INVALID_VALUE;
1412
1403
  }
1413
- const tokenData = this.buffalo.readListUInt8({ length: tokenDataLength });
1404
+ const tokenData = this.buffalo.readListUInt8(tokenDataLength);
1414
1405
  return [tokenDataLength, tokenData];
1415
1406
  }
1416
1407
  /**
@@ -1439,7 +1430,7 @@ class Ezsp extends events_1.default {
1439
1430
  * @param tokenAddress uint16_t The address of the stack token that has changed.
1440
1431
  */
1441
1432
  ezspStackTokenChangedHandler(tokenAddress) {
1442
- debug(`ezspStackTokenChangedHandler(): callback called with: [tokenAddress=${tokenAddress}]`);
1433
+ logger_1.logger.debug(`ezspStackTokenChangedHandler(): callback called with: [tokenAddress=${tokenAddress}]`, NS);
1443
1434
  }
1444
1435
  /**
1445
1436
  * Returns a pseudorandom number.
@@ -1509,7 +1500,7 @@ class Ezsp extends events_1.default {
1509
1500
  * @param timerId uint8_t Which timer generated the callback (0 or 1).
1510
1501
  */
1511
1502
  ezspTimerHandler(timerId) {
1512
- debug(`ezspTimerHandler(): callback called with: [timerId=${timerId}]`);
1503
+ logger_1.logger.debug(`ezspTimerHandler(): callback called with: [timerId=${timerId}]`, NS);
1513
1504
  }
1514
1505
  /**
1515
1506
  * Sends a debug message from the Host to the Network Analyzer utility via the NCP.
@@ -1538,7 +1529,7 @@ class Ezsp extends events_1.default {
1538
1529
  if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
1539
1530
  throw new Error(enums_1.EzspStatus[sendStatus]);
1540
1531
  }
1541
- const values = this.buffalo.readListUInt16({ length: enums_1.EmberCounterType.COUNT });
1532
+ const values = this.buffalo.readListUInt16(enums_1.EmberCounterType.COUNT);
1542
1533
  return values;
1543
1534
  }
1544
1535
  /**
@@ -1551,7 +1542,7 @@ class Ezsp extends events_1.default {
1551
1542
  if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
1552
1543
  throw new Error(enums_1.EzspStatus[sendStatus]);
1553
1544
  }
1554
- const values = this.buffalo.readListUInt16({ length: enums_1.EmberCounterType.COUNT });
1545
+ const values = this.buffalo.readListUInt16(enums_1.EmberCounterType.COUNT);
1555
1546
  return values;
1556
1547
  }
1557
1548
  /**
@@ -1560,7 +1551,8 @@ class Ezsp extends events_1.default {
1560
1551
  * @param type Type of Counter
1561
1552
  */
1562
1553
  ezspCounterRolloverHandler(type) {
1563
- debug(`ezspCounterRolloverHandler(): callback called with: [type=${enums_1.EmberCounterType[type]}]`);
1554
+ logger_1.logger.debug(`ezspCounterRolloverHandler(): callback called with: [type=${enums_1.EmberCounterType[type]}]`, NS);
1555
+ logger_1.logger.info(`NCP Counter ${enums_1.EmberCounterType[type]} rolled over.`, NS);
1564
1556
  }
1565
1557
  /**
1566
1558
  * Used to test that UART flow control is working correctly.
@@ -1642,7 +1634,7 @@ class Ezsp extends events_1.default {
1642
1634
  * @param payload uint8_t * The payload of the custom frame.
1643
1635
  */
1644
1636
  ezspCustomFrameHandler(payloadLength, payload) {
1645
- debug(`ezspCustomFrameHandler(): callback called with: [payloadLength=${payloadLength}], [payload=${payload}]`);
1637
+ logger_1.logger.debug(`ezspCustomFrameHandler(): callback called with: [payloadLength=${payloadLength}], [payload=${payload}]`, NS);
1646
1638
  }
1647
1639
  /**
1648
1640
  * Returns the EUI64 ID of the local node.
@@ -1770,7 +1762,7 @@ class Ezsp extends events_1.default {
1770
1762
  * @param status Stack status
1771
1763
  */
1772
1764
  ezspStackStatusHandler(status) {
1773
- debug(`ezspStackStatusHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`);
1765
+ logger_1.logger.debug(`ezspStackStatusHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`, NS);
1774
1766
  this.emit(EzspEvents.STACK_STATUS, status);
1775
1767
  }
1776
1768
  /**
@@ -1812,8 +1804,8 @@ class Ezsp extends events_1.default {
1812
1804
  * @param maxRssiValue int8_t The maximum RSSI value found on the channel.
1813
1805
  */
1814
1806
  ezspEnergyScanResultHandler(channel, maxRssiValue) {
1815
- debug(`ezspEnergyScanResultHandler(): callback called with: [channel=${channel}], [maxRssiValue=${maxRssiValue}]`);
1816
- console.log(`Energy scan for channel ${channel} reports max RSSI value at ${maxRssiValue}.`);
1807
+ logger_1.logger.debug(`ezspEnergyScanResultHandler(): callback called with: [channel=${channel}], [maxRssiValue=${maxRssiValue}]`, NS);
1808
+ logger_1.logger.info(`Energy scan for channel ${channel} reports max RSSI value at ${maxRssiValue} dBm.`, NS);
1817
1809
  }
1818
1810
  /**
1819
1811
  * Callback
@@ -1824,8 +1816,8 @@ class Ezsp extends events_1.default {
1824
1816
  * @param lastHopRssi int8_t The energy level (in units of dBm) observed during the reception.
1825
1817
  */
1826
1818
  ezspNetworkFoundHandler(networkFound, lastHopLqi, lastHopRssi) {
1827
- debug(`ezspNetworkFoundHandler(): callback called with: [networkFound=${networkFound}], `
1828
- + `[lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}]`);
1819
+ logger_1.logger.debug(`ezspNetworkFoundHandler(): callback called with: [networkFound=${JSON.stringify(networkFound)}], `
1820
+ + `[lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}]`, NS);
1829
1821
  }
1830
1822
  /**
1831
1823
  * Callback
@@ -1836,7 +1828,7 @@ class Ezsp extends events_1.default {
1836
1828
  * error conditions signify a failure to scan on the channel specified.
1837
1829
  */
1838
1830
  ezspScanCompleteHandler(channel, status) {
1839
- debug(`ezspScanCompleteHandler(): callback called with: [channel=${channel}], [status=${enums_1.EmberStatus[status]}]`);
1831
+ logger_1.logger.debug(`ezspScanCompleteHandler(): callback called with: [channel=${channel}], [status=${enums_1.EmberStatus[status]}]`, NS);
1840
1832
  }
1841
1833
  /**
1842
1834
  * Callback
@@ -1846,7 +1838,7 @@ class Ezsp extends events_1.default {
1846
1838
  * @param channel uint8_t The channel that the unused panID was found on.
1847
1839
  */
1848
1840
  ezspUnusedPanIdFoundHandler(panId, channel) {
1849
- debug(`ezspUnusedPanIdFoundHandler(): callback called with: [panId=${panId}], [channel=${channel}]`);
1841
+ logger_1.logger.debug(`ezspUnusedPanIdFoundHandler(): callback called with: [panId=${panId}], [channel=${channel}]`, NS);
1850
1842
  }
1851
1843
  /**
1852
1844
  * This function starts a series of scans which will return an available panId.
@@ -1936,7 +1928,7 @@ class Ezsp extends events_1.default {
1936
1928
  this.startCommand(enums_2.EzspFrameID.JOIN_NETWORK_DIRECTLY);
1937
1929
  this.buffalo.writeUInt8(localNodeType);
1938
1930
  this.buffalo.writeEmberBeaconData(beacon);
1939
- this.buffalo.writeUInt8(radioTxPower);
1931
+ this.buffalo.writeInt8(radioTxPower);
1940
1932
  this.buffalo.writeUInt8(clearBeaconsAfterNetworkUp ? 1 : 0);
1941
1933
  const sendStatus = await this.sendCommand();
1942
1934
  if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
@@ -2017,8 +2009,8 @@ class Ezsp extends events_1.default {
2017
2009
  * @param childType The node type of the child.
2018
2010
  */
2019
2011
  ezspChildJoinHandler(index, joining, childId, childEui64, childType) {
2020
- debug(`ezspChildJoinHandler(): callback called with: [index=${index}], [joining=${joining}], `
2021
- + `[childId=${childId}], [childEui64=${childEui64}], [childType=${childType}]`);
2012
+ logger_1.logger.debug(`ezspChildJoinHandler(): callback called with: [index=${index}], [joining=${joining}], `
2013
+ + `[childId=${childId}], [childEui64=${childEui64}], [childType=${childType}]`, NS);
2022
2014
  }
2023
2015
  /**
2024
2016
  * Sends a ZDO energy scan request. This request may only be sent by the current
@@ -2343,7 +2335,7 @@ class Ezsp extends events_1.default {
2343
2335
  */
2344
2336
  async ezspSetRadioPower(power) {
2345
2337
  this.startCommand(enums_2.EzspFrameID.SET_RADIO_POWER);
2346
- this.buffalo.writeUInt8(power);
2338
+ this.buffalo.writeInt8(power);
2347
2339
  const sendStatus = await this.sendCommand();
2348
2340
  if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
2349
2341
  throw new Error(enums_1.EzspStatus[sendStatus]);
@@ -2463,7 +2455,7 @@ class Ezsp extends events_1.default {
2463
2455
  this.buffalo.writeUInt8(phyIndex);
2464
2456
  this.buffalo.writeUInt8(page);
2465
2457
  this.buffalo.writeUInt8(channel);
2466
- this.buffalo.writeUInt8(power);
2458
+ this.buffalo.writeInt8(power);
2467
2459
  this.buffalo.writeUInt8(bitmask);
2468
2460
  const sendStatus = await this.sendCommand();
2469
2461
  if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
@@ -2503,7 +2495,7 @@ class Ezsp extends events_1.default {
2503
2495
  async ezspMultiPhySetRadioPower(phyIndex, power) {
2504
2496
  this.startCommand(enums_2.EzspFrameID.MULTI_PHY_SET_RADIO_POWER);
2505
2497
  this.buffalo.writeUInt8(phyIndex);
2506
- this.buffalo.writeUInt8(power);
2498
+ this.buffalo.writeInt8(power);
2507
2499
  const sendStatus = await this.sendCommand();
2508
2500
  if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
2509
2501
  throw new Error(enums_1.EzspStatus[sendStatus]);
@@ -2619,7 +2611,7 @@ class Ezsp extends events_1.default {
2619
2611
  throw new Error(enums_1.EzspStatus[sendStatus]);
2620
2612
  }
2621
2613
  const status = this.buffalo.readUInt8();
2622
- const arrayOfDeviceDutyCycles = this.buffalo.readListUInt8({ length: 134 });
2614
+ const arrayOfDeviceDutyCycles = this.buffalo.readListUInt8(134);
2623
2615
  return [status, arrayOfDeviceDutyCycles];
2624
2616
  }
2625
2617
  /**
@@ -2633,8 +2625,8 @@ class Ezsp extends events_1.default {
2633
2625
  * The first entry always be the local stack's nodeId, and thus the total aggregate duty cycle for the device.
2634
2626
  */
2635
2627
  ezspDutyCycleHandler(channelPage, channel, state, totalDevices, arrayOfDeviceDutyCycles) {
2636
- debug(`ezspDutyCycleHandler(): callback called with: [channelPage=${channelPage}], [channel=${channel}], `
2637
- + `[state=${state}], [totalDevices=${totalDevices}], [arrayOfDeviceDutyCycles=${arrayOfDeviceDutyCycles}]`);
2628
+ logger_1.logger.debug(`ezspDutyCycleHandler(): callback called with: [channelPage=${channelPage}], [channel=${channel}], `
2629
+ + `[state=${state}], [totalDevices=${totalDevices}], [arrayOfDeviceDutyCycles=${arrayOfDeviceDutyCycles}]`, NS);
2638
2630
  }
2639
2631
  /**
2640
2632
  * Returns the first beacon in the cache. Beacons are stored in cache after
@@ -2845,8 +2837,8 @@ class Ezsp extends events_1.default {
2845
2837
  * @param policyDecision EMBER_SUCCESS if the binding was added to the table and any other status if not.
2846
2838
  */
2847
2839
  ezspRemoteSetBindingHandler(entry, index, policyDecision) {
2848
- debug(`ezspRemoteSetBindingHandler(): callback called with: [entry=${entry}], [index=${index}], `
2849
- + `[policyDecision=${enums_1.EmberStatus[policyDecision]}]`);
2840
+ logger_1.logger.debug(`ezspRemoteSetBindingHandler(): callback called with: [entry=${entry}], [index=${index}], `
2841
+ + `[policyDecision=${enums_1.EmberStatus[policyDecision]}]`, NS);
2850
2842
  }
2851
2843
  /**
2852
2844
  * Callback
@@ -2858,7 +2850,7 @@ class Ezsp extends events_1.default {
2858
2850
  * @param policyDecision EMBER_SUCCESS if the binding was removed from the table and any other status if not.
2859
2851
  */
2860
2852
  ezspRemoteDeleteBindingHandler(index, policyDecision) {
2861
- debug(`ezspRemoteDeleteBindingHandler(): callback called with: [index=${index}], [policyDecision=${enums_1.EmberStatus[policyDecision]}]`);
2853
+ logger_1.logger.debug(`ezspRemoteDeleteBindingHandler(): callback called with: [index=${index}], [policyDecision=${enums_1.EmberStatus[policyDecision]}]`, NS);
2862
2854
  }
2863
2855
  //-----------------------------------------------------------------------------
2864
2856
  // Messaging Frames
@@ -3099,9 +3091,9 @@ class Ezsp extends events_1.default {
3099
3091
  * for the messageContentsInCallback policy is messageTagAndContentsInCallback.
3100
3092
  */
3101
3093
  ezspMessageSentHandler(type, indexOrDestination, apsFrame, messageTag, status, messageContents) {
3102
- debug(`ezspMessageSentHandler(): callback called with: [type=${enums_1.EmberOutgoingMessageType[type]}], [indexOrDestination=${indexOrDestination}], `
3094
+ logger_1.logger.debug(`ezspMessageSentHandler(): callback called with: [type=${enums_1.EmberOutgoingMessageType[type]}], [indexOrDestination=${indexOrDestination}], `
3103
3095
  + `[apsFrame=${JSON.stringify(apsFrame)}], [messageTag=${messageTag}], [status=${enums_1.EmberStatus[status]}], `
3104
- + `[messageContents=${messageContents.toString('hex')}]`);
3096
+ + `[messageContents=${messageContents.toString('hex')}]`, NS);
3105
3097
  if (status === enums_1.EmberStatus.DELIVERY_FAILED) {
3106
3098
  // no ACK was received from the destination
3107
3099
  this.emit(EzspEvents.MESSAGE_SENT_DELIVERY_FAILED, type, indexOrDestination, apsFrame, messageTag);
@@ -3188,7 +3180,7 @@ class Ezsp extends events_1.default {
3188
3180
  * - EMBER_MAC_NO_ACK_RECEIVED - The poll message was sent but not acknowledged by the parent.
3189
3181
  */
3190
3182
  ezspPollCompleteHandler(status) {
3191
- debug(`ezspPollCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`);
3183
+ logger_1.logger.debug(`ezspPollCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`, NS);
3192
3184
  }
3193
3185
  /**
3194
3186
  * Callback
@@ -3197,7 +3189,7 @@ class Ezsp extends events_1.default {
3197
3189
  * @param transmitExpected True if transmit is expected, false otherwise.
3198
3190
  */
3199
3191
  ezspPollHandler(childId, transmitExpected) {
3200
- debug(`ezspPollHandler(): callback called with: [childId=${childId}], [transmitExpected=${transmitExpected}]`);
3192
+ logger_1.logger.debug(`ezspPollHandler(): callback called with: [childId=${childId}], [transmitExpected=${transmitExpected}]`, NS);
3201
3193
  }
3202
3194
  /**
3203
3195
  * Callback
@@ -3208,7 +3200,7 @@ class Ezsp extends events_1.default {
3208
3200
  * @param senderEui64 The EUI64 of the sender
3209
3201
  */
3210
3202
  ezspIncomingSenderEui64Handler(senderEui64) {
3211
- debug(`ezspIncomingSenderEui64Handler(): callback called with: [senderEui64=${senderEui64}]`);
3203
+ logger_1.logger.debug(`ezspIncomingSenderEui64Handler(): callback called with: [senderEui64=${senderEui64}]`, NS);
3212
3204
  }
3213
3205
  /**
3214
3206
  * Callback
@@ -3225,17 +3217,16 @@ class Ezsp extends events_1.default {
3225
3217
  * @param messageContents uint8_t * The incoming message.
3226
3218
  */
3227
3219
  ezspIncomingMessageHandler(type, apsFrame, lastHopLqi, lastHopRssi, sender, bindingIndex, addressIndex, messageContents) {
3228
- debug(`ezspIncomingMessageHandler(): callback called with: [type=${enums_1.EmberIncomingMessageType[type]}], [apsFrame=${JSON.stringify(apsFrame)}], `
3220
+ logger_1.logger.debug(`ezspIncomingMessageHandler(): callback called with: [type=${enums_1.EmberIncomingMessageType[type]}], [apsFrame=${JSON.stringify(apsFrame)}], `
3229
3221
  + `[lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}], [sender=${sender}], [bindingIndex=${bindingIndex}], `
3230
- + `[addressIndex=${addressIndex}], [messageContents=${messageContents.toString('hex')}]`);
3231
- // from protocol\zigbee\app\util\zigbee-framework\zigbee-device-host.h
3222
+ + `[addressIndex=${addressIndex}], [messageContents=${messageContents.toString('hex')}]`, NS);
3232
3223
  if (apsFrame.profileId === zdo_1.ZDO_PROFILE_ID) {
3233
3224
  const zdoBuffalo = new buffalo_1.EzspBuffalo(messageContents, zdo_1.ZDO_MESSAGE_OVERHEAD); // set pos to skip `transaction sequence number`
3234
3225
  switch (apsFrame.clusterId) {
3235
3226
  case zdo_1.IEEE_ADDRESS_RESPONSE: {
3236
3227
  const status = zdoBuffalo.readUInt8();
3237
3228
  if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
3238
- debug(`<=== [ZDO IEEE_ADDRESS_RESPONSE status=${status}]`);
3229
+ logger_1.logger.debug(`<=== [ZDO IEEE_ADDRESS_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3239
3230
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
3240
3231
  }
3241
3232
  else {
@@ -3259,11 +3250,11 @@ class Ezsp extends events_1.default {
3259
3250
  if (zdoBuffalo.isMore()) {
3260
3251
  assocDevCount = zdoBuffalo.readUInt8();
3261
3252
  startIndex = zdoBuffalo.readUInt8();
3262
- assocDevList = zdoBuffalo.readListUInt16({ length: assocDevCount });
3253
+ assocDevList = zdoBuffalo.readListUInt16(assocDevCount);
3263
3254
  }
3264
- debug(`<=== [ZDO IEEE_ADDRESS_RESPONSE status=${status} eui64=${eui64} nodeId=${nodeId} startIndex=${startIndex} `
3265
- + `assocDevList=${assocDevList}]`);
3266
- debug(`<=== [ZDO IEEE_ADDRESS_RESPONSE] Support not implemented upstream`);
3255
+ logger_1.logger.debug(`<=== [ZDO IEEE_ADDRESS_RESPONSE status=${zdo_1.EmberZdoStatus[status]} eui64=${eui64} nodeId=${nodeId} `
3256
+ + `startIndex=${startIndex} assocDevList=${assocDevList}]`, NS);
3257
+ logger_1.logger.debug(`<=== [ZDO IEEE_ADDRESS_RESPONSE] Support not implemented upstream`, NS);
3267
3258
  const payload = { eui64, nodeId, assocDevList };
3268
3259
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
3269
3260
  }
@@ -3272,7 +3263,7 @@ class Ezsp extends events_1.default {
3272
3263
  case zdo_1.NETWORK_ADDRESS_RESPONSE: {
3273
3264
  const status = zdoBuffalo.readUInt8();
3274
3265
  if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
3275
- debug(`<=== [ZDO NETWORK_ADDRESS_RESPONSE status=${status}]`);
3266
+ logger_1.logger.debug(`<=== [ZDO NETWORK_ADDRESS_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3276
3267
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
3277
3268
  }
3278
3269
  else {
@@ -3296,10 +3287,10 @@ class Ezsp extends events_1.default {
3296
3287
  if (zdoBuffalo.isMore()) {
3297
3288
  assocDevCount = zdoBuffalo.readUInt8();
3298
3289
  startIndex = zdoBuffalo.readUInt8();
3299
- assocDevList = zdoBuffalo.readListUInt16({ length: assocDevCount });
3290
+ assocDevList = zdoBuffalo.readListUInt16(assocDevCount);
3300
3291
  }
3301
- debug(`<=== [ZDO NETWORK_ADDRESS_RESPONSE status=${status} eui64=${eui64} nodeId=${nodeId} startIndex=${startIndex} `
3302
- + `assocDevList=${assocDevList}]`);
3292
+ logger_1.logger.debug(`<=== [ZDO NETWORK_ADDRESS_RESPONSE status=${zdo_1.EmberZdoStatus[status]} eui64=${eui64} nodeId=${nodeId} `
3293
+ + `startIndex=${startIndex} assocDevList=${assocDevList}]`, NS);
3303
3294
  const payload = { eui64, nodeId, assocDevList };
3304
3295
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
3305
3296
  }
@@ -3308,15 +3299,15 @@ class Ezsp extends events_1.default {
3308
3299
  case zdo_1.MATCH_DESCRIPTORS_RESPONSE: {
3309
3300
  const status = zdoBuffalo.readUInt8();
3310
3301
  if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
3311
- debug(`<=== [ZDO MATCH_DESCRIPTORS_RESPONSE status=${status}]`);
3302
+ logger_1.logger.debug(`<=== [ZDO MATCH_DESCRIPTORS_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3312
3303
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
3313
3304
  }
3314
3305
  else {
3315
3306
  const nodeId = zdoBuffalo.readUInt16();
3316
3307
  const endpointCount = zdoBuffalo.readUInt8();
3317
- const endpointList = zdoBuffalo.readListUInt8({ length: endpointCount });
3318
- debug(`<=== [ZDO MATCH_DESCRIPTORS_RESPONSE status=${status} nodeId=${nodeId} endpointList=${endpointList}]`);
3319
- debug(`<=== [ZDO MATCH_DESCRIPTORS_RESPONSE] Support not implemented upstream`);
3308
+ const endpointList = zdoBuffalo.readListUInt8(endpointCount);
3309
+ logger_1.logger.debug(`<=== [ZDO MATCH_DESCRIPTORS_RESPONSE status=${zdo_1.EmberZdoStatus[status]} nodeId=${nodeId} endpointList=${endpointList}]`, NS);
3310
+ logger_1.logger.debug(`<=== [ZDO MATCH_DESCRIPTORS_RESPONSE] Support not implemented upstream`, NS);
3320
3311
  const payload = { nodeId, endpointList };
3321
3312
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
3322
3313
  }
@@ -3325,7 +3316,7 @@ class Ezsp extends events_1.default {
3325
3316
  case zdo_1.SIMPLE_DESCRIPTOR_RESPONSE: {
3326
3317
  const status = zdoBuffalo.readUInt8();
3327
3318
  if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
3328
- debug(`<=== [ZDO SIMPLE_DESCRIPTOR_RESPONSE status=${status}]`);
3319
+ logger_1.logger.debug(`<=== [ZDO SIMPLE_DESCRIPTOR_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3329
3320
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
3330
3321
  }
3331
3322
  else {
@@ -3338,11 +3329,12 @@ class Ezsp extends events_1.default {
3338
3329
  // values 0000-1111, others reserved
3339
3330
  const deviceVersion = zdoBuffalo.readUInt8();
3340
3331
  const inClusterCount = zdoBuffalo.readUInt8();
3341
- const inClusterList = zdoBuffalo.readListUInt16({ length: inClusterCount });
3332
+ const inClusterList = zdoBuffalo.readListUInt16(inClusterCount);
3342
3333
  const outClusterCount = zdoBuffalo.readUInt8();
3343
- const outClusterList = zdoBuffalo.readListUInt16({ length: outClusterCount });
3344
- debug(`<=== [ZDO SIMPLE_DESCRIPTOR_RESPONSE status=${status} nodeId=${nodeId} endpoint=${endpoint} profileId=${profileId} `
3345
- + `deviceId=${deviceId} deviceVersion=${deviceVersion} inClusterList=${inClusterList} outClusterList=${outClusterList}]`);
3334
+ const outClusterList = zdoBuffalo.readListUInt16(outClusterCount);
3335
+ logger_1.logger.debug(`<=== [ZDO SIMPLE_DESCRIPTOR_RESPONSE status=${zdo_1.EmberZdoStatus[status]} nodeId=${nodeId} endpoint=${endpoint} `
3336
+ + `profileId=${profileId} deviceId=${deviceId} deviceVersion=${deviceVersion} inClusterList=${inClusterList} `
3337
+ + `outClusterList=${outClusterList}]`, NS);
3346
3338
  const payload = {
3347
3339
  nodeId,
3348
3340
  endpoint,
@@ -3358,7 +3350,7 @@ class Ezsp extends events_1.default {
3358
3350
  case zdo_1.NODE_DESCRIPTOR_RESPONSE: {
3359
3351
  const status = zdoBuffalo.readUInt8();
3360
3352
  if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
3361
- debug(`<=== [ZDO NODE_DESCRIPTOR_RESPONSE status=${status}]`);
3353
+ logger_1.logger.debug(`<=== [ZDO NODE_DESCRIPTOR_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3362
3354
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
3363
3355
  }
3364
3356
  else {
@@ -3413,9 +3405,9 @@ class Ezsp extends events_1.default {
3413
3405
  // in bits: [extended active endpoint list available: 1] [extended simple descriptor list available: 1] [reserved: 6]
3414
3406
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3415
3407
  const descCapFlags = zdoBuffalo.readUInt8();
3416
- debug(`<=== [ZDO NODE_DESCRIPTOR_RESPONSE status=${status} nodeId=${nodeId} logicalType=${logicalType} `
3408
+ logger_1.logger.debug(`<=== [ZDO NODE_DESCRIPTOR_RESPONSE status=${zdo_1.EmberZdoStatus[status]} nodeId=${nodeId} logicalType=${logicalType} `
3417
3409
  + `freqBand=${freqBand} macCapFlags=${(0, math_1.byteToBits)(macCapFlags)} manufacturerCode=${manufacturerCode} maxBufSize=${maxBufSize} `
3418
- + `maxIncTxSize=${maxIncTxSize} stackRevision=${stackRevision} maxOutTxSize=${maxOutTxSize}]`);
3410
+ + `maxIncTxSize=${maxIncTxSize} stackRevision=${stackRevision} maxOutTxSize=${maxOutTxSize}]`, NS);
3419
3411
  const payload = {
3420
3412
  nodeId,
3421
3413
  logicalType,
@@ -3430,7 +3422,7 @@ class Ezsp extends events_1.default {
3430
3422
  case zdo_1.POWER_DESCRIPTOR_RESPONSE: {
3431
3423
  const status = zdoBuffalo.readUInt8();
3432
3424
  if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
3433
- debug(`<=== [ZDO POWER_DESCRIPTOR_RESPONSE status=${status}]`);
3425
+ logger_1.logger.debug(`<=== [ZDO POWER_DESCRIPTOR_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3434
3426
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
3435
3427
  }
3436
3428
  else {
@@ -3454,10 +3446,10 @@ class Ezsp extends events_1.default {
3454
3446
  // 1100 == 100%
3455
3447
  // All other values reserved
3456
3448
  const [currentPowerSource, currentPowerSourceLevel] = (0, math_1.lowHighBits)(zdoBuffalo.readUInt8());
3457
- debug(`<=== [ZDO POWER_DESCRIPTOR_RESPONSE status=${status} nodeId=${nodeId} currentPowerMode=${currentPowerMode} `
3458
- + `availPowerSources=${availPowerSources} currentPowerSource=${currentPowerSource} `
3459
- + `currentPowerSourceLevel=${currentPowerSourceLevel}]`);
3460
- debug(`<=== [ZDO POWER_DESCRIPTOR_RESPONSE] Support not implemented upstream`);
3449
+ logger_1.logger.debug(`<=== [ZDO POWER_DESCRIPTOR_RESPONSE status=${zdo_1.EmberZdoStatus[status]} nodeId=${nodeId} `
3450
+ + `currentPowerMode=${currentPowerMode} availPowerSources=${availPowerSources} currentPowerSource=${currentPowerSource} `
3451
+ + `currentPowerSourceLevel=${currentPowerSourceLevel}]`, NS);
3452
+ logger_1.logger.debug(`<=== [ZDO POWER_DESCRIPTOR_RESPONSE] Support not implemented upstream`, NS);
3461
3453
  const payload = {
3462
3454
  nodeId,
3463
3455
  currentPowerMode,
@@ -3472,14 +3464,14 @@ class Ezsp extends events_1.default {
3472
3464
  case zdo_1.ACTIVE_ENDPOINTS_RESPONSE: {
3473
3465
  const status = zdoBuffalo.readUInt8();
3474
3466
  if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
3475
- debug(`<=== [ZDO ACTIVE_ENDPOINTS_RESPONSE status=${status}]`);
3467
+ logger_1.logger.debug(`<=== [ZDO ACTIVE_ENDPOINTS_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3476
3468
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
3477
3469
  }
3478
3470
  else {
3479
3471
  const nodeId = zdoBuffalo.readUInt16();
3480
3472
  const endpointCount = zdoBuffalo.readUInt8();
3481
- const endpointList = zdoBuffalo.readListUInt8({ length: endpointCount });
3482
- debug(`<=== [ZDO ACTIVE_ENDPOINTS_RESPONSE status=${status} nodeId=${nodeId} endpointList=${endpointList}]`);
3473
+ const endpointList = zdoBuffalo.readListUInt8(endpointCount);
3474
+ logger_1.logger.debug(`<=== [ZDO ACTIVE_ENDPOINTS_RESPONSE status=${zdo_1.EmberZdoStatus[status]} nodeId=${nodeId} endpointList=${endpointList}]`, NS);
3483
3475
  const payload = { nodeId, endpointList };
3484
3476
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
3485
3477
  }
@@ -3488,7 +3480,7 @@ class Ezsp extends events_1.default {
3488
3480
  case zdo_1.LQI_TABLE_RESPONSE: {
3489
3481
  const status = zdoBuffalo.readUInt8();
3490
3482
  if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
3491
- debug(`<=== [ZDO LQI_TABLE_RESPONSE status=${status}]`);
3483
+ logger_1.logger.debug(`<=== [ZDO LQI_TABLE_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3492
3484
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
3493
3485
  }
3494
3486
  else {
@@ -3502,7 +3494,7 @@ class Ezsp extends events_1.default {
3502
3494
  // of the elements in the remote device's neighbor table, including the device address and assoc. LQI
3503
3495
  const entryList = [];
3504
3496
  for (let i = 0; i < entryCount; i++) {
3505
- const extendedPanId = zdoBuffalo.readListUInt8({ length: consts_1.EXTENDED_PAN_ID_SIZE });
3497
+ const extendedPanId = zdoBuffalo.readListUInt8(consts_1.EXTENDED_PAN_ID_SIZE);
3506
3498
  const eui64 = zdoBuffalo.readIeeeAddr();
3507
3499
  const nodeId = zdoBuffalo.readUInt16();
3508
3500
  const deviceTypeByte = zdoBuffalo.readUInt8();
@@ -3523,8 +3515,8 @@ class Ezsp extends events_1.default {
3523
3515
  lqi,
3524
3516
  });
3525
3517
  }
3526
- debug(`<=== [ZDO LQI_TABLE_RESPONSE status=${status} neighborTableEntries=${neighborTableEntries} startIndex=${startIndex} `
3527
- + `entryCount=${entryCount} entryList=${JSON.stringify(entryList)}]`);
3518
+ logger_1.logger.debug(`<=== [ZDO LQI_TABLE_RESPONSE status=${zdo_1.EmberZdoStatus[status]} neighborTableEntries=${neighborTableEntries} `
3519
+ + `startIndex=${startIndex} entryCount=${entryCount} entryList=${JSON.stringify(entryList)}]`, NS);
3528
3520
  const payload = { neighborTableEntries, entryList };
3529
3521
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
3530
3522
  }
@@ -3533,7 +3525,7 @@ class Ezsp extends events_1.default {
3533
3525
  case zdo_1.ROUTING_TABLE_RESPONSE: {
3534
3526
  const status = zdoBuffalo.readUInt8();
3535
3527
  if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
3536
- debug(`<=== [ZDO ROUTING_TABLE_RESPONSE status=${status}]`);
3528
+ logger_1.logger.debug(`<=== [ZDO ROUTING_TABLE_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3537
3529
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
3538
3530
  }
3539
3531
  else {
@@ -3560,8 +3552,8 @@ class Ezsp extends events_1.default {
3560
3552
  nextHopAddress,
3561
3553
  });
3562
3554
  }
3563
- debug(`<=== [ZDO ROUTING_TABLE_RESPONSE status=${status} routingTableEntries=${routingTableEntries} startIndex=${startIndex} `
3564
- + `entryCount=${entryCount} entryList=${JSON.stringify(entryList)}]`);
3555
+ logger_1.logger.debug(`<=== [ZDO ROUTING_TABLE_RESPONSE status=${zdo_1.EmberZdoStatus[status]} routingTableEntries=${routingTableEntries} `
3556
+ + `startIndex=${startIndex} entryCount=${entryCount} entryList=${JSON.stringify(entryList)}]`, NS);
3565
3557
  const payload = { routingTableEntries, entryList };
3566
3558
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
3567
3559
  }
@@ -3570,7 +3562,7 @@ class Ezsp extends events_1.default {
3570
3562
  case zdo_1.BINDING_TABLE_RESPONSE: {
3571
3563
  const status = zdoBuffalo.readUInt8();
3572
3564
  if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
3573
- debug(`<=== [ZDO BINDING_TABLE_RESPONSE status=${status}]`);
3565
+ logger_1.logger.debug(`<=== [ZDO BINDING_TABLE_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3574
3566
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
3575
3567
  }
3576
3568
  else {
@@ -3594,9 +3586,9 @@ class Ezsp extends events_1.default {
3594
3586
  destEndpoint,
3595
3587
  });
3596
3588
  }
3597
- debug(`<=== [ZDO BINDING_TABLE_RESPONSE status=${status} bindingTableEntries=${bindingTableEntries} startIndex=${startIndex} `
3598
- + `entryCount=${entryCount} entryList=${JSON.stringify(entryList)}]`);
3599
- debug(`<=== [ZDO BINDING_TABLE_RESPONSE] Support not implemented upstream`);
3589
+ logger_1.logger.debug(`<=== [ZDO BINDING_TABLE_RESPONSE status=${zdo_1.EmberZdoStatus[status]} bindingTableEntries=${bindingTableEntries} `
3590
+ + `startIndex=${startIndex} entryCount=${entryCount} entryList=${JSON.stringify(entryList)}]`, NS);
3591
+ logger_1.logger.debug(`<=== [ZDO BINDING_TABLE_RESPONSE] Support not implemented upstream`, NS);
3600
3592
  const payload = { bindingTableEntries, entryList };
3601
3593
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
3602
3594
  }
@@ -3604,25 +3596,25 @@ class Ezsp extends events_1.default {
3604
3596
  }
3605
3597
  case zdo_1.BIND_RESPONSE: {
3606
3598
  const status = zdoBuffalo.readUInt8();
3607
- debug(`<=== [ZDO BIND_RESPONSE status=${status}]`);
3599
+ logger_1.logger.debug(`<=== [ZDO BIND_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3608
3600
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame);
3609
3601
  break;
3610
3602
  }
3611
3603
  case zdo_1.UNBIND_RESPONSE: {
3612
3604
  const status = zdoBuffalo.readUInt8();
3613
- debug(`<=== [ZDO UNBIND_RESPONSE status=${status}]`);
3605
+ logger_1.logger.debug(`<=== [ZDO UNBIND_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3614
3606
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame);
3615
3607
  break;
3616
3608
  }
3617
3609
  case zdo_1.LEAVE_RESPONSE: {
3618
3610
  const status = zdoBuffalo.readUInt8();
3619
- debug(`<=== [ZDO LEAVE_RESPONSE status=${status}]`);
3611
+ logger_1.logger.debug(`<=== [ZDO LEAVE_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3620
3612
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame);
3621
3613
  break;
3622
3614
  }
3623
3615
  case zdo_1.PERMIT_JOINING_RESPONSE: {
3624
3616
  const status = zdoBuffalo.readUInt8();
3625
- debug(`<=== [ZDO PERMIT_JOINING_RESPONSE status=${status}]`);
3617
+ logger_1.logger.debug(`<=== [ZDO PERMIT_JOINING_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3626
3618
  this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame);
3627
3619
  break;
3628
3620
  }
@@ -3631,14 +3623,35 @@ class Ezsp extends events_1.default {
3631
3623
  const eui64 = zdoBuffalo.readIeeeAddr();
3632
3624
  /** @see MACCapabilityFlags */
3633
3625
  const capabilities = zdoBuffalo.readUInt8();
3634
- debug(`<=== [ZDO END_DEVICE_ANNOUNCE nodeId=${nodeId} eui64=${eui64} capabilities=${(0, math_1.byteToBits)(capabilities)}]`);
3626
+ logger_1.logger.debug(`<=== [ZDO END_DEVICE_ANNOUNCE nodeId=${nodeId} eui64=${eui64} capabilities=${(0, math_1.byteToBits)(capabilities)}]`, NS);
3635
3627
  const payload = { nodeId, eui64, capabilities: (0, math_1.getMacCapFlags)(capabilities) };
3636
3628
  // this one gets its own event since its purpose is to pass an event up to Z2M
3637
3629
  this.emit(EzspEvents.END_DEVICE_ANNOUNCE, sender, apsFrame, payload);
3638
3630
  break;
3639
3631
  }
3632
+ case zdo_1.PARENT_ANNOUNCE_RESPONSE: {
3633
+ const status = zdoBuffalo.readUInt8();
3634
+ if (status !== zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
3635
+ // status should always be NOT_SUPPORTED here
3636
+ logger_1.logger.debug(`<=== [ZDO PARENT_ANNOUNCE_RESPONSE status=${zdo_1.EmberZdoStatus[status]}]`, NS);
3637
+ this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, null);
3638
+ }
3639
+ else {
3640
+ const numberOfChildren = zdoBuffalo.readUInt8();
3641
+ const children = [];
3642
+ for (let i = 0; i < numberOfChildren; i++) {
3643
+ const childEui64 = zdoBuffalo.readIeeeAddr();
3644
+ children.push(childEui64);
3645
+ }
3646
+ logger_1.logger.debug(`<=== [ZDO PARENT_ANNOUNCE_RESPONSE status=${zdo_1.EmberZdoStatus[status]} numberOfChildren=${numberOfChildren} `
3647
+ + `children=${children}]`, NS);
3648
+ logger_1.logger.debug(`<=== [ZDO PARENT_ANNOUNCE_RESPONSE] Support not implemented upstream`, NS);
3649
+ const payload = { children };
3650
+ this.emit(EzspEvents.ZDO_RESPONSE, status, sender, apsFrame, payload);
3651
+ }
3652
+ }
3640
3653
  default: {
3641
- console.log(`<=== [ZDO clusterId=${apsFrame.clusterId}] Support not implemented`);
3654
+ logger_1.logger.info(`<=== [ZDO clusterId=${apsFrame.clusterId} sender=${sender}] Support not implemented upstream.`, NS);
3642
3655
  break;
3643
3656
  }
3644
3657
  }
@@ -3674,7 +3687,7 @@ class Ezsp extends events_1.default {
3674
3687
  * for this discovery arrive, but the callback is made only once.
3675
3688
  */
3676
3689
  ezspIncomingManyToOneRouteRequestHandler(source, longId, cost) {
3677
- debug(`ezspIncomingManyToOneRouteRequestHandler(): callback called with: [source=${source}], [longId=${longId}], [cost=${cost}]`);
3690
+ logger_1.logger.debug(`ezspIncomingManyToOneRouteRequestHandler(): callback called with: [source=${source}], [longId=${longId}], [cost=${cost}]`, NS);
3678
3691
  }
3679
3692
  /**
3680
3693
  * Callback
@@ -3702,7 +3715,7 @@ class Ezsp extends events_1.default {
3702
3715
  * @param target The short id of the remote node.
3703
3716
  */
3704
3717
  ezspIncomingRouteErrorHandler(status, target) {
3705
- debug(`ezspIncomingRouteErrorHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [target=${target}]`);
3718
+ logger_1.logger.debug(`ezspIncomingRouteErrorHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [target=${target}]`, NS);
3706
3719
  // NOTE: This can trigger immediately after removal of a device with status MAC_INDIRECT_TIMEOUT
3707
3720
  }
3708
3721
  /**
@@ -3719,8 +3732,8 @@ class Ezsp extends events_1.default {
3719
3732
  * @param target The short ID of the remote node
3720
3733
  */
3721
3734
  ezspIncomingNetworkStatusHandler(errorCode, target) {
3722
- debug(`ezspIncomingNetworkStatusHandler(): callback called with: [errorCode=${enums_1.EmberStackError[errorCode]}], [target=${target}]`);
3723
- console.log(`Received network/route error ${enums_1.EmberStackError[errorCode]} for "${target}".`);
3735
+ logger_1.logger.debug(`ezspIncomingNetworkStatusHandler(): callback called with: [errorCode=${enums_1.EmberStackError[errorCode]}], [target=${target}]`, NS);
3736
+ logger_1.logger.info(`Received network/route error ${enums_1.EmberStackError[errorCode]} for "${target}".`, NS);
3724
3737
  }
3725
3738
  /**
3726
3739
  * Callback
@@ -3734,8 +3747,8 @@ class Ezsp extends events_1.default {
3734
3747
  * The list is passed as uint8_t * to avoid alignment problems.
3735
3748
  */
3736
3749
  ezspIncomingRouteRecordHandler(source, sourceEui, lastHopLqi, lastHopRssi, relayCount, relayList) {
3737
- debug(`ezspIncomingRouteRecordHandler(): callback called with: [source=${source}], [sourceEui=${sourceEui}], `
3738
- + `[lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}], [relayCount=${relayCount}], [relayList=${relayList}]`);
3750
+ logger_1.logger.debug(`ezspIncomingRouteRecordHandler(): callback called with: [source=${source}], [sourceEui=${sourceEui}], `
3751
+ + `[lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}], [relayCount=${relayCount}], [relayList=${relayList}]`, NS);
3739
3752
  // XXX: could at least trigger a `Events.lastSeenChanged` but this is not currently being listened to at the adapter level
3740
3753
  }
3741
3754
  /**
@@ -4033,8 +4046,12 @@ class Ezsp extends events_1.default {
4033
4046
  * @param id The short id for which a conflict was detected
4034
4047
  */
4035
4048
  ezspIdConflictHandler(id) {
4036
- debug(`ezspIdConflictHandler(): callback called with: [id=${id}]`);
4037
- console.warn(`An ID conflict was detected for device "${id}".`);
4049
+ logger_1.logger.debug(`ezspIdConflictHandler(): callback called with: [id=${id}]`, NS);
4050
+ logger_1.logger.warning(`An ID conflict was detected for network address "${id}". Corresponding devices kicked from the network.`, NS);
4051
+ // XXX: this is currently causing more problems than not doing it, so disabled for now.
4052
+ // devices should rejoin on ID conflict anyway, so the database isn't out of sync for very long.
4053
+ // hijacking the event from `ezspTrustCenterJoinHandler`, and forging a DEVICE_LEFT to avoid another event ending up doing the same logic
4054
+ // this.emit(EzspEvents.TRUST_CENTER_JOIN, id, null, EmberDeviceUpdate.DEVICE_LEFT, EmberJoinDecision.NO_ACTION, NULL_NODE_ID);
4038
4055
  }
4039
4056
  /**
4040
4057
  * Write the current node Id, PAN ID, or Node type to the tokens
@@ -4098,8 +4115,8 @@ class Ezsp extends events_1.default {
4098
4115
  * @param messageContents uint8_t * The raw message that was received.
4099
4116
  */
4100
4117
  ezspMacPassthroughMessageHandler(messageType, lastHopLqi, lastHopRssi, messageContents) {
4101
- debug(`ezspMacPassthroughMessageHandler(): callback called with: [messageType=${messageType}], [lastHopLqi=${lastHopLqi}], `
4102
- + `[lastHopRssi=${lastHopRssi}], [messageContents=${messageContents.toString('hex')}]`);
4118
+ logger_1.logger.debug(`ezspMacPassthroughMessageHandler(): callback called with: [messageType=${messageType}], [lastHopLqi=${lastHopLqi}], `
4119
+ + `[lastHopRssi=${lastHopRssi}], [messageContents=${messageContents.toString('hex')}]`, NS);
4103
4120
  }
4104
4121
  /**
4105
4122
  * Callback
@@ -4113,9 +4130,9 @@ class Ezsp extends events_1.default {
4113
4130
  * @param messageContents uint8_t * The raw message that was received.
4114
4131
  */
4115
4132
  ezspMacFilterMatchMessageHandler(filterIndexMatch, legacyPassthroughType, lastHopLqi, lastHopRssi, messageContents) {
4116
- debug(`ezspMacFilterMatchMessageHandler(): callback called with: [filterIndexMatch=${filterIndexMatch}], `
4133
+ logger_1.logger.debug(`ezspMacFilterMatchMessageHandler(): callback called with: [filterIndexMatch=${filterIndexMatch}], `
4117
4134
  + `[legacyPassthroughType=${legacyPassthroughType}], [lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}], `
4118
- + `[messageContents=${messageContents.toString('hex')}]`);
4135
+ + `[messageContents=${messageContents.toString('hex')}]`, NS);
4119
4136
  // TODO: needs triple-checking, this is only valid for InterPAN messages
4120
4137
  const msgBuffalo = new buffalo_1.EzspBuffalo(messageContents, 0);
4121
4138
  const macFrameControl = msgBuffalo.readUInt16() & ~(consts_2.MAC_ACK_REQUIRED);
@@ -4132,7 +4149,7 @@ class Ezsp extends events_1.default {
4132
4149
  destAddress = msgBuffalo.readUInt16();
4133
4150
  }
4134
4151
  else {
4135
- debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN macFrameControl "${macFrameControl}".`);
4152
+ logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN macFrameControl "${macFrameControl}".`, NS);
4136
4153
  return;
4137
4154
  }
4138
4155
  const sourcePanId = msgBuffalo.readUInt16();
@@ -4140,19 +4157,19 @@ class Ezsp extends events_1.default {
4140
4157
  // Now that we know the correct MAC length, verify the interpan frame is the correct length.
4141
4158
  let remainingLength = msgBuffalo.getBufferLength() - msgBuffalo.getPosition();
4142
4159
  if (remainingLength < (consts_2.STUB_NWK_SIZE + consts_2.MIN_STUB_APS_SIZE)) {
4143
- debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN length "${remainingLength}".`);
4160
+ logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN length "${remainingLength}".`, NS);
4144
4161
  return;
4145
4162
  }
4146
4163
  const nwkFrameControl = msgBuffalo.readUInt16();
4147
4164
  remainingLength -= 2; // read 2 more bytes before APS stuff
4148
4165
  if (nwkFrameControl !== consts_2.STUB_NWK_FRAME_CONTROL) {
4149
- debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN nwkFrameControl "${nwkFrameControl}".`);
4166
+ logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN nwkFrameControl "${nwkFrameControl}".`, NS);
4150
4167
  return;
4151
4168
  }
4152
4169
  const apsFrameControl = msgBuffalo.readUInt8();
4153
4170
  if ((apsFrameControl & ~(consts_2.INTERPAN_APS_FRAME_DELIVERY_MODE_MASK) & ~(consts_2.INTERPAN_APS_FRAME_SECURITY))
4154
4171
  !== consts_2.INTERPAN_APS_FRAME_CONTROL_NO_DELIVERY_MODE) {
4155
- debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN apsFrameControl "${apsFrameControl}".`);
4172
+ logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN apsFrameControl "${apsFrameControl}".`, NS);
4156
4173
  return;
4157
4174
  }
4158
4175
  const messageType = (apsFrameControl & consts_2.INTERPAN_APS_FRAME_DELIVERY_MODE_MASK);
@@ -4161,28 +4178,28 @@ class Ezsp extends events_1.default {
4161
4178
  case enums_1.EmberInterpanMessageType.UNICAST:
4162
4179
  case enums_1.EmberInterpanMessageType.BROADCAST: {
4163
4180
  if (remainingLength < consts_2.INTERPAN_APS_UNICAST_BROADCAST_SIZE) {
4164
- debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN length "${remainingLength}".`);
4181
+ logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN length "${remainingLength}".`, NS);
4165
4182
  return;
4166
4183
  }
4167
4184
  break;
4168
4185
  }
4169
4186
  case enums_1.EmberInterpanMessageType.MULTICAST: {
4170
4187
  if (remainingLength < consts_2.INTERPAN_APS_MULTICAST_SIZE) {
4171
- debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN length "${remainingLength}".`);
4188
+ logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN length "${remainingLength}".`, NS);
4172
4189
  return;
4173
4190
  }
4174
4191
  groupId = msgBuffalo.readUInt16();
4175
4192
  break;
4176
4193
  }
4177
4194
  default: {
4178
- debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN messageType "${messageType}".`);
4195
+ logger_1.logger.debug(`ezspMacFilterMatchMessageHandler INVALID InterPAN messageType "${messageType}".`, NS);
4179
4196
  return;
4180
4197
  }
4181
4198
  }
4182
4199
  const clusterId = msgBuffalo.readUInt16();
4183
4200
  const profileId = msgBuffalo.readUInt16();
4184
4201
  const payload = msgBuffalo.readRest();
4185
- if (profileId === consts_2.TOUCHLINK_PROFILE_ID && clusterId === cluster_1.default.touchlink.ID) {
4202
+ if (profileId === consts_2.TOUCHLINK_PROFILE_ID && clusterId === cluster_1.Clusters.touchlink.ID) {
4186
4203
  this.emit(EzspEvents.TOUCHLINK_MESSAGE, sourcePanId, sourceAddress, groupId, lastHopLqi, payload);
4187
4204
  }
4188
4205
  }
@@ -4193,7 +4210,7 @@ class Ezsp extends events_1.default {
4193
4210
  * @param status EMBER_SUCCESS if the transmission was successful, or EMBER_DELIVERY_FAILED if not
4194
4211
  */
4195
4212
  ezspRawTransmitCompleteHandler(status) {
4196
- debug(`ezspRawTransmitCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`);
4213
+ logger_1.logger.debug(`ezspRawTransmitCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`, NS);
4197
4214
  }
4198
4215
  /**
4199
4216
  * This function is useful to sleepy end devices. This function will set the
@@ -4326,7 +4343,7 @@ class Ezsp extends events_1.default {
4326
4343
  */
4327
4344
  // NOTE: added for good measure
4328
4345
  if (context.coreKeyType === enums_1.SecManKeyType.INTERNAL) {
4329
- console.assert(false, `ezspImportKey cannot use INTERNAL key type.`);
4346
+ logger_1.logger.error(`ezspImportKey cannot use INTERNAL key type.`, NS);
4330
4347
  return [null, enums_1.SLStatus.INVALID_PARAMETER];
4331
4348
  }
4332
4349
  this.startCommand(enums_2.EzspFrameID.EXPORT_KEY);
@@ -4385,7 +4402,7 @@ class Ezsp extends events_1.default {
4385
4402
  */
4386
4403
  // NOTE: added for good measure
4387
4404
  if (context.coreKeyType === enums_1.SecManKeyType.INTERNAL) {
4388
- console.assert(false, `ezspImportKey cannot use INTERNAL key type.`);
4405
+ logger_1.logger.error(`ezspImportKey cannot use INTERNAL key type.`, NS);
4389
4406
  return enums_1.SLStatus.INVALID_PARAMETER;
4390
4407
  }
4391
4408
  this.startCommand(enums_2.EzspFrameID.IMPORT_KEY);
@@ -4406,7 +4423,7 @@ class Ezsp extends events_1.default {
4406
4423
  * @param sequenceNumber uint8_t The sequence number of the new network key.
4407
4424
  */
4408
4425
  ezspSwitchNetworkKeyHandler(sequenceNumber) {
4409
- debug(`ezspSwitchNetworkKeyHandler(): callback called with: [sequenceNumber=${sequenceNumber}]`);
4426
+ logger_1.logger.debug(`ezspSwitchNetworkKeyHandler(): callback called with: [sequenceNumber=${sequenceNumber}]`, NS);
4410
4427
  }
4411
4428
  /**
4412
4429
  * This function searches through the Key Table and tries to find the entry that
@@ -4537,7 +4554,7 @@ class Ezsp extends events_1.default {
4537
4554
  * @param status This is the status indicating what was established or why the key establishment failed.
4538
4555
  */
4539
4556
  ezspZigbeeKeyEstablishmentHandler(partner, status) {
4540
- debug(`ezspZigbeeKeyEstablishmentHandler(): callback called with: [partner=${partner}], [status=${enums_1.EmberKeyStatus[status]}]`);
4557
+ logger_1.logger.debug(`ezspZigbeeKeyEstablishmentHandler(): callback called with: [partner=${partner}], [status=${enums_1.EmberKeyStatus[status]}]`, NS);
4541
4558
  // NOTE: For security reasons, any valid `partner` (not wildcard) that return with a status=TC_REQUESTER_VERIFY_KEY_TIMEOUT
4542
4559
  // are kicked off the network for posing a risk, unless HA devices allowed (as opposed to Z3)
4543
4560
  // and always if status=TC_REQUESTER_VERIFY_KEY_FAILURE
@@ -4865,9 +4882,9 @@ class Ezsp extends events_1.default {
4865
4882
  * @param parentOfNewNodeId The parent of the node whose status has changed.
4866
4883
  */
4867
4884
  ezspTrustCenterJoinHandler(newNodeId, newNodeEui64, status, policyDecision, parentOfNewNodeId) {
4868
- debug(`ezspTrustCenterJoinHandler(): callback called with: [newNodeId=${newNodeId}], [newNodeEui64=${newNodeEui64}], `
4885
+ logger_1.logger.debug(`ezspTrustCenterJoinHandler(): callback called with: [newNodeId=${newNodeId}], [newNodeEui64=${newNodeEui64}], `
4869
4886
  + `[status=${enums_1.EmberDeviceUpdate[status]}], [policyDecision=${enums_1.EmberJoinDecision[policyDecision]}], `
4870
- + `[parentOfNewNodeId=${parentOfNewNodeId}]`);
4887
+ + `[parentOfNewNodeId=${parentOfNewNodeId}]`, NS);
4871
4888
  // NOTE: this is mostly just passing stuff up to Z2M, so use only one emit for all, let adapter do the rest, no parsing needed
4872
4889
  this.emit(EzspEvents.TRUST_CENTER_JOIN, newNodeId, newNodeEui64, status, policyDecision, parentOfNewNodeId);
4873
4890
  }
@@ -5000,7 +5017,7 @@ class Ezsp extends events_1.default {
5000
5017
  * @param ephemeralPublicKey EmberPublicKeyData * The generated ephemeral public key.
5001
5018
  */
5002
5019
  ezspGenerateCbkeKeysHandler(status, ephemeralPublicKey) {
5003
- debug(`ezspGenerateCbkeKeysHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [ephemeralPublicKey=${ephemeralPublicKey}]`);
5020
+ logger_1.logger.debug(`ezspGenerateCbkeKeysHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [ephemeralPublicKey=${ephemeralPublicKey}]`, NS);
5004
5021
  }
5005
5022
  /**
5006
5023
  * Calculates the SMAC verification keys for both the initiator and responder
@@ -5035,8 +5052,8 @@ class Ezsp extends events_1.default {
5035
5052
  * @param responderSmac EmberSmacData * The calculated value of the responder's SMAC
5036
5053
  */
5037
5054
  ezspCalculateSmacsHandler(status, initiatorSmac, responderSmac) {
5038
- debug(`ezspCalculateSmacsHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [initiatorSmac=${initiatorSmac}], `
5039
- + `[responderSmac=${responderSmac}]`);
5055
+ logger_1.logger.debug(`ezspCalculateSmacsHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [initiatorSmac=${initiatorSmac}], `
5056
+ + `[responderSmac=${responderSmac}]`, NS);
5040
5057
  }
5041
5058
  /**
5042
5059
  * This call starts the generation of the ECC 283k1 curve Ephemeral
@@ -5062,8 +5079,8 @@ class Ezsp extends events_1.default {
5062
5079
  * @param ephemeralPublicKey EmberPublicKey283k1Data * The generated ephemeral public key.
5063
5080
  */
5064
5081
  ezspGenerateCbkeKeysHandler283k1(status, ephemeralPublicKey) {
5065
- debug(`ezspGenerateCbkeKeysHandler283k1(): callback called with: [status=${enums_1.EmberStatus[status]}], `
5066
- + `[ephemeralPublicKey=${ephemeralPublicKey}]`);
5082
+ logger_1.logger.debug(`ezspGenerateCbkeKeysHandler283k1(): callback called with: [status=${enums_1.EmberStatus[status]}], `
5083
+ + `[ephemeralPublicKey=${ephemeralPublicKey}]`, NS);
5067
5084
  }
5068
5085
  /**
5069
5086
  * Calculates the SMAC verification keys for both the initiator and responder
@@ -5099,8 +5116,8 @@ class Ezsp extends events_1.default {
5099
5116
  * @param responderSmac EmberSmacData * The calculated value of the responder's SMAC
5100
5117
  */
5101
5118
  ezspCalculateSmacsHandler283k1(status, initiatorSmac, responderSmac) {
5102
- debug(`ezspCalculateSmacsHandler283k1(): callback called with: [status=${enums_1.EmberStatus[status]}], [initiatorSmac=${initiatorSmac}], `
5103
- + `[responderSmac=${responderSmac}]`);
5119
+ logger_1.logger.debug(`ezspCalculateSmacsHandler283k1(): callback called with: [status=${enums_1.EmberStatus[status]}], [initiatorSmac=${initiatorSmac}], `
5120
+ + `[responderSmac=${responderSmac}]`, NS);
5104
5121
  }
5105
5122
  /**
5106
5123
  * Clears the temporary data associated with CBKE and the key establishment,
@@ -5222,7 +5239,7 @@ class Ezsp extends events_1.default {
5222
5239
  * @param messageContents uint8_t *The message and attached which includes the original message and the appended signature.
5223
5240
  */
5224
5241
  ezspDsaSignHandler(status, messageContents) {
5225
- debug(`ezspDsaSignHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [messageContents=${messageContents.toString('hex')}]`);
5242
+ logger_1.logger.debug(`ezspDsaSignHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [messageContents=${messageContents.toString('hex')}]`, NS);
5226
5243
  }
5227
5244
  /**
5228
5245
  * Verify that signature of the associated message digest was signed by the
@@ -5256,7 +5273,7 @@ class Ezsp extends events_1.default {
5256
5273
  * @param status The result of the DSA verification operation.
5257
5274
  */
5258
5275
  ezspDsaVerifyHandler(status) {
5259
- debug(`ezspDsaVerifyHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`);
5276
+ logger_1.logger.debug(`ezspDsaVerifyHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`, NS);
5260
5277
  }
5261
5278
  /**
5262
5279
  * Verify that signature of the associated message digest was signed by the
@@ -5468,7 +5485,7 @@ class Ezsp extends events_1.default {
5468
5485
  async mfglibSetPower(txPowerMode, power) {
5469
5486
  this.startCommand(enums_2.EzspFrameID.MFGLIB_SET_POWER);
5470
5487
  this.buffalo.writeUInt16(txPowerMode);
5471
- this.buffalo.writeUInt8(power);
5488
+ this.buffalo.writeInt8(power);
5472
5489
  const sendStatus = await this.sendCommand();
5473
5490
  if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
5474
5491
  throw new Error(enums_1.EzspStatus[sendStatus]);
@@ -5486,7 +5503,7 @@ class Ezsp extends events_1.default {
5486
5503
  if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
5487
5504
  throw new Error(enums_1.EzspStatus[sendStatus]);
5488
5505
  }
5489
- const power = this.buffalo.readUInt8();
5506
+ const power = this.buffalo.readInt8();
5490
5507
  return power;
5491
5508
  }
5492
5509
  /**
@@ -5498,9 +5515,8 @@ class Ezsp extends events_1.default {
5498
5515
  * @param packetContents uint8_t * The received packet (last 2 bytes are not FCS / CRC and may be discarded)
5499
5516
  */
5500
5517
  ezspMfglibRxHandler(linkQuality, rssi, packetLength, packetContents) {
5501
- debug(`ezspMfglibRxHandler(): callback called with: [linkQuality=${linkQuality}], [rssi=${rssi}], `
5502
- + `[packetLength=${packetLength}], [packetContents=${packetContents}]`);
5503
- // gecko_sdk_4.4.0\protocol\zigbee\app\framework\plugin\manufacturing-library-cli\manufacturing-library-cli-host.c
5518
+ logger_1.logger.debug(`ezspMfglibRxHandler(): callback called with: [linkQuality=${linkQuality}], [rssi=${rssi}], `
5519
+ + `[packetLength=${packetLength}], [packetContents=${packetContents}]`, NS);
5504
5520
  }
5505
5521
  //-----------------------------------------------------------------------------
5506
5522
  // Bootloader Frames
@@ -5582,8 +5598,8 @@ class Ezsp extends events_1.default {
5582
5598
  * @param messageContents uint8_t *The bootload message that was sent.
5583
5599
  */
5584
5600
  ezspIncomingBootloadMessageHandler(longId, lastHopLqi, lastHopRssi, messageContents) {
5585
- debug(`ezspIncomingBootloadMessageHandler(): callback called with: [longId=${longId}], [lastHopLqi=${lastHopLqi}], `
5586
- + `[lastHopRssi=${lastHopRssi}], [messageContents=${messageContents.toString('hex')}]`);
5601
+ logger_1.logger.debug(`ezspIncomingBootloadMessageHandler(): callback called with: [longId=${longId}], [lastHopLqi=${lastHopLqi}], `
5602
+ + `[lastHopRssi=${lastHopRssi}], [messageContents=${messageContents.toString('hex')}]`, NS);
5587
5603
  }
5588
5604
  /**
5589
5605
  * Callback
@@ -5595,8 +5611,8 @@ class Ezsp extends events_1.default {
5595
5611
  * @param messageContents uint8_t * The message that was sent.
5596
5612
  */
5597
5613
  ezspBootloadTransmitCompleteHandler(status, messageContents) {
5598
- debug(`ezspBootloadTransmitCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], `
5599
- + `[messageContents=${messageContents.toString('hex')}]`);
5614
+ logger_1.logger.debug(`ezspBootloadTransmitCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], `
5615
+ + `[messageContents=${messageContents.toString('hex')}]`, NS);
5600
5616
  }
5601
5617
  /**
5602
5618
  * Perform AES encryption on plaintext using key.
@@ -5612,7 +5628,7 @@ class Ezsp extends events_1.default {
5612
5628
  if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
5613
5629
  throw new Error(enums_1.EzspStatus[sendStatus]);
5614
5630
  }
5615
- const ciphertext = this.buffalo.readListUInt8({ length: 16 });
5631
+ const ciphertext = this.buffalo.readListUInt8(consts_1.EMBER_ENCRYPTION_KEY_SIZE);
5616
5632
  return ciphertext;
5617
5633
  }
5618
5634
  //-----------------------------------------------------------------------------
@@ -5630,7 +5646,7 @@ class Ezsp extends events_1.default {
5630
5646
  this.startCommand(enums_2.EzspFrameID.ZLL_NETWORK_OPS);
5631
5647
  this.buffalo.writeEmberZllNetwork(networkInfo);
5632
5648
  this.buffalo.writeUInt8(op);
5633
- this.buffalo.writeUInt8(radioTxPower);
5649
+ this.buffalo.writeInt8(radioTxPower);
5634
5650
  const sendStatus = await this.sendCommand();
5635
5651
  if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
5636
5652
  throw new Error(enums_1.EzspStatus[sendStatus]);
@@ -5683,7 +5699,7 @@ class Ezsp extends events_1.default {
5683
5699
  async ezspZllStartScan(channelMask, radioPowerForScan, nodeType) {
5684
5700
  this.startCommand(enums_2.EzspFrameID.ZLL_START_SCAN);
5685
5701
  this.buffalo.writeUInt32(channelMask);
5686
- this.buffalo.writeUInt8(radioPowerForScan);
5702
+ this.buffalo.writeInt8(radioPowerForScan);
5687
5703
  this.buffalo.writeUInt8(nodeType);
5688
5704
  const sendStatus = await this.sendCommand();
5689
5705
  if (sendStatus !== enums_1.EzspStatus.SUCCESS) {
@@ -5718,8 +5734,8 @@ class Ezsp extends events_1.default {
5718
5734
  * @param lastHopRssi int8_t The energy level (in units of dBm) observed during reception.
5719
5735
  */
5720
5736
  ezspZllNetworkFoundHandler(networkInfo, isDeviceInfoNull, deviceInfo, lastHopLqi, lastHopRssi) {
5721
- debug(`ezspZllNetworkFoundHandler(): callback called with: [networkInfo=${networkInfo}], [isDeviceInfoNull=${isDeviceInfoNull}], `
5722
- + `[deviceInfo=${deviceInfo}], [lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}]`);
5737
+ logger_1.logger.debug(`ezspZllNetworkFoundHandler(): callback called with: [networkInfo=${networkInfo}], [isDeviceInfoNull=${isDeviceInfoNull}], `
5738
+ + `[deviceInfo=${deviceInfo}], [lastHopLqi=${lastHopLqi}], [lastHopRssi=${lastHopRssi}]`, NS);
5723
5739
  }
5724
5740
  /**
5725
5741
  * Callback
@@ -5727,7 +5743,7 @@ class Ezsp extends events_1.default {
5727
5743
  * @param status Status of the operation.
5728
5744
  */
5729
5745
  ezspZllScanCompleteHandler(status) {
5730
- debug(`ezspZllScanCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`);
5746
+ logger_1.logger.debug(`ezspZllScanCompleteHandler(): callback called with: [status=${enums_1.EmberStatus[status]}]`, NS);
5731
5747
  }
5732
5748
  /**
5733
5749
  * Callback
@@ -5738,8 +5754,8 @@ class Ezsp extends events_1.default {
5738
5754
  * @param lastHopRssi int8_t The energy level (in units of dBm) observed during reception.
5739
5755
  */
5740
5756
  ezspZllAddressAssignmentHandler(addressInfo, lastHopLqi, lastHopRssi) {
5741
- debug(`ezspZllAddressAssignmentHandler(): callback called with: [addressInfo=${addressInfo}], [lastHopLqi=${lastHopLqi}], `
5742
- + `[lastHopRssi=${lastHopRssi}]`);
5757
+ logger_1.logger.debug(`ezspZllAddressAssignmentHandler(): callback called with: [addressInfo=${addressInfo}], [lastHopLqi=${lastHopLqi}], `
5758
+ + `[lastHopRssi=${lastHopRssi}]`, NS);
5743
5759
  }
5744
5760
  /**
5745
5761
  * Callback
@@ -5747,7 +5763,7 @@ class Ezsp extends events_1.default {
5747
5763
  * @param networkInfo EmberZllNetwork * Information about the network.
5748
5764
  */
5749
5765
  ezspZllTouchLinkTargetHandler(networkInfo) {
5750
- debug(`ezspZllTouchLinkTargetHandler(): callback called with: [networkInfo=${networkInfo}]`);
5766
+ logger_1.logger.debug(`ezspZllTouchLinkTargetHandler(): callback called with: [networkInfo=${networkInfo}]`, NS);
5751
5767
  }
5752
5768
  /**
5753
5769
  * Get the ZLL tokens.
@@ -6097,7 +6113,7 @@ class Ezsp extends events_1.default {
6097
6113
  * @param gpepHandle uint8_t The handle of the GPDF.
6098
6114
  */
6099
6115
  ezspDGpSentHandler(status, gpepHandle) {
6100
- debug(`ezspDGpSentHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [gpepHandle=${gpepHandle}]`);
6116
+ logger_1.logger.debug(`ezspDGpSentHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [gpepHandle=${gpepHandle}]`, NS);
6101
6117
  }
6102
6118
  /**
6103
6119
  * Callback
@@ -6118,24 +6134,24 @@ class Ezsp extends events_1.default {
6118
6134
  * @param gpdCommandPayload uint8_t * The GPD command payload.
6119
6135
  */
6120
6136
  ezspGpepIncomingMessageHandler(status, gpdLink, sequenceNumber, addr, gpdfSecurityLevel, gpdfSecurityKeyType, autoCommissioning, bidirectionalInfo, gpdSecurityFrameCounter, gpdCommandId, mic, proxyTableIndex, gpdCommandPayload) {
6121
- debug(`ezspGpepIncomingMessageHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [gpdLink=${gpdLink}], `
6122
- + `[sequenceNumber=${sequenceNumber}], [addr=${JSON.stringify(addr)}], [gpdfSecurityLevel=${gpdfSecurityLevel}], `
6123
- + `[gpdfSecurityKeyType=${gpdfSecurityKeyType}], [autoCommissioning=${autoCommissioning}], [bidirectionalInfo=${bidirectionalInfo}], `
6124
- + `[gpdSecurityFrameCounter=${gpdSecurityFrameCounter}], [gpdCommandId=${gpdCommandId}], [mic=${mic}], `
6125
- + `[proxyTableIndex=${proxyTableIndex}], [gpdCommandPayload=${gpdCommandPayload.toString('hex')}]`);
6137
+ logger_1.logger.debug(`ezspGpepIncomingMessageHandler(): callback called with: [status=${enums_1.EmberStatus[status]}], [gpdLink=${gpdLink}], `
6138
+ + `[sequenceNumber=${sequenceNumber}], [addr=${JSON.stringify(addr)}], [gpdfSecurityLevel=${enums_1.EmberGpSecurityLevel[gpdfSecurityLevel]}], `
6139
+ + `[gpdfSecurityKeyType=${enums_1.EmberGpKeyType[gpdfSecurityKeyType]}], [autoCommissioning=${autoCommissioning}], `
6140
+ + `[bidirectionalInfo=${bidirectionalInfo}], [gpdSecurityFrameCounter=${gpdSecurityFrameCounter}], [gpdCommandId=${gpdCommandId}], `
6141
+ + `[mic=${mic}], [proxyTableIndex=${proxyTableIndex}], [gpdCommandPayload=${gpdCommandPayload.toString('hex')}]`, NS);
6126
6142
  if (addr.applicationId === enums_1.EmberGpApplicationId.IEEE_ADDRESS) {
6127
6143
  // XXX: don't bother parsing for upstream for now, since it will be rejected
6128
- console.error(`<=== [GP] Received IEEE address type in message. Support not implemented upstream. Dropping.`);
6144
+ logger_1.logger.error(`<=== [GP] Received IEEE address type in message. Support not implemented upstream. Dropping.`, NS);
6129
6145
  return;
6130
6146
  }
6131
- let commandIdentifier = cluster_1.default.greenPower.commands.notification.ID;
6147
+ let commandIdentifier = cluster_1.Clusters.greenPower.commands.notification.ID;
6132
6148
  if (gpdCommandId === 0xE0) {
6133
6149
  if (!gpdCommandPayload.length) {
6134
6150
  // XXX: seem to be receiving duplicate commissioningNotification from some devices, second one with empty payload?
6135
6151
  // this will mess with the process no doubt, so dropping them
6136
6152
  return;
6137
6153
  }
6138
- commandIdentifier = cluster_1.default.greenPower.commands.commissioningNotification.ID;
6154
+ commandIdentifier = cluster_1.Clusters.greenPower.commands.commissioningNotification.ID;
6139
6155
  }
6140
6156
  this.emit(EzspEvents.GREENPOWER_MESSAGE, sequenceNumber, commandIdentifier, addr.sourceId, gpdSecurityFrameCounter, gpdCommandId, gpdCommandPayload, gpdLink);
6141
6157
  }