@willieee802/zigbee-herdsman 0.18.2 → 0.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +67 -0
  3. package/dist/adapter/adapter.d.ts +61 -61
  4. package/dist/adapter/adapter.d.ts.map +1 -1
  5. package/dist/adapter/adapter.js +146 -146
  6. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +68 -68
  7. package/dist/adapter/deconz/adapter/deconzAdapter.js +1060 -1060
  8. package/dist/adapter/deconz/adapter/index.d.ts +2 -2
  9. package/dist/adapter/deconz/adapter/index.js +10 -10
  10. package/dist/adapter/deconz/driver/constants.d.ts +104 -104
  11. package/dist/adapter/deconz/driver/constants.js +55 -55
  12. package/dist/adapter/deconz/driver/driver.d.ts +81 -81
  13. package/dist/adapter/deconz/driver/driver.js +732 -732
  14. package/dist/adapter/deconz/driver/frame.d.ts +6 -6
  15. package/dist/adapter/deconz/driver/frame.js +13 -13
  16. package/dist/adapter/deconz/driver/frameParser.d.ts +2 -2
  17. package/dist/adapter/deconz/driver/frameParser.js +443 -443
  18. package/dist/adapter/deconz/driver/parser.d.ts +12 -12
  19. package/dist/adapter/deconz/driver/parser.js +61 -61
  20. package/dist/adapter/deconz/driver/writer.d.ts +8 -8
  21. package/dist/adapter/deconz/driver/writer.js +44 -44
  22. package/dist/adapter/events.d.ts +47 -47
  23. package/dist/adapter/events.js +14 -14
  24. package/dist/adapter/ezsp/adapter/backup.d.ts +9 -9
  25. package/dist/adapter/ezsp/adapter/backup.js +53 -53
  26. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +59 -59
  27. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  28. package/dist/adapter/ezsp/adapter/ezspAdapter.js +603 -585
  29. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  30. package/dist/adapter/ezsp/adapter/index.d.ts +2 -2
  31. package/dist/adapter/ezsp/adapter/index.js +10 -10
  32. package/dist/adapter/ezsp/driver/commands.d.ts +36 -36
  33. package/dist/adapter/ezsp/driver/commands.js +2359 -2359
  34. package/dist/adapter/ezsp/driver/consts.d.ts +10 -10
  35. package/dist/adapter/ezsp/driver/consts.js +13 -13
  36. package/dist/adapter/ezsp/driver/driver.d.ts +103 -103
  37. package/dist/adapter/ezsp/driver/driver.js +639 -639
  38. package/dist/adapter/ezsp/driver/ezsp.d.ts +96 -96
  39. package/dist/adapter/ezsp/driver/ezsp.js +586 -586
  40. package/dist/adapter/ezsp/driver/index.d.ts +3 -3
  41. package/dist/adapter/ezsp/driver/index.js +8 -8
  42. package/dist/adapter/ezsp/driver/multicast.d.ts +12 -12
  43. package/dist/adapter/ezsp/driver/multicast.js +74 -74
  44. package/dist/adapter/ezsp/driver/parser.d.ts +12 -12
  45. package/dist/adapter/ezsp/driver/parser.js +111 -111
  46. package/dist/adapter/ezsp/driver/types/basic.d.ts +62 -62
  47. package/dist/adapter/ezsp/driver/types/basic.js +208 -208
  48. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  49. package/dist/adapter/ezsp/driver/types/index.d.ts +9 -9
  50. package/dist/adapter/ezsp/driver/types/index.js +133 -133
  51. package/dist/adapter/ezsp/driver/types/named.d.ts +697 -697
  52. package/dist/adapter/ezsp/driver/types/named.js +1726 -1726
  53. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  54. package/dist/adapter/ezsp/driver/types/struct.d.ts +251 -251
  55. package/dist/adapter/ezsp/driver/types/struct.js +708 -708
  56. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  57. package/dist/adapter/ezsp/driver/uart.d.ts +44 -44
  58. package/dist/adapter/ezsp/driver/uart.js +368 -368
  59. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +2 -2
  60. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +55 -55
  61. package/dist/adapter/ezsp/driver/utils/index.d.ts +18 -18
  62. package/dist/adapter/ezsp/driver/utils/index.js +67 -67
  63. package/dist/adapter/ezsp/driver/writer.d.ts +13 -13
  64. package/dist/adapter/ezsp/driver/writer.js +88 -88
  65. package/dist/adapter/index.d.ts +4 -4
  66. package/dist/adapter/index.js +35 -35
  67. package/dist/adapter/serialPort.d.ts +8 -8
  68. package/dist/adapter/serialPort.js +22 -22
  69. package/dist/adapter/serialPort.js.map +1 -1
  70. package/dist/adapter/serialPortUtils.d.ts +12 -12
  71. package/dist/adapter/serialPortUtils.js +18 -18
  72. package/dist/adapter/socketPortUtils.d.ts +10 -10
  73. package/dist/adapter/socketPortUtils.js +16 -16
  74. package/dist/adapter/tstype.d.ts +85 -85
  75. package/dist/adapter/tstype.js +2 -2
  76. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +62 -62
  77. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
  78. package/dist/adapter/z-stack/adapter/adapter-backup.js +460 -441
  79. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  80. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +150 -150
  81. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +258 -258
  82. package/dist/adapter/z-stack/adapter/endpoints.d.ts +11 -11
  83. package/dist/adapter/z-stack/adapter/endpoints.js +73 -73
  84. package/dist/adapter/z-stack/adapter/index.d.ts +2 -2
  85. package/dist/adapter/z-stack/adapter/index.js +8 -8
  86. package/dist/adapter/z-stack/adapter/manager.d.ts +86 -86
  87. package/dist/adapter/z-stack/adapter/manager.js +476 -476
  88. package/dist/adapter/z-stack/adapter/tstype.d.ts +6 -6
  89. package/dist/adapter/z-stack/adapter/tstype.js +10 -10
  90. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +81 -81
  91. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  92. package/dist/adapter/z-stack/adapter/zStackAdapter.js +868 -868
  93. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  94. package/dist/adapter/z-stack/constants/af.d.ts +23 -23
  95. package/dist/adapter/z-stack/constants/af.js +27 -27
  96. package/dist/adapter/z-stack/constants/common.d.ts +278 -278
  97. package/dist/adapter/z-stack/constants/common.js +289 -289
  98. package/dist/adapter/z-stack/constants/dbg.d.ts +22 -22
  99. package/dist/adapter/z-stack/constants/dbg.js +24 -24
  100. package/dist/adapter/z-stack/constants/index.d.ts +10 -10
  101. package/dist/adapter/z-stack/constants/index.js +47 -47
  102. package/dist/adapter/z-stack/constants/mac.d.ts +127 -127
  103. package/dist/adapter/z-stack/constants/mac.js +129 -129
  104. package/dist/adapter/z-stack/constants/sapi.d.ts +24 -24
  105. package/dist/adapter/z-stack/constants/sapi.js +26 -26
  106. package/dist/adapter/z-stack/constants/sys.d.ts +71 -71
  107. package/dist/adapter/z-stack/constants/sys.js +73 -73
  108. package/dist/adapter/z-stack/constants/util.d.ts +81 -81
  109. package/dist/adapter/z-stack/constants/util.js +83 -83
  110. package/dist/adapter/z-stack/constants/utils.d.ts +4 -4
  111. package/dist/adapter/z-stack/constants/utils.js +14 -14
  112. package/dist/adapter/z-stack/constants/zdo.d.ts +102 -102
  113. package/dist/adapter/z-stack/constants/zdo.js +104 -104
  114. package/dist/adapter/z-stack/models/index.d.ts +1 -1
  115. package/dist/adapter/z-stack/models/index.js +17 -17
  116. package/dist/adapter/z-stack/models/startup-options.d.ts +12 -12
  117. package/dist/adapter/z-stack/models/startup-options.js +2 -2
  118. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +23 -23
  119. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +45 -45
  120. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +10 -10
  121. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +22 -22
  122. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +10 -10
  123. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +21 -21
  124. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +10 -10
  125. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +23 -23
  126. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +10 -10
  127. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +24 -24
  128. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +10 -10
  129. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +23 -23
  130. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +8 -8
  131. package/dist/adapter/z-stack/structs/entries/channel-list.js +15 -15
  132. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +8 -8
  133. package/dist/adapter/z-stack/structs/entries/has-configured.js +16 -16
  134. package/dist/adapter/z-stack/structs/entries/index.d.ts +16 -16
  135. package/dist/adapter/z-stack/structs/entries/index.js +32 -32
  136. package/dist/adapter/z-stack/structs/entries/nib.d.ts +10 -10
  137. package/dist/adapter/z-stack/structs/entries/nib.js +68 -68
  138. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +10 -10
  139. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +18 -18
  140. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +8 -8
  141. package/dist/adapter/z-stack/structs/entries/nwk-key.js +15 -15
  142. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +8 -8
  143. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +15 -15
  144. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +13 -13
  145. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +23 -23
  146. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +10 -10
  147. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +22 -22
  148. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +20 -20
  149. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +36 -36
  150. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +10 -10
  151. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +24 -24
  152. package/dist/adapter/z-stack/structs/index.d.ts +4 -4
  153. package/dist/adapter/z-stack/structs/index.js +20 -20
  154. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +13 -13
  155. package/dist/adapter/z-stack/structs/serializable-memory-object.js +2 -2
  156. package/dist/adapter/z-stack/structs/struct.d.ts +99 -99
  157. package/dist/adapter/z-stack/structs/struct.js +295 -295
  158. package/dist/adapter/z-stack/structs/table.d.ts +94 -94
  159. package/dist/adapter/z-stack/structs/table.js +161 -161
  160. package/dist/adapter/z-stack/unpi/constants.d.ts +28 -28
  161. package/dist/adapter/z-stack/unpi/constants.js +41 -41
  162. package/dist/adapter/z-stack/unpi/frame.d.ts +16 -16
  163. package/dist/adapter/z-stack/unpi/frame.js +48 -48
  164. package/dist/adapter/z-stack/unpi/index.d.ts +5 -5
  165. package/dist/adapter/z-stack/unpi/index.js +37 -37
  166. package/dist/adapter/z-stack/unpi/parser.d.ts +10 -10
  167. package/dist/adapter/z-stack/unpi/parser.js +74 -74
  168. package/dist/adapter/z-stack/unpi/writer.d.ts +10 -10
  169. package/dist/adapter/z-stack/unpi/writer.js +44 -44
  170. package/dist/adapter/z-stack/utils/channel-list.d.ts +20 -20
  171. package/dist/adapter/z-stack/utils/channel-list.js +40 -40
  172. package/dist/adapter/z-stack/utils/index.d.ts +2 -2
  173. package/dist/adapter/z-stack/utils/index.js +18 -18
  174. package/dist/adapter/z-stack/utils/network-options.d.ts +8 -8
  175. package/dist/adapter/z-stack/utils/network-options.js +22 -22
  176. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +11 -11
  177. package/dist/adapter/z-stack/znp/buffaloZnp.js +113 -113
  178. package/dist/adapter/z-stack/znp/definition.d.ts +5 -5
  179. package/dist/adapter/z-stack/znp/definition.js +3050 -3050
  180. package/dist/adapter/z-stack/znp/index.d.ts +3 -3
  181. package/dist/adapter/z-stack/znp/index.js +10 -10
  182. package/dist/adapter/z-stack/znp/parameterType.d.ts +22 -22
  183. package/dist/adapter/z-stack/znp/parameterType.js +25 -25
  184. package/dist/adapter/z-stack/znp/tstype.d.ts +21 -21
  185. package/dist/adapter/z-stack/znp/tstype.js +2 -2
  186. package/dist/adapter/z-stack/znp/znp.d.ts +43 -43
  187. package/dist/adapter/z-stack/znp/znp.js +325 -325
  188. package/dist/adapter/z-stack/znp/zpiObject.d.ts +19 -19
  189. package/dist/adapter/z-stack/znp/zpiObject.js +96 -96
  190. package/dist/adapter/zigate/adapter/index.d.ts +2 -2
  191. package/dist/adapter/zigate/adapter/index.js +10 -10
  192. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +69 -69
  193. package/dist/adapter/zigate/adapter/zigateAdapter.js +678 -678
  194. package/dist/adapter/zigate/debug.d.ts +7 -7
  195. package/dist/adapter/zigate/debug.js +22 -22
  196. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +18 -18
  197. package/dist/adapter/zigate/driver/buffaloZiGate.js +139 -139
  198. package/dist/adapter/zigate/driver/commandType.d.ts +41 -41
  199. package/dist/adapter/zigate/driver/commandType.js +385 -385
  200. package/dist/adapter/zigate/driver/constants.d.ts +276 -276
  201. package/dist/adapter/zigate/driver/constants.js +371 -371
  202. package/dist/adapter/zigate/driver/frame.d.ts +26 -26
  203. package/dist/adapter/zigate/driver/frame.js +172 -172
  204. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  205. package/dist/adapter/zigate/driver/messageType.d.ts +11 -11
  206. package/dist/adapter/zigate/driver/messageType.js +278 -278
  207. package/dist/adapter/zigate/driver/parameterType.d.ts +20 -20
  208. package/dist/adapter/zigate/driver/parameterType.js +23 -23
  209. package/dist/adapter/zigate/driver/ziGateObject.d.ts +23 -23
  210. package/dist/adapter/zigate/driver/ziGateObject.js +106 -106
  211. package/dist/adapter/zigate/driver/zigate.d.ts +49 -49
  212. package/dist/adapter/zigate/driver/zigate.js +303 -303
  213. package/dist/buffalo/buffalo.d.ts +50 -50
  214. package/dist/buffalo/buffalo.js +322 -322
  215. package/dist/buffalo/index.d.ts +3 -3
  216. package/dist/buffalo/index.js +33 -33
  217. package/dist/buffalo/tstype.d.ts +8 -8
  218. package/dist/buffalo/tstype.js +2 -2
  219. package/dist/controller/controller.d.ts +113 -110
  220. package/dist/controller/controller.d.ts.map +1 -1
  221. package/dist/controller/controller.js +619 -607
  222. package/dist/controller/controller.js.map +1 -1
  223. package/dist/controller/database.d.ts +18 -18
  224. package/dist/controller/database.js +93 -93
  225. package/dist/controller/events.d.ts +58 -55
  226. package/dist/controller/events.d.ts.map +1 -1
  227. package/dist/controller/events.js +101 -101
  228. package/dist/controller/events.js.map +1 -1
  229. package/dist/controller/greenPower.d.ts +12 -12
  230. package/dist/controller/greenPower.js +220 -220
  231. package/dist/controller/helpers/index.d.ts +2 -2
  232. package/dist/controller/helpers/index.js +28 -28
  233. package/dist/controller/helpers/request.d.ts +22 -22
  234. package/dist/controller/helpers/request.js +71 -71
  235. package/dist/controller/helpers/zclFrameConverter.d.ts +7 -7
  236. package/dist/controller/helpers/zclFrameConverter.js +31 -31
  237. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +5 -5
  238. package/dist/controller/helpers/zclTransactionSequenceNumber.js +13 -13
  239. package/dist/controller/index.d.ts +5 -5
  240. package/dist/controller/index.js +8 -8
  241. package/dist/controller/logger-stub.d.ts +6 -6
  242. package/dist/controller/logger-stub.js +2 -2
  243. package/dist/controller/model/device.d.ts +133 -132
  244. package/dist/controller/model/device.d.ts.map +1 -1
  245. package/dist/controller/model/device.js +717 -708
  246. package/dist/controller/model/device.js.map +1 -1
  247. package/dist/controller/model/endpoint.d.ts +131 -131
  248. package/dist/controller/model/endpoint.d.ts.map +1 -1
  249. package/dist/controller/model/endpoint.js +816 -817
  250. package/dist/controller/model/endpoint.js.map +1 -1
  251. package/dist/controller/model/entity.d.ts +14 -14
  252. package/dist/controller/model/entity.js +26 -26
  253. package/dist/controller/model/group.d.ts +38 -38
  254. package/dist/controller/model/group.js +221 -221
  255. package/dist/controller/model/index.d.ts +5 -5
  256. package/dist/controller/model/index.js +14 -14
  257. package/dist/controller/touchlink.d.ts +19 -19
  258. package/dist/controller/touchlink.js +157 -157
  259. package/dist/controller/tstype.d.ts +21 -21
  260. package/dist/controller/tstype.js +9 -9
  261. package/dist/index.d.ts +3 -3
  262. package/dist/index.js +33 -33
  263. package/dist/models/backup-storage-legacy.d.ts +26 -26
  264. package/dist/models/backup-storage-legacy.js +2 -2
  265. package/dist/models/backup-storage-unified.d.ts +49 -49
  266. package/dist/models/backup-storage-unified.js +2 -2
  267. package/dist/models/backup.d.ts +37 -37
  268. package/dist/models/backup.js +2 -2
  269. package/dist/models/index.d.ts +4 -4
  270. package/dist/models/index.js +20 -20
  271. package/dist/models/network-options.d.ts +12 -12
  272. package/dist/models/network-options.js +2 -2
  273. package/dist/utils/assertString.d.ts +2 -2
  274. package/dist/utils/assertString.js +8 -8
  275. package/dist/utils/backup.d.ts +20 -20
  276. package/dist/utils/backup.js +187 -187
  277. package/dist/utils/equalsPartial.d.ts +2 -2
  278. package/dist/utils/equalsPartial.js +11 -11
  279. package/dist/utils/index.d.ts +9 -9
  280. package/dist/utils/index.js +45 -45
  281. package/dist/utils/isNumberArray.d.ts +2 -2
  282. package/dist/utils/isNumberArray.js +6 -6
  283. package/dist/utils/queue.d.ts +11 -11
  284. package/dist/utils/queue.js +50 -50
  285. package/dist/utils/realpathSync.d.ts +2 -2
  286. package/dist/utils/realpathSync.js +12 -12
  287. package/dist/utils/wait.d.ts +2 -2
  288. package/dist/utils/wait.js +8 -8
  289. package/dist/utils/waitress.d.ts +21 -21
  290. package/dist/utils/waitress.js +61 -61
  291. package/dist/zcl/buffaloZcl.d.ts +41 -41
  292. package/dist/zcl/buffaloZcl.js +591 -591
  293. package/dist/zcl/definition/buffaloZclDataType.d.ts +17 -17
  294. package/dist/zcl/definition/buffaloZclDataType.js +20 -20
  295. package/dist/zcl/definition/cluster.d.ts +29 -29
  296. package/dist/zcl/definition/cluster.js +5335 -5335
  297. package/dist/zcl/definition/dataType.d.ts +59 -59
  298. package/dist/zcl/definition/dataType.js +64 -64
  299. package/dist/zcl/definition/direction.d.ts +5 -5
  300. package/dist/zcl/definition/direction.js +8 -8
  301. package/dist/zcl/definition/endpointDeviceType.d.ts +4 -4
  302. package/dist/zcl/definition/endpointDeviceType.js +15 -15
  303. package/dist/zcl/definition/foundation.d.ts +11 -11
  304. package/dist/zcl/definition/foundation.js +167 -167
  305. package/dist/zcl/definition/frameControl.d.ts +10 -10
  306. package/dist/zcl/definition/frameControl.js +2 -2
  307. package/dist/zcl/definition/frameType.d.ts +5 -5
  308. package/dist/zcl/definition/frameType.js +8 -8
  309. package/dist/zcl/definition/index.d.ts +13 -13
  310. package/dist/zcl/definition/index.js +51 -51
  311. package/dist/zcl/definition/manufacturerCode.d.ts +1074 -1074
  312. package/dist/zcl/definition/manufacturerCode.js +1079 -1079
  313. package/dist/zcl/definition/powerSource.d.ts +4 -4
  314. package/dist/zcl/definition/powerSource.js +12 -12
  315. package/dist/zcl/definition/status.d.ts +38 -38
  316. package/dist/zcl/definition/status.js +41 -41
  317. package/dist/zcl/definition/tstype.d.ts +16 -16
  318. package/dist/zcl/definition/tstype.js +2 -2
  319. package/dist/zcl/index.d.ts +15 -15
  320. package/dist/zcl/index.js +55 -55
  321. package/dist/zcl/tstype.d.ts +56 -56
  322. package/dist/zcl/tstype.js +10 -10
  323. package/dist/zcl/utils.d.ts +6 -6
  324. package/dist/zcl/utils.js +165 -165
  325. package/dist/zcl/zclFrame.d.ts +45 -45
  326. package/dist/zcl/zclFrame.js +347 -347
  327. package/dist/zcl/zclStatusError.d.ts +5 -5
  328. package/dist/zcl/zclStatusError.js +13 -13
  329. package/package.json +6 -6
@@ -1,304 +1,304 @@
1
- "use strict";
2
- /* istanbul ignore file */
3
- /* eslint-disable */
4
- var __importDefault = (this && this.__importDefault) || function (mod) {
5
- return (mod && mod.__esModule) ? mod : { "default": mod };
6
- };
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- const parser_delimiter_1 = require("@serialport/parser-delimiter");
9
- const events_1 = require("events");
10
- const debug_1 = require("../debug");
11
- const serialPort_1 = require("../../serialPort");
12
- const serialPortUtils_1 = __importDefault(require("../../serialPortUtils"));
13
- const socketPortUtils_1 = __importDefault(require("../../socketPortUtils"));
14
- const net_1 = __importDefault(require("net"));
15
- const utils_1 = require("../../../utils");
16
- const constants_1 = require("./constants");
17
- const ziGateObject_1 = __importDefault(require("./ziGateObject"));
18
- const zcl_1 = require("../../../zcl");
19
- const waitress_1 = __importDefault(require("../../../utils/waitress"));
20
- const commandType_1 = require("./commandType");
21
- const frame_1 = __importDefault(require("./frame"));
22
- const buffalo_1 = require("../../../buffalo");
23
- const debug = (0, debug_1.Debug)('driver');
24
- const autoDetectDefinitions = [
25
- { manufacturer: 'zigate_PL2303', vendorId: '067b', productId: '2303' },
26
- { manufacturer: 'zigate_cp2102', vendorId: '10c4', productId: 'ea60' },
27
- ];
28
- const timeouts = {
29
- reset: 30000,
30
- default: 10000,
31
- };
32
- function zeroPad(number, size) {
33
- return (number).toString(16).padStart(size || 4, '0');
34
- }
35
- function resolve(path, obj, separator = '.') {
36
- const properties = Array.isArray(path) ? path : path.split(separator);
37
- return properties.reduce((prev, curr) => prev && prev[curr], obj);
38
- }
39
- class ZiGate extends events_1.EventEmitter {
40
- constructor(path, serialPortOptions) {
41
- super();
42
- this.path = path;
43
- this.baudRate = typeof serialPortOptions.baudRate === 'number' ? serialPortOptions.baudRate : 115200;
44
- this.rtscts = typeof serialPortOptions.rtscts === 'boolean' ? serialPortOptions.rtscts : false;
45
- this.portType = socketPortUtils_1.default.isTcpPath(path) ? 'socket' : 'serial';
46
- this.initialized = false;
47
- this.queue = new utils_1.Queue(1);
48
- this.waitress = new waitress_1.default(this.waitressValidator, this.waitressTimeoutFormatter);
49
- }
50
- async sendCommand(code, payload, timeout, extraParameters, disableResponse = false) {
51
- const waiters = [];
52
- const waitersId = [];
53
- return await this.queue.execute(async () => {
54
- try {
55
- debug.log('Send command \x1b[32m>>>> '
56
- + constants_1.ZiGateCommandCode[code]
57
- + ' 0x' + zeroPad(code)
58
- + ' <<<<\x1b[0m \nPayload: %o', payload);
59
- const ziGateObject = ziGateObject_1.default.createRequest(code, payload);
60
- const frame = ziGateObject.toZiGateFrame();
61
- debug.log('%o', frame);
62
- const sendBuffer = frame.toBuffer();
63
- debug.log('<-- send command ', sendBuffer);
64
- debug.log(`DisableResponse: ${disableResponse}`);
65
- if (!disableResponse && Array.isArray(ziGateObject.command.response)) {
66
- ziGateObject.command.response.forEach((rules) => {
67
- let waiter = this.waitress.waitFor({ ziGateObject, rules, extraParameters }, timeout || timeouts.default);
68
- waitersId.push(waiter.ID);
69
- waiters.push(waiter.start().promise);
70
- });
71
- }
72
- let resultPromise;
73
- if (ziGateObject.command.waitStatus !== false) {
74
- const ruleStatus = [
75
- { receivedProperty: 'code', matcher: commandType_1.equal, value: constants_1.ZiGateMessageCode.Status },
76
- { receivedProperty: 'payload.packetType', matcher: commandType_1.equal, value: ziGateObject.code },
77
- ];
78
- const statusWaiter = this.waitress.waitFor({ ziGateObject, rules: ruleStatus }, timeout || timeouts.default).start();
79
- resultPromise = statusWaiter.promise;
80
- }
81
- // @ts-ignore
82
- this.portWrite.write(sendBuffer);
83
- if (ziGateObject.command.waitStatus !== false) {
84
- let statusResponse = await resultPromise;
85
- if (statusResponse.payload.status !== constants_1.STATUS.E_SL_MSG_STATUS_SUCCESS) {
86
- waitersId.map((id) => this.waitress.remove(id));
87
- return Promise.reject(statusResponse);
88
- }
89
- else if (waiters.length === 0) {
90
- return Promise.resolve(statusResponse);
91
- }
92
- }
93
- return Promise.race(waiters);
94
- }
95
- catch (e) {
96
- debug.error('sendCommand error:', e);
97
- return Promise.reject(new Error('sendCommand error: ' + e));
98
- }
99
- });
100
- }
101
- static async isValidPath(path) {
102
- return serialPortUtils_1.default.is(path, autoDetectDefinitions);
103
- }
104
- static async autoDetectPath() {
105
- const paths = await serialPortUtils_1.default.find(autoDetectDefinitions);
106
- return paths.length > 0 ? paths[0] : null;
107
- }
108
- open() {
109
- return this.portType === 'serial' ? this.openSerialPort() : this.openSocketPort();
110
- }
111
- close() {
112
- debug.info('close');
113
- return new Promise((resolve, reject) => {
114
- if (this.initialized) {
115
- this.initialized = false;
116
- this.portWrite = null;
117
- if (this.portType === 'serial') {
118
- this.serialPort.flush(() => {
119
- this.serialPort.close((error) => {
120
- this.serialPort = null;
121
- error == null ?
122
- resolve() :
123
- reject(new Error(`Error while closing serialPort '${error}'`));
124
- this.emit('close');
125
- });
126
- });
127
- }
128
- else {
129
- // @ts-ignore
130
- this.socketPort.destroy((error) => {
131
- this.socketPort = null;
132
- error == null ?
133
- resolve() :
134
- reject(new Error(`Error while closing serialPort '${error}'`));
135
- this.emit('close');
136
- });
137
- }
138
- }
139
- else {
140
- resolve();
141
- this.emit('close');
142
- }
143
- });
144
- }
145
- waitFor(matcher, timeout = timeouts.default) {
146
- return this.waitress.waitFor(matcher, timeout);
147
- }
148
- async openSerialPort() {
149
- this.serialPort = new serialPort_1.SerialPort({
150
- path: this.path,
151
- baudRate: this.baudRate,
152
- dataBits: 8,
153
- parity: 'none',
154
- stopBits: 1,
155
- lock: false,
156
- autoOpen: false
157
- });
158
- this.parser = this.serialPort.pipe(new parser_delimiter_1.DelimiterParser({ delimiter: [frame_1.default.STOP_BYTE], includeDelimiter: true }));
159
- this.parser.on('data', this.onSerialData.bind(this));
160
- this.portWrite = this.serialPort;
161
- return new Promise((resolve, reject) => {
162
- this.serialPort.open(async (err) => {
163
- if (err) {
164
- this.serialPort = null;
165
- this.parser = null;
166
- this.path = null;
167
- this.initialized = false;
168
- const error = `Error while opening serialPort '${err}'`;
169
- debug.error(error);
170
- reject(new Error(error));
171
- }
172
- else {
173
- debug.log('Successfully connected ZiGate port \'' + this.path + '\'');
174
- this.serialPort.on('error', (error) => {
175
- debug.error(`serialPort error: ${error}`);
176
- });
177
- this.serialPort.on('close', this.onPortClose.bind(this));
178
- this.initialized = true;
179
- resolve();
180
- }
181
- });
182
- });
183
- }
184
- async openSocketPort() {
185
- const info = socketPortUtils_1.default.parseTcpPath(this.path);
186
- debug.log(`Opening TCP socket with ${info.host}:${info.port}`);
187
- this.socketPort = new net_1.default.Socket();
188
- this.socketPort.setNoDelay(true);
189
- this.socketPort.setKeepAlive(true, 15000);
190
- this.parser = this.socketPort.pipe(new parser_delimiter_1.DelimiterParser({ delimiter: [frame_1.default.STOP_BYTE], includeDelimiter: true }));
191
- this.parser.on('data', this.onSerialData.bind(this));
192
- this.portWrite = this.socketPort;
193
- return new Promise((resolve, reject) => {
194
- this.socketPort.on('connect', function () {
195
- debug.log('Socket connected');
196
- });
197
- // eslint-disable-next-line
198
- const self = this;
199
- this.socketPort.on('ready', async function () {
200
- debug.log('Socket ready');
201
- self.initialized = true;
202
- resolve();
203
- });
204
- this.socketPort.once('close', this.onPortClose);
205
- this.socketPort.on('error', (error) => {
206
- debug.log('Socket error', error);
207
- // reject(new Error(`Error while opening socket`));
208
- reject();
209
- self.initialized = false;
210
- });
211
- this.socketPort.connect(info.port, info.host);
212
- });
213
- }
214
- onSerialError(err) {
215
- debug.error('serial error: ', err);
216
- }
217
- onPortClose() {
218
- debug.log('serial closed');
219
- this.initialized = false;
220
- this.emit('close');
221
- }
222
- onSerialData(buffer) {
223
- try {
224
- // debug.log(`--- parseNext `, buffer);
225
- const frame = new frame_1.default(buffer);
226
- if (!(frame instanceof frame_1.default))
227
- return; // @Todo fix
228
- const code = frame.readMsgCode();
229
- const msgName = (constants_1.ZiGateMessageCode[code] ? constants_1.ZiGateMessageCode[code] : '') + ' 0x' + zeroPad(code);
230
- debug.log(`--> parsed frame \x1b[1;34m>>>> ${msgName} <<<<\x1b[0m `);
231
- try {
232
- const ziGateObject = ziGateObject_1.default.fromZiGateFrame(frame);
233
- debug.log('%o', ziGateObject.payload);
234
- this.waitress.resolve(ziGateObject);
235
- switch (code) {
236
- case constants_1.ZiGateMessageCode.DataIndication:
237
- switch (ziGateObject.payload.profileID) {
238
- case 0x0000:
239
- switch (ziGateObject.payload.clusterID) {
240
- case 0x0013:
241
- let networkAddress = ziGateObject.payload.payload.readUInt16LE(1);
242
- let ieeeAddr = new buffalo_1.Buffalo(ziGateObject.payload.payload.slice(3, 11)).readIeeeAddr();
243
- this.emit('DeviceAnnounce', networkAddress, ieeeAddr);
244
- break;
245
- }
246
- break;
247
- case 0x0104:
248
- try {
249
- const zclFrame = zcl_1.ZclFrame.fromBuffer(ziGateObject.payload.clusterID, ziGateObject.payload.payload);
250
- this.emit('received', { ziGateObject, zclFrame });
251
- }
252
- catch (error) {
253
- debug.error("could not parse zclFrame: " + error);
254
- this.emit('receivedRaw', { ziGateObject });
255
- }
256
- break;
257
- default:
258
- debug.error("not implemented profile: " + ziGateObject.payload.profileID);
259
- }
260
- break;
261
- case constants_1.ZiGateMessageCode.LeaveIndication:
262
- this.emit('LeaveIndication', { ziGateObject });
263
- break;
264
- case constants_1.ZiGateMessageCode.DeviceAnnounce:
265
- this.emit('DeviceAnnounce', ziGateObject.payload.shortAddress, ziGateObject.payload.ieee);
266
- break;
267
- }
268
- }
269
- catch (error) {
270
- debug.error('Parsing error: %o', error);
271
- }
272
- }
273
- catch (error) {
274
- debug.error(`Error while parsing Frame '${error.stack}'`);
275
- }
276
- }
277
- waitressTimeoutFormatter(matcher, timeout) {
278
- return `${matcher} after ${timeout}ms`;
279
- }
280
- waitressValidator(ziGateObject, matcher) {
281
- const validator = (rule) => {
282
- try {
283
- let expectedValue;
284
- if (typeof rule.value === "undefined" && typeof rule.expectedProperty !== "undefined") {
285
- expectedValue = resolve(rule.expectedProperty, matcher.ziGateObject);
286
- }
287
- else if (typeof rule.value === "undefined" && typeof rule.expectedExtraParameter !== "undefined") {
288
- expectedValue = resolve(rule.expectedExtraParameter, matcher.extraParameters);
289
- }
290
- else {
291
- expectedValue = rule.value;
292
- }
293
- const receivedValue = resolve(rule.receivedProperty, ziGateObject);
294
- return rule.matcher(expectedValue, receivedValue);
295
- }
296
- catch (e) {
297
- return false;
298
- }
299
- };
300
- return matcher.rules.every(validator);
301
- }
302
- }
303
- exports.default = ZiGate;
1
+ "use strict";
2
+ /* istanbul ignore file */
3
+ /* eslint-disable */
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ const parser_delimiter_1 = require("@serialport/parser-delimiter");
9
+ const events_1 = require("events");
10
+ const debug_1 = require("../debug");
11
+ const serialPort_1 = require("../../serialPort");
12
+ const serialPortUtils_1 = __importDefault(require("../../serialPortUtils"));
13
+ const socketPortUtils_1 = __importDefault(require("../../socketPortUtils"));
14
+ const net_1 = __importDefault(require("net"));
15
+ const utils_1 = require("../../../utils");
16
+ const constants_1 = require("./constants");
17
+ const ziGateObject_1 = __importDefault(require("./ziGateObject"));
18
+ const zcl_1 = require("../../../zcl");
19
+ const waitress_1 = __importDefault(require("../../../utils/waitress"));
20
+ const commandType_1 = require("./commandType");
21
+ const frame_1 = __importDefault(require("./frame"));
22
+ const buffalo_1 = require("../../../buffalo");
23
+ const debug = (0, debug_1.Debug)('driver');
24
+ const autoDetectDefinitions = [
25
+ { manufacturer: 'zigate_PL2303', vendorId: '067b', productId: '2303' },
26
+ { manufacturer: 'zigate_cp2102', vendorId: '10c4', productId: 'ea60' },
27
+ ];
28
+ const timeouts = {
29
+ reset: 30000,
30
+ default: 10000,
31
+ };
32
+ function zeroPad(number, size) {
33
+ return (number).toString(16).padStart(size || 4, '0');
34
+ }
35
+ function resolve(path, obj, separator = '.') {
36
+ const properties = Array.isArray(path) ? path : path.split(separator);
37
+ return properties.reduce((prev, curr) => prev && prev[curr], obj);
38
+ }
39
+ class ZiGate extends events_1.EventEmitter {
40
+ constructor(path, serialPortOptions) {
41
+ super();
42
+ this.path = path;
43
+ this.baudRate = typeof serialPortOptions.baudRate === 'number' ? serialPortOptions.baudRate : 115200;
44
+ this.rtscts = typeof serialPortOptions.rtscts === 'boolean' ? serialPortOptions.rtscts : false;
45
+ this.portType = socketPortUtils_1.default.isTcpPath(path) ? 'socket' : 'serial';
46
+ this.initialized = false;
47
+ this.queue = new utils_1.Queue(1);
48
+ this.waitress = new waitress_1.default(this.waitressValidator, this.waitressTimeoutFormatter);
49
+ }
50
+ async sendCommand(code, payload, timeout, extraParameters, disableResponse = false) {
51
+ const waiters = [];
52
+ const waitersId = [];
53
+ return await this.queue.execute(async () => {
54
+ try {
55
+ debug.log('Send command \x1b[32m>>>> '
56
+ + constants_1.ZiGateCommandCode[code]
57
+ + ' 0x' + zeroPad(code)
58
+ + ' <<<<\x1b[0m \nPayload: %o', payload);
59
+ const ziGateObject = ziGateObject_1.default.createRequest(code, payload);
60
+ const frame = ziGateObject.toZiGateFrame();
61
+ debug.log('%o', frame);
62
+ const sendBuffer = frame.toBuffer();
63
+ debug.log('<-- send command ', sendBuffer);
64
+ debug.log(`DisableResponse: ${disableResponse}`);
65
+ if (!disableResponse && Array.isArray(ziGateObject.command.response)) {
66
+ ziGateObject.command.response.forEach((rules) => {
67
+ let waiter = this.waitress.waitFor({ ziGateObject, rules, extraParameters }, timeout || timeouts.default);
68
+ waitersId.push(waiter.ID);
69
+ waiters.push(waiter.start().promise);
70
+ });
71
+ }
72
+ let resultPromise;
73
+ if (ziGateObject.command.waitStatus !== false) {
74
+ const ruleStatus = [
75
+ { receivedProperty: 'code', matcher: commandType_1.equal, value: constants_1.ZiGateMessageCode.Status },
76
+ { receivedProperty: 'payload.packetType', matcher: commandType_1.equal, value: ziGateObject.code },
77
+ ];
78
+ const statusWaiter = this.waitress.waitFor({ ziGateObject, rules: ruleStatus }, timeout || timeouts.default).start();
79
+ resultPromise = statusWaiter.promise;
80
+ }
81
+ // @ts-ignore
82
+ this.portWrite.write(sendBuffer);
83
+ if (ziGateObject.command.waitStatus !== false) {
84
+ let statusResponse = await resultPromise;
85
+ if (statusResponse.payload.status !== constants_1.STATUS.E_SL_MSG_STATUS_SUCCESS) {
86
+ waitersId.map((id) => this.waitress.remove(id));
87
+ return Promise.reject(statusResponse);
88
+ }
89
+ else if (waiters.length === 0) {
90
+ return Promise.resolve(statusResponse);
91
+ }
92
+ }
93
+ return Promise.race(waiters);
94
+ }
95
+ catch (e) {
96
+ debug.error('sendCommand error:', e);
97
+ return Promise.reject(new Error('sendCommand error: ' + e));
98
+ }
99
+ });
100
+ }
101
+ static async isValidPath(path) {
102
+ return serialPortUtils_1.default.is(path, autoDetectDefinitions);
103
+ }
104
+ static async autoDetectPath() {
105
+ const paths = await serialPortUtils_1.default.find(autoDetectDefinitions);
106
+ return paths.length > 0 ? paths[0] : null;
107
+ }
108
+ open() {
109
+ return this.portType === 'serial' ? this.openSerialPort() : this.openSocketPort();
110
+ }
111
+ close() {
112
+ debug.info('close');
113
+ return new Promise((resolve, reject) => {
114
+ if (this.initialized) {
115
+ this.initialized = false;
116
+ this.portWrite = null;
117
+ if (this.portType === 'serial') {
118
+ this.serialPort.flush(() => {
119
+ this.serialPort.close((error) => {
120
+ this.serialPort = null;
121
+ error == null ?
122
+ resolve() :
123
+ reject(new Error(`Error while closing serialPort '${error}'`));
124
+ this.emit('close');
125
+ });
126
+ });
127
+ }
128
+ else {
129
+ // @ts-ignore
130
+ this.socketPort.destroy((error) => {
131
+ this.socketPort = null;
132
+ error == null ?
133
+ resolve() :
134
+ reject(new Error(`Error while closing serialPort '${error}'`));
135
+ this.emit('close');
136
+ });
137
+ }
138
+ }
139
+ else {
140
+ resolve();
141
+ this.emit('close');
142
+ }
143
+ });
144
+ }
145
+ waitFor(matcher, timeout = timeouts.default) {
146
+ return this.waitress.waitFor(matcher, timeout);
147
+ }
148
+ async openSerialPort() {
149
+ this.serialPort = new serialPort_1.SerialPort({
150
+ path: this.path,
151
+ baudRate: this.baudRate,
152
+ dataBits: 8,
153
+ parity: 'none',
154
+ stopBits: 1,
155
+ lock: false,
156
+ autoOpen: false
157
+ });
158
+ this.parser = this.serialPort.pipe(new parser_delimiter_1.DelimiterParser({ delimiter: [frame_1.default.STOP_BYTE], includeDelimiter: true }));
159
+ this.parser.on('data', this.onSerialData.bind(this));
160
+ this.portWrite = this.serialPort;
161
+ return new Promise((resolve, reject) => {
162
+ this.serialPort.open(async (err) => {
163
+ if (err) {
164
+ this.serialPort = null;
165
+ this.parser = null;
166
+ this.path = null;
167
+ this.initialized = false;
168
+ const error = `Error while opening serialPort '${err}'`;
169
+ debug.error(error);
170
+ reject(new Error(error));
171
+ }
172
+ else {
173
+ debug.log('Successfully connected ZiGate port \'' + this.path + '\'');
174
+ this.serialPort.on('error', (error) => {
175
+ debug.error(`serialPort error: ${error}`);
176
+ });
177
+ this.serialPort.on('close', this.onPortClose.bind(this));
178
+ this.initialized = true;
179
+ resolve();
180
+ }
181
+ });
182
+ });
183
+ }
184
+ async openSocketPort() {
185
+ const info = socketPortUtils_1.default.parseTcpPath(this.path);
186
+ debug.log(`Opening TCP socket with ${info.host}:${info.port}`);
187
+ this.socketPort = new net_1.default.Socket();
188
+ this.socketPort.setNoDelay(true);
189
+ this.socketPort.setKeepAlive(true, 15000);
190
+ this.parser = this.socketPort.pipe(new parser_delimiter_1.DelimiterParser({ delimiter: [frame_1.default.STOP_BYTE], includeDelimiter: true }));
191
+ this.parser.on('data', this.onSerialData.bind(this));
192
+ this.portWrite = this.socketPort;
193
+ return new Promise((resolve, reject) => {
194
+ this.socketPort.on('connect', function () {
195
+ debug.log('Socket connected');
196
+ });
197
+ // eslint-disable-next-line
198
+ const self = this;
199
+ this.socketPort.on('ready', async function () {
200
+ debug.log('Socket ready');
201
+ self.initialized = true;
202
+ resolve();
203
+ });
204
+ this.socketPort.once('close', this.onPortClose);
205
+ this.socketPort.on('error', (error) => {
206
+ debug.log('Socket error', error);
207
+ // reject(new Error(`Error while opening socket`));
208
+ reject();
209
+ self.initialized = false;
210
+ });
211
+ this.socketPort.connect(info.port, info.host);
212
+ });
213
+ }
214
+ onSerialError(err) {
215
+ debug.error('serial error: ', err);
216
+ }
217
+ onPortClose() {
218
+ debug.log('serial closed');
219
+ this.initialized = false;
220
+ this.emit('close');
221
+ }
222
+ onSerialData(buffer) {
223
+ try {
224
+ // debug.log(`--- parseNext `, buffer);
225
+ const frame = new frame_1.default(buffer);
226
+ if (!(frame instanceof frame_1.default))
227
+ return; // @Todo fix
228
+ const code = frame.readMsgCode();
229
+ const msgName = (constants_1.ZiGateMessageCode[code] ? constants_1.ZiGateMessageCode[code] : '') + ' 0x' + zeroPad(code);
230
+ debug.log(`--> parsed frame \x1b[1;34m>>>> ${msgName} <<<<\x1b[0m `);
231
+ try {
232
+ const ziGateObject = ziGateObject_1.default.fromZiGateFrame(frame);
233
+ debug.log('%o', ziGateObject.payload);
234
+ this.waitress.resolve(ziGateObject);
235
+ switch (code) {
236
+ case constants_1.ZiGateMessageCode.DataIndication:
237
+ switch (ziGateObject.payload.profileID) {
238
+ case 0x0000:
239
+ switch (ziGateObject.payload.clusterID) {
240
+ case 0x0013:
241
+ let networkAddress = ziGateObject.payload.payload.readUInt16LE(1);
242
+ let ieeeAddr = new buffalo_1.Buffalo(ziGateObject.payload.payload.slice(3, 11)).readIeeeAddr();
243
+ this.emit('DeviceAnnounce', networkAddress, ieeeAddr);
244
+ break;
245
+ }
246
+ break;
247
+ case 0x0104:
248
+ try {
249
+ const zclFrame = zcl_1.ZclFrame.fromBuffer(ziGateObject.payload.clusterID, ziGateObject.payload.payload);
250
+ this.emit('received', { ziGateObject, zclFrame });
251
+ }
252
+ catch (error) {
253
+ debug.error("could not parse zclFrame: " + error);
254
+ this.emit('receivedRaw', { ziGateObject });
255
+ }
256
+ break;
257
+ default:
258
+ debug.error("not implemented profile: " + ziGateObject.payload.profileID);
259
+ }
260
+ break;
261
+ case constants_1.ZiGateMessageCode.LeaveIndication:
262
+ this.emit('LeaveIndication', { ziGateObject });
263
+ break;
264
+ case constants_1.ZiGateMessageCode.DeviceAnnounce:
265
+ this.emit('DeviceAnnounce', ziGateObject.payload.shortAddress, ziGateObject.payload.ieee);
266
+ break;
267
+ }
268
+ }
269
+ catch (error) {
270
+ debug.error('Parsing error: %o', error);
271
+ }
272
+ }
273
+ catch (error) {
274
+ debug.error(`Error while parsing Frame '${error.stack}'`);
275
+ }
276
+ }
277
+ waitressTimeoutFormatter(matcher, timeout) {
278
+ return `${matcher} after ${timeout}ms`;
279
+ }
280
+ waitressValidator(ziGateObject, matcher) {
281
+ const validator = (rule) => {
282
+ try {
283
+ let expectedValue;
284
+ if (typeof rule.value === "undefined" && typeof rule.expectedProperty !== "undefined") {
285
+ expectedValue = resolve(rule.expectedProperty, matcher.ziGateObject);
286
+ }
287
+ else if (typeof rule.value === "undefined" && typeof rule.expectedExtraParameter !== "undefined") {
288
+ expectedValue = resolve(rule.expectedExtraParameter, matcher.extraParameters);
289
+ }
290
+ else {
291
+ expectedValue = rule.value;
292
+ }
293
+ const receivedValue = resolve(rule.receivedProperty, ziGateObject);
294
+ return rule.matcher(expectedValue, receivedValue);
295
+ }
296
+ catch (e) {
297
+ return false;
298
+ }
299
+ };
300
+ return matcher.rules.every(validator);
301
+ }
302
+ }
303
+ exports.default = ZiGate;
304
304
  //# sourceMappingURL=zigate.js.map