@willieee802/zigbee-herdsman 0.48.2 → 0.49.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 (1025) hide show
  1. package/.github/ISSUE_TEMPLATE/config.yml +5 -0
  2. package/.github/copilot-instructions.md +689 -0
  3. package/.github/dependabot.yml +22 -0
  4. package/.github/prompts/copilot-instructions-blueprint-generator.prompt.md +294 -0
  5. package/.github/prompts/create-agentsmd.prompt.md +249 -0
  6. package/.github/prompts/create-specification.prompt.md +127 -0
  7. package/.github/prompts/review-and-refactor.prompt.md +15 -0
  8. package/.github/prompts/update-specification.prompt.md +127 -0
  9. package/.github/workflows/ci.yml +70 -0
  10. package/.github/workflows/release-please.yml +18 -0
  11. package/.github/workflows/stale.yml +20 -0
  12. package/.github/workflows/typedoc.yaml +47 -0
  13. package/.release-please-manifest.json +2 -2
  14. package/.vscode/extensions.json +3 -0
  15. package/.vscode/settings.json +11 -0
  16. package/AGENTS.md +441 -0
  17. package/CHANGELOG.md +1245 -0
  18. package/README.md +2 -2
  19. package/biome.json +103 -0
  20. package/examples/join-and-log.js +18 -18
  21. package/package.json +83 -70
  22. package/release-please-config.json +8 -8
  23. package/scripts/check-clusters-changes.ts +328 -0
  24. package/scripts/clusters-changes.log +584 -0
  25. package/scripts/clusters-typegen.ts +608 -0
  26. package/scripts/utils.ts +88 -0
  27. package/scripts/zap-update-clusters-report.json +303 -0
  28. package/scripts/zap-update-clusters.ts +1520 -0
  29. package/scripts/zap-update-types.ts +707 -0
  30. package/scripts/zap-xml-clusters-overrides-data.ts +52 -0
  31. package/scripts/zap-xml-clusters-overrides.ts +400 -0
  32. package/scripts/zap-xml-types.ts +146 -0
  33. package/src/adapter/adapter.ts +210 -0
  34. package/src/adapter/adapterDiscovery.ts +736 -0
  35. package/src/adapter/const.ts +12 -0
  36. package/src/adapter/deconz/adapter/deconzAdapter.ts +888 -0
  37. package/src/adapter/deconz/driver/constants.ts +246 -0
  38. package/src/adapter/deconz/driver/driver.ts +1528 -0
  39. package/src/adapter/deconz/driver/frame.ts +11 -0
  40. package/src/adapter/deconz/driver/frameParser.ts +766 -0
  41. package/src/adapter/deconz/driver/parser.ts +45 -0
  42. package/src/adapter/deconz/driver/writer.ts +22 -0
  43. package/src/adapter/deconz/types.d.ts +13 -0
  44. package/src/adapter/ember/adapter/emberAdapter.ts +2262 -0
  45. package/src/adapter/ember/adapter/endpoints.ts +86 -0
  46. package/src/adapter/ember/adapter/oneWaitress.ts +324 -0
  47. package/src/adapter/ember/adapter/tokensManager.ts +780 -0
  48. package/src/adapter/ember/consts.ts +178 -0
  49. package/src/adapter/ember/enums.ts +1746 -0
  50. package/src/adapter/ember/ezsp/buffalo.ts +1392 -0
  51. package/src/adapter/ember/ezsp/consts.ts +148 -0
  52. package/src/adapter/ember/ezsp/enums.ts +1114 -0
  53. package/src/adapter/ember/ezsp/ezsp.ts +9073 -0
  54. package/src/adapter/ember/ezspError.ts +10 -0
  55. package/src/adapter/ember/types.ts +866 -0
  56. package/src/adapter/ember/uart/ash.ts +1933 -0
  57. package/src/adapter/ember/uart/consts.ts +109 -0
  58. package/src/adapter/ember/uart/enums.ts +192 -0
  59. package/src/adapter/ember/uart/parser.ts +42 -0
  60. package/src/adapter/ember/uart/queues.ts +247 -0
  61. package/src/adapter/ember/uart/writer.ts +50 -0
  62. package/src/adapter/ember/utils/initters.ts +58 -0
  63. package/src/adapter/ember/utils/math.ts +71 -0
  64. package/src/adapter/events.ts +21 -0
  65. package/src/adapter/ezsp/adapter/backup.ts +100 -0
  66. package/src/adapter/ezsp/adapter/ezspAdapter.ts +632 -0
  67. package/src/adapter/ezsp/driver/commands.ts +2497 -0
  68. package/src/adapter/ezsp/driver/consts.ts +11 -0
  69. package/src/adapter/ezsp/driver/driver.ts +1002 -0
  70. package/src/adapter/ezsp/driver/ezsp.ts +802 -0
  71. package/src/adapter/ezsp/driver/frame.ts +101 -0
  72. package/src/adapter/ezsp/driver/index.ts +4 -0
  73. package/src/adapter/ezsp/driver/multicast.ts +78 -0
  74. package/src/adapter/ezsp/driver/parser.ts +81 -0
  75. package/src/adapter/ezsp/driver/types/basic.ts +201 -0
  76. package/src/adapter/ezsp/driver/types/index.ts +239 -0
  77. package/src/adapter/ezsp/driver/types/named.ts +2330 -0
  78. package/src/adapter/ezsp/driver/types/struct.ts +844 -0
  79. package/src/adapter/ezsp/driver/uart.ts +460 -0
  80. package/src/adapter/ezsp/driver/utils/crc16ccitt.ts +44 -0
  81. package/src/adapter/ezsp/driver/utils/index.ts +32 -0
  82. package/src/adapter/ezsp/driver/writer.ts +64 -0
  83. package/src/adapter/index.ts +3 -0
  84. package/src/adapter/serialPort.ts +58 -0
  85. package/src/adapter/tstype.ts +57 -0
  86. package/src/adapter/utils.ts +41 -0
  87. package/src/adapter/z-stack/adapter/adapter-backup.ts +509 -0
  88. package/src/adapter/z-stack/adapter/adapter-nv-memory.ts +457 -0
  89. package/src/adapter/z-stack/adapter/endpoints.ts +60 -0
  90. package/src/adapter/z-stack/adapter/manager.ts +543 -0
  91. package/src/adapter/z-stack/adapter/tstype.ts +6 -0
  92. package/src/adapter/z-stack/adapter/zStackAdapter.ts +1350 -0
  93. package/src/adapter/z-stack/constants/af.ts +27 -0
  94. package/src/adapter/z-stack/constants/common.ts +285 -0
  95. package/src/adapter/z-stack/constants/dbg.ts +23 -0
  96. package/src/adapter/z-stack/constants/index.ts +11 -0
  97. package/src/adapter/z-stack/constants/mac.ts +128 -0
  98. package/src/adapter/z-stack/constants/sapi.ts +25 -0
  99. package/src/adapter/z-stack/constants/sys.ts +72 -0
  100. package/src/adapter/z-stack/constants/util.ts +82 -0
  101. package/src/adapter/z-stack/constants/utils.ts +14 -0
  102. package/src/adapter/z-stack/constants/zdo.ts +103 -0
  103. package/src/adapter/z-stack/models/startup-options.ts +13 -0
  104. package/src/adapter/z-stack/structs/entries/address-manager-entry.ts +44 -0
  105. package/src/adapter/z-stack/structs/entries/address-manager-table.ts +19 -0
  106. package/src/adapter/z-stack/structs/entries/aps-link-key-data-entry.ts +12 -0
  107. package/src/adapter/z-stack/structs/entries/aps-link-key-data-table.ts +21 -0
  108. package/src/adapter/z-stack/structs/entries/aps-tc-link-key-entry.ts +19 -0
  109. package/src/adapter/z-stack/structs/entries/aps-tc-link-key-table.ts +21 -0
  110. package/src/adapter/z-stack/structs/entries/channel-list.ts +8 -0
  111. package/src/adapter/z-stack/structs/entries/has-configured.ts +16 -0
  112. package/src/adapter/z-stack/structs/entries/index.ts +16 -0
  113. package/src/adapter/z-stack/structs/entries/nib.ts +66 -0
  114. package/src/adapter/z-stack/structs/entries/nwk-key-descriptor.ts +15 -0
  115. package/src/adapter/z-stack/structs/entries/nwk-key.ts +13 -0
  116. package/src/adapter/z-stack/structs/entries/nwk-pan-id.ts +8 -0
  117. package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.ts +20 -0
  118. package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.ts +19 -0
  119. package/src/adapter/z-stack/structs/entries/security-manager-entry.ts +33 -0
  120. package/src/adapter/z-stack/structs/entries/security-manager-table.ts +22 -0
  121. package/src/adapter/z-stack/structs/index.ts +4 -0
  122. package/src/adapter/z-stack/structs/serializable-memory-object.ts +14 -0
  123. package/src/adapter/z-stack/structs/struct.ts +367 -0
  124. package/src/adapter/z-stack/structs/table.ts +198 -0
  125. package/src/adapter/z-stack/unpi/constants.ts +33 -0
  126. package/src/adapter/z-stack/unpi/frame.ts +62 -0
  127. package/src/adapter/z-stack/unpi/index.ts +4 -0
  128. package/src/adapter/z-stack/unpi/parser.ts +67 -0
  129. package/src/adapter/z-stack/unpi/writer.ts +37 -0
  130. package/src/adapter/z-stack/utils/channel-list.ts +40 -0
  131. package/src/adapter/z-stack/utils/index.ts +2 -0
  132. package/src/adapter/z-stack/utils/network-options.ts +26 -0
  133. package/src/adapter/z-stack/znp/buffaloZnp.ts +175 -0
  134. package/src/adapter/z-stack/znp/definition.ts +2713 -0
  135. package/src/adapter/z-stack/znp/index.ts +2 -0
  136. package/src/adapter/z-stack/znp/parameterType.ts +22 -0
  137. package/src/adapter/z-stack/znp/tstype.ts +44 -0
  138. package/src/adapter/z-stack/znp/utils.ts +10 -0
  139. package/src/adapter/z-stack/znp/znp.ts +345 -0
  140. package/src/adapter/z-stack/znp/zpiObject.ts +148 -0
  141. package/src/adapter/zboss/adapter/zbossAdapter.ts +535 -0
  142. package/src/adapter/zboss/commands.ts +1184 -0
  143. package/src/adapter/zboss/consts.ts +9 -0
  144. package/src/adapter/zboss/driver.ts +422 -0
  145. package/src/adapter/zboss/enums.ts +360 -0
  146. package/src/adapter/zboss/frame.ts +227 -0
  147. package/src/adapter/zboss/reader.ts +65 -0
  148. package/src/adapter/zboss/types.ts +0 -0
  149. package/src/adapter/zboss/uart.ts +428 -0
  150. package/src/adapter/zboss/utils.ts +58 -0
  151. package/src/adapter/zboss/writer.ts +49 -0
  152. package/src/adapter/zigate/adapter/patchZdoBuffaloBE.ts +25 -0
  153. package/src/adapter/zigate/adapter/zigateAdapter.ts +633 -0
  154. package/src/adapter/zigate/driver/LICENSE +17 -0
  155. package/src/adapter/zigate/driver/buffaloZiGate.ts +210 -0
  156. package/src/adapter/zigate/driver/commandType.ts +418 -0
  157. package/src/adapter/zigate/driver/constants.ts +150 -0
  158. package/src/adapter/zigate/driver/frame.ts +197 -0
  159. package/src/adapter/zigate/driver/messageType.ts +287 -0
  160. package/src/adapter/zigate/driver/parameterType.ts +32 -0
  161. package/src/adapter/zigate/driver/ziGateObject.ts +146 -0
  162. package/src/adapter/zigate/driver/zigate.ts +422 -0
  163. package/src/adapter/zoh/adapter/utils.ts +27 -0
  164. package/src/adapter/zoh/adapter/zohAdapter.ts +931 -0
  165. package/src/buffalo/buffalo.ts +336 -0
  166. package/src/buffalo/index.ts +1 -0
  167. package/src/controller/controller.ts +1159 -0
  168. package/src/controller/database.ts +148 -0
  169. package/src/controller/events.ts +52 -0
  170. package/src/controller/greenPower.ts +613 -0
  171. package/src/controller/helpers/index.ts +1 -0
  172. package/src/controller/helpers/installCodes.ts +107 -0
  173. package/src/controller/helpers/ota.ts +575 -0
  174. package/src/controller/helpers/request.ts +96 -0
  175. package/src/controller/helpers/requestQueue.ts +126 -0
  176. package/src/controller/helpers/zclFrameConverter.ts +64 -0
  177. package/src/controller/helpers/zclTransactionSequenceNumber.ts +15 -0
  178. package/src/controller/index.ts +6 -0
  179. package/src/controller/model/device.ts +1791 -0
  180. package/src/controller/model/endpoint.ts +1235 -0
  181. package/src/controller/model/entity.ts +43 -0
  182. package/src/controller/model/group.ts +446 -0
  183. package/src/controller/model/index.ts +5 -0
  184. package/src/controller/model/konnextConfig.ts +6 -0
  185. package/src/controller/model/zigbeeEntity.ts +30 -0
  186. package/src/controller/touchlink.ts +195 -0
  187. package/src/controller/tstype.ts +374 -0
  188. package/src/index.ts +14 -0
  189. package/src/models/backup-storage-legacy.ts +48 -0
  190. package/src/models/backup-storage-unified.ts +47 -0
  191. package/src/models/backup.ts +37 -0
  192. package/src/models/index.ts +5 -0
  193. package/src/models/network-options.ts +11 -0
  194. package/src/utils/aes.ts +218 -0
  195. package/src/utils/async-mutex.ts +31 -0
  196. package/src/utils/backup.ts +152 -0
  197. package/src/utils/index.ts +5 -0
  198. package/src/utils/logger.ts +20 -0
  199. package/src/utils/patchBigIntSerialization.ts +8 -0
  200. package/src/utils/queue.ts +79 -0
  201. package/src/utils/timeService.ts +139 -0
  202. package/src/utils/utils.ts +19 -0
  203. package/src/utils/wait.ts +5 -0
  204. package/src/utils/waitress.ts +96 -0
  205. package/src/zspec/consts.ts +89 -0
  206. package/src/zspec/enums.ts +22 -0
  207. package/src/zspec/index.ts +3 -0
  208. package/src/zspec/tstypes.ts +18 -0
  209. package/src/zspec/utils.ts +247 -0
  210. package/src/zspec/zcl/buffaloZcl.ts +1073 -0
  211. package/src/zspec/zcl/definition/cluster.ts +7845 -0
  212. package/src/zspec/zcl/definition/clusters-types.ts +8577 -0
  213. package/src/zspec/zcl/definition/consts.ts +24 -0
  214. package/src/zspec/zcl/definition/datatypes.ts +2454 -0
  215. package/src/zspec/zcl/definition/enums.ts +224 -0
  216. package/src/zspec/zcl/definition/foundation.ts +342 -0
  217. package/src/zspec/zcl/definition/manufacturerCode.ts +730 -0
  218. package/src/zspec/zcl/definition/status.ts +69 -0
  219. package/src/zspec/zcl/definition/tstype.ts +446 -0
  220. package/src/zspec/zcl/index.ts +11 -0
  221. package/src/zspec/zcl/utils.ts +521 -0
  222. package/src/zspec/zcl/zclFrame.ts +383 -0
  223. package/src/zspec/zcl/zclHeader.ts +102 -0
  224. package/src/zspec/zcl/zclStatusError.ts +10 -0
  225. package/src/zspec/zdo/buffaloZdo.ts +2336 -0
  226. package/src/zspec/zdo/definition/clusters.ts +722 -0
  227. package/src/zspec/zdo/definition/consts.ts +16 -0
  228. package/src/zspec/zdo/definition/enums.ts +99 -0
  229. package/src/zspec/zdo/definition/status.ts +105 -0
  230. package/src/zspec/zdo/definition/tstypes.ts +1062 -0
  231. package/src/zspec/zdo/index.ts +7 -0
  232. package/src/zspec/zdo/utils.ts +76 -0
  233. package/src/zspec/zdo/zdoStatusError.ts +10 -0
  234. package/test/adapter/adapter.test.ts +1276 -0
  235. package/test/adapter/ember/ash.test.ts +337 -0
  236. package/test/adapter/ember/consts.ts +131 -0
  237. package/test/adapter/ember/emberAdapter.test.ts +3447 -0
  238. package/test/adapter/ember/ezsp.test.ts +389 -0
  239. package/test/adapter/ember/ezspBuffalo.test.ts +93 -0
  240. package/test/adapter/ember/ezspError.test.ts +12 -0
  241. package/test/adapter/ember/math.test.ts +190 -0
  242. package/test/adapter/ezsp/frame.test.ts +30 -0
  243. package/test/adapter/ezsp/uart.test.ts +181 -0
  244. package/test/adapter/z-stack/adapter.test.ts +4260 -0
  245. package/test/adapter/z-stack/constants.test.ts +33 -0
  246. package/test/adapter/z-stack/structs.test.ts +115 -0
  247. package/test/adapter/z-stack/unpi.test.ts +213 -0
  248. package/test/adapter/z-stack/znp.test.ts +1288 -0
  249. package/test/adapter/zboss/fixZdoResponse.test.ts +179 -0
  250. package/test/adapter/zigate/patchZdoBuffaloBE.test.ts +81 -0
  251. package/test/adapter/zigate/zdo.test.ts +187 -0
  252. package/test/adapter/zoh/utils.test.ts +36 -0
  253. package/test/adapter/zoh/zohAdapter.test.ts +1451 -0
  254. package/test/benchOptions.ts +14 -0
  255. package/test/buffalo.test.ts +431 -0
  256. package/test/controller.bench.ts +215 -0
  257. package/test/controller.test.ts +10030 -0
  258. package/test/data/integrity-code-1166-012B-24031511-upgradeMe-RB 249 T.zigbee +0 -0
  259. package/test/data/manuf-tags-tradfri-cv-cct-unified_release_prod_v587757105_33e34452-9267-4665-bc5a-844c8f61f063.ota +0 -0
  260. package/test/data/padded-tretakt_smart_plug_soc-0x1100-2.4.25-prod.ota.ota.signed +0 -0
  261. package/test/data/telink-aes-A60_RGBW_T-0x00B6-0x03483712-MF_DIS.OTA +0 -0
  262. package/test/data/zbminir2_v1.0.8.ota +0 -0
  263. package/test/device-ota.test.ts +3332 -0
  264. package/test/greenpower.test.ts +1409 -0
  265. package/test/mockAdapters.ts +95 -0
  266. package/test/mockDevices.ts +623 -0
  267. package/test/requests.bench.ts +321 -0
  268. package/test/testUtils.ts +20 -0
  269. package/test/timeService.test.ts +214 -0
  270. package/test/tsconfig.json +9 -0
  271. package/test/utils/math.ts +19 -0
  272. package/test/utils.test.ts +352 -0
  273. package/test/vitest.config.mts +28 -0
  274. package/test/vitest.ts +9 -0
  275. package/test/zcl.test.ts +2858 -0
  276. package/test/zspec/utils.test.ts +68 -0
  277. package/test/zspec/zcl/buffalo.test.ts +1316 -0
  278. package/test/zspec/zcl/frame.test.ts +1056 -0
  279. package/test/zspec/zcl/utils.test.ts +650 -0
  280. package/test/zspec/zdo/buffalo.test.ts +1850 -0
  281. package/test/zspec/zdo/utils.test.ts +241 -0
  282. package/tsconfig.json +8 -10
  283. package/.babelrc.js +0 -6
  284. package/.eslintignore +0 -3
  285. package/dist/adapter/adapter.d.ts +0 -64
  286. package/dist/adapter/adapter.d.ts.map +0 -1
  287. package/dist/adapter/adapter.js +0 -157
  288. package/dist/adapter/adapter.js.map +0 -1
  289. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +0 -71
  290. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +0 -1
  291. package/dist/adapter/deconz/adapter/deconzAdapter.js +0 -1072
  292. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +0 -1
  293. package/dist/adapter/deconz/adapter/index.d.ts +0 -3
  294. package/dist/adapter/deconz/adapter/index.d.ts.map +0 -1
  295. package/dist/adapter/deconz/adapter/index.js +0 -11
  296. package/dist/adapter/deconz/adapter/index.js.map +0 -1
  297. package/dist/adapter/deconz/driver/constants.d.ts +0 -105
  298. package/dist/adapter/deconz/driver/constants.d.ts.map +0 -1
  299. package/dist/adapter/deconz/driver/constants.js +0 -56
  300. package/dist/adapter/deconz/driver/constants.js.map +0 -1
  301. package/dist/adapter/deconz/driver/driver.d.ts +0 -82
  302. package/dist/adapter/deconz/driver/driver.d.ts.map +0 -1
  303. package/dist/adapter/deconz/driver/driver.js +0 -751
  304. package/dist/adapter/deconz/driver/driver.js.map +0 -1
  305. package/dist/adapter/deconz/driver/frame.d.ts +0 -7
  306. package/dist/adapter/deconz/driver/frame.d.ts.map +0 -1
  307. package/dist/adapter/deconz/driver/frame.js +0 -14
  308. package/dist/adapter/deconz/driver/frame.js.map +0 -1
  309. package/dist/adapter/deconz/driver/frameParser.d.ts +0 -3
  310. package/dist/adapter/deconz/driver/frameParser.d.ts.map +0 -1
  311. package/dist/adapter/deconz/driver/frameParser.js +0 -444
  312. package/dist/adapter/deconz/driver/frameParser.js.map +0 -1
  313. package/dist/adapter/deconz/driver/parser.d.ts +0 -13
  314. package/dist/adapter/deconz/driver/parser.d.ts.map +0 -1
  315. package/dist/adapter/deconz/driver/parser.js +0 -64
  316. package/dist/adapter/deconz/driver/parser.js.map +0 -1
  317. package/dist/adapter/deconz/driver/writer.d.ts +0 -9
  318. package/dist/adapter/deconz/driver/writer.d.ts.map +0 -1
  319. package/dist/adapter/deconz/driver/writer.js +0 -45
  320. package/dist/adapter/deconz/driver/writer.js.map +0 -1
  321. package/dist/adapter/ember/adapter/emberAdapter.d.ts +0 -806
  322. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +0 -1
  323. package/dist/adapter/ember/adapter/emberAdapter.js +0 -2942
  324. package/dist/adapter/ember/adapter/emberAdapter.js.map +0 -1
  325. package/dist/adapter/ember/adapter/endpoints.d.ts +0 -27
  326. package/dist/adapter/ember/adapter/endpoints.d.ts.map +0 -1
  327. package/dist/adapter/ember/adapter/endpoints.js +0 -68
  328. package/dist/adapter/ember/adapter/endpoints.js.map +0 -1
  329. package/dist/adapter/ember/adapter/index.d.ts +0 -3
  330. package/dist/adapter/ember/adapter/index.d.ts.map +0 -1
  331. package/dist/adapter/ember/adapter/index.js +0 -6
  332. package/dist/adapter/ember/adapter/index.js.map +0 -1
  333. package/dist/adapter/ember/adapter/oneWaitress.d.ts +0 -108
  334. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +0 -1
  335. package/dist/adapter/ember/adapter/oneWaitress.js +0 -241
  336. package/dist/adapter/ember/adapter/oneWaitress.js.map +0 -1
  337. package/dist/adapter/ember/adapter/requestQueue.d.ts +0 -57
  338. package/dist/adapter/ember/adapter/requestQueue.d.ts.map +0 -1
  339. package/dist/adapter/ember/adapter/requestQueue.js +0 -139
  340. package/dist/adapter/ember/adapter/requestQueue.js.map +0 -1
  341. package/dist/adapter/ember/adapter/tokensManager.d.ts +0 -69
  342. package/dist/adapter/ember/adapter/tokensManager.d.ts.map +0 -1
  343. package/dist/adapter/ember/adapter/tokensManager.js +0 -688
  344. package/dist/adapter/ember/adapter/tokensManager.js.map +0 -1
  345. package/dist/adapter/ember/consts.d.ts +0 -191
  346. package/dist/adapter/ember/consts.d.ts.map +0 -1
  347. package/dist/adapter/ember/consts.js +0 -246
  348. package/dist/adapter/ember/consts.js.map +0 -1
  349. package/dist/adapter/ember/enums.d.ts +0 -2172
  350. package/dist/adapter/ember/enums.d.ts.map +0 -1
  351. package/dist/adapter/ember/enums.js +0 -2375
  352. package/dist/adapter/ember/enums.js.map +0 -1
  353. package/dist/adapter/ember/ezsp/buffalo.d.ts +0 -156
  354. package/dist/adapter/ember/ezsp/buffalo.d.ts.map +0 -1
  355. package/dist/adapter/ember/ezsp/buffalo.js +0 -1033
  356. package/dist/adapter/ember/ezsp/buffalo.js.map +0 -1
  357. package/dist/adapter/ember/ezsp/consts.d.ts +0 -116
  358. package/dist/adapter/ember/ezsp/consts.d.ts.map +0 -1
  359. package/dist/adapter/ember/ezsp/consts.js +0 -128
  360. package/dist/adapter/ember/ezsp/consts.js.map +0 -1
  361. package/dist/adapter/ember/ezsp/enums.d.ts +0 -879
  362. package/dist/adapter/ember/ezsp/enums.d.ts.map +0 -1
  363. package/dist/adapter/ember/ezsp/enums.js +0 -948
  364. package/dist/adapter/ember/ezsp/enums.js.map +0 -1
  365. package/dist/adapter/ember/ezsp/ezsp.d.ts +0 -2662
  366. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +0 -1
  367. package/dist/adapter/ember/ezsp/ezsp.js +0 -6454
  368. package/dist/adapter/ember/ezsp/ezsp.js.map +0 -1
  369. package/dist/adapter/ember/types.d.ts +0 -733
  370. package/dist/adapter/ember/types.d.ts.map +0 -1
  371. package/dist/adapter/ember/types.js +0 -3
  372. package/dist/adapter/ember/types.js.map +0 -1
  373. package/dist/adapter/ember/uart/ash.d.ts +0 -464
  374. package/dist/adapter/ember/uart/ash.d.ts.map +0 -1
  375. package/dist/adapter/ember/uart/ash.js +0 -1633
  376. package/dist/adapter/ember/uart/ash.js.map +0 -1
  377. package/dist/adapter/ember/uart/consts.d.ts +0 -91
  378. package/dist/adapter/ember/uart/consts.d.ts.map +0 -1
  379. package/dist/adapter/ember/uart/consts.js +0 -100
  380. package/dist/adapter/ember/uart/consts.js.map +0 -1
  381. package/dist/adapter/ember/uart/enums.d.ts +0 -191
  382. package/dist/adapter/ember/uart/enums.d.ts.map +0 -1
  383. package/dist/adapter/ember/uart/enums.js +0 -197
  384. package/dist/adapter/ember/uart/enums.js.map +0 -1
  385. package/dist/adapter/ember/uart/parser.d.ts +0 -10
  386. package/dist/adapter/ember/uart/parser.d.ts.map +0 -1
  387. package/dist/adapter/ember/uart/parser.js +0 -37
  388. package/dist/adapter/ember/uart/parser.js.map +0 -1
  389. package/dist/adapter/ember/uart/queues.d.ts +0 -85
  390. package/dist/adapter/ember/uart/queues.d.ts.map +0 -1
  391. package/dist/adapter/ember/uart/queues.js +0 -214
  392. package/dist/adapter/ember/uart/queues.js.map +0 -1
  393. package/dist/adapter/ember/uart/writer.d.ts +0 -15
  394. package/dist/adapter/ember/uart/writer.d.ts.map +0 -1
  395. package/dist/adapter/ember/uart/writer.js +0 -46
  396. package/dist/adapter/ember/uart/writer.js.map +0 -1
  397. package/dist/adapter/ember/utils/initters.d.ts +0 -20
  398. package/dist/adapter/ember/utils/initters.d.ts.map +0 -1
  399. package/dist/adapter/ember/utils/initters.js +0 -58
  400. package/dist/adapter/ember/utils/initters.js.map +0 -1
  401. package/dist/adapter/ember/utils/math.d.ts +0 -51
  402. package/dist/adapter/ember/utils/math.d.ts.map +0 -1
  403. package/dist/adapter/ember/utils/math.js +0 -102
  404. package/dist/adapter/ember/utils/math.js.map +0 -1
  405. package/dist/adapter/ember/zdo.d.ts +0 -925
  406. package/dist/adapter/ember/zdo.d.ts.map +0 -1
  407. package/dist/adapter/ember/zdo.js +0 -723
  408. package/dist/adapter/ember/zdo.js.map +0 -1
  409. package/dist/adapter/events.d.ts +0 -42
  410. package/dist/adapter/events.d.ts.map +0 -1
  411. package/dist/adapter/events.js +0 -13
  412. package/dist/adapter/events.js.map +0 -1
  413. package/dist/adapter/ezsp/adapter/backup.d.ts +0 -13
  414. package/dist/adapter/ezsp/adapter/backup.d.ts.map +0 -1
  415. package/dist/adapter/ezsp/adapter/backup.js +0 -101
  416. package/dist/adapter/ezsp/adapter/backup.js.map +0 -1
  417. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +0 -65
  418. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +0 -1
  419. package/dist/adapter/ezsp/adapter/ezspAdapter.js +0 -634
  420. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +0 -1
  421. package/dist/adapter/ezsp/adapter/index.d.ts +0 -3
  422. package/dist/adapter/ezsp/adapter/index.d.ts.map +0 -1
  423. package/dist/adapter/ezsp/adapter/index.js +0 -11
  424. package/dist/adapter/ezsp/adapter/index.js.map +0 -1
  425. package/dist/adapter/ezsp/driver/commands.d.ts +0 -37
  426. package/dist/adapter/ezsp/driver/commands.d.ts.map +0 -1
  427. package/dist/adapter/ezsp/driver/commands.js +0 -2387
  428. package/dist/adapter/ezsp/driver/commands.js.map +0 -1
  429. package/dist/adapter/ezsp/driver/consts.d.ts +0 -11
  430. package/dist/adapter/ezsp/driver/consts.d.ts.map +0 -1
  431. package/dist/adapter/ezsp/driver/consts.js +0 -14
  432. package/dist/adapter/ezsp/driver/consts.js.map +0 -1
  433. package/dist/adapter/ezsp/driver/driver.d.ts +0 -109
  434. package/dist/adapter/ezsp/driver/driver.d.ts.map +0 -1
  435. package/dist/adapter/ezsp/driver/driver.js +0 -796
  436. package/dist/adapter/ezsp/driver/driver.js.map +0 -1
  437. package/dist/adapter/ezsp/driver/ezsp.d.ts +0 -106
  438. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +0 -1
  439. package/dist/adapter/ezsp/driver/ezsp.js +0 -664
  440. package/dist/adapter/ezsp/driver/ezsp.js.map +0 -1
  441. package/dist/adapter/ezsp/driver/frame.d.ts +0 -40
  442. package/dist/adapter/ezsp/driver/frame.d.ts.map +0 -1
  443. package/dist/adapter/ezsp/driver/frame.js +0 -101
  444. package/dist/adapter/ezsp/driver/frame.js.map +0 -1
  445. package/dist/adapter/ezsp/driver/index.d.ts +0 -4
  446. package/dist/adapter/ezsp/driver/index.d.ts.map +0 -1
  447. package/dist/adapter/ezsp/driver/index.js +0 -9
  448. package/dist/adapter/ezsp/driver/index.js.map +0 -1
  449. package/dist/adapter/ezsp/driver/multicast.d.ts +0 -13
  450. package/dist/adapter/ezsp/driver/multicast.d.ts.map +0 -1
  451. package/dist/adapter/ezsp/driver/multicast.js +0 -74
  452. package/dist/adapter/ezsp/driver/multicast.js.map +0 -1
  453. package/dist/adapter/ezsp/driver/parser.d.ts +0 -12
  454. package/dist/adapter/ezsp/driver/parser.d.ts.map +0 -1
  455. package/dist/adapter/ezsp/driver/parser.js +0 -105
  456. package/dist/adapter/ezsp/driver/parser.js.map +0 -1
  457. package/dist/adapter/ezsp/driver/types/basic.d.ts +0 -63
  458. package/dist/adapter/ezsp/driver/types/basic.d.ts.map +0 -1
  459. package/dist/adapter/ezsp/driver/types/basic.js +0 -209
  460. package/dist/adapter/ezsp/driver/types/basic.js.map +0 -1
  461. package/dist/adapter/ezsp/driver/types/index.d.ts +0 -10
  462. package/dist/adapter/ezsp/driver/types/index.d.ts.map +0 -1
  463. package/dist/adapter/ezsp/driver/types/index.js +0 -139
  464. package/dist/adapter/ezsp/driver/types/index.js.map +0 -1
  465. package/dist/adapter/ezsp/driver/types/named.d.ts +0 -1288
  466. package/dist/adapter/ezsp/driver/types/named.d.ts.map +0 -1
  467. package/dist/adapter/ezsp/driver/types/named.js +0 -2330
  468. package/dist/adapter/ezsp/driver/types/named.js.map +0 -1
  469. package/dist/adapter/ezsp/driver/types/struct.d.ts +0 -271
  470. package/dist/adapter/ezsp/driver/types/struct.d.ts.map +0 -1
  471. package/dist/adapter/ezsp/driver/types/struct.js +0 -804
  472. package/dist/adapter/ezsp/driver/types/struct.js.map +0 -1
  473. package/dist/adapter/ezsp/driver/uart.d.ts +0 -49
  474. package/dist/adapter/ezsp/driver/uart.d.ts.map +0 -1
  475. package/dist/adapter/ezsp/driver/uart.js +0 -383
  476. package/dist/adapter/ezsp/driver/uart.js.map +0 -1
  477. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +0 -3
  478. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts.map +0 -1
  479. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +0 -56
  480. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +0 -1
  481. package/dist/adapter/ezsp/driver/utils/index.d.ts +0 -20
  482. package/dist/adapter/ezsp/driver/utils/index.d.ts.map +0 -1
  483. package/dist/adapter/ezsp/driver/utils/index.js +0 -73
  484. package/dist/adapter/ezsp/driver/utils/index.js.map +0 -1
  485. package/dist/adapter/ezsp/driver/writer.d.ts +0 -14
  486. package/dist/adapter/ezsp/driver/writer.d.ts.map +0 -1
  487. package/dist/adapter/ezsp/driver/writer.js +0 -83
  488. package/dist/adapter/ezsp/driver/writer.js.map +0 -1
  489. package/dist/adapter/index.d.ts +0 -5
  490. package/dist/adapter/index.d.ts.map +0 -1
  491. package/dist/adapter/index.js +0 -36
  492. package/dist/adapter/index.js.map +0 -1
  493. package/dist/adapter/serialPort.d.ts +0 -14
  494. package/dist/adapter/serialPort.d.ts.map +0 -1
  495. package/dist/adapter/serialPort.js +0 -47
  496. package/dist/adapter/serialPort.js.map +0 -1
  497. package/dist/adapter/serialPortUtils.d.ts +0 -13
  498. package/dist/adapter/serialPortUtils.d.ts.map +0 -1
  499. package/dist/adapter/serialPortUtils.js +0 -19
  500. package/dist/adapter/serialPortUtils.js.map +0 -1
  501. package/dist/adapter/socketPortUtils.d.ts +0 -11
  502. package/dist/adapter/socketPortUtils.d.ts.map +0 -1
  503. package/dist/adapter/socketPortUtils.js +0 -17
  504. package/dist/adapter/socketPortUtils.js.map +0 -1
  505. package/dist/adapter/tstype.d.ts +0 -86
  506. package/dist/adapter/tstype.d.ts.map +0 -1
  507. package/dist/adapter/tstype.js +0 -3
  508. package/dist/adapter/tstype.js.map +0 -1
  509. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +0 -62
  510. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +0 -1
  511. package/dist/adapter/z-stack/adapter/adapter-backup.js +0 -459
  512. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +0 -1
  513. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +0 -151
  514. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts.map +0 -1
  515. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +0 -259
  516. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +0 -1
  517. package/dist/adapter/z-stack/adapter/endpoints.d.ts +0 -12
  518. package/dist/adapter/z-stack/adapter/endpoints.d.ts.map +0 -1
  519. package/dist/adapter/z-stack/adapter/endpoints.js +0 -74
  520. package/dist/adapter/z-stack/adapter/endpoints.js.map +0 -1
  521. package/dist/adapter/z-stack/adapter/index.d.ts +0 -3
  522. package/dist/adapter/z-stack/adapter/index.d.ts.map +0 -1
  523. package/dist/adapter/z-stack/adapter/index.js +0 -9
  524. package/dist/adapter/z-stack/adapter/index.js.map +0 -1
  525. package/dist/adapter/z-stack/adapter/manager.d.ts +0 -84
  526. package/dist/adapter/z-stack/adapter/manager.d.ts.map +0 -1
  527. package/dist/adapter/z-stack/adapter/manager.js +0 -474
  528. package/dist/adapter/z-stack/adapter/manager.js.map +0 -1
  529. package/dist/adapter/z-stack/adapter/tstype.d.ts +0 -7
  530. package/dist/adapter/z-stack/adapter/tstype.d.ts.map +0 -1
  531. package/dist/adapter/z-stack/adapter/tstype.js +0 -10
  532. package/dist/adapter/z-stack/adapter/tstype.js.map +0 -1
  533. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +0 -86
  534. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +0 -1
  535. package/dist/adapter/z-stack/adapter/zStackAdapter.js +0 -912
  536. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +0 -1
  537. package/dist/adapter/z-stack/constants/af.d.ts +0 -24
  538. package/dist/adapter/z-stack/constants/af.d.ts.map +0 -1
  539. package/dist/adapter/z-stack/constants/af.js +0 -28
  540. package/dist/adapter/z-stack/constants/af.js.map +0 -1
  541. package/dist/adapter/z-stack/constants/common.d.ts +0 -279
  542. package/dist/adapter/z-stack/constants/common.d.ts.map +0 -1
  543. package/dist/adapter/z-stack/constants/common.js +0 -293
  544. package/dist/adapter/z-stack/constants/common.js.map +0 -1
  545. package/dist/adapter/z-stack/constants/dbg.d.ts +0 -23
  546. package/dist/adapter/z-stack/constants/dbg.d.ts.map +0 -1
  547. package/dist/adapter/z-stack/constants/dbg.js +0 -25
  548. package/dist/adapter/z-stack/constants/dbg.js.map +0 -1
  549. package/dist/adapter/z-stack/constants/index.d.ts +0 -11
  550. package/dist/adapter/z-stack/constants/index.d.ts.map +0 -1
  551. package/dist/adapter/z-stack/constants/index.js +0 -48
  552. package/dist/adapter/z-stack/constants/index.js.map +0 -1
  553. package/dist/adapter/z-stack/constants/mac.d.ts +0 -128
  554. package/dist/adapter/z-stack/constants/mac.d.ts.map +0 -1
  555. package/dist/adapter/z-stack/constants/mac.js +0 -130
  556. package/dist/adapter/z-stack/constants/mac.js.map +0 -1
  557. package/dist/adapter/z-stack/constants/sapi.d.ts +0 -25
  558. package/dist/adapter/z-stack/constants/sapi.d.ts.map +0 -1
  559. package/dist/adapter/z-stack/constants/sapi.js +0 -27
  560. package/dist/adapter/z-stack/constants/sapi.js.map +0 -1
  561. package/dist/adapter/z-stack/constants/sys.d.ts +0 -72
  562. package/dist/adapter/z-stack/constants/sys.d.ts.map +0 -1
  563. package/dist/adapter/z-stack/constants/sys.js +0 -74
  564. package/dist/adapter/z-stack/constants/sys.js.map +0 -1
  565. package/dist/adapter/z-stack/constants/util.d.ts +0 -82
  566. package/dist/adapter/z-stack/constants/util.d.ts.map +0 -1
  567. package/dist/adapter/z-stack/constants/util.js +0 -84
  568. package/dist/adapter/z-stack/constants/util.js.map +0 -1
  569. package/dist/adapter/z-stack/constants/utils.d.ts +0 -5
  570. package/dist/adapter/z-stack/constants/utils.d.ts.map +0 -1
  571. package/dist/adapter/z-stack/constants/utils.js +0 -15
  572. package/dist/adapter/z-stack/constants/utils.js.map +0 -1
  573. package/dist/adapter/z-stack/constants/zdo.d.ts +0 -103
  574. package/dist/adapter/z-stack/constants/zdo.d.ts.map +0 -1
  575. package/dist/adapter/z-stack/constants/zdo.js +0 -105
  576. package/dist/adapter/z-stack/constants/zdo.js.map +0 -1
  577. package/dist/adapter/z-stack/models/index.d.ts +0 -2
  578. package/dist/adapter/z-stack/models/index.d.ts.map +0 -1
  579. package/dist/adapter/z-stack/models/index.js +0 -18
  580. package/dist/adapter/z-stack/models/index.js.map +0 -1
  581. package/dist/adapter/z-stack/models/startup-options.d.ts +0 -13
  582. package/dist/adapter/z-stack/models/startup-options.d.ts.map +0 -1
  583. package/dist/adapter/z-stack/models/startup-options.js +0 -3
  584. package/dist/adapter/z-stack/models/startup-options.js.map +0 -1
  585. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +0 -24
  586. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts.map +0 -1
  587. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +0 -46
  588. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js.map +0 -1
  589. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +0 -11
  590. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts.map +0 -1
  591. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +0 -23
  592. package/dist/adapter/z-stack/structs/entries/address-manager-table.js.map +0 -1
  593. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +0 -11
  594. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts.map +0 -1
  595. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +0 -22
  596. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js.map +0 -1
  597. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +0 -11
  598. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts.map +0 -1
  599. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +0 -24
  600. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js.map +0 -1
  601. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +0 -11
  602. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts.map +0 -1
  603. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +0 -25
  604. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js.map +0 -1
  605. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +0 -11
  606. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts.map +0 -1
  607. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +0 -24
  608. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js.map +0 -1
  609. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +0 -9
  610. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts.map +0 -1
  611. package/dist/adapter/z-stack/structs/entries/channel-list.js +0 -16
  612. package/dist/adapter/z-stack/structs/entries/channel-list.js.map +0 -1
  613. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +0 -9
  614. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts.map +0 -1
  615. package/dist/adapter/z-stack/structs/entries/has-configured.js +0 -17
  616. package/dist/adapter/z-stack/structs/entries/has-configured.js.map +0 -1
  617. package/dist/adapter/z-stack/structs/entries/index.d.ts +0 -17
  618. package/dist/adapter/z-stack/structs/entries/index.d.ts.map +0 -1
  619. package/dist/adapter/z-stack/structs/entries/index.js +0 -33
  620. package/dist/adapter/z-stack/structs/entries/index.js.map +0 -1
  621. package/dist/adapter/z-stack/structs/entries/nib.d.ts +0 -11
  622. package/dist/adapter/z-stack/structs/entries/nib.d.ts.map +0 -1
  623. package/dist/adapter/z-stack/structs/entries/nib.js +0 -69
  624. package/dist/adapter/z-stack/structs/entries/nib.js.map +0 -1
  625. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +0 -11
  626. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts.map +0 -1
  627. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +0 -19
  628. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js.map +0 -1
  629. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +0 -9
  630. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts.map +0 -1
  631. package/dist/adapter/z-stack/structs/entries/nwk-key.js +0 -16
  632. package/dist/adapter/z-stack/structs/entries/nwk-key.js.map +0 -1
  633. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +0 -9
  634. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts.map +0 -1
  635. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +0 -16
  636. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js.map +0 -1
  637. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +0 -14
  638. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts.map +0 -1
  639. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +0 -24
  640. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js.map +0 -1
  641. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +0 -11
  642. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts.map +0 -1
  643. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +0 -23
  644. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js.map +0 -1
  645. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +0 -21
  646. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts.map +0 -1
  647. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +0 -37
  648. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js.map +0 -1
  649. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +0 -11
  650. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts.map +0 -1
  651. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +0 -25
  652. package/dist/adapter/z-stack/structs/entries/security-manager-table.js.map +0 -1
  653. package/dist/adapter/z-stack/structs/index.d.ts +0 -5
  654. package/dist/adapter/z-stack/structs/index.d.ts.map +0 -1
  655. package/dist/adapter/z-stack/structs/index.js +0 -21
  656. package/dist/adapter/z-stack/structs/index.js.map +0 -1
  657. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +0 -14
  658. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts.map +0 -1
  659. package/dist/adapter/z-stack/structs/serializable-memory-object.js +0 -3
  660. package/dist/adapter/z-stack/structs/serializable-memory-object.js.map +0 -1
  661. package/dist/adapter/z-stack/structs/struct.d.ts +0 -100
  662. package/dist/adapter/z-stack/structs/struct.d.ts.map +0 -1
  663. package/dist/adapter/z-stack/structs/struct.js +0 -297
  664. package/dist/adapter/z-stack/structs/struct.js.map +0 -1
  665. package/dist/adapter/z-stack/structs/table.d.ts +0 -95
  666. package/dist/adapter/z-stack/structs/table.d.ts.map +0 -1
  667. package/dist/adapter/z-stack/structs/table.js +0 -164
  668. package/dist/adapter/z-stack/structs/table.js.map +0 -1
  669. package/dist/adapter/z-stack/unpi/constants.d.ts +0 -29
  670. package/dist/adapter/z-stack/unpi/constants.d.ts.map +0 -1
  671. package/dist/adapter/z-stack/unpi/constants.js +0 -40
  672. package/dist/adapter/z-stack/unpi/constants.js.map +0 -1
  673. package/dist/adapter/z-stack/unpi/frame.d.ts +0 -17
  674. package/dist/adapter/z-stack/unpi/frame.d.ts.map +0 -1
  675. package/dist/adapter/z-stack/unpi/frame.js +0 -55
  676. package/dist/adapter/z-stack/unpi/frame.js.map +0 -1
  677. package/dist/adapter/z-stack/unpi/index.d.ts +0 -6
  678. package/dist/adapter/z-stack/unpi/index.d.ts.map +0 -1
  679. package/dist/adapter/z-stack/unpi/index.js +0 -38
  680. package/dist/adapter/z-stack/unpi/index.js.map +0 -1
  681. package/dist/adapter/z-stack/unpi/parser.d.ts +0 -13
  682. package/dist/adapter/z-stack/unpi/parser.d.ts.map +0 -1
  683. package/dist/adapter/z-stack/unpi/parser.js +0 -86
  684. package/dist/adapter/z-stack/unpi/parser.js.map +0 -1
  685. package/dist/adapter/z-stack/unpi/writer.d.ts +0 -12
  686. package/dist/adapter/z-stack/unpi/writer.d.ts.map +0 -1
  687. package/dist/adapter/z-stack/unpi/writer.js +0 -55
  688. package/dist/adapter/z-stack/unpi/writer.js.map +0 -1
  689. package/dist/adapter/z-stack/utils/channel-list.d.ts +0 -21
  690. package/dist/adapter/z-stack/utils/channel-list.d.ts.map +0 -1
  691. package/dist/adapter/z-stack/utils/channel-list.js +0 -41
  692. package/dist/adapter/z-stack/utils/channel-list.js.map +0 -1
  693. package/dist/adapter/z-stack/utils/index.d.ts +0 -3
  694. package/dist/adapter/z-stack/utils/index.d.ts.map +0 -1
  695. package/dist/adapter/z-stack/utils/index.js +0 -19
  696. package/dist/adapter/z-stack/utils/index.js.map +0 -1
  697. package/dist/adapter/z-stack/utils/network-options.d.ts +0 -9
  698. package/dist/adapter/z-stack/utils/network-options.d.ts.map +0 -1
  699. package/dist/adapter/z-stack/utils/network-options.js +0 -23
  700. package/dist/adapter/z-stack/utils/network-options.js.map +0 -1
  701. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +0 -14
  702. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts.map +0 -1
  703. package/dist/adapter/z-stack/znp/buffaloZnp.js +0 -243
  704. package/dist/adapter/z-stack/znp/buffaloZnp.js.map +0 -1
  705. package/dist/adapter/z-stack/znp/definition.d.ts +0 -6
  706. package/dist/adapter/z-stack/znp/definition.d.ts.map +0 -1
  707. package/dist/adapter/z-stack/znp/definition.js +0 -3052
  708. package/dist/adapter/z-stack/znp/definition.js.map +0 -1
  709. package/dist/adapter/z-stack/znp/index.d.ts +0 -4
  710. package/dist/adapter/z-stack/znp/index.d.ts.map +0 -1
  711. package/dist/adapter/z-stack/znp/index.js +0 -11
  712. package/dist/adapter/z-stack/znp/index.js.map +0 -1
  713. package/dist/adapter/z-stack/znp/parameterType.d.ts +0 -23
  714. package/dist/adapter/z-stack/znp/parameterType.d.ts.map +0 -1
  715. package/dist/adapter/z-stack/znp/parameterType.js +0 -26
  716. package/dist/adapter/z-stack/znp/parameterType.js.map +0 -1
  717. package/dist/adapter/z-stack/znp/tstype.d.ts +0 -23
  718. package/dist/adapter/z-stack/znp/tstype.d.ts.map +0 -1
  719. package/dist/adapter/z-stack/znp/tstype.js +0 -3
  720. package/dist/adapter/z-stack/znp/tstype.js.map +0 -1
  721. package/dist/adapter/z-stack/znp/znp.d.ts +0 -47
  722. package/dist/adapter/z-stack/znp/znp.d.ts.map +0 -1
  723. package/dist/adapter/z-stack/znp/znp.js +0 -322
  724. package/dist/adapter/z-stack/znp/znp.js.map +0 -1
  725. package/dist/adapter/z-stack/znp/zpiObject.d.ts +0 -20
  726. package/dist/adapter/z-stack/znp/zpiObject.d.ts.map +0 -1
  727. package/dist/adapter/z-stack/znp/zpiObject.js +0 -103
  728. package/dist/adapter/z-stack/znp/zpiObject.js.map +0 -1
  729. package/dist/adapter/zigate/adapter/index.d.ts +0 -3
  730. package/dist/adapter/zigate/adapter/index.d.ts.map +0 -1
  731. package/dist/adapter/zigate/adapter/index.js +0 -11
  732. package/dist/adapter/zigate/adapter/index.js.map +0 -1
  733. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +0 -72
  734. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +0 -1
  735. package/dist/adapter/zigate/adapter/zigateAdapter.js +0 -681
  736. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +0 -1
  737. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +0 -18
  738. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +0 -1
  739. package/dist/adapter/zigate/driver/buffaloZiGate.js +0 -190
  740. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +0 -1
  741. package/dist/adapter/zigate/driver/commandType.d.ts +0 -43
  742. package/dist/adapter/zigate/driver/commandType.d.ts.map +0 -1
  743. package/dist/adapter/zigate/driver/commandType.js +0 -390
  744. package/dist/adapter/zigate/driver/commandType.js.map +0 -1
  745. package/dist/adapter/zigate/driver/constants.d.ts +0 -277
  746. package/dist/adapter/zigate/driver/constants.d.ts.map +0 -1
  747. package/dist/adapter/zigate/driver/constants.js +0 -372
  748. package/dist/adapter/zigate/driver/constants.js.map +0 -1
  749. package/dist/adapter/zigate/driver/frame.d.ts +0 -27
  750. package/dist/adapter/zigate/driver/frame.d.ts.map +0 -1
  751. package/dist/adapter/zigate/driver/frame.js +0 -173
  752. package/dist/adapter/zigate/driver/frame.js.map +0 -1
  753. package/dist/adapter/zigate/driver/messageType.d.ts +0 -13
  754. package/dist/adapter/zigate/driver/messageType.d.ts.map +0 -1
  755. package/dist/adapter/zigate/driver/messageType.js +0 -284
  756. package/dist/adapter/zigate/driver/messageType.js.map +0 -1
  757. package/dist/adapter/zigate/driver/parameterType.d.ts +0 -28
  758. package/dist/adapter/zigate/driver/parameterType.d.ts.map +0 -1
  759. package/dist/adapter/zigate/driver/parameterType.js +0 -33
  760. package/dist/adapter/zigate/driver/parameterType.js.map +0 -1
  761. package/dist/adapter/zigate/driver/ziGateObject.d.ts +0 -24
  762. package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +0 -1
  763. package/dist/adapter/zigate/driver/ziGateObject.js +0 -111
  764. package/dist/adapter/zigate/driver/ziGateObject.js.map +0 -1
  765. package/dist/adapter/zigate/driver/zigate.d.ts +0 -50
  766. package/dist/adapter/zigate/driver/zigate.d.ts.map +0 -1
  767. package/dist/adapter/zigate/driver/zigate.js +0 -289
  768. package/dist/adapter/zigate/driver/zigate.js.map +0 -1
  769. package/dist/buffalo/buffalo.d.ts +0 -55
  770. package/dist/buffalo/buffalo.d.ts.map +0 -1
  771. package/dist/buffalo/buffalo.js +0 -230
  772. package/dist/buffalo/buffalo.js.map +0 -1
  773. package/dist/buffalo/index.d.ts +0 -3
  774. package/dist/buffalo/index.d.ts.map +0 -1
  775. package/dist/buffalo/index.js +0 -9
  776. package/dist/buffalo/index.js.map +0 -1
  777. package/dist/controller/controller.d.ts +0 -119
  778. package/dist/controller/controller.d.ts.map +0 -1
  779. package/dist/controller/controller.js +0 -700
  780. package/dist/controller/controller.js.map +0 -1
  781. package/dist/controller/database.d.ts +0 -20
  782. package/dist/controller/database.d.ts.map +0 -1
  783. package/dist/controller/database.js +0 -94
  784. package/dist/controller/database.js.map +0 -1
  785. package/dist/controller/events.d.ts +0 -59
  786. package/dist/controller/events.d.ts.map +0 -1
  787. package/dist/controller/events.js +0 -113
  788. package/dist/controller/events.js.map +0 -1
  789. package/dist/controller/greenPower.d.ts +0 -14
  790. package/dist/controller/greenPower.d.ts.map +0 -1
  791. package/dist/controller/greenPower.js +0 -216
  792. package/dist/controller/greenPower.js.map +0 -1
  793. package/dist/controller/helpers/index.d.ts +0 -3
  794. package/dist/controller/helpers/index.d.ts.map +0 -1
  795. package/dist/controller/helpers/index.js +0 -29
  796. package/dist/controller/helpers/index.js.map +0 -1
  797. package/dist/controller/helpers/request.d.ts +0 -22
  798. package/dist/controller/helpers/request.d.ts.map +0 -1
  799. package/dist/controller/helpers/request.js +0 -78
  800. package/dist/controller/helpers/request.js.map +0 -1
  801. package/dist/controller/helpers/requestQueue.d.ts +0 -13
  802. package/dist/controller/helpers/requestQueue.d.ts.map +0 -1
  803. package/dist/controller/helpers/requestQueue.js +0 -106
  804. package/dist/controller/helpers/requestQueue.js.map +0 -1
  805. package/dist/controller/helpers/zclFrameConverter.d.ts +0 -9
  806. package/dist/controller/helpers/zclFrameConverter.d.ts.map +0 -1
  807. package/dist/controller/helpers/zclFrameConverter.js +0 -70
  808. package/dist/controller/helpers/zclFrameConverter.js.map +0 -1
  809. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +0 -6
  810. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts.map +0 -1
  811. package/dist/controller/helpers/zclTransactionSequenceNumber.js +0 -14
  812. package/dist/controller/helpers/zclTransactionSequenceNumber.js.map +0 -1
  813. package/dist/controller/index.d.ts +0 -6
  814. package/dist/controller/index.d.ts.map +0 -1
  815. package/dist/controller/index.js +0 -9
  816. package/dist/controller/index.js.map +0 -1
  817. package/dist/controller/model/device.d.ts +0 -140
  818. package/dist/controller/model/device.d.ts.map +0 -1
  819. package/dist/controller/model/device.js +0 -746
  820. package/dist/controller/model/device.js.map +0 -1
  821. package/dist/controller/model/endpoint.d.ts +0 -134
  822. package/dist/controller/model/endpoint.d.ts.map +0 -1
  823. package/dist/controller/model/endpoint.js +0 -667
  824. package/dist/controller/model/endpoint.js.map +0 -1
  825. package/dist/controller/model/entity.d.ts +0 -15
  826. package/dist/controller/model/entity.d.ts.map +0 -1
  827. package/dist/controller/model/entity.js +0 -27
  828. package/dist/controller/model/entity.js.map +0 -1
  829. package/dist/controller/model/group.d.ts +0 -39
  830. package/dist/controller/model/group.d.ts.map +0 -1
  831. package/dist/controller/model/group.js +0 -226
  832. package/dist/controller/model/group.js.map +0 -1
  833. package/dist/controller/model/index.d.ts +0 -6
  834. package/dist/controller/model/index.d.ts.map +0 -1
  835. package/dist/controller/model/index.js +0 -15
  836. package/dist/controller/model/index.js.map +0 -1
  837. package/dist/controller/model/konnextConfig.d.ts +0 -7
  838. package/dist/controller/model/konnextConfig.d.ts.map +0 -1
  839. package/dist/controller/model/konnextConfig.js +0 -3
  840. package/dist/controller/model/konnextConfig.js.map +0 -1
  841. package/dist/controller/touchlink.d.ts +0 -20
  842. package/dist/controller/touchlink.d.ts.map +0 -1
  843. package/dist/controller/touchlink.js +0 -157
  844. package/dist/controller/touchlink.js.map +0 -1
  845. package/dist/controller/tstype.d.ts +0 -21
  846. package/dist/controller/tstype.d.ts.map +0 -1
  847. package/dist/controller/tstype.js +0 -9
  848. package/dist/controller/tstype.js.map +0 -1
  849. package/dist/index.d.ts +0 -6
  850. package/dist/index.d.ts.map +0 -1
  851. package/dist/index.js +0 -37
  852. package/dist/index.js.map +0 -1
  853. package/dist/models/backup-storage-legacy.d.ts +0 -27
  854. package/dist/models/backup-storage-legacy.d.ts.map +0 -1
  855. package/dist/models/backup-storage-legacy.js +0 -3
  856. package/dist/models/backup-storage-legacy.js.map +0 -1
  857. package/dist/models/backup-storage-unified.d.ts +0 -50
  858. package/dist/models/backup-storage-unified.d.ts.map +0 -1
  859. package/dist/models/backup-storage-unified.js +0 -3
  860. package/dist/models/backup-storage-unified.js.map +0 -1
  861. package/dist/models/backup.d.ts +0 -38
  862. package/dist/models/backup.d.ts.map +0 -1
  863. package/dist/models/backup.js +0 -3
  864. package/dist/models/backup.js.map +0 -1
  865. package/dist/models/index.d.ts +0 -5
  866. package/dist/models/index.d.ts.map +0 -1
  867. package/dist/models/index.js +0 -21
  868. package/dist/models/index.js.map +0 -1
  869. package/dist/models/network-options.d.ts +0 -13
  870. package/dist/models/network-options.d.ts.map +0 -1
  871. package/dist/models/network-options.js +0 -3
  872. package/dist/models/network-options.js.map +0 -1
  873. package/dist/utils/aes.d.ts +0 -40
  874. package/dist/utils/aes.d.ts.map +0 -1
  875. package/dist/utils/aes.js +0 -198
  876. package/dist/utils/aes.js.map +0 -1
  877. package/dist/utils/assertString.d.ts +0 -3
  878. package/dist/utils/assertString.d.ts.map +0 -1
  879. package/dist/utils/assertString.js +0 -9
  880. package/dist/utils/assertString.js.map +0 -1
  881. package/dist/utils/backup.d.ts +0 -21
  882. package/dist/utils/backup.d.ts.map +0 -1
  883. package/dist/utils/backup.js +0 -190
  884. package/dist/utils/backup.js.map +0 -1
  885. package/dist/utils/equalsPartial.d.ts +0 -3
  886. package/dist/utils/equalsPartial.d.ts.map +0 -1
  887. package/dist/utils/equalsPartial.js +0 -12
  888. package/dist/utils/equalsPartial.js.map +0 -1
  889. package/dist/utils/index.d.ts +0 -10
  890. package/dist/utils/index.d.ts.map +0 -1
  891. package/dist/utils/index.js +0 -46
  892. package/dist/utils/index.js.map +0 -1
  893. package/dist/utils/isNumberArray.d.ts +0 -3
  894. package/dist/utils/isNumberArray.d.ts.map +0 -1
  895. package/dist/utils/isNumberArray.js +0 -7
  896. package/dist/utils/isNumberArray.js.map +0 -1
  897. package/dist/utils/logger.d.ts +0 -9
  898. package/dist/utils/logger.d.ts.map +0 -1
  899. package/dist/utils/logger.js +0 -14
  900. package/dist/utils/logger.js.map +0 -1
  901. package/dist/utils/queue.d.ts +0 -12
  902. package/dist/utils/queue.d.ts.map +0 -1
  903. package/dist/utils/queue.js +0 -62
  904. package/dist/utils/queue.js.map +0 -1
  905. package/dist/utils/realpathSync.d.ts +0 -3
  906. package/dist/utils/realpathSync.d.ts.map +0 -1
  907. package/dist/utils/realpathSync.js +0 -13
  908. package/dist/utils/realpathSync.js.map +0 -1
  909. package/dist/utils/wait.d.ts +0 -3
  910. package/dist/utils/wait.d.ts.map +0 -1
  911. package/dist/utils/wait.js +0 -9
  912. package/dist/utils/wait.js.map +0 -1
  913. package/dist/utils/waitress.d.ts +0 -22
  914. package/dist/utils/waitress.d.ts.map +0 -1
  915. package/dist/utils/waitress.js +0 -69
  916. package/dist/utils/waitress.js.map +0 -1
  917. package/dist/zspec/consts.d.ts +0 -60
  918. package/dist/zspec/consts.d.ts.map +0 -1
  919. package/dist/zspec/consts.js +0 -64
  920. package/dist/zspec/consts.js.map +0 -1
  921. package/dist/zspec/enums.d.ts +0 -19
  922. package/dist/zspec/enums.d.ts.map +0 -1
  923. package/dist/zspec/enums.js +0 -28
  924. package/dist/zspec/enums.js.map +0 -1
  925. package/dist/zspec/index.d.ts +0 -4
  926. package/dist/zspec/index.d.ts.map +0 -1
  927. package/dist/zspec/index.js +0 -43
  928. package/dist/zspec/index.js.map +0 -1
  929. package/dist/zspec/tstypes.d.ts +0 -19
  930. package/dist/zspec/tstypes.d.ts.map +0 -1
  931. package/dist/zspec/tstypes.js +0 -3
  932. package/dist/zspec/tstypes.js.map +0 -1
  933. package/dist/zspec/utils.d.ts +0 -14
  934. package/dist/zspec/utils.d.ts.map +0 -1
  935. package/dist/zspec/utils.js +0 -29
  936. package/dist/zspec/utils.js.map +0 -1
  937. package/dist/zspec/zcl/buffaloZcl.d.ts +0 -55
  938. package/dist/zspec/zcl/buffaloZcl.d.ts.map +0 -1
  939. package/dist/zspec/zcl/buffaloZcl.js +0 -929
  940. package/dist/zspec/zcl/buffaloZcl.js.map +0 -1
  941. package/dist/zspec/zcl/definition/cluster.d.ts +0 -3
  942. package/dist/zspec/zcl/definition/cluster.d.ts.map +0 -1
  943. package/dist/zspec/zcl/definition/cluster.js +0 -5500
  944. package/dist/zspec/zcl/definition/cluster.js.map +0 -1
  945. package/dist/zspec/zcl/definition/consts.d.ts +0 -9
  946. package/dist/zspec/zcl/definition/consts.d.ts.map +0 -1
  947. package/dist/zspec/zcl/definition/consts.js +0 -27
  948. package/dist/zspec/zcl/definition/consts.js.map +0 -1
  949. package/dist/zspec/zcl/definition/enums.d.ts +0 -177
  950. package/dist/zspec/zcl/definition/enums.d.ts.map +0 -1
  951. package/dist/zspec/zcl/definition/enums.js +0 -187
  952. package/dist/zspec/zcl/definition/enums.js.map +0 -1
  953. package/dist/zspec/zcl/definition/foundation.d.ts +0 -11
  954. package/dist/zspec/zcl/definition/foundation.d.ts.map +0 -1
  955. package/dist/zspec/zcl/definition/foundation.js +0 -241
  956. package/dist/zspec/zcl/definition/foundation.js.map +0 -1
  957. package/dist/zspec/zcl/definition/manufacturerCode.d.ts +0 -727
  958. package/dist/zspec/zcl/definition/manufacturerCode.d.ts.map +0 -1
  959. package/dist/zspec/zcl/definition/manufacturerCode.js +0 -733
  960. package/dist/zspec/zcl/definition/manufacturerCode.js.map +0 -1
  961. package/dist/zspec/zcl/definition/status.d.ts +0 -69
  962. package/dist/zspec/zcl/definition/status.d.ts.map +0 -1
  963. package/dist/zspec/zcl/definition/status.js +0 -74
  964. package/dist/zspec/zcl/definition/status.js.map +0 -1
  965. package/dist/zspec/zcl/definition/tstype.d.ts +0 -114
  966. package/dist/zspec/zcl/definition/tstype.d.ts.map +0 -1
  967. package/dist/zspec/zcl/definition/tstype.js +0 -4
  968. package/dist/zspec/zcl/definition/tstype.js.map +0 -1
  969. package/dist/zspec/zcl/index.d.ts +0 -11
  970. package/dist/zspec/zcl/index.d.ts.map +0 -1
  971. package/dist/zspec/zcl/index.js +0 -47
  972. package/dist/zspec/zcl/index.js.map +0 -1
  973. package/dist/zspec/zcl/utils.d.ts +0 -7
  974. package/dist/zspec/zcl/utils.d.ts.map +0 -1
  975. package/dist/zspec/zcl/utils.js +0 -234
  976. package/dist/zspec/zcl/utils.js.map +0 -1
  977. package/dist/zspec/zcl/zclFrame.d.ts +0 -36
  978. package/dist/zspec/zcl/zclFrame.d.ts.map +0 -1
  979. package/dist/zspec/zcl/zclFrame.js +0 -304
  980. package/dist/zspec/zcl/zclFrame.js.map +0 -1
  981. package/dist/zspec/zcl/zclHeader.d.ts +0 -17
  982. package/dist/zspec/zcl/zclHeader.d.ts.map +0 -1
  983. package/dist/zspec/zcl/zclHeader.js +0 -88
  984. package/dist/zspec/zcl/zclHeader.js.map +0 -1
  985. package/dist/zspec/zcl/zclStatusError.d.ts +0 -6
  986. package/dist/zspec/zcl/zclStatusError.d.ts.map +0 -1
  987. package/dist/zspec/zcl/zclStatusError.js +0 -13
  988. package/dist/zspec/zcl/zclStatusError.js.map +0 -1
  989. package/dist/zspec/zdo/buffaloZdo.d.ts +0 -438
  990. package/dist/zspec/zdo/buffaloZdo.d.ts.map +0 -1
  991. package/dist/zspec/zdo/buffaloZdo.js +0 -1892
  992. package/dist/zspec/zdo/buffaloZdo.js.map +0 -1
  993. package/dist/zspec/zdo/definition/clusters.d.ts +0 -624
  994. package/dist/zspec/zdo/definition/clusters.d.ts.map +0 -1
  995. package/dist/zspec/zdo/definition/clusters.js +0 -687
  996. package/dist/zspec/zdo/definition/clusters.js.map +0 -1
  997. package/dist/zspec/zdo/definition/consts.d.ts +0 -13
  998. package/dist/zspec/zdo/definition/consts.d.ts.map +0 -1
  999. package/dist/zspec/zdo/definition/consts.js +0 -16
  1000. package/dist/zspec/zdo/definition/consts.js.map +0 -1
  1001. package/dist/zspec/zdo/definition/enums.d.ts +0 -75
  1002. package/dist/zspec/zdo/definition/enums.d.ts.map +0 -1
  1003. package/dist/zspec/zdo/definition/enums.js +0 -97
  1004. package/dist/zspec/zdo/definition/enums.js.map +0 -1
  1005. package/dist/zspec/zdo/definition/status.d.ts +0 -99
  1006. package/dist/zspec/zdo/definition/status.d.ts.map +0 -1
  1007. package/dist/zspec/zdo/definition/status.js +0 -109
  1008. package/dist/zspec/zdo/definition/status.js.map +0 -1
  1009. package/dist/zspec/zdo/definition/tstypes.d.ts +0 -787
  1010. package/dist/zspec/zdo/definition/tstypes.d.ts.map +0 -1
  1011. package/dist/zspec/zdo/definition/tstypes.js +0 -3
  1012. package/dist/zspec/zdo/definition/tstypes.js.map +0 -1
  1013. package/dist/zspec/zdo/index.d.ts +0 -7
  1014. package/dist/zspec/zdo/index.d.ts.map +0 -1
  1015. package/dist/zspec/zdo/index.js +0 -39
  1016. package/dist/zspec/zdo/index.js.map +0 -1
  1017. package/dist/zspec/zdo/utils.d.ts +0 -25
  1018. package/dist/zspec/zdo/utils.d.ts.map +0 -1
  1019. package/dist/zspec/zdo/utils.js +0 -75
  1020. package/dist/zspec/zdo/utils.js.map +0 -1
  1021. package/dist/zspec/zdo/zdoStatusError.d.ts +0 -6
  1022. package/dist/zspec/zdo/zdoStatusError.d.ts.map +0 -1
  1023. package/dist/zspec/zdo/zdoStatusError.js +0 -13
  1024. package/dist/zspec/zdo/zdoStatusError.js.map +0 -1
  1025. package/typedoc-tsconfig.json +0 -44
@@ -0,0 +1,1002 @@
1
+ /* v8 ignore start */
2
+
3
+ import {EventEmitter} from "node:events";
4
+
5
+ import equals from "fast-deep-equal/es6";
6
+
7
+ import type {Backup} from "../../../models/backup";
8
+ import {Waitress, wait} from "../../../utils";
9
+ import {logger} from "../../../utils/logger";
10
+ import * as ZSpec from "../../../zspec";
11
+ import {Clusters} from "../../../zspec/zcl/definition/cluster";
12
+ import * as Zdo from "../../../zspec/zdo";
13
+ import type {GenericZdoResponse} from "../../../zspec/zdo/definition/tstypes";
14
+ import type * as TsType from "./../../tstype";
15
+ import {EZSPAdapterBackup} from "../adapter/backup";
16
+ import type {ParamsDesc} from "./commands";
17
+ import {type EZSPFrameData, Ezsp} from "./ezsp";
18
+ import {Multicast} from "./multicast";
19
+ import {EmberApsOption, EmberJoinDecision, EmberKeyData, EmberNodeType, EmberStatus, uint8_t, uint16_t} from "./types";
20
+ import {
21
+ EmberDerivedKeyType,
22
+ EmberDeviceUpdate,
23
+ EmberEUI64,
24
+ EmberInitialSecurityBitmask,
25
+ EmberJoinMethod,
26
+ EmberKeyType,
27
+ EmberNetworkStatus,
28
+ EmberOutgoingMessageType,
29
+ type EmberStackError,
30
+ EzspDecisionBitmask,
31
+ EzspPolicyId,
32
+ EzspValueId,
33
+ SLStatus,
34
+ } from "./types/named";
35
+ import {
36
+ EmberApsFrame,
37
+ EmberIeeeRawFrame,
38
+ type EmberInitialSecurityState,
39
+ type EmberKeyStruct,
40
+ EmberNetworkParameters,
41
+ EmberRawFrame,
42
+ EmberSecurityManagerContext,
43
+ } from "./types/struct";
44
+ import {emberSecurity} from "./utils";
45
+
46
+ const NS = "zh:ezsp:driv";
47
+
48
+ interface AddEndpointParameters {
49
+ endpoint?: number;
50
+ profileId?: number;
51
+ deviceId?: number;
52
+ appFlags?: number;
53
+ inputClusters?: number[];
54
+ outputClusters?: number[];
55
+ }
56
+
57
+ type EmberFrame = {
58
+ address: number | string;
59
+ payload: Buffer;
60
+ frame: EmberApsFrame;
61
+ zdoResponse?: GenericZdoResponse;
62
+ };
63
+
64
+ type EmberWaitressMatcher = {
65
+ address: number | string;
66
+ clusterId: number;
67
+ sequence: number;
68
+ };
69
+
70
+ type IeeeMfg = {
71
+ mfgId: number;
72
+ prefix: number[];
73
+ };
74
+
75
+ export interface EmberIncomingMessage {
76
+ messageType: number;
77
+ apsFrame: EmberApsFrame;
78
+ lqi: number;
79
+ rssi: number;
80
+ sender: number;
81
+ bindingIndex: number;
82
+ addressIndex: number;
83
+ message: Buffer;
84
+ senderEui64: EmberEUI64;
85
+ zdoResponse?: GenericZdoResponse;
86
+ }
87
+
88
+ const IEEE_PREFIX_MFG_ID: IeeeMfg[] = [
89
+ {mfgId: 0x115f, prefix: [0x04, 0xcf, 0xfc]},
90
+ {mfgId: 0x115f, prefix: [0x54, 0xef, 0x44]},
91
+ ];
92
+ const DEFAULT_MFG_ID = 0x1049;
93
+ // we make three attempts to send the request
94
+ const REQUEST_ATTEMPT_DELAYS = [500, 1000, 1500];
95
+
96
+ export class Driver extends EventEmitter {
97
+ // @ts-expect-error XXX: init in startup
98
+ public ezsp: Ezsp;
99
+ private nwkOpt: TsType.NetworkOptions;
100
+ // @ts-expect-error XXX: init in startup
101
+ public networkParams: EmberNetworkParameters;
102
+ // @ts-expect-error XXX: init in startup
103
+ public version: {
104
+ product: number;
105
+ majorrel: string;
106
+ minorrel: string;
107
+ maintrel: string;
108
+ revision: string;
109
+ };
110
+ private eui64ToNodeId = new Map<string, number>();
111
+ // private eui64ToRelays = new Map<string, number>();
112
+ // @ts-expect-error XXX: init in startup
113
+ public ieee: EmberEUI64;
114
+ // @ts-expect-error XXX: init in startup
115
+ private multicast: Multicast;
116
+ private waitress: Waitress<EmberFrame, EmberWaitressMatcher>;
117
+ private transactionID = 1;
118
+ private serialOpt: TsType.SerialPortOptions;
119
+ public backupMan: EZSPAdapterBackup;
120
+
121
+ constructor(serialOpt: TsType.SerialPortOptions, nwkOpt: TsType.NetworkOptions, backupPath: string) {
122
+ super();
123
+
124
+ this.nwkOpt = nwkOpt;
125
+ this.serialOpt = serialOpt;
126
+ this.waitress = new Waitress<EmberFrame, EmberWaitressMatcher>(this.waitressValidator, this.waitressTimeoutFormatter);
127
+ this.backupMan = new EZSPAdapterBackup(this, backupPath);
128
+ }
129
+
130
+ /**
131
+ * Requested by the EZSP watchdog after too many failures, or by UART layer after port closed unexpectedly.
132
+ * Tries to stop the layers below and startup again.
133
+ * @returns
134
+ */
135
+ public async reset(): Promise<void> {
136
+ logger.debug("Reset connection.", NS);
137
+
138
+ try {
139
+ // don't emit 'close' on stop since we don't want this to bubble back up as 'disconnected' to the controller.
140
+ await this.stop(false);
141
+ } catch (err) {
142
+ logger.debug(`Stop error ${err}`, NS);
143
+ }
144
+ try {
145
+ await wait(1000);
146
+ logger.debug("Startup again.", NS);
147
+ await this.startup();
148
+ } catch (err) {
149
+ logger.debug(`Reset error ${err}`, NS);
150
+
151
+ try {
152
+ // here we let emit
153
+ await this.stop();
154
+ } catch (stopErr) {
155
+ logger.debug(`Failed to stop after failed reset ${stopErr}`, NS);
156
+ }
157
+ }
158
+ }
159
+
160
+ private async onEzspReset(): Promise<void> {
161
+ logger.debug("onEzspReset()", NS);
162
+ await this.reset();
163
+ }
164
+
165
+ private onEzspClose(): void {
166
+ logger.debug("onEzspClose()", NS);
167
+ this.emit("close");
168
+ }
169
+
170
+ public async stop(emitClose = true): Promise<void> {
171
+ logger.debug("Stopping driver", NS);
172
+
173
+ if (this.ezsp) {
174
+ return await this.ezsp.close(emitClose);
175
+ }
176
+ }
177
+
178
+ public async startup(transmitPower?: number): Promise<TsType.StartResult> {
179
+ let result: TsType.StartResult = "resumed";
180
+ this.transactionID = 1;
181
+ // this.ezsp = undefined;
182
+ this.ezsp = new Ezsp();
183
+ this.ezsp.on("close", this.onEzspClose.bind(this));
184
+
185
+ try {
186
+ await this.ezsp.connect(this.serialOpt);
187
+ } catch (error) {
188
+ logger.debug(`EZSP could not connect: ${error}`, NS);
189
+
190
+ throw error;
191
+ }
192
+
193
+ this.ezsp.on("reset", this.onEzspReset.bind(this));
194
+
195
+ await this.ezsp.version();
196
+ await this.ezsp.updateConfig();
197
+ await this.ezsp.updatePolicies();
198
+ //await this.ezsp.setValue(EzspValueId.VALUE_MAXIMUM_OUTGOING_TRANSFER_SIZE, 82);
199
+ //await this.ezsp.setValue(EzspValueId.VALUE_MAXIMUM_INCOMING_TRANSFER_SIZE, 82);
200
+ await this.ezsp.setValue(EzspValueId.VALUE_END_DEVICE_KEEP_ALIVE_SUPPORT_MODE, 3);
201
+ await this.ezsp.setValue(EzspValueId.VALUE_CCA_THRESHOLD, 0);
202
+ await this.ezsp.setSourceRouting();
203
+ //const count = await ezsp.getConfigurationValue(EzspConfigId.CONFIG_APS_UNICAST_MESSAGE_COUNT);
204
+ //logger.info("APS_UNICAST_MESSAGE_COUNT is set to %s", count, NS);
205
+ await this.addEndpoint({
206
+ inputClusters: [0x0000, 0x0003, 0x0006, 0x000a, 0x0019, 0x001a, 0x0300],
207
+ outputClusters: [
208
+ 0x0000, 0x0003, 0x0004, 0x0005, 0x0006, 0x0008, 0x0020, 0x0300, 0x0400, 0x0402, 0x0405, 0x0406, 0x0500, 0x0b01, 0x0b03, 0x0b04,
209
+ 0x0702, 0x1000, 0xfc01, 0xfc02,
210
+ ],
211
+ });
212
+ await this.addEndpoint({
213
+ endpoint: 242,
214
+ profileId: 0xa1e0,
215
+ deviceId: 0x61,
216
+ outputClusters: [0x0021],
217
+ });
218
+
219
+ // getting MFG_STRING token
220
+ //const mfgName = await ezsp.execCommand('getMfgToken', EzspMfgTokenId.MFG_STRING);
221
+ // getting MFG_BOARD_NAME token
222
+ //const boardName = await ezsp.execCommand('getMfgToken', EzspMfgTokenId.MFG_BOARD_NAME);
223
+ let verInfo = await this.ezsp.getValue(EzspValueId.VALUE_VERSION_INFO);
224
+ // biome-ignore lint/style/useConst: legacy
225
+ let build: number;
226
+ // biome-ignore lint/style/useConst: legacy
227
+ let major: number;
228
+ // biome-ignore lint/style/useConst: legacy
229
+ let minor: number;
230
+ // biome-ignore lint/style/useConst: legacy
231
+ let patch: number;
232
+ // biome-ignore lint/style/useConst: legacy
233
+ let special: number;
234
+ [build, verInfo] = uint16_t.deserialize(uint16_t, verInfo);
235
+ [major, verInfo] = uint8_t.deserialize(uint8_t, verInfo);
236
+ [minor, verInfo] = uint8_t.deserialize(uint8_t, verInfo);
237
+ [patch, verInfo] = uint8_t.deserialize(uint8_t, verInfo);
238
+ [special, verInfo] = uint8_t.deserialize(uint8_t, verInfo);
239
+ const vers = `${major}.${minor}.${patch}.${special} build ${build}`;
240
+ logger.debug(`EmberZNet version: ${vers}`, NS);
241
+ this.version = {
242
+ product: this.ezsp.ezspV,
243
+ majorrel: `${major}`,
244
+ minorrel: `${minor}`,
245
+ maintrel: `${patch} `,
246
+ revision: vers,
247
+ };
248
+
249
+ if (await this.needsToBeInitialised(this.nwkOpt)) {
250
+ // need to check the backup
251
+ const restore = await this.needsToBeRestore(this.nwkOpt);
252
+
253
+ const res = await this.ezsp.execCommand("networkState");
254
+
255
+ logger.debug(`Network state ${res.status}`, NS);
256
+
257
+ if (res.status === EmberNetworkStatus.JOINED_NETWORK) {
258
+ logger.info("Leaving current network and forming new network", NS);
259
+
260
+ const st = await this.ezsp.leaveNetwork();
261
+
262
+ if (st !== EmberStatus.NETWORK_DOWN) {
263
+ logger.error(`leaveNetwork returned unexpected status: ${st}`, NS);
264
+ }
265
+ }
266
+
267
+ if (restore) {
268
+ // restore
269
+ logger.info("Restore network from backup", NS);
270
+ await this.formNetwork(true, transmitPower);
271
+ result = "restored";
272
+ } else {
273
+ // reset
274
+ logger.info("Form network", NS);
275
+ await this.formNetwork(false, transmitPower);
276
+ result = "reset";
277
+ }
278
+ }
279
+
280
+ const state = (await this.ezsp.execCommand("networkState")).status;
281
+ logger.debug(`Network state ${state}`, NS);
282
+
283
+ const netParams = await this.ezsp.execCommand("getNetworkParameters");
284
+
285
+ if (netParams.status !== EmberStatus.SUCCESS) {
286
+ logger.error(`Command (getNetworkParameters) returned unexpected state: ${netParams.status}`, NS);
287
+ }
288
+
289
+ this.networkParams = netParams.parameters;
290
+ logger.debug(`Node type: ${netParams.nodeType}, Network parameters: ${this.networkParams}`, NS);
291
+
292
+ const nwk = (await this.ezsp.execCommand("getNodeId")).nodeId;
293
+ const ieee = (await this.ezsp.execCommand("getEui64")).eui64;
294
+ this.ieee = new EmberEUI64(ieee);
295
+ logger.debug("Network ready", NS);
296
+ this.ezsp.on("frame", this.handleFrame.bind(this));
297
+ logger.debug(`EZSP nwk=${nwk}, IEEE=0x${this.ieee}`, NS);
298
+ const linkResult = await this.getKey(EmberKeyType.TRUST_CENTER_LINK_KEY);
299
+ logger.debug(() => `TRUST_CENTER_LINK_KEY: ${JSON.stringify(linkResult)}`, NS);
300
+ const netResult = await this.getKey(EmberKeyType.CURRENT_NETWORK_KEY);
301
+ logger.debug(() => `CURRENT_NETWORK_KEY: ${JSON.stringify(netResult)}`, NS);
302
+
303
+ await wait(1000);
304
+ await this.ezsp.execCommand("setManufacturerCode", {code: DEFAULT_MFG_ID});
305
+
306
+ this.multicast = new Multicast(this);
307
+ await this.multicast.startup([]);
308
+ await this.multicast.subscribe(ZSpec.GP_GROUP_ID, ZSpec.GP_ENDPOINT);
309
+ // await this.multicast.subscribe(1, 901);
310
+
311
+ if (transmitPower != null && this.networkParams.radioTxPower !== transmitPower) {
312
+ await this.ezsp.execCommand("setRadioPower", {power: transmitPower});
313
+ }
314
+
315
+ return result;
316
+ }
317
+
318
+ private async needsToBeInitialised(options: TsType.NetworkOptions): Promise<boolean> {
319
+ let valid = true;
320
+ valid = valid && (await this.ezsp.networkInit());
321
+ const netParams = await this.ezsp.execCommand("getNetworkParameters");
322
+ const networkParams = netParams.parameters;
323
+ logger.debug(`Current Node type: ${netParams.nodeType}, Network parameters: ${networkParams}`, NS);
324
+ valid = valid && netParams.status === EmberStatus.SUCCESS;
325
+ valid = valid && netParams.nodeType === EmberNodeType.COORDINATOR;
326
+ valid = valid && options.panID === networkParams.panId;
327
+ valid = valid && options.channelList.includes(networkParams.radioChannel);
328
+ valid = valid && equals(options.extendedPanID, networkParams.extendedPanId);
329
+ return !valid;
330
+ }
331
+
332
+ private async formNetwork(restore: boolean, transmitPower?: number): Promise<void> {
333
+ let backup: Backup | undefined;
334
+ await this.ezsp.execCommand("clearTransientLinkKeys");
335
+
336
+ let initialSecurityState: EmberInitialSecurityState;
337
+ if (restore) {
338
+ backup = this.backupMan.getStoredBackup();
339
+
340
+ if (!backup) {
341
+ throw new Error("No valid backup found.");
342
+ }
343
+
344
+ initialSecurityState = emberSecurity(backup.networkOptions.networkKey);
345
+ initialSecurityState.bitmask |= EmberInitialSecurityBitmask.NO_FRAME_COUNTER_RESET;
346
+ initialSecurityState.networkKeySequenceNumber = backup.networkKeyInfo.sequenceNumber;
347
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
348
+ initialSecurityState.preconfiguredKey.contents = backup.ezsp!.hashed_tclk!;
349
+ } else {
350
+ await this.ezsp.execCommand("clearKeyTable");
351
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
352
+ initialSecurityState = emberSecurity(Buffer.from(this.nwkOpt.networkKey!));
353
+ }
354
+ await this.ezsp.setInitialSecurityState(initialSecurityState);
355
+
356
+ const parameters: EmberNetworkParameters = new EmberNetworkParameters();
357
+ parameters.radioTxPower = transmitPower ?? 5;
358
+ parameters.joinMethod = EmberJoinMethod.USE_MAC_ASSOCIATION;
359
+ parameters.nwkManagerId = 0;
360
+ parameters.nwkUpdateId = 0;
361
+ parameters.channels = 0x07fff800; // all channels
362
+ if (restore) {
363
+ // `backup` valid from above
364
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
365
+ parameters.panId = backup!.networkOptions.panId;
366
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
367
+ parameters.extendedPanId = backup!.networkOptions.extendedPanId;
368
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
369
+ parameters.radioChannel = backup!.logicalChannel;
370
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
371
+ parameters.nwkUpdateId = backup!.networkUpdateId;
372
+ } else {
373
+ parameters.radioChannel = this.nwkOpt.channelList[0];
374
+ parameters.panId = this.nwkOpt.panID;
375
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
376
+ parameters.extendedPanId = Buffer.from(this.nwkOpt.extendedPanID!);
377
+ }
378
+
379
+ await this.ezsp.formNetwork(parameters);
380
+ await this.ezsp.setValue(EzspValueId.VALUE_STACK_TOKEN_WRITING, 1);
381
+ }
382
+
383
+ private handleFrame(frameName: string, frame: EZSPFrameData): void {
384
+ switch (true) {
385
+ case frameName === "incomingMessageHandler": {
386
+ const apsFrame: EmberApsFrame = frame.apsFrame;
387
+
388
+ if (apsFrame.profileId === Zdo.ZDO_PROFILE_ID && apsFrame.clusterId >= 0x8000 /* response only */) {
389
+ const zdoResponse = Zdo.Buffalo.readResponse(true, apsFrame.clusterId, frame.message);
390
+
391
+ if (apsFrame.clusterId === Zdo.ClusterId.NETWORK_ADDRESS_RESPONSE) {
392
+ // special case to properly resolve a NETWORK_ADDRESS_RESPONSE following a NETWORK_ADDRESS_REQUEST (based on EUI64 from ZDO payload)
393
+ // NOTE: if response has invalid status (no EUI64 available), response waiter will eventually time out
394
+ if (Zdo.Buffalo.checkStatus<Zdo.ClusterId.NETWORK_ADDRESS_RESPONSE>(zdoResponse)) {
395
+ const eui64 = zdoResponse[1].eui64;
396
+
397
+ // update cache with new network address
398
+ this.eui64ToNodeId.set(eui64, frame.sender);
399
+
400
+ this.waitress.resolve({
401
+ address: eui64,
402
+ payload: frame.message,
403
+ frame: apsFrame,
404
+ zdoResponse,
405
+ });
406
+ }
407
+ } else {
408
+ this.waitress.resolve({
409
+ address: frame.sender,
410
+ payload: frame.message,
411
+ frame: apsFrame,
412
+ zdoResponse,
413
+ });
414
+ }
415
+
416
+ // always pass ZDO to bubble up to controller
417
+ this.emit("incomingMessage", {
418
+ messageType: frame.type,
419
+ apsFrame,
420
+ lqi: frame.lastHopLqi,
421
+ rssi: frame.lastHopRssi,
422
+ sender: frame.sender,
423
+ bindingIndex: frame.bindingIndex,
424
+ addressIndex: frame.addressIndex,
425
+ message: frame.message,
426
+ senderEui64: this.eui64ToNodeId.get(frame.sender),
427
+ zdoResponse,
428
+ });
429
+ } else {
430
+ const handled = this.waitress.resolve({
431
+ address: frame.sender,
432
+ payload: frame.message,
433
+ frame: apsFrame,
434
+ });
435
+
436
+ if (!handled) {
437
+ this.emit("incomingMessage", {
438
+ messageType: frame.type,
439
+ apsFrame,
440
+ lqi: frame.lastHopLqi,
441
+ rssi: frame.lastHopRssi,
442
+ sender: frame.sender,
443
+ bindingIndex: frame.bindingIndex,
444
+ addressIndex: frame.addressIndex,
445
+ message: frame.message,
446
+ senderEui64: this.eui64ToNodeId.get(frame.sender),
447
+ });
448
+ }
449
+ }
450
+ break;
451
+ }
452
+ case frameName === "trustCenterJoinHandler": {
453
+ if (frame.status === EmberDeviceUpdate.DEVICE_LEFT) {
454
+ this.handleNodeLeft(frame.newNodeId, frame.newNodeEui64);
455
+ } else {
456
+ if (frame.policyDecision !== EmberJoinDecision.DENY_JOIN) {
457
+ this.handleNodeJoined(frame.newNodeId, frame.newNodeEui64);
458
+ }
459
+ }
460
+ break;
461
+ }
462
+ case frameName === "incomingRouteRecordHandler": {
463
+ this.handleRouteRecord(frame.source, frame.longId, frame.lastHopLqi, frame.lastHopRssi, frame.relay);
464
+ break;
465
+ }
466
+ case frameName === "incomingRouteErrorHandler": {
467
+ this.handleRouteError(frame.status, frame.target);
468
+ break;
469
+ }
470
+ case frameName === "incomingNetworkStatusHandler": {
471
+ this.handleNetworkStatus(frame.errorCode, frame.target);
472
+ break;
473
+ }
474
+ case frameName === "messageSentHandler": {
475
+ // todo
476
+ const status = frame.status;
477
+ if (status !== 0) {
478
+ // send failure
479
+ logger.debug(() => `Delivery failed for ${JSON.stringify(frame)}.`, NS);
480
+ } else {
481
+ // send success
482
+ // If there was a message to the group and this group is not known,
483
+ // then we will register the coordinator in this group
484
+ // Applicable for IKEA remotes
485
+ const msgType = frame.type;
486
+ if (msgType === EmberOutgoingMessageType.OUTGOING_MULTICAST) {
487
+ const apsFrame = frame.apsFrame;
488
+ if (apsFrame.destinationEndpoint === 255) {
489
+ this.multicast.subscribe(apsFrame.groupId, 1).catch(() => {});
490
+ }
491
+ }
492
+ }
493
+ break;
494
+ }
495
+ case frameName === "macFilterMatchMessageHandler": {
496
+ const [rawFrame, data] = EmberIeeeRawFrame.deserialize(EmberIeeeRawFrame, frame.message);
497
+ logger.debug(`macFilterMatchMessageHandler frame message: ${rawFrame}`, NS);
498
+ this.emit("incomingMessage", {
499
+ messageType: null,
500
+ apsFrame: rawFrame,
501
+ lqi: frame.lastHopLqi,
502
+ rssi: frame.lastHopRssi,
503
+ sender: null,
504
+ bindingIndex: null,
505
+ addressIndex: null,
506
+ message: data,
507
+ senderEui64: new EmberEUI64(rawFrame.sourceAddress),
508
+ });
509
+ break;
510
+ }
511
+ case frameName === "stackStatusHandler": {
512
+ logger.debug(`stackStatusHandler: ${EmberStatus.valueToName(EmberStatus, frame.status)}`, NS);
513
+ break;
514
+ }
515
+ // case (frameName === 'childJoinHandler'): {
516
+ // if (!frame.joining) {
517
+ // this.handleNodeLeft(frame.childId, frame.childEui64);
518
+ // } else {
519
+ // this.handleNodeJoined(frame.childId, frame.childEui64);
520
+ // }
521
+ // break;
522
+ // }
523
+ case frameName === "gpepIncomingMessageHandler": {
524
+ let commandIdentifier = Clusters.greenPower.commands.notification.ID;
525
+
526
+ if (frame.gpdCommandId === 0xe0) {
527
+ if (!frame.gpdCommandPayload.length) {
528
+ // XXX: seem to be receiving duplicate commissioningNotification from some devices, second one with empty payload?
529
+ // this will mess with the process no doubt, so dropping them
530
+ return;
531
+ }
532
+
533
+ commandIdentifier = Clusters.greenPower.commands.commissioningNotification.ID;
534
+ }
535
+
536
+ const gpdHeader = Buffer.alloc(15);
537
+ gpdHeader.writeUInt8(0b00000001, 0); // frameControl: FrameType.SPECIFIC + Direction.CLIENT_TO_SERVER + disableDefaultResponse=false
538
+ gpdHeader.writeUInt8(frame.sequenceNumber, 1); // transactionSequenceNumber
539
+ gpdHeader.writeUInt8(commandIdentifier, 2); // commandIdentifier
540
+ gpdHeader.writeUInt16LE(0, 3); // options XXX: bypassed, same as deconz https://github.com/Koenkk/zigbee-herdsman/pull/536
541
+ gpdHeader.writeUInt32LE(frame.srcId, 5); // srcID
542
+ // omitted: gpdIEEEAddr ieeeAddr
543
+ // omitted: gpdEndpoint uint8
544
+ gpdHeader.writeUInt32LE(frame.gpdSecurityFrameCounter, 9); // frameCounter
545
+ gpdHeader.writeUInt8(frame.gpdCommandId, 13); // commandID
546
+ gpdHeader.writeUInt8(frame.gpdCommandPayload.length, 14); // payloadSize
547
+
548
+ const gpdMessage = {
549
+ messageType: frame.gpdCommandId,
550
+ apsFrame: {
551
+ profileId: 0xa1e0,
552
+ sourceEndpoint: 242,
553
+ clusterId: 0x0021,
554
+ sequence: frame.sequenceNumber,
555
+ },
556
+ lqi: frame.gpdLink,
557
+ message: Buffer.concat([gpdHeader, frame.gpdCommandPayload]),
558
+ sender: frame.addr,
559
+ };
560
+ this.emit("incomingMessage", gpdMessage);
561
+ break;
562
+ }
563
+ default:
564
+ // <=== Application frame 35 (childJoinHandler) received: 00013e9c2ebd08feff9ffd9004 +1ms
565
+ // <=== Application frame 35 (childJoinHandler) parsed: 0,1,39998,144,253,159,255,254,8,189,46,4 +1ms
566
+ // Unhandled frame childJoinHandler +2s
567
+ // <=== Application frame 98 (incomingSenderEui64Handler) received: 2ebd08feff9ffd90 +2ms
568
+ // <=== Application frame 98 (incomingSenderEui64Handler) parsed: 144,253,159,255,254,8,189,46 +1ms
569
+ // Unhandled frame incomingSenderEui64Handler
570
+ // <=== Application frame 155 (zigbeeKeyEstablishmentHandler) received: 2ebd08feff9ffd9006 +2ms
571
+ // <=== Application frame 155 (zigbeeKeyEstablishmentHandler) parsed: 144,253,159,255,254,8,189,46,6 +2ms
572
+ // Unhandled frame zigbeeKeyEstablishmentHandler
573
+ logger.debug(`Unhandled frame ${frameName}`, NS);
574
+ }
575
+ }
576
+
577
+ private handleRouteRecord(nwk: number, ieee: EmberEUI64 | number[], lqi: number, rssi: number, relays: number): void {
578
+ // todo
579
+ logger.debug(`handleRouteRecord: nwk=${nwk}, ieee=${ieee.toString()}, lqi=${lqi}, rssi=${rssi}, relays=${relays}`, NS);
580
+
581
+ this.setNode(nwk, ieee);
582
+ // if (ieee && !(ieee instanceof EmberEUI64)) {
583
+ // ieee = new EmberEUI64(ieee);
584
+ // }
585
+ // this.eui64ToRelays.set(ieee.toString(), relays);
586
+ }
587
+
588
+ private handleRouteError(status: EmberStatus, nwk: number): void {
589
+ // todo
590
+ logger.debug(`handleRouteError: nwk=${nwk}, status=${status}`, NS);
591
+ //this.waitress.reject({address: nwk, payload: null, frame: null}, 'Route error');
592
+ // const ieee = await this.networkIdToEUI64(nwk);
593
+ // this.eui64ToRelays.set(ieee.toString(), null);
594
+ }
595
+
596
+ private handleNetworkStatus(errorCode: EmberStackError, nwk: number): void {
597
+ // todo
598
+ // <== Frame: e19401c4000684c5
599
+ // <== 0xc4: {
600
+ // "_cls_":"incomingNetworkStatusHandler",
601
+ // "_id_":196,
602
+ // "_isRequest_":false,
603
+ // "errorCode":6,
604
+ // "target":50564
605
+ // }
606
+ // https://docs.silabs.com/d/zigbee-stack-api/7.4.0/message#ember-incoming-network-status-handler
607
+ logger.debug(`handleNetworkStatus: nwk=${nwk}, errorCode=${errorCode}`, NS);
608
+ }
609
+
610
+ private handleNodeLeft(nwk: number, ieee: EmberEUI64 | number[]): void {
611
+ if (ieee && !(ieee instanceof EmberEUI64)) {
612
+ ieee = new EmberEUI64(ieee);
613
+ }
614
+
615
+ this.eui64ToNodeId.delete(ieee.toString());
616
+ this.emit("deviceLeft", nwk, ieee);
617
+ }
618
+
619
+ private async resetMfgId(mfgId: number): Promise<void> {
620
+ await this.ezsp.execCommand("setManufacturerCode", {code: mfgId});
621
+ // 60 sec for waiting
622
+ await wait(60000);
623
+ await this.ezsp.execCommand("setManufacturerCode", {code: DEFAULT_MFG_ID});
624
+ }
625
+
626
+ public handleNodeJoined(nwk: number, ieee: EmberEUI64 | number[]): void {
627
+ if (ieee && !(ieee instanceof EmberEUI64)) {
628
+ ieee = new EmberEUI64(ieee);
629
+ }
630
+
631
+ for (const rec of IEEE_PREFIX_MFG_ID) {
632
+ if (Buffer.from(ieee.value).indexOf(Buffer.from(rec.prefix)) === 0) {
633
+ // set ManufacturerCode
634
+ logger.debug(`handleNodeJoined: change ManufacturerCode for ieee ${ieee} to ${rec.mfgId}`, NS);
635
+ this.resetMfgId(rec.mfgId).catch(() => {});
636
+ break;
637
+ }
638
+ }
639
+
640
+ this.eui64ToNodeId.set(ieee.toString(), nwk);
641
+ this.emit("deviceJoined", nwk, ieee);
642
+ }
643
+
644
+ public setNode(nwk: number, ieee: EmberEUI64 | number[]): void {
645
+ if (ieee && !(ieee instanceof EmberEUI64)) {
646
+ ieee = new EmberEUI64(ieee);
647
+ }
648
+
649
+ this.eui64ToNodeId.set(ieee.toString(), nwk);
650
+ }
651
+
652
+ public async request(nwk: number | EmberEUI64, apsFrame: EmberApsFrame, data: Buffer, extendedTimeout = false): Promise<boolean> {
653
+ let result = false;
654
+
655
+ for (const delay of REQUEST_ATTEMPT_DELAYS) {
656
+ try {
657
+ const seq = (apsFrame.sequence + 1) & 0xff;
658
+ let eui64: EmberEUI64;
659
+
660
+ if (typeof nwk !== "number") {
661
+ eui64 = nwk as EmberEUI64;
662
+ const strEui64 = eui64.toString();
663
+ let nodeId = this.eui64ToNodeId.get(strEui64);
664
+
665
+ if (nodeId === undefined) {
666
+ nodeId = (await this.ezsp.execCommand("lookupNodeIdByEui64", {eui64: eui64})).nodeId;
667
+
668
+ if (nodeId && nodeId !== 0xffff) {
669
+ this.eui64ToNodeId.set(strEui64, nodeId);
670
+ } else {
671
+ throw new Error(`Unknown EUI64:${strEui64}`);
672
+ }
673
+ }
674
+ nwk = nodeId;
675
+ } else {
676
+ eui64 = await this.networkIdToEUI64(nwk);
677
+ }
678
+
679
+ if (this.ezsp.ezspV < 8) {
680
+ // const route = this.eui64ToRelays.get(eui64.toString());
681
+ // if (route) {
682
+ // const = await this.ezsp.execCommand('setSourceRoute', {eui64});
683
+ // // }
684
+ }
685
+
686
+ if (extendedTimeout) {
687
+ await this.ezsp.execCommand("setExtendedTimeout", {remoteEui64: eui64, extendedTimeout: true});
688
+ }
689
+
690
+ const sendResult = await this.ezsp.sendUnicast(EmberOutgoingMessageType.OUTGOING_DIRECT, nwk, apsFrame, seq, data);
691
+
692
+ // repeat only for these statuses
693
+ if ([EmberStatus.MAX_MESSAGE_LIMIT_REACHED, EmberStatus.NO_BUFFERS, EmberStatus.NETWORK_BUSY].includes(sendResult.status)) {
694
+ // need to repeat after pause
695
+ logger.error(`Request send status ${sendResult.status}. Attempt to repeat the request`, NS);
696
+
697
+ await wait(delay);
698
+ } else {
699
+ result = sendResult.status === EmberStatus.SUCCESS;
700
+ break;
701
+ }
702
+ } catch (e) {
703
+ logger.debug(`Request error ${e}`, NS);
704
+ break;
705
+ }
706
+ }
707
+
708
+ return result;
709
+ }
710
+
711
+ public async mrequest(apsFrame: EmberApsFrame, data: Buffer, _timeout = 30000): Promise<boolean> {
712
+ try {
713
+ const seq = (apsFrame.sequence + 1) & 0xff;
714
+ await this.ezsp.sendMulticast(apsFrame, seq, data);
715
+ return true;
716
+ } catch {
717
+ return false;
718
+ }
719
+ }
720
+
721
+ public async rawrequest(rawFrame: EmberRawFrame, data: Buffer, _timeout = 10000): Promise<boolean> {
722
+ try {
723
+ const msgData = Buffer.concat([EmberRawFrame.serialize(EmberRawFrame, rawFrame), data]);
724
+ await this.ezsp.execCommand("sendRawMessage", {message: msgData});
725
+ return true;
726
+ } catch (e) {
727
+ logger.debug(`Request error ${e}`, NS);
728
+ return false;
729
+ }
730
+ }
731
+
732
+ public async ieeerawrequest(rawFrame: EmberIeeeRawFrame, data: Buffer, _timeout = 10000): Promise<boolean> {
733
+ try {
734
+ const msgData = Buffer.concat([EmberIeeeRawFrame.serialize(EmberIeeeRawFrame, rawFrame), data]);
735
+ await this.ezsp.execCommand("sendRawMessage", {message: msgData});
736
+ return true;
737
+ } catch (e) {
738
+ logger.debug(`Request error ${e}`, NS);
739
+ return false;
740
+ }
741
+ }
742
+
743
+ public async brequest(destination: number, apsFrame: EmberApsFrame, data: Buffer): Promise<boolean> {
744
+ try {
745
+ const seq = (apsFrame.sequence + 1) & 0xff;
746
+ await this.ezsp.sendBroadcast(destination, apsFrame, seq, data);
747
+ return true;
748
+ } catch {
749
+ return false;
750
+ }
751
+ }
752
+
753
+ private nextTransactionID(): number {
754
+ this.transactionID = (this.transactionID + 1) & 0xff;
755
+ return this.transactionID;
756
+ }
757
+
758
+ public makeApsFrame(clusterId: number, disableResponse: boolean): EmberApsFrame {
759
+ const frame = new EmberApsFrame();
760
+ frame.clusterId = clusterId;
761
+ frame.profileId = 0;
762
+ frame.sequence = this.nextTransactionID();
763
+ frame.sourceEndpoint = 0;
764
+ frame.destinationEndpoint = 0;
765
+ frame.groupId = 0;
766
+ frame.options = EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY || EmberApsOption.APS_OPTION_ENABLE_ADDRESS_DISCOVERY;
767
+
768
+ if (!disableResponse) {
769
+ frame.options ||= EmberApsOption.APS_OPTION_RETRY;
770
+ }
771
+
772
+ return frame;
773
+ }
774
+
775
+ public makeEmberRawFrame(): EmberRawFrame {
776
+ const frame = new EmberRawFrame();
777
+ frame.sequence = this.nextTransactionID();
778
+ return frame;
779
+ }
780
+
781
+ public makeEmberIeeeRawFrame(): EmberIeeeRawFrame {
782
+ const frame = new EmberIeeeRawFrame();
783
+ frame.sequence = this.nextTransactionID();
784
+ return frame;
785
+ }
786
+
787
+ public async networkIdToEUI64(nwk: number): Promise<EmberEUI64> {
788
+ for (const [eUI64, value] of this.eui64ToNodeId) {
789
+ if (value === nwk) return new EmberEUI64(eUI64);
790
+ }
791
+
792
+ const value = await this.ezsp.execCommand("lookupEui64ByNodeId", {nodeId: nwk});
793
+
794
+ if (value.status === EmberStatus.SUCCESS) {
795
+ const eUI64 = new EmberEUI64(value.eui64);
796
+ this.eui64ToNodeId.set(eUI64.toString(), nwk);
797
+
798
+ return eUI64;
799
+ }
800
+ throw new Error(`Unrecognized nodeId:${nwk}`);
801
+ }
802
+
803
+ public async preJoining(seconds: number): Promise<void> {
804
+ if (seconds) {
805
+ const ieee = new EmberEUI64("0xFFFFFFFFFFFFFFFF");
806
+ const linkKey = new EmberKeyData();
807
+ linkKey.contents = Buffer.from("ZigBeeAlliance09");
808
+ const result = await this.addTransientLinkKey(ieee, linkKey);
809
+
810
+ if (result.status !== EmberStatus.SUCCESS) {
811
+ throw new Error(`Add Transient Link Key for '${ieee}' failed`);
812
+ }
813
+
814
+ if (this.ezsp.ezspV >= 8) {
815
+ await this.ezsp.setPolicy(
816
+ EzspPolicyId.TRUST_CENTER_POLICY,
817
+ EzspDecisionBitmask.ALLOW_UNSECURED_REJOINS | EzspDecisionBitmask.ALLOW_JOINS,
818
+ );
819
+ //| EzspDecisionBitmask.JOINS_USE_INSTALL_CODE_KEY
820
+ }
821
+ } else {
822
+ await this.ezsp.execCommand("clearTransientLinkKeys");
823
+ }
824
+ }
825
+
826
+ public async permitJoining(seconds: number): Promise<EZSPFrameData> {
827
+ return await this.ezsp.execCommand("permitJoining", {duration: seconds});
828
+ }
829
+
830
+ public makeZDOframe(name: string | number, params: ParamsDesc): Buffer {
831
+ return this.ezsp.makeZDOframe(name, params);
832
+ }
833
+
834
+ public async addEndpoint({
835
+ endpoint = 1,
836
+ profileId = 260,
837
+ deviceId = 0xbeef,
838
+ appFlags = 0,
839
+ inputClusters = [],
840
+ outputClusters = [],
841
+ }: AddEndpointParameters): Promise<void> {
842
+ const res = await this.ezsp.execCommand("addEndpoint", {
843
+ endpoint: endpoint,
844
+ profileId: profileId,
845
+ deviceId: deviceId,
846
+ appFlags: appFlags,
847
+ inputClusterCount: inputClusters.length,
848
+ outputClusterCount: outputClusters.length,
849
+ inputClusterList: inputClusters,
850
+ outputClusterList: outputClusters,
851
+ });
852
+ logger.debug(() => `Ezsp adding endpoint: ${JSON.stringify(res)}`, NS);
853
+ }
854
+
855
+ public waitFor(
856
+ address: number | string,
857
+ clusterId: number,
858
+ sequence: number,
859
+ timeout = 10000,
860
+ ): ReturnType<typeof this.waitress.waitFor> & {cancel: () => void} {
861
+ const waiter = this.waitress.waitFor({address, clusterId, sequence}, timeout);
862
+
863
+ return {...waiter, cancel: () => this.waitress.remove(waiter.ID)};
864
+ }
865
+
866
+ private waitressTimeoutFormatter(matcher: EmberWaitressMatcher, timeout: number): string {
867
+ return `${JSON.stringify(matcher)} after ${timeout}ms`;
868
+ }
869
+
870
+ private waitressValidator(payload: EmberFrame, matcher: EmberWaitressMatcher): boolean {
871
+ return (
872
+ (!matcher.address || payload.address === matcher.address) &&
873
+ (!payload.frame || payload.frame.clusterId === matcher.clusterId) &&
874
+ (!payload.frame || payload.payload[0] === matcher.sequence)
875
+ );
876
+ }
877
+
878
+ public setChannel(channel: number): Promise<EZSPFrameData> {
879
+ return this.ezsp.execCommand("setLogicalAndRadioChannel", {radioChannel: channel});
880
+ }
881
+
882
+ public addTransientLinkKey(partner: EmberEUI64, transientKey: EmberKeyData): Promise<EZSPFrameData> {
883
+ if (this.ezsp.ezspV < 13) {
884
+ return this.ezsp.execCommand("addTransientLinkKey", {partner, transientKey});
885
+ }
886
+
887
+ return this.ezsp.execCommand("importTransientKey", {partner, transientKey, flags: 0});
888
+ }
889
+
890
+ public async addInstallCode(ieeeAddress: string, key: Buffer, hashed: boolean): Promise<void> {
891
+ const ieee = new EmberEUI64(ieeeAddress);
892
+ const linkKey = new EmberKeyData();
893
+ linkKey.contents = hashed ? key : ZSpec.Utils.aes128MmoHash(key);
894
+ const result = await this.addTransientLinkKey(ieee, linkKey);
895
+
896
+ if (result.status !== EmberStatus.SUCCESS) {
897
+ throw new Error(`Add install code for '${ieeeAddress}' failed`);
898
+ }
899
+ }
900
+
901
+ public async getKey(keyType: EmberKeyType): Promise<EZSPFrameData> {
902
+ if (this.ezsp.ezspV < 13) {
903
+ return await this.ezsp.execCommand("getKey", {keyType});
904
+ }
905
+
906
+ // Mapping EmberKeyType to SecManKeyType (ezsp13)
907
+ const SecManKeyType = {
908
+ [EmberKeyType.TRUST_CENTER_LINK_KEY]: 2,
909
+ [EmberKeyType.CURRENT_NETWORK_KEY]: 1,
910
+ };
911
+ const smc = new EmberSecurityManagerContext();
912
+ smc.type = SecManKeyType[keyType as number];
913
+ smc.index = 0;
914
+ smc.derivedType = EmberDerivedKeyType.NONE;
915
+ smc.eui64 = new EmberEUI64("0x0000000000000000");
916
+ smc.multiNetworkIndex = 0;
917
+ smc.flags = 0;
918
+ smc.psaKeyAlgPermission = 0;
919
+ const keyInfo = await this.ezsp.execCommand("exportKey", {context: smc});
920
+
921
+ if (keyInfo.status !== SLStatus.SL_STATUS_OK) {
922
+ logger.error(`exportKey(${EmberKeyType.valueToName(EmberKeyType, keyType)}) returned unexpected SL status: ${keyInfo.status}`, NS);
923
+ }
924
+ return keyInfo;
925
+ }
926
+
927
+ public async getNetworkKeyInfo(): Promise<EZSPFrameData> {
928
+ if (this.ezsp.ezspV < 13) {
929
+ throw new Error("getNetKeyInfo(): Invalid call on EZSP < 13.");
930
+ }
931
+
932
+ const keyInfo = await this.ezsp.execCommand("getNetworkKeyInfo");
933
+ if (keyInfo.status !== SLStatus.SL_STATUS_OK) {
934
+ logger.error(`getNetworkKeyInfo() returned unexpected SL status: ${keyInfo.status}`, NS);
935
+ }
936
+
937
+ return keyInfo;
938
+ }
939
+
940
+ private async needsToBeRestore(options: TsType.NetworkOptions): Promise<boolean> {
941
+ // if no backup and the settings have been changed, then need to start a new network
942
+ const backup = this.backupMan.getStoredBackup();
943
+ if (!backup) return false;
944
+
945
+ let valid = true;
946
+ //valid = valid && (await this.ezsp.networkInit());
947
+ const netParams = await this.ezsp.execCommand("getNetworkParameters");
948
+ const networkParams = netParams.parameters;
949
+ logger.debug(`Current Node type: ${netParams.nodeType}, Network parameters: ${networkParams}`, NS);
950
+ logger.debug(`Backuped network parameters: ${backup.networkOptions}`, NS);
951
+ const networkKey = await this.getKey(EmberKeyType.CURRENT_NETWORK_KEY);
952
+ let netKey: Buffer;
953
+
954
+ if (this.ezsp.ezspV < 13) {
955
+ netKey = Buffer.from((networkKey.keyStruct as EmberKeyStruct).key.contents);
956
+ } else {
957
+ netKey = Buffer.from((networkKey.keyData as EmberKeyData).contents);
958
+ }
959
+
960
+ // if the settings in the backup match the chip, then need to warn to delete the backup file first
961
+ valid = valid && networkParams.panId === backup.networkOptions.panId;
962
+ valid = valid && networkParams.radioChannel === backup.logicalChannel;
963
+ valid = valid && Buffer.from(networkParams.extendedPanId).equals(backup.networkOptions.extendedPanId);
964
+ valid = valid && Buffer.from(netKey).equals(backup.networkOptions.networkKey);
965
+ if (valid) {
966
+ logger.error("Configuration is not consistent with adapter backup!", NS);
967
+ logger.error(`- PAN ID: configured=${options.panID}, adapter=${networkParams.panId}, backup=${backup.networkOptions.panId}`, NS);
968
+ logger.error(
969
+ `- Extended PAN ID: configured=${
970
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
971
+ Buffer.from(options.extendedPanID!).toString("hex")
972
+ }, ` +
973
+ `adapter=${Buffer.from(networkParams.extendedPanId).toString("hex")}, ` +
974
+ `backup=${Buffer.from(networkParams.extendedPanId).toString("hex")}`,
975
+ NS,
976
+ );
977
+ logger.error(`- Channel: configured=${options.channelList}, adapter=${networkParams.radioChannel}, backup=${backup.logicalChannel}`, NS);
978
+ logger.error(
979
+ `- Network key: configured=${
980
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
981
+ Buffer.from(options.networkKey!).toString("hex")
982
+ }, ` +
983
+ `adapter=${Buffer.from(netKey).toString("hex")}, ` +
984
+ `backup=${backup.networkOptions.networkKey.toString("hex")}`,
985
+ NS,
986
+ );
987
+ logger.error("Please update configuration to prevent further issues.", NS);
988
+ logger.error("If you wish to re-commission your network, please remove coordinator backup.", NS);
989
+ logger.error("Re-commissioning your network will require re-pairing of all devices!", NS);
990
+ throw new Error("startup failed - configuration-adapter mismatch - see logs above for more information");
991
+ }
992
+ valid = true;
993
+ // if the settings in the backup match the config, then the old network is in the chip and needs to be restored
994
+ valid = valid && options.panID === backup.networkOptions.panId;
995
+ valid = valid && options.channelList.includes(backup.logicalChannel);
996
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
997
+ valid = valid && Buffer.from(options.extendedPanID!).equals(backup.networkOptions.extendedPanId);
998
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
999
+ valid = valid && Buffer.from(options.networkKey!).equals(backup.networkOptions.networkKey);
1000
+ return valid;
1001
+ }
1002
+ }