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
@@ -0,0 +1,1184 @@
1
+ /* v8 ignore start */
2
+
3
+ import {BuffaloZclDataType, DataType} from "../../zspec/zcl/definition/enums";
4
+ import {ClusterId as ZdoClusterId} from "../../zspec/zdo";
5
+ import {
6
+ BuffaloZBOSSDataType,
7
+ CommandId,
8
+ DeviceAuthorizedType,
9
+ DeviceType,
10
+ DeviceUpdateStatus,
11
+ PolicyType,
12
+ ResetOptions,
13
+ ResetSource,
14
+ StatusCategory,
15
+ StatusCodeAPS,
16
+ StatusCodeCBKE,
17
+ StatusCodeGeneric,
18
+ } from "./enums";
19
+
20
+ export interface ParamsDesc {
21
+ name: string;
22
+ type: DataType | BuffaloZclDataType | BuffaloZBOSSDataType;
23
+ // biome-ignore lint/suspicious/noExplicitAny: API
24
+ condition?: (payload: any, buffalo: any) => boolean;
25
+ // biome-ignore lint/suspicious/noExplicitAny: API
26
+ typed?: any;
27
+ // biome-ignore lint/suspicious/noExplicitAny: API
28
+ options?: (payload: any, options: any) => void;
29
+ }
30
+
31
+ interface ZBOSSFrameDesc {
32
+ request: ParamsDesc[];
33
+ response: ParamsDesc[];
34
+ indication?: ParamsDesc[];
35
+ }
36
+
37
+ export const ZDO_REQ_CLUSTER_ID_TO_ZBOSS_COMMAND_ID: Readonly<Partial<Record<ZdoClusterId, CommandId>>> = {
38
+ [ZdoClusterId.NETWORK_ADDRESS_REQUEST]: CommandId.ZDO_NWK_ADDR_REQ,
39
+ [ZdoClusterId.IEEE_ADDRESS_REQUEST]: CommandId.ZDO_IEEE_ADDR_REQ,
40
+ [ZdoClusterId.POWER_DESCRIPTOR_REQUEST]: CommandId.ZDO_POWER_DESC_REQ,
41
+ [ZdoClusterId.NODE_DESCRIPTOR_REQUEST]: CommandId.ZDO_NODE_DESC_REQ,
42
+ [ZdoClusterId.SIMPLE_DESCRIPTOR_REQUEST]: CommandId.ZDO_SIMPLE_DESC_REQ,
43
+ [ZdoClusterId.ACTIVE_ENDPOINTS_REQUEST]: CommandId.ZDO_ACTIVE_EP_REQ,
44
+ [ZdoClusterId.MATCH_DESCRIPTORS_REQUEST]: CommandId.ZDO_MATCH_DESC_REQ,
45
+ [ZdoClusterId.BIND_REQUEST]: CommandId.ZDO_BIND_REQ,
46
+ [ZdoClusterId.UNBIND_REQUEST]: CommandId.ZDO_UNBIND_REQ,
47
+ [ZdoClusterId.LEAVE_REQUEST]: CommandId.ZDO_MGMT_LEAVE_REQ,
48
+ [ZdoClusterId.PERMIT_JOINING_REQUEST]: CommandId.ZDO_PERMIT_JOINING_REQ,
49
+ [ZdoClusterId.BINDING_TABLE_REQUEST]: CommandId.ZDO_MGMT_BIND_REQ,
50
+ [ZdoClusterId.LQI_TABLE_REQUEST]: CommandId.ZDO_MGMT_LQI_REQ,
51
+ // [ZdoClusterId.ROUTING_TABLE_REQUEST]: CommandId.ZDO_MGMT_RTG_REQ,
52
+ [ZdoClusterId.NWK_UPDATE_REQUEST]: CommandId.ZDO_MGMT_NWK_UPDATE_REQ,
53
+ };
54
+
55
+ export const ZBOSS_COMMAND_ID_TO_ZDO_RSP_CLUSTER_ID: Readonly<Partial<Record<CommandId, ZdoClusterId>>> = {
56
+ [CommandId.ZDO_NWK_ADDR_REQ]: ZdoClusterId.NETWORK_ADDRESS_RESPONSE,
57
+ [CommandId.ZDO_IEEE_ADDR_REQ]: ZdoClusterId.IEEE_ADDRESS_RESPONSE,
58
+ [CommandId.ZDO_POWER_DESC_REQ]: ZdoClusterId.POWER_DESCRIPTOR_RESPONSE,
59
+ [CommandId.ZDO_NODE_DESC_REQ]: ZdoClusterId.NODE_DESCRIPTOR_RESPONSE,
60
+ [CommandId.ZDO_SIMPLE_DESC_REQ]: ZdoClusterId.SIMPLE_DESCRIPTOR_RESPONSE,
61
+ [CommandId.ZDO_ACTIVE_EP_REQ]: ZdoClusterId.ACTIVE_ENDPOINTS_RESPONSE,
62
+ [CommandId.ZDO_MATCH_DESC_REQ]: ZdoClusterId.MATCH_DESCRIPTORS_RESPONSE,
63
+ [CommandId.ZDO_BIND_REQ]: ZdoClusterId.BIND_RESPONSE,
64
+ [CommandId.ZDO_UNBIND_REQ]: ZdoClusterId.UNBIND_RESPONSE,
65
+ [CommandId.ZDO_MGMT_LEAVE_REQ]: ZdoClusterId.LEAVE_RESPONSE,
66
+ [CommandId.ZDO_PERMIT_JOINING_REQ]: ZdoClusterId.PERMIT_JOINING_RESPONSE,
67
+ [CommandId.ZDO_MGMT_BIND_REQ]: ZdoClusterId.BINDING_TABLE_RESPONSE,
68
+ [CommandId.ZDO_MGMT_LQI_REQ]: ZdoClusterId.LQI_TABLE_RESPONSE,
69
+ // [CommandId.ZDO_MGMT_RTG_REQ]: ZdoClusterId.ROUTING_TABLE_RESPONSE,
70
+ [CommandId.ZDO_MGMT_NWK_UPDATE_REQ]: ZdoClusterId.NWK_UPDATE_RESPONSE,
71
+ [CommandId.ZDO_DEV_ANNCE_IND]: ZdoClusterId.END_DEVICE_ANNOUNCE,
72
+ };
73
+
74
+ const commonResponse = [
75
+ {name: "category", type: DataType.UINT8, typed: StatusCategory},
76
+ {name: "status", type: DataType.UINT8, typed: [StatusCodeGeneric, StatusCodeAPS, StatusCodeCBKE]},
77
+ ];
78
+
79
+ export const FRAMES: Partial<Record<CommandId, ZBOSSFrameDesc>> = {
80
+ // ------------------------------------------
81
+ // NCP config
82
+ // ------------------------------------------
83
+
84
+ // Requests firmware, stack and protocol versions from NCP
85
+ [CommandId.GET_MODULE_VERSION]: {
86
+ request: [],
87
+ response: [
88
+ ...commonResponse,
89
+ {name: "fwVersion", type: DataType.UINT32},
90
+ {name: "stackVersion", type: DataType.UINT32},
91
+ {name: "protocolVersion", type: DataType.UINT32},
92
+ ],
93
+ },
94
+ // Force NCP module reboot
95
+ [CommandId.NCP_RESET]: {
96
+ request: [{name: "options", type: DataType.UINT8, typed: ResetOptions}],
97
+ response: [...commonResponse],
98
+ },
99
+ // Requests current Zigbee role of the local device
100
+ [CommandId.GET_ZIGBEE_ROLE]: {
101
+ request: [],
102
+ response: [...commonResponse, {name: "role", type: DataType.UINT8, typed: DeviceType}],
103
+ },
104
+ // Set Zigbee role of the local device
105
+ [CommandId.SET_ZIGBEE_ROLE]: {
106
+ request: [{name: "role", type: DataType.UINT8, typed: DeviceType}],
107
+ response: [...commonResponse],
108
+ },
109
+ // Get Zigbee channels page and mask of the local device
110
+ [CommandId.GET_ZIGBEE_CHANNEL_MASK]: {
111
+ request: [],
112
+ response: [
113
+ ...commonResponse,
114
+ {name: "len", type: DataType.UINT8},
115
+ {
116
+ name: "channels",
117
+ type: BuffaloZBOSSDataType.LIST_TYPED,
118
+ typed: [
119
+ {name: "page", type: DataType.UINT8},
120
+ {name: "mask", type: DataType.UINT32},
121
+ ],
122
+ },
123
+ ],
124
+ },
125
+ // Set Zigbee channels page and mask
126
+ [CommandId.SET_ZIGBEE_CHANNEL_MASK]: {
127
+ request: [
128
+ {name: "page", type: DataType.UINT8},
129
+ {name: "mask", type: DataType.UINT32},
130
+ ],
131
+ response: [...commonResponse],
132
+ },
133
+ // Get Zigbee channel
134
+ [CommandId.GET_ZIGBEE_CHANNEL]: {
135
+ request: [],
136
+ response: [...commonResponse, {name: "page", type: DataType.UINT8}, {name: "channel", type: DataType.UINT8}],
137
+ },
138
+ // Requests current short PAN ID
139
+ [CommandId.GET_PAN_ID]: {
140
+ request: [],
141
+ response: [...commonResponse, {name: "panID", type: DataType.UINT16}],
142
+ },
143
+ // Set short PAN ID
144
+ [CommandId.SET_PAN_ID]: {
145
+ request: [{name: "panID", type: DataType.UINT16}],
146
+ response: [...commonResponse],
147
+ },
148
+ // Requests local IEEE address
149
+ [CommandId.GET_LOCAL_IEEE_ADDR]: {
150
+ request: [{name: "mac", type: DataType.UINT8}],
151
+ response: [...commonResponse, {name: "mac", type: DataType.UINT8}, {name: "ieee", type: DataType.IEEE_ADDR}],
152
+ },
153
+ // Set local IEEE address
154
+ [CommandId.SET_LOCAL_IEEE_ADDR]: {
155
+ request: [
156
+ {name: "mac", type: DataType.UINT8},
157
+ {name: "ieee", type: DataType.IEEE_ADDR},
158
+ ],
159
+ response: [...commonResponse],
160
+ },
161
+ // Get Transmit Power
162
+ [CommandId.GET_TX_POWER]: {
163
+ request: [],
164
+ response: [...commonResponse, {name: "txPower", type: DataType.UINT8}],
165
+ },
166
+ // Set Transmit Power
167
+ [CommandId.SET_TX_POWER]: {
168
+ request: [{name: "txPower", type: DataType.UINT8}],
169
+ response: [...commonResponse, {name: "txPower", type: DataType.UINT8}],
170
+ },
171
+ // Requests RxOnWhenIdle PIB attribute
172
+ [CommandId.GET_RX_ON_WHEN_IDLE]: {
173
+ request: [],
174
+ response: [...commonResponse, {name: "rxOn", type: DataType.UINT8}],
175
+ },
176
+ // Sets Rx On When Idle PIB attribute
177
+ [CommandId.SET_RX_ON_WHEN_IDLE]: {
178
+ request: [{name: "rxOn", type: DataType.UINT8}],
179
+ response: [...commonResponse],
180
+ },
181
+ // Requests current join status of the device
182
+ [CommandId.GET_JOINED]: {
183
+ request: [],
184
+ response: [...commonResponse, {name: "joined", type: DataType.UINT8}],
185
+ },
186
+ // Requests current authentication status of the device
187
+ [CommandId.GET_AUTHENTICATED]: {
188
+ request: [],
189
+ response: [...commonResponse, {name: "authenticated", type: DataType.UINT8}],
190
+ },
191
+ // Requests current End Device timeout
192
+ [CommandId.GET_ED_TIMEOUT]: {
193
+ request: [],
194
+ response: [...commonResponse, {name: "timeout", type: DataType.UINT8}],
195
+ },
196
+ // Sets End Device timeout
197
+ [CommandId.SET_ED_TIMEOUT]: {
198
+ request: [{name: "timeout", type: DataType.UINT8}],
199
+ response: [...commonResponse],
200
+ },
201
+ // Set NWK Key
202
+ [CommandId.SET_NWK_KEY]: {
203
+ request: [
204
+ {name: "nwkKey", type: DataType.SEC_KEY},
205
+ {name: "index", type: DataType.UINT8},
206
+ ],
207
+ response: [...commonResponse],
208
+ },
209
+ // Get list of NWK keys
210
+ [CommandId.GET_NWK_KEYS]: {
211
+ request: [],
212
+ response: [
213
+ ...commonResponse,
214
+ {name: "nwkKey1", type: DataType.SEC_KEY},
215
+ {name: "index1", type: DataType.UINT8},
216
+ {name: "nwkKey2", type: DataType.SEC_KEY},
217
+ {name: "index2", type: DataType.UINT8},
218
+ {name: "nwkKey3", type: DataType.SEC_KEY},
219
+ {name: "index3", type: DataType.UINT8},
220
+ ],
221
+ },
222
+ // Get APS key by IEEE
223
+ [CommandId.GET_APS_KEY_BY_IEEE]: {
224
+ request: [{name: "ieee", type: DataType.IEEE_ADDR}],
225
+ response: [...commonResponse, {name: "apsKey", type: DataType.SEC_KEY}],
226
+ },
227
+ // Get Parent short address
228
+ [CommandId.GET_PARENT_ADDRESS]: {
229
+ request: [],
230
+ response: [...commonResponse, {name: "parent", type: DataType.UINT16}],
231
+ },
232
+ // Get Extended Pan ID
233
+ [CommandId.GET_EXTENDED_PAN_ID]: {
234
+ request: [],
235
+ response: [...commonResponse, {name: "extendedPanID", type: BuffaloZBOSSDataType.EXTENDED_PAN_ID}],
236
+ },
237
+ // Get Coordinator version
238
+ [CommandId.GET_COORDINATOR_VERSION]: {
239
+ request: [],
240
+ response: [...commonResponse, {name: "version", type: DataType.UINT8}],
241
+ },
242
+ // Get Short Address of the device
243
+ [CommandId.GET_SHORT_ADDRESS]: {
244
+ request: [],
245
+ response: [...commonResponse, {name: "nwk", type: DataType.UINT16}],
246
+ },
247
+ // Get Trust Center IEEE Address
248
+ [CommandId.GET_TRUST_CENTER_ADDRESS]: {
249
+ request: [],
250
+ response: [...commonResponse, {name: "ieee", type: DataType.IEEE_ADDR}],
251
+ },
252
+ // Device Reset Indication with reset source
253
+ [CommandId.NCP_RESET_IND]: {
254
+ request: [],
255
+ response: [...commonResponse],
256
+ indication: [{name: "source", type: DataType.UINT8, typed: ResetSource}],
257
+ },
258
+ // Writes NVRAM datasets
259
+ [CommandId.NVRAM_WRITE]: {
260
+ request: [
261
+ {name: "len", type: DataType.UINT8},
262
+ {
263
+ name: "data",
264
+ type: BuffaloZclDataType.LIST_UINT8,
265
+ options: (payload, options) => {
266
+ options.length = payload.len;
267
+ },
268
+ },
269
+ ],
270
+ response: [...commonResponse],
271
+ },
272
+ // Reads an NVRAM dataset
273
+ [CommandId.NVRAM_READ]: {
274
+ request: [{name: "type", type: DataType.UINT8}],
275
+ response: [
276
+ ...commonResponse,
277
+ {name: "nvVersion", type: DataType.UINT16},
278
+ {name: "type", type: DataType.UINT16},
279
+ {name: "version", type: DataType.UINT16},
280
+ {name: "len", type: DataType.UINT16},
281
+ {
282
+ name: "data",
283
+ type: BuffaloZclDataType.LIST_UINT8,
284
+ options: (payload, options) => {
285
+ options.length = payload.len;
286
+ },
287
+ },
288
+ ],
289
+ },
290
+ // Erases all datasets in NVRAM
291
+ [CommandId.NVRAM_ERASE]: {
292
+ request: [],
293
+ response: [...commonResponse],
294
+ },
295
+ // Erases all datasets in NVRAM except ZB_NVRAM_RESERVED, ZB_IB_COUNTERS and application datasets
296
+ [CommandId.NVRAM_CLEAR]: {
297
+ request: [],
298
+ response: [...commonResponse],
299
+ },
300
+ // Sets TC Policy
301
+ [CommandId.SET_TC_POLICY]: {
302
+ request: [
303
+ {name: "type", type: DataType.UINT16, typed: PolicyType},
304
+ {name: "value", type: DataType.UINT8},
305
+ ],
306
+ response: [...commonResponse],
307
+ },
308
+ // Sets an extended PAN ID
309
+ [CommandId.SET_EXTENDED_PAN_ID]: {
310
+ request: [{name: "extendedPanID", type: BuffaloZBOSSDataType.EXTENDED_PAN_ID}],
311
+ response: [...commonResponse],
312
+ },
313
+ // Sets the maximum number of children
314
+ [CommandId.SET_MAX_CHILDREN]: {
315
+ request: [{name: "children", type: DataType.UINT8}],
316
+ response: [...commonResponse],
317
+ },
318
+ // Gets the maximum number of children
319
+ [CommandId.GET_MAX_CHILDREN]: {
320
+ request: [],
321
+ response: [...commonResponse, {name: "children", type: DataType.UINT8}],
322
+ },
323
+
324
+ // ------------------------------------------
325
+ // Application Framework
326
+ // ------------------------------------------
327
+
328
+ // Add or update Simple descriptor for a specified endpoint
329
+ [CommandId.AF_SET_SIMPLE_DESC]: {
330
+ request: [
331
+ {name: "endpoint", type: DataType.UINT8},
332
+ {name: "profileID", type: DataType.UINT16},
333
+ {name: "deviceID", type: DataType.UINT16},
334
+ {name: "version", type: DataType.UINT8},
335
+ {name: "inputClusterCount", type: DataType.UINT8},
336
+ {name: "outputClusterCount", type: DataType.UINT8},
337
+ {
338
+ name: "inputClusters",
339
+ type: BuffaloZclDataType.LIST_UINT16,
340
+ options: (payload, options) => {
341
+ options.length = payload.inputClusterCount;
342
+ },
343
+ },
344
+ {
345
+ name: "outputClusters",
346
+ type: BuffaloZclDataType.LIST_UINT16,
347
+ options: (payload, options) => {
348
+ options.length = payload.outputClusterCount;
349
+ },
350
+ },
351
+ ],
352
+ response: [...commonResponse],
353
+ },
354
+ // Delete Simple Descriptor for a specified endpoint
355
+ [CommandId.AF_DEL_SIMPLE_DESC]: {
356
+ request: [{name: "endpoint", type: DataType.UINT8}],
357
+ response: [...commonResponse],
358
+ },
359
+ // Set Node Descriptor
360
+ [CommandId.AF_SET_NODE_DESC]: {
361
+ request: [
362
+ {name: "type", type: DataType.UINT8, typed: DeviceType},
363
+ {name: "macCapabilities", type: DataType.UINT8},
364
+ {name: "manufacturerCode", type: DataType.UINT16},
365
+ ],
366
+ response: [...commonResponse],
367
+ },
368
+ // Set power descriptor for the device
369
+ [CommandId.AF_SET_POWER_DESC]: {
370
+ request: [
371
+ {name: "powerMode", type: DataType.UINT8},
372
+ {name: "powerSources", type: DataType.UINT8},
373
+ {name: "powerSource", type: DataType.UINT8},
374
+ {name: "powerSourceLevel", type: DataType.UINT8},
375
+ ],
376
+ response: [...commonResponse],
377
+ },
378
+
379
+ // ------------------------------------------
380
+ // Zigbee Device Object
381
+ // ------------------------------------------
382
+
383
+ // Request for a remote device NWK address
384
+ // [CommandId.ZDO_NWK_ADDR_REQ]: {
385
+ // request: [
386
+ // {name: 'nwk', type: DataType.UINT16},
387
+ // {name: 'ieee', type: DataType.IEEE_ADDR},
388
+ // {name: 'type', type: DataType.UINT8},
389
+ // {name: 'startIndex', type: DataType.UINT8},
390
+ // ],
391
+ // response: [
392
+ // ...commonResponse,
393
+ // {name: 'ieee', type: DataType.IEEE_ADDR},
394
+ // {name: 'nwk', type: DataType.UINT16},
395
+ // {name: 'num', type: DataType.UINT8, condition: (payload, buffalo) => buffalo && buffalo.isMore()},
396
+ // {name: 'startIndex', type: DataType.UINT8, condition: (payload, buffalo) => buffalo && buffalo.isMore()},
397
+ // {name: 'nwks', type: BuffaloZclDataType.LIST_UINT16, options: (payload, options) => (options.length = payload.num)},
398
+ // ],
399
+ // },
400
+ // Request for a remote device IEEE address
401
+ // [CommandId.ZDO_IEEE_ADDR_REQ]: {
402
+ // request: [
403
+ // {name: 'destNwk', type: DataType.UINT16},
404
+ // {name: 'nwk', type: DataType.UINT16},
405
+ // {name: 'type', type: DataType.UINT8},
406
+ // {name: 'startIndex', type: DataType.UINT8},
407
+ // ],
408
+ // response: [
409
+ // ...commonResponse,
410
+ // {name: 'ieee', type: DataType.IEEE_ADDR},
411
+ // {name: 'nwk', type: DataType.UINT16},
412
+ // {name: 'num', type: DataType.UINT8, condition: (payload, buffalo) => buffalo && buffalo.isMore()},
413
+ // {name: 'startIndex', type: DataType.UINT8, condition: (payload, buffalo) => buffalo && buffalo.isMore()},
414
+ // {name: 'nwks', type: BuffaloZclDataType.LIST_UINT16, options: (payload, options) => (options.length = payload.num)},
415
+ // ],
416
+ // },
417
+ // Get the Power Descriptor from a remote device
418
+ // [CommandId.ZDO_POWER_DESC_REQ]: {
419
+ // request: [{name: 'nwk', type: DataType.UINT16}],
420
+ // response: [...commonResponse, {name: 'powerDescriptor', type: DataType.UINT16}, {name: 'nwk', type: DataType.UINT16}],
421
+ // },
422
+ // Get the Node Descriptor from a remote device
423
+ // [CommandId.ZDO_NODE_DESC_REQ]: {
424
+ // request: [{name: 'nwk', type: DataType.UINT16}],
425
+ // response: [
426
+ // ...commonResponse,
427
+ // {name: 'flags', type: DataType.UINT16},
428
+ // {name: 'macCapabilities', type: DataType.UINT8},
429
+ // {name: 'manufacturerCode', type: DataType.UINT16},
430
+ // {name: 'bufferSize', type: DataType.UINT8},
431
+ // {name: 'incomingSize', type: DataType.UINT16},
432
+ // {name: 'serverMask', type: DataType.UINT16},
433
+ // {name: 'outgoingSize', type: DataType.UINT16},
434
+ // {name: 'descriptorCapabilities', type: DataType.UINT8},
435
+ // {name: 'nwk', type: DataType.UINT16},
436
+ // ],
437
+ // },
438
+ // Get the Simple Descriptor from a remote device
439
+ // [CommandId.ZDO_SIMPLE_DESC_REQ]: {
440
+ // request: [
441
+ // {name: 'nwk', type: DataType.UINT16},
442
+ // {name: 'endpoint', type: DataType.UINT8},
443
+ // ],
444
+ // response: [
445
+ // ...commonResponse,
446
+ // {name: 'endpoint', type: DataType.UINT8},
447
+ // {name: 'profileID', type: DataType.UINT16},
448
+ // {name: 'deviceID', type: DataType.UINT16},
449
+ // {name: 'version', type: DataType.UINT8},
450
+ // {name: 'inputClusterCount', type: DataType.UINT8},
451
+ // {name: 'outputClusterCount', type: DataType.UINT8},
452
+ // {
453
+ // name: 'inputClusters',
454
+ // type: BuffaloZclDataType.LIST_UINT16,
455
+ // options: (payload, options) => (options.length = payload.inputClusterCount),
456
+ // },
457
+ // {
458
+ // name: 'outputClusters',
459
+ // type: BuffaloZclDataType.LIST_UINT16,
460
+ // options: (payload, options) => (options.length = payload.outputClusterCount),
461
+ // },
462
+ // {name: 'nwk', type: DataType.UINT16},
463
+ // ],
464
+ // },
465
+ // Get a list of Active Endpoints from a remote device
466
+ // [CommandId.ZDO_ACTIVE_EP_REQ]: {
467
+ // request: [{name: 'nwk', type: DataType.UINT16}],
468
+ // response: [
469
+ // ...commonResponse,
470
+ // {name: 'len', type: DataType.UINT8},
471
+ // {name: 'endpoints', type: BuffaloZclDataType.LIST_UINT8, options: (payload, options) => (options.length = payload.len)},
472
+ // {name: 'nwk', type: DataType.UINT16},
473
+ // ],
474
+ // },
475
+ // Send Match Descriptor request to a remote device
476
+ // [CommandId.ZDO_MATCH_DESC_REQ]: {
477
+ // request: [
478
+ // {name: 'nwk', type: DataType.UINT16},
479
+ // {name: 'profileID', type: DataType.UINT16},
480
+ // {name: 'inputClusterCount', type: DataType.UINT8},
481
+ // {name: 'outputClusterCount', type: DataType.UINT8},
482
+ // {
483
+ // name: 'inputClusters',
484
+ // type: BuffaloZclDataType.LIST_UINT16,
485
+ // options: (payload, options) => (options.length = payload.inputClusterCount),
486
+ // },
487
+ // {
488
+ // name: 'outputClusters',
489
+ // type: BuffaloZclDataType.LIST_UINT16,
490
+ // options: (payload, options) => (options.length = payload.outputClusterCount),
491
+ // },
492
+ // ],
493
+ // response: [
494
+ // ...commonResponse,
495
+ // {name: 'len', type: DataType.UINT8},
496
+ // {name: 'endpoints', type: BuffaloZclDataType.LIST_UINT8, options: (payload, options) => (options.length = payload.len)},
497
+ // {name: 'nwk', type: DataType.UINT16},
498
+ // ],
499
+ // },
500
+ // Send Bind request to a remote device
501
+ // [CommandId.ZDO_BIND_REQ]: {
502
+ // request: [
503
+ // {name: 'target', type: DataType.UINT16},
504
+ // {name: 'srcIeee', type: DataType.IEEE_ADDR},
505
+ // {name: 'srcEP', type: DataType.UINT8},
506
+ // {name: 'clusterID', type: DataType.UINT16},
507
+ // {name: 'addrMode', type: DataType.UINT8},
508
+ // {name: 'dstIeee', type: DataType.IEEE_ADDR},
509
+ // {name: 'dstEP', type: DataType.UINT8},
510
+ // ],
511
+ // response: [...commonResponse],
512
+ // },
513
+ // Send Unbind request to a remote device
514
+ // [CommandId.ZDO_UNBIND_REQ]: {
515
+ // request: [
516
+ // {name: 'target', type: DataType.UINT16},
517
+ // {name: 'srcIeee', type: DataType.IEEE_ADDR},
518
+ // {name: 'srcEP', type: DataType.UINT8},
519
+ // {name: 'clusterID', type: DataType.UINT16},
520
+ // {name: 'addrMode', type: DataType.UINT8},
521
+ // {name: 'dstIeee', type: DataType.IEEE_ADDR},
522
+ // {name: 'dstEP', type: DataType.UINT8},
523
+ // ],
524
+ // response: [...commonResponse],
525
+ // },
526
+ // Request that a Remote Device leave the network
527
+ // [CommandId.ZDO_MGMT_LEAVE_REQ]: {
528
+ // request: [
529
+ // {name: 'nwk', type: DataType.UINT16},
530
+ // {name: 'ieee', type: DataType.IEEE_ADDR},
531
+ // {name: 'flags', type: DataType.UINT8},
532
+ // ],
533
+ // response: [...commonResponse],
534
+ // },
535
+ // Request a remote device or devices to allow or disallow association
536
+ // [CommandId.ZDO_PERMIT_JOINING_REQ]: {
537
+ // request: [
538
+ // {name: 'nwk', type: DataType.UINT16},
539
+ // {name: 'duration', type: DataType.UINT8},
540
+ // {name: 'tcSignificance', type: DataType.UINT8},
541
+ // ],
542
+ // response: [...commonResponse],
543
+ // },
544
+ // Device announce indication
545
+ // [CommandId.ZDO_DEV_ANNCE_IND]: {
546
+ // request: [],
547
+ // response: [],
548
+ // indication: [
549
+ // {name: 'nwk', type: DataType.UINT16},
550
+ // {name: 'ieee', type: DataType.IEEE_ADDR},
551
+ // {name: 'macCapabilities', type: DataType.UINT8},
552
+ // ],
553
+ // },
554
+ // Rejoin to remote network even if joined already. If joined, clear internal data structures prior to joining. That call is useful for rejoin after parent loss.
555
+ [CommandId.ZDO_REJOIN]: {
556
+ request: [
557
+ {name: "extendedPanID", type: BuffaloZBOSSDataType.EXTENDED_PAN_ID},
558
+ {name: "len", type: DataType.UINT8},
559
+ {
560
+ name: "channels",
561
+ type: BuffaloZBOSSDataType.LIST_TYPED,
562
+ typed: [
563
+ {name: "page", type: DataType.UINT8},
564
+ {name: "mask", type: DataType.UINT32},
565
+ ],
566
+ },
567
+ {name: "secure", type: DataType.UINT8},
568
+ ],
569
+ response: [...commonResponse, {name: "flags", type: DataType.UINT8}],
570
+ },
571
+ // Sends a ZDO system server discovery request
572
+ [CommandId.ZDO_SYSTEM_SRV_DISCOVERY_REQ]: {
573
+ request: [{name: "serverMask", type: DataType.UINT16}],
574
+ response: [...commonResponse],
575
+ },
576
+ // Sends a ZDO Mgmt Bind request to a remote device
577
+ // [CommandId.ZDO_MGMT_BIND_REQ]: {
578
+ // request: [
579
+ // {name: 'nwk', type: DataType.UINT16},
580
+ // {name: 'startIndex', type: DataType.UINT8},
581
+ // ],
582
+ // response: [...commonResponse],
583
+ // },
584
+ // Sends a ZDO Mgmt LQI request to a remote device
585
+ // [CommandId.ZDO_MGMT_LQI_REQ]: {
586
+ // request: [
587
+ // {name: 'nwk', type: DataType.UINT16},
588
+ // {name: 'startIndex', type: DataType.UINT8},
589
+ // ],
590
+ // response: [
591
+ // ...commonResponse,
592
+ // {name: 'entries', type: DataType.UINT8},
593
+ // {name: 'startIndex', type: DataType.UINT8},
594
+ // {name: 'len', type: DataType.UINT8},
595
+ // {
596
+ // name: 'neighbors',
597
+ // type: BuffaloZBOSSDataType.LIST_TYPED,
598
+ // typed: [
599
+ // {name: 'extendedPanID', type: BuffaloZBOSSDataType.EXTENDED_PAN_ID},
600
+ // {name: 'ieee', type: DataType.IEEE_ADDR},
601
+ // {name: 'nwk', type: DataType.UINT16},
602
+ // {name: 'relationship', type: DataType.UINT8},
603
+ // {name: 'joining', type: DataType.UINT8},
604
+ // {name: 'depth', type: DataType.UINT8},
605
+ // {name: 'lqi', type: DataType.UINT8},
606
+ // ],
607
+ // options: (payload, options) => (options.length = payload.len),
608
+ // },
609
+ // ],
610
+ // },
611
+ // Sends a ZDO Mgmt NWK Update Request to a remote device
612
+ // [CommandId.ZDO_MGMT_NWK_UPDATE_REQ]: {
613
+ // request: [
614
+ // {name: 'channelMask', type: DataType.UINT32},
615
+ // {name: 'duration', type: DataType.UINT8},
616
+ // {name: 'count', type: DataType.UINT8},
617
+ // {name: 'managerNwk', type: DataType.UINT16},
618
+ // {name: 'nwk', type: DataType.UINT16},
619
+ // ],
620
+ // response: [...commonResponse],
621
+ // },
622
+ // Require statistics (last message LQI\RSSI, counters, etc.) from the ZDO level
623
+ [CommandId.ZDO_GET_STATS]: {
624
+ request: [{name: "cleanup", type: DataType.UINT8}],
625
+ response: [
626
+ ...commonResponse,
627
+ {name: "mac_rx_bcast", type: DataType.UINT32},
628
+ {name: "mac_tx_bcast", type: DataType.UINT32},
629
+ {name: "mac_rx_ucast", type: DataType.UINT32},
630
+ {name: "mac_tx_ucast_total_zcl", type: DataType.UINT32},
631
+ {name: "mac_tx_ucast_failures_zcl", type: DataType.UINT16},
632
+ {name: "mac_tx_ucast_retries_zcl", type: DataType.UINT16},
633
+ {name: "mac_tx_ucast_total", type: DataType.UINT16},
634
+ {name: "mac_tx_ucast_failures", type: DataType.UINT16},
635
+ {name: "mac_tx_ucast_retries", type: DataType.UINT16},
636
+ {name: "phy_to_mac_que_lim_reached", type: DataType.UINT16},
637
+ {name: "mac_validate_drop_cnt", type: DataType.UINT16},
638
+ {name: "phy_cca_fail_count", type: DataType.UINT16},
639
+ {name: "period_of_time", type: DataType.UINT8},
640
+ {name: "last_msg_lqi", type: DataType.UINT8},
641
+ {name: "last_msg_rssi", type: DataType.UINT8},
642
+ {name: "number_of_resets", type: DataType.UINT16},
643
+ {name: "aps_tx_bcast", type: DataType.UINT16},
644
+ {name: "aps_tx_ucast_success", type: DataType.UINT16},
645
+ {name: "aps_tx_ucast_retry", type: DataType.UINT16},
646
+ {name: "aps_tx_ucast_fail", type: DataType.UINT16},
647
+ {name: "route_disc_initiated", type: DataType.UINT16},
648
+ {name: "nwk_neighbor_added", type: DataType.UINT16},
649
+ {name: "nwk_neighbor_removed", type: DataType.UINT16},
650
+ {name: "nwk_neighbor_stale", type: DataType.UINT16},
651
+ {name: "join_indication", type: DataType.UINT16},
652
+ {name: "childs_removed", type: DataType.UINT16},
653
+ {name: "nwk_fc_failure", type: DataType.UINT16},
654
+ {name: "aps_fc_failure", type: DataType.UINT16},
655
+ {name: "aps_unauthorized_key", type: DataType.UINT16},
656
+ {name: "nwk_decrypt_failure", type: DataType.UINT16},
657
+ {name: "aps_decrypt_failure", type: DataType.UINT16},
658
+ {name: "packet_buffer_allocate_failures", type: DataType.UINT16},
659
+ {name: "average_mac_retry_per_aps_message_sent", type: DataType.UINT16},
660
+ {name: "nwk_retry_overflow", type: DataType.UINT16},
661
+ {name: "nwk_bcast_table_full", type: DataType.UINT16},
662
+ {name: "status", type: DataType.UINT8},
663
+ ],
664
+ },
665
+ // Indicates some device in the network was authorized (e.g. received TCLK)
666
+ [CommandId.ZDO_DEV_AUTHORIZED_IND]: {
667
+ request: [],
668
+ response: [],
669
+ indication: [
670
+ {name: "ieee", type: DataType.IEEE_ADDR},
671
+ {name: "nwk", type: DataType.UINT16},
672
+ {name: "authType", type: DataType.UINT8, typed: DeviceAuthorizedType},
673
+ {
674
+ name: "authStatus",
675
+ type: DataType.UINT8,
676
+ /* typed: DeviceAuthorizedLegacyStatus | DeviceAuthorizedR21TCLKStatus | DeviceAuthorizedSECBKEStatus */
677
+ },
678
+ ],
679
+ },
680
+ // Indicates some device joined the network
681
+ [CommandId.ZDO_DEV_UPDATE_IND]: {
682
+ request: [],
683
+ response: [],
684
+ indication: [
685
+ {name: "ieee", type: DataType.IEEE_ADDR},
686
+ {name: "nwk", type: DataType.UINT16},
687
+ {name: "status", type: DataType.UINT8, typed: DeviceUpdateStatus},
688
+ // not in dsr-corporation spec
689
+ // {name: 'tcAction', type: DataType.UINT8, typed: DeviceUpdateTCAction},
690
+ // {name: 'parentNwk', type: DataType.UINT16},
691
+ ],
692
+ },
693
+ // Sets manufacturer code field in the node descriptor
694
+ [CommandId.ZDO_SET_NODE_DESC_MANUF_CODE]: {
695
+ request: [{name: "manufacturerCode", type: DataType.UINT16}],
696
+ response: [...commonResponse],
697
+ },
698
+
699
+ // ------------------------------------------
700
+ // Application Support Sub-layer
701
+ // ------------------------------------------
702
+
703
+ // APSDE-DATA.request
704
+ [CommandId.APSDE_DATA_REQ]: {
705
+ request: [
706
+ {name: "paramLength", type: DataType.UINT8},
707
+ {name: "dataLength", type: DataType.UINT16},
708
+ {name: "addr", type: DataType.IEEE_ADDR},
709
+ {name: "profileID", type: DataType.UINT16},
710
+ {name: "clusterID", type: DataType.UINT16},
711
+ {name: "dstEndpoint", type: DataType.UINT8, condition: (payload) => [2, 3].includes(payload.dstAddrMode)},
712
+ //{name: 'dstEndpoint', type: DataType.UINT8},
713
+ {name: "srcEndpoint", type: DataType.UINT8},
714
+ {name: "radius", type: DataType.UINT8},
715
+ {name: "dstAddrMode", type: DataType.UINT8},
716
+ {name: "txOptions", type: DataType.UINT8},
717
+ {name: "useAlias", type: DataType.UINT8},
718
+ //{name: 'aliasAddr', type: DataType.UINT16, condition: (payload) => payload.useAlias !== 0},
719
+ {name: "aliasAddr", type: DataType.UINT16},
720
+ {name: "aliasSequence", type: DataType.UINT8},
721
+ {
722
+ name: "data",
723
+ type: BuffaloZclDataType.LIST_UINT8,
724
+ options: (payload, options) => {
725
+ options.length = payload.dataLength;
726
+ },
727
+ },
728
+ ],
729
+ response: [
730
+ ...commonResponse,
731
+ {name: "ieee", type: DataType.IEEE_ADDR},
732
+ {name: "dstEndpoint", type: DataType.UINT8, condition: (payload) => [2, 3].includes(payload.dstAddrMode)},
733
+ {name: "srcEndpoint", type: DataType.UINT8},
734
+ {name: "txTime", type: DataType.UINT32},
735
+ {name: "dstAddrMode", type: DataType.UINT8},
736
+ ],
737
+ },
738
+ // APSME-BIND.Request
739
+ [CommandId.APSME_BIND]: {
740
+ request: [
741
+ {name: "srcIeee", type: DataType.IEEE_ADDR},
742
+ {name: "srcEndpoint", type: DataType.UINT8},
743
+ {name: "clusterID", type: DataType.UINT16},
744
+ {name: "dstAddrMode", type: DataType.UINT8},
745
+ {name: "dstIeee", type: DataType.IEEE_ADDR},
746
+ {name: "dstEndpoint", type: DataType.UINT8},
747
+ ],
748
+ response: [...commonResponse, {name: "index", type: DataType.UINT8}],
749
+ },
750
+ // APSME-UNBIND.request
751
+ [CommandId.APSME_UNBIND]: {
752
+ request: [
753
+ {name: "srcIeee", type: DataType.IEEE_ADDR},
754
+ {name: "srcEndpoint", type: DataType.UINT8},
755
+ {name: "clusterID", type: DataType.UINT16},
756
+ {name: "dstAddrMode", type: DataType.UINT8},
757
+ {name: "dstIeee", type: DataType.IEEE_ADDR},
758
+ {name: "dstEndpoint", type: DataType.UINT8},
759
+ ],
760
+ response: [...commonResponse, {name: "index", type: DataType.UINT8}],
761
+ },
762
+ // APSME-ADD-GROUP.request
763
+ [CommandId.APSME_ADD_GROUP]: {
764
+ request: [
765
+ {name: "nwk", type: DataType.UINT16},
766
+ {name: "endpoint", type: DataType.UINT8},
767
+ ],
768
+ response: [...commonResponse],
769
+ },
770
+ // APSME-REMOVE-GROUP.request
771
+ [CommandId.APSME_RM_GROUP]: {
772
+ request: [
773
+ {name: "nwk", type: DataType.UINT16},
774
+ {name: "endpoint", type: DataType.UINT8},
775
+ ],
776
+ response: [...commonResponse],
777
+ },
778
+ // APSDE-DATA.indication
779
+ [CommandId.APSDE_DATA_IND]: {
780
+ request: [],
781
+ response: [],
782
+ indication: [
783
+ {name: "paramLength", type: DataType.UINT8},
784
+ {name: "dataLength", type: DataType.UINT16},
785
+ {name: "apsFC", type: DataType.UINT8},
786
+ {name: "srcNwk", type: DataType.UINT16},
787
+ {name: "dstNwk", type: DataType.UINT16},
788
+ {name: "grpNwk", type: DataType.UINT16},
789
+ {name: "dstEndpoint", type: DataType.UINT8},
790
+ {name: "srcEndpoint", type: DataType.UINT8},
791
+ {name: "clusterID", type: DataType.UINT16},
792
+ {name: "profileID", type: DataType.UINT16},
793
+ {name: "apsCounter", type: DataType.UINT8},
794
+ {name: "srcMAC", type: DataType.UINT16},
795
+ {name: "dstMAC", type: DataType.UINT16},
796
+ {name: "lqi", type: DataType.UINT8},
797
+ {name: "rssi", type: DataType.UINT8},
798
+ {name: "apsKey", type: DataType.UINT8},
799
+ {
800
+ name: "data",
801
+ type: BuffaloZclDataType.BUFFER,
802
+ options: (payload, options) => {
803
+ options.length = payload.dataLength;
804
+ },
805
+ },
806
+ ],
807
+ },
808
+ // APSME-REMOVE-ALL-GROUPS.request
809
+ [CommandId.APSME_RM_ALL_GROUPS]: {
810
+ request: [{name: "endpoint", type: DataType.UINT8}],
811
+ response: [...commonResponse],
812
+ },
813
+ // Checks if there are any bindings for specified endpoint and cluster
814
+ [CommandId.APS_CHECK_BINDING]: {
815
+ request: [
816
+ {name: "endpoint", type: DataType.UINT8},
817
+ {name: "clusterID", type: DataType.UINT16},
818
+ ],
819
+ response: [...commonResponse, {name: "exists", type: DataType.UINT8}],
820
+ },
821
+ // Gets the APS Group Table
822
+ [CommandId.APS_GET_GROUP_TABLE]: {
823
+ request: [],
824
+ response: [
825
+ ...commonResponse,
826
+ {name: "length", type: DataType.UINT16},
827
+ {
828
+ name: "groups",
829
+ type: BuffaloZclDataType.LIST_UINT16,
830
+ options: (payload, options) => {
831
+ options.length = payload.length;
832
+ },
833
+ },
834
+ ],
835
+ },
836
+ // Removes all bindings
837
+ [CommandId.APSME_UNBIND_ALL]: {
838
+ request: [],
839
+ response: [...commonResponse],
840
+ },
841
+
842
+ // ------------------------------------------
843
+ // NWK Management API
844
+ // ------------------------------------------
845
+
846
+ // NLME-NETWORK-FORMATION.request
847
+ [CommandId.NWK_FORMATION]: {
848
+ request: [
849
+ {name: "len", type: DataType.UINT8},
850
+ {
851
+ name: "channels",
852
+ type: BuffaloZBOSSDataType.LIST_TYPED,
853
+ typed: [
854
+ {name: "page", type: DataType.UINT8},
855
+ {name: "mask", type: DataType.UINT32},
856
+ ],
857
+ },
858
+ {name: "duration", type: DataType.UINT8},
859
+ {name: "distribFlag", type: DataType.UINT8},
860
+ {name: "distribNwk", type: DataType.UINT16},
861
+ {name: "extendedPanID", type: BuffaloZBOSSDataType.EXTENDED_PAN_ID},
862
+ ],
863
+ response: [...commonResponse, {name: "nwk", type: DataType.UINT16}],
864
+ },
865
+ // NLME-NETWORK-DISCOVERY.request
866
+ [CommandId.NWK_DISCOVERY]: {
867
+ request: [
868
+ {name: "len", type: DataType.UINT8},
869
+ {
870
+ name: "channels",
871
+ type: BuffaloZBOSSDataType.LIST_TYPED,
872
+ typed: [
873
+ {name: "page", type: DataType.UINT8},
874
+ {name: "mask", type: DataType.UINT32},
875
+ ],
876
+ },
877
+ {name: "duration", type: DataType.UINT8},
878
+ {name: "macCapabilities", type: DataType.UINT8},
879
+ {name: "security", type: DataType.UINT8},
880
+ ],
881
+ response: [
882
+ ...commonResponse,
883
+ {name: "extendedPanID", type: BuffaloZBOSSDataType.EXTENDED_PAN_ID},
884
+ {name: "panID", type: DataType.UINT16},
885
+ {name: "nwkUpdateID", type: DataType.UINT8},
886
+ {name: "page", type: DataType.UINT8},
887
+ {name: "channel", type: DataType.UINT8},
888
+ {name: "flags", type: DataType.UINT8},
889
+ {name: "lqi", type: DataType.UINT8},
890
+ {name: "rssi", type: DataType.INT8},
891
+ ],
892
+ },
893
+ // Join network, do basic post-join actions
894
+ [CommandId.NWK_NLME_JOIN]: {
895
+ request: [
896
+ {name: "extendedPanID", type: BuffaloZBOSSDataType.EXTENDED_PAN_ID},
897
+ {name: "rejoin", type: DataType.UINT8},
898
+ {name: "len", type: DataType.UINT8},
899
+ {
900
+ name: "channels",
901
+ type: BuffaloZBOSSDataType.LIST_TYPED,
902
+ typed: [
903
+ {name: "page", type: DataType.UINT8},
904
+ {name: "mask", type: DataType.UINT32},
905
+ ],
906
+ },
907
+ ],
908
+ response: [
909
+ ...commonResponse,
910
+ {name: "nwk", type: DataType.UINT16},
911
+ {name: "extendedPanID", type: BuffaloZBOSSDataType.EXTENDED_PAN_ID},
912
+ {name: "page", type: DataType.UINT8},
913
+ {name: "channel", type: DataType.UINT8},
914
+ {name: "beacon", type: DataType.UINT8},
915
+ {name: "macInterface", type: DataType.UINT8},
916
+ ],
917
+ },
918
+ // NLME-PERMIT-JOINING.request
919
+ [CommandId.NWK_PERMIT_JOINING]: {
920
+ request: [{name: "duration", type: DataType.UINT8}],
921
+ response: [...commonResponse],
922
+ },
923
+ // Get IEEE address by short address from the local address translation table
924
+ [CommandId.NWK_GET_IEEE_BY_SHORT]: {
925
+ request: [{name: "nwk", type: DataType.UINT16}],
926
+ response: [...commonResponse, {name: "ieee", type: DataType.IEEE_ADDR}],
927
+ },
928
+ // Get short address by IEEE address from the local address translation table
929
+ [CommandId.NWK_GET_SHORT_BY_IEEE]: {
930
+ request: [{name: "ieee", type: DataType.IEEE_ADDR}],
931
+ response: [...commonResponse, {name: "nwk", type: DataType.UINT16}],
932
+ },
933
+ // Get local neighbor table entry by IEEE address
934
+ [CommandId.NWK_GET_NEIGHBOR_BY_IEEE]: {
935
+ request: [{name: "ieee", type: DataType.IEEE_ADDR}],
936
+ response: [
937
+ ...commonResponse,
938
+ {name: "ieee", type: DataType.IEEE_ADDR},
939
+ {name: "nwk", type: DataType.UINT16},
940
+ {name: "role", type: DataType.UINT8},
941
+ {name: "rxOnWhenIdle", type: DataType.UINT8},
942
+ {name: "edConfig", type: DataType.UINT16},
943
+ {name: "timeoutCounter", type: DataType.UINT32},
944
+ {name: "deviceTimeout", type: DataType.UINT32},
945
+ {name: "relationship", type: DataType.UINT8},
946
+ {name: "failureCount", type: DataType.UINT8},
947
+ {name: "lqi", type: DataType.UINT8},
948
+ {name: "cost", type: DataType.UINT8},
949
+ {name: "age", type: DataType.UINT8},
950
+ {name: "keepalive", type: DataType.UINT8},
951
+ {name: "macInterface", type: DataType.UINT8},
952
+ ],
953
+ },
954
+ // Indicates that network rejoining procedure has completed
955
+ [CommandId.NWK_REJOINED_IND]: {
956
+ request: [],
957
+ response: [],
958
+ indication: [
959
+ {name: "nwk", type: DataType.UINT16},
960
+ {name: "extendedPanID", type: BuffaloZBOSSDataType.EXTENDED_PAN_ID},
961
+ {name: "page", type: DataType.UINT8},
962
+ {name: "channel", type: DataType.UINT8},
963
+ {name: "beacon", type: DataType.UINT8},
964
+ {name: "macInterface", type: DataType.UINT8},
965
+ ],
966
+ },
967
+ // Indicates that network rejoining procedure has failed
968
+ [CommandId.NWK_REJOIN_FAILED_IND]: {
969
+ request: [],
970
+ response: [],
971
+ indication: [...commonResponse],
972
+ },
973
+ // Network Leave indication
974
+ [CommandId.NWK_LEAVE_IND]: {
975
+ request: [],
976
+ response: [],
977
+ indication: [
978
+ {name: "ieee", type: DataType.IEEE_ADDR},
979
+ {name: "rejoin", type: DataType.UINT8},
980
+ ],
981
+ },
982
+ // Set Fast Poll Interval PIM attribute
983
+ [CommandId.PIM_SET_FAST_POLL_INTERVAL]: {
984
+ request: [{name: "interval", type: DataType.UINT16}],
985
+ response: [...commonResponse],
986
+ },
987
+ // Set Long Poll Interval PIM attribute
988
+ [CommandId.PIM_SET_LONG_POLL_INTERVAL]: {
989
+ request: [{name: "interval", type: DataType.UINT32}],
990
+ response: [...commonResponse],
991
+ },
992
+ // Start poll with the Fast Poll Interval specified by PIM attribute
993
+ [CommandId.PIM_START_FAST_POLL]: {
994
+ request: [],
995
+ response: [...commonResponse],
996
+ },
997
+ // Start Long Poll
998
+ [CommandId.PIM_START_LONG_POLL]: {
999
+ request: [],
1000
+ response: [...commonResponse],
1001
+ },
1002
+ // Start poll with the Long Poll Interval specified by PIM attribute
1003
+ [CommandId.PIM_START_POLL]: {
1004
+ request: [],
1005
+ response: [...commonResponse],
1006
+ },
1007
+ // Stop fast poll and restart it with the Long Poll Interval
1008
+ [CommandId.PIM_STOP_FAST_POLL]: {
1009
+ request: [],
1010
+ response: [...commonResponse, {name: "result", type: DataType.UINT8}],
1011
+ },
1012
+ // Stop automatic ZBOSS poll
1013
+ [CommandId.PIM_STOP_POLL]: {
1014
+ request: [],
1015
+ response: [...commonResponse],
1016
+ },
1017
+ // Enable turbo poll for a given amount of time.
1018
+ [CommandId.PIM_ENABLE_TURBO_POLL]: {
1019
+ request: [{name: "time", type: DataType.UINT32}],
1020
+ response: [...commonResponse],
1021
+ },
1022
+ // Disable turbo poll for a given amount of time.
1023
+ [CommandId.PIM_DISABLE_TURBO_POLL]: {
1024
+ request: [],
1025
+ response: [...commonResponse],
1026
+ },
1027
+ // Disable turbo poll for a given amount of time.
1028
+ [CommandId.NWK_ADDRESS_UPDATE_IND]: {
1029
+ request: [],
1030
+ response: [],
1031
+ indication: [{name: "nwk", type: DataType.UINT16}],
1032
+ },
1033
+ // Start without forming a new network.
1034
+ [CommandId.NWK_START_WITHOUT_FORMATION]: {
1035
+ request: [],
1036
+ response: [...commonResponse],
1037
+ },
1038
+ // NWK NLME start router request
1039
+ [CommandId.NWK_NLME_ROUTER_START]: {
1040
+ request: [
1041
+ {name: "beaconOrder", type: DataType.UINT8},
1042
+ {name: "superframeOrder", type: DataType.UINT8},
1043
+ {name: "batteryLife", type: DataType.UINT8},
1044
+ ],
1045
+ response: [...commonResponse],
1046
+ },
1047
+ // Indicates that joined device has no parent
1048
+ [CommandId.PARENT_LOST_IND]: {
1049
+ request: [],
1050
+ response: [],
1051
+ indication: [],
1052
+ },
1053
+ // PIM_START_TURBO_POLL_PACKETS
1054
+ // PIM_START_TURBO_POLL_CONTINUOUS
1055
+ // PIM_TURBO_POLL_CONTINUOUS_LEAVE
1056
+ // PIM_TURBO_POLL_PACKETS_LEAVE
1057
+ // PIM_PERMIT_TURBO_POLL
1058
+ // PIM_SET_FAST_POLL_TIMEOUT
1059
+ // PIM_GET_LONG_POLL_INTERVAL
1060
+ // PIM_GET_IN_FAST_POLL_FLAG
1061
+ // Sets keepalive mode
1062
+ [CommandId.SET_KEEPALIVE_MOVE]: {
1063
+ request: [{name: "mode", type: DataType.UINT8}],
1064
+ response: [...commonResponse],
1065
+ },
1066
+ // Starts a concentrator mode
1067
+ [CommandId.START_CONCENTRATOR_MODE]: {
1068
+ request: [
1069
+ {name: "radius", type: DataType.UINT8},
1070
+ {name: "timeout", type: DataType.UINT32},
1071
+ ],
1072
+ response: [...commonResponse],
1073
+ },
1074
+ // Stops a concentrator mode
1075
+ [CommandId.STOP_CONCENTRATOR_MODE]: {
1076
+ request: [],
1077
+ response: [...commonResponse],
1078
+ },
1079
+ // Enables or disables PAN ID conflict resolution
1080
+ [CommandId.NWK_ENABLE_PAN_ID_CONFLICT_RESOLUTION]: {
1081
+ request: [{name: "enable", type: DataType.UINT8}],
1082
+ response: [...commonResponse],
1083
+ },
1084
+ // Enables or disables automatic PAN ID conflict resolution
1085
+ [CommandId.NWK_ENABLE_AUTO_PAN_ID_CONFLICT_RESOLUTION]: {
1086
+ request: [{name: "enable", type: DataType.UINT8}],
1087
+ response: [...commonResponse],
1088
+ },
1089
+ // PIM_TURBO_POLL_CANCEL_PACKET
1090
+
1091
+ // ------------------------------------------
1092
+ // Security
1093
+ // ------------------------------------------
1094
+
1095
+ // Set local device installcode to ZR/ZED
1096
+ [CommandId.SECUR_SET_LOCAL_IC]: {
1097
+ request: [
1098
+ {name: "installCode", type: BuffaloZclDataType.LIST_UINT8}, //8, 10, 14 or 18Installcode, including trailing 2 bytes of CRC
1099
+ ],
1100
+ response: [...commonResponse],
1101
+ },
1102
+ // Set remote device installcode to ZC
1103
+ [CommandId.SECUR_ADD_IC]: {
1104
+ request: [
1105
+ {name: "ieee", type: DataType.IEEE_ADDR},
1106
+ {name: "installCode", type: BuffaloZclDataType.LIST_UINT8}, //8, 10, 14 or 18Installcode, including trailing 2 bytes of CRC
1107
+ ],
1108
+ response: [...commonResponse],
1109
+ },
1110
+ // Delete remote device installcode from ZC
1111
+ [CommandId.SECUR_DEL_IC]: {
1112
+ request: [{name: "ieee", type: DataType.IEEE_ADDR}],
1113
+ response: [...commonResponse],
1114
+ },
1115
+ // Get local device Installcode
1116
+ [CommandId.SECUR_GET_LOCAL_IC]: {
1117
+ request: [],
1118
+ response: [
1119
+ ...commonResponse,
1120
+ {name: "installCode", type: BuffaloZclDataType.LIST_UINT8}, //8, 10, 14 or 18Installcode, including trailing 2 bytes of CRC
1121
+ ],
1122
+ },
1123
+ // TCLK Indication
1124
+ [CommandId.SECUR_TCLK_IND]: {
1125
+ request: [],
1126
+ response: [],
1127
+ indication: [
1128
+ {name: "ieee", type: DataType.IEEE_ADDR},
1129
+ {name: "keyType", type: DataType.UINT8},
1130
+ ],
1131
+ },
1132
+ // TCLK Exchange Indication Failed
1133
+ [CommandId.SECUR_TCLK_EXCHANGE_FAILED_IND]: {
1134
+ request: [],
1135
+ response: [],
1136
+ indication: [...commonResponse],
1137
+ },
1138
+ // Initiates a key switch procedure
1139
+ [CommandId.SECUR_NWK_INITIATE_KEY_SWITCH_PROCEDURE]: {
1140
+ request: [],
1141
+ response: [...commonResponse],
1142
+ },
1143
+ // Gets the IC list
1144
+ [CommandId.SECUR_GET_IC_LIST]: {
1145
+ request: [{name: "startIndex", type: DataType.UINT8}],
1146
+ response: [
1147
+ ...commonResponse,
1148
+ {name: "size", type: DataType.UINT8},
1149
+ {name: "startIndex", type: DataType.UINT8},
1150
+ {name: "count", type: DataType.UINT8},
1151
+ {
1152
+ name: "table",
1153
+ type: BuffaloZBOSSDataType.LIST_TYPED,
1154
+ typed: [
1155
+ {name: "ieee", type: DataType.IEEE_ADDR},
1156
+ {name: "type", type: DataType.UINT8},
1157
+ {name: "installCode", type: BuffaloZclDataType.LIST_UINT8}, //8, 10, 14 or 18Installcode, including trailing 2 bytes of CRC
1158
+ ],
1159
+ },
1160
+ ],
1161
+ },
1162
+ // Get an IC table entry by index
1163
+ [CommandId.SECUR_GET_IC_BY_IDX]: {
1164
+ request: [{name: "index", type: DataType.UINT8}],
1165
+ response: [
1166
+ ...commonResponse,
1167
+ {name: "ieee", type: DataType.IEEE_ADDR},
1168
+ {name: "type", type: DataType.UINT8},
1169
+ {name: "installCode", type: BuffaloZclDataType.LIST_UINT8}, //8, 10, 14 or 18Installcode, including trailing 2 bytes of CRC
1170
+ ],
1171
+ },
1172
+ // Removes all IC
1173
+ [CommandId.SECUR_REMOVE_ALL_IC]: {
1174
+ request: [],
1175
+ response: [...commonResponse],
1176
+ },
1177
+
1178
+ ///////////////////
1179
+ [CommandId.UNKNOWN_1]: {
1180
+ request: [],
1181
+ response: [...commonResponse],
1182
+ indication: [{name: "data", type: DataType.UINT8}],
1183
+ },
1184
+ };