zigbee-herdsman 3.5.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (726) hide show
  1. package/.github/dependabot.yml +9 -3
  2. package/.github/workflows/ci.yml +2 -4
  3. package/.github/workflows/stale.yml +1 -1
  4. package/.release-please-manifest.json +1 -1
  5. package/.vscode/extensions.json +3 -0
  6. package/.vscode/settings.json +11 -0
  7. package/CHANGELOG.md +25 -0
  8. package/biome.json +89 -0
  9. package/dist/adapter/adapter.d.ts +11 -11
  10. package/dist/adapter/adapter.d.ts.map +1 -1
  11. package/dist/adapter/adapter.js +14 -14
  12. package/dist/adapter/adapterDiscovery.d.ts +6 -6
  13. package/dist/adapter/adapterDiscovery.d.ts.map +1 -1
  14. package/dist/adapter/adapterDiscovery.js +139 -141
  15. package/dist/adapter/adapterDiscovery.js.map +1 -1
  16. package/dist/adapter/const.d.ts +1 -1
  17. package/dist/adapter/const.js +2 -2
  18. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +16 -16
  19. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  20. package/dist/adapter/deconz/adapter/deconzAdapter.js +95 -100
  21. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  22. package/dist/adapter/deconz/driver/constants.d.ts +5 -5
  23. package/dist/adapter/deconz/driver/constants.d.ts.map +1 -1
  24. package/dist/adapter/deconz/driver/driver.d.ts +9 -9
  25. package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
  26. package/dist/adapter/deconz/driver/driver.js +112 -106
  27. package/dist/adapter/deconz/driver/driver.js.map +1 -1
  28. package/dist/adapter/deconz/driver/frame.d.ts +1 -1
  29. package/dist/adapter/deconz/driver/frame.d.ts.map +1 -1
  30. package/dist/adapter/deconz/driver/frame.js +1 -2
  31. package/dist/adapter/deconz/driver/frame.js.map +1 -1
  32. package/dist/adapter/deconz/driver/frameParser.d.ts +1 -1
  33. package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
  34. package/dist/adapter/deconz/driver/frameParser.js +66 -70
  35. package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
  36. package/dist/adapter/deconz/driver/parser.d.ts +1 -1
  37. package/dist/adapter/deconz/driver/parser.d.ts.map +1 -1
  38. package/dist/adapter/deconz/driver/parser.js +2 -2
  39. package/dist/adapter/deconz/driver/parser.js.map +1 -1
  40. package/dist/adapter/deconz/driver/writer.d.ts +2 -2
  41. package/dist/adapter/deconz/driver/writer.d.ts.map +1 -1
  42. package/dist/adapter/deconz/driver/writer.js +1 -1
  43. package/dist/adapter/ember/adapter/emberAdapter.d.ts +19 -19
  44. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
  45. package/dist/adapter/ember/adapter/emberAdapter.js +117 -97
  46. package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
  47. package/dist/adapter/ember/adapter/endpoints.d.ts +1 -1
  48. package/dist/adapter/ember/adapter/endpoints.d.ts.map +1 -1
  49. package/dist/adapter/ember/adapter/oneWaitress.d.ts +5 -5
  50. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
  51. package/dist/adapter/ember/adapter/oneWaitress.js +2 -2
  52. package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
  53. package/dist/adapter/ember/adapter/tokensManager.d.ts +3 -3
  54. package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -1
  55. package/dist/adapter/ember/adapter/tokensManager.js +20 -23
  56. package/dist/adapter/ember/adapter/tokensManager.js.map +1 -1
  57. package/dist/adapter/ember/enums.d.ts +4 -4
  58. package/dist/adapter/ember/enums.d.ts.map +1 -1
  59. package/dist/adapter/ember/enums.js +4 -6
  60. package/dist/adapter/ember/enums.js.map +1 -1
  61. package/dist/adapter/ember/ezsp/buffalo.d.ts +4 -4
  62. package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -1
  63. package/dist/adapter/ember/ezsp/buffalo.js +30 -32
  64. package/dist/adapter/ember/ezsp/buffalo.js.map +1 -1
  65. package/dist/adapter/ember/ezsp/ezsp.d.ts +46 -46
  66. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
  67. package/dist/adapter/ember/ezsp/ezsp.js +85 -111
  68. package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
  69. package/dist/adapter/ember/ezspError.d.ts +1 -1
  70. package/dist/adapter/ember/types.d.ts +14 -14
  71. package/dist/adapter/ember/types.d.ts.map +1 -1
  72. package/dist/adapter/ember/uart/ash.d.ts +5 -5
  73. package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
  74. package/dist/adapter/ember/uart/ash.js +80 -71
  75. package/dist/adapter/ember/uart/ash.js.map +1 -1
  76. package/dist/adapter/ember/uart/parser.d.ts +2 -2
  77. package/dist/adapter/ember/uart/parser.d.ts.map +1 -1
  78. package/dist/adapter/ember/uart/parser.js +2 -1
  79. package/dist/adapter/ember/uart/parser.js.map +1 -1
  80. package/dist/adapter/ember/uart/queues.js +27 -29
  81. package/dist/adapter/ember/uart/queues.js.map +1 -1
  82. package/dist/adapter/ember/uart/writer.d.ts +1 -1
  83. package/dist/adapter/ember/uart/writer.d.ts.map +1 -1
  84. package/dist/adapter/ember/uart/writer.js +3 -5
  85. package/dist/adapter/ember/uart/writer.js.map +1 -1
  86. package/dist/adapter/ember/utils/initters.d.ts +2 -2
  87. package/dist/adapter/ember/utils/initters.d.ts.map +1 -1
  88. package/dist/adapter/ember/utils/initters.js +1 -1
  89. package/dist/adapter/ember/utils/math.js +1 -1
  90. package/dist/adapter/events.d.ts +1 -1
  91. package/dist/adapter/events.d.ts.map +1 -1
  92. package/dist/adapter/ezsp/adapter/backup.d.ts +3 -3
  93. package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
  94. package/dist/adapter/ezsp/adapter/backup.js +8 -10
  95. package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
  96. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +12 -12
  97. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  98. package/dist/adapter/ezsp/adapter/ezspAdapter.js +45 -44
  99. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  100. package/dist/adapter/ezsp/driver/driver.d.ts +12 -12
  101. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  102. package/dist/adapter/ezsp/driver/driver.js +148 -141
  103. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  104. package/dist/adapter/ezsp/driver/ezsp.d.ts +7 -7
  105. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  106. package/dist/adapter/ezsp/driver/ezsp.js +61 -59
  107. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  108. package/dist/adapter/ezsp/driver/frame.js +2 -2
  109. package/dist/adapter/ezsp/driver/index.d.ts +2 -2
  110. package/dist/adapter/ezsp/driver/multicast.d.ts +8 -5
  111. package/dist/adapter/ezsp/driver/multicast.d.ts.map +1 -1
  112. package/dist/adapter/ezsp/driver/multicast.js +9 -9
  113. package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
  114. package/dist/adapter/ezsp/driver/parser.d.ts +1 -1
  115. package/dist/adapter/ezsp/driver/parser.js +3 -3
  116. package/dist/adapter/ezsp/driver/types/basic.d.ts +5 -5
  117. package/dist/adapter/ezsp/driver/types/basic.d.ts.map +1 -1
  118. package/dist/adapter/ezsp/driver/types/basic.js +12 -33
  119. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  120. package/dist/adapter/ezsp/driver/types/index.d.ts +3 -3
  121. package/dist/adapter/ezsp/driver/types/index.d.ts.map +1 -1
  122. package/dist/adapter/ezsp/driver/types/index.js +8 -9
  123. package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
  124. package/dist/adapter/ezsp/driver/types/named.d.ts +2 -2
  125. package/dist/adapter/ezsp/driver/types/named.d.ts.map +1 -1
  126. package/dist/adapter/ezsp/driver/types/named.js +8 -11
  127. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  128. package/dist/adapter/ezsp/driver/types/struct.d.ts +2 -2
  129. package/dist/adapter/ezsp/driver/types/struct.d.ts.map +1 -1
  130. package/dist/adapter/ezsp/driver/types/struct.js +207 -214
  131. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  132. package/dist/adapter/ezsp/driver/uart.d.ts +2 -2
  133. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  134. package/dist/adapter/ezsp/driver/uart.js +48 -37
  135. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  136. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +3 -3
  137. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts.map +1 -1
  138. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +16 -34
  139. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +1 -1
  140. package/dist/adapter/ezsp/driver/utils/index.d.ts +4 -4
  141. package/dist/adapter/ezsp/driver/utils/index.d.ts.map +1 -1
  142. package/dist/adapter/ezsp/driver/utils/index.js +4 -4
  143. package/dist/adapter/ezsp/driver/utils/index.js.map +1 -1
  144. package/dist/adapter/ezsp/driver/writer.d.ts +1 -1
  145. package/dist/adapter/ezsp/driver/writer.js +2 -2
  146. package/dist/adapter/index.d.ts +3 -3
  147. package/dist/adapter/serialPort.d.ts +3 -3
  148. package/dist/adapter/serialPort.d.ts.map +1 -1
  149. package/dist/adapter/serialPort.js +1 -0
  150. package/dist/adapter/serialPort.js.map +1 -1
  151. package/dist/adapter/socketPortUtils.js +3 -3
  152. package/dist/adapter/tstype.d.ts +6 -6
  153. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +4 -4
  154. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
  155. package/dist/adapter/z-stack/adapter/adapter-backup.js +106 -119
  156. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  157. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +10 -10
  158. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts.map +1 -1
  159. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +23 -24
  160. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +1 -1
  161. package/dist/adapter/z-stack/adapter/manager.d.ts +6 -6
  162. package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
  163. package/dist/adapter/z-stack/adapter/manager.js +115 -127
  164. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  165. package/dist/adapter/z-stack/adapter/tstype.d.ts +3 -3
  166. package/dist/adapter/z-stack/adapter/tstype.js +3 -3
  167. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +10 -10
  168. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  169. package/dist/adapter/z-stack/adapter/zStackAdapter.js +125 -137
  170. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  171. package/dist/adapter/z-stack/constants/common.d.ts.map +1 -1
  172. package/dist/adapter/z-stack/constants/common.js +0 -3
  173. package/dist/adapter/z-stack/constants/common.js.map +1 -1
  174. package/dist/adapter/z-stack/constants/index.d.ts +10 -10
  175. package/dist/adapter/z-stack/constants/index.d.ts.map +1 -1
  176. package/dist/adapter/z-stack/constants/index.js +2 -2
  177. package/dist/adapter/z-stack/constants/index.js.map +1 -1
  178. package/dist/adapter/z-stack/constants/utils.d.ts +1 -1
  179. package/dist/adapter/z-stack/constants/utils.js +2 -2
  180. package/dist/adapter/z-stack/constants/utils.js.map +1 -1
  181. package/dist/adapter/z-stack/models/startup-options.d.ts +2 -2
  182. package/dist/adapter/z-stack/models/startup-options.d.ts.map +1 -1
  183. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +1 -1
  184. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts.map +1 -1
  185. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +4 -5
  186. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js.map +1 -1
  187. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +2 -2
  188. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts.map +1 -1
  189. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +3 -4
  190. package/dist/adapter/z-stack/structs/entries/address-manager-table.js.map +1 -1
  191. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +1 -1
  192. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts.map +1 -1
  193. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +1 -2
  194. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js.map +1 -1
  195. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +2 -2
  196. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts.map +1 -1
  197. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +3 -4
  198. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js.map +1 -1
  199. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +1 -1
  200. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts.map +1 -1
  201. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +6 -7
  202. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js.map +1 -1
  203. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +2 -2
  204. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts.map +1 -1
  205. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +3 -4
  206. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js.map +1 -1
  207. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +1 -1
  208. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts.map +1 -1
  209. package/dist/adapter/z-stack/structs/entries/channel-list.js +1 -2
  210. package/dist/adapter/z-stack/structs/entries/channel-list.js.map +1 -1
  211. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +1 -1
  212. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts.map +1 -1
  213. package/dist/adapter/z-stack/structs/entries/has-configured.js +2 -3
  214. package/dist/adapter/z-stack/structs/entries/has-configured.js.map +1 -1
  215. package/dist/adapter/z-stack/structs/entries/index.d.ts +16 -16
  216. package/dist/adapter/z-stack/structs/entries/nib.d.ts +1 -1
  217. package/dist/adapter/z-stack/structs/entries/nib.d.ts.map +1 -1
  218. package/dist/adapter/z-stack/structs/entries/nib.js +49 -50
  219. package/dist/adapter/z-stack/structs/entries/nib.js.map +1 -1
  220. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +1 -1
  221. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts.map +1 -1
  222. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +1 -2
  223. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js.map +1 -1
  224. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +1 -1
  225. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts.map +1 -1
  226. package/dist/adapter/z-stack/structs/entries/nwk-key.js +1 -2
  227. package/dist/adapter/z-stack/structs/entries/nwk-key.js.map +1 -1
  228. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +1 -1
  229. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts.map +1 -1
  230. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +1 -2
  231. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js.map +1 -1
  232. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +1 -1
  233. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts.map +1 -1
  234. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +3 -4
  235. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js.map +1 -1
  236. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +2 -2
  237. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts.map +1 -1
  238. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +3 -4
  239. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js.map +1 -1
  240. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +1 -1
  241. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts.map +1 -1
  242. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +4 -5
  243. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js.map +1 -1
  244. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +2 -2
  245. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts.map +1 -1
  246. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +3 -4
  247. package/dist/adapter/z-stack/structs/entries/security-manager-table.js.map +1 -1
  248. package/dist/adapter/z-stack/structs/index.d.ts +4 -4
  249. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +2 -2
  250. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts.map +1 -1
  251. package/dist/adapter/z-stack/structs/struct.d.ts +8 -8
  252. package/dist/adapter/z-stack/structs/struct.d.ts.map +1 -1
  253. package/dist/adapter/z-stack/structs/struct.js +42 -43
  254. package/dist/adapter/z-stack/structs/struct.js.map +1 -1
  255. package/dist/adapter/z-stack/structs/table.d.ts +3 -3
  256. package/dist/adapter/z-stack/structs/table.d.ts.map +1 -1
  257. package/dist/adapter/z-stack/structs/table.js +10 -10
  258. package/dist/adapter/z-stack/structs/table.js.map +1 -1
  259. package/dist/adapter/z-stack/unpi/frame.d.ts +1 -1
  260. package/dist/adapter/z-stack/unpi/frame.d.ts.map +1 -1
  261. package/dist/adapter/z-stack/unpi/frame.js +2 -4
  262. package/dist/adapter/z-stack/unpi/frame.js.map +1 -1
  263. package/dist/adapter/z-stack/unpi/index.d.ts +4 -4
  264. package/dist/adapter/z-stack/unpi/parser.d.ts +1 -1
  265. package/dist/adapter/z-stack/unpi/parser.js +3 -3
  266. package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
  267. package/dist/adapter/z-stack/unpi/writer.d.ts +2 -2
  268. package/dist/adapter/z-stack/unpi/writer.d.ts.map +1 -1
  269. package/dist/adapter/z-stack/unpi/writer.js +1 -1
  270. package/dist/adapter/z-stack/utils/index.d.ts +2 -2
  271. package/dist/adapter/z-stack/utils/network-options.d.ts +1 -1
  272. package/dist/adapter/z-stack/utils/network-options.d.ts.map +1 -1
  273. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +3 -3
  274. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts.map +1 -1
  275. package/dist/adapter/z-stack/znp/buffaloZnp.js +34 -20
  276. package/dist/adapter/z-stack/znp/buffaloZnp.js.map +1 -1
  277. package/dist/adapter/z-stack/znp/definition.d.ts +2 -2
  278. package/dist/adapter/z-stack/znp/definition.d.ts.map +1 -1
  279. package/dist/adapter/z-stack/znp/definition.js +1111 -1111
  280. package/dist/adapter/z-stack/znp/index.d.ts +2 -2
  281. package/dist/adapter/z-stack/znp/tstype.d.ts +7 -7
  282. package/dist/adapter/z-stack/znp/tstype.d.ts.map +1 -1
  283. package/dist/adapter/z-stack/znp/utils.d.ts +1 -1
  284. package/dist/adapter/z-stack/znp/utils.d.ts.map +1 -1
  285. package/dist/adapter/z-stack/znp/utils.js +2 -2
  286. package/dist/adapter/z-stack/znp/znp.d.ts +7 -7
  287. package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
  288. package/dist/adapter/z-stack/znp/znp.js +46 -45
  289. package/dist/adapter/z-stack/znp/znp.js.map +1 -1
  290. package/dist/adapter/z-stack/znp/zpiObject.d.ts +8 -8
  291. package/dist/adapter/z-stack/znp/zpiObject.d.ts.map +1 -1
  292. package/dist/adapter/z-stack/znp/zpiObject.js +6 -6
  293. package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
  294. package/dist/adapter/zboss/adapter/zbossAdapter.d.ts +11 -11
  295. package/dist/adapter/zboss/adapter/zbossAdapter.d.ts.map +1 -1
  296. package/dist/adapter/zboss/adapter/zbossAdapter.js +37 -36
  297. package/dist/adapter/zboss/adapter/zbossAdapter.js.map +1 -1
  298. package/dist/adapter/zboss/commands.d.ts +4 -6
  299. package/dist/adapter/zboss/commands.d.ts.map +1 -1
  300. package/dist/adapter/zboss/commands.js +321 -287
  301. package/dist/adapter/zboss/commands.js.map +1 -1
  302. package/dist/adapter/zboss/driver.d.ts +9 -9
  303. package/dist/adapter/zboss/driver.d.ts.map +1 -1
  304. package/dist/adapter/zboss/driver.js +25 -25
  305. package/dist/adapter/zboss/driver.js.map +1 -1
  306. package/dist/adapter/zboss/frame.d.ts +9 -9
  307. package/dist/adapter/zboss/frame.d.ts.map +1 -1
  308. package/dist/adapter/zboss/frame.js +15 -15
  309. package/dist/adapter/zboss/frame.js.map +1 -1
  310. package/dist/adapter/zboss/reader.d.ts +2 -2
  311. package/dist/adapter/zboss/reader.d.ts.map +1 -1
  312. package/dist/adapter/zboss/reader.js +6 -5
  313. package/dist/adapter/zboss/reader.js.map +1 -1
  314. package/dist/adapter/zboss/uart.d.ts +3 -3
  315. package/dist/adapter/zboss/uart.d.ts.map +1 -1
  316. package/dist/adapter/zboss/uart.js +36 -36
  317. package/dist/adapter/zboss/uart.js.map +1 -1
  318. package/dist/adapter/zboss/writer.d.ts +1 -1
  319. package/dist/adapter/zboss/writer.d.ts.map +1 -1
  320. package/dist/adapter/zboss/writer.js +3 -5
  321. package/dist/adapter/zboss/writer.js.map +1 -1
  322. package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.js +2 -2
  323. package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.js.map +1 -1
  324. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +14 -14
  325. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
  326. package/dist/adapter/zigate/adapter/zigateAdapter.js +52 -53
  327. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  328. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +6 -6
  329. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +1 -1
  330. package/dist/adapter/zigate/driver/buffaloZiGate.js +41 -23
  331. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
  332. package/dist/adapter/zigate/driver/commandType.d.ts +2 -2
  333. package/dist/adapter/zigate/driver/commandType.d.ts.map +1 -1
  334. package/dist/adapter/zigate/driver/commandType.js +37 -37
  335. package/dist/adapter/zigate/driver/commandType.js.map +1 -1
  336. package/dist/adapter/zigate/driver/constants.d.ts +27 -200
  337. package/dist/adapter/zigate/driver/constants.d.ts.map +1 -1
  338. package/dist/adapter/zigate/driver/constants.js +40 -236
  339. package/dist/adapter/zigate/driver/constants.js.map +1 -1
  340. package/dist/adapter/zigate/driver/frame.d.ts.map +1 -1
  341. package/dist/adapter/zigate/driver/frame.js +4 -3
  342. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  343. package/dist/adapter/zigate/driver/messageType.d.ts +1 -1
  344. package/dist/adapter/zigate/driver/messageType.js +76 -76
  345. package/dist/adapter/zigate/driver/ziGateObject.d.ts +3 -3
  346. package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +1 -1
  347. package/dist/adapter/zigate/driver/ziGateObject.js +7 -6
  348. package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
  349. package/dist/adapter/zigate/driver/zigate.d.ts +8 -8
  350. package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
  351. package/dist/adapter/zigate/driver/zigate.js +59 -54
  352. package/dist/adapter/zigate/driver/zigate.js.map +1 -1
  353. package/dist/adapter/zoh/adapter/utils.js +1 -1
  354. package/dist/adapter/zoh/adapter/zohAdapter.d.ts +13 -13
  355. package/dist/adapter/zoh/adapter/zohAdapter.d.ts.map +1 -1
  356. package/dist/adapter/zoh/adapter/zohAdapter.js +101 -67
  357. package/dist/adapter/zoh/adapter/zohAdapter.js.map +1 -1
  358. package/dist/buffalo/buffalo.d.ts +2 -2
  359. package/dist/buffalo/buffalo.js +4 -4
  360. package/dist/buffalo/buffalo.js.map +1 -1
  361. package/dist/buffalo/index.d.ts +1 -1
  362. package/dist/controller/controller.d.ts +7 -7
  363. package/dist/controller/controller.d.ts.map +1 -1
  364. package/dist/controller/controller.js +94 -98
  365. package/dist/controller/controller.js.map +1 -1
  366. package/dist/controller/database.d.ts +1 -1
  367. package/dist/controller/database.d.ts.map +1 -1
  368. package/dist/controller/database.js +9 -9
  369. package/dist/controller/database.js.map +1 -1
  370. package/dist/controller/events.d.ts +6 -6
  371. package/dist/controller/events.d.ts.map +1 -1
  372. package/dist/controller/greenPower.d.ts +21 -21
  373. package/dist/controller/greenPower.d.ts.map +1 -1
  374. package/dist/controller/greenPower.js +41 -41
  375. package/dist/controller/greenPower.js.map +1 -1
  376. package/dist/controller/helpers/index.d.ts +1 -1
  377. package/dist/controller/helpers/request.d.ts +2 -2
  378. package/dist/controller/helpers/request.d.ts.map +1 -1
  379. package/dist/controller/helpers/request.js +31 -27
  380. package/dist/controller/helpers/request.js.map +1 -1
  381. package/dist/controller/helpers/requestQueue.d.ts +3 -3
  382. package/dist/controller/helpers/requestQueue.d.ts.map +1 -1
  383. package/dist/controller/helpers/requestQueue.js +20 -20
  384. package/dist/controller/helpers/requestQueue.js.map +1 -1
  385. package/dist/controller/helpers/zclFrameConverter.d.ts +2 -2
  386. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  387. package/dist/controller/helpers/zclFrameConverter.js +1 -1
  388. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  389. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +6 -4
  390. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts.map +1 -1
  391. package/dist/controller/helpers/zclTransactionSequenceNumber.js +6 -5
  392. package/dist/controller/helpers/zclTransactionSequenceNumber.js.map +1 -1
  393. package/dist/controller/index.d.ts +1 -1
  394. package/dist/controller/model/device.d.ts +23 -19
  395. package/dist/controller/model/device.d.ts.map +1 -1
  396. package/dist/controller/model/device.js +153 -128
  397. package/dist/controller/model/device.js.map +1 -1
  398. package/dist/controller/model/endpoint.d.ts +11 -11
  399. package/dist/controller/model/endpoint.d.ts.map +1 -1
  400. package/dist/controller/model/endpoint.js +84 -67
  401. package/dist/controller/model/endpoint.js.map +1 -1
  402. package/dist/controller/model/entity.d.ts +3 -3
  403. package/dist/controller/model/entity.d.ts.map +1 -1
  404. package/dist/controller/model/group.d.ts +4 -4
  405. package/dist/controller/model/group.d.ts.map +1 -1
  406. package/dist/controller/model/group.js +21 -9
  407. package/dist/controller/model/group.js.map +1 -1
  408. package/dist/controller/model/index.d.ts +4 -4
  409. package/dist/controller/touchlink.d.ts +1 -1
  410. package/dist/controller/touchlink.d.ts.map +1 -1
  411. package/dist/controller/touchlink.js +11 -11
  412. package/dist/controller/tstype.d.ts +3 -3
  413. package/dist/index.d.ts +10 -10
  414. package/dist/models/backup-storage-legacy.d.ts +14 -16
  415. package/dist/models/backup-storage-legacy.d.ts.map +1 -1
  416. package/dist/models/backup-storage-unified.d.ts +1 -1
  417. package/dist/models/backup.d.ts +2 -2
  418. package/dist/models/backup.d.ts.map +1 -1
  419. package/dist/models/index.d.ts +4 -4
  420. package/dist/utils/backup.d.ts +1 -1
  421. package/dist/utils/backup.d.ts.map +1 -1
  422. package/dist/utils/backup.js +26 -26
  423. package/dist/utils/backup.js.map +1 -1
  424. package/dist/utils/index.d.ts +5 -5
  425. package/dist/utils/logger.js +3 -3
  426. package/dist/utils/patchBigIntSerialization.js +1 -1
  427. package/dist/utils/patchBigIntSerialization.js.map +1 -1
  428. package/dist/utils/queue.d.ts.map +1 -1
  429. package/dist/utils/queue.js +1 -0
  430. package/dist/utils/queue.js.map +1 -1
  431. package/dist/utils/utils.d.ts.map +1 -1
  432. package/dist/utils/utils.js +5 -4
  433. package/dist/utils/utils.js.map +1 -1
  434. package/dist/utils/waitress.d.ts +1 -1
  435. package/dist/utils/waitress.js +3 -3
  436. package/dist/zspec/consts.d.ts +1 -1
  437. package/dist/zspec/consts.d.ts.map +1 -1
  438. package/dist/zspec/consts.js +1 -1
  439. package/dist/zspec/index.d.ts +3 -3
  440. package/dist/zspec/tstypes.d.ts +1 -1
  441. package/dist/zspec/utils.d.ts +4 -4
  442. package/dist/zspec/utils.d.ts.map +1 -1
  443. package/dist/zspec/utils.js +9 -13
  444. package/dist/zspec/utils.js.map +1 -1
  445. package/dist/zspec/zcl/buffaloZcl.d.ts +3 -3
  446. package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -1
  447. package/dist/zspec/zcl/buffaloZcl.js +127 -84
  448. package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
  449. package/dist/zspec/zcl/definition/cluster.d.ts +1 -1
  450. package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
  451. package/dist/zspec/zcl/definition/cluster.js +894 -893
  452. package/dist/zspec/zcl/definition/cluster.js.map +1 -1
  453. package/dist/zspec/zcl/definition/consts.js +7 -7
  454. package/dist/zspec/zcl/definition/foundation.d.ts +3 -3
  455. package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -1
  456. package/dist/zspec/zcl/definition/foundation.js +88 -89
  457. package/dist/zspec/zcl/definition/foundation.js.map +1 -1
  458. package/dist/zspec/zcl/definition/manufacturerCode.d.ts +1 -1
  459. package/dist/zspec/zcl/definition/manufacturerCode.js +1 -1
  460. package/dist/zspec/zcl/definition/manufacturerCode.js.map +1 -1
  461. package/dist/zspec/zcl/definition/status.d.ts +3 -3
  462. package/dist/zspec/zcl/definition/status.js +3 -3
  463. package/dist/zspec/zcl/definition/tstype.d.ts +3 -3
  464. package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
  465. package/dist/zspec/zcl/index.d.ts +10 -10
  466. package/dist/zspec/zcl/utils.d.ts +3 -3
  467. package/dist/zspec/zcl/utils.d.ts.map +1 -1
  468. package/dist/zspec/zcl/utils.js +18 -21
  469. package/dist/zspec/zcl/utils.js.map +1 -1
  470. package/dist/zspec/zcl/zclFrame.d.ts +7 -7
  471. package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
  472. package/dist/zspec/zcl/zclFrame.js +38 -41
  473. package/dist/zspec/zcl/zclFrame.js.map +1 -1
  474. package/dist/zspec/zcl/zclHeader.d.ts +2 -2
  475. package/dist/zspec/zcl/zclHeader.d.ts.map +1 -1
  476. package/dist/zspec/zcl/zclHeader.js +3 -3
  477. package/dist/zspec/zcl/zclStatusError.d.ts +1 -1
  478. package/dist/zspec/zdo/buffaloZdo.d.ts +7 -7
  479. package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -1
  480. package/dist/zspec/zdo/buffaloZdo.js +4 -4
  481. package/dist/zspec/zdo/buffaloZdo.js.map +1 -1
  482. package/dist/zspec/zdo/definition/status.d.ts +1 -1
  483. package/dist/zspec/zdo/definition/status.js +1 -1
  484. package/dist/zspec/zdo/definition/tstypes.d.ts +48 -48
  485. package/dist/zspec/zdo/definition/tstypes.d.ts.map +1 -1
  486. package/dist/zspec/zdo/index.d.ts +7 -7
  487. package/dist/zspec/zdo/utils.d.ts +2 -2
  488. package/dist/zspec/zdo/utils.d.ts.map +1 -1
  489. package/dist/zspec/zdo/utils.js +1 -1
  490. package/dist/zspec/zdo/utils.js.map +1 -1
  491. package/dist/zspec/zdo/zdoStatusError.d.ts +1 -1
  492. package/examples/join-and-log.js +5 -5
  493. package/package.json +6 -13
  494. package/src/adapter/adapter.ts +189 -0
  495. package/src/adapter/adapterDiscovery.ts +653 -0
  496. package/src/adapter/const.ts +12 -0
  497. package/src/adapter/deconz/adapter/deconzAdapter.ts +768 -0
  498. package/src/adapter/deconz/driver/constants.ts +180 -0
  499. package/src/adapter/deconz/driver/driver.ts +900 -0
  500. package/src/adapter/deconz/driver/frame.ts +11 -0
  501. package/src/adapter/deconz/driver/frameParser.ts +557 -0
  502. package/src/adapter/deconz/driver/parser.ts +45 -0
  503. package/src/adapter/deconz/driver/writer.ts +22 -0
  504. package/src/adapter/deconz/types.d.ts +13 -0
  505. package/src/adapter/ember/adapter/emberAdapter.ts +2266 -0
  506. package/src/adapter/ember/adapter/endpoints.ts +86 -0
  507. package/src/adapter/ember/adapter/oneWaitress.ts +322 -0
  508. package/src/adapter/ember/adapter/tokensManager.ts +782 -0
  509. package/src/adapter/ember/consts.ts +178 -0
  510. package/src/adapter/ember/enums.ts +2123 -0
  511. package/src/adapter/ember/ezsp/buffalo.ts +1397 -0
  512. package/src/adapter/ember/ezsp/consts.ts +148 -0
  513. package/src/adapter/ember/ezsp/enums.ts +1087 -0
  514. package/src/adapter/ember/ezsp/ezsp.ts +8985 -0
  515. package/src/adapter/ember/ezspError.ts +10 -0
  516. package/src/adapter/ember/types.ts +866 -0
  517. package/src/adapter/ember/uart/ash.ts +1969 -0
  518. package/src/adapter/ember/uart/consts.ts +109 -0
  519. package/src/adapter/ember/uart/enums.ts +192 -0
  520. package/src/adapter/ember/uart/parser.ts +48 -0
  521. package/src/adapter/ember/uart/queues.ts +247 -0
  522. package/src/adapter/ember/uart/writer.ts +53 -0
  523. package/src/adapter/ember/utils/initters.ts +58 -0
  524. package/src/adapter/ember/utils/math.ts +73 -0
  525. package/src/adapter/events.ts +21 -0
  526. package/src/adapter/ezsp/adapter/backup.ts +109 -0
  527. package/src/adapter/ezsp/adapter/ezspAdapter.ts +614 -0
  528. package/src/adapter/ezsp/driver/commands.ts +2497 -0
  529. package/src/adapter/ezsp/driver/consts.ts +11 -0
  530. package/src/adapter/ezsp/driver/driver.ts +1002 -0
  531. package/src/adapter/ezsp/driver/ezsp.ts +802 -0
  532. package/src/adapter/ezsp/driver/frame.ts +101 -0
  533. package/src/adapter/ezsp/driver/index.ts +4 -0
  534. package/src/adapter/ezsp/driver/multicast.ts +78 -0
  535. package/src/adapter/ezsp/driver/parser.ts +81 -0
  536. package/src/adapter/ezsp/driver/types/basic.ts +201 -0
  537. package/src/adapter/ezsp/driver/types/index.ts +239 -0
  538. package/src/adapter/ezsp/driver/types/named.ts +2330 -0
  539. package/src/adapter/ezsp/driver/types/struct.ts +844 -0
  540. package/src/adapter/ezsp/driver/uart.ts +460 -0
  541. package/src/adapter/ezsp/driver/utils/crc16ccitt.ts +44 -0
  542. package/src/adapter/ezsp/driver/utils/index.ts +32 -0
  543. package/src/adapter/ezsp/driver/writer.ts +64 -0
  544. package/src/adapter/index.ts +3 -0
  545. package/src/adapter/serialPort.ts +58 -0
  546. package/src/adapter/socketPortUtils.ts +16 -0
  547. package/src/adapter/tstype.ts +78 -0
  548. package/src/adapter/z-stack/adapter/adapter-backup.ts +519 -0
  549. package/src/adapter/z-stack/adapter/adapter-nv-memory.ts +457 -0
  550. package/src/adapter/z-stack/adapter/endpoints.ts +57 -0
  551. package/src/adapter/z-stack/adapter/manager.ts +543 -0
  552. package/src/adapter/z-stack/adapter/tstype.ts +6 -0
  553. package/src/adapter/z-stack/adapter/zStackAdapter.ts +1190 -0
  554. package/src/adapter/z-stack/constants/af.ts +27 -0
  555. package/src/adapter/z-stack/constants/common.ts +285 -0
  556. package/src/adapter/z-stack/constants/dbg.ts +23 -0
  557. package/src/adapter/z-stack/constants/index.ts +11 -0
  558. package/src/adapter/z-stack/constants/mac.ts +128 -0
  559. package/src/adapter/z-stack/constants/sapi.ts +25 -0
  560. package/src/adapter/z-stack/constants/sys.ts +72 -0
  561. package/src/adapter/z-stack/constants/util.ts +82 -0
  562. package/src/adapter/z-stack/constants/utils.ts +14 -0
  563. package/src/adapter/z-stack/constants/zdo.ts +103 -0
  564. package/src/adapter/z-stack/models/startup-options.ts +13 -0
  565. package/src/adapter/z-stack/structs/entries/address-manager-entry.ts +44 -0
  566. package/src/adapter/z-stack/structs/entries/address-manager-table.ts +19 -0
  567. package/src/adapter/z-stack/structs/entries/aps-link-key-data-entry.ts +12 -0
  568. package/src/adapter/z-stack/structs/entries/aps-link-key-data-table.ts +21 -0
  569. package/src/adapter/z-stack/structs/entries/aps-tc-link-key-entry.ts +19 -0
  570. package/src/adapter/z-stack/structs/entries/aps-tc-link-key-table.ts +21 -0
  571. package/src/adapter/z-stack/structs/entries/channel-list.ts +8 -0
  572. package/src/adapter/z-stack/structs/entries/has-configured.ts +16 -0
  573. package/src/adapter/z-stack/structs/entries/index.ts +16 -0
  574. package/src/adapter/z-stack/structs/entries/nib.ts +66 -0
  575. package/src/adapter/z-stack/structs/entries/nwk-key-descriptor.ts +15 -0
  576. package/src/adapter/z-stack/structs/entries/nwk-key.ts +13 -0
  577. package/src/adapter/z-stack/structs/entries/nwk-pan-id.ts +8 -0
  578. package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.ts +20 -0
  579. package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.ts +19 -0
  580. package/src/adapter/z-stack/structs/entries/security-manager-entry.ts +33 -0
  581. package/src/adapter/z-stack/structs/entries/security-manager-table.ts +22 -0
  582. package/src/adapter/z-stack/structs/index.ts +4 -0
  583. package/src/adapter/z-stack/structs/serializable-memory-object.ts +14 -0
  584. package/src/adapter/z-stack/structs/struct.ts +367 -0
  585. package/src/adapter/z-stack/structs/table.ts +198 -0
  586. package/src/adapter/z-stack/unpi/constants.ts +33 -0
  587. package/src/adapter/z-stack/unpi/frame.ts +62 -0
  588. package/src/adapter/z-stack/unpi/index.ts +4 -0
  589. package/src/adapter/z-stack/unpi/parser.ts +56 -0
  590. package/src/adapter/z-stack/unpi/writer.ts +21 -0
  591. package/src/adapter/z-stack/utils/channel-list.ts +40 -0
  592. package/src/adapter/z-stack/utils/index.ts +2 -0
  593. package/src/adapter/z-stack/utils/network-options.ts +26 -0
  594. package/src/adapter/z-stack/znp/buffaloZnp.ts +175 -0
  595. package/src/adapter/z-stack/znp/definition.ts +2713 -0
  596. package/src/adapter/z-stack/znp/index.ts +2 -0
  597. package/src/adapter/z-stack/znp/parameterType.ts +22 -0
  598. package/src/adapter/z-stack/znp/tstype.ts +44 -0
  599. package/src/adapter/z-stack/znp/utils.ts +10 -0
  600. package/src/adapter/z-stack/znp/znp.ts +342 -0
  601. package/src/adapter/z-stack/znp/zpiObject.ts +148 -0
  602. package/src/adapter/zboss/adapter/zbossAdapter.ts +527 -0
  603. package/src/adapter/zboss/commands.ts +1184 -0
  604. package/src/adapter/zboss/consts.ts +9 -0
  605. package/src/adapter/zboss/driver.ts +423 -0
  606. package/src/adapter/zboss/enums.ts +360 -0
  607. package/src/adapter/zboss/frame.ts +227 -0
  608. package/src/adapter/zboss/reader.ts +65 -0
  609. package/src/adapter/zboss/types.ts +0 -0
  610. package/src/adapter/zboss/uart.ts +428 -0
  611. package/src/adapter/zboss/utils.ts +58 -0
  612. package/src/adapter/zboss/writer.ts +49 -0
  613. package/src/adapter/zigate/adapter/patchZdoBuffaloBE.ts +27 -0
  614. package/src/adapter/zigate/adapter/zigateAdapter.ts +618 -0
  615. package/src/adapter/zigate/driver/LICENSE +17 -0
  616. package/src/adapter/zigate/driver/buffaloZiGate.ts +212 -0
  617. package/src/adapter/zigate/driver/commandType.ts +418 -0
  618. package/src/adapter/zigate/driver/constants.ts +150 -0
  619. package/src/adapter/zigate/driver/frame.ts +197 -0
  620. package/src/adapter/zigate/driver/messageType.ts +287 -0
  621. package/src/adapter/zigate/driver/parameterType.ts +32 -0
  622. package/src/adapter/zigate/driver/ziGateObject.ts +146 -0
  623. package/src/adapter/zigate/driver/zigate.ts +426 -0
  624. package/src/adapter/zoh/adapter/utils.ts +27 -0
  625. package/src/adapter/zoh/adapter/zohAdapter.ts +837 -0
  626. package/src/buffalo/buffalo.ts +335 -0
  627. package/src/buffalo/index.ts +1 -0
  628. package/src/controller/controller.ts +1048 -0
  629. package/src/controller/database.ts +124 -0
  630. package/src/controller/events.ts +51 -0
  631. package/src/controller/greenPower.ts +603 -0
  632. package/src/controller/helpers/index.ts +1 -0
  633. package/src/controller/helpers/request.ts +94 -0
  634. package/src/controller/helpers/requestQueue.ts +125 -0
  635. package/src/controller/helpers/zclFrameConverter.ts +51 -0
  636. package/src/controller/helpers/zclTransactionSequenceNumber.ts +19 -0
  637. package/src/controller/index.ts +6 -0
  638. package/src/controller/model/device.ts +1320 -0
  639. package/src/controller/model/endpoint.ts +1040 -0
  640. package/src/controller/model/entity.ts +23 -0
  641. package/src/controller/model/group.ts +333 -0
  642. package/src/controller/model/index.ts +4 -0
  643. package/src/controller/touchlink.ts +189 -0
  644. package/src/controller/tstype.ts +39 -0
  645. package/src/index.ts +12 -0
  646. package/src/models/backup-storage-legacy.ts +48 -0
  647. package/src/models/backup-storage-unified.ts +47 -0
  648. package/src/models/backup.ts +37 -0
  649. package/src/models/index.ts +5 -0
  650. package/src/models/network-options.ts +11 -0
  651. package/src/utils/backup.ts +152 -0
  652. package/src/utils/index.ts +5 -0
  653. package/src/utils/logger.ts +20 -0
  654. package/src/utils/patchBigIntSerialization.ts +8 -0
  655. package/src/utils/queue.ts +76 -0
  656. package/src/utils/types.d.ts +3 -0
  657. package/src/utils/utils.ts +20 -0
  658. package/src/utils/wait.ts +5 -0
  659. package/src/utils/waitress.ts +95 -0
  660. package/src/zspec/consts.ts +84 -0
  661. package/src/zspec/enums.ts +22 -0
  662. package/src/zspec/index.ts +3 -0
  663. package/src/zspec/tstypes.ts +18 -0
  664. package/src/zspec/utils.ts +308 -0
  665. package/src/zspec/zcl/buffaloZcl.ts +1133 -0
  666. package/src/zspec/zcl/definition/cluster.ts +5398 -0
  667. package/src/zspec/zcl/definition/consts.ts +24 -0
  668. package/src/zspec/zcl/definition/enums.ts +194 -0
  669. package/src/zspec/zcl/definition/foundation.ts +301 -0
  670. package/src/zspec/zcl/definition/manufacturerCode.ts +729 -0
  671. package/src/zspec/zcl/definition/status.ts +69 -0
  672. package/src/zspec/zcl/definition/tstype.ts +236 -0
  673. package/src/zspec/zcl/index.ts +10 -0
  674. package/src/zspec/zcl/utils.ts +342 -0
  675. package/src/zspec/zcl/zclFrame.ts +336 -0
  676. package/src/zspec/zcl/zclHeader.ts +102 -0
  677. package/src/zspec/zcl/zclStatusError.ts +10 -0
  678. package/src/zspec/zdo/buffaloZdo.ts +2345 -0
  679. package/src/zspec/zdo/definition/clusters.ts +722 -0
  680. package/src/zspec/zdo/definition/consts.ts +16 -0
  681. package/src/zspec/zdo/definition/enums.ts +99 -0
  682. package/src/zspec/zdo/definition/status.ts +105 -0
  683. package/src/zspec/zdo/definition/tstypes.ts +1062 -0
  684. package/src/zspec/zdo/index.ts +7 -0
  685. package/src/zspec/zdo/utils.ts +76 -0
  686. package/src/zspec/zdo/zdoStatusError.ts +10 -0
  687. package/test/adapter/adapter.test.ts +1062 -0
  688. package/test/adapter/ember/ash.test.ts +337 -0
  689. package/test/adapter/ember/consts.ts +131 -0
  690. package/test/adapter/ember/emberAdapter.test.ts +3449 -0
  691. package/test/adapter/ember/ezsp.test.ts +386 -0
  692. package/test/adapter/ember/ezspBuffalo.test.ts +92 -0
  693. package/test/adapter/ember/ezspError.test.ts +11 -0
  694. package/test/adapter/ember/math.test.ts +205 -0
  695. package/test/adapter/ezsp/frame.test.ts +29 -0
  696. package/test/adapter/ezsp/uart.test.ts +180 -0
  697. package/test/adapter/z-stack/adapter.test.ts +3985 -0
  698. package/test/adapter/z-stack/constants.test.ts +32 -0
  699. package/test/adapter/z-stack/structs.test.ts +114 -0
  700. package/test/adapter/z-stack/unpi.test.ts +212 -0
  701. package/test/adapter/z-stack/znp.test.ts +1284 -0
  702. package/test/adapter/zboss/fixZdoResponse.test.ts +178 -0
  703. package/test/adapter/zigate/patchZdoBuffaloBE.test.ts +80 -0
  704. package/test/adapter/zigate/zdo.test.ts +187 -0
  705. package/test/adapter/zoh/utils.test.ts +35 -0
  706. package/test/adapter/zoh/zohAdapter.test.ts +1306 -0
  707. package/test/buffalo.test.ts +430 -0
  708. package/test/controller.test.ts +10005 -0
  709. package/test/greenpower.test.ts +1421 -0
  710. package/test/mockAdapters.ts +65 -0
  711. package/test/mockDevices.ts +472 -0
  712. package/test/testUtils.ts +20 -0
  713. package/test/tsconfig.json +10 -0
  714. package/test/utils/math.ts +19 -0
  715. package/test/utils.test.ts +227 -0
  716. package/test/vitest.config.mts +25 -0
  717. package/test/zcl.test.ts +2832 -0
  718. package/test/zspec/utils.test.ts +131 -0
  719. package/test/zspec/zcl/buffalo.test.ts +1231 -0
  720. package/test/zspec/zcl/frame.test.ts +925 -0
  721. package/test/zspec/zcl/utils.test.ts +280 -0
  722. package/test/zspec/zdo/buffalo.test.ts +1849 -0
  723. package/test/zspec/zdo/utils.test.ts +240 -0
  724. package/.prettierignore +0 -2
  725. package/.prettierrc +0 -26
  726. package/eslint.config.mjs +0 -32
@@ -59,7 +59,7 @@ const initters_1 = require("../utils/initters");
59
59
  const math_1 = require("../utils/math");
60
60
  const endpoints_1 = require("./endpoints");
61
61
  const oneWaitress_1 = require("./oneWaitress");
62
- const NS = 'zh:ember';
62
+ const NS = "zh:ember";
63
63
  var NetworkInitAction;
64
64
  (function (NetworkInitAction) {
65
65
  /** Ain't that nice! */
@@ -101,7 +101,7 @@ const QUEUE_NETWORK_DOWN_DEFER_MSEC = 1500;
101
101
  * https://github.com/SiliconLabs/UnifySDK/blob/main/applications/zigbeed/project_files/zigbeed.slcp
102
102
  */
103
103
  exports.DEFAULT_STACK_CONFIG = {
104
- CONCENTRATOR_RAM_TYPE: 'high',
104
+ CONCENTRATOR_RAM_TYPE: "high",
105
105
  CONCENTRATOR_MIN_TIME: 5, // zigpc: 10
106
106
  CONCENTRATOR_MAX_TIME: 60, // zigpc: 60
107
107
  CONCENTRATOR_ROUTE_ERROR_THRESHOLD: 3, // zigpc: 3
@@ -164,7 +164,7 @@ class EmberAdapter extends __1.Adapter {
164
164
  this.manufacturerID = Zcl.ManufacturerCode.SILICON_LABORATORIES;
165
165
  this.version = {
166
166
  ezsp: 0,
167
- revision: 'unknown',
167
+ revision: "unknown",
168
168
  build: 0,
169
169
  major: 0,
170
170
  minor: 0,
@@ -181,66 +181,66 @@ class EmberAdapter extends __1.Adapter {
181
181
  this.queue = new utils_1.Queue(this.adapterOptions.concurrent || 16); // ORed to avoid 0 (not checked in settings/queue constructor)
182
182
  this.oneWaitress = new oneWaitress_1.EmberOneWaitress();
183
183
  this.ezsp = new ezsp_1.Ezsp(serialPortOptions);
184
- this.ezsp.on('zdoResponse', this.onZDOResponse.bind(this));
185
- this.ezsp.on('incomingMessage', this.onIncomingMessage.bind(this));
186
- this.ezsp.on('touchlinkMessage', this.onTouchlinkMessage.bind(this));
187
- this.ezsp.on('stackStatus', this.onStackStatus.bind(this));
188
- this.ezsp.on('trustCenterJoin', this.onTrustCenterJoin.bind(this));
189
- this.ezsp.on('messageSent', this.onMessageSent.bind(this));
190
- this.ezsp.once('ncpNeedsResetAndInit', this.onNcpNeedsResetAndInit.bind(this));
184
+ this.ezsp.on("zdoResponse", this.onZDOResponse.bind(this));
185
+ this.ezsp.on("incomingMessage", this.onIncomingMessage.bind(this));
186
+ this.ezsp.on("touchlinkMessage", this.onTouchlinkMessage.bind(this));
187
+ this.ezsp.on("stackStatus", this.onStackStatus.bind(this));
188
+ this.ezsp.on("trustCenterJoin", this.onTrustCenterJoin.bind(this));
189
+ this.ezsp.on("messageSent", this.onMessageSent.bind(this));
190
+ this.ezsp.once("ncpNeedsResetAndInit", this.onNcpNeedsResetAndInit.bind(this));
191
191
  }
192
192
  loadStackConfig() {
193
193
  // store stack config in same dir as backup
194
- const configPath = node_path_1.default.join(node_path_1.default.dirname(this.backupPath), 'stack_config.json');
194
+ const configPath = node_path_1.default.join(node_path_1.default.dirname(this.backupPath), "stack_config.json");
195
195
  try {
196
- const customConfig = JSON.parse((0, node_fs_1.readFileSync)(configPath, 'utf8'));
196
+ const customConfig = JSON.parse((0, node_fs_1.readFileSync)(configPath, "utf8"));
197
197
  // set any undefined config to default
198
198
  const config = { ...exports.DEFAULT_STACK_CONFIG, ...customConfig };
199
- const inRange = (value, min, max) => (value == undefined || value < min || value > max ? false : true);
200
- if (!['high', 'low'].includes(config.CONCENTRATOR_RAM_TYPE)) {
199
+ const inRange = (value, min, max) => !(value == null || value < min || value > max);
200
+ if (!["high", "low"].includes(config.CONCENTRATOR_RAM_TYPE)) {
201
201
  config.CONCENTRATOR_RAM_TYPE = exports.DEFAULT_STACK_CONFIG.CONCENTRATOR_RAM_TYPE;
202
- logger_1.logger.error(`[STACK CONFIG] Invalid CONCENTRATOR_RAM_TYPE, using default.`, NS);
202
+ logger_1.logger.error("[STACK CONFIG] Invalid CONCENTRATOR_RAM_TYPE, using default.", NS);
203
203
  }
204
204
  if (!inRange(config.CONCENTRATOR_MIN_TIME, 1, 60) || config.CONCENTRATOR_MIN_TIME >= config.CONCENTRATOR_MAX_TIME) {
205
205
  config.CONCENTRATOR_MIN_TIME = exports.DEFAULT_STACK_CONFIG.CONCENTRATOR_MIN_TIME;
206
- logger_1.logger.error(`[STACK CONFIG] Invalid CONCENTRATOR_MIN_TIME, using default.`, NS);
206
+ logger_1.logger.error("[STACK CONFIG] Invalid CONCENTRATOR_MIN_TIME, using default.", NS);
207
207
  }
208
208
  if (!inRange(config.CONCENTRATOR_MAX_TIME, 30, 300) || config.CONCENTRATOR_MAX_TIME <= config.CONCENTRATOR_MIN_TIME) {
209
209
  config.CONCENTRATOR_MAX_TIME = exports.DEFAULT_STACK_CONFIG.CONCENTRATOR_MAX_TIME;
210
- logger_1.logger.error(`[STACK CONFIG] Invalid CONCENTRATOR_MAX_TIME, using default.`, NS);
210
+ logger_1.logger.error("[STACK CONFIG] Invalid CONCENTRATOR_MAX_TIME, using default.", NS);
211
211
  }
212
212
  if (!inRange(config.CONCENTRATOR_ROUTE_ERROR_THRESHOLD, 1, 100)) {
213
213
  config.CONCENTRATOR_ROUTE_ERROR_THRESHOLD = exports.DEFAULT_STACK_CONFIG.CONCENTRATOR_ROUTE_ERROR_THRESHOLD;
214
- logger_1.logger.error(`[STACK CONFIG] Invalid CONCENTRATOR_ROUTE_ERROR_THRESHOLD, using default.`, NS);
214
+ logger_1.logger.error("[STACK CONFIG] Invalid CONCENTRATOR_ROUTE_ERROR_THRESHOLD, using default.", NS);
215
215
  }
216
216
  if (!inRange(config.CONCENTRATOR_DELIVERY_FAILURE_THRESHOLD, 1, 100)) {
217
217
  config.CONCENTRATOR_DELIVERY_FAILURE_THRESHOLD = exports.DEFAULT_STACK_CONFIG.CONCENTRATOR_DELIVERY_FAILURE_THRESHOLD;
218
- logger_1.logger.error(`[STACK CONFIG] Invalid CONCENTRATOR_DELIVERY_FAILURE_THRESHOLD, using default.`, NS);
218
+ logger_1.logger.error("[STACK CONFIG] Invalid CONCENTRATOR_DELIVERY_FAILURE_THRESHOLD, using default.", NS);
219
219
  }
220
220
  if (!inRange(config.CONCENTRATOR_MAX_HOPS, 0, 30)) {
221
221
  config.CONCENTRATOR_MAX_HOPS = exports.DEFAULT_STACK_CONFIG.CONCENTRATOR_MAX_HOPS;
222
- logger_1.logger.error(`[STACK CONFIG] Invalid CONCENTRATOR_MAX_HOPS, using default.`, NS);
222
+ logger_1.logger.error("[STACK CONFIG] Invalid CONCENTRATOR_MAX_HOPS, using default.", NS);
223
223
  }
224
224
  if (!inRange(config.MAX_END_DEVICE_CHILDREN, 6, 64)) {
225
225
  config.MAX_END_DEVICE_CHILDREN = exports.DEFAULT_STACK_CONFIG.MAX_END_DEVICE_CHILDREN;
226
- logger_1.logger.error(`[STACK CONFIG] Invalid MAX_END_DEVICE_CHILDREN, using default.`, NS);
226
+ logger_1.logger.error("[STACK CONFIG] Invalid MAX_END_DEVICE_CHILDREN, using default.", NS);
227
227
  }
228
228
  if (!inRange(config.TRANSIENT_DEVICE_TIMEOUT, 0, 65535)) {
229
229
  config.TRANSIENT_DEVICE_TIMEOUT = exports.DEFAULT_STACK_CONFIG.TRANSIENT_DEVICE_TIMEOUT;
230
- logger_1.logger.error(`[STACK CONFIG] Invalid TRANSIENT_DEVICE_TIMEOUT, using default.`, NS);
230
+ logger_1.logger.error("[STACK CONFIG] Invalid TRANSIENT_DEVICE_TIMEOUT, using default.", NS);
231
231
  }
232
232
  if (!inRange(config.END_DEVICE_POLL_TIMEOUT, 0, 14)) {
233
233
  config.END_DEVICE_POLL_TIMEOUT = exports.DEFAULT_STACK_CONFIG.END_DEVICE_POLL_TIMEOUT;
234
- logger_1.logger.error(`[STACK CONFIG] Invalid END_DEVICE_POLL_TIMEOUT, using default.`, NS);
234
+ logger_1.logger.error("[STACK CONFIG] Invalid END_DEVICE_POLL_TIMEOUT, using default.", NS);
235
235
  }
236
236
  if (!inRange(config.TRANSIENT_KEY_TIMEOUT_S, 0, 65535)) {
237
237
  config.TRANSIENT_KEY_TIMEOUT_S = exports.DEFAULT_STACK_CONFIG.TRANSIENT_KEY_TIMEOUT_S;
238
- logger_1.logger.error(`[STACK CONFIG] Invalid TRANSIENT_KEY_TIMEOUT_S, using default.`, NS);
238
+ logger_1.logger.error("[STACK CONFIG] Invalid TRANSIENT_KEY_TIMEOUT_S, using default.", NS);
239
239
  }
240
240
  config.CCA_MODE = config.CCA_MODE ?? undefined; // always default to undefined
241
241
  if (config.CCA_MODE && enums_1.IEEE802154CcaMode[config.CCA_MODE] === undefined) {
242
242
  config.CCA_MODE = undefined;
243
- logger_1.logger.error(`[STACK CONFIG] Invalid CCA_MODE, ignoring.`, NS);
243
+ logger_1.logger.error("[STACK CONFIG] Invalid CCA_MODE, ignoring.", NS);
244
244
  }
245
245
  logger_1.logger.info(`Using stack config ${JSON.stringify(config)}.`, NS);
246
246
  return config;
@@ -248,7 +248,7 @@ class EmberAdapter extends __1.Adapter {
248
248
  catch {
249
249
  /* empty */
250
250
  }
251
- logger_1.logger.info(`Using default stack config.`, NS);
251
+ logger_1.logger.info("Using default stack config.", NS);
252
252
  return exports.DEFAULT_STACK_CONFIG;
253
253
  }
254
254
  /**
@@ -261,25 +261,25 @@ class EmberAdapter extends __1.Adapter {
261
261
  switch (status) {
262
262
  case enums_1.SLStatus.NETWORK_UP: {
263
263
  this.oneWaitress.resolveEvent(oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_UP);
264
- logger_1.logger.info(`[STACK STATUS] Network up.`, NS);
264
+ logger_1.logger.info("[STACK STATUS] Network up.", NS);
265
265
  break;
266
266
  }
267
267
  case enums_1.SLStatus.NETWORK_DOWN: {
268
268
  this.oneWaitress.resolveEvent(oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_DOWN);
269
- logger_1.logger.info(`[STACK STATUS] Network down.`, NS);
269
+ logger_1.logger.info("[STACK STATUS] Network down.", NS);
270
270
  break;
271
271
  }
272
272
  case enums_1.SLStatus.ZIGBEE_NETWORK_OPENED: {
273
273
  this.oneWaitress.resolveEvent(oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_OPENED);
274
- logger_1.logger.info(`[STACK STATUS] Network opened.`, NS);
274
+ logger_1.logger.info("[STACK STATUS] Network opened.", NS);
275
275
  break;
276
276
  }
277
277
  case enums_1.SLStatus.ZIGBEE_NETWORK_CLOSED: {
278
278
  this.oneWaitress.resolveEvent(oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_CLOSED);
279
- logger_1.logger.info(`[STACK STATUS] Network closed.`, NS);
279
+ logger_1.logger.info("[STACK STATUS] Network closed.", NS);
280
280
  if (this.manufacturerCode !== DEFAULT_MANUFACTURER_CODE) {
281
281
  await this.queue.execute(async () => {
282
- logger_1.logger.debug(`[WORKAROUND] Reverting coordinator manufacturer code to default.`, NS);
282
+ logger_1.logger.debug("[WORKAROUND] Reverting coordinator manufacturer code to default.", NS);
283
283
  await this.ezsp.ezspSetManufacturerCode(DEFAULT_MANUFACTURER_CODE);
284
284
  this.manufacturerCode = DEFAULT_MANUFACTURER_CODE;
285
285
  });
@@ -289,7 +289,7 @@ class EmberAdapter extends __1.Adapter {
289
289
  case enums_1.SLStatus.ZIGBEE_CHANNEL_CHANGED: {
290
290
  // invalidate cache
291
291
  this.networkCache.parameters.radioChannel = consts_1.INVALID_RADIO_CHANNEL;
292
- logger_1.logger.info(`[STACK STATUS] Channel changed.`, NS);
292
+ logger_1.logger.info("[STACK STATUS] Channel changed.", NS);
293
293
  break;
294
294
  }
295
295
  default: {
@@ -371,7 +371,7 @@ class EmberAdapter extends __1.Adapter {
371
371
  * @param sender The sender of the response. Should match `payload.nodeId` in many responses.
372
372
  * @param messageContents The content of the response.
373
373
  */
374
- async onZDOResponse(apsFrame, sender, messageContents) {
374
+ onZDOResponse(apsFrame, sender, messageContents) {
375
375
  const result = Zdo.Buffalo.readResponse(this.hasZdoMessageOverhead, apsFrame.clusterId, messageContents);
376
376
  if (apsFrame.clusterId === Zdo.ClusterId.NETWORK_ADDRESS_RESPONSE) {
377
377
  // special case to properly resolve a NETWORK_ADDRESS_RESPONSE following a NETWORK_ADDRESS_REQUEST (based on EUI64 from ZDO payload)
@@ -383,7 +383,7 @@ class EmberAdapter extends __1.Adapter {
383
383
  else {
384
384
  this.oneWaitress.resolveZDO(sender, apsFrame, result);
385
385
  }
386
- this.emit('zdoResponse', apsFrame.clusterId, result);
386
+ this.emit("zdoResponse", apsFrame.clusterId, result);
387
387
  }
388
388
  /**
389
389
  * Emitted from @see Ezsp.ezspIncomingMessageHandler @see Ezsp.ezspGpepIncomingMessageHandler
@@ -394,7 +394,7 @@ class EmberAdapter extends __1.Adapter {
394
394
  * @param sender
395
395
  * @param messageContents
396
396
  */
397
- async onIncomingMessage(type, apsFrame, lastHopLqi, sender, messageContents) {
397
+ onIncomingMessage(type, apsFrame, lastHopLqi, sender, messageContents) {
398
398
  const payload = {
399
399
  clusterID: apsFrame.clusterId,
400
400
  header: Zcl.Header.fromBuffer(messageContents),
@@ -407,18 +407,18 @@ class EmberAdapter extends __1.Adapter {
407
407
  destinationEndpoint: apsFrame.destinationEndpoint,
408
408
  };
409
409
  this.oneWaitress.resolveZCL(payload);
410
- this.emit('zclPayload', payload);
410
+ this.emit("zclPayload", payload);
411
411
  }
412
412
  /**
413
413
  * Emitted from @see Ezsp.ezspMacFilterMatchMessageHandler when the message is a valid InterPAN touchlink message.
414
414
  *
415
- * @param sourcePanId
415
+ * @param _sourcePanId
416
416
  * @param sourceAddress
417
417
  * @param groupId
418
418
  * @param lastHopLqi
419
419
  * @param messageContents
420
420
  */
421
- async onTouchlinkMessage(sourcePanId, sourceAddress, groupId, lastHopLqi, messageContents) {
421
+ onTouchlinkMessage(_sourcePanId, sourceAddress, groupId, lastHopLqi, messageContents) {
422
422
  const endpoint = endpoints_1.FIXED_ENDPOINTS[0].endpoint;
423
423
  const payload = {
424
424
  clusterID: Zcl.Clusters.touchlink.ID,
@@ -432,7 +432,7 @@ class EmberAdapter extends __1.Adapter {
432
432
  destinationEndpoint: endpoint,
433
433
  };
434
434
  this.oneWaitress.resolveZCL(payload);
435
- this.emit('zclPayload', payload);
435
+ this.emit("zclPayload", payload);
436
436
  }
437
437
  /**
438
438
  * Emitted from @see Ezsp.ezspTrustCenterJoinHandler
@@ -450,7 +450,7 @@ class EmberAdapter extends __1.Adapter {
450
450
  networkAddress: newNodeId,
451
451
  ieeeAddr: newNodeEui64,
452
452
  };
453
- this.emit('deviceLeave', payload);
453
+ this.emit("deviceLeave", payload);
454
454
  }
455
455
  else {
456
456
  if (policyDecision !== enums_1.EmberJoinDecision.DENY_JOIN) {
@@ -465,11 +465,11 @@ class EmberAdapter extends __1.Adapter {
465
465
  logger_1.logger.debug(`[WORKAROUND] Setting coordinator manufacturer code to ${Zcl.ManufacturerCode[joinManufCode]}.`, NS);
466
466
  await this.ezsp.ezspSetManufacturerCode(joinManufCode);
467
467
  this.manufacturerCode = joinManufCode;
468
- this.emit('deviceJoined', payload);
468
+ this.emit("deviceJoined", payload);
469
469
  });
470
470
  }
471
471
  else {
472
- this.emit('deviceJoined', payload);
472
+ this.emit("deviceJoined", payload);
473
473
  }
474
474
  }
475
475
  else {
@@ -481,9 +481,9 @@ class EmberAdapter extends __1.Adapter {
481
481
  await this.queue.execute(async () => {
482
482
  // listed as per EmberCounterType
483
483
  const ncpCounters = await this.ezsp.ezspReadAndClearCounters();
484
- logger_1.logger.info(`[NCP COUNTERS] ${ncpCounters.join(',')}`, NS);
484
+ logger_1.logger.info(`[NCP COUNTERS] ${ncpCounters.join(",")}`, NS);
485
485
  const ashCounters = this.ezsp.ash.readAndClearCounters();
486
- logger_1.logger.info(`[ASH COUNTERS] ${ashCounters.join(',')}`, NS);
486
+ logger_1.logger.info(`[ASH COUNTERS] ${ashCounters.join(",")}`, NS);
487
487
  });
488
488
  }
489
489
  /**
@@ -491,7 +491,7 @@ class EmberAdapter extends __1.Adapter {
491
491
  * This is called by start and on internal reset.
492
492
  */
493
493
  async initEzsp() {
494
- let result = 'resumed';
494
+ let result = "resumed";
495
495
  // NOTE: something deep in this call can throw too
496
496
  const startResult = await this.ezsp.start();
497
497
  if (startResult !== enums_1.EzspStatus.SUCCESS) {
@@ -536,7 +536,7 @@ class EmberAdapter extends __1.Adapter {
536
536
  if (status !== enums_1.SLStatus.OK) {
537
537
  throw new Error(`Failed to get network parameters with status=${enums_1.SLStatus[status]}.`);
538
538
  }
539
- if (this.adapterOptions.transmitPower != undefined && parameters.radioTxPower !== this.adapterOptions.transmitPower) {
539
+ if (this.adapterOptions.transmitPower != null && parameters.radioTxPower !== this.adapterOptions.transmitPower) {
540
540
  const status = await this.ezsp.ezspSetRadioPower(this.adapterOptions.transmitPower);
541
541
  if (status !== enums_1.SLStatus.OK) {
542
542
  // soft-fail, don't prevent start
@@ -564,7 +564,7 @@ class EmberAdapter extends __1.Adapter {
564
564
  * (through a target node that is neither the trust center nor one of its neighboring routers.)
565
565
  */
566
566
  async initNCPConcentrator() {
567
- const status = await this.ezsp.ezspSetConcentrator(true, this.stackConfig.CONCENTRATOR_RAM_TYPE === 'low' ? consts_1.EMBER_LOW_RAM_CONCENTRATOR : consts_1.EMBER_HIGH_RAM_CONCENTRATOR, this.stackConfig.CONCENTRATOR_MIN_TIME, this.stackConfig.CONCENTRATOR_MAX_TIME, this.stackConfig.CONCENTRATOR_ROUTE_ERROR_THRESHOLD, this.stackConfig.CONCENTRATOR_DELIVERY_FAILURE_THRESHOLD, this.stackConfig.CONCENTRATOR_MAX_HOPS);
567
+ const status = await this.ezsp.ezspSetConcentrator(true, this.stackConfig.CONCENTRATOR_RAM_TYPE === "low" ? consts_1.EMBER_LOW_RAM_CONCENTRATOR : consts_1.EMBER_HIGH_RAM_CONCENTRATOR, this.stackConfig.CONCENTRATOR_MIN_TIME, this.stackConfig.CONCENTRATOR_MAX_TIME, this.stackConfig.CONCENTRATOR_ROUTE_ERROR_THRESHOLD, this.stackConfig.CONCENTRATOR_DELIVERY_FAILURE_THRESHOLD, this.stackConfig.CONCENTRATOR_MAX_HOPS);
568
568
  if (status !== enums_1.SLStatus.OK) {
569
569
  throw new Error(`[CONCENTRATOR] Failed to set concentrator with status=${enums_1.SLStatus[status]}.`);
570
570
  }
@@ -630,6 +630,7 @@ class EmberAdapter extends __1.Adapter {
630
630
  throw new Error(`[INIT TC] Failed to set join policy to USE_PRECONFIGURED_KEY with status=${enums_1.SLStatus[status]}.`);
631
631
  }
632
632
  }
633
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
633
634
  const configNetworkKey = Buffer.from(this.networkOptions.networkKey);
634
635
  const networkInitStruct = {
635
636
  bitmask: enums_1.EmberNetworkInitBitmask.PARENT_INFO_IN_TOKEN | enums_1.EmberNetworkInitBitmask.END_DEVICE_REJOIN_ON_REBOOT,
@@ -642,7 +643,7 @@ class EmberAdapter extends __1.Adapter {
642
643
  let action = NetworkInitAction.DONE;
643
644
  if (initStatus === enums_1.SLStatus.OK) {
644
645
  // network
645
- await this.oneWaitress.startWaitingForEvent({ eventName: oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_UP }, DEFAULT_NETWORK_REQUEST_TIMEOUT, '[INIT TC] Network init');
646
+ await this.oneWaitress.startWaitingForEvent({ eventName: oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_UP }, DEFAULT_NETWORK_REQUEST_TIMEOUT, "[INIT TC] Network init");
646
647
  const [npStatus, nodeType, netParams] = await this.ezsp.ezspGetNetworkParameters();
647
648
  logger_1.logger.debug(() => `[INIT TC] Current adapter network: nodeType=${enums_1.EmberNodeType[nodeType]} params=${JSON.stringify(netParams)}`, NS);
648
649
  if (npStatus === enums_1.SLStatus.OK &&
@@ -667,12 +668,12 @@ class EmberAdapter extends __1.Adapter {
667
668
  action = NetworkInitAction.LEAVE;
668
669
  }
669
670
  if (action === NetworkInitAction.LEAVE) {
670
- logger_1.logger.info(`[INIT TC] Adapter network does not match config. Leaving network...`, NS);
671
+ logger_1.logger.info("[INIT TC] Adapter network does not match config. Leaving network...", NS);
671
672
  const leaveStatus = await this.ezsp.ezspLeaveNetwork();
672
673
  if (leaveStatus !== enums_1.SLStatus.OK) {
673
674
  throw new Error(`[INIT TC] Failed leave network request with status=${enums_1.SLStatus[leaveStatus]}.`);
674
675
  }
675
- await this.oneWaitress.startWaitingForEvent({ eventName: oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_DOWN }, DEFAULT_NETWORK_REQUEST_TIMEOUT, '[INIT TC] Leave network');
676
+ await this.oneWaitress.startWaitingForEvent({ eventName: oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_DOWN }, DEFAULT_NETWORK_REQUEST_TIMEOUT, "[INIT TC] Leave network");
676
677
  await (0, utils_1.wait)(200); // settle down
677
678
  action = NetworkInitAction.LEFT;
678
679
  }
@@ -680,8 +681,9 @@ class EmberAdapter extends __1.Adapter {
680
681
  const backup = this.getStoredBackup();
681
682
  if (initStatus === enums_1.SLStatus.NOT_JOINED || action === NetworkInitAction.LEFT) {
682
683
  // no network
683
- if (backup != undefined) {
684
+ if (backup !== undefined) {
684
685
  if (this.networkOptions.panID === backup.networkOptions.panId &&
686
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
685
687
  Buffer.from(this.networkOptions.extendedPanID).equals(backup.networkOptions.extendedPanId) &&
686
688
  this.networkOptions.channelList.includes(backup.logicalChannel) &&
687
689
  configNetworkKey.equals(backup.networkOptions.networkKey)) {
@@ -690,46 +692,67 @@ class EmberAdapter extends __1.Adapter {
690
692
  }
691
693
  else {
692
694
  // config doesn't match backup
693
- logger_1.logger.info(`[INIT TC] Config does not match backup.`, NS);
695
+ logger_1.logger.info("[INIT TC] Config does not match backup.", NS);
694
696
  action = NetworkInitAction.FORM_CONFIG;
695
697
  }
696
698
  }
697
699
  else {
698
700
  // no backup
699
- logger_1.logger.info(`[INIT TC] No valid backup found.`, NS);
701
+ logger_1.logger.info("[INIT TC] No valid backup found.", NS);
700
702
  action = NetworkInitAction.FORM_CONFIG;
701
703
  }
702
704
  }
703
705
  //---- from here on, we assume everything is in place for whatever decision was taken above
704
- let result = 'resumed';
706
+ let result = "resumed";
705
707
  switch (action) {
706
708
  case NetworkInitAction.FORM_BACKUP: {
707
- logger_1.logger.info(`[INIT TC] Forming from backup.`, NS);
709
+ logger_1.logger.info("[INIT TC] Forming from backup.", NS);
708
710
  // `backup` valid in this `action` path (not detected by TS)
709
711
  /* v8 ignore start */
712
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
710
713
  const keyList = backup.devices.map((device) => ({
711
714
  deviceEui64: ZSpec.Utils.eui64BEBufferToHex(device.ieeeAddress),
715
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
712
716
  key: { contents: device.linkKey.key },
717
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
713
718
  outgoingFrameCounter: device.linkKey.txCounter,
719
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
714
720
  incomingFrameCounter: device.linkKey.rxCounter,
715
721
  }));
716
722
  /* v8 ignore stop */
717
723
  // before forming
718
724
  await this.importLinkKeys(keyList);
719
- await this.formNetwork(true /*from backup*/, backup.networkOptions.networkKey, backup.networkKeyInfo.sequenceNumber, backup.networkKeyInfo.frameCounter, backup.networkOptions.panId, Array.from(backup.networkOptions.extendedPanId), backup.logicalChannel, backup.ezsp.hashed_tclk, // valid from getStoredBackup
725
+ await this.formNetwork(true /*from backup*/,
726
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
727
+ backup.networkOptions.networkKey,
728
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
729
+ backup.networkKeyInfo.sequenceNumber,
730
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
731
+ backup.networkKeyInfo.frameCounter,
732
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
733
+ backup.networkOptions.panId,
734
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
735
+ Array.from(backup.networkOptions.extendedPanId),
736
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
737
+ backup.logicalChannel,
738
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
739
+ backup.ezsp.hashed_tclk, // valid from getStoredBackup
740
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
720
741
  backup.networkUpdateId);
721
- result = 'restored';
742
+ result = "restored";
722
743
  break;
723
744
  }
724
745
  case NetworkInitAction.FORM_CONFIG: {
725
- logger_1.logger.info(`[INIT TC] Forming from config.`, NS);
726
- await this.formNetwork(false /*from config*/, configNetworkKey, 0, 0, this.networkOptions.panID, this.networkOptions.extendedPanID, this.networkOptions.channelList[0], (0, node_crypto_1.randomBytes)(consts_2.EMBER_ENCRYPTION_KEY_SIZE), // rnd TC link key
746
+ logger_1.logger.info("[INIT TC] Forming from config.", NS);
747
+ await this.formNetwork(false /*from config*/, configNetworkKey, 0, 0, this.networkOptions.panID,
748
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
749
+ this.networkOptions.extendedPanID, this.networkOptions.channelList[0], (0, node_crypto_1.randomBytes)(consts_2.EMBER_ENCRYPTION_KEY_SIZE), // rnd TC link key
727
750
  0);
728
- result = 'reset';
751
+ result = "reset";
729
752
  break;
730
753
  }
731
754
  case NetworkInitAction.DONE: {
732
- logger_1.logger.info(`[INIT TC] Adapter network matches config.`, NS);
755
+ logger_1.logger.info("[INIT TC] Adapter network matches config.", NS);
733
756
  break;
734
757
  }
735
758
  }
@@ -748,7 +771,7 @@ class EmberAdapter extends __1.Adapter {
748
771
  // return SLStatus.OK;
749
772
  // }, logger.error, true);// no reject just log error if any, will retry next start, & prioritize so we know it'll run when expected
750
773
  // }, 300000);
751
- logger_1.logger.warning(`[INIT TC] Network key frame counter is reaching its limit. A new network key will have to be instaured soon.`, NS);
774
+ logger_1.logger.warning("[INIT TC] Network key frame counter is reaching its limit. A new network key will have to be instaured soon.", NS);
752
775
  }
753
776
  return result;
754
777
  }
@@ -808,10 +831,10 @@ class EmberAdapter extends __1.Adapter {
808
831
  if (status !== enums_1.SLStatus.OK) {
809
832
  throw new Error(`[INIT FORM] Failed form network request with status=${enums_1.SLStatus[status]}.`);
810
833
  }
811
- await this.oneWaitress.startWaitingForEvent({ eventName: oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_UP }, DEFAULT_NETWORK_REQUEST_TIMEOUT, '[INIT FORM] Form network');
834
+ await this.oneWaitress.startWaitingForEvent({ eventName: oneWaitress_1.OneWaitressEvents.STACK_STATUS_NETWORK_UP }, DEFAULT_NETWORK_REQUEST_TIMEOUT, "[INIT FORM] Form network");
812
835
  status = await this.ezsp.ezspStartWritingStackTokens();
813
836
  logger_1.logger.debug(`[INIT FORM] Start writing stack tokens status=${enums_1.SLStatus[status]}.`, NS);
814
- logger_1.logger.info(`[INIT FORM] New network formed!`, NS);
837
+ logger_1.logger.info("[INIT FORM] New network formed!", NS);
815
838
  }
816
839
  /**
817
840
  * Loads currently stored backup and returns it in internal backup model.
@@ -827,23 +850,21 @@ class EmberAdapter extends __1.Adapter {
827
850
  catch (error) {
828
851
  throw new Error(`[BACKUP] Coordinator backup is corrupted. (${error.stack})`);
829
852
  }
830
- if (data.metadata?.format === 'zigpy/open-coordinator-backup' && data.metadata?.version) {
853
+ if (data.metadata?.format === "zigpy/open-coordinator-backup" && data.metadata?.version) {
831
854
  if (data.metadata?.version !== 1) {
832
855
  throw new Error(`[BACKUP] Unsupported open coordinator backup version (version=${data.metadata?.version}).`);
833
856
  }
834
857
  if (!data.stack_specific?.ezsp || !data.metadata.internal.ezspVersion) {
835
- throw new Error(`[BACKUP] Current backup file is not for EmberZNet stack.`);
858
+ throw new Error("[BACKUP] Current backup file is not for EmberZNet stack.");
836
859
  }
837
860
  if (data.metadata.internal.ezspVersion < BACKUP_OLDEST_SUPPORTED_EZSP_VERSION) {
838
861
  (0, node_fs_1.renameSync)(this.backupPath, `${this.backupPath}.old`);
839
- logger_1.logger.warning(`[BACKUP] Current backup file is from an unsupported EZSP version. Renaming and ignoring.`, NS);
862
+ logger_1.logger.warning("[BACKUP] Current backup file is from an unsupported EZSP version. Renaming and ignoring.", NS);
840
863
  return undefined;
841
864
  }
842
865
  return utils_1.BackupUtils.fromUnifiedBackup(data);
843
866
  }
844
- else {
845
- throw new Error(`[BACKUP] Unknown backup format.`);
846
- }
867
+ throw new Error("[BACKUP] Unknown backup format.");
847
868
  }
848
869
  /**
849
870
  * Export link keys for backup.
@@ -908,7 +929,7 @@ class EmberAdapter extends __1.Adapter {
908
929
  ? await this.ezsp.ezspEraseKeyTableEntry(i)
909
930
  : await this.ezsp.ezspImportLinkKey(i, backupData[i].deviceEui64, backupData[i].key);
910
931
  if (status !== enums_1.SLStatus.OK) {
911
- throw new Error(`[BACKUP] Failed to ${i >= backupData.length ? 'erase' : 'set'} key table entry at index ${i} with status=${enums_1.SLStatus[status]}.`);
932
+ throw new Error(`[BACKUP] Failed to ${i >= backupData.length ? "erase" : "set"} key table entry at index ${i} with status=${enums_1.SLStatus[status]}.`);
912
933
  }
913
934
  }
914
935
  logger_1.logger.info(`[BACKUP] Imported ${backupData.length} keys.`, NS);
@@ -921,7 +942,7 @@ class EmberAdapter extends __1.Adapter {
921
942
  */
922
943
  async broadcastNetworkKeyUpdate() {
923
944
  return await this.queue.execute(async () => {
924
- logger_1.logger.warning(`[TRUST CENTER] Performing a network key update. This might take a while and disrupt normal operation.`, NS);
945
+ logger_1.logger.warning("[TRUST CENTER] Performing a network key update. This might take a while and disrupt normal operation.", NS);
925
946
  // zero-filled = let stack generate new random network key
926
947
  let status = await this.ezsp.ezspBroadcastNextNetworkKey({ contents: Buffer.alloc(consts_2.EMBER_ENCRYPTION_KEY_SIZE) });
927
948
  if (status !== enums_1.SLStatus.OK) {
@@ -941,9 +962,9 @@ class EmberAdapter extends __1.Adapter {
941
962
  * Received when EZSP layer alerts of a problem that needs the NCP to be reset.
942
963
  * @param status
943
964
  */
944
- async onNcpNeedsResetAndInit(status) {
965
+ onNcpNeedsResetAndInit(status) {
945
966
  logger_1.logger.error(`Adapter fatal error: ${enums_1.EzspStatus[status]}`, NS);
946
- this.emit('disconnected');
967
+ this.emit("disconnected");
947
968
  }
948
969
  //---- START Events
949
970
  //---- END Events
@@ -1049,7 +1070,7 @@ class EmberAdapter extends __1.Adapter {
1049
1070
  const [status, versionStruct] = await this.ezsp.ezspGetVersionStruct();
1050
1071
  if (status !== enums_1.SLStatus.OK) {
1051
1072
  // Should never happen with support of only EZSP v13+
1052
- throw new Error(`NCP has old-style version number. Not supported.`);
1073
+ throw new Error("NCP has old-style version number. Not supported.");
1053
1074
  }
1054
1075
  this.version = {
1055
1076
  ezsp: ncpEzspProtocolVer,
@@ -1136,12 +1157,13 @@ class EmberAdapter extends __1.Adapter {
1136
1157
  * @return uint8_t The next device request sequence number
1137
1158
  */
1138
1159
  nextZDORequestSequence() {
1139
- return (this.zdoRequestSequence = ++this.zdoRequestSequence & APPLICATION_ZDO_SEQUENCE_MASK);
1160
+ this.zdoRequestSequence = ++this.zdoRequestSequence & APPLICATION_ZDO_SEQUENCE_MASK;
1161
+ return this.zdoRequestSequence;
1140
1162
  }
1141
1163
  //---- END Ember ZDO
1142
1164
  //-- START Adapter implementation
1143
1165
  async start() {
1144
- logger_1.logger.info(`======== Ember Adapter Starting ========`, NS);
1166
+ logger_1.logger.info("======== Ember Adapter Starting ========", NS);
1145
1167
  const result = await this.initEzsp();
1146
1168
  return result;
1147
1169
  }
@@ -1149,7 +1171,7 @@ class EmberAdapter extends __1.Adapter {
1149
1171
  clearInterval(this.watchdogCountersHandle);
1150
1172
  await this.ezsp.stop();
1151
1173
  this.ezsp.removeAllListeners();
1152
- logger_1.logger.info(`======== Ember Adapter Stopped ========`, NS);
1174
+ logger_1.logger.info("======== Ember Adapter Stopped ========", NS);
1153
1175
  }
1154
1176
  async getCoordinatorIEEE() {
1155
1177
  return await this.queue.execute(async () => {
@@ -1159,21 +1181,21 @@ class EmberAdapter extends __1.Adapter {
1159
1181
  });
1160
1182
  }
1161
1183
  async getCoordinatorVersion() {
1162
- return { type: `EmberZNet`, meta: this.version };
1184
+ return await Promise.resolve({ type: "EmberZNet", meta: this.version });
1163
1185
  }
1164
1186
  // queued
1165
1187
  async reset(type) {
1166
- throw new Error(`Not supported '${type}'.`);
1167
1188
  // NOTE: although this function is legacy atm, a couple of new untested EZSP functions that could also prove useful:
1168
1189
  // this.ezsp.ezspTokenFactoryReset(true/*excludeOutgoingFC*/, true/*excludeBootCounter*/);
1169
1190
  // this.ezsp.ezspResetNode()
1191
+ /* v8 ignore next */ // weird coverage bug
1192
+ await Promise.reject(new Error(`Not supported '${type}'.`));
1170
1193
  }
1171
1194
  async supportsBackup() {
1172
- return true;
1195
+ return await Promise.resolve(true);
1173
1196
  }
1174
1197
  // queued
1175
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1176
- async backup(ieeeAddressesInDatabase) {
1198
+ async backup(_ieeeAddressesInDatabase) {
1177
1199
  return await this.queue.execute(async () => {
1178
1200
  // grab fresh version here, bypass cache
1179
1201
  const [netStatus, , netParams] = await this.ezsp.ezspGetNetworkParameters();
@@ -1188,7 +1210,7 @@ class EmberAdapter extends __1.Adapter {
1188
1210
  throw new Error(`[BACKUP] Failed to get network keys info with status=${enums_1.SLStatus[netKeyStatus]}.`);
1189
1211
  }
1190
1212
  if (!netKeyInfo.networkKeySet) {
1191
- throw new Error(`[BACKUP] No network key set.`);
1213
+ throw new Error("[BACKUP] No network key set.");
1192
1214
  }
1193
1215
  /* v8 ignore next */
1194
1216
  const keyList = ALLOW_APP_KEY_REQUESTS ? await this.exportLinkKeys() : [];
@@ -1228,12 +1250,12 @@ class EmberAdapter extends __1.Adapter {
1228
1250
  // },
1229
1251
  securityLevel: consts_1.SECURITY_LEVEL_Z3,
1230
1252
  networkUpdateId: netParams.nwkUpdateId,
1231
- coordinatorIeeeAddress: Buffer.from(this.networkCache.eui64.substring(2) /*take out 0x*/, 'hex').reverse(),
1253
+ coordinatorIeeeAddress: Buffer.from(this.networkCache.eui64.substring(2) /*take out 0x*/, "hex").reverse(),
1232
1254
  devices: keyList.map(
1233
1255
  /* v8 ignore start */
1234
1256
  (key) => ({
1235
1257
  networkAddress: null, // not used for restore, no reason to make NCP calls for nothing
1236
- ieeeAddress: Buffer.from(key.deviceEui64.substring(2) /*take out 0x*/, 'hex').reverse(),
1258
+ ieeeAddress: Buffer.from(key.deviceEui64.substring(2) /*take out 0x*/, "hex").reverse(),
1237
1259
  isDirectChild: false, // not used
1238
1260
  linkKey: {
1239
1261
  key: key.key.contents,
@@ -1273,7 +1295,7 @@ class EmberAdapter extends __1.Adapter {
1273
1295
  // Add the key to the transient key table.
1274
1296
  // This will be used while the DUT joins.
1275
1297
  const impStatus = await this.ezsp.ezspImportTransientKey(ieeeAddress, { contents: hashed ? key : ZSpec.Utils.aes128MmoHash(key) });
1276
- if (impStatus == enums_1.SLStatus.OK) {
1298
+ if (impStatus === enums_1.SLStatus.OK) {
1277
1299
  logger_1.logger.debug(`[ADD INSTALL CODE] Success for '${ieeeAddress}'.`, NS);
1278
1300
  }
1279
1301
  else {
@@ -1282,7 +1304,7 @@ class EmberAdapter extends __1.Adapter {
1282
1304
  });
1283
1305
  }
1284
1306
  /** WARNING: Adapter impl. Starts timer immediately upon returning */
1285
- waitFor(networkAddress, endpoint, frameType, direction, transactionSequenceNumber, clusterID, commandIdentifier, timeout) {
1307
+ waitFor(networkAddress, endpoint, _frameType, _direction, transactionSequenceNumber, clusterID, commandIdentifier, timeout) {
1286
1308
  const sourceEndpointInfo = endpoints_1.FIXED_ENDPOINTS[0];
1287
1309
  const waiter = this.oneWaitress.waitFor({
1288
1310
  target: networkAddress,
@@ -1321,7 +1343,7 @@ class EmberAdapter extends __1.Adapter {
1321
1343
  let status;
1322
1344
  let apsSequence;
1323
1345
  if (ZSpec.Utils.isBroadcastAddress(networkAddress)) {
1324
- logger_1.logger.debug(() => `~~~> [ZDO ${clusterName} BROADCAST to=${networkAddress} messageTag=${messageTag} payload=${payload.toString('hex')}]`, NS);
1346
+ logger_1.logger.debug(() => `~~~> [ZDO ${clusterName} BROADCAST to=${networkAddress} messageTag=${messageTag} payload=${payload.toString("hex")}]`, NS);
1325
1347
  [status, apsSequence] = await this.ezsp.ezspSendBroadcast(ZSpec.NULL_NODE_ID, // alias
1326
1348
  networkAddress, 0, // nwkSequence
1327
1349
  apsFrame, ZDO_REQUEST_RADIUS, messageTag, payload);
@@ -1332,7 +1354,7 @@ class EmberAdapter extends __1.Adapter {
1332
1354
  }
1333
1355
  }
1334
1356
  else {
1335
- logger_1.logger.debug(() => `~~~> [ZDO ${clusterName} UNICAST to=${ieeeAddress}:${networkAddress} messageTag=${messageTag} payload=${payload.toString('hex')}]`, NS);
1357
+ logger_1.logger.debug(() => `~~~> [ZDO ${clusterName} UNICAST to=${ieeeAddress}:${networkAddress} messageTag=${messageTag} payload=${payload.toString("hex")}]`, NS);
1336
1358
  [status, apsSequence] = await this.ezsp.ezspSendUnicast(enums_1.EmberOutgoingMessageType.DIRECT, networkAddress, apsFrame, messageTag, payload);
1337
1359
  apsFrame.sequence = apsSequence;
1338
1360
  logger_1.logger.debug(`~~~> [SENT ZDO UNICAST messageTag=${messageTag} apsSequence=${apsSequence} status=${enums_1.SLStatus[status]}]`, NS);
@@ -1463,10 +1485,10 @@ class EmberAdapter extends __1.Adapter {
1463
1485
  if (status === enums_1.SLStatus.OK) {
1464
1486
  break;
1465
1487
  }
1466
- else if (disableRecovery || i == QUEUE_MAX_SEND_ATTEMPTS) {
1488
+ if (disableRecovery || i === QUEUE_MAX_SEND_ATTEMPTS) {
1467
1489
  throw new Error(`~x~> [ZCL to=${ieeeAddr}:${networkAddress} apsFrame=${JSON.stringify(apsFrame)}] Failed to send request with status=${enums_1.SLStatus[status]}.`);
1468
1490
  }
1469
- else if (status === enums_1.SLStatus.ZIGBEE_MAX_MESSAGE_LIMIT_REACHED || status === enums_1.SLStatus.BUSY) {
1491
+ if (status === enums_1.SLStatus.ZIGBEE_MAX_MESSAGE_LIMIT_REACHED || status === enums_1.SLStatus.BUSY) {
1470
1492
  await (0, utils_1.wait)(QUEUE_BUSY_DEFER_MSEC);
1471
1493
  }
1472
1494
  else if (status === enums_1.SLStatus.NETWORK_DOWN) {
@@ -1505,8 +1527,7 @@ class EmberAdapter extends __1.Adapter {
1505
1527
  return await this.queue.execute(async () => {
1506
1528
  this.checkInterpanLock();
1507
1529
  logger_1.logger.debug(() => `~~~> [ZCL GROUP apsFrame=${JSON.stringify(apsFrame)} header=${JSON.stringify(zclFrame.header)}]`, NS);
1508
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1509
- const [status, messageTag] = await this.ezsp.send(enums_1.EmberOutgoingMessageType.MULTICAST, groupID, // not used with MULTICAST
1530
+ const [status] = await this.ezsp.send(enums_1.EmberOutgoingMessageType.MULTICAST, groupID, // not used with MULTICAST
1510
1531
  apsFrame, data, 0, // alias
1511
1532
  0);
1512
1533
  if (status !== enums_1.SLStatus.OK) {
@@ -1532,8 +1553,7 @@ class EmberAdapter extends __1.Adapter {
1532
1553
  return await this.queue.execute(async () => {
1533
1554
  this.checkInterpanLock();
1534
1555
  logger_1.logger.debug(() => `~~~> [ZCL BROADCAST apsFrame=${JSON.stringify(apsFrame)} header=${JSON.stringify(zclFrame.header)}]`, NS);
1535
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1536
- const [status, messageTag] = await this.ezsp.send(enums_1.EmberOutgoingMessageType.BROADCAST, destination, apsFrame, data, 0, // alias
1556
+ const [status] = await this.ezsp.send(enums_1.EmberOutgoingMessageType.BROADCAST, destination, apsFrame, data, 0, // alias
1537
1557
  0);
1538
1558
  if (status !== enums_1.SLStatus.OK) {
1539
1559
  throw new Error(`~x~> [ZCL BROADCAST destination=${destination}] Failed to send with status=${enums_1.SLStatus[status]}.`);
@@ -1644,7 +1664,7 @@ class EmberAdapter extends __1.Adapter {
1644
1664
  //-- END Adapter implementation
1645
1665
  checkInterpanLock() {
1646
1666
  if (this.interpanLock) {
1647
- throw new Error(`[INTERPAN MODE] Cannot execute non-InterPAN commands.`);
1667
+ throw new Error("[INTERPAN MODE] Cannot execute non-InterPAN commands.");
1648
1668
  }
1649
1669
  }
1650
1670
  }