zigbee-herdsman 0.55.5 → 0.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +14 -0
  3. package/dist/adapter/adapter.d.ts +16 -8
  4. package/dist/adapter/adapter.d.ts.map +1 -1
  5. package/dist/adapter/adapter.js +4 -2
  6. package/dist/adapter/adapter.js.map +1 -1
  7. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +11 -11
  8. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  9. package/dist/adapter/deconz/adapter/deconzAdapter.js +98 -91
  10. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  11. package/dist/adapter/deconz/adapter/index.d.ts.map +1 -1
  12. package/dist/adapter/deconz/adapter/index.js +0 -2
  13. package/dist/adapter/deconz/adapter/index.js.map +1 -1
  14. package/dist/adapter/deconz/driver/driver.d.ts +13 -13
  15. package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
  16. package/dist/adapter/deconz/driver/driver.js +124 -126
  17. package/dist/adapter/deconz/driver/driver.js.map +1 -1
  18. package/dist/adapter/deconz/driver/frame.d.ts.map +1 -1
  19. package/dist/adapter/deconz/driver/frame.js +1 -1
  20. package/dist/adapter/deconz/driver/frame.js.map +1 -1
  21. package/dist/adapter/deconz/driver/frameParser.d.ts +3 -1
  22. package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
  23. package/dist/adapter/deconz/driver/frameParser.js +31 -29
  24. package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
  25. package/dist/adapter/deconz/driver/parser.d.ts +3 -4
  26. package/dist/adapter/deconz/driver/parser.d.ts.map +1 -1
  27. package/dist/adapter/deconz/driver/parser.js +3 -28
  28. package/dist/adapter/deconz/driver/parser.js.map +1 -1
  29. package/dist/adapter/ember/adapter/emberAdapter.d.ts +7 -8
  30. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
  31. package/dist/adapter/ember/adapter/emberAdapter.js +63 -78
  32. package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
  33. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
  34. package/dist/adapter/ember/adapter/oneWaitress.js +5 -2
  35. package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
  36. package/dist/adapter/ember/adapter/tokensManager.d.ts +1 -1
  37. package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -1
  38. package/dist/adapter/ember/adapter/tokensManager.js +2 -2
  39. package/dist/adapter/ember/adapter/tokensManager.js.map +1 -1
  40. package/dist/adapter/ember/ezsp/buffalo.d.ts +1 -3
  41. package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -1
  42. package/dist/adapter/ember/ezsp/buffalo.js +11 -34
  43. package/dist/adapter/ember/ezsp/buffalo.js.map +1 -1
  44. package/dist/adapter/ember/ezsp/ezsp.d.ts +22 -38
  45. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
  46. package/dist/adapter/ember/ezsp/ezsp.js +36 -65
  47. package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
  48. package/dist/adapter/ember/types.d.ts +16 -23
  49. package/dist/adapter/ember/types.d.ts.map +1 -1
  50. package/dist/adapter/ember/uart/ash.d.ts +6 -22
  51. package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
  52. package/dist/adapter/ember/uart/ash.js +97 -115
  53. package/dist/adapter/ember/uart/ash.js.map +1 -1
  54. package/dist/adapter/ember/uart/queues.d.ts +9 -9
  55. package/dist/adapter/ember/uart/queues.d.ts.map +1 -1
  56. package/dist/adapter/ember/uart/queues.js +26 -25
  57. package/dist/adapter/ember/uart/queues.js.map +1 -1
  58. package/dist/adapter/events.d.ts +1 -9
  59. package/dist/adapter/events.d.ts.map +1 -1
  60. package/dist/adapter/events.js +0 -10
  61. package/dist/adapter/events.js.map +1 -1
  62. package/dist/adapter/ezsp/adapter/backup.d.ts +1 -1
  63. package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
  64. package/dist/adapter/ezsp/adapter/backup.js +6 -6
  65. package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
  66. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +6 -6
  67. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  68. package/dist/adapter/ezsp/adapter/ezspAdapter.js +24 -29
  69. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  70. package/dist/adapter/ezsp/adapter/index.d.ts.map +1 -1
  71. package/dist/adapter/ezsp/adapter/index.js +0 -2
  72. package/dist/adapter/ezsp/adapter/index.js.map +1 -1
  73. package/dist/adapter/ezsp/driver/commands.d.ts +2 -2
  74. package/dist/adapter/ezsp/driver/commands.d.ts.map +1 -1
  75. package/dist/adapter/ezsp/driver/commands.js +111 -111
  76. package/dist/adapter/ezsp/driver/commands.js.map +1 -1
  77. package/dist/adapter/ezsp/driver/driver.d.ts +0 -1
  78. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  79. package/dist/adapter/ezsp/driver/driver.js +20 -11
  80. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  81. package/dist/adapter/ezsp/driver/ezsp.d.ts +2 -2
  82. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  83. package/dist/adapter/ezsp/driver/ezsp.js +7 -8
  84. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  85. package/dist/adapter/ezsp/driver/index.d.ts.map +1 -1
  86. package/dist/adapter/ezsp/driver/index.js +0 -1
  87. package/dist/adapter/ezsp/driver/index.js.map +1 -1
  88. package/dist/adapter/ezsp/driver/multicast.js +1 -1
  89. package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
  90. package/dist/adapter/ezsp/driver/parser.d.ts +1 -2
  91. package/dist/adapter/ezsp/driver/parser.d.ts.map +1 -1
  92. package/dist/adapter/ezsp/driver/parser.js +2 -8
  93. package/dist/adapter/ezsp/driver/parser.js.map +1 -1
  94. package/dist/adapter/ezsp/driver/types/basic.d.ts.map +1 -1
  95. package/dist/adapter/ezsp/driver/types/basic.js +0 -1
  96. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  97. package/dist/adapter/ezsp/driver/types/index.d.ts +1 -1
  98. package/dist/adapter/ezsp/driver/types/index.d.ts.map +1 -1
  99. package/dist/adapter/ezsp/driver/types/index.js +0 -1
  100. package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
  101. package/dist/adapter/ezsp/driver/types/named.d.ts.map +1 -1
  102. package/dist/adapter/ezsp/driver/types/named.js +0 -1
  103. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  104. package/dist/adapter/ezsp/driver/types/struct.d.ts.map +1 -1
  105. package/dist/adapter/ezsp/driver/types/struct.js +62 -1
  106. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  107. package/dist/adapter/ezsp/driver/uart.d.ts +2 -3
  108. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  109. package/dist/adapter/ezsp/driver/uart.js +8 -12
  110. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  111. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +3 -1
  112. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts.map +1 -1
  113. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +1 -1
  114. package/dist/adapter/ezsp/driver/utils/index.d.ts +1 -15
  115. package/dist/adapter/ezsp/driver/utils/index.d.ts.map +1 -1
  116. package/dist/adapter/ezsp/driver/utils/index.js +1 -39
  117. package/dist/adapter/ezsp/driver/utils/index.js.map +1 -1
  118. package/dist/adapter/serialPort.d.ts +7 -2
  119. package/dist/adapter/serialPort.d.ts.map +1 -1
  120. package/dist/adapter/serialPort.js +5 -0
  121. package/dist/adapter/serialPort.js.map +1 -1
  122. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +1 -1
  123. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
  124. package/dist/adapter/z-stack/adapter/adapter-backup.js +25 -17
  125. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  126. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +1 -1
  127. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts.map +1 -1
  128. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +27 -12
  129. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +1 -1
  130. package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
  131. package/dist/adapter/z-stack/adapter/manager.js +10 -9
  132. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  133. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +6 -6
  134. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  135. package/dist/adapter/z-stack/adapter/zStackAdapter.js +37 -30
  136. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  137. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts.map +1 -1
  138. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +0 -2
  139. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js.map +1 -1
  140. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts.map +1 -1
  141. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +5 -0
  142. package/dist/adapter/z-stack/structs/entries/address-manager-table.js.map +1 -1
  143. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts.map +1 -1
  144. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +0 -1
  145. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js.map +1 -1
  146. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts.map +1 -1
  147. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +5 -0
  148. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js.map +1 -1
  149. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts.map +1 -1
  150. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +0 -1
  151. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js.map +1 -1
  152. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts.map +1 -1
  153. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +5 -0
  154. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js.map +1 -1
  155. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts.map +1 -1
  156. package/dist/adapter/z-stack/structs/entries/channel-list.js +0 -1
  157. package/dist/adapter/z-stack/structs/entries/channel-list.js.map +1 -1
  158. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +1 -1
  159. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts.map +1 -1
  160. package/dist/adapter/z-stack/structs/entries/has-configured.js +11 -5
  161. package/dist/adapter/z-stack/structs/entries/has-configured.js.map +1 -1
  162. package/dist/adapter/z-stack/structs/entries/nib.d.ts +1 -1
  163. package/dist/adapter/z-stack/structs/entries/nib.d.ts.map +1 -1
  164. package/dist/adapter/z-stack/structs/entries/nib.js +5 -1
  165. package/dist/adapter/z-stack/structs/entries/nib.js.map +1 -1
  166. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +1 -1
  167. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts.map +1 -1
  168. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +8 -2
  169. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js.map +1 -1
  170. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +1 -1
  171. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts.map +1 -1
  172. package/dist/adapter/z-stack/structs/entries/nwk-key.js +8 -2
  173. package/dist/adapter/z-stack/structs/entries/nwk-key.js.map +1 -1
  174. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts.map +1 -1
  175. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +0 -1
  176. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js.map +1 -1
  177. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts.map +1 -1
  178. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +0 -1
  179. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js.map +1 -1
  180. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts.map +1 -1
  181. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +5 -0
  182. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js.map +1 -1
  183. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts.map +1 -1
  184. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +0 -1
  185. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js.map +1 -1
  186. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts.map +1 -1
  187. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +6 -0
  188. package/dist/adapter/z-stack/structs/entries/security-manager-table.js.map +1 -1
  189. package/dist/adapter/z-stack/structs/struct.d.ts.map +1 -1
  190. package/dist/adapter/z-stack/structs/struct.js +11 -1
  191. package/dist/adapter/z-stack/structs/struct.js.map +1 -1
  192. package/dist/adapter/z-stack/structs/table.d.ts +1 -1
  193. package/dist/adapter/z-stack/structs/table.d.ts.map +1 -1
  194. package/dist/adapter/z-stack/structs/table.js +18 -13
  195. package/dist/adapter/z-stack/structs/table.js.map +1 -1
  196. package/dist/adapter/z-stack/unpi/frame.d.ts +2 -2
  197. package/dist/adapter/z-stack/unpi/frame.d.ts.map +1 -1
  198. package/dist/adapter/z-stack/unpi/frame.js +1 -1
  199. package/dist/adapter/z-stack/unpi/frame.js.map +1 -1
  200. package/dist/adapter/z-stack/unpi/parser.js +1 -1
  201. package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
  202. package/dist/adapter/z-stack/utils/network-options.js +1 -1
  203. package/dist/adapter/z-stack/utils/network-options.js.map +1 -1
  204. package/dist/adapter/z-stack/znp/znp.d.ts +5 -6
  205. package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
  206. package/dist/adapter/z-stack/znp/znp.js +19 -26
  207. package/dist/adapter/z-stack/znp/znp.js.map +1 -1
  208. package/dist/adapter/z-stack/znp/zpiObject.d.ts.map +1 -1
  209. package/dist/adapter/z-stack/znp/zpiObject.js +2 -2
  210. package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
  211. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +9 -9
  212. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
  213. package/dist/adapter/zigate/adapter/zigateAdapter.js +92 -118
  214. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  215. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +1 -1
  216. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +1 -1
  217. package/dist/adapter/zigate/driver/buffaloZiGate.js +3 -3
  218. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
  219. package/dist/adapter/zigate/driver/commandType.d.ts.map +1 -1
  220. package/dist/adapter/zigate/driver/commandType.js +3 -2
  221. package/dist/adapter/zigate/driver/commandType.js.map +1 -1
  222. package/dist/adapter/zigate/driver/constants.d.ts +7 -1
  223. package/dist/adapter/zigate/driver/constants.d.ts.map +1 -1
  224. package/dist/adapter/zigate/driver/constants.js +1 -2
  225. package/dist/adapter/zigate/driver/constants.js.map +1 -1
  226. package/dist/adapter/zigate/driver/frame.d.ts.map +1 -1
  227. package/dist/adapter/zigate/driver/frame.js +3 -4
  228. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  229. package/dist/adapter/zigate/driver/messageType.d.ts.map +1 -1
  230. package/dist/adapter/zigate/driver/messageType.js +1 -2
  231. package/dist/adapter/zigate/driver/messageType.js.map +1 -1
  232. package/dist/adapter/zigate/driver/ziGateObject.d.ts +5 -5
  233. package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +1 -1
  234. package/dist/adapter/zigate/driver/ziGateObject.js +8 -9
  235. package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
  236. package/dist/adapter/zigate/driver/zigate.d.ts +7 -10
  237. package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
  238. package/dist/adapter/zigate/driver/zigate.js +33 -39
  239. package/dist/adapter/zigate/driver/zigate.js.map +1 -1
  240. package/dist/controller/controller.d.ts +18 -6
  241. package/dist/controller/controller.d.ts.map +1 -1
  242. package/dist/controller/controller.js +95 -103
  243. package/dist/controller/controller.js.map +1 -1
  244. package/dist/controller/events.d.ts +2 -13
  245. package/dist/controller/events.d.ts.map +1 -1
  246. package/dist/controller/events.js +0 -13
  247. package/dist/controller/events.js.map +1 -1
  248. package/dist/controller/greenPower.d.ts +6 -2
  249. package/dist/controller/greenPower.d.ts.map +1 -1
  250. package/dist/controller/greenPower.js +17 -13
  251. package/dist/controller/greenPower.js.map +1 -1
  252. package/dist/controller/helpers/request.d.ts +1 -1
  253. package/dist/controller/helpers/request.d.ts.map +1 -1
  254. package/dist/controller/helpers/request.js.map +1 -1
  255. package/dist/controller/helpers/requestQueue.d.ts.map +1 -1
  256. package/dist/controller/helpers/requestQueue.js +1 -1
  257. package/dist/controller/helpers/requestQueue.js.map +1 -1
  258. package/dist/controller/helpers/zclFrameConverter.d.ts +2 -2
  259. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  260. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  261. package/dist/controller/model/device.d.ts +30 -28
  262. package/dist/controller/model/device.d.ts.map +1 -1
  263. package/dist/controller/model/device.js +41 -29
  264. package/dist/controller/model/device.js.map +1 -1
  265. package/dist/controller/model/endpoint.d.ts +5 -2
  266. package/dist/controller/model/endpoint.d.ts.map +1 -1
  267. package/dist/controller/model/endpoint.js +92 -93
  268. package/dist/controller/model/endpoint.js.map +1 -1
  269. package/dist/controller/model/entity.d.ts +5 -3
  270. package/dist/controller/model/entity.d.ts.map +1 -1
  271. package/dist/controller/model/entity.js +2 -2
  272. package/dist/controller/model/entity.js.map +1 -1
  273. package/dist/controller/model/group.d.ts +1 -0
  274. package/dist/controller/model/group.d.ts.map +1 -1
  275. package/dist/controller/model/group.js +36 -28
  276. package/dist/controller/model/group.js.map +1 -1
  277. package/dist/controller/touchlink.d.ts.map +1 -1
  278. package/dist/controller/touchlink.js +6 -5
  279. package/dist/controller/touchlink.js.map +1 -1
  280. package/dist/controller/tstype.d.ts +1 -4
  281. package/dist/controller/tstype.d.ts.map +1 -1
  282. package/dist/controller/tstype.js +0 -5
  283. package/dist/controller/tstype.js.map +1 -1
  284. package/dist/models/backup-storage-unified.d.ts +2 -2
  285. package/dist/models/backup-storage-unified.d.ts.map +1 -1
  286. package/dist/models/backup.d.ts +1 -1
  287. package/dist/models/backup.d.ts.map +1 -1
  288. package/dist/utils/backup.d.ts.map +1 -1
  289. package/dist/utils/backup.js +20 -52
  290. package/dist/utils/backup.js.map +1 -1
  291. package/dist/utils/index.d.ts +2 -3
  292. package/dist/utils/index.d.ts.map +1 -1
  293. package/dist/utils/index.js +3 -5
  294. package/dist/utils/index.js.map +1 -1
  295. package/dist/utils/logger.d.ts +1 -1
  296. package/dist/utils/logger.d.ts.map +1 -1
  297. package/dist/utils/queue.d.ts.map +1 -1
  298. package/dist/utils/queue.js +8 -8
  299. package/dist/utils/queue.js.map +1 -1
  300. package/dist/utils/utils.d.ts +5 -0
  301. package/dist/utils/utils.d.ts.map +1 -0
  302. package/dist/utils/utils.js +24 -0
  303. package/dist/utils/utils.js.map +1 -0
  304. package/dist/zspec/index.js +0 -10
  305. package/dist/zspec/index.js.map +1 -1
  306. package/dist/zspec/utils.d.ts.map +1 -1
  307. package/dist/zspec/utils.js +7 -1
  308. package/dist/zspec/utils.js.map +1 -1
  309. package/dist/zspec/zcl/buffaloZcl.js +12 -12
  310. package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
  311. package/dist/zspec/zcl/utils.d.ts +1 -1
  312. package/dist/zspec/zcl/utils.d.ts.map +1 -1
  313. package/dist/zspec/zcl/utils.js +21 -20
  314. package/dist/zspec/zcl/utils.js.map +1 -1
  315. package/dist/zspec/zcl/zclFrame.d.ts +3 -3
  316. package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
  317. package/dist/zspec/zcl/zclFrame.js +10 -17
  318. package/dist/zspec/zcl/zclFrame.js.map +1 -1
  319. package/dist/zspec/zcl/zclHeader.d.ts +2 -2
  320. package/dist/zspec/zcl/zclHeader.d.ts.map +1 -1
  321. package/dist/zspec/zcl/zclHeader.js +3 -3
  322. package/dist/zspec/zcl/zclHeader.js.map +1 -1
  323. package/dist/zspec/zdo/buffaloZdo.d.ts +1 -1
  324. package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -1
  325. package/dist/zspec/zdo/buffaloZdo.js +12 -8
  326. package/dist/zspec/zdo/buffaloZdo.js.map +1 -1
  327. package/package.json +3 -3
  328. package/tsconfig.json +1 -0
  329. package/dist/utils/assertString.d.ts +0 -3
  330. package/dist/utils/assertString.d.ts.map +0 -1
  331. package/dist/utils/assertString.js +0 -9
  332. package/dist/utils/assertString.js.map +0 -1
  333. package/dist/utils/isNumberArray.d.ts +0 -3
  334. package/dist/utils/isNumberArray.d.ts.map +0 -1
  335. package/dist/utils/isNumberArray.js +0 -7
  336. package/dist/utils/isNumberArray.js.map +0 -1
@@ -38,7 +38,6 @@ const ZSpec = __importStar(require("../../../zspec"));
38
38
  const Zcl = __importStar(require("../../../zspec/zcl"));
39
39
  const Zdo = __importStar(require("../../../zspec/zdo"));
40
40
  const buffaloZdo_1 = require("../../../zspec/zdo/buffaloZdo");
41
- const events_1 = require("../../events");
42
41
  const serialPortUtils_1 = __importDefault(require("../../serialPortUtils"));
43
42
  const socketPortUtils_1 = __importDefault(require("../../socketPortUtils"));
44
43
  const consts_1 = require("../consts");
@@ -103,7 +102,6 @@ const BACKUP_OLDEST_SUPPORTED_EZSP_VERSION = 12;
103
102
  * NOTE: This is blocking the request queue, so we shouldn't go crazy high.
104
103
  */
105
104
  const BROADCAST_NETWORK_KEY_SWITCH_WAIT_TIME = 15000;
106
- const QUEUE_HIGH_COUNT = 4;
107
105
  const QUEUE_MAX_SEND_ATTEMPTS = 3;
108
106
  const QUEUE_BUSY_DEFER_MSEC = 500;
109
107
  const QUEUE_NETWORK_DOWN_DEFER_MSEC = 1500;
@@ -140,8 +138,8 @@ const TRUST_CENTER_ADDRESS_CACHE_SIZE = 2;
140
138
  * Removing `ENABLE_ROUTE_DISCOVERY` leads to devices that won't reconnect/go offline, and various other issues. Keeping it for now.
141
139
  */
142
140
  exports.DEFAULT_APS_OPTIONS = enums_1.EmberApsOption.RETRY | enums_1.EmberApsOption.ENABLE_ROUTE_DISCOVERY | enums_1.EmberApsOption.ENABLE_ADDRESS_DISCOVERY;
143
- /** Time for a ZDO request to get a callback response. ASH is 2400*6 for ACK timeout. */
144
- const DEFAULT_ZDO_REQUEST_TIMEOUT = 15000; // msec
141
+ /** Time for a request to get a callback response. ASH is 2400*6 for ACK timeout. */
142
+ const DEFAULT_REQUEST_TIMEOUT = 15000; // msec
145
143
  /** Time for a network-related request to get a response (usually via event). */
146
144
  const DEFAULT_NETWORK_REQUEST_TIMEOUT = 10000; // nothing on the network to bother requests, should be much faster than this
147
145
  /** Time between watchdog counters reading/clearing */
@@ -183,17 +181,33 @@ class EmberAdapter extends __1.Adapter {
183
181
  multicastTable;
184
182
  constructor(networkOptions, serialPortOptions, backupPath, adapterOptions) {
185
183
  super(networkOptions, serialPortOptions, backupPath, adapterOptions);
184
+ this.version = {
185
+ ezsp: 0,
186
+ revision: 'unknown',
187
+ build: 0,
188
+ major: 0,
189
+ minor: 0,
190
+ patch: 0,
191
+ special: 0,
192
+ type: enums_1.EmberVersionType.GA,
193
+ };
194
+ this.zdoRequestSequence = 0; // start at 1
195
+ this.interpanLock = false;
196
+ this.networkCache = (0, initters_1.initNetworkCache)();
197
+ this.manufacturerCode = DEFAULT_MANUFACTURER_CODE; // will be set in NCP in initEzsp
198
+ this.multicastTable = [];
186
199
  this.stackConfig = this.loadStackConfig();
187
200
  this.queue = new utils_1.Queue(this.adapterOptions.concurrent || 16); // ORed to avoid 0 (not checked in settings/queue constructor)
188
201
  this.oneWaitress = new oneWaitress_1.EmberOneWaitress();
189
202
  this.ezsp = new ezsp_1.Ezsp(serialPortOptions);
190
- this.ezsp.on(ezsp_1.EzspEvents.ZDO_RESPONSE, this.onZDOResponse.bind(this));
191
- this.ezsp.on(ezsp_1.EzspEvents.INCOMING_MESSAGE, this.onIncomingMessage.bind(this));
192
- this.ezsp.on(ezsp_1.EzspEvents.TOUCHLINK_MESSAGE, this.onTouchlinkMessage.bind(this));
193
- this.ezsp.on(ezsp_1.EzspEvents.STACK_STATUS, this.onStackStatus.bind(this));
194
- this.ezsp.on(ezsp_1.EzspEvents.TRUST_CENTER_JOIN, this.onTrustCenterJoin.bind(this));
195
- this.ezsp.on(ezsp_1.EzspEvents.MESSAGE_SENT, this.onMessageSent.bind(this));
196
- this.ezsp.on(ezsp_1.EzspEvents.GREENPOWER_MESSAGE, this.onGreenpowerMessage.bind(this));
203
+ this.ezsp.on('zdoResponse', this.onZDOResponse.bind(this));
204
+ this.ezsp.on('incomingMessage', this.onIncomingMessage.bind(this));
205
+ this.ezsp.on('touchlinkMessage', this.onTouchlinkMessage.bind(this));
206
+ this.ezsp.on('stackStatus', this.onStackStatus.bind(this));
207
+ this.ezsp.on('trustCenterJoin', this.onTrustCenterJoin.bind(this));
208
+ this.ezsp.on('messageSent', this.onMessageSent.bind(this));
209
+ this.ezsp.on('greenpowerMessage', this.onGreenpowerMessage.bind(this));
210
+ this.ezsp.once('ncpNeedsResetAndInit', this.onNcpNeedsResetAndInit.bind(this));
197
211
  }
198
212
  loadStackConfig() {
199
213
  // store stack config in same dir as backup
@@ -349,7 +363,7 @@ class EmberAdapter extends __1.Adapter {
349
363
  catch (error) {
350
364
  // remove to allow retry on next occurrence
351
365
  this.multicastTable.splice(tableIdx, 1);
352
- logger_1.logger.error(error, NS);
366
+ logger_1.logger.error(error.message, NS);
353
367
  }
354
368
  }
355
369
  break;
@@ -370,13 +384,13 @@ class EmberAdapter extends __1.Adapter {
370
384
  logger_1.logger.debug(`<~~~ [ZDO ${Zdo.ClusterId[apsFrame.clusterId]} from=${sender} ${payload ? JSON.stringify(payload) : 'OK'}]`, NS);
371
385
  this.oneWaitress.resolveZDO(sender, apsFrame, payload);
372
386
  if (apsFrame.clusterId === Zdo.ClusterId.NETWORK_ADDRESS_RESPONSE) {
373
- this.emit(events_1.Events.networkAddress, {
387
+ this.emit('networkAddress', {
374
388
  networkAddress: payload.nwkAddress,
375
389
  ieeeAddr: payload.eui64,
376
390
  });
377
391
  }
378
392
  else if (apsFrame.clusterId === Zdo.ClusterId.END_DEVICE_ANNOUNCE) {
379
- this.emit(events_1.Events.deviceAnnounce, {
393
+ this.emit('deviceAnnounce', {
380
394
  networkAddress: payload.nwkAddress,
381
395
  ieeeAddr: payload.eui64,
382
396
  });
@@ -408,7 +422,7 @@ class EmberAdapter extends __1.Adapter {
408
422
  destinationEndpoint: apsFrame.destinationEndpoint,
409
423
  };
410
424
  this.oneWaitress.resolveZCL(payload);
411
- this.emit(events_1.Events.zclPayload, payload);
425
+ this.emit('zclPayload', payload);
412
426
  }
413
427
  /**
414
428
  * Emitted from @see Ezsp.ezspMacFilterMatchMessageHandler when the message is a valid InterPAN touchlink message.
@@ -433,7 +447,7 @@ class EmberAdapter extends __1.Adapter {
433
447
  destinationEndpoint: endpoint,
434
448
  };
435
449
  this.oneWaitress.resolveZCL(payload);
436
- this.emit(events_1.Events.zclPayload, payload);
450
+ this.emit('zclPayload', payload);
437
451
  }
438
452
  /**
439
453
  * Emitted from @see Ezsp.ezspGpepIncomingMessageHandler
@@ -472,11 +486,11 @@ class EmberAdapter extends __1.Adapter {
472
486
  destinationEndpoint: ZSpec.GP_ENDPOINT,
473
487
  };
474
488
  this.oneWaitress.resolveZCL(payload);
475
- this.emit(events_1.Events.zclPayload, payload);
489
+ this.emit('zclPayload', payload);
476
490
  }
477
491
  catch (err) {
492
+ /* istanbul ignore next */
478
493
  logger_1.logger.error(`<~x~ [GP] Failed creating ZCL payload. Skipping. ${err}`, NS);
479
- return;
480
494
  }
481
495
  }
482
496
  /**
@@ -495,7 +509,7 @@ class EmberAdapter extends __1.Adapter {
495
509
  networkAddress: newNodeId,
496
510
  ieeeAddr: newNodeEui64,
497
511
  };
498
- this.emit(events_1.Events.deviceLeave, payload);
512
+ this.emit('deviceLeave', payload);
499
513
  }
500
514
  else {
501
515
  if (policyDecision !== enums_1.EmberJoinDecision.DENY_JOIN) {
@@ -510,11 +524,11 @@ class EmberAdapter extends __1.Adapter {
510
524
  logger_1.logger.debug(`[WORKAROUND] Setting coordinator manufacturer code to ${Zcl.ManufacturerCode[joinManufCode]}.`, NS);
511
525
  await this.ezsp.ezspSetManufacturerCode(joinManufCode);
512
526
  this.manufacturerCode = joinManufCode;
513
- this.emit(events_1.Events.deviceJoined, payload);
527
+ this.emit('deviceJoined', payload);
514
528
  });
515
529
  }
516
530
  else {
517
- this.emit(events_1.Events.deviceJoined, payload);
531
+ this.emit('deviceJoined', payload);
518
532
  }
519
533
  }
520
534
  else {
@@ -531,17 +545,6 @@ class EmberAdapter extends __1.Adapter {
531
545
  logger_1.logger.info(`[ASH COUNTERS] ${ashCounters.join(',')}`, NS);
532
546
  });
533
547
  }
534
- initVariables() {
535
- this.ezsp.removeAllListeners(ezsp_1.EzspEvents.NCP_NEEDS_RESET_AND_INIT);
536
- clearInterval(this.watchdogCountersHandle);
537
- this.queue.clear();
538
- this.zdoRequestSequence = 0; // start at 1
539
- this.interpanLock = false;
540
- this.networkCache = (0, initters_1.initNetworkCache)();
541
- this.manufacturerCode = DEFAULT_MANUFACTURER_CODE; // will be set in NCP in initEzsp
542
- this.multicastTable = [];
543
- this.ezsp.once(ezsp_1.EzspEvents.NCP_NEEDS_RESET_AND_INIT, this.onNcpNeedsResetAndInit.bind(this));
544
- }
545
548
  /**
546
549
  * Proceed to execute the long list of commands required to setup comms between Host<>NCP.
547
550
  * This is called by start and on internal reset.
@@ -726,7 +729,7 @@ class EmberAdapter extends __1.Adapter {
726
729
  const backup = this.getStoredBackup();
727
730
  if (initStatus === enums_1.SLStatus.NOT_JOINED || action === NetworkInitAction.LEFT) {
728
731
  // no network
729
- if (backup != null) {
732
+ if (backup != undefined) {
730
733
  if (this.networkOptions.panID === backup.networkOptions.panId &&
731
734
  Buffer.from(this.networkOptions.extendedPanID).equals(backup.networkOptions.extendedPanId) &&
732
735
  this.networkOptions.channelList.includes(backup.logicalChannel) &&
@@ -751,6 +754,7 @@ class EmberAdapter extends __1.Adapter {
751
754
  switch (action) {
752
755
  case NetworkInitAction.FORM_BACKUP: {
753
756
  logger_1.logger.info(`[INIT TC] Forming from backup.`, NS);
757
+ // `backup` valid in this `action` path (not detected by TS)
754
758
  /* istanbul ignore next */
755
759
  const keyList = backup.devices.map((device) => {
756
760
  const octets = Array.from(device.ieeeAddress.reverse());
@@ -855,14 +859,14 @@ class EmberAdapter extends __1.Adapter {
855
859
  */
856
860
  getStoredBackup() {
857
861
  if (!(0, fs_1.existsSync)(this.backupPath)) {
858
- return null;
862
+ return undefined;
859
863
  }
860
864
  let data;
861
865
  try {
862
866
  data = JSON.parse((0, fs_1.readFileSync)(this.backupPath).toString());
863
867
  }
864
868
  catch (error) {
865
- throw new Error(`[BACKUP] Coordinator backup is corrupted. (${error.message})`);
869
+ throw new Error(`[BACKUP] Coordinator backup is corrupted. (${error.stack})`);
866
870
  }
867
871
  if (data.metadata?.format === 'zigpy/open-coordinator-backup' && data.metadata?.version) {
868
872
  if (data.metadata?.version !== 1) {
@@ -874,7 +878,7 @@ class EmberAdapter extends __1.Adapter {
874
878
  if (data.metadata.internal.ezspVersion < BACKUP_OLDEST_SUPPORTED_EZSP_VERSION) {
875
879
  (0, fs_1.renameSync)(this.backupPath, `${this.backupPath}.old`);
876
880
  logger_1.logger.warning(`[BACKUP] Current backup file is from an unsupported EZSP version. Renaming and ignoring.`, NS);
877
- return null;
881
+ return undefined;
878
882
  }
879
883
  return utils_1.BackupUtils.fromUnifiedBackup(data);
880
884
  }
@@ -987,23 +991,8 @@ class EmberAdapter extends __1.Adapter {
987
991
  * @param status
988
992
  */
989
993
  async onNcpNeedsResetAndInit(status) {
990
- logger_1.logger.error(`!!! ADAPTER FATAL ERROR reason=${enums_1.EzspStatus[status]}. !!!`, NS);
991
- if (this.queue.count() > QUEUE_HIGH_COUNT) {
992
- logger_1.logger.info(`Request queue is high (${this.queue.count()}), triggering full restart to prevent stressing the adapter.`, NS);
993
- this.emit(events_1.Events.disconnected);
994
- }
995
- else {
996
- logger_1.logger.info(`Attempting adapter reset...`, NS);
997
- try {
998
- await this.stop();
999
- await (0, utils_1.Wait)(500); // just because
1000
- await this.start();
1001
- }
1002
- catch (err) {
1003
- logger_1.logger.error(`Failed to reset and init adapter. ${err}`, NS);
1004
- this.emit(events_1.Events.disconnected);
1005
- }
1006
- }
994
+ logger_1.logger.error(`Adapter fatal error: ${enums_1.EzspStatus[status]}`, NS);
995
+ this.emit('disconnected');
1007
996
  }
1008
997
  //---- START Events
1009
998
  //---- END Events
@@ -1196,8 +1185,8 @@ class EmberAdapter extends __1.Adapter {
1196
1185
  */
1197
1186
  async emberPermitJoining(duration, broadcastMgmtPermitJoin) {
1198
1187
  let status = await this.ezsp.ezspPermitJoining(duration);
1199
- let apsFrame = null;
1200
- let messageTag = null;
1188
+ let apsFrame;
1189
+ let messageTag;
1201
1190
  logger_1.logger.debug(`Permit joining for ${duration} sec. status=${[status]}`, NS);
1202
1191
  if (broadcastMgmtPermitJoin) {
1203
1192
  // `authentication`: TC significance always 1 (zb specs)
@@ -1306,17 +1295,17 @@ class EmberAdapter extends __1.Adapter {
1306
1295
  static async autoDetectPath() {
1307
1296
  const paths = await serialPortUtils_1.default.find(autoDetectDefinitions);
1308
1297
  paths.sort((a, b) => (a < b ? -1 : 1));
1309
- return paths.length > 0 ? paths[0] : null;
1298
+ return paths.length > 0 ? paths[0] : undefined;
1310
1299
  }
1311
1300
  async start() {
1312
1301
  logger_1.logger.info(`======== Ember Adapter Starting ========`, NS);
1313
- this.initVariables();
1314
1302
  const result = await this.initEzsp();
1315
1303
  return result;
1316
1304
  }
1317
1305
  async stop() {
1306
+ clearInterval(this.watchdogCountersHandle);
1318
1307
  await this.ezsp.stop();
1319
- this.initVariables();
1308
+ this.ezsp.removeAllListeners();
1320
1309
  logger_1.logger.info(`======== Ember Adapter Stopped ========`, NS);
1321
1310
  }
1322
1311
  // queued, non-InterPAN
@@ -1388,14 +1377,11 @@ class EmberAdapter extends __1.Adapter {
1388
1377
  if (nkStatus !== enums_1.SLStatus.OK) {
1389
1378
  throw new Error(`[BACKUP] Failed to export Network Key with status=${enums_1.SLStatus[nkStatus]}.`);
1390
1379
  }
1391
- const zbChannels = Array.from(Array(ZSpec.NUM_802_15_4_CHANNELS), (e, i) => i + ZSpec.MIN_802_15_4_CHANNEL_NUMBER);
1392
1380
  return {
1393
1381
  networkOptions: {
1394
1382
  panId: netParams.panId, // uint16_t
1395
1383
  extendedPanId: Buffer.from(netParams.extendedPanId),
1396
- channelList: zbChannels
1397
- .map(/* istanbul ignore next */ (c) => ((2 ** c) & netParams.channels ? c : null))
1398
- .filter((x) => x),
1384
+ channelList: ZSpec.Utils.uint32MaskToChannels(netParams.channels),
1399
1385
  networkKey: networkKey.contents,
1400
1386
  networkKeyDistribute: false,
1401
1387
  },
@@ -1570,7 +1556,7 @@ class EmberAdapter extends __1.Adapter {
1570
1556
  target: networkAddress,
1571
1557
  apsFrame,
1572
1558
  responseClusterId: Zdo.ClusterId.PERMIT_JOINING_RESPONSE,
1573
- }, DEFAULT_ZDO_REQUEST_TIMEOUT);
1559
+ }, DEFAULT_REQUEST_TIMEOUT);
1574
1560
  });
1575
1561
  }
1576
1562
  else {
@@ -1618,7 +1604,7 @@ class EmberAdapter extends __1.Adapter {
1618
1604
  target: networkAddress,
1619
1605
  apsFrame,
1620
1606
  responseClusterId: Zdo.ClusterId.LQI_TABLE_RESPONSE,
1621
- }, DEFAULT_ZDO_REQUEST_TIMEOUT);
1607
+ }, DEFAULT_REQUEST_TIMEOUT);
1622
1608
  for (const entry of result.entryList) {
1623
1609
  neighbors.push({
1624
1610
  ieeeAddr: entry.eui64,
@@ -1655,7 +1641,7 @@ class EmberAdapter extends __1.Adapter {
1655
1641
  target: networkAddress,
1656
1642
  apsFrame,
1657
1643
  responseClusterId: Zdo.ClusterId.ROUTING_TABLE_RESPONSE,
1658
- }, DEFAULT_ZDO_REQUEST_TIMEOUT);
1644
+ }, DEFAULT_REQUEST_TIMEOUT);
1659
1645
  for (const entry of result.entryList) {
1660
1646
  table.push({
1661
1647
  destinationAddress: entry.destinationAddress,
@@ -1688,7 +1674,7 @@ class EmberAdapter extends __1.Adapter {
1688
1674
  target: networkAddress,
1689
1675
  apsFrame,
1690
1676
  responseClusterId: Zdo.ClusterId.NODE_DESCRIPTOR_RESPONSE,
1691
- }, DEFAULT_ZDO_REQUEST_TIMEOUT);
1677
+ }, DEFAULT_REQUEST_TIMEOUT);
1692
1678
  let type = 'Unknown';
1693
1679
  switch (result.logicalType) {
1694
1680
  case 0x0:
@@ -1723,7 +1709,7 @@ class EmberAdapter extends __1.Adapter {
1723
1709
  target: networkAddress,
1724
1710
  apsFrame,
1725
1711
  responseClusterId: Zdo.ClusterId.ACTIVE_ENDPOINTS_RESPONSE,
1726
- }, DEFAULT_ZDO_REQUEST_TIMEOUT);
1712
+ }, DEFAULT_REQUEST_TIMEOUT);
1727
1713
  return { endpoints: result.endpointList };
1728
1714
  }, networkAddress);
1729
1715
  }
@@ -1740,7 +1726,7 @@ class EmberAdapter extends __1.Adapter {
1740
1726
  target: networkAddress,
1741
1727
  apsFrame,
1742
1728
  responseClusterId: Zdo.ClusterId.SIMPLE_DESCRIPTOR_RESPONSE,
1743
- }, DEFAULT_ZDO_REQUEST_TIMEOUT);
1729
+ }, DEFAULT_REQUEST_TIMEOUT);
1744
1730
  return {
1745
1731
  profileID: result.profileId,
1746
1732
  endpointID: result.endpoint,
@@ -1756,7 +1742,7 @@ class EmberAdapter extends __1.Adapter {
1756
1742
  this.checkInterpanLock();
1757
1743
  const zdoPayload = buffaloZdo_1.BuffaloZdo.buildBindRequest(sourceIeeeAddress, sourceEndpoint, clusterID, type === 'group' ? Zdo.MULTICAST_BINDING : Zdo.UNICAST_BINDING, destinationAddressOrGroup, // not used with MULTICAST_BINDING
1758
1744
  destinationAddressOrGroup, // not used with UNICAST_BINDING
1759
- destinationEndpoint);
1745
+ destinationEndpoint ?? 0);
1760
1746
  const [status, apsFrame] = await this.sendZDORequest(destinationNetworkAddress, Zdo.ClusterId.BIND_REQUEST, zdoPayload, exports.DEFAULT_APS_OPTIONS);
1761
1747
  if (status !== enums_1.SLStatus.OK) {
1762
1748
  throw new Error(`[ZDO] Failed bind request for '${destinationNetworkAddress}' destination '${destinationAddressOrGroup}' endpoint '${destinationEndpoint}' with status=${enums_1.SLStatus[status]}.`);
@@ -1765,7 +1751,7 @@ class EmberAdapter extends __1.Adapter {
1765
1751
  target: destinationNetworkAddress,
1766
1752
  apsFrame,
1767
1753
  responseClusterId: Zdo.ClusterId.BIND_RESPONSE,
1768
- }, DEFAULT_ZDO_REQUEST_TIMEOUT);
1754
+ }, DEFAULT_REQUEST_TIMEOUT);
1769
1755
  }, destinationNetworkAddress);
1770
1756
  }
1771
1757
  // queued, non-InterPAN
@@ -1774,7 +1760,7 @@ class EmberAdapter extends __1.Adapter {
1774
1760
  this.checkInterpanLock();
1775
1761
  const zdoPayload = buffaloZdo_1.BuffaloZdo.buildUnbindRequest(sourceIeeeAddress, sourceEndpoint, clusterID, type === 'group' ? Zdo.MULTICAST_BINDING : Zdo.UNICAST_BINDING, destinationAddressOrGroup, // not used with MULTICAST_BINDING
1776
1762
  destinationAddressOrGroup, // not used with UNICAST_BINDING
1777
- destinationEndpoint);
1763
+ destinationEndpoint ?? 0);
1778
1764
  const [status, apsFrame] = await this.sendZDORequest(destinationNetworkAddress, Zdo.ClusterId.UNBIND_REQUEST, zdoPayload, exports.DEFAULT_APS_OPTIONS);
1779
1765
  if (status !== enums_1.SLStatus.OK) {
1780
1766
  throw new Error(`[ZDO] Failed unbind request for '${destinationNetworkAddress}' destination '${destinationAddressOrGroup}' endpoint '${destinationEndpoint}' with status=${enums_1.SLStatus[status]}.`);
@@ -1783,7 +1769,7 @@ class EmberAdapter extends __1.Adapter {
1783
1769
  target: destinationNetworkAddress,
1784
1770
  apsFrame,
1785
1771
  responseClusterId: Zdo.ClusterId.UNBIND_RESPONSE,
1786
- }, DEFAULT_ZDO_REQUEST_TIMEOUT);
1772
+ }, DEFAULT_REQUEST_TIMEOUT);
1787
1773
  }, destinationNetworkAddress);
1788
1774
  }
1789
1775
  // queued, non-InterPAN
@@ -1799,7 +1785,7 @@ class EmberAdapter extends __1.Adapter {
1799
1785
  target: networkAddress,
1800
1786
  apsFrame,
1801
1787
  responseClusterId: Zdo.ClusterId.LEAVE_RESPONSE,
1802
- }, DEFAULT_ZDO_REQUEST_TIMEOUT);
1788
+ }, DEFAULT_REQUEST_TIMEOUT);
1803
1789
  }, networkAddress);
1804
1790
  }
1805
1791
  //---- ZCL
@@ -1807,7 +1793,7 @@ class EmberAdapter extends __1.Adapter {
1807
1793
  async sendZclFrameToEndpoint(ieeeAddr, networkAddress, endpoint, zclFrame, timeout, disableResponse, disableRecovery, sourceEndpoint) {
1808
1794
  const sourceEndpointInfo = (sourceEndpoint && endpoints_1.FIXED_ENDPOINTS.find((epi) => epi.endpoint === sourceEndpoint)) || endpoints_1.FIXED_ENDPOINTS[0];
1809
1795
  const command = zclFrame.command;
1810
- let commandResponseId = null;
1796
+ let commandResponseId;
1811
1797
  if (command.response !== undefined && disableResponse === false) {
1812
1798
  commandResponseId = command.response;
1813
1799
  }
@@ -1824,7 +1810,7 @@ class EmberAdapter extends __1.Adapter {
1824
1810
  sequence: 0, // set by stack
1825
1811
  };
1826
1812
  // don't RETRY if no response expected
1827
- if (commandResponseId == null) {
1813
+ if (commandResponseId === undefined) {
1828
1814
  apsFrame.options &= ~enums_1.EmberApsOption.RETRY;
1829
1815
  }
1830
1816
  const data = zclFrame.toBuffer();
@@ -1870,7 +1856,7 @@ class EmberAdapter extends __1.Adapter {
1870
1856
  }
1871
1857
  logger_1.logger.debug(`~x~> [ZCL to=${networkAddress}] Failed to send request attempt ${i}/${QUEUE_MAX_SEND_ATTEMPTS} with status=${enums_1.SLStatus[status]}.`, NS);
1872
1858
  }
1873
- if (commandResponseId != null) {
1859
+ if (commandResponseId !== undefined) {
1874
1860
  // NOTE: aps sequence number will have been set by send function
1875
1861
  const result = await this.oneWaitress.startWaitingFor({
1876
1862
  target: networkAddress,
@@ -1880,7 +1866,6 @@ class EmberAdapter extends __1.Adapter {
1880
1866
  }, timeout);
1881
1867
  return result;
1882
1868
  }
1883
- return null;
1884
1869
  }, networkAddress);
1885
1870
  }
1886
1871
  // queued, non-InterPAN
@@ -2015,7 +2000,7 @@ class EmberAdapter extends __1.Adapter {
2015
2000
  }
2016
2001
  // NOTE: can use ezspRawTransmitCompleteHandler if needed here
2017
2002
  const result = await this.oneWaitress.startWaitingFor({
2018
- target: null,
2003
+ target: undefined,
2019
2004
  apsFrame: apsFrame,
2020
2005
  zclSequence: zclFrame.header.transactionSequenceNumber,
2021
2006
  commandIdentifier: command.response,