@willieee802/zigbee-herdsman 0.19.21 → 0.36.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 (523) hide show
  1. package/.babelrc.js +0 -4
  2. package/.release-please-manifest.json +1 -2
  3. package/CHANGELOG.md +462 -0
  4. package/README.md +1 -1
  5. package/dist/adapter/adapter.d.ts +61 -61
  6. package/dist/adapter/adapter.d.ts.map +1 -1
  7. package/dist/adapter/adapter.js +158 -153
  8. package/dist/adapter/adapter.js.map +1 -1
  9. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +68 -68
  10. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  11. package/dist/adapter/deconz/adapter/deconzAdapter.js +1081 -1060
  12. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  13. package/dist/adapter/deconz/adapter/index.d.ts +2 -2
  14. package/dist/adapter/deconz/adapter/index.js +10 -10
  15. package/dist/adapter/deconz/driver/constants.d.ts +104 -104
  16. package/dist/adapter/deconz/driver/constants.js +55 -55
  17. package/dist/adapter/deconz/driver/driver.d.ts +81 -81
  18. package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
  19. package/dist/adapter/deconz/driver/driver.js +750 -732
  20. package/dist/adapter/deconz/driver/driver.js.map +1 -1
  21. package/dist/adapter/deconz/driver/frame.d.ts +6 -6
  22. package/dist/adapter/deconz/driver/frame.js +13 -13
  23. package/dist/adapter/deconz/driver/frameParser.d.ts +2 -2
  24. package/dist/adapter/deconz/driver/frameParser.js +443 -443
  25. package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
  26. package/dist/adapter/deconz/driver/parser.d.ts +12 -12
  27. package/dist/adapter/deconz/driver/parser.js +63 -61
  28. package/dist/adapter/deconz/driver/parser.js.map +1 -1
  29. package/dist/adapter/deconz/driver/writer.d.ts +8 -8
  30. package/dist/adapter/deconz/driver/writer.js +44 -44
  31. package/dist/adapter/ember/adapter/emberAdapter.d.ts +810 -0
  32. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -0
  33. package/dist/adapter/ember/adapter/emberAdapter.js +2970 -0
  34. package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -0
  35. package/dist/adapter/ember/adapter/endpoints.d.ts +25 -0
  36. package/dist/adapter/ember/adapter/endpoints.d.ts.map +1 -0
  37. package/dist/adapter/ember/adapter/endpoints.js +66 -0
  38. package/dist/adapter/ember/adapter/endpoints.js.map +1 -0
  39. package/dist/adapter/ember/adapter/index.d.ts +3 -0
  40. package/dist/adapter/ember/adapter/index.d.ts.map +1 -0
  41. package/dist/adapter/ember/adapter/index.js +6 -0
  42. package/dist/adapter/ember/adapter/index.js.map +1 -0
  43. package/dist/adapter/ember/adapter/oneWaitress.d.ts +100 -0
  44. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -0
  45. package/dist/adapter/ember/adapter/oneWaitress.js +227 -0
  46. package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -0
  47. package/dist/adapter/ember/adapter/requestQueue.d.ts +59 -0
  48. package/dist/adapter/ember/adapter/requestQueue.d.ts.map +1 -0
  49. package/dist/adapter/ember/adapter/requestQueue.js +144 -0
  50. package/dist/adapter/ember/adapter/requestQueue.js.map +1 -0
  51. package/dist/adapter/ember/adapter/tokensManager.d.ts +69 -0
  52. package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -0
  53. package/dist/adapter/ember/adapter/tokensManager.js +685 -0
  54. package/dist/adapter/ember/adapter/tokensManager.js.map +1 -0
  55. package/dist/adapter/ember/consts.d.ts +198 -0
  56. package/dist/adapter/ember/consts.d.ts.map +1 -0
  57. package/dist/adapter/ember/consts.js +253 -0
  58. package/dist/adapter/ember/consts.js.map +1 -0
  59. package/dist/adapter/ember/enums.d.ts +2174 -0
  60. package/dist/adapter/ember/enums.d.ts.map +1 -0
  61. package/dist/adapter/ember/enums.js +2377 -0
  62. package/dist/adapter/ember/enums.js.map +1 -0
  63. package/dist/adapter/ember/ezsp/buffalo.d.ts +156 -0
  64. package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -0
  65. package/dist/adapter/ember/ezsp/buffalo.js +1033 -0
  66. package/dist/adapter/ember/ezsp/buffalo.js.map +1 -0
  67. package/dist/adapter/ember/ezsp/consts.d.ts +116 -0
  68. package/dist/adapter/ember/ezsp/consts.d.ts.map +1 -0
  69. package/dist/adapter/ember/ezsp/consts.js +128 -0
  70. package/dist/adapter/ember/ezsp/consts.js.map +1 -0
  71. package/dist/adapter/ember/ezsp/enums.d.ts +879 -0
  72. package/dist/adapter/ember/ezsp/enums.d.ts.map +1 -0
  73. package/dist/adapter/ember/ezsp/enums.js +948 -0
  74. package/dist/adapter/ember/ezsp/enums.js.map +1 -0
  75. package/dist/adapter/ember/ezsp/ezsp.d.ts +2663 -0
  76. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -0
  77. package/dist/adapter/ember/ezsp/ezsp.js +6435 -0
  78. package/dist/adapter/ember/ezsp/ezsp.js.map +1 -0
  79. package/dist/adapter/ember/types.d.ts +733 -0
  80. package/dist/adapter/ember/types.d.ts.map +1 -0
  81. package/dist/adapter/ember/types.js +3 -0
  82. package/dist/adapter/ember/types.js.map +1 -0
  83. package/dist/adapter/ember/uart/ash.d.ts +458 -0
  84. package/dist/adapter/ember/uart/ash.d.ts.map +1 -0
  85. package/dist/adapter/ember/uart/ash.js +1601 -0
  86. package/dist/adapter/ember/uart/ash.js.map +1 -0
  87. package/dist/adapter/ember/uart/consts.d.ts +91 -0
  88. package/dist/adapter/ember/uart/consts.d.ts.map +1 -0
  89. package/dist/adapter/ember/uart/consts.js +100 -0
  90. package/dist/adapter/ember/uart/consts.js.map +1 -0
  91. package/dist/adapter/ember/uart/enums.d.ts +191 -0
  92. package/dist/adapter/ember/uart/enums.d.ts.map +1 -0
  93. package/dist/adapter/ember/uart/enums.js +197 -0
  94. package/dist/adapter/ember/uart/enums.js.map +1 -0
  95. package/dist/adapter/ember/uart/parser.d.ts +10 -0
  96. package/dist/adapter/ember/uart/parser.d.ts.map +1 -0
  97. package/dist/adapter/ember/uart/parser.js +41 -0
  98. package/dist/adapter/ember/uart/parser.js.map +1 -0
  99. package/dist/adapter/ember/uart/queues.d.ts +85 -0
  100. package/dist/adapter/ember/uart/queues.d.ts.map +1 -0
  101. package/dist/adapter/ember/uart/queues.js +212 -0
  102. package/dist/adapter/ember/uart/queues.js.map +1 -0
  103. package/dist/adapter/ember/uart/writer.d.ts +15 -0
  104. package/dist/adapter/ember/uart/writer.d.ts.map +1 -0
  105. package/dist/adapter/ember/uart/writer.js +48 -0
  106. package/dist/adapter/ember/uart/writer.js.map +1 -0
  107. package/dist/adapter/ember/utils/initters.d.ts +20 -0
  108. package/dist/adapter/ember/utils/initters.d.ts.map +1 -0
  109. package/dist/adapter/ember/utils/initters.js +58 -0
  110. package/dist/adapter/ember/utils/initters.js.map +1 -0
  111. package/dist/adapter/ember/utils/math.d.ts +51 -0
  112. package/dist/adapter/ember/utils/math.d.ts.map +1 -0
  113. package/dist/adapter/ember/utils/math.js +102 -0
  114. package/dist/adapter/ember/utils/math.js.map +1 -0
  115. package/dist/adapter/ember/zdo.d.ts +921 -0
  116. package/dist/adapter/ember/zdo.d.ts.map +1 -0
  117. package/dist/adapter/ember/zdo.js +723 -0
  118. package/dist/adapter/ember/zdo.js.map +1 -0
  119. package/dist/adapter/events.d.ts +47 -47
  120. package/dist/adapter/events.js +13 -14
  121. package/dist/adapter/events.js.map +1 -1
  122. package/dist/adapter/ezsp/adapter/backup.d.ts +13 -9
  123. package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
  124. package/dist/adapter/ezsp/adapter/backup.js +104 -53
  125. package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
  126. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +61 -60
  127. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  128. package/dist/adapter/ezsp/adapter/ezspAdapter.js +626 -608
  129. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  130. package/dist/adapter/ezsp/adapter/index.d.ts +2 -2
  131. package/dist/adapter/ezsp/adapter/index.js +10 -10
  132. package/dist/adapter/ezsp/driver/commands.d.ts +36 -36
  133. package/dist/adapter/ezsp/driver/commands.d.ts.map +1 -1
  134. package/dist/adapter/ezsp/driver/commands.js +2388 -2359
  135. package/dist/adapter/ezsp/driver/commands.js.map +1 -1
  136. package/dist/adapter/ezsp/driver/consts.d.ts +10 -10
  137. package/dist/adapter/ezsp/driver/consts.js +13 -13
  138. package/dist/adapter/ezsp/driver/driver.d.ts +111 -101
  139. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  140. package/dist/adapter/ezsp/driver/driver.js +816 -638
  141. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  142. package/dist/adapter/ezsp/driver/ezsp.d.ts +105 -96
  143. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  144. package/dist/adapter/ezsp/driver/ezsp.js +652 -586
  145. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  146. package/dist/adapter/ezsp/driver/frame.d.ts +40 -0
  147. package/dist/adapter/ezsp/driver/frame.d.ts.map +1 -0
  148. package/dist/adapter/ezsp/driver/frame.js +101 -0
  149. package/dist/adapter/ezsp/driver/frame.js.map +1 -0
  150. package/dist/adapter/ezsp/driver/index.d.ts +3 -3
  151. package/dist/adapter/ezsp/driver/index.js +8 -8
  152. package/dist/adapter/ezsp/driver/multicast.d.ts +12 -12
  153. package/dist/adapter/ezsp/driver/multicast.js +77 -72
  154. package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
  155. package/dist/adapter/ezsp/driver/parser.d.ts +11 -12
  156. package/dist/adapter/ezsp/driver/parser.d.ts.map +1 -1
  157. package/dist/adapter/ezsp/driver/parser.js +104 -111
  158. package/dist/adapter/ezsp/driver/parser.js.map +1 -1
  159. package/dist/adapter/ezsp/driver/types/basic.d.ts +62 -62
  160. package/dist/adapter/ezsp/driver/types/basic.js +208 -208
  161. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  162. package/dist/adapter/ezsp/driver/types/index.d.ts +9 -9
  163. package/dist/adapter/ezsp/driver/types/index.d.ts.map +1 -1
  164. package/dist/adapter/ezsp/driver/types/index.js +138 -133
  165. package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
  166. package/dist/adapter/ezsp/driver/types/named.d.ts +1287 -697
  167. package/dist/adapter/ezsp/driver/types/named.d.ts.map +1 -1
  168. package/dist/adapter/ezsp/driver/types/named.js +2329 -1726
  169. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  170. package/dist/adapter/ezsp/driver/types/struct.d.ts +270 -251
  171. package/dist/adapter/ezsp/driver/types/struct.d.ts.map +1 -1
  172. package/dist/adapter/ezsp/driver/types/struct.js +803 -708
  173. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  174. package/dist/adapter/ezsp/driver/uart.d.ts +48 -44
  175. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  176. package/dist/adapter/ezsp/driver/uart.js +382 -368
  177. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  178. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +2 -2
  179. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +55 -55
  180. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +1 -1
  181. package/dist/adapter/ezsp/driver/utils/index.d.ts +19 -18
  182. package/dist/adapter/ezsp/driver/utils/index.d.ts.map +1 -1
  183. package/dist/adapter/ezsp/driver/utils/index.js +72 -67
  184. package/dist/adapter/ezsp/driver/utils/index.js.map +1 -1
  185. package/dist/adapter/ezsp/driver/writer.d.ts +13 -13
  186. package/dist/adapter/ezsp/driver/writer.d.ts.map +1 -1
  187. package/dist/adapter/ezsp/driver/writer.js +85 -88
  188. package/dist/adapter/ezsp/driver/writer.js.map +1 -1
  189. package/dist/adapter/index.d.ts +4 -4
  190. package/dist/adapter/index.js +35 -35
  191. package/dist/adapter/serialPort.d.ts +13 -8
  192. package/dist/adapter/serialPort.d.ts.map +1 -1
  193. package/dist/adapter/serialPort.js +46 -22
  194. package/dist/adapter/serialPort.js.map +1 -1
  195. package/dist/adapter/serialPortUtils.d.ts +12 -12
  196. package/dist/adapter/serialPortUtils.js +18 -18
  197. package/dist/adapter/serialPortUtils.js.map +1 -1
  198. package/dist/adapter/socketPortUtils.d.ts +10 -10
  199. package/dist/adapter/socketPortUtils.js +16 -16
  200. package/dist/adapter/tstype.d.ts +85 -85
  201. package/dist/adapter/tstype.d.ts.map +1 -1
  202. package/dist/adapter/tstype.js +2 -2
  203. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +62 -62
  204. package/dist/adapter/z-stack/adapter/adapter-backup.js +462 -461
  205. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  206. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +150 -150
  207. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +258 -258
  208. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +1 -1
  209. package/dist/adapter/z-stack/adapter/endpoints.d.ts +11 -11
  210. package/dist/adapter/z-stack/adapter/endpoints.js +73 -73
  211. package/dist/adapter/z-stack/adapter/index.d.ts +2 -2
  212. package/dist/adapter/z-stack/adapter/index.js +8 -8
  213. package/dist/adapter/z-stack/adapter/manager.d.ts +86 -86
  214. package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
  215. package/dist/adapter/z-stack/adapter/manager.js +482 -476
  216. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  217. package/dist/adapter/z-stack/adapter/tstype.d.ts +6 -6
  218. package/dist/adapter/z-stack/adapter/tstype.js +9 -10
  219. package/dist/adapter/z-stack/adapter/tstype.js.map +1 -1
  220. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +81 -81
  221. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  222. package/dist/adapter/z-stack/adapter/zStackAdapter.js +885 -868
  223. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  224. package/dist/adapter/z-stack/constants/af.d.ts +23 -23
  225. package/dist/adapter/z-stack/constants/af.js +27 -27
  226. package/dist/adapter/z-stack/constants/common.d.ts +278 -278
  227. package/dist/adapter/z-stack/constants/common.d.ts.map +1 -1
  228. package/dist/adapter/z-stack/constants/common.js +292 -289
  229. package/dist/adapter/z-stack/constants/common.js.map +1 -1
  230. package/dist/adapter/z-stack/constants/dbg.d.ts +22 -22
  231. package/dist/adapter/z-stack/constants/dbg.js +24 -24
  232. package/dist/adapter/z-stack/constants/index.d.ts +10 -10
  233. package/dist/adapter/z-stack/constants/index.js +47 -47
  234. package/dist/adapter/z-stack/constants/mac.d.ts +127 -127
  235. package/dist/adapter/z-stack/constants/mac.js +129 -129
  236. package/dist/adapter/z-stack/constants/sapi.d.ts +24 -24
  237. package/dist/adapter/z-stack/constants/sapi.js +26 -26
  238. package/dist/adapter/z-stack/constants/sys.d.ts +71 -71
  239. package/dist/adapter/z-stack/constants/sys.js +73 -73
  240. package/dist/adapter/z-stack/constants/util.d.ts +81 -81
  241. package/dist/adapter/z-stack/constants/util.js +83 -83
  242. package/dist/adapter/z-stack/constants/utils.d.ts +4 -4
  243. package/dist/adapter/z-stack/constants/utils.js +14 -14
  244. package/dist/adapter/z-stack/constants/zdo.d.ts +102 -102
  245. package/dist/adapter/z-stack/constants/zdo.js +104 -104
  246. package/dist/adapter/z-stack/models/index.d.ts +1 -1
  247. package/dist/adapter/z-stack/models/index.js +17 -17
  248. package/dist/adapter/z-stack/models/startup-options.d.ts +12 -12
  249. package/dist/adapter/z-stack/models/startup-options.js +2 -2
  250. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +23 -23
  251. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +45 -45
  252. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js.map +1 -1
  253. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +10 -10
  254. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +22 -22
  255. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +10 -10
  256. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +21 -21
  257. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +10 -10
  258. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +23 -23
  259. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +10 -10
  260. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +24 -24
  261. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +10 -10
  262. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +23 -23
  263. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +8 -8
  264. package/dist/adapter/z-stack/structs/entries/channel-list.js +15 -15
  265. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +8 -8
  266. package/dist/adapter/z-stack/structs/entries/has-configured.js +16 -16
  267. package/dist/adapter/z-stack/structs/entries/index.d.ts +16 -16
  268. package/dist/adapter/z-stack/structs/entries/index.js +32 -32
  269. package/dist/adapter/z-stack/structs/entries/nib.d.ts +10 -10
  270. package/dist/adapter/z-stack/structs/entries/nib.js +68 -68
  271. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +10 -10
  272. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +18 -18
  273. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +8 -8
  274. package/dist/adapter/z-stack/structs/entries/nwk-key.js +15 -15
  275. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +8 -8
  276. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +15 -15
  277. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +13 -13
  278. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +23 -23
  279. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +10 -10
  280. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +22 -22
  281. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +20 -20
  282. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +36 -36
  283. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js.map +1 -1
  284. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +10 -10
  285. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +24 -24
  286. package/dist/adapter/z-stack/structs/index.d.ts +4 -4
  287. package/dist/adapter/z-stack/structs/index.js +20 -20
  288. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +13 -13
  289. package/dist/adapter/z-stack/structs/serializable-memory-object.js +2 -2
  290. package/dist/adapter/z-stack/structs/struct.d.ts +99 -99
  291. package/dist/adapter/z-stack/structs/struct.js +296 -295
  292. package/dist/adapter/z-stack/structs/struct.js.map +1 -1
  293. package/dist/adapter/z-stack/structs/table.d.ts +94 -94
  294. package/dist/adapter/z-stack/structs/table.js +163 -161
  295. package/dist/adapter/z-stack/structs/table.js.map +1 -1
  296. package/dist/adapter/z-stack/unpi/constants.d.ts +28 -28
  297. package/dist/adapter/z-stack/unpi/constants.js +39 -41
  298. package/dist/adapter/z-stack/unpi/constants.js.map +1 -1
  299. package/dist/adapter/z-stack/unpi/frame.d.ts +16 -16
  300. package/dist/adapter/z-stack/unpi/frame.js +54 -48
  301. package/dist/adapter/z-stack/unpi/frame.js.map +1 -1
  302. package/dist/adapter/z-stack/unpi/index.d.ts +5 -5
  303. package/dist/adapter/z-stack/unpi/index.js +37 -37
  304. package/dist/adapter/z-stack/unpi/parser.d.ts +10 -10
  305. package/dist/adapter/z-stack/unpi/parser.js +75 -74
  306. package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
  307. package/dist/adapter/z-stack/unpi/writer.d.ts +10 -10
  308. package/dist/adapter/z-stack/unpi/writer.js +44 -44
  309. package/dist/adapter/z-stack/utils/channel-list.d.ts +20 -20
  310. package/dist/adapter/z-stack/utils/channel-list.js +40 -40
  311. package/dist/adapter/z-stack/utils/channel-list.js.map +1 -1
  312. package/dist/adapter/z-stack/utils/index.d.ts +2 -2
  313. package/dist/adapter/z-stack/utils/index.js +18 -18
  314. package/dist/adapter/z-stack/utils/network-options.d.ts +8 -8
  315. package/dist/adapter/z-stack/utils/network-options.js +22 -22
  316. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +11 -11
  317. package/dist/adapter/z-stack/znp/buffaloZnp.js +113 -113
  318. package/dist/adapter/z-stack/znp/buffaloZnp.js.map +1 -1
  319. package/dist/adapter/z-stack/znp/definition.d.ts +5 -5
  320. package/dist/adapter/z-stack/znp/definition.js +3050 -3050
  321. package/dist/adapter/z-stack/znp/index.d.ts +3 -3
  322. package/dist/adapter/z-stack/znp/index.js +10 -10
  323. package/dist/adapter/z-stack/znp/parameterType.d.ts +22 -22
  324. package/dist/adapter/z-stack/znp/parameterType.js +25 -25
  325. package/dist/adapter/z-stack/znp/tstype.d.ts +21 -21
  326. package/dist/adapter/z-stack/znp/tstype.js +2 -2
  327. package/dist/adapter/z-stack/znp/znp.d.ts +44 -43
  328. package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
  329. package/dist/adapter/z-stack/znp/znp.js +326 -325
  330. package/dist/adapter/z-stack/znp/znp.js.map +1 -1
  331. package/dist/adapter/z-stack/znp/zpiObject.d.ts +19 -19
  332. package/dist/adapter/z-stack/znp/zpiObject.js +102 -96
  333. package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
  334. package/dist/adapter/zigate/adapter/index.d.ts +2 -2
  335. package/dist/adapter/zigate/adapter/index.js +10 -10
  336. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +70 -70
  337. package/dist/adapter/zigate/adapter/zigateAdapter.js +689 -684
  338. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  339. package/dist/adapter/zigate/debug.d.ts +7 -7
  340. package/dist/adapter/zigate/debug.d.ts.map +1 -1
  341. package/dist/adapter/zigate/debug.js +19 -22
  342. package/dist/adapter/zigate/debug.js.map +1 -1
  343. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +18 -18
  344. package/dist/adapter/zigate/driver/buffaloZiGate.js +139 -139
  345. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
  346. package/dist/adapter/zigate/driver/commandType.d.ts +41 -41
  347. package/dist/adapter/zigate/driver/commandType.js +385 -385
  348. package/dist/adapter/zigate/driver/commandType.js.map +1 -1
  349. package/dist/adapter/zigate/driver/constants.d.ts +276 -276
  350. package/dist/adapter/zigate/driver/constants.d.ts.map +1 -1
  351. package/dist/adapter/zigate/driver/constants.js +371 -371
  352. package/dist/adapter/zigate/driver/constants.js.map +1 -1
  353. package/dist/adapter/zigate/driver/frame.d.ts +26 -26
  354. package/dist/adapter/zigate/driver/frame.js +172 -172
  355. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  356. package/dist/adapter/zigate/driver/messageType.d.ts +11 -11
  357. package/dist/adapter/zigate/driver/messageType.js +278 -278
  358. package/dist/adapter/zigate/driver/messageType.js.map +1 -1
  359. package/dist/adapter/zigate/driver/parameterType.d.ts +20 -20
  360. package/dist/adapter/zigate/driver/parameterType.js +23 -23
  361. package/dist/adapter/zigate/driver/ziGateObject.d.ts +23 -23
  362. package/dist/adapter/zigate/driver/ziGateObject.js +110 -106
  363. package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
  364. package/dist/adapter/zigate/driver/zigate.d.ts +49 -49
  365. package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
  366. package/dist/adapter/zigate/driver/zigate.js +296 -303
  367. package/dist/adapter/zigate/driver/zigate.js.map +1 -1
  368. package/dist/buffalo/buffalo.d.ts +50 -50
  369. package/dist/buffalo/buffalo.js +324 -322
  370. package/dist/buffalo/buffalo.js.map +1 -1
  371. package/dist/buffalo/index.d.ts +3 -3
  372. package/dist/buffalo/index.js +33 -33
  373. package/dist/buffalo/tstype.d.ts +8 -8
  374. package/dist/buffalo/tstype.js +2 -2
  375. package/dist/controller/controller.d.ts +113 -113
  376. package/dist/controller/controller.d.ts.map +1 -1
  377. package/dist/controller/controller.js +641 -619
  378. package/dist/controller/controller.js.map +1 -1
  379. package/dist/controller/database.d.ts +18 -18
  380. package/dist/controller/database.js +96 -93
  381. package/dist/controller/database.js.map +1 -1
  382. package/dist/controller/events.d.ts +58 -58
  383. package/dist/controller/events.d.ts.map +1 -1
  384. package/dist/controller/events.js +108 -102
  385. package/dist/controller/events.js.map +1 -1
  386. package/dist/controller/greenPower.d.ts +12 -12
  387. package/dist/controller/greenPower.js +221 -220
  388. package/dist/controller/greenPower.js.map +1 -1
  389. package/dist/controller/helpers/index.d.ts +2 -2
  390. package/dist/controller/helpers/index.js +28 -28
  391. package/dist/controller/helpers/request.d.ts +21 -22
  392. package/dist/controller/helpers/request.d.ts.map +1 -1
  393. package/dist/controller/helpers/request.js +77 -71
  394. package/dist/controller/helpers/request.js.map +1 -1
  395. package/dist/controller/helpers/requestQueue.d.ts +13 -0
  396. package/dist/controller/helpers/requestQueue.d.ts.map +1 -0
  397. package/dist/controller/helpers/requestQueue.js +116 -0
  398. package/dist/controller/helpers/requestQueue.js.map +1 -0
  399. package/dist/controller/helpers/zclFrameConverter.d.ts +7 -7
  400. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  401. package/dist/controller/helpers/zclFrameConverter.js +50 -31
  402. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  403. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +5 -5
  404. package/dist/controller/helpers/zclTransactionSequenceNumber.js +13 -13
  405. package/dist/controller/helpers/zclTransactionSequenceNumber.js.map +1 -1
  406. package/dist/controller/index.d.ts +5 -5
  407. package/dist/controller/index.js +8 -8
  408. package/dist/controller/logger-stub.d.ts +6 -6
  409. package/dist/controller/logger-stub.js +2 -2
  410. package/dist/controller/model/device.d.ts +132 -133
  411. package/dist/controller/model/device.d.ts.map +1 -1
  412. package/dist/controller/model/device.js +726 -717
  413. package/dist/controller/model/device.js.map +1 -1
  414. package/dist/controller/model/endpoint.d.ts +128 -131
  415. package/dist/controller/model/endpoint.d.ts.map +1 -1
  416. package/dist/controller/model/endpoint.js +755 -821
  417. package/dist/controller/model/endpoint.js.map +1 -1
  418. package/dist/controller/model/entity.d.ts +14 -14
  419. package/dist/controller/model/entity.js +26 -26
  420. package/dist/controller/model/entity.js.map +1 -1
  421. package/dist/controller/model/group.d.ts +38 -38
  422. package/dist/controller/model/group.d.ts.map +1 -1
  423. package/dist/controller/model/group.js +225 -221
  424. package/dist/controller/model/group.js.map +1 -1
  425. package/dist/controller/model/index.d.ts +5 -5
  426. package/dist/controller/model/index.js +14 -14
  427. package/dist/controller/touchlink.d.ts +19 -19
  428. package/dist/controller/touchlink.js +159 -157
  429. package/dist/controller/touchlink.js.map +1 -1
  430. package/dist/controller/tstype.d.ts +20 -21
  431. package/dist/controller/tstype.d.ts.map +1 -1
  432. package/dist/controller/tstype.js +8 -9
  433. package/dist/controller/tstype.js.map +1 -1
  434. package/dist/index.d.ts +3 -3
  435. package/dist/index.js +33 -33
  436. package/dist/models/backup-storage-legacy.d.ts +26 -26
  437. package/dist/models/backup-storage-legacy.js +2 -2
  438. package/dist/models/backup-storage-unified.d.ts +49 -49
  439. package/dist/models/backup-storage-unified.js +2 -2
  440. package/dist/models/backup.d.ts +37 -37
  441. package/dist/models/backup.js +2 -2
  442. package/dist/models/index.d.ts +4 -4
  443. package/dist/models/index.js +20 -20
  444. package/dist/models/network-options.d.ts +12 -12
  445. package/dist/models/network-options.js +2 -2
  446. package/dist/utils/assertString.d.ts +2 -2
  447. package/dist/utils/assertString.js +8 -8
  448. package/dist/utils/assertString.js.map +1 -1
  449. package/dist/utils/backup.d.ts +20 -20
  450. package/dist/utils/backup.d.ts.map +1 -1
  451. package/dist/utils/backup.js +189 -187
  452. package/dist/utils/backup.js.map +1 -1
  453. package/dist/utils/equalsPartial.d.ts +2 -2
  454. package/dist/utils/equalsPartial.js +11 -11
  455. package/dist/utils/index.d.ts +9 -9
  456. package/dist/utils/index.js +45 -45
  457. package/dist/utils/isNumberArray.d.ts +2 -2
  458. package/dist/utils/isNumberArray.js +6 -6
  459. package/dist/utils/queue.d.ts +11 -11
  460. package/dist/utils/queue.d.ts.map +1 -1
  461. package/dist/utils/queue.js +61 -50
  462. package/dist/utils/queue.js.map +1 -1
  463. package/dist/utils/realpathSync.d.ts +2 -2
  464. package/dist/utils/realpathSync.js +12 -12
  465. package/dist/utils/wait.d.ts +2 -2
  466. package/dist/utils/wait.js +8 -8
  467. package/dist/utils/waitress.d.ts +21 -21
  468. package/dist/utils/waitress.d.ts.map +1 -1
  469. package/dist/utils/waitress.js +68 -61
  470. package/dist/utils/waitress.js.map +1 -1
  471. package/dist/zcl/buffaloZcl.d.ts +41 -41
  472. package/dist/zcl/buffaloZcl.d.ts.map +1 -1
  473. package/dist/zcl/buffaloZcl.js +594 -591
  474. package/dist/zcl/buffaloZcl.js.map +1 -1
  475. package/dist/zcl/definition/buffaloZclDataType.d.ts +17 -17
  476. package/dist/zcl/definition/buffaloZclDataType.js +20 -20
  477. package/dist/zcl/definition/cluster.d.ts +29 -29
  478. package/dist/zcl/definition/cluster.d.ts.map +1 -1
  479. package/dist/zcl/definition/cluster.js +5530 -5335
  480. package/dist/zcl/definition/cluster.js.map +1 -1
  481. package/dist/zcl/definition/dataType.d.ts +59 -59
  482. package/dist/zcl/definition/dataType.js +64 -64
  483. package/dist/zcl/definition/direction.d.ts +5 -5
  484. package/dist/zcl/definition/direction.js +8 -8
  485. package/dist/zcl/definition/endpointDeviceType.d.ts +4 -4
  486. package/dist/zcl/definition/endpointDeviceType.js +15 -15
  487. package/dist/zcl/definition/foundation.d.ts +11 -11
  488. package/dist/zcl/definition/foundation.js +167 -167
  489. package/dist/zcl/definition/frameControl.d.ts +10 -10
  490. package/dist/zcl/definition/frameControl.js +2 -2
  491. package/dist/zcl/definition/frameType.d.ts +5 -5
  492. package/dist/zcl/definition/frameType.js +8 -8
  493. package/dist/zcl/definition/index.d.ts +13 -13
  494. package/dist/zcl/definition/index.js +51 -51
  495. package/dist/zcl/definition/manufacturerCode.d.ts +1077 -1074
  496. package/dist/zcl/definition/manufacturerCode.d.ts.map +1 -1
  497. package/dist/zcl/definition/manufacturerCode.js +1082 -1079
  498. package/dist/zcl/definition/manufacturerCode.js.map +1 -1
  499. package/dist/zcl/definition/powerSource.d.ts +4 -4
  500. package/dist/zcl/definition/powerSource.js +12 -12
  501. package/dist/zcl/definition/status.d.ts +38 -38
  502. package/dist/zcl/definition/status.js +41 -41
  503. package/dist/zcl/definition/tstype.d.ts +16 -16
  504. package/dist/zcl/definition/tstype.js +2 -2
  505. package/dist/zcl/index.d.ts +16 -16
  506. package/dist/zcl/index.js +55 -55
  507. package/dist/zcl/tstype.d.ts +56 -56
  508. package/dist/zcl/tstype.js +9 -10
  509. package/dist/zcl/tstype.js.map +1 -1
  510. package/dist/zcl/utils.d.ts +6 -6
  511. package/dist/zcl/utils.js +164 -165
  512. package/dist/zcl/utils.js.map +1 -1
  513. package/dist/zcl/zclFrame.d.ts +40 -40
  514. package/dist/zcl/zclFrame.js +351 -347
  515. package/dist/zcl/zclFrame.js.map +1 -1
  516. package/dist/zcl/zclHeader.d.ts +8 -8
  517. package/dist/zcl/zclHeader.js +2 -2
  518. package/dist/zcl/zclStatusError.d.ts +5 -5
  519. package/dist/zcl/zclStatusError.js +14 -13
  520. package/dist/zcl/zclStatusError.js.map +1 -1
  521. package/package.json +11 -11
  522. package/release-please-config.json +1 -5
  523. package/tsconfig.json +4 -2
@@ -1,72 +1,78 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /* eslint-disable-next-line @typescript-eslint/no-explicit-any*/
4
- class Request {
5
- constructor(func, frame, timeout, sendWhen, sendPolicy, lastError, resolve, reject) {
6
- this._func = func;
7
- this.frame = frame;
8
- this.sendWhen = sendWhen !== null && sendWhen !== void 0 ? sendWhen : 'active',
9
- this.expires = timeout + Date.now();
10
- this.sendPolicy = sendPolicy !== null && sendPolicy !== void 0 ? sendPolicy : (typeof frame.getCommand !== 'function' ?
11
- undefined : Request.defaultSendPolicy[frame.getCommand().ID]);
12
- this._resolveQueue = resolve === undefined ?
13
- new Array() : new Array(resolve);
14
- this._rejectQueue = reject === undefined ?
15
- new Array() : new Array(reject);
16
- this._lastError = lastError !== null && lastError !== void 0 ? lastError : Error("Request rejected before first send");
17
- }
18
- moveCallbacks(from) {
19
- this._resolveQueue = this._resolveQueue.concat(from._resolveQueue);
20
- this._rejectQueue = this._rejectQueue.concat(from._rejectQueue);
21
- from._resolveQueue.length = 0;
22
- from._rejectQueue.length = 0;
23
- }
24
- addCallbacks(resolve, reject) {
25
- this._resolveQueue.push(resolve);
26
- this._rejectQueue.push(reject);
27
- }
28
- reject(error) {
29
- this._rejectQueue.forEach(el => el(error !== null && error !== void 0 ? error : this._lastError));
30
- this._rejectQueue.length = 0;
31
- }
32
- resolve(value) {
33
- this._resolveQueue.forEach(el => el(value));
34
- this._resolveQueue.length = 0;
35
- }
36
- async send() {
37
- try {
38
- return await this._func(this.frame);
39
- }
40
- catch (error) {
41
- this._lastError = error;
42
- throw (error);
43
- }
44
- }
45
- }
46
- Request.defaultSendPolicy = {
47
- 0x00: 'keep-payload',
48
- 0x01: 'immediate',
49
- 0x02: 'keep-command',
50
- 0x03: 'keep-cmd-undiv',
51
- 0x04: 'immediate',
52
- 0x05: 'keep-command',
53
- 0x06: 'keep-payload',
54
- 0x07: 'immediate',
55
- 0x08: 'keep-payload',
56
- 0x09: 'immediate',
57
- 0x0a: 'keep-payload',
58
- 0x0b: 'immediate',
59
- 0x0c: 'keep-payload',
60
- 0x0d: 'immediate',
61
- 0x0e: 'keep-payload',
62
- 0x0f: 'keep-payload',
63
- 0x10: 'immediate',
64
- 0x11: 'keep-payload',
65
- 0x12: 'immediate',
66
- 0x13: 'keep-payload',
67
- 0x14: 'immediate',
68
- 0x15: 'keep-payload',
69
- 0x16: 'immediate', // Discover Attributes Extended Response
70
- };
71
- exports.default = Request;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any*/
4
+ class Request {
5
+ static defaultSendPolicy = {
6
+ 0x00: 'keep-payload', // Read Attributes
7
+ 0x01: 'immediate', // Read Attributes Response
8
+ 0x02: 'keep-command', // Write Attributes
9
+ 0x03: 'keep-cmd-undiv', // Write Attributes Undivided
10
+ 0x04: 'immediate', // Write Attributes Response
11
+ 0x05: 'keep-command', // Write Attributes No Response
12
+ 0x06: 'keep-payload', // Configure Reporting
13
+ 0x07: 'immediate', // Configure Reporting Response
14
+ 0x08: 'keep-payload', // Read Reporting Configuration
15
+ 0x09: 'immediate', // Read Reporting Configuration Response
16
+ 0x0a: 'keep-payload', // Report attributes
17
+ 0x0b: 'immediate', // Default Response
18
+ 0x0c: 'keep-payload', // Discover Attributes
19
+ 0x0d: 'immediate', // Discover Attributes Response
20
+ 0x0e: 'keep-payload', // Read Attributes Structured
21
+ 0x0f: 'keep-payload', // Write Attributes Structured
22
+ 0x10: 'immediate', // Write Attributes Structured response
23
+ 0x11: 'keep-payload', // Discover Commands Received
24
+ 0x12: 'immediate', // Discover Commands Received Response
25
+ 0x13: 'keep-payload', // Discover Commands Generated
26
+ 0x14: 'immediate', // Discover Commands Generated Response
27
+ 0x15: 'keep-payload', // Discover Attributes Extended
28
+ 0x16: 'immediate', // Discover Attributes Extended Response
29
+ };
30
+ func;
31
+ frame;
32
+ expires;
33
+ sendPolicy;
34
+ resolveQueue;
35
+ rejectQueue;
36
+ lastError;
37
+ constructor(func, frame, timeout, sendPolicy, lastError, resolve, reject) {
38
+ this.func = func;
39
+ this.frame = frame;
40
+ this.expires = timeout + Date.now();
41
+ this.sendPolicy = sendPolicy ?? (typeof frame.getCommand !== 'function' ?
42
+ undefined : Request.defaultSendPolicy[frame.getCommand().ID]);
43
+ this.resolveQueue = resolve === undefined ?
44
+ new Array() : new Array(resolve);
45
+ this.rejectQueue = reject === undefined ?
46
+ new Array() : new Array(reject);
47
+ this.lastError = lastError ?? Error("Request rejected before first send");
48
+ }
49
+ moveCallbacks(from) {
50
+ this.resolveQueue = this.resolveQueue.concat(from.resolveQueue);
51
+ this.rejectQueue = this.rejectQueue.concat(from.rejectQueue);
52
+ from.resolveQueue.length = 0;
53
+ from.rejectQueue.length = 0;
54
+ }
55
+ addCallbacks(resolve, reject) {
56
+ this.resolveQueue.push(resolve);
57
+ this.rejectQueue.push(reject);
58
+ }
59
+ reject(error) {
60
+ this.rejectQueue.forEach(el => el(error ?? this.lastError));
61
+ this.rejectQueue.length = 0;
62
+ }
63
+ resolve(value) {
64
+ this.resolveQueue.forEach(el => el(value));
65
+ this.resolveQueue.length = 0;
66
+ }
67
+ async send() {
68
+ try {
69
+ return await this.func(this.frame);
70
+ }
71
+ catch (error) {
72
+ this.lastError = error;
73
+ throw (error);
74
+ }
75
+ }
76
+ }
77
+ exports.default = Request;
72
78
  //# sourceMappingURL=request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/controller/helpers/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/controller/helpers/request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Endpoint } from '../model';
2
+ import Request from './request';
3
+ declare class RequestQueue extends Set<Request> {
4
+ private sendInProgress;
5
+ private ID;
6
+ private deviceIeeeAddress;
7
+ constructor(endpoint: Endpoint);
8
+ send(fastPolling: boolean): Promise<void>;
9
+ queue<Type>(request: Request<Type>): Promise<Type>;
10
+ filter(newRequest: Request): void;
11
+ }
12
+ export default RequestQueue;
13
+ //# sourceMappingURL=requestQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestQueue.d.ts","sourceRoot":"","sources":["../../../src/controller/helpers/requestQueue.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,OAAO,MAAM,WAAW,CAAC;AAWhC,cAAM,YAAa,SAAQ,GAAG,CAAC,OAAO,CAAC;IAEnC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,iBAAiB,CAAS;gBAErB,QAAQ,EAAE,QAAQ;IASlB,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCzC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD,MAAM,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;CAmD3C;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const debug_1 = __importDefault(require("debug"));
7
+ const debug = {
8
+ info: (0, debug_1.default)('zigbee-herdsman:helpers:requestQueue'),
9
+ error: (0, debug_1.default)('zigbee-herdsman:helpers:requestQeue'),
10
+ };
11
+ class RequestQueue extends Set {
12
+ sendInProgress;
13
+ ID;
14
+ deviceIeeeAddress;
15
+ constructor(endpoint) {
16
+ super();
17
+ this.sendInProgress = false;
18
+ this.ID = endpoint.ID;
19
+ this.deviceIeeeAddress = endpoint.deviceIeeeAddress;
20
+ }
21
+ async send(fastPolling) {
22
+ if (this.size === 0)
23
+ return;
24
+ if (!fastPolling && this.sendInProgress) {
25
+ debug.info(`Request Queue (${this.deviceIeeeAddress}/${this.ID}): sendPendingRequests already in progress`);
26
+ return;
27
+ }
28
+ this.sendInProgress = true;
29
+ // Remove expired requests first
30
+ const now = Date.now();
31
+ for (const request of this) {
32
+ if (now > request.expires) {
33
+ debug.info(`Request Queue (${this.deviceIeeeAddress}/${this.ID}): discard after timeout. ` +
34
+ `Size before: ${this.size}`);
35
+ request.reject();
36
+ this.delete(request);
37
+ }
38
+ }
39
+ debug.info(`Request Queue (${this.deviceIeeeAddress}/${this.ID}): send pending requests (` +
40
+ `${this.size}, ${fastPolling})`);
41
+ for (const request of this) {
42
+ if (fastPolling || request.sendPolicy !== 'bulk') {
43
+ try {
44
+ const result = await request.send();
45
+ debug.info(`Request Queue (${this.deviceIeeeAddress}/${this.ID}): send success`);
46
+ request.resolve(result);
47
+ this.delete(request);
48
+ }
49
+ catch (error) {
50
+ debug.info(`Request Queue (${this.deviceIeeeAddress}/${this.ID}): send failed, expires in ` +
51
+ `${(request.expires - now) / 1000} seconds`);
52
+ }
53
+ }
54
+ }
55
+ this.sendInProgress = false;
56
+ }
57
+ async queue(request) {
58
+ debug.info(`Request Queue (${this.deviceIeeeAddress}/${this.ID}): Sending when active. ` +
59
+ `Expires: ${request.expires}`);
60
+ return new Promise((resolve, reject) => {
61
+ request.addCallbacks(resolve, reject);
62
+ this.add(request);
63
+ });
64
+ }
65
+ filter(newRequest) {
66
+ if (this.size === 0 || !(typeof newRequest.frame.getCommand === 'function')) {
67
+ return;
68
+ }
69
+ const clusterID = newRequest.frame.Cluster.ID;
70
+ const payload = newRequest.frame.Payload;
71
+ const commandID = newRequest.frame.getCommand().ID;
72
+ debug.info(`Request Queue (${this.deviceIeeeAddress}/${this.ID}): ZCL ${newRequest.frame.getCommand().name} ` +
73
+ `command, filter requests. Before: ${this.size}`);
74
+ for (const request of this) {
75
+ if (request?.frame?.Cluster?.ID === undefined || typeof request.frame.getCommand !== 'function') {
76
+ continue;
77
+ }
78
+ if (['bulk', 'queue', 'immediate'].includes(request.sendPolicy)) {
79
+ continue;
80
+ }
81
+ /* istanbul ignore else */
82
+ if (request.frame.Cluster.ID === clusterID && request.frame.getCommand().ID === commandID) {
83
+ /* istanbul ignore else */
84
+ if (newRequest.sendPolicy === 'keep-payload'
85
+ && JSON.stringify(request.frame.Payload) === JSON.stringify(payload)) {
86
+ debug.info(`Request Queue (${this.deviceIeeeAddress}/${this.ID}): Merge duplicate request`);
87
+ this.delete(request);
88
+ newRequest.moveCallbacks(request);
89
+ }
90
+ else if ((newRequest.sendPolicy === 'keep-command' || newRequest.sendPolicy === 'keep-cmd-undiv') &&
91
+ Array.isArray(request.frame.Payload)) {
92
+ const filteredPayload = request.frame.Payload.filter((oldEl) => !payload.find((newEl) => oldEl.attrId === newEl.attrId));
93
+ if (filteredPayload.length == 0) {
94
+ debug.info(`Request Queue (${this.deviceIeeeAddress}/${this.ID}): Remove & reject request`);
95
+ if (JSON.stringify(request.frame.Payload) === JSON.stringify(payload)) {
96
+ newRequest.moveCallbacks(request);
97
+ }
98
+ else {
99
+ request.reject();
100
+ }
101
+ this.delete(request);
102
+ }
103
+ else if (newRequest.sendPolicy !== 'keep-cmd-undiv') {
104
+ // remove all duplicate attributes if we shall not write undivided
105
+ request.frame.Payload = filteredPayload;
106
+ debug.info(`Request Queue (${this.deviceIeeeAddress}/${this.ID}): `
107
+ + `Remove commands from request`);
108
+ }
109
+ }
110
+ }
111
+ }
112
+ debug.info(`Request Queue (${this.deviceIeeeAddress}/${this.ID}): After: ${this.size}`);
113
+ }
114
+ }
115
+ exports.default = RequestQueue;
116
+ //# sourceMappingURL=requestQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestQueue.js","sourceRoot":"","sources":["../../../src/controller/helpers/requestQueue.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { ZclFrame } from '../../zcl';
2
- interface KeyValue {
3
- [s: string]: number | string;
4
- }
5
- declare function attributeKeyValue(frame: ZclFrame): KeyValue;
6
- declare function attributeList(frame: ZclFrame): Array<string | number>;
7
- export { attributeKeyValue, attributeList, };
1
+ import { ZclFrame } from '../../zcl';
2
+ interface KeyValue {
3
+ [s: string]: number | string;
4
+ }
5
+ declare function attributeKeyValue(frame: ZclFrame, deviceManufacturerID: number): KeyValue;
6
+ declare function attributeList(frame: ZclFrame, deviceManufacturerID: number): Array<string | number>;
7
+ export { attributeKeyValue, attributeList, };
8
8
  //# sourceMappingURL=zclFrameConverter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zclFrameConverter.d.ts","sourceRoot":"","sources":["../../../src/controller/helpers/zclFrameConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,WAAW,CAAC;AAEnC,UAAU,QAAQ;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAC;AAEjD,iBAAS,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAapD;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAa9D;AAED,OAAO,EACH,iBAAiB,EACjB,aAAa,GAChB,CAAC"}
1
+ {"version":3,"file":"zclFrameConverter.d.ts","sourceRoot":"","sources":["../../../src/controller/helpers/zclFrameConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAoB,MAAM,WAAW,CAAC;AAItD,UAAU,QAAQ;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAC;AAejD,iBAAS,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,GAAG,QAAQ,CAalF;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAa5F;AAED,OAAO,EACH,iBAAiB,EACjB,aAAa,GAChB,CAAC"}
@@ -1,32 +1,51 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.attributeList = exports.attributeKeyValue = void 0;
4
- function attributeKeyValue(frame) {
5
- const payload = {};
6
- for (const item of frame.Payload) {
7
- try {
8
- const attribute = frame.Cluster.getAttribute(item.attrId);
9
- payload[attribute.name] = item.attrData;
10
- }
11
- catch (error) {
12
- payload[item.attrId] = item.attrData;
13
- }
14
- }
15
- return payload;
16
- }
17
- exports.attributeKeyValue = attributeKeyValue;
18
- function attributeList(frame) {
19
- const payload = [];
20
- for (const item of frame.Payload) {
21
- try {
22
- const attribute = frame.Cluster.getAttribute(item.attrId);
23
- payload.push(attribute.name);
24
- }
25
- catch (error) {
26
- payload.push(item.attrId);
27
- }
28
- }
29
- return payload;
30
- }
31
- exports.attributeList = attributeList;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.attributeList = exports.attributeKeyValue = void 0;
7
+ const zcl_1 = require("../../zcl");
8
+ const manufacturerCode_1 = __importDefault(require("../../zcl/definition/manufacturerCode"));
9
+ // Legrand devices (e.g. 4129) fail to set the manufacturerSpecific flag and
10
+ // manufacturerCode in the frame header, despite using specific attributes.
11
+ // This leads to incorrect reported attribute names.
12
+ // Remap the attributes using the target device's manufacturer ID
13
+ // if the header is lacking the information.
14
+ function getCluster(frame, deviceManufacturerID) {
15
+ let cluster = frame.Cluster;
16
+ if (!frame?.Header?.manufacturerCode && frame?.Cluster && deviceManufacturerID == manufacturerCode_1.default.LegrandNetatmo) {
17
+ cluster = zcl_1.Utils.getCluster(frame.Cluster.ID, deviceManufacturerID);
18
+ }
19
+ return cluster;
20
+ }
21
+ function attributeKeyValue(frame, deviceManufacturerID) {
22
+ const payload = {};
23
+ const cluster = getCluster(frame, deviceManufacturerID);
24
+ for (const item of frame.Payload) {
25
+ try {
26
+ const attribute = cluster.getAttribute(item.attrId);
27
+ payload[attribute.name] = item.attrData;
28
+ }
29
+ catch (error) {
30
+ payload[item.attrId] = item.attrData;
31
+ }
32
+ }
33
+ return payload;
34
+ }
35
+ exports.attributeKeyValue = attributeKeyValue;
36
+ function attributeList(frame, deviceManufacturerID) {
37
+ const payload = [];
38
+ const cluster = getCluster(frame, deviceManufacturerID);
39
+ for (const item of frame.Payload) {
40
+ try {
41
+ const attribute = cluster.getAttribute(item.attrId);
42
+ payload.push(attribute.name);
43
+ }
44
+ catch (error) {
45
+ payload.push(item.attrId);
46
+ }
47
+ }
48
+ return payload;
49
+ }
50
+ exports.attributeList = attributeList;
32
51
  //# sourceMappingURL=zclFrameConverter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zclFrameConverter.js","sourceRoot":"","sources":["../../../src/controller/helpers/zclFrameConverter.ts"],"names":[],"mappings":";;;AAIA,SAAS,iBAAiB,CAAC,KAAe;IACtC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;QAC9B,IAAI;YACA,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1D,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC3C;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;SACxC;KACJ;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAkBG,8CAAiB;AAhBrB,SAAS,aAAa,CAAC,KAAe;IAClC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;QAC9B,IAAI;YACA,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAChC;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;KACJ;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAIG,sCAAa"}
1
+ {"version":3,"file":"zclFrameConverter.js","sourceRoot":"","sources":["../../../src/controller/helpers/zclFrameConverter.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAsD;AAEtD,6FAAqE;AAIrE,4EAA4E;AAC5E,2EAA2E;AAC3E,oDAAoD;AACpD,iEAAiE;AACjE,4CAA4C;AAC5C,SAAS,UAAU,CAAC,KAAe,EAAE,oBAA4B;IAC7D,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,IAAI,KAAK,EAAE,OAAO,IAAI,oBAAoB,IAAI,0BAAgB,CAAC,cAAc,EAAE,CAAC;QAChH,OAAO,GAAG,WAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAe,EAAE,oBAA4B;IACpE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;IAExD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpD,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAkBG,8CAAiB;AAhBrB,SAAS,aAAa,CAAC,KAAe,EAAE,oBAA4B;IAChE,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;IAExD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAIG,sCAAa"}
@@ -1,6 +1,6 @@
1
- declare class ZclTransactionSequenceNumber {
2
- private static number;
3
- static next(): number;
4
- }
5
- export default ZclTransactionSequenceNumber;
1
+ declare class ZclTransactionSequenceNumber {
2
+ private static number;
3
+ static next(): number;
4
+ }
5
+ export default ZclTransactionSequenceNumber;
6
6
  //# sourceMappingURL=zclTransactionSequenceNumber.d.ts.map
@@ -1,14 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class ZclTransactionSequenceNumber {
4
- static next() {
5
- this.number++;
6
- if (this.number > 255) {
7
- this.number = 1;
8
- }
9
- return this.number;
10
- }
11
- }
12
- ZclTransactionSequenceNumber.number = 1;
13
- exports.default = ZclTransactionSequenceNumber;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class ZclTransactionSequenceNumber {
4
+ static number = 1;
5
+ static next() {
6
+ this.number++;
7
+ if (this.number > 255) {
8
+ this.number = 1;
9
+ }
10
+ return this.number;
11
+ }
12
+ }
13
+ exports.default = ZclTransactionSequenceNumber;
14
14
  //# sourceMappingURL=zclTransactionSequenceNumber.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zclTransactionSequenceNumber.js","sourceRoot":"","sources":["../../../src/controller/helpers/zclTransactionSequenceNumber.ts"],"names":[],"mappings":";;AAAA,MAAM,4BAA4B;IAGvB,MAAM,CAAC,IAAI;QACd,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACnB;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;;AAVc,mCAAM,GAAG,CAAC,CAAC;AAa9B,kBAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"zclTransactionSequenceNumber.js","sourceRoot":"","sources":["../../../src/controller/helpers/zclTransactionSequenceNumber.ts"],"names":[],"mappings":";;AAAA,MAAM,4BAA4B;IACtB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAEnB,MAAM,CAAC,IAAI;QACd,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;;AAGL,kBAAe,4BAA4B,CAAC"}
@@ -1,6 +1,6 @@
1
- import Controller from './controller';
2
- /**
3
- * @internal
4
- */
5
- export { Controller, };
1
+ import Controller from './controller';
2
+ /**
3
+ * @internal
4
+ */
5
+ export { Controller, };
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1,9 +1,9 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Controller = void 0;
7
- const controller_1 = __importDefault(require("./controller"));
8
- exports.Controller = controller_1.default;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Controller = void 0;
7
+ const controller_1 = __importDefault(require("./controller"));
8
+ exports.Controller = controller_1.default;
9
9
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
- export interface LoggerStub {
2
- error: (message: string, ...meta: any[]) => void;
3
- warn: (message: string, ...meta: any[]) => void;
4
- info: (message: string, ...meta: any[]) => void;
5
- debug: (message: string, ...meta: any[]) => void;
6
- }
1
+ export interface LoggerStub {
2
+ error: (message: string, ...meta: any[]) => void;
3
+ warn: (message: string, ...meta: any[]) => void;
4
+ info: (message: string, ...meta: any[]) => void;
5
+ debug: (message: string, ...meta: any[]) => void;
6
+ }
7
7
  //# sourceMappingURL=logger-stub.d.ts.map
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=logger-stub.js.map