zigbee-herdsman 3.5.2 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (728) hide show
  1. package/.github/dependabot.yml +4 -0
  2. package/.github/workflows/ci.yml +3 -5
  3. package/.github/workflows/stale.yml +1 -1
  4. package/.github/workflows/typedoc.yaml +1 -1
  5. package/.release-please-manifest.json +1 -1
  6. package/.vscode/extensions.json +3 -0
  7. package/.vscode/settings.json +11 -0
  8. package/CHANGELOG.md +32 -0
  9. package/biome.json +89 -0
  10. package/dist/adapter/adapter.d.ts +11 -11
  11. package/dist/adapter/adapter.d.ts.map +1 -1
  12. package/dist/adapter/adapter.js +14 -14
  13. package/dist/adapter/adapterDiscovery.d.ts +6 -6
  14. package/dist/adapter/adapterDiscovery.d.ts.map +1 -1
  15. package/dist/adapter/adapterDiscovery.js +139 -141
  16. package/dist/adapter/adapterDiscovery.js.map +1 -1
  17. package/dist/adapter/const.d.ts +1 -1
  18. package/dist/adapter/const.js +2 -2
  19. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +16 -16
  20. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  21. package/dist/adapter/deconz/adapter/deconzAdapter.js +95 -100
  22. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  23. package/dist/adapter/deconz/driver/constants.d.ts +5 -5
  24. package/dist/adapter/deconz/driver/constants.d.ts.map +1 -1
  25. package/dist/adapter/deconz/driver/driver.d.ts +9 -9
  26. package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
  27. package/dist/adapter/deconz/driver/driver.js +112 -106
  28. package/dist/adapter/deconz/driver/driver.js.map +1 -1
  29. package/dist/adapter/deconz/driver/frame.d.ts +1 -1
  30. package/dist/adapter/deconz/driver/frame.d.ts.map +1 -1
  31. package/dist/adapter/deconz/driver/frame.js +1 -2
  32. package/dist/adapter/deconz/driver/frame.js.map +1 -1
  33. package/dist/adapter/deconz/driver/frameParser.d.ts +1 -1
  34. package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
  35. package/dist/adapter/deconz/driver/frameParser.js +66 -70
  36. package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
  37. package/dist/adapter/deconz/driver/parser.d.ts +1 -1
  38. package/dist/adapter/deconz/driver/parser.d.ts.map +1 -1
  39. package/dist/adapter/deconz/driver/parser.js +2 -2
  40. package/dist/adapter/deconz/driver/parser.js.map +1 -1
  41. package/dist/adapter/deconz/driver/writer.d.ts +2 -2
  42. package/dist/adapter/deconz/driver/writer.d.ts.map +1 -1
  43. package/dist/adapter/deconz/driver/writer.js +1 -1
  44. package/dist/adapter/ember/adapter/emberAdapter.d.ts +19 -19
  45. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
  46. package/dist/adapter/ember/adapter/emberAdapter.js +117 -97
  47. package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
  48. package/dist/adapter/ember/adapter/endpoints.d.ts +1 -1
  49. package/dist/adapter/ember/adapter/endpoints.d.ts.map +1 -1
  50. package/dist/adapter/ember/adapter/oneWaitress.d.ts +5 -5
  51. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
  52. package/dist/adapter/ember/adapter/oneWaitress.js +2 -2
  53. package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
  54. package/dist/adapter/ember/adapter/tokensManager.d.ts +3 -3
  55. package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -1
  56. package/dist/adapter/ember/adapter/tokensManager.js +20 -23
  57. package/dist/adapter/ember/adapter/tokensManager.js.map +1 -1
  58. package/dist/adapter/ember/enums.d.ts +4 -4
  59. package/dist/adapter/ember/enums.d.ts.map +1 -1
  60. package/dist/adapter/ember/enums.js +4 -6
  61. package/dist/adapter/ember/enums.js.map +1 -1
  62. package/dist/adapter/ember/ezsp/buffalo.d.ts +4 -4
  63. package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -1
  64. package/dist/adapter/ember/ezsp/buffalo.js +30 -32
  65. package/dist/adapter/ember/ezsp/buffalo.js.map +1 -1
  66. package/dist/adapter/ember/ezsp/ezsp.d.ts +46 -46
  67. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
  68. package/dist/adapter/ember/ezsp/ezsp.js +85 -111
  69. package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
  70. package/dist/adapter/ember/ezspError.d.ts +1 -1
  71. package/dist/adapter/ember/types.d.ts +14 -14
  72. package/dist/adapter/ember/types.d.ts.map +1 -1
  73. package/dist/adapter/ember/uart/ash.d.ts +5 -5
  74. package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
  75. package/dist/adapter/ember/uart/ash.js +80 -71
  76. package/dist/adapter/ember/uart/ash.js.map +1 -1
  77. package/dist/adapter/ember/uart/parser.d.ts +2 -2
  78. package/dist/adapter/ember/uart/parser.d.ts.map +1 -1
  79. package/dist/adapter/ember/uart/parser.js +2 -1
  80. package/dist/adapter/ember/uart/parser.js.map +1 -1
  81. package/dist/adapter/ember/uart/queues.js +27 -29
  82. package/dist/adapter/ember/uart/queues.js.map +1 -1
  83. package/dist/adapter/ember/uart/writer.d.ts +1 -1
  84. package/dist/adapter/ember/uart/writer.d.ts.map +1 -1
  85. package/dist/adapter/ember/uart/writer.js +3 -5
  86. package/dist/adapter/ember/uart/writer.js.map +1 -1
  87. package/dist/adapter/ember/utils/initters.d.ts +2 -2
  88. package/dist/adapter/ember/utils/initters.d.ts.map +1 -1
  89. package/dist/adapter/ember/utils/initters.js +1 -1
  90. package/dist/adapter/ember/utils/math.js +1 -1
  91. package/dist/adapter/events.d.ts +1 -1
  92. package/dist/adapter/events.d.ts.map +1 -1
  93. package/dist/adapter/ezsp/adapter/backup.d.ts +3 -3
  94. package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
  95. package/dist/adapter/ezsp/adapter/backup.js +8 -10
  96. package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
  97. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +12 -12
  98. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  99. package/dist/adapter/ezsp/adapter/ezspAdapter.js +45 -44
  100. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  101. package/dist/adapter/ezsp/driver/driver.d.ts +12 -12
  102. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  103. package/dist/adapter/ezsp/driver/driver.js +148 -141
  104. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  105. package/dist/adapter/ezsp/driver/ezsp.d.ts +7 -7
  106. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  107. package/dist/adapter/ezsp/driver/ezsp.js +61 -59
  108. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  109. package/dist/adapter/ezsp/driver/frame.js +2 -2
  110. package/dist/adapter/ezsp/driver/index.d.ts +2 -2
  111. package/dist/adapter/ezsp/driver/multicast.d.ts +8 -5
  112. package/dist/adapter/ezsp/driver/multicast.d.ts.map +1 -1
  113. package/dist/adapter/ezsp/driver/multicast.js +9 -9
  114. package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
  115. package/dist/adapter/ezsp/driver/parser.d.ts +1 -1
  116. package/dist/adapter/ezsp/driver/parser.js +3 -3
  117. package/dist/adapter/ezsp/driver/types/basic.d.ts +5 -5
  118. package/dist/adapter/ezsp/driver/types/basic.d.ts.map +1 -1
  119. package/dist/adapter/ezsp/driver/types/basic.js +12 -33
  120. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  121. package/dist/adapter/ezsp/driver/types/index.d.ts +3 -3
  122. package/dist/adapter/ezsp/driver/types/index.d.ts.map +1 -1
  123. package/dist/adapter/ezsp/driver/types/index.js +8 -9
  124. package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
  125. package/dist/adapter/ezsp/driver/types/named.d.ts +2 -2
  126. package/dist/adapter/ezsp/driver/types/named.d.ts.map +1 -1
  127. package/dist/adapter/ezsp/driver/types/named.js +8 -11
  128. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  129. package/dist/adapter/ezsp/driver/types/struct.d.ts +2 -2
  130. package/dist/adapter/ezsp/driver/types/struct.d.ts.map +1 -1
  131. package/dist/adapter/ezsp/driver/types/struct.js +207 -214
  132. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  133. package/dist/adapter/ezsp/driver/uart.d.ts +2 -2
  134. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  135. package/dist/adapter/ezsp/driver/uart.js +48 -37
  136. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  137. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +3 -3
  138. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts.map +1 -1
  139. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +16 -34
  140. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +1 -1
  141. package/dist/adapter/ezsp/driver/utils/index.d.ts +4 -4
  142. package/dist/adapter/ezsp/driver/utils/index.d.ts.map +1 -1
  143. package/dist/adapter/ezsp/driver/utils/index.js +4 -4
  144. package/dist/adapter/ezsp/driver/utils/index.js.map +1 -1
  145. package/dist/adapter/ezsp/driver/writer.d.ts +1 -1
  146. package/dist/adapter/ezsp/driver/writer.js +2 -2
  147. package/dist/adapter/index.d.ts +3 -3
  148. package/dist/adapter/serialPort.d.ts +3 -3
  149. package/dist/adapter/serialPort.d.ts.map +1 -1
  150. package/dist/adapter/serialPort.js +1 -0
  151. package/dist/adapter/serialPort.js.map +1 -1
  152. package/dist/adapter/socketPortUtils.js +3 -3
  153. package/dist/adapter/tstype.d.ts +6 -6
  154. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +4 -4
  155. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
  156. package/dist/adapter/z-stack/adapter/adapter-backup.js +106 -119
  157. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  158. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +10 -10
  159. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts.map +1 -1
  160. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +23 -24
  161. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +1 -1
  162. package/dist/adapter/z-stack/adapter/manager.d.ts +6 -6
  163. package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
  164. package/dist/adapter/z-stack/adapter/manager.js +116 -127
  165. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  166. package/dist/adapter/z-stack/adapter/tstype.d.ts +3 -3
  167. package/dist/adapter/z-stack/adapter/tstype.js +3 -3
  168. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +10 -10
  169. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  170. package/dist/adapter/z-stack/adapter/zStackAdapter.js +125 -137
  171. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  172. package/dist/adapter/z-stack/constants/common.d.ts.map +1 -1
  173. package/dist/adapter/z-stack/constants/common.js +0 -3
  174. package/dist/adapter/z-stack/constants/common.js.map +1 -1
  175. package/dist/adapter/z-stack/constants/index.d.ts +10 -10
  176. package/dist/adapter/z-stack/constants/index.d.ts.map +1 -1
  177. package/dist/adapter/z-stack/constants/index.js +2 -2
  178. package/dist/adapter/z-stack/constants/index.js.map +1 -1
  179. package/dist/adapter/z-stack/constants/utils.d.ts +1 -1
  180. package/dist/adapter/z-stack/constants/utils.js +2 -2
  181. package/dist/adapter/z-stack/constants/utils.js.map +1 -1
  182. package/dist/adapter/z-stack/models/startup-options.d.ts +2 -2
  183. package/dist/adapter/z-stack/models/startup-options.d.ts.map +1 -1
  184. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +1 -1
  185. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts.map +1 -1
  186. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +4 -5
  187. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js.map +1 -1
  188. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +2 -2
  189. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts.map +1 -1
  190. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +3 -4
  191. package/dist/adapter/z-stack/structs/entries/address-manager-table.js.map +1 -1
  192. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +1 -1
  193. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts.map +1 -1
  194. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +1 -2
  195. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js.map +1 -1
  196. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +2 -2
  197. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts.map +1 -1
  198. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +3 -4
  199. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js.map +1 -1
  200. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +1 -1
  201. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts.map +1 -1
  202. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +6 -7
  203. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js.map +1 -1
  204. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +2 -2
  205. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts.map +1 -1
  206. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +3 -4
  207. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js.map +1 -1
  208. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +1 -1
  209. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts.map +1 -1
  210. package/dist/adapter/z-stack/structs/entries/channel-list.js +1 -2
  211. package/dist/adapter/z-stack/structs/entries/channel-list.js.map +1 -1
  212. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +1 -1
  213. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts.map +1 -1
  214. package/dist/adapter/z-stack/structs/entries/has-configured.js +2 -3
  215. package/dist/adapter/z-stack/structs/entries/has-configured.js.map +1 -1
  216. package/dist/adapter/z-stack/structs/entries/index.d.ts +16 -16
  217. package/dist/adapter/z-stack/structs/entries/nib.d.ts +1 -1
  218. package/dist/adapter/z-stack/structs/entries/nib.d.ts.map +1 -1
  219. package/dist/adapter/z-stack/structs/entries/nib.js +49 -50
  220. package/dist/adapter/z-stack/structs/entries/nib.js.map +1 -1
  221. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +1 -1
  222. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts.map +1 -1
  223. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +1 -2
  224. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js.map +1 -1
  225. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +1 -1
  226. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts.map +1 -1
  227. package/dist/adapter/z-stack/structs/entries/nwk-key.js +1 -2
  228. package/dist/adapter/z-stack/structs/entries/nwk-key.js.map +1 -1
  229. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +1 -1
  230. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts.map +1 -1
  231. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +1 -2
  232. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js.map +1 -1
  233. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +1 -1
  234. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts.map +1 -1
  235. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +3 -4
  236. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js.map +1 -1
  237. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +2 -2
  238. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts.map +1 -1
  239. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +3 -4
  240. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js.map +1 -1
  241. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +1 -1
  242. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts.map +1 -1
  243. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +4 -5
  244. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js.map +1 -1
  245. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +2 -2
  246. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts.map +1 -1
  247. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +3 -4
  248. package/dist/adapter/z-stack/structs/entries/security-manager-table.js.map +1 -1
  249. package/dist/adapter/z-stack/structs/index.d.ts +4 -4
  250. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +2 -2
  251. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts.map +1 -1
  252. package/dist/adapter/z-stack/structs/struct.d.ts +8 -8
  253. package/dist/adapter/z-stack/structs/struct.d.ts.map +1 -1
  254. package/dist/adapter/z-stack/structs/struct.js +42 -43
  255. package/dist/adapter/z-stack/structs/struct.js.map +1 -1
  256. package/dist/adapter/z-stack/structs/table.d.ts +3 -3
  257. package/dist/adapter/z-stack/structs/table.d.ts.map +1 -1
  258. package/dist/adapter/z-stack/structs/table.js +10 -10
  259. package/dist/adapter/z-stack/structs/table.js.map +1 -1
  260. package/dist/adapter/z-stack/unpi/frame.d.ts +1 -1
  261. package/dist/adapter/z-stack/unpi/frame.d.ts.map +1 -1
  262. package/dist/adapter/z-stack/unpi/frame.js +2 -4
  263. package/dist/adapter/z-stack/unpi/frame.js.map +1 -1
  264. package/dist/adapter/z-stack/unpi/index.d.ts +4 -4
  265. package/dist/adapter/z-stack/unpi/parser.d.ts +1 -1
  266. package/dist/adapter/z-stack/unpi/parser.js +3 -3
  267. package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
  268. package/dist/adapter/z-stack/unpi/writer.d.ts +2 -2
  269. package/dist/adapter/z-stack/unpi/writer.d.ts.map +1 -1
  270. package/dist/adapter/z-stack/unpi/writer.js +1 -1
  271. package/dist/adapter/z-stack/utils/index.d.ts +2 -2
  272. package/dist/adapter/z-stack/utils/network-options.d.ts +1 -1
  273. package/dist/adapter/z-stack/utils/network-options.d.ts.map +1 -1
  274. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +3 -3
  275. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts.map +1 -1
  276. package/dist/adapter/z-stack/znp/buffaloZnp.js +34 -20
  277. package/dist/adapter/z-stack/znp/buffaloZnp.js.map +1 -1
  278. package/dist/adapter/z-stack/znp/definition.d.ts +2 -2
  279. package/dist/adapter/z-stack/znp/definition.d.ts.map +1 -1
  280. package/dist/adapter/z-stack/znp/definition.js +1111 -1111
  281. package/dist/adapter/z-stack/znp/index.d.ts +2 -2
  282. package/dist/adapter/z-stack/znp/tstype.d.ts +7 -7
  283. package/dist/adapter/z-stack/znp/tstype.d.ts.map +1 -1
  284. package/dist/adapter/z-stack/znp/utils.d.ts +1 -1
  285. package/dist/adapter/z-stack/znp/utils.d.ts.map +1 -1
  286. package/dist/adapter/z-stack/znp/utils.js +2 -2
  287. package/dist/adapter/z-stack/znp/znp.d.ts +7 -7
  288. package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
  289. package/dist/adapter/z-stack/znp/znp.js +46 -45
  290. package/dist/adapter/z-stack/znp/znp.js.map +1 -1
  291. package/dist/adapter/z-stack/znp/zpiObject.d.ts +8 -8
  292. package/dist/adapter/z-stack/znp/zpiObject.d.ts.map +1 -1
  293. package/dist/adapter/z-stack/znp/zpiObject.js +6 -6
  294. package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
  295. package/dist/adapter/zboss/adapter/zbossAdapter.d.ts +11 -11
  296. package/dist/adapter/zboss/adapter/zbossAdapter.d.ts.map +1 -1
  297. package/dist/adapter/zboss/adapter/zbossAdapter.js +37 -36
  298. package/dist/adapter/zboss/adapter/zbossAdapter.js.map +1 -1
  299. package/dist/adapter/zboss/commands.d.ts +4 -6
  300. package/dist/adapter/zboss/commands.d.ts.map +1 -1
  301. package/dist/adapter/zboss/commands.js +321 -287
  302. package/dist/adapter/zboss/commands.js.map +1 -1
  303. package/dist/adapter/zboss/driver.d.ts +9 -9
  304. package/dist/adapter/zboss/driver.d.ts.map +1 -1
  305. package/dist/adapter/zboss/driver.js +25 -25
  306. package/dist/adapter/zboss/driver.js.map +1 -1
  307. package/dist/adapter/zboss/frame.d.ts +9 -9
  308. package/dist/adapter/zboss/frame.d.ts.map +1 -1
  309. package/dist/adapter/zboss/frame.js +15 -15
  310. package/dist/adapter/zboss/frame.js.map +1 -1
  311. package/dist/adapter/zboss/reader.d.ts +2 -2
  312. package/dist/adapter/zboss/reader.d.ts.map +1 -1
  313. package/dist/adapter/zboss/reader.js +6 -5
  314. package/dist/adapter/zboss/reader.js.map +1 -1
  315. package/dist/adapter/zboss/uart.d.ts +3 -3
  316. package/dist/adapter/zboss/uart.d.ts.map +1 -1
  317. package/dist/adapter/zboss/uart.js +36 -36
  318. package/dist/adapter/zboss/uart.js.map +1 -1
  319. package/dist/adapter/zboss/writer.d.ts +1 -1
  320. package/dist/adapter/zboss/writer.d.ts.map +1 -1
  321. package/dist/adapter/zboss/writer.js +3 -5
  322. package/dist/adapter/zboss/writer.js.map +1 -1
  323. package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.js +2 -2
  324. package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.js.map +1 -1
  325. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +14 -14
  326. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
  327. package/dist/adapter/zigate/adapter/zigateAdapter.js +52 -53
  328. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  329. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +6 -6
  330. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +1 -1
  331. package/dist/adapter/zigate/driver/buffaloZiGate.js +41 -23
  332. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
  333. package/dist/adapter/zigate/driver/commandType.d.ts +2 -2
  334. package/dist/adapter/zigate/driver/commandType.d.ts.map +1 -1
  335. package/dist/adapter/zigate/driver/commandType.js +37 -37
  336. package/dist/adapter/zigate/driver/commandType.js.map +1 -1
  337. package/dist/adapter/zigate/driver/constants.d.ts +27 -200
  338. package/dist/adapter/zigate/driver/constants.d.ts.map +1 -1
  339. package/dist/adapter/zigate/driver/constants.js +40 -236
  340. package/dist/adapter/zigate/driver/constants.js.map +1 -1
  341. package/dist/adapter/zigate/driver/frame.d.ts.map +1 -1
  342. package/dist/adapter/zigate/driver/frame.js +4 -3
  343. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  344. package/dist/adapter/zigate/driver/messageType.d.ts +1 -1
  345. package/dist/adapter/zigate/driver/messageType.js +76 -76
  346. package/dist/adapter/zigate/driver/ziGateObject.d.ts +3 -3
  347. package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +1 -1
  348. package/dist/adapter/zigate/driver/ziGateObject.js +7 -6
  349. package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
  350. package/dist/adapter/zigate/driver/zigate.d.ts +8 -8
  351. package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
  352. package/dist/adapter/zigate/driver/zigate.js +59 -54
  353. package/dist/adapter/zigate/driver/zigate.js.map +1 -1
  354. package/dist/adapter/zoh/adapter/utils.js +1 -1
  355. package/dist/adapter/zoh/adapter/zohAdapter.d.ts +13 -13
  356. package/dist/adapter/zoh/adapter/zohAdapter.d.ts.map +1 -1
  357. package/dist/adapter/zoh/adapter/zohAdapter.js +101 -67
  358. package/dist/adapter/zoh/adapter/zohAdapter.js.map +1 -1
  359. package/dist/buffalo/buffalo.d.ts +2 -2
  360. package/dist/buffalo/buffalo.js +4 -4
  361. package/dist/buffalo/buffalo.js.map +1 -1
  362. package/dist/buffalo/index.d.ts +1 -1
  363. package/dist/controller/controller.d.ts +7 -7
  364. package/dist/controller/controller.d.ts.map +1 -1
  365. package/dist/controller/controller.js +94 -98
  366. package/dist/controller/controller.js.map +1 -1
  367. package/dist/controller/database.d.ts +1 -1
  368. package/dist/controller/database.d.ts.map +1 -1
  369. package/dist/controller/database.js +9 -9
  370. package/dist/controller/database.js.map +1 -1
  371. package/dist/controller/events.d.ts +6 -6
  372. package/dist/controller/events.d.ts.map +1 -1
  373. package/dist/controller/greenPower.d.ts +21 -21
  374. package/dist/controller/greenPower.d.ts.map +1 -1
  375. package/dist/controller/greenPower.js +41 -41
  376. package/dist/controller/greenPower.js.map +1 -1
  377. package/dist/controller/helpers/index.d.ts +1 -1
  378. package/dist/controller/helpers/request.d.ts +2 -2
  379. package/dist/controller/helpers/request.d.ts.map +1 -1
  380. package/dist/controller/helpers/request.js +31 -27
  381. package/dist/controller/helpers/request.js.map +1 -1
  382. package/dist/controller/helpers/requestQueue.d.ts +3 -3
  383. package/dist/controller/helpers/requestQueue.d.ts.map +1 -1
  384. package/dist/controller/helpers/requestQueue.js +20 -20
  385. package/dist/controller/helpers/requestQueue.js.map +1 -1
  386. package/dist/controller/helpers/zclFrameConverter.d.ts +2 -2
  387. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  388. package/dist/controller/helpers/zclFrameConverter.js +1 -1
  389. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  390. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +6 -4
  391. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts.map +1 -1
  392. package/dist/controller/helpers/zclTransactionSequenceNumber.js +6 -5
  393. package/dist/controller/helpers/zclTransactionSequenceNumber.js.map +1 -1
  394. package/dist/controller/index.d.ts +1 -1
  395. package/dist/controller/model/device.d.ts +23 -19
  396. package/dist/controller/model/device.d.ts.map +1 -1
  397. package/dist/controller/model/device.js +153 -128
  398. package/dist/controller/model/device.js.map +1 -1
  399. package/dist/controller/model/endpoint.d.ts +11 -11
  400. package/dist/controller/model/endpoint.d.ts.map +1 -1
  401. package/dist/controller/model/endpoint.js +84 -67
  402. package/dist/controller/model/endpoint.js.map +1 -1
  403. package/dist/controller/model/entity.d.ts +3 -3
  404. package/dist/controller/model/entity.d.ts.map +1 -1
  405. package/dist/controller/model/group.d.ts +4 -4
  406. package/dist/controller/model/group.d.ts.map +1 -1
  407. package/dist/controller/model/group.js +21 -9
  408. package/dist/controller/model/group.js.map +1 -1
  409. package/dist/controller/model/index.d.ts +4 -4
  410. package/dist/controller/touchlink.d.ts +1 -1
  411. package/dist/controller/touchlink.d.ts.map +1 -1
  412. package/dist/controller/touchlink.js +11 -11
  413. package/dist/controller/tstype.d.ts +3 -3
  414. package/dist/index.d.ts +10 -10
  415. package/dist/models/backup-storage-legacy.d.ts +14 -16
  416. package/dist/models/backup-storage-legacy.d.ts.map +1 -1
  417. package/dist/models/backup-storage-unified.d.ts +1 -1
  418. package/dist/models/backup.d.ts +2 -2
  419. package/dist/models/backup.d.ts.map +1 -1
  420. package/dist/models/index.d.ts +4 -4
  421. package/dist/utils/backup.d.ts +1 -1
  422. package/dist/utils/backup.d.ts.map +1 -1
  423. package/dist/utils/backup.js +26 -26
  424. package/dist/utils/backup.js.map +1 -1
  425. package/dist/utils/index.d.ts +5 -5
  426. package/dist/utils/logger.js +3 -3
  427. package/dist/utils/patchBigIntSerialization.js +1 -1
  428. package/dist/utils/patchBigIntSerialization.js.map +1 -1
  429. package/dist/utils/queue.d.ts.map +1 -1
  430. package/dist/utils/queue.js +1 -0
  431. package/dist/utils/queue.js.map +1 -1
  432. package/dist/utils/utils.d.ts.map +1 -1
  433. package/dist/utils/utils.js +5 -4
  434. package/dist/utils/utils.js.map +1 -1
  435. package/dist/utils/waitress.d.ts +1 -1
  436. package/dist/utils/waitress.js +3 -3
  437. package/dist/zspec/consts.d.ts +1 -1
  438. package/dist/zspec/consts.d.ts.map +1 -1
  439. package/dist/zspec/consts.js +1 -1
  440. package/dist/zspec/index.d.ts +3 -3
  441. package/dist/zspec/tstypes.d.ts +1 -1
  442. package/dist/zspec/utils.d.ts +4 -4
  443. package/dist/zspec/utils.d.ts.map +1 -1
  444. package/dist/zspec/utils.js +9 -13
  445. package/dist/zspec/utils.js.map +1 -1
  446. package/dist/zspec/zcl/buffaloZcl.d.ts +3 -3
  447. package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -1
  448. package/dist/zspec/zcl/buffaloZcl.js +127 -84
  449. package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
  450. package/dist/zspec/zcl/definition/cluster.d.ts +1 -1
  451. package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
  452. package/dist/zspec/zcl/definition/cluster.js +1280 -911
  453. package/dist/zspec/zcl/definition/cluster.js.map +1 -1
  454. package/dist/zspec/zcl/definition/consts.js +7 -7
  455. package/dist/zspec/zcl/definition/foundation.d.ts +3 -3
  456. package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -1
  457. package/dist/zspec/zcl/definition/foundation.js +88 -89
  458. package/dist/zspec/zcl/definition/foundation.js.map +1 -1
  459. package/dist/zspec/zcl/definition/manufacturerCode.d.ts +1 -1
  460. package/dist/zspec/zcl/definition/manufacturerCode.js +1 -1
  461. package/dist/zspec/zcl/definition/manufacturerCode.js.map +1 -1
  462. package/dist/zspec/zcl/definition/status.d.ts +3 -3
  463. package/dist/zspec/zcl/definition/status.js +3 -3
  464. package/dist/zspec/zcl/definition/tstype.d.ts +3 -3
  465. package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
  466. package/dist/zspec/zcl/index.d.ts +10 -10
  467. package/dist/zspec/zcl/utils.d.ts +3 -3
  468. package/dist/zspec/zcl/utils.d.ts.map +1 -1
  469. package/dist/zspec/zcl/utils.js +18 -21
  470. package/dist/zspec/zcl/utils.js.map +1 -1
  471. package/dist/zspec/zcl/zclFrame.d.ts +7 -7
  472. package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
  473. package/dist/zspec/zcl/zclFrame.js +38 -41
  474. package/dist/zspec/zcl/zclFrame.js.map +1 -1
  475. package/dist/zspec/zcl/zclHeader.d.ts +2 -2
  476. package/dist/zspec/zcl/zclHeader.d.ts.map +1 -1
  477. package/dist/zspec/zcl/zclHeader.js +3 -3
  478. package/dist/zspec/zcl/zclStatusError.d.ts +1 -1
  479. package/dist/zspec/zdo/buffaloZdo.d.ts +7 -7
  480. package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -1
  481. package/dist/zspec/zdo/buffaloZdo.js +4 -4
  482. package/dist/zspec/zdo/buffaloZdo.js.map +1 -1
  483. package/dist/zspec/zdo/definition/status.d.ts +1 -1
  484. package/dist/zspec/zdo/definition/status.js +1 -1
  485. package/dist/zspec/zdo/definition/tstypes.d.ts +48 -48
  486. package/dist/zspec/zdo/definition/tstypes.d.ts.map +1 -1
  487. package/dist/zspec/zdo/index.d.ts +7 -7
  488. package/dist/zspec/zdo/utils.d.ts +2 -2
  489. package/dist/zspec/zdo/utils.d.ts.map +1 -1
  490. package/dist/zspec/zdo/utils.js +1 -1
  491. package/dist/zspec/zdo/utils.js.map +1 -1
  492. package/dist/zspec/zdo/zdoStatusError.d.ts +1 -1
  493. package/examples/join-and-log.js +5 -5
  494. package/package.json +4 -11
  495. package/src/adapter/adapter.ts +189 -0
  496. package/src/adapter/adapterDiscovery.ts +653 -0
  497. package/src/adapter/const.ts +12 -0
  498. package/src/adapter/deconz/adapter/deconzAdapter.ts +768 -0
  499. package/src/adapter/deconz/driver/constants.ts +180 -0
  500. package/src/adapter/deconz/driver/driver.ts +900 -0
  501. package/src/adapter/deconz/driver/frame.ts +11 -0
  502. package/src/adapter/deconz/driver/frameParser.ts +557 -0
  503. package/src/adapter/deconz/driver/parser.ts +45 -0
  504. package/src/adapter/deconz/driver/writer.ts +22 -0
  505. package/src/adapter/deconz/types.d.ts +13 -0
  506. package/src/adapter/ember/adapter/emberAdapter.ts +2266 -0
  507. package/src/adapter/ember/adapter/endpoints.ts +86 -0
  508. package/src/adapter/ember/adapter/oneWaitress.ts +322 -0
  509. package/src/adapter/ember/adapter/tokensManager.ts +782 -0
  510. package/src/adapter/ember/consts.ts +178 -0
  511. package/src/adapter/ember/enums.ts +2123 -0
  512. package/src/adapter/ember/ezsp/buffalo.ts +1397 -0
  513. package/src/adapter/ember/ezsp/consts.ts +148 -0
  514. package/src/adapter/ember/ezsp/enums.ts +1087 -0
  515. package/src/adapter/ember/ezsp/ezsp.ts +8985 -0
  516. package/src/adapter/ember/ezspError.ts +10 -0
  517. package/src/adapter/ember/types.ts +866 -0
  518. package/src/adapter/ember/uart/ash.ts +1969 -0
  519. package/src/adapter/ember/uart/consts.ts +109 -0
  520. package/src/adapter/ember/uart/enums.ts +192 -0
  521. package/src/adapter/ember/uart/parser.ts +48 -0
  522. package/src/adapter/ember/uart/queues.ts +247 -0
  523. package/src/adapter/ember/uart/writer.ts +53 -0
  524. package/src/adapter/ember/utils/initters.ts +58 -0
  525. package/src/adapter/ember/utils/math.ts +73 -0
  526. package/src/adapter/events.ts +21 -0
  527. package/src/adapter/ezsp/adapter/backup.ts +109 -0
  528. package/src/adapter/ezsp/adapter/ezspAdapter.ts +614 -0
  529. package/src/adapter/ezsp/driver/commands.ts +2497 -0
  530. package/src/adapter/ezsp/driver/consts.ts +11 -0
  531. package/src/adapter/ezsp/driver/driver.ts +1002 -0
  532. package/src/adapter/ezsp/driver/ezsp.ts +802 -0
  533. package/src/adapter/ezsp/driver/frame.ts +101 -0
  534. package/src/adapter/ezsp/driver/index.ts +4 -0
  535. package/src/adapter/ezsp/driver/multicast.ts +78 -0
  536. package/src/adapter/ezsp/driver/parser.ts +81 -0
  537. package/src/adapter/ezsp/driver/types/basic.ts +201 -0
  538. package/src/adapter/ezsp/driver/types/index.ts +239 -0
  539. package/src/adapter/ezsp/driver/types/named.ts +2330 -0
  540. package/src/adapter/ezsp/driver/types/struct.ts +844 -0
  541. package/src/adapter/ezsp/driver/uart.ts +460 -0
  542. package/src/adapter/ezsp/driver/utils/crc16ccitt.ts +44 -0
  543. package/src/adapter/ezsp/driver/utils/index.ts +32 -0
  544. package/src/adapter/ezsp/driver/writer.ts +64 -0
  545. package/src/adapter/index.ts +3 -0
  546. package/src/adapter/serialPort.ts +58 -0
  547. package/src/adapter/socketPortUtils.ts +16 -0
  548. package/src/adapter/tstype.ts +78 -0
  549. package/src/adapter/z-stack/adapter/adapter-backup.ts +519 -0
  550. package/src/adapter/z-stack/adapter/adapter-nv-memory.ts +457 -0
  551. package/src/adapter/z-stack/adapter/endpoints.ts +57 -0
  552. package/src/adapter/z-stack/adapter/manager.ts +544 -0
  553. package/src/adapter/z-stack/adapter/tstype.ts +6 -0
  554. package/src/adapter/z-stack/adapter/zStackAdapter.ts +1190 -0
  555. package/src/adapter/z-stack/constants/af.ts +27 -0
  556. package/src/adapter/z-stack/constants/common.ts +285 -0
  557. package/src/adapter/z-stack/constants/dbg.ts +23 -0
  558. package/src/adapter/z-stack/constants/index.ts +11 -0
  559. package/src/adapter/z-stack/constants/mac.ts +128 -0
  560. package/src/adapter/z-stack/constants/sapi.ts +25 -0
  561. package/src/adapter/z-stack/constants/sys.ts +72 -0
  562. package/src/adapter/z-stack/constants/util.ts +82 -0
  563. package/src/adapter/z-stack/constants/utils.ts +14 -0
  564. package/src/adapter/z-stack/constants/zdo.ts +103 -0
  565. package/src/adapter/z-stack/models/startup-options.ts +13 -0
  566. package/src/adapter/z-stack/structs/entries/address-manager-entry.ts +44 -0
  567. package/src/adapter/z-stack/structs/entries/address-manager-table.ts +19 -0
  568. package/src/adapter/z-stack/structs/entries/aps-link-key-data-entry.ts +12 -0
  569. package/src/adapter/z-stack/structs/entries/aps-link-key-data-table.ts +21 -0
  570. package/src/adapter/z-stack/structs/entries/aps-tc-link-key-entry.ts +19 -0
  571. package/src/adapter/z-stack/structs/entries/aps-tc-link-key-table.ts +21 -0
  572. package/src/adapter/z-stack/structs/entries/channel-list.ts +8 -0
  573. package/src/adapter/z-stack/structs/entries/has-configured.ts +16 -0
  574. package/src/adapter/z-stack/structs/entries/index.ts +16 -0
  575. package/src/adapter/z-stack/structs/entries/nib.ts +66 -0
  576. package/src/adapter/z-stack/structs/entries/nwk-key-descriptor.ts +15 -0
  577. package/src/adapter/z-stack/structs/entries/nwk-key.ts +13 -0
  578. package/src/adapter/z-stack/structs/entries/nwk-pan-id.ts +8 -0
  579. package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.ts +20 -0
  580. package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.ts +19 -0
  581. package/src/adapter/z-stack/structs/entries/security-manager-entry.ts +33 -0
  582. package/src/adapter/z-stack/structs/entries/security-manager-table.ts +22 -0
  583. package/src/adapter/z-stack/structs/index.ts +4 -0
  584. package/src/adapter/z-stack/structs/serializable-memory-object.ts +14 -0
  585. package/src/adapter/z-stack/structs/struct.ts +367 -0
  586. package/src/adapter/z-stack/structs/table.ts +198 -0
  587. package/src/adapter/z-stack/unpi/constants.ts +33 -0
  588. package/src/adapter/z-stack/unpi/frame.ts +62 -0
  589. package/src/adapter/z-stack/unpi/index.ts +4 -0
  590. package/src/adapter/z-stack/unpi/parser.ts +56 -0
  591. package/src/adapter/z-stack/unpi/writer.ts +21 -0
  592. package/src/adapter/z-stack/utils/channel-list.ts +40 -0
  593. package/src/adapter/z-stack/utils/index.ts +2 -0
  594. package/src/adapter/z-stack/utils/network-options.ts +26 -0
  595. package/src/adapter/z-stack/znp/buffaloZnp.ts +175 -0
  596. package/src/adapter/z-stack/znp/definition.ts +2713 -0
  597. package/src/adapter/z-stack/znp/index.ts +2 -0
  598. package/src/adapter/z-stack/znp/parameterType.ts +22 -0
  599. package/src/adapter/z-stack/znp/tstype.ts +44 -0
  600. package/src/adapter/z-stack/znp/utils.ts +10 -0
  601. package/src/adapter/z-stack/znp/znp.ts +342 -0
  602. package/src/adapter/z-stack/znp/zpiObject.ts +148 -0
  603. package/src/adapter/zboss/adapter/zbossAdapter.ts +527 -0
  604. package/src/adapter/zboss/commands.ts +1184 -0
  605. package/src/adapter/zboss/consts.ts +9 -0
  606. package/src/adapter/zboss/driver.ts +423 -0
  607. package/src/adapter/zboss/enums.ts +360 -0
  608. package/src/adapter/zboss/frame.ts +227 -0
  609. package/src/adapter/zboss/reader.ts +65 -0
  610. package/src/adapter/zboss/types.ts +0 -0
  611. package/src/adapter/zboss/uart.ts +428 -0
  612. package/src/adapter/zboss/utils.ts +58 -0
  613. package/src/adapter/zboss/writer.ts +49 -0
  614. package/src/adapter/zigate/adapter/patchZdoBuffaloBE.ts +27 -0
  615. package/src/adapter/zigate/adapter/zigateAdapter.ts +618 -0
  616. package/src/adapter/zigate/driver/LICENSE +17 -0
  617. package/src/adapter/zigate/driver/buffaloZiGate.ts +212 -0
  618. package/src/adapter/zigate/driver/commandType.ts +418 -0
  619. package/src/adapter/zigate/driver/constants.ts +150 -0
  620. package/src/adapter/zigate/driver/frame.ts +197 -0
  621. package/src/adapter/zigate/driver/messageType.ts +287 -0
  622. package/src/adapter/zigate/driver/parameterType.ts +32 -0
  623. package/src/adapter/zigate/driver/ziGateObject.ts +146 -0
  624. package/src/adapter/zigate/driver/zigate.ts +426 -0
  625. package/src/adapter/zoh/adapter/utils.ts +27 -0
  626. package/src/adapter/zoh/adapter/zohAdapter.ts +837 -0
  627. package/src/buffalo/buffalo.ts +335 -0
  628. package/src/buffalo/index.ts +1 -0
  629. package/src/controller/controller.ts +1048 -0
  630. package/src/controller/database.ts +124 -0
  631. package/src/controller/events.ts +51 -0
  632. package/src/controller/greenPower.ts +603 -0
  633. package/src/controller/helpers/index.ts +1 -0
  634. package/src/controller/helpers/request.ts +94 -0
  635. package/src/controller/helpers/requestQueue.ts +125 -0
  636. package/src/controller/helpers/zclFrameConverter.ts +51 -0
  637. package/src/controller/helpers/zclTransactionSequenceNumber.ts +19 -0
  638. package/src/controller/index.ts +6 -0
  639. package/src/controller/model/device.ts +1320 -0
  640. package/src/controller/model/endpoint.ts +1040 -0
  641. package/src/controller/model/entity.ts +23 -0
  642. package/src/controller/model/group.ts +333 -0
  643. package/src/controller/model/index.ts +4 -0
  644. package/src/controller/touchlink.ts +189 -0
  645. package/src/controller/tstype.ts +39 -0
  646. package/src/index.ts +12 -0
  647. package/src/models/backup-storage-legacy.ts +48 -0
  648. package/src/models/backup-storage-unified.ts +47 -0
  649. package/src/models/backup.ts +37 -0
  650. package/src/models/index.ts +5 -0
  651. package/src/models/network-options.ts +11 -0
  652. package/src/utils/backup.ts +152 -0
  653. package/src/utils/index.ts +5 -0
  654. package/src/utils/logger.ts +20 -0
  655. package/src/utils/patchBigIntSerialization.ts +8 -0
  656. package/src/utils/queue.ts +76 -0
  657. package/src/utils/types.d.ts +3 -0
  658. package/src/utils/utils.ts +20 -0
  659. package/src/utils/wait.ts +5 -0
  660. package/src/utils/waitress.ts +95 -0
  661. package/src/zspec/consts.ts +84 -0
  662. package/src/zspec/enums.ts +22 -0
  663. package/src/zspec/index.ts +3 -0
  664. package/src/zspec/tstypes.ts +18 -0
  665. package/src/zspec/utils.ts +308 -0
  666. package/src/zspec/zcl/buffaloZcl.ts +1133 -0
  667. package/src/zspec/zcl/definition/cluster.ts +5766 -0
  668. package/src/zspec/zcl/definition/consts.ts +24 -0
  669. package/src/zspec/zcl/definition/enums.ts +194 -0
  670. package/src/zspec/zcl/definition/foundation.ts +301 -0
  671. package/src/zspec/zcl/definition/manufacturerCode.ts +729 -0
  672. package/src/zspec/zcl/definition/status.ts +69 -0
  673. package/src/zspec/zcl/definition/tstype.ts +268 -0
  674. package/src/zspec/zcl/index.ts +10 -0
  675. package/src/zspec/zcl/utils.ts +342 -0
  676. package/src/zspec/zcl/zclFrame.ts +336 -0
  677. package/src/zspec/zcl/zclHeader.ts +102 -0
  678. package/src/zspec/zcl/zclStatusError.ts +10 -0
  679. package/src/zspec/zdo/buffaloZdo.ts +2345 -0
  680. package/src/zspec/zdo/definition/clusters.ts +722 -0
  681. package/src/zspec/zdo/definition/consts.ts +16 -0
  682. package/src/zspec/zdo/definition/enums.ts +99 -0
  683. package/src/zspec/zdo/definition/status.ts +105 -0
  684. package/src/zspec/zdo/definition/tstypes.ts +1062 -0
  685. package/src/zspec/zdo/index.ts +7 -0
  686. package/src/zspec/zdo/utils.ts +76 -0
  687. package/src/zspec/zdo/zdoStatusError.ts +10 -0
  688. package/test/adapter/adapter.test.ts +1062 -0
  689. package/test/adapter/ember/ash.test.ts +337 -0
  690. package/test/adapter/ember/consts.ts +131 -0
  691. package/test/adapter/ember/emberAdapter.test.ts +3449 -0
  692. package/test/adapter/ember/ezsp.test.ts +386 -0
  693. package/test/adapter/ember/ezspBuffalo.test.ts +92 -0
  694. package/test/adapter/ember/ezspError.test.ts +11 -0
  695. package/test/adapter/ember/math.test.ts +205 -0
  696. package/test/adapter/ezsp/frame.test.ts +29 -0
  697. package/test/adapter/ezsp/uart.test.ts +180 -0
  698. package/test/adapter/z-stack/adapter.test.ts +3985 -0
  699. package/test/adapter/z-stack/constants.test.ts +32 -0
  700. package/test/adapter/z-stack/structs.test.ts +114 -0
  701. package/test/adapter/z-stack/unpi.test.ts +212 -0
  702. package/test/adapter/z-stack/znp.test.ts +1284 -0
  703. package/test/adapter/zboss/fixZdoResponse.test.ts +178 -0
  704. package/test/adapter/zigate/patchZdoBuffaloBE.test.ts +80 -0
  705. package/test/adapter/zigate/zdo.test.ts +187 -0
  706. package/test/adapter/zoh/utils.test.ts +35 -0
  707. package/test/adapter/zoh/zohAdapter.test.ts +1306 -0
  708. package/test/buffalo.test.ts +430 -0
  709. package/test/controller.test.ts +10005 -0
  710. package/test/greenpower.test.ts +1421 -0
  711. package/test/mockAdapters.ts +65 -0
  712. package/test/mockDevices.ts +472 -0
  713. package/test/testUtils.ts +20 -0
  714. package/test/tsconfig.json +10 -0
  715. package/test/utils/math.ts +19 -0
  716. package/test/utils.test.ts +227 -0
  717. package/test/vitest.config.mts +25 -0
  718. package/test/zcl.test.ts +2832 -0
  719. package/test/zspec/utils.test.ts +131 -0
  720. package/test/zspec/zcl/buffalo.test.ts +1231 -0
  721. package/test/zspec/zcl/frame.test.ts +925 -0
  722. package/test/zspec/zcl/utils.test.ts +280 -0
  723. package/test/zspec/zdo/buffalo.test.ts +1849 -0
  724. package/test/zspec/zdo/utils.test.ts +240 -0
  725. package/.github/workflows/update-dependencies.yml +0 -39
  726. package/.prettierignore +0 -2
  727. package/.prettierrc +0 -26
  728. package/eslint.config.mjs +0 -32
@@ -52,7 +52,7 @@ const types_1 = require("./types");
52
52
  const named_1 = require("./types/named");
53
53
  const struct_1 = require("./types/struct");
54
54
  const utils_2 = require("./utils");
55
- const NS = 'zh:ezsp:driv';
55
+ const NS = "zh:ezsp:driv";
56
56
  const IEEE_PREFIX_MFG_ID = [
57
57
  { mfgId: 0x115f, prefix: [0x04, 0xcf, 0xfc] },
58
58
  { mfgId: 0x115f, prefix: [0x54, 0xef, 0x44] },
@@ -91,7 +91,7 @@ class Driver extends node_events_1.EventEmitter {
91
91
  * @returns
92
92
  */
93
93
  async reset() {
94
- logger_1.logger.debug(`Reset connection.`, NS);
94
+ logger_1.logger.debug("Reset connection.", NS);
95
95
  try {
96
96
  // don't emit 'close' on stop since we don't want this to bubble back up as 'disconnected' to the controller.
97
97
  await this.stop(false);
@@ -101,7 +101,7 @@ class Driver extends node_events_1.EventEmitter {
101
101
  }
102
102
  try {
103
103
  await (0, utils_1.wait)(1000);
104
- logger_1.logger.debug(`Startup again.`, NS);
104
+ logger_1.logger.debug("Startup again.", NS);
105
105
  await this.startup();
106
106
  }
107
107
  catch (err) {
@@ -116,25 +116,25 @@ class Driver extends node_events_1.EventEmitter {
116
116
  }
117
117
  }
118
118
  async onEzspReset() {
119
- logger_1.logger.debug('onEzspReset()', NS);
119
+ logger_1.logger.debug("onEzspReset()", NS);
120
120
  await this.reset();
121
121
  }
122
122
  onEzspClose() {
123
- logger_1.logger.debug('onEzspClose()', NS);
124
- this.emit('close');
123
+ logger_1.logger.debug("onEzspClose()", NS);
124
+ this.emit("close");
125
125
  }
126
126
  async stop(emitClose = true) {
127
- logger_1.logger.debug('Stopping driver', NS);
127
+ logger_1.logger.debug("Stopping driver", NS);
128
128
  if (this.ezsp) {
129
129
  return await this.ezsp.close(emitClose);
130
130
  }
131
131
  }
132
132
  async startup(transmitPower) {
133
- let result = 'resumed';
133
+ let result = "resumed";
134
134
  this.transactionID = 1;
135
135
  // this.ezsp = undefined;
136
136
  this.ezsp = new ezsp_1.Ezsp();
137
- this.ezsp.on('close', this.onEzspClose.bind(this));
137
+ this.ezsp.on("close", this.onEzspClose.bind(this));
138
138
  try {
139
139
  await this.ezsp.connect(this.serialOpt);
140
140
  }
@@ -142,7 +142,7 @@ class Driver extends node_events_1.EventEmitter {
142
142
  logger_1.logger.debug(`EZSP could not connect: ${error}`, NS);
143
143
  throw error;
144
144
  }
145
- this.ezsp.on('reset', this.onEzspReset.bind(this));
145
+ this.ezsp.on("reset", this.onEzspReset.bind(this));
146
146
  await this.ezsp.version();
147
147
  await this.ezsp.updateConfig();
148
148
  await this.ezsp.updatePolicies();
@@ -170,15 +170,22 @@ class Driver extends node_events_1.EventEmitter {
170
170
  //const mfgName = await ezsp.execCommand('getMfgToken', EzspMfgTokenId.MFG_STRING);
171
171
  // getting MFG_BOARD_NAME token
172
172
  //const boardName = await ezsp.execCommand('getMfgToken', EzspMfgTokenId.MFG_BOARD_NAME);
173
- /* eslint-disable prefer-const */
174
173
  let verInfo = await this.ezsp.getValue(named_1.EzspValueId.VALUE_VERSION_INFO);
175
- let build, major, minor, patch, special;
174
+ // biome-ignore lint/style/useConst: <explanation>
175
+ let build;
176
+ // biome-ignore lint/style/useConst: <explanation>
177
+ let major;
178
+ // biome-ignore lint/style/useConst: <explanation>
179
+ let minor;
180
+ // biome-ignore lint/style/useConst: <explanation>
181
+ let patch;
182
+ // biome-ignore lint/style/useConst: <explanation>
183
+ let special;
176
184
  [build, verInfo] = types_1.uint16_t.deserialize(types_1.uint16_t, verInfo);
177
185
  [major, verInfo] = types_1.uint8_t.deserialize(types_1.uint8_t, verInfo);
178
186
  [minor, verInfo] = types_1.uint8_t.deserialize(types_1.uint8_t, verInfo);
179
187
  [patch, verInfo] = types_1.uint8_t.deserialize(types_1.uint8_t, verInfo);
180
188
  [special, verInfo] = types_1.uint8_t.deserialize(types_1.uint8_t, verInfo);
181
- /* eslint-enable prefer-const */
182
189
  const vers = `${major}.${minor}.${patch}.${special} build ${build}`;
183
190
  logger_1.logger.debug(`EmberZNet version: ${vers}`, NS);
184
191
  this.version = {
@@ -191,89 +198,91 @@ class Driver extends node_events_1.EventEmitter {
191
198
  if (await this.needsToBeInitialised(this.nwkOpt)) {
192
199
  // need to check the backup
193
200
  const restore = await this.needsToBeRestore(this.nwkOpt);
194
- const res = await this.ezsp.execCommand('networkState');
201
+ const res = await this.ezsp.execCommand("networkState");
195
202
  logger_1.logger.debug(`Network state ${res.status}`, NS);
196
- if (res.status == named_1.EmberNetworkStatus.JOINED_NETWORK) {
197
- logger_1.logger.info(`Leaving current network and forming new network`, NS);
203
+ if (res.status === named_1.EmberNetworkStatus.JOINED_NETWORK) {
204
+ logger_1.logger.info("Leaving current network and forming new network", NS);
198
205
  const st = await this.ezsp.leaveNetwork();
199
- if (st != types_1.EmberStatus.NETWORK_DOWN) {
206
+ if (st !== types_1.EmberStatus.NETWORK_DOWN) {
200
207
  logger_1.logger.error(`leaveNetwork returned unexpected status: ${st}`, NS);
201
208
  }
202
209
  }
203
210
  if (restore) {
204
211
  // restore
205
- logger_1.logger.info('Restore network from backup', NS);
212
+ logger_1.logger.info("Restore network from backup", NS);
206
213
  await this.formNetwork(true, transmitPower);
207
- result = 'restored';
214
+ result = "restored";
208
215
  }
209
216
  else {
210
217
  // reset
211
- logger_1.logger.info('Form network', NS);
218
+ logger_1.logger.info("Form network", NS);
212
219
  await this.formNetwork(false, transmitPower);
213
- result = 'reset';
220
+ result = "reset";
214
221
  }
215
222
  }
216
- const state = (await this.ezsp.execCommand('networkState')).status;
223
+ const state = (await this.ezsp.execCommand("networkState")).status;
217
224
  logger_1.logger.debug(`Network state ${state}`, NS);
218
- const netParams = await this.ezsp.execCommand('getNetworkParameters');
219
- if (netParams.status != types_1.EmberStatus.SUCCESS) {
225
+ const netParams = await this.ezsp.execCommand("getNetworkParameters");
226
+ if (netParams.status !== types_1.EmberStatus.SUCCESS) {
220
227
  logger_1.logger.error(`Command (getNetworkParameters) returned unexpected state: ${netParams.status}`, NS);
221
228
  }
222
229
  this.networkParams = netParams.parameters;
223
230
  logger_1.logger.debug(`Node type: ${netParams.nodeType}, Network parameters: ${this.networkParams}`, NS);
224
- const nwk = (await this.ezsp.execCommand('getNodeId')).nodeId;
225
- const ieee = (await this.ezsp.execCommand('getEui64')).eui64;
231
+ const nwk = (await this.ezsp.execCommand("getNodeId")).nodeId;
232
+ const ieee = (await this.ezsp.execCommand("getEui64")).eui64;
226
233
  this.ieee = new named_1.EmberEUI64(ieee);
227
- logger_1.logger.debug('Network ready', NS);
228
- this.ezsp.on('frame', this.handleFrame.bind(this));
234
+ logger_1.logger.debug("Network ready", NS);
235
+ this.ezsp.on("frame", this.handleFrame.bind(this));
229
236
  logger_1.logger.debug(`EZSP nwk=${nwk}, IEEE=0x${this.ieee}`, NS);
230
237
  const linkResult = await this.getKey(named_1.EmberKeyType.TRUST_CENTER_LINK_KEY);
231
238
  logger_1.logger.debug(`TRUST_CENTER_LINK_KEY: ${JSON.stringify(linkResult)}`, NS);
232
239
  const netResult = await this.getKey(named_1.EmberKeyType.CURRENT_NETWORK_KEY);
233
240
  logger_1.logger.debug(`CURRENT_NETWORK_KEY: ${JSON.stringify(netResult)}`, NS);
234
241
  await (0, utils_1.wait)(1000);
235
- await this.ezsp.execCommand('setManufacturerCode', { code: DEFAULT_MFG_ID });
242
+ await this.ezsp.execCommand("setManufacturerCode", { code: DEFAULT_MFG_ID });
236
243
  this.multicast = new multicast_1.Multicast(this);
237
244
  await this.multicast.startup([]);
238
245
  await this.multicast.subscribe(ZSpec.GP_GROUP_ID, ZSpec.GP_ENDPOINT);
239
246
  // await this.multicast.subscribe(1, 901);
240
- if (transmitPower != undefined && this.networkParams.radioTxPower !== transmitPower) {
241
- await this.ezsp.execCommand('setRadioPower', { power: transmitPower });
247
+ if (transmitPower != null && this.networkParams.radioTxPower !== transmitPower) {
248
+ await this.ezsp.execCommand("setRadioPower", { power: transmitPower });
242
249
  }
243
250
  return result;
244
251
  }
245
252
  async needsToBeInitialised(options) {
246
253
  let valid = true;
247
254
  valid = valid && (await this.ezsp.networkInit());
248
- const netParams = await this.ezsp.execCommand('getNetworkParameters');
255
+ const netParams = await this.ezsp.execCommand("getNetworkParameters");
249
256
  const networkParams = netParams.parameters;
250
257
  logger_1.logger.debug(`Current Node type: ${netParams.nodeType}, Network parameters: ${networkParams}`, NS);
251
- valid = valid && netParams.status == types_1.EmberStatus.SUCCESS;
252
- valid = valid && netParams.nodeType == types_1.EmberNodeType.COORDINATOR;
253
- valid = valid && options.panID == networkParams.panId;
258
+ valid = valid && netParams.status === types_1.EmberStatus.SUCCESS;
259
+ valid = valid && netParams.nodeType === types_1.EmberNodeType.COORDINATOR;
260
+ valid = valid && options.panID === networkParams.panId;
254
261
  valid = valid && options.channelList.includes(networkParams.radioChannel);
255
262
  valid = valid && (0, es6_1.default)(options.extendedPanID, networkParams.extendedPanId);
256
263
  return !valid;
257
264
  }
258
265
  async formNetwork(restore, transmitPower) {
259
266
  let backup;
260
- await this.ezsp.execCommand('clearTransientLinkKeys');
261
- let initial_security_state;
267
+ await this.ezsp.execCommand("clearTransientLinkKeys");
268
+ let initialSecurityState;
262
269
  if (restore) {
263
- backup = await this.backupMan.getStoredBackup();
270
+ backup = this.backupMan.getStoredBackup();
264
271
  if (!backup) {
265
- throw new Error(`No valid backup found.`);
272
+ throw new Error("No valid backup found.");
266
273
  }
267
- initial_security_state = (0, utils_2.ember_security)(backup.networkOptions.networkKey);
268
- initial_security_state.bitmask |= named_1.EmberInitialSecurityBitmask.NO_FRAME_COUNTER_RESET;
269
- initial_security_state.networkKeySequenceNumber = backup.networkKeyInfo.sequenceNumber;
270
- initial_security_state.preconfiguredKey.contents = backup.ezsp.hashed_tclk;
274
+ initialSecurityState = (0, utils_2.emberSecurity)(backup.networkOptions.networkKey);
275
+ initialSecurityState.bitmask |= named_1.EmberInitialSecurityBitmask.NO_FRAME_COUNTER_RESET;
276
+ initialSecurityState.networkKeySequenceNumber = backup.networkKeyInfo.sequenceNumber;
277
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
278
+ initialSecurityState.preconfiguredKey.contents = backup.ezsp.hashed_tclk;
271
279
  }
272
280
  else {
273
- await this.ezsp.execCommand('clearKeyTable');
274
- initial_security_state = (0, utils_2.ember_security)(Buffer.from(this.nwkOpt.networkKey));
281
+ await this.ezsp.execCommand("clearKeyTable");
282
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
283
+ initialSecurityState = (0, utils_2.emberSecurity)(Buffer.from(this.nwkOpt.networkKey));
275
284
  }
276
- await this.ezsp.setInitialSecurityState(initial_security_state);
285
+ await this.ezsp.setInitialSecurityState(initialSecurityState);
277
286
  const parameters = new struct_1.EmberNetworkParameters();
278
287
  parameters.radioTxPower = transmitPower ?? 5;
279
288
  parameters.joinMethod = named_1.EmberJoinMethod.USE_MAC_ASSOCIATION;
@@ -282,14 +291,19 @@ class Driver extends node_events_1.EventEmitter {
282
291
  parameters.channels = 0x07fff800; // all channels
283
292
  if (restore) {
284
293
  // `backup` valid from above
294
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
285
295
  parameters.panId = backup.networkOptions.panId;
296
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
286
297
  parameters.extendedPanId = backup.networkOptions.extendedPanId;
298
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
287
299
  parameters.radioChannel = backup.logicalChannel;
300
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
288
301
  parameters.nwkUpdateId = backup.networkUpdateId;
289
302
  }
290
303
  else {
291
304
  parameters.radioChannel = this.nwkOpt.channelList[0];
292
305
  parameters.panId = this.nwkOpt.panID;
306
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
293
307
  parameters.extendedPanId = Buffer.from(this.nwkOpt.extendedPanID);
294
308
  }
295
309
  await this.ezsp.formNetwork(parameters);
@@ -297,9 +311,9 @@ class Driver extends node_events_1.EventEmitter {
297
311
  }
298
312
  handleFrame(frameName, frame) {
299
313
  switch (true) {
300
- case frameName === 'incomingMessageHandler': {
314
+ case frameName === "incomingMessageHandler": {
301
315
  const apsFrame = frame.apsFrame;
302
- if (apsFrame.profileId == Zdo.ZDO_PROFILE_ID && apsFrame.clusterId >= 0x8000 /* response only */) {
316
+ if (apsFrame.profileId === Zdo.ZDO_PROFILE_ID && apsFrame.clusterId >= 0x8000 /* response only */) {
303
317
  const zdoResponse = Zdo.Buffalo.readResponse(true, apsFrame.clusterId, frame.message);
304
318
  if (apsFrame.clusterId === Zdo.ClusterId.NETWORK_ADDRESS_RESPONSE) {
305
319
  // special case to properly resolve a NETWORK_ADDRESS_RESPONSE following a NETWORK_ADDRESS_REQUEST (based on EUI64 from ZDO payload)
@@ -325,7 +339,7 @@ class Driver extends node_events_1.EventEmitter {
325
339
  });
326
340
  }
327
341
  // always pass ZDO to bubble up to controller
328
- this.emit('incomingMessage', {
342
+ this.emit("incomingMessage", {
329
343
  messageType: frame.type,
330
344
  apsFrame,
331
345
  lqi: frame.lastHopLqi,
@@ -345,7 +359,7 @@ class Driver extends node_events_1.EventEmitter {
345
359
  frame: apsFrame,
346
360
  });
347
361
  if (!handled) {
348
- this.emit('incomingMessage', {
362
+ this.emit("incomingMessage", {
349
363
  messageType: frame.type,
350
364
  apsFrame,
351
365
  lqi: frame.lastHopLqi,
@@ -360,7 +374,7 @@ class Driver extends node_events_1.EventEmitter {
360
374
  }
361
375
  break;
362
376
  }
363
- case frameName === 'trustCenterJoinHandler': {
377
+ case frameName === "trustCenterJoinHandler": {
364
378
  if (frame.status === named_1.EmberDeviceUpdate.DEVICE_LEFT) {
365
379
  this.handleNodeLeft(frame.newNodeId, frame.newNodeEui64);
366
380
  }
@@ -371,22 +385,22 @@ class Driver extends node_events_1.EventEmitter {
371
385
  }
372
386
  break;
373
387
  }
374
- case frameName === 'incomingRouteRecordHandler': {
388
+ case frameName === "incomingRouteRecordHandler": {
375
389
  this.handleRouteRecord(frame.source, frame.longId, frame.lastHopLqi, frame.lastHopRssi, frame.relay);
376
390
  break;
377
391
  }
378
- case frameName === 'incomingRouteErrorHandler': {
392
+ case frameName === "incomingRouteErrorHandler": {
379
393
  this.handleRouteError(frame.status, frame.target);
380
394
  break;
381
395
  }
382
- case frameName === 'incomingNetworkStatusHandler': {
396
+ case frameName === "incomingNetworkStatusHandler": {
383
397
  this.handleNetworkStatus(frame.errorCode, frame.target);
384
398
  break;
385
399
  }
386
- case frameName === 'messageSentHandler': {
400
+ case frameName === "messageSentHandler": {
387
401
  // todo
388
402
  const status = frame.status;
389
- if (status != 0) {
403
+ if (status !== 0) {
390
404
  // send failure
391
405
  logger_1.logger.debug(() => `Delivery failed for ${JSON.stringify(frame)}.`, NS);
392
406
  }
@@ -396,20 +410,19 @@ class Driver extends node_events_1.EventEmitter {
396
410
  // then we will register the coordinator in this group
397
411
  // Applicable for IKEA remotes
398
412
  const msgType = frame.type;
399
- if (msgType == named_1.EmberOutgoingMessageType.OUTGOING_MULTICAST) {
413
+ if (msgType === named_1.EmberOutgoingMessageType.OUTGOING_MULTICAST) {
400
414
  const apsFrame = frame.apsFrame;
401
- if (apsFrame.destinationEndpoint == 255) {
402
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
415
+ if (apsFrame.destinationEndpoint === 255) {
403
416
  this.multicast.subscribe(apsFrame.groupId, 1);
404
417
  }
405
418
  }
406
419
  }
407
420
  break;
408
421
  }
409
- case frameName === 'macFilterMatchMessageHandler': {
422
+ case frameName === "macFilterMatchMessageHandler": {
410
423
  const [rawFrame, data] = struct_1.EmberIeeeRawFrame.deserialize(struct_1.EmberIeeeRawFrame, frame.message);
411
424
  logger_1.logger.debug(`macFilterMatchMessageHandler frame message: ${rawFrame}`, NS);
412
- this.emit('incomingMessage', {
425
+ this.emit("incomingMessage", {
413
426
  messageType: null,
414
427
  apsFrame: rawFrame,
415
428
  lqi: frame.lastHopLqi,
@@ -422,7 +435,7 @@ class Driver extends node_events_1.EventEmitter {
422
435
  });
423
436
  break;
424
437
  }
425
- case frameName === 'stackStatusHandler': {
438
+ case frameName === "stackStatusHandler": {
426
439
  logger_1.logger.debug(`stackStatusHandler: ${types_1.EmberStatus.valueToName(types_1.EmberStatus, frame.status)}`, NS);
427
440
  break;
428
441
  }
@@ -434,7 +447,7 @@ class Driver extends node_events_1.EventEmitter {
434
447
  // }
435
448
  // break;
436
449
  // }
437
- case frameName == 'gpepIncomingMessageHandler': {
450
+ case frameName === "gpepIncomingMessageHandler": {
438
451
  let commandIdentifier = cluster_1.Clusters.greenPower.commands.notification.ID;
439
452
  if (frame.gpdCommandId === 0xe0) {
440
453
  if (!frame.gpdCommandPayload.length) {
@@ -467,7 +480,7 @@ class Driver extends node_events_1.EventEmitter {
467
480
  message: Buffer.concat([gpdHeader, frame.gpdCommandPayload]),
468
481
  sender: frame.addr,
469
482
  };
470
- this.emit('incomingMessage', gpdMessage);
483
+ this.emit("incomingMessage", gpdMessage);
471
484
  break;
472
485
  }
473
486
  default:
@@ -517,29 +530,28 @@ class Driver extends node_events_1.EventEmitter {
517
530
  ieee = new named_1.EmberEUI64(ieee);
518
531
  }
519
532
  this.eui64ToNodeId.delete(ieee.toString());
520
- this.emit('deviceLeft', nwk, ieee);
533
+ this.emit("deviceLeft", nwk, ieee);
521
534
  }
522
535
  async resetMfgId(mfgId) {
523
- await this.ezsp.execCommand('setManufacturerCode', { code: mfgId });
536
+ await this.ezsp.execCommand("setManufacturerCode", { code: mfgId });
524
537
  // 60 sec for waiting
525
538
  await (0, utils_1.wait)(60000);
526
- await this.ezsp.execCommand('setManufacturerCode', { code: DEFAULT_MFG_ID });
539
+ await this.ezsp.execCommand("setManufacturerCode", { code: DEFAULT_MFG_ID });
527
540
  }
528
541
  handleNodeJoined(nwk, ieee) {
529
542
  if (ieee && !(ieee instanceof named_1.EmberEUI64)) {
530
543
  ieee = new named_1.EmberEUI64(ieee);
531
544
  }
532
545
  for (const rec of IEEE_PREFIX_MFG_ID) {
533
- if (Buffer.from(ieee.value).indexOf(Buffer.from(rec.prefix)) == 0) {
546
+ if (Buffer.from(ieee.value).indexOf(Buffer.from(rec.prefix)) === 0) {
534
547
  // set ManufacturerCode
535
548
  logger_1.logger.debug(`handleNodeJoined: change ManufacturerCode for ieee ${ieee} to ${rec.mfgId}`, NS);
536
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
537
549
  this.resetMfgId(rec.mfgId);
538
550
  break;
539
551
  }
540
552
  }
541
553
  this.eui64ToNodeId.set(ieee.toString(), nwk);
542
- this.emit('deviceJoined', nwk, ieee);
554
+ this.emit("deviceJoined", nwk, ieee);
543
555
  }
544
556
  setNode(nwk, ieee) {
545
557
  if (ieee && !(ieee instanceof named_1.EmberEUI64)) {
@@ -553,17 +565,17 @@ class Driver extends node_events_1.EventEmitter {
553
565
  try {
554
566
  const seq = (apsFrame.sequence + 1) & 0xff;
555
567
  let eui64;
556
- if (typeof nwk !== 'number') {
568
+ if (typeof nwk !== "number") {
557
569
  eui64 = nwk;
558
570
  const strEui64 = eui64.toString();
559
571
  let nodeId = this.eui64ToNodeId.get(strEui64);
560
572
  if (nodeId === undefined) {
561
- nodeId = (await this.ezsp.execCommand('lookupNodeIdByEui64', { eui64: eui64 })).nodeId;
573
+ nodeId = (await this.ezsp.execCommand("lookupNodeIdByEui64", { eui64: eui64 })).nodeId;
562
574
  if (nodeId && nodeId !== 0xffff) {
563
575
  this.eui64ToNodeId.set(strEui64, nodeId);
564
576
  }
565
577
  else {
566
- throw new Error('Unknown EUI64:' + strEui64);
578
+ throw new Error(`Unknown EUI64:${strEui64}`);
567
579
  }
568
580
  }
569
581
  nwk = nodeId;
@@ -578,7 +590,7 @@ class Driver extends node_events_1.EventEmitter {
578
590
  // // }
579
591
  }
580
592
  if (extendedTimeout) {
581
- await this.ezsp.execCommand('setExtendedTimeout', { remoteEui64: eui64, extendedTimeout: true });
593
+ await this.ezsp.execCommand("setExtendedTimeout", { remoteEui64: eui64, extendedTimeout: true });
582
594
  }
583
595
  const sendResult = await this.ezsp.sendUnicast(named_1.EmberOutgoingMessageType.OUTGOING_DIRECT, nwk, apsFrame, seq, data);
584
596
  // repeat only for these statuses
@@ -588,7 +600,7 @@ class Driver extends node_events_1.EventEmitter {
588
600
  await (0, utils_1.wait)(delay);
589
601
  }
590
602
  else {
591
- result = sendResult.status == types_1.EmberStatus.SUCCESS;
603
+ result = sendResult.status === types_1.EmberStatus.SUCCESS;
592
604
  break;
593
605
  }
594
606
  }
@@ -599,8 +611,7 @@ class Driver extends node_events_1.EventEmitter {
599
611
  }
600
612
  return result;
601
613
  }
602
- /* eslint-disable-next-line @typescript-eslint/no-unused-vars */
603
- async mrequest(apsFrame, data, timeout = 30000) {
614
+ async mrequest(apsFrame, data, _timeout = 30000) {
604
615
  try {
605
616
  const seq = (apsFrame.sequence + 1) & 0xff;
606
617
  await this.ezsp.sendMulticast(apsFrame, seq, data);
@@ -610,11 +621,10 @@ class Driver extends node_events_1.EventEmitter {
610
621
  return false;
611
622
  }
612
623
  }
613
- /* eslint-disable-next-line @typescript-eslint/no-unused-vars */
614
- async rawrequest(rawFrame, data, timeout = 10000) {
624
+ async rawrequest(rawFrame, data, _timeout = 10000) {
615
625
  try {
616
626
  const msgData = Buffer.concat([struct_1.EmberRawFrame.serialize(struct_1.EmberRawFrame, rawFrame), data]);
617
- await this.ezsp.execCommand('sendRawMessage', { message: msgData });
627
+ await this.ezsp.execCommand("sendRawMessage", { message: msgData });
618
628
  return true;
619
629
  }
620
630
  catch (e) {
@@ -622,11 +632,10 @@ class Driver extends node_events_1.EventEmitter {
622
632
  return false;
623
633
  }
624
634
  }
625
- /* eslint-disable-next-line @typescript-eslint/no-unused-vars */
626
- async ieeerawrequest(rawFrame, data, timeout = 10000) {
635
+ async ieeerawrequest(rawFrame, data, _timeout = 10000) {
627
636
  try {
628
637
  const msgData = Buffer.concat([struct_1.EmberIeeeRawFrame.serialize(struct_1.EmberIeeeRawFrame, rawFrame), data]);
629
- await this.ezsp.execCommand('sendRawMessage', { message: msgData });
638
+ await this.ezsp.execCommand("sendRawMessage", { message: msgData });
630
639
  return true;
631
640
  }
632
641
  catch (e) {
@@ -677,21 +686,19 @@ class Driver extends node_events_1.EventEmitter {
677
686
  if (value === nwk)
678
687
  return new named_1.EmberEUI64(eUI64);
679
688
  }
680
- const value = await this.ezsp.execCommand('lookupEui64ByNodeId', { nodeId: nwk });
689
+ const value = await this.ezsp.execCommand("lookupEui64ByNodeId", { nodeId: nwk });
681
690
  if (value.status === types_1.EmberStatus.SUCCESS) {
682
691
  const eUI64 = new named_1.EmberEUI64(value.eui64);
683
692
  this.eui64ToNodeId.set(eUI64.toString(), nwk);
684
693
  return eUI64;
685
694
  }
686
- else {
687
- throw new Error('Unrecognized nodeId:' + nwk);
688
- }
695
+ throw new Error(`Unrecognized nodeId:${nwk}`);
689
696
  }
690
697
  async preJoining(seconds) {
691
698
  if (seconds) {
692
- const ieee = new named_1.EmberEUI64('0xFFFFFFFFFFFFFFFF');
699
+ const ieee = new named_1.EmberEUI64("0xFFFFFFFFFFFFFFFF");
693
700
  const linkKey = new types_1.EmberKeyData();
694
- linkKey.contents = Buffer.from('ZigBeeAlliance09');
701
+ linkKey.contents = Buffer.from("ZigBeeAlliance09");
695
702
  const result = await this.addTransientLinkKey(ieee, linkKey);
696
703
  if (result.status !== types_1.EmberStatus.SUCCESS) {
697
704
  throw new Error(`Add Transient Link Key for '${ieee}' failed`);
@@ -702,17 +709,17 @@ class Driver extends node_events_1.EventEmitter {
702
709
  }
703
710
  }
704
711
  else {
705
- await this.ezsp.execCommand('clearTransientLinkKeys');
712
+ await this.ezsp.execCommand("clearTransientLinkKeys");
706
713
  }
707
714
  }
708
715
  async permitJoining(seconds) {
709
- return await this.ezsp.execCommand('permitJoining', { duration: seconds });
716
+ return await this.ezsp.execCommand("permitJoining", { duration: seconds });
710
717
  }
711
718
  makeZDOframe(name, params) {
712
719
  return this.ezsp.makeZDOframe(name, params);
713
720
  }
714
721
  async addEndpoint({ endpoint = 1, profileId = 260, deviceId = 0xbeef, appFlags = 0, inputClusters = [], outputClusters = [], }) {
715
- const res = await this.ezsp.execCommand('addEndpoint', {
722
+ const res = await this.ezsp.execCommand("addEndpoint", {
716
723
  endpoint: endpoint,
717
724
  profileId: profileId,
718
725
  deviceId: deviceId,
@@ -737,15 +744,13 @@ class Driver extends node_events_1.EventEmitter {
737
744
  (!payload.frame || payload.payload[0] === matcher.sequence));
738
745
  }
739
746
  setChannel(channel) {
740
- return this.ezsp.execCommand('setLogicalAndRadioChannel', { radioChannel: channel });
747
+ return this.ezsp.execCommand("setLogicalAndRadioChannel", { radioChannel: channel });
741
748
  }
742
749
  addTransientLinkKey(partner, transientKey) {
743
750
  if (this.ezsp.ezspV < 13) {
744
- return this.ezsp.execCommand('addTransientLinkKey', { partner, transientKey });
745
- }
746
- else {
747
- return this.ezsp.execCommand('importTransientKey', { partner, transientKey, flags: 0 });
751
+ return this.ezsp.execCommand("addTransientLinkKey", { partner, transientKey });
748
752
  }
753
+ return this.ezsp.execCommand("importTransientKey", { partner, transientKey, flags: 0 });
749
754
  }
750
755
  async addInstallCode(ieeeAddress, key, hashed) {
751
756
  const ieee = new named_1.EmberEUI64(ieeeAddress);
@@ -758,49 +763,45 @@ class Driver extends node_events_1.EventEmitter {
758
763
  }
759
764
  async getKey(keyType) {
760
765
  if (this.ezsp.ezspV < 13) {
761
- return await this.ezsp.execCommand('getKey', { keyType });
762
- }
763
- else {
764
- // Mapping EmberKeyType to SecManKeyType (ezsp13)
765
- const SecManKeyType = {
766
- [named_1.EmberKeyType.TRUST_CENTER_LINK_KEY]: 2,
767
- [named_1.EmberKeyType.CURRENT_NETWORK_KEY]: 1,
768
- };
769
- const smc = new struct_1.EmberSecurityManagerContext();
770
- smc.type = SecManKeyType[keyType];
771
- smc.index = 0;
772
- smc.derivedType = named_1.EmberDerivedKeyType.NONE;
773
- smc.eui64 = new named_1.EmberEUI64('0x0000000000000000');
774
- smc.multiNetworkIndex = 0;
775
- smc.flags = 0;
776
- smc.psaKeyAlgPermission = 0;
777
- const keyInfo = await this.ezsp.execCommand('exportKey', { context: smc });
778
- if (keyInfo.status !== named_1.SLStatus.SL_STATUS_OK) {
779
- logger_1.logger.error(`exportKey(${named_1.EmberKeyType.valueToName(named_1.EmberKeyType, keyType)}) returned unexpected SL status: ${keyInfo.status}`, NS);
780
- }
781
- return keyInfo;
766
+ return await this.ezsp.execCommand("getKey", { keyType });
782
767
  }
768
+ // Mapping EmberKeyType to SecManKeyType (ezsp13)
769
+ const SecManKeyType = {
770
+ [named_1.EmberKeyType.TRUST_CENTER_LINK_KEY]: 2,
771
+ [named_1.EmberKeyType.CURRENT_NETWORK_KEY]: 1,
772
+ };
773
+ const smc = new struct_1.EmberSecurityManagerContext();
774
+ smc.type = SecManKeyType[keyType];
775
+ smc.index = 0;
776
+ smc.derivedType = named_1.EmberDerivedKeyType.NONE;
777
+ smc.eui64 = new named_1.EmberEUI64("0x0000000000000000");
778
+ smc.multiNetworkIndex = 0;
779
+ smc.flags = 0;
780
+ smc.psaKeyAlgPermission = 0;
781
+ const keyInfo = await this.ezsp.execCommand("exportKey", { context: smc });
782
+ if (keyInfo.status !== named_1.SLStatus.SL_STATUS_OK) {
783
+ logger_1.logger.error(`exportKey(${named_1.EmberKeyType.valueToName(named_1.EmberKeyType, keyType)}) returned unexpected SL status: ${keyInfo.status}`, NS);
784
+ }
785
+ return keyInfo;
783
786
  }
784
787
  async getNetworkKeyInfo() {
785
788
  if (this.ezsp.ezspV < 13) {
786
- throw new Error(`getNetKeyInfo(): Invalid call on EZSP < 13.`);
789
+ throw new Error("getNetKeyInfo(): Invalid call on EZSP < 13.");
787
790
  }
788
- else {
789
- const keyInfo = await this.ezsp.execCommand('getNetworkKeyInfo');
790
- if (keyInfo.status !== named_1.SLStatus.SL_STATUS_OK) {
791
- logger_1.logger.error(`getNetworkKeyInfo() returned unexpected SL status: ${keyInfo.status}`, NS);
792
- }
793
- return keyInfo;
791
+ const keyInfo = await this.ezsp.execCommand("getNetworkKeyInfo");
792
+ if (keyInfo.status !== named_1.SLStatus.SL_STATUS_OK) {
793
+ logger_1.logger.error(`getNetworkKeyInfo() returned unexpected SL status: ${keyInfo.status}`, NS);
794
794
  }
795
+ return keyInfo;
795
796
  }
796
797
  async needsToBeRestore(options) {
797
798
  // if no backup and the settings have been changed, then need to start a new network
798
- const backup = await this.backupMan.getStoredBackup();
799
+ const backup = this.backupMan.getStoredBackup();
799
800
  if (!backup)
800
801
  return false;
801
802
  let valid = true;
802
803
  //valid = valid && (await this.ezsp.networkInit());
803
- const netParams = await this.ezsp.execCommand('getNetworkParameters');
804
+ const netParams = await this.ezsp.execCommand("getNetworkParameters");
804
805
  const networkParams = netParams.parameters;
805
806
  logger_1.logger.debug(`Current Node type: ${netParams.nodeType}, Network parameters: ${networkParams}`, NS);
806
807
  logger_1.logger.debug(`Backuped network parameters: ${backup.networkOptions}`, NS);
@@ -813,30 +814,36 @@ class Driver extends node_events_1.EventEmitter {
813
814
  netKey = Buffer.from(networkKey.keyData.contents);
814
815
  }
815
816
  // if the settings in the backup match the chip, then need to warn to delete the backup file first
816
- valid = valid && networkParams.panId == backup.networkOptions.panId;
817
- valid = valid && networkParams.radioChannel == backup.logicalChannel;
817
+ valid = valid && networkParams.panId === backup.networkOptions.panId;
818
+ valid = valid && networkParams.radioChannel === backup.logicalChannel;
818
819
  valid = valid && Buffer.from(networkParams.extendedPanId).equals(backup.networkOptions.extendedPanId);
819
820
  valid = valid && Buffer.from(netKey).equals(backup.networkOptions.networkKey);
820
821
  if (valid) {
821
- logger_1.logger.error(`Configuration is not consistent with adapter backup!`, NS);
822
+ logger_1.logger.error("Configuration is not consistent with adapter backup!", NS);
822
823
  logger_1.logger.error(`- PAN ID: configured=${options.panID}, adapter=${networkParams.panId}, backup=${backup.networkOptions.panId}`, NS);
823
- logger_1.logger.error(`- Extended PAN ID: configured=${Buffer.from(options.extendedPanID).toString('hex')}, ` +
824
- `adapter=${Buffer.from(networkParams.extendedPanId).toString('hex')}, ` +
825
- `backup=${Buffer.from(networkParams.extendedPanId).toString('hex')}`, NS);
824
+ logger_1.logger.error(`- Extended PAN ID: configured=${
825
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
826
+ Buffer.from(options.extendedPanID).toString("hex")}, ` +
827
+ `adapter=${Buffer.from(networkParams.extendedPanId).toString("hex")}, ` +
828
+ `backup=${Buffer.from(networkParams.extendedPanId).toString("hex")}`, NS);
826
829
  logger_1.logger.error(`- Channel: configured=${options.channelList}, adapter=${networkParams.radioChannel}, backup=${backup.logicalChannel}`, NS);
827
- logger_1.logger.error(`- Network key: configured=${Buffer.from(options.networkKey).toString('hex')}, ` +
828
- `adapter=${Buffer.from(netKey).toString('hex')}, ` +
829
- `backup=${backup.networkOptions.networkKey.toString('hex')}`, NS);
830
- logger_1.logger.error(`Please update configuration to prevent further issues.`, NS);
831
- logger_1.logger.error(`If you wish to re-commission your network, please remove coordinator backup.`, NS);
832
- logger_1.logger.error(`Re-commissioning your network will require re-pairing of all devices!`, NS);
833
- throw new Error('startup failed - configuration-adapter mismatch - see logs above for more information');
830
+ logger_1.logger.error(`- Network key: configured=${
831
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
832
+ Buffer.from(options.networkKey).toString("hex")}, ` +
833
+ `adapter=${Buffer.from(netKey).toString("hex")}, ` +
834
+ `backup=${backup.networkOptions.networkKey.toString("hex")}`, NS);
835
+ logger_1.logger.error("Please update configuration to prevent further issues.", NS);
836
+ logger_1.logger.error("If you wish to re-commission your network, please remove coordinator backup.", NS);
837
+ logger_1.logger.error("Re-commissioning your network will require re-pairing of all devices!", NS);
838
+ throw new Error("startup failed - configuration-adapter mismatch - see logs above for more information");
834
839
  }
835
840
  valid = true;
836
841
  // if the settings in the backup match the config, then the old network is in the chip and needs to be restored
837
- valid = valid && options.panID == backup.networkOptions.panId;
842
+ valid = valid && options.panID === backup.networkOptions.panId;
838
843
  valid = valid && options.channelList.includes(backup.logicalChannel);
844
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
839
845
  valid = valid && Buffer.from(options.extendedPanID).equals(backup.networkOptions.extendedPanId);
846
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
840
847
  valid = valid && Buffer.from(options.networkKey).equals(backup.networkOptions.networkKey);
841
848
  return valid;
842
849
  }