zigbee-herdsman 3.5.2 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/dependabot.yml +4 -0
- package/.github/workflows/ci.yml +3 -5
- package/.github/workflows/stale.yml +1 -1
- package/.github/workflows/typedoc.yaml +1 -1
- package/.release-please-manifest.json +1 -1
- package/.vscode/extensions.json +3 -0
- package/.vscode/settings.json +11 -0
- package/CHANGELOG.md +32 -0
- package/biome.json +89 -0
- package/dist/adapter/adapter.d.ts +11 -11
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/adapter/adapter.js +14 -14
- package/dist/adapter/adapterDiscovery.d.ts +6 -6
- package/dist/adapter/adapterDiscovery.d.ts.map +1 -1
- package/dist/adapter/adapterDiscovery.js +139 -141
- package/dist/adapter/adapterDiscovery.js.map +1 -1
- package/dist/adapter/const.d.ts +1 -1
- package/dist/adapter/const.js +2 -2
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +16 -16
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.js +95 -100
- package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
- package/dist/adapter/deconz/driver/constants.d.ts +5 -5
- package/dist/adapter/deconz/driver/constants.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/driver.d.ts +9 -9
- package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/driver.js +112 -106
- package/dist/adapter/deconz/driver/driver.js.map +1 -1
- package/dist/adapter/deconz/driver/frame.d.ts +1 -1
- package/dist/adapter/deconz/driver/frame.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/frame.js +1 -2
- package/dist/adapter/deconz/driver/frame.js.map +1 -1
- package/dist/adapter/deconz/driver/frameParser.d.ts +1 -1
- package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/frameParser.js +66 -70
- package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
- package/dist/adapter/deconz/driver/parser.d.ts +1 -1
- package/dist/adapter/deconz/driver/parser.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/parser.js +2 -2
- package/dist/adapter/deconz/driver/parser.js.map +1 -1
- package/dist/adapter/deconz/driver/writer.d.ts +2 -2
- package/dist/adapter/deconz/driver/writer.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/writer.js +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.d.ts +19 -19
- package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.js +117 -97
- package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
- package/dist/adapter/ember/adapter/endpoints.d.ts +1 -1
- package/dist/adapter/ember/adapter/endpoints.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.d.ts +5 -5
- package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.js +2 -2
- package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
- package/dist/adapter/ember/adapter/tokensManager.d.ts +3 -3
- package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/tokensManager.js +20 -23
- package/dist/adapter/ember/adapter/tokensManager.js.map +1 -1
- package/dist/adapter/ember/enums.d.ts +4 -4
- package/dist/adapter/ember/enums.d.ts.map +1 -1
- package/dist/adapter/ember/enums.js +4 -6
- package/dist/adapter/ember/enums.js.map +1 -1
- package/dist/adapter/ember/ezsp/buffalo.d.ts +4 -4
- package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -1
- package/dist/adapter/ember/ezsp/buffalo.js +30 -32
- package/dist/adapter/ember/ezsp/buffalo.js.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.d.ts +46 -46
- package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.js +85 -111
- package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
- package/dist/adapter/ember/ezspError.d.ts +1 -1
- package/dist/adapter/ember/types.d.ts +14 -14
- package/dist/adapter/ember/types.d.ts.map +1 -1
- package/dist/adapter/ember/uart/ash.d.ts +5 -5
- package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
- package/dist/adapter/ember/uart/ash.js +80 -71
- package/dist/adapter/ember/uart/ash.js.map +1 -1
- package/dist/adapter/ember/uart/parser.d.ts +2 -2
- package/dist/adapter/ember/uart/parser.d.ts.map +1 -1
- package/dist/adapter/ember/uart/parser.js +2 -1
- package/dist/adapter/ember/uart/parser.js.map +1 -1
- package/dist/adapter/ember/uart/queues.js +27 -29
- package/dist/adapter/ember/uart/queues.js.map +1 -1
- package/dist/adapter/ember/uart/writer.d.ts +1 -1
- package/dist/adapter/ember/uart/writer.d.ts.map +1 -1
- package/dist/adapter/ember/uart/writer.js +3 -5
- package/dist/adapter/ember/uart/writer.js.map +1 -1
- package/dist/adapter/ember/utils/initters.d.ts +2 -2
- package/dist/adapter/ember/utils/initters.d.ts.map +1 -1
- package/dist/adapter/ember/utils/initters.js +1 -1
- package/dist/adapter/ember/utils/math.js +1 -1
- package/dist/adapter/events.d.ts +1 -1
- package/dist/adapter/events.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/backup.d.ts +3 -3
- package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/backup.js +8 -10
- package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +12 -12
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.js +45 -44
- package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
- package/dist/adapter/ezsp/driver/driver.d.ts +12 -12
- package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/driver.js +148 -141
- package/dist/adapter/ezsp/driver/driver.js.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.d.ts +7 -7
- package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.js +61 -59
- package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
- package/dist/adapter/ezsp/driver/frame.js +2 -2
- package/dist/adapter/ezsp/driver/index.d.ts +2 -2
- package/dist/adapter/ezsp/driver/multicast.d.ts +8 -5
- package/dist/adapter/ezsp/driver/multicast.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/multicast.js +9 -9
- package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
- package/dist/adapter/ezsp/driver/parser.d.ts +1 -1
- package/dist/adapter/ezsp/driver/parser.js +3 -3
- package/dist/adapter/ezsp/driver/types/basic.d.ts +5 -5
- package/dist/adapter/ezsp/driver/types/basic.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/types/basic.js +12 -33
- package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/index.d.ts +3 -3
- package/dist/adapter/ezsp/driver/types/index.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/types/index.js +8 -9
- package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/named.d.ts +2 -2
- package/dist/adapter/ezsp/driver/types/named.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/types/named.js +8 -11
- package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/struct.d.ts +2 -2
- package/dist/adapter/ezsp/driver/types/struct.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/types/struct.js +207 -214
- package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
- package/dist/adapter/ezsp/driver/uart.d.ts +2 -2
- package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/uart.js +48 -37
- package/dist/adapter/ezsp/driver/uart.js.map +1 -1
- package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +3 -3
- package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +16 -34
- package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +1 -1
- package/dist/adapter/ezsp/driver/utils/index.d.ts +4 -4
- package/dist/adapter/ezsp/driver/utils/index.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/utils/index.js +4 -4
- package/dist/adapter/ezsp/driver/utils/index.js.map +1 -1
- package/dist/adapter/ezsp/driver/writer.d.ts +1 -1
- package/dist/adapter/ezsp/driver/writer.js +2 -2
- package/dist/adapter/index.d.ts +3 -3
- package/dist/adapter/serialPort.d.ts +3 -3
- package/dist/adapter/serialPort.d.ts.map +1 -1
- package/dist/adapter/serialPort.js +1 -0
- package/dist/adapter/serialPort.js.map +1 -1
- package/dist/adapter/socketPortUtils.js +3 -3
- package/dist/adapter/tstype.d.ts +6 -6
- package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +4 -4
- package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.js +106 -119
- package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +10 -10
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +23 -24
- package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +1 -1
- package/dist/adapter/z-stack/adapter/manager.d.ts +6 -6
- package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/manager.js +116 -127
- package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
- package/dist/adapter/z-stack/adapter/tstype.d.ts +3 -3
- package/dist/adapter/z-stack/adapter/tstype.js +3 -3
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +10 -10
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.js +125 -137
- package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
- package/dist/adapter/z-stack/constants/common.d.ts.map +1 -1
- package/dist/adapter/z-stack/constants/common.js +0 -3
- package/dist/adapter/z-stack/constants/common.js.map +1 -1
- package/dist/adapter/z-stack/constants/index.d.ts +10 -10
- package/dist/adapter/z-stack/constants/index.d.ts.map +1 -1
- package/dist/adapter/z-stack/constants/index.js +2 -2
- package/dist/adapter/z-stack/constants/index.js.map +1 -1
- package/dist/adapter/z-stack/constants/utils.d.ts +1 -1
- package/dist/adapter/z-stack/constants/utils.js +2 -2
- package/dist/adapter/z-stack/constants/utils.js.map +1 -1
- package/dist/adapter/z-stack/models/startup-options.d.ts +2 -2
- package/dist/adapter/z-stack/models/startup-options.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +4 -5
- package/dist/adapter/z-stack/structs/entries/address-manager-entry.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +2 -2
- package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/address-manager-table.js +3 -4
- package/dist/adapter/z-stack/structs/entries/address-manager-table.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +1 -2
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +2 -2
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +3 -4
- package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +6 -7
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +2 -2
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +3 -4
- package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/channel-list.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/channel-list.js +1 -2
- package/dist/adapter/z-stack/structs/entries/channel-list.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/has-configured.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/has-configured.js +2 -3
- package/dist/adapter/z-stack/structs/entries/has-configured.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/index.d.ts +16 -16
- package/dist/adapter/z-stack/structs/entries/nib.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/nib.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nib.js +49 -50
- package/dist/adapter/z-stack/structs/entries/nib.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +1 -2
- package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-key.js +1 -2
- package/dist/adapter/z-stack/structs/entries/nwk-key.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +1 -2
- package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +3 -4
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +2 -2
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +3 -4
- package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +1 -1
- package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +4 -5
- package/dist/adapter/z-stack/structs/entries/security-manager-entry.js.map +1 -1
- package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +2 -2
- package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/entries/security-manager-table.js +3 -4
- package/dist/adapter/z-stack/structs/entries/security-manager-table.js.map +1 -1
- package/dist/adapter/z-stack/structs/index.d.ts +4 -4
- package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +2 -2
- package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/struct.d.ts +8 -8
- package/dist/adapter/z-stack/structs/struct.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/struct.js +42 -43
- package/dist/adapter/z-stack/structs/struct.js.map +1 -1
- package/dist/adapter/z-stack/structs/table.d.ts +3 -3
- package/dist/adapter/z-stack/structs/table.d.ts.map +1 -1
- package/dist/adapter/z-stack/structs/table.js +10 -10
- package/dist/adapter/z-stack/structs/table.js.map +1 -1
- package/dist/adapter/z-stack/unpi/frame.d.ts +1 -1
- package/dist/adapter/z-stack/unpi/frame.d.ts.map +1 -1
- package/dist/adapter/z-stack/unpi/frame.js +2 -4
- package/dist/adapter/z-stack/unpi/frame.js.map +1 -1
- package/dist/adapter/z-stack/unpi/index.d.ts +4 -4
- package/dist/adapter/z-stack/unpi/parser.d.ts +1 -1
- package/dist/adapter/z-stack/unpi/parser.js +3 -3
- package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
- package/dist/adapter/z-stack/unpi/writer.d.ts +2 -2
- package/dist/adapter/z-stack/unpi/writer.d.ts.map +1 -1
- package/dist/adapter/z-stack/unpi/writer.js +1 -1
- package/dist/adapter/z-stack/utils/index.d.ts +2 -2
- package/dist/adapter/z-stack/utils/network-options.d.ts +1 -1
- package/dist/adapter/z-stack/utils/network-options.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +3 -3
- package/dist/adapter/z-stack/znp/buffaloZnp.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/buffaloZnp.js +34 -20
- package/dist/adapter/z-stack/znp/buffaloZnp.js.map +1 -1
- package/dist/adapter/z-stack/znp/definition.d.ts +2 -2
- package/dist/adapter/z-stack/znp/definition.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/definition.js +1111 -1111
- package/dist/adapter/z-stack/znp/index.d.ts +2 -2
- package/dist/adapter/z-stack/znp/tstype.d.ts +7 -7
- package/dist/adapter/z-stack/znp/tstype.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/utils.d.ts +1 -1
- package/dist/adapter/z-stack/znp/utils.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/utils.js +2 -2
- package/dist/adapter/z-stack/znp/znp.d.ts +7 -7
- package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/znp.js +46 -45
- package/dist/adapter/z-stack/znp/znp.js.map +1 -1
- package/dist/adapter/z-stack/znp/zpiObject.d.ts +8 -8
- package/dist/adapter/z-stack/znp/zpiObject.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/zpiObject.js +6 -6
- package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
- package/dist/adapter/zboss/adapter/zbossAdapter.d.ts +11 -11
- package/dist/adapter/zboss/adapter/zbossAdapter.d.ts.map +1 -1
- package/dist/adapter/zboss/adapter/zbossAdapter.js +37 -36
- package/dist/adapter/zboss/adapter/zbossAdapter.js.map +1 -1
- package/dist/adapter/zboss/commands.d.ts +4 -6
- package/dist/adapter/zboss/commands.d.ts.map +1 -1
- package/dist/adapter/zboss/commands.js +321 -287
- package/dist/adapter/zboss/commands.js.map +1 -1
- package/dist/adapter/zboss/driver.d.ts +9 -9
- package/dist/adapter/zboss/driver.d.ts.map +1 -1
- package/dist/adapter/zboss/driver.js +25 -25
- package/dist/adapter/zboss/driver.js.map +1 -1
- package/dist/adapter/zboss/frame.d.ts +9 -9
- package/dist/adapter/zboss/frame.d.ts.map +1 -1
- package/dist/adapter/zboss/frame.js +15 -15
- package/dist/adapter/zboss/frame.js.map +1 -1
- package/dist/adapter/zboss/reader.d.ts +2 -2
- package/dist/adapter/zboss/reader.d.ts.map +1 -1
- package/dist/adapter/zboss/reader.js +6 -5
- package/dist/adapter/zboss/reader.js.map +1 -1
- package/dist/adapter/zboss/uart.d.ts +3 -3
- package/dist/adapter/zboss/uart.d.ts.map +1 -1
- package/dist/adapter/zboss/uart.js +36 -36
- package/dist/adapter/zboss/uart.js.map +1 -1
- package/dist/adapter/zboss/writer.d.ts +1 -1
- package/dist/adapter/zboss/writer.d.ts.map +1 -1
- package/dist/adapter/zboss/writer.js +3 -5
- package/dist/adapter/zboss/writer.js.map +1 -1
- package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.js +2 -2
- package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.js.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +14 -14
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.js +52 -53
- package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
- package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +6 -6
- package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/buffaloZiGate.js +41 -23
- package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
- package/dist/adapter/zigate/driver/commandType.d.ts +2 -2
- package/dist/adapter/zigate/driver/commandType.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/commandType.js +37 -37
- package/dist/adapter/zigate/driver/commandType.js.map +1 -1
- package/dist/adapter/zigate/driver/constants.d.ts +27 -200
- package/dist/adapter/zigate/driver/constants.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/constants.js +40 -236
- package/dist/adapter/zigate/driver/constants.js.map +1 -1
- package/dist/adapter/zigate/driver/frame.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/frame.js +4 -3
- package/dist/adapter/zigate/driver/frame.js.map +1 -1
- package/dist/adapter/zigate/driver/messageType.d.ts +1 -1
- package/dist/adapter/zigate/driver/messageType.js +76 -76
- package/dist/adapter/zigate/driver/ziGateObject.d.ts +3 -3
- package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/ziGateObject.js +7 -6
- package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
- package/dist/adapter/zigate/driver/zigate.d.ts +8 -8
- package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/zigate.js +59 -54
- package/dist/adapter/zigate/driver/zigate.js.map +1 -1
- package/dist/adapter/zoh/adapter/utils.js +1 -1
- package/dist/adapter/zoh/adapter/zohAdapter.d.ts +13 -13
- package/dist/adapter/zoh/adapter/zohAdapter.d.ts.map +1 -1
- package/dist/adapter/zoh/adapter/zohAdapter.js +101 -67
- package/dist/adapter/zoh/adapter/zohAdapter.js.map +1 -1
- package/dist/buffalo/buffalo.d.ts +2 -2
- package/dist/buffalo/buffalo.js +4 -4
- package/dist/buffalo/buffalo.js.map +1 -1
- package/dist/buffalo/index.d.ts +1 -1
- package/dist/controller/controller.d.ts +7 -7
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/controller/controller.js +94 -98
- package/dist/controller/controller.js.map +1 -1
- package/dist/controller/database.d.ts +1 -1
- package/dist/controller/database.d.ts.map +1 -1
- package/dist/controller/database.js +9 -9
- package/dist/controller/database.js.map +1 -1
- package/dist/controller/events.d.ts +6 -6
- package/dist/controller/events.d.ts.map +1 -1
- package/dist/controller/greenPower.d.ts +21 -21
- package/dist/controller/greenPower.d.ts.map +1 -1
- package/dist/controller/greenPower.js +41 -41
- package/dist/controller/greenPower.js.map +1 -1
- package/dist/controller/helpers/index.d.ts +1 -1
- package/dist/controller/helpers/request.d.ts +2 -2
- package/dist/controller/helpers/request.d.ts.map +1 -1
- package/dist/controller/helpers/request.js +31 -27
- package/dist/controller/helpers/request.js.map +1 -1
- package/dist/controller/helpers/requestQueue.d.ts +3 -3
- package/dist/controller/helpers/requestQueue.d.ts.map +1 -1
- package/dist/controller/helpers/requestQueue.js +20 -20
- package/dist/controller/helpers/requestQueue.js.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.d.ts +2 -2
- package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.js +1 -1
- package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
- package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +6 -4
- package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts.map +1 -1
- package/dist/controller/helpers/zclTransactionSequenceNumber.js +6 -5
- package/dist/controller/helpers/zclTransactionSequenceNumber.js.map +1 -1
- package/dist/controller/index.d.ts +1 -1
- package/dist/controller/model/device.d.ts +23 -19
- package/dist/controller/model/device.d.ts.map +1 -1
- package/dist/controller/model/device.js +153 -128
- package/dist/controller/model/device.js.map +1 -1
- package/dist/controller/model/endpoint.d.ts +11 -11
- package/dist/controller/model/endpoint.d.ts.map +1 -1
- package/dist/controller/model/endpoint.js +84 -67
- package/dist/controller/model/endpoint.js.map +1 -1
- package/dist/controller/model/entity.d.ts +3 -3
- package/dist/controller/model/entity.d.ts.map +1 -1
- package/dist/controller/model/group.d.ts +4 -4
- package/dist/controller/model/group.d.ts.map +1 -1
- package/dist/controller/model/group.js +21 -9
- package/dist/controller/model/group.js.map +1 -1
- package/dist/controller/model/index.d.ts +4 -4
- package/dist/controller/touchlink.d.ts +1 -1
- package/dist/controller/touchlink.d.ts.map +1 -1
- package/dist/controller/touchlink.js +11 -11
- package/dist/controller/tstype.d.ts +3 -3
- package/dist/index.d.ts +10 -10
- package/dist/models/backup-storage-legacy.d.ts +14 -16
- package/dist/models/backup-storage-legacy.d.ts.map +1 -1
- package/dist/models/backup-storage-unified.d.ts +1 -1
- package/dist/models/backup.d.ts +2 -2
- package/dist/models/backup.d.ts.map +1 -1
- package/dist/models/index.d.ts +4 -4
- package/dist/utils/backup.d.ts +1 -1
- package/dist/utils/backup.d.ts.map +1 -1
- package/dist/utils/backup.js +26 -26
- package/dist/utils/backup.js.map +1 -1
- package/dist/utils/index.d.ts +5 -5
- package/dist/utils/logger.js +3 -3
- package/dist/utils/patchBigIntSerialization.js +1 -1
- package/dist/utils/patchBigIntSerialization.js.map +1 -1
- package/dist/utils/queue.d.ts.map +1 -1
- package/dist/utils/queue.js +1 -0
- package/dist/utils/queue.js.map +1 -1
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +5 -4
- package/dist/utils/utils.js.map +1 -1
- package/dist/utils/waitress.d.ts +1 -1
- package/dist/utils/waitress.js +3 -3
- package/dist/zspec/consts.d.ts +1 -1
- package/dist/zspec/consts.d.ts.map +1 -1
- package/dist/zspec/consts.js +1 -1
- package/dist/zspec/index.d.ts +3 -3
- package/dist/zspec/tstypes.d.ts +1 -1
- package/dist/zspec/utils.d.ts +4 -4
- package/dist/zspec/utils.d.ts.map +1 -1
- package/dist/zspec/utils.js +9 -13
- package/dist/zspec/utils.js.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.d.ts +3 -3
- package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.js +127 -84
- package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
- package/dist/zspec/zcl/definition/cluster.d.ts +1 -1
- package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/cluster.js +1280 -911
- package/dist/zspec/zcl/definition/cluster.js.map +1 -1
- package/dist/zspec/zcl/definition/consts.js +7 -7
- package/dist/zspec/zcl/definition/foundation.d.ts +3 -3
- package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/foundation.js +88 -89
- package/dist/zspec/zcl/definition/foundation.js.map +1 -1
- package/dist/zspec/zcl/definition/manufacturerCode.d.ts +1 -1
- package/dist/zspec/zcl/definition/manufacturerCode.js +1 -1
- package/dist/zspec/zcl/definition/manufacturerCode.js.map +1 -1
- package/dist/zspec/zcl/definition/status.d.ts +3 -3
- package/dist/zspec/zcl/definition/status.js +3 -3
- package/dist/zspec/zcl/definition/tstype.d.ts +3 -3
- package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
- package/dist/zspec/zcl/index.d.ts +10 -10
- package/dist/zspec/zcl/utils.d.ts +3 -3
- package/dist/zspec/zcl/utils.d.ts.map +1 -1
- package/dist/zspec/zcl/utils.js +18 -21
- package/dist/zspec/zcl/utils.js.map +1 -1
- package/dist/zspec/zcl/zclFrame.d.ts +7 -7
- package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
- package/dist/zspec/zcl/zclFrame.js +38 -41
- package/dist/zspec/zcl/zclFrame.js.map +1 -1
- package/dist/zspec/zcl/zclHeader.d.ts +2 -2
- package/dist/zspec/zcl/zclHeader.d.ts.map +1 -1
- package/dist/zspec/zcl/zclHeader.js +3 -3
- package/dist/zspec/zcl/zclStatusError.d.ts +1 -1
- package/dist/zspec/zdo/buffaloZdo.d.ts +7 -7
- package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -1
- package/dist/zspec/zdo/buffaloZdo.js +4 -4
- package/dist/zspec/zdo/buffaloZdo.js.map +1 -1
- package/dist/zspec/zdo/definition/status.d.ts +1 -1
- package/dist/zspec/zdo/definition/status.js +1 -1
- package/dist/zspec/zdo/definition/tstypes.d.ts +48 -48
- package/dist/zspec/zdo/definition/tstypes.d.ts.map +1 -1
- package/dist/zspec/zdo/index.d.ts +7 -7
- package/dist/zspec/zdo/utils.d.ts +2 -2
- package/dist/zspec/zdo/utils.d.ts.map +1 -1
- package/dist/zspec/zdo/utils.js +1 -1
- package/dist/zspec/zdo/utils.js.map +1 -1
- package/dist/zspec/zdo/zdoStatusError.d.ts +1 -1
- package/examples/join-and-log.js +5 -5
- package/package.json +4 -11
- package/src/adapter/adapter.ts +189 -0
- package/src/adapter/adapterDiscovery.ts +653 -0
- package/src/adapter/const.ts +12 -0
- package/src/adapter/deconz/adapter/deconzAdapter.ts +768 -0
- package/src/adapter/deconz/driver/constants.ts +180 -0
- package/src/adapter/deconz/driver/driver.ts +900 -0
- package/src/adapter/deconz/driver/frame.ts +11 -0
- package/src/adapter/deconz/driver/frameParser.ts +557 -0
- package/src/adapter/deconz/driver/parser.ts +45 -0
- package/src/adapter/deconz/driver/writer.ts +22 -0
- package/src/adapter/deconz/types.d.ts +13 -0
- package/src/adapter/ember/adapter/emberAdapter.ts +2266 -0
- package/src/adapter/ember/adapter/endpoints.ts +86 -0
- package/src/adapter/ember/adapter/oneWaitress.ts +322 -0
- package/src/adapter/ember/adapter/tokensManager.ts +782 -0
- package/src/adapter/ember/consts.ts +178 -0
- package/src/adapter/ember/enums.ts +2123 -0
- package/src/adapter/ember/ezsp/buffalo.ts +1397 -0
- package/src/adapter/ember/ezsp/consts.ts +148 -0
- package/src/adapter/ember/ezsp/enums.ts +1087 -0
- package/src/adapter/ember/ezsp/ezsp.ts +8985 -0
- package/src/adapter/ember/ezspError.ts +10 -0
- package/src/adapter/ember/types.ts +866 -0
- package/src/adapter/ember/uart/ash.ts +1969 -0
- package/src/adapter/ember/uart/consts.ts +109 -0
- package/src/adapter/ember/uart/enums.ts +192 -0
- package/src/adapter/ember/uart/parser.ts +48 -0
- package/src/adapter/ember/uart/queues.ts +247 -0
- package/src/adapter/ember/uart/writer.ts +53 -0
- package/src/adapter/ember/utils/initters.ts +58 -0
- package/src/adapter/ember/utils/math.ts +73 -0
- package/src/adapter/events.ts +21 -0
- package/src/adapter/ezsp/adapter/backup.ts +109 -0
- package/src/adapter/ezsp/adapter/ezspAdapter.ts +614 -0
- package/src/adapter/ezsp/driver/commands.ts +2497 -0
- package/src/adapter/ezsp/driver/consts.ts +11 -0
- package/src/adapter/ezsp/driver/driver.ts +1002 -0
- package/src/adapter/ezsp/driver/ezsp.ts +802 -0
- package/src/adapter/ezsp/driver/frame.ts +101 -0
- package/src/adapter/ezsp/driver/index.ts +4 -0
- package/src/adapter/ezsp/driver/multicast.ts +78 -0
- package/src/adapter/ezsp/driver/parser.ts +81 -0
- package/src/adapter/ezsp/driver/types/basic.ts +201 -0
- package/src/adapter/ezsp/driver/types/index.ts +239 -0
- package/src/adapter/ezsp/driver/types/named.ts +2330 -0
- package/src/adapter/ezsp/driver/types/struct.ts +844 -0
- package/src/adapter/ezsp/driver/uart.ts +460 -0
- package/src/adapter/ezsp/driver/utils/crc16ccitt.ts +44 -0
- package/src/adapter/ezsp/driver/utils/index.ts +32 -0
- package/src/adapter/ezsp/driver/writer.ts +64 -0
- package/src/adapter/index.ts +3 -0
- package/src/adapter/serialPort.ts +58 -0
- package/src/adapter/socketPortUtils.ts +16 -0
- package/src/adapter/tstype.ts +78 -0
- package/src/adapter/z-stack/adapter/adapter-backup.ts +519 -0
- package/src/adapter/z-stack/adapter/adapter-nv-memory.ts +457 -0
- package/src/adapter/z-stack/adapter/endpoints.ts +57 -0
- package/src/adapter/z-stack/adapter/manager.ts +544 -0
- package/src/adapter/z-stack/adapter/tstype.ts +6 -0
- package/src/adapter/z-stack/adapter/zStackAdapter.ts +1190 -0
- package/src/adapter/z-stack/constants/af.ts +27 -0
- package/src/adapter/z-stack/constants/common.ts +285 -0
- package/src/adapter/z-stack/constants/dbg.ts +23 -0
- package/src/adapter/z-stack/constants/index.ts +11 -0
- package/src/adapter/z-stack/constants/mac.ts +128 -0
- package/src/adapter/z-stack/constants/sapi.ts +25 -0
- package/src/adapter/z-stack/constants/sys.ts +72 -0
- package/src/adapter/z-stack/constants/util.ts +82 -0
- package/src/adapter/z-stack/constants/utils.ts +14 -0
- package/src/adapter/z-stack/constants/zdo.ts +103 -0
- package/src/adapter/z-stack/models/startup-options.ts +13 -0
- package/src/adapter/z-stack/structs/entries/address-manager-entry.ts +44 -0
- package/src/adapter/z-stack/structs/entries/address-manager-table.ts +19 -0
- package/src/adapter/z-stack/structs/entries/aps-link-key-data-entry.ts +12 -0
- package/src/adapter/z-stack/structs/entries/aps-link-key-data-table.ts +21 -0
- package/src/adapter/z-stack/structs/entries/aps-tc-link-key-entry.ts +19 -0
- package/src/adapter/z-stack/structs/entries/aps-tc-link-key-table.ts +21 -0
- package/src/adapter/z-stack/structs/entries/channel-list.ts +8 -0
- package/src/adapter/z-stack/structs/entries/has-configured.ts +16 -0
- package/src/adapter/z-stack/structs/entries/index.ts +16 -0
- package/src/adapter/z-stack/structs/entries/nib.ts +66 -0
- package/src/adapter/z-stack/structs/entries/nwk-key-descriptor.ts +15 -0
- package/src/adapter/z-stack/structs/entries/nwk-key.ts +13 -0
- package/src/adapter/z-stack/structs/entries/nwk-pan-id.ts +8 -0
- package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.ts +20 -0
- package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.ts +19 -0
- package/src/adapter/z-stack/structs/entries/security-manager-entry.ts +33 -0
- package/src/adapter/z-stack/structs/entries/security-manager-table.ts +22 -0
- package/src/adapter/z-stack/structs/index.ts +4 -0
- package/src/adapter/z-stack/structs/serializable-memory-object.ts +14 -0
- package/src/adapter/z-stack/structs/struct.ts +367 -0
- package/src/adapter/z-stack/structs/table.ts +198 -0
- package/src/adapter/z-stack/unpi/constants.ts +33 -0
- package/src/adapter/z-stack/unpi/frame.ts +62 -0
- package/src/adapter/z-stack/unpi/index.ts +4 -0
- package/src/adapter/z-stack/unpi/parser.ts +56 -0
- package/src/adapter/z-stack/unpi/writer.ts +21 -0
- package/src/adapter/z-stack/utils/channel-list.ts +40 -0
- package/src/adapter/z-stack/utils/index.ts +2 -0
- package/src/adapter/z-stack/utils/network-options.ts +26 -0
- package/src/adapter/z-stack/znp/buffaloZnp.ts +175 -0
- package/src/adapter/z-stack/znp/definition.ts +2713 -0
- package/src/adapter/z-stack/znp/index.ts +2 -0
- package/src/adapter/z-stack/znp/parameterType.ts +22 -0
- package/src/adapter/z-stack/znp/tstype.ts +44 -0
- package/src/adapter/z-stack/znp/utils.ts +10 -0
- package/src/adapter/z-stack/znp/znp.ts +342 -0
- package/src/adapter/z-stack/znp/zpiObject.ts +148 -0
- package/src/adapter/zboss/adapter/zbossAdapter.ts +527 -0
- package/src/adapter/zboss/commands.ts +1184 -0
- package/src/adapter/zboss/consts.ts +9 -0
- package/src/adapter/zboss/driver.ts +423 -0
- package/src/adapter/zboss/enums.ts +360 -0
- package/src/adapter/zboss/frame.ts +227 -0
- package/src/adapter/zboss/reader.ts +65 -0
- package/src/adapter/zboss/types.ts +0 -0
- package/src/adapter/zboss/uart.ts +428 -0
- package/src/adapter/zboss/utils.ts +58 -0
- package/src/adapter/zboss/writer.ts +49 -0
- package/src/adapter/zigate/adapter/patchZdoBuffaloBE.ts +27 -0
- package/src/adapter/zigate/adapter/zigateAdapter.ts +618 -0
- package/src/adapter/zigate/driver/LICENSE +17 -0
- package/src/adapter/zigate/driver/buffaloZiGate.ts +212 -0
- package/src/adapter/zigate/driver/commandType.ts +418 -0
- package/src/adapter/zigate/driver/constants.ts +150 -0
- package/src/adapter/zigate/driver/frame.ts +197 -0
- package/src/adapter/zigate/driver/messageType.ts +287 -0
- package/src/adapter/zigate/driver/parameterType.ts +32 -0
- package/src/adapter/zigate/driver/ziGateObject.ts +146 -0
- package/src/adapter/zigate/driver/zigate.ts +426 -0
- package/src/adapter/zoh/adapter/utils.ts +27 -0
- package/src/adapter/zoh/adapter/zohAdapter.ts +837 -0
- package/src/buffalo/buffalo.ts +335 -0
- package/src/buffalo/index.ts +1 -0
- package/src/controller/controller.ts +1048 -0
- package/src/controller/database.ts +124 -0
- package/src/controller/events.ts +51 -0
- package/src/controller/greenPower.ts +603 -0
- package/src/controller/helpers/index.ts +1 -0
- package/src/controller/helpers/request.ts +94 -0
- package/src/controller/helpers/requestQueue.ts +125 -0
- package/src/controller/helpers/zclFrameConverter.ts +51 -0
- package/src/controller/helpers/zclTransactionSequenceNumber.ts +19 -0
- package/src/controller/index.ts +6 -0
- package/src/controller/model/device.ts +1320 -0
- package/src/controller/model/endpoint.ts +1040 -0
- package/src/controller/model/entity.ts +23 -0
- package/src/controller/model/group.ts +333 -0
- package/src/controller/model/index.ts +4 -0
- package/src/controller/touchlink.ts +189 -0
- package/src/controller/tstype.ts +39 -0
- package/src/index.ts +12 -0
- package/src/models/backup-storage-legacy.ts +48 -0
- package/src/models/backup-storage-unified.ts +47 -0
- package/src/models/backup.ts +37 -0
- package/src/models/index.ts +5 -0
- package/src/models/network-options.ts +11 -0
- package/src/utils/backup.ts +152 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/logger.ts +20 -0
- package/src/utils/patchBigIntSerialization.ts +8 -0
- package/src/utils/queue.ts +76 -0
- package/src/utils/types.d.ts +3 -0
- package/src/utils/utils.ts +20 -0
- package/src/utils/wait.ts +5 -0
- package/src/utils/waitress.ts +95 -0
- package/src/zspec/consts.ts +84 -0
- package/src/zspec/enums.ts +22 -0
- package/src/zspec/index.ts +3 -0
- package/src/zspec/tstypes.ts +18 -0
- package/src/zspec/utils.ts +308 -0
- package/src/zspec/zcl/buffaloZcl.ts +1133 -0
- package/src/zspec/zcl/definition/cluster.ts +5766 -0
- package/src/zspec/zcl/definition/consts.ts +24 -0
- package/src/zspec/zcl/definition/enums.ts +194 -0
- package/src/zspec/zcl/definition/foundation.ts +301 -0
- package/src/zspec/zcl/definition/manufacturerCode.ts +729 -0
- package/src/zspec/zcl/definition/status.ts +69 -0
- package/src/zspec/zcl/definition/tstype.ts +268 -0
- package/src/zspec/zcl/index.ts +10 -0
- package/src/zspec/zcl/utils.ts +342 -0
- package/src/zspec/zcl/zclFrame.ts +336 -0
- package/src/zspec/zcl/zclHeader.ts +102 -0
- package/src/zspec/zcl/zclStatusError.ts +10 -0
- package/src/zspec/zdo/buffaloZdo.ts +2345 -0
- package/src/zspec/zdo/definition/clusters.ts +722 -0
- package/src/zspec/zdo/definition/consts.ts +16 -0
- package/src/zspec/zdo/definition/enums.ts +99 -0
- package/src/zspec/zdo/definition/status.ts +105 -0
- package/src/zspec/zdo/definition/tstypes.ts +1062 -0
- package/src/zspec/zdo/index.ts +7 -0
- package/src/zspec/zdo/utils.ts +76 -0
- package/src/zspec/zdo/zdoStatusError.ts +10 -0
- package/test/adapter/adapter.test.ts +1062 -0
- package/test/adapter/ember/ash.test.ts +337 -0
- package/test/adapter/ember/consts.ts +131 -0
- package/test/adapter/ember/emberAdapter.test.ts +3449 -0
- package/test/adapter/ember/ezsp.test.ts +386 -0
- package/test/adapter/ember/ezspBuffalo.test.ts +92 -0
- package/test/adapter/ember/ezspError.test.ts +11 -0
- package/test/adapter/ember/math.test.ts +205 -0
- package/test/adapter/ezsp/frame.test.ts +29 -0
- package/test/adapter/ezsp/uart.test.ts +180 -0
- package/test/adapter/z-stack/adapter.test.ts +3985 -0
- package/test/adapter/z-stack/constants.test.ts +32 -0
- package/test/adapter/z-stack/structs.test.ts +114 -0
- package/test/adapter/z-stack/unpi.test.ts +212 -0
- package/test/adapter/z-stack/znp.test.ts +1284 -0
- package/test/adapter/zboss/fixZdoResponse.test.ts +178 -0
- package/test/adapter/zigate/patchZdoBuffaloBE.test.ts +80 -0
- package/test/adapter/zigate/zdo.test.ts +187 -0
- package/test/adapter/zoh/utils.test.ts +35 -0
- package/test/adapter/zoh/zohAdapter.test.ts +1306 -0
- package/test/buffalo.test.ts +430 -0
- package/test/controller.test.ts +10005 -0
- package/test/greenpower.test.ts +1421 -0
- package/test/mockAdapters.ts +65 -0
- package/test/mockDevices.ts +472 -0
- package/test/testUtils.ts +20 -0
- package/test/tsconfig.json +10 -0
- package/test/utils/math.ts +19 -0
- package/test/utils.test.ts +227 -0
- package/test/vitest.config.mts +25 -0
- package/test/zcl.test.ts +2832 -0
- package/test/zspec/utils.test.ts +131 -0
- package/test/zspec/zcl/buffalo.test.ts +1231 -0
- package/test/zspec/zcl/frame.test.ts +925 -0
- package/test/zspec/zcl/utils.test.ts +280 -0
- package/test/zspec/zdo/buffalo.test.ts +1849 -0
- package/test/zspec/zdo/utils.test.ts +240 -0
- package/.github/workflows/update-dependencies.yml +0 -39
- package/.prettierignore +0 -2
- package/.prettierrc +0 -26
- package/eslint.config.mjs +0 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zStackAdapter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/z-stack/adapter/zStackAdapter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"zStackAdapter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/z-stack/adapter/zStackAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,19 +52,19 @@ const definition_1 = __importDefault(require("../znp/definition"));
|
|
|
52
52
|
const utils_2 = require("../znp/utils");
|
|
53
53
|
const manager_1 = require("./manager");
|
|
54
54
|
const tstype_1 = require("./tstype");
|
|
55
|
-
const NS =
|
|
55
|
+
const NS = "zh:zstack";
|
|
56
56
|
const Subsystem = unpi_1.Constants.Subsystem;
|
|
57
57
|
const Type = unpi_1.Constants.Type;
|
|
58
58
|
const { ZnpCommandStatus, AddressMode } = Constants.COMMON;
|
|
59
59
|
const DataConfirmTimeout = 9999; // Not an actual code
|
|
60
60
|
const DataConfirmErrorCodeLookup = {
|
|
61
|
-
[DataConfirmTimeout]:
|
|
62
|
-
26:
|
|
63
|
-
183:
|
|
64
|
-
205:
|
|
65
|
-
225:
|
|
66
|
-
233:
|
|
67
|
-
240:
|
|
61
|
+
[DataConfirmTimeout]: "Timeout",
|
|
62
|
+
26: "MAC no resources",
|
|
63
|
+
183: "APS no ack",
|
|
64
|
+
205: "No network route",
|
|
65
|
+
225: "MAC channel access failure",
|
|
66
|
+
233: "MAC no ack",
|
|
67
|
+
240: "MAC transaction expired",
|
|
68
68
|
};
|
|
69
69
|
class DataConfirmError extends Error {
|
|
70
70
|
code;
|
|
@@ -93,6 +93,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
93
93
|
super(networkOptions, serialPortOptions, backupPath, adapterOptions);
|
|
94
94
|
this.hasZdoMessageOverhead = false;
|
|
95
95
|
this.manufacturerID = Zcl.ManufacturerCode.TEXAS_INSTRUMENTS;
|
|
96
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
96
97
|
this.znp = new znp_1.Znp(this.serialPortOptions.path, this.serialPortOptions.baudRate, this.serialPortOptions.rtscts);
|
|
97
98
|
this.transactionID = 0;
|
|
98
99
|
this.deviceAnnounceRouteDiscoveryDebouncers = new Map();
|
|
@@ -100,8 +101,8 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
100
101
|
this.interpanEndpointRegistered = false;
|
|
101
102
|
this.closing = false;
|
|
102
103
|
this.waitress = new utils_1.Waitress(this.waitressValidator, this.waitressTimeoutFormatter);
|
|
103
|
-
this.znp.on(
|
|
104
|
-
this.znp.on(
|
|
104
|
+
this.znp.on("received", this.onZnpRecieved.bind(this));
|
|
105
|
+
this.znp.on("close", this.onZnpClose.bind(this));
|
|
105
106
|
}
|
|
106
107
|
/**
|
|
107
108
|
* Adapter methods
|
|
@@ -111,7 +112,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
111
112
|
const attempts = 3;
|
|
112
113
|
for (let i = 0; i < attempts; i++) {
|
|
113
114
|
try {
|
|
114
|
-
await this.znp.request(Subsystem.SYS,
|
|
115
|
+
await this.znp.request(Subsystem.SYS, "ping", { capabilities: 1 });
|
|
115
116
|
break;
|
|
116
117
|
}
|
|
117
118
|
catch (e) {
|
|
@@ -122,17 +123,13 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
122
123
|
}
|
|
123
124
|
// Old firmware did not support version, assume it's Z-Stack 1.2 for now.
|
|
124
125
|
try {
|
|
125
|
-
this.version = (await this.znp.requestWithReply(Subsystem.SYS,
|
|
126
|
+
this.version = (await this.znp.requestWithReply(Subsystem.SYS, "version", {})).payload;
|
|
126
127
|
}
|
|
127
128
|
catch {
|
|
128
|
-
logger_1.logger.debug(
|
|
129
|
-
this.version = { transportrev: 2, product: 0, majorrel: 2, minorrel: 0, maintrel: 0, revision:
|
|
129
|
+
logger_1.logger.debug("Failed to get zStack version, assuming 1.2", NS);
|
|
130
|
+
this.version = { transportrev: 2, product: 0, majorrel: 2, minorrel: 0, maintrel: 0, revision: "" };
|
|
130
131
|
}
|
|
131
|
-
const concurrent = this.adapterOptions
|
|
132
|
-
? this.adapterOptions.concurrent
|
|
133
|
-
: this.version.product === tstype_1.ZnpVersion.zStack3x0
|
|
134
|
-
? 16
|
|
135
|
-
: 2;
|
|
132
|
+
const concurrent = this.adapterOptions?.concurrent ? this.adapterOptions.concurrent : this.version.product === tstype_1.ZnpVersion.ZStack3x0 ? 16 : 2;
|
|
136
133
|
logger_1.logger.debug(`Adapter concurrent: ${concurrent}`, NS);
|
|
137
134
|
this.queue = new utils_1.Queue(concurrent);
|
|
138
135
|
logger_1.logger.debug(`Detected znp version '${tstype_1.ZnpVersion[this.version.product]}' (${JSON.stringify(this.version)})`, NS);
|
|
@@ -147,10 +144,10 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
147
144
|
if (this.adapterOptions.disableLED) {
|
|
148
145
|
// Wait a bit for adapter to startup, otherwise led doesn't disable (tested with CC2531)
|
|
149
146
|
await (0, utils_1.wait)(200);
|
|
150
|
-
await this.setLED(
|
|
147
|
+
await this.setLED("disable");
|
|
151
148
|
}
|
|
152
149
|
if (this.adapterOptions.transmitPower != null) {
|
|
153
|
-
await this.znp.request(Subsystem.SYS,
|
|
150
|
+
await this.znp.request(Subsystem.SYS, "stackTune", { operation: 0, value: this.adapterOptions.transmitPower });
|
|
154
151
|
}
|
|
155
152
|
return await startResult;
|
|
156
153
|
}
|
|
@@ -161,12 +158,12 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
161
158
|
async getCoordinatorIEEE() {
|
|
162
159
|
return await this.queue.execute(async () => {
|
|
163
160
|
this.checkInterpanLock();
|
|
164
|
-
const deviceInfo = await this.znp.requestWithReply(Subsystem.UTIL,
|
|
161
|
+
const deviceInfo = await this.znp.requestWithReply(Subsystem.UTIL, "getDeviceInfo", {});
|
|
165
162
|
return deviceInfo.payload.ieeeaddr;
|
|
166
163
|
});
|
|
167
164
|
}
|
|
168
165
|
async getCoordinatorVersion() {
|
|
169
|
-
return { type: tstype_1.ZnpVersion[this.version.product], meta: this.version };
|
|
166
|
+
return await Promise.resolve({ type: tstype_1.ZnpVersion[this.version.product], meta: this.version });
|
|
170
167
|
}
|
|
171
168
|
async permitJoin(seconds, networkAddress) {
|
|
172
169
|
const clusterId = Zdo.ClusterId.PERMIT_JOINING_REQUEST;
|
|
@@ -187,28 +184,28 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
187
184
|
}
|
|
188
185
|
await this.queue.execute(async () => {
|
|
189
186
|
this.checkInterpanLock();
|
|
190
|
-
await this.setLED(seconds
|
|
187
|
+
await this.setLED(seconds === 0 ? "off" : "on");
|
|
191
188
|
});
|
|
192
189
|
}
|
|
193
190
|
async reset(type) {
|
|
194
|
-
if (type ===
|
|
195
|
-
await this.znp.request(Subsystem.SYS,
|
|
191
|
+
if (type === "soft") {
|
|
192
|
+
await this.znp.request(Subsystem.SYS, "resetReq", { type: Constants.SYS.resetType.SOFT });
|
|
196
193
|
}
|
|
197
194
|
else {
|
|
198
|
-
await this.znp.request(Subsystem.SYS,
|
|
195
|
+
await this.znp.request(Subsystem.SYS, "resetReq", { type: Constants.SYS.resetType.HARD });
|
|
199
196
|
}
|
|
200
197
|
}
|
|
201
198
|
async setLED(action) {
|
|
202
|
-
if (this.supportsLED ==
|
|
199
|
+
if (this.supportsLED == null) {
|
|
203
200
|
// Only zStack3x0 with 20210430 and greater support LED
|
|
204
|
-
const zStack3x0 = this.version.product === tstype_1.ZnpVersion.
|
|
205
|
-
this.supportsLED = !zStack3x0 || (zStack3x0 && parseInt(this.version.revision) >= 20210430);
|
|
201
|
+
const zStack3x0 = this.version.product === tstype_1.ZnpVersion.ZStack3x0;
|
|
202
|
+
this.supportsLED = !zStack3x0 || (zStack3x0 && Number.parseInt(this.version.revision) >= 20210430);
|
|
206
203
|
}
|
|
207
|
-
if (!this.supportsLED || (this.adapterOptions.disableLED && action !==
|
|
204
|
+
if (!this.supportsLED || (this.adapterOptions.disableLED && action !== "disable")) {
|
|
208
205
|
return;
|
|
209
206
|
}
|
|
210
207
|
// Firmwares build on and after 20211029 should handle LED themselves
|
|
211
|
-
const firmwareControlsLed = parseInt(this.version.revision) >= 20211029;
|
|
208
|
+
const firmwareControlsLed = Number.parseInt(this.version.revision) >= 20211029;
|
|
212
209
|
const lookup = {
|
|
213
210
|
disable: firmwareControlsLed ? { ledid: 0xff, mode: 5 } : { ledid: 3, mode: 0 },
|
|
214
211
|
on: firmwareControlsLed ? null : { ledid: 3, mode: 1 },
|
|
@@ -216,7 +213,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
216
213
|
};
|
|
217
214
|
const payload = lookup[action];
|
|
218
215
|
if (payload) {
|
|
219
|
-
this.znp.request(Subsystem.UTIL,
|
|
216
|
+
this.znp.request(Subsystem.UTIL, "ledControl", payload, undefined, 500).catch(() => {
|
|
220
217
|
// We cannot 100% correctly determine if an adapter supports LED. E.g. the zStack 1.2 20190608
|
|
221
218
|
// fw supports led on the CC2531 but not on the CC2530. Therefore if a led request fails never thrown
|
|
222
219
|
// an error but instead mark the led as unsupported.
|
|
@@ -239,22 +236,20 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
239
236
|
return result[1].nwkAddress;
|
|
240
237
|
/* v8 ignore start */
|
|
241
238
|
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
throw new Zdo.StatusError(result[0]);
|
|
245
|
-
}
|
|
239
|
+
// TODO: will disappear once moved upstream
|
|
240
|
+
throw new Zdo.StatusError(result[0]);
|
|
246
241
|
/* v8 ignore stop */
|
|
247
242
|
}
|
|
248
243
|
supportsAssocRemove() {
|
|
249
|
-
return this.version.product === tstype_1.ZnpVersion.
|
|
244
|
+
return this.version.product === tstype_1.ZnpVersion.ZStack3x0 && Number.parseInt(this.version.revision) >= 20200805;
|
|
250
245
|
}
|
|
251
246
|
supportsAssocAdd() {
|
|
252
|
-
return this.version.product === tstype_1.ZnpVersion.
|
|
247
|
+
return this.version.product === tstype_1.ZnpVersion.ZStack3x0 && Number.parseInt(this.version.revision) >= 20201026;
|
|
253
248
|
}
|
|
254
249
|
async discoverRoute(networkAddress, waitSettled = true) {
|
|
255
250
|
logger_1.logger.debug(`Discovering route to ${networkAddress}`, NS);
|
|
256
251
|
const payload = { dstAddr: networkAddress, options: 0, radius: Constants.AF.DEFAULT_RADIUS };
|
|
257
|
-
await this.znp.request(Subsystem.ZDO,
|
|
252
|
+
await this.znp.request(Subsystem.ZDO, "extRouteDisc", payload);
|
|
258
253
|
if (waitSettled) {
|
|
259
254
|
await (0, utils_1.wait)(3000);
|
|
260
255
|
}
|
|
@@ -351,7 +346,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
351
346
|
`(${responseAttempt},${dataRequestAttempt},${this.queue.count()})`, NS);
|
|
352
347
|
let response = null;
|
|
353
348
|
const command = zclFrame.command;
|
|
354
|
-
if (command.response
|
|
349
|
+
if (command.response !== undefined && disableResponse === false) {
|
|
355
350
|
response = this.waitForInternal(networkAddress, endpoint, zclFrame.header.frameControl.frameType, Zcl.Direction.SERVER_TO_CLIENT, zclFrame.header.transactionSequenceNumber, zclFrame.cluster.ID, command.response, timeout);
|
|
356
351
|
}
|
|
357
352
|
else if (!zclFrame.header.frameControl.disableDefaultResponse) {
|
|
@@ -370,7 +365,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
370
365
|
*/
|
|
371
366
|
if (assocRemove && assocRestore && this.supportsAssocAdd()) {
|
|
372
367
|
logger_1.logger.debug(`assocAdd(${assocRestore.ieeeadr})`, NS);
|
|
373
|
-
await this.znp.request(Subsystem.UTIL,
|
|
368
|
+
await this.znp.request(Subsystem.UTIL, "assocAdd", assocRestore);
|
|
374
369
|
assocRestore = undefined;
|
|
375
370
|
}
|
|
376
371
|
const recoverableErrors = [
|
|
@@ -399,70 +394,68 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
399
394
|
await (0, utils_1.wait)(2000);
|
|
400
395
|
return await this.sendZclFrameToEndpointInternal(ieeeAddr, networkAddress, endpoint, sourceEndpoint, zclFrame, timeout, disableResponse, disableRecovery, responseAttempt, dataRequestAttempt + 1, checkedNetworkAddress, discoveredRoute, assocRemove, assocRestore);
|
|
401
396
|
}
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
assocRestore = { ieeeadr: ieeeAddr, nwkaddr: networkAddress, noderelation: match.payload.noderelation };
|
|
415
|
-
}
|
|
416
|
-
assocRemove = true;
|
|
417
|
-
}
|
|
418
|
-
// NWK_NO_ROUTE: no network route => rediscover route
|
|
419
|
-
// MAC_NO_ACK: route may be corrupted
|
|
420
|
-
// MAC_TRANSACTION_EXPIRED: Mac layer is sleeping
|
|
421
|
-
if (doAssocRemove) {
|
|
422
|
-
/**
|
|
423
|
-
* Since child aging is disabled on the firmware, when a end device is directly connected
|
|
424
|
-
* to the coordinator and changes parent and the coordinator does not recevie this update,
|
|
425
|
-
* it still thinks it's directly connected.
|
|
426
|
-
* A discoverRoute() is not send out in this case, therefore remove it from the associated device
|
|
427
|
-
* list and try again.
|
|
428
|
-
* Note: assocRemove is a custom command, not available by default, only available on recent
|
|
429
|
-
* z-stack-firmware firmware version. In case it's not supported by the coordinator we will
|
|
430
|
-
* automatically timeout after 60000ms.
|
|
431
|
-
*/
|
|
432
|
-
logger_1.logger.debug(`assocRemove(${ieeeAddr})`, NS);
|
|
433
|
-
await this.znp.request(Subsystem.UTIL, 'assocRemove', { ieeeadr: ieeeAddr });
|
|
434
|
-
}
|
|
435
|
-
else if (!discoveredRoute && dataRequestAttempt >= 1) {
|
|
436
|
-
discoveredRoute = true;
|
|
437
|
-
await this.discoverRoute(networkAddress);
|
|
397
|
+
let doAssocRemove = false;
|
|
398
|
+
if (!assocRemove &&
|
|
399
|
+
dataConfirmResult === ZnpCommandStatus.MAC_TRANSACTION_EXPIRED &&
|
|
400
|
+
dataRequestAttempt >= 1 &&
|
|
401
|
+
this.supportsAssocRemove()) {
|
|
402
|
+
const match = await this.znp.requestWithReply(Subsystem.UTIL, "assocGetWithAddress", {
|
|
403
|
+
extaddr: ieeeAddr,
|
|
404
|
+
nwkaddr: networkAddress,
|
|
405
|
+
});
|
|
406
|
+
if (match.payload.nwkaddr !== 0xfffe && match.payload.noderelation !== 255) {
|
|
407
|
+
doAssocRemove = true;
|
|
408
|
+
assocRestore = { ieeeadr: ieeeAddr, nwkaddr: networkAddress, noderelation: match.payload.noderelation };
|
|
438
409
|
}
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
410
|
+
assocRemove = true;
|
|
411
|
+
}
|
|
412
|
+
// NWK_NO_ROUTE: no network route => rediscover route
|
|
413
|
+
// MAC_NO_ACK: route may be corrupted
|
|
414
|
+
// MAC_TRANSACTION_EXPIRED: Mac layer is sleeping
|
|
415
|
+
if (doAssocRemove) {
|
|
416
|
+
/**
|
|
417
|
+
* Since child aging is disabled on the firmware, when a end device is directly connected
|
|
418
|
+
* to the coordinator and changes parent and the coordinator does not recevie this update,
|
|
419
|
+
* it still thinks it's directly connected.
|
|
420
|
+
* A discoverRoute() is not send out in this case, therefore remove it from the associated device
|
|
421
|
+
* list and try again.
|
|
422
|
+
* Note: assocRemove is a custom command, not available by default, only available on recent
|
|
423
|
+
* z-stack-firmware firmware version. In case it's not supported by the coordinator we will
|
|
424
|
+
* automatically timeout after 60000ms.
|
|
425
|
+
*/
|
|
426
|
+
logger_1.logger.debug(`assocRemove(${ieeeAddr})`, NS);
|
|
427
|
+
await this.znp.request(Subsystem.UTIL, "assocRemove", { ieeeadr: ieeeAddr });
|
|
428
|
+
}
|
|
429
|
+
else if (!discoveredRoute && dataRequestAttempt >= 1) {
|
|
430
|
+
discoveredRoute = true;
|
|
431
|
+
await this.discoverRoute(networkAddress);
|
|
432
|
+
}
|
|
433
|
+
else if (!checkedNetworkAddress && dataRequestAttempt >= 1) {
|
|
434
|
+
// Figure out once if the network address has been changed.
|
|
435
|
+
try {
|
|
436
|
+
checkedNetworkAddress = true;
|
|
437
|
+
const actualNetworkAddress = await this.requestNetworkAddress(ieeeAddr);
|
|
438
|
+
if (networkAddress !== actualNetworkAddress) {
|
|
439
|
+
logger_1.logger.debug("Failed because request was done with wrong network address", NS);
|
|
440
|
+
discoveredRoute = true;
|
|
441
|
+
networkAddress = actualNetworkAddress;
|
|
442
|
+
await this.discoverRoute(actualNetworkAddress);
|
|
454
443
|
}
|
|
455
|
-
|
|
456
|
-
|
|
444
|
+
else {
|
|
445
|
+
logger_1.logger.debug("Network address did not change", NS);
|
|
457
446
|
}
|
|
458
|
-
/* v8 ignore
|
|
447
|
+
/* v8 ignore start */
|
|
459
448
|
}
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
await (0, utils_1.wait)(2000);
|
|
449
|
+
catch {
|
|
450
|
+
/* empty */
|
|
463
451
|
}
|
|
464
|
-
|
|
452
|
+
/* v8 ignore stop */
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
logger_1.logger.debug("Wait 2000ms", NS);
|
|
456
|
+
await (0, utils_1.wait)(2000);
|
|
465
457
|
}
|
|
458
|
+
return await this.sendZclFrameToEndpointInternal(ieeeAddr, networkAddress, endpoint, sourceEndpoint, zclFrame, timeout, disableResponse, disableRecovery, responseAttempt, dataRequestAttempt + 1, checkedNetworkAddress, discoveredRoute, assocRemove, assocRestore);
|
|
466
459
|
}
|
|
467
460
|
if (response !== null) {
|
|
468
461
|
try {
|
|
@@ -475,7 +468,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
475
468
|
// No response could be because the radio of the end device is turned off:
|
|
476
469
|
// Sometimes the coordinator does not properly set the PENDING flag.
|
|
477
470
|
// Try to rewrite the device entry in the association table, this fixes it sometimes.
|
|
478
|
-
const match = await this.znp.requestWithReply(Subsystem.UTIL,
|
|
471
|
+
const match = await this.znp.requestWithReply(Subsystem.UTIL, "assocGetWithAddress", {
|
|
479
472
|
extaddr: ieeeAddr,
|
|
480
473
|
nwkaddr: networkAddress,
|
|
481
474
|
});
|
|
@@ -483,10 +476,10 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
483
476
|
if (this.supportsAssocAdd() &&
|
|
484
477
|
this.supportsAssocRemove() &&
|
|
485
478
|
match.payload.nwkaddr !== 0xfffe &&
|
|
486
|
-
match.payload.noderelation
|
|
479
|
+
match.payload.noderelation === 1) {
|
|
487
480
|
logger_1.logger.debug(`Response timeout recovery: Rewrite association table entry (${ieeeAddr})`, NS);
|
|
488
|
-
await this.znp.request(Subsystem.UTIL,
|
|
489
|
-
await this.znp.request(Subsystem.UTIL,
|
|
481
|
+
await this.znp.request(Subsystem.UTIL, "assocRemove", { ieeeadr: ieeeAddr });
|
|
482
|
+
await this.znp.request(Subsystem.UTIL, "assocAdd", {
|
|
490
483
|
ieeeadr: ieeeAddr,
|
|
491
484
|
nwkaddr: networkAddress,
|
|
492
485
|
noderelation: match.payload.noderelation,
|
|
@@ -496,9 +489,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
496
489
|
await this.discoverRoute(networkAddress);
|
|
497
490
|
return await this.sendZclFrameToEndpointInternal(ieeeAddr, networkAddress, endpoint, sourceEndpoint, zclFrame, timeout, disableResponse, disableRecovery, responseAttempt + 1, dataRequestAttempt, checkedNetworkAddress, discoveredRoute, assocRemove, assocRestore);
|
|
498
491
|
}
|
|
499
|
-
|
|
500
|
-
throw error;
|
|
501
|
-
}
|
|
492
|
+
throw error;
|
|
502
493
|
}
|
|
503
494
|
}
|
|
504
495
|
}
|
|
@@ -527,17 +518,17 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
527
518
|
});
|
|
528
519
|
}
|
|
529
520
|
async addInstallCode(ieeeAddress, key, hashed) {
|
|
530
|
-
(0, node_assert_1.default)(this.version.product !== tstype_1.ZnpVersion.
|
|
521
|
+
(0, node_assert_1.default)(this.version.product !== tstype_1.ZnpVersion.ZStack12, "Install code is not supported for ZStack 1.2 adapter");
|
|
531
522
|
// TODO: always use 0x2? => const hashedKey = hashed ? key : ZSpec.Utils.aes128MmoHash(key);
|
|
532
523
|
const payload = { installCodeFormat: hashed ? 0x2 : 0x1, ieeeaddr: ieeeAddress, installCode: key };
|
|
533
|
-
await this.znp.request(Subsystem.APP_CNF,
|
|
524
|
+
await this.znp.request(Subsystem.APP_CNF, "bdbAddInstallCode", payload);
|
|
534
525
|
}
|
|
535
526
|
/**
|
|
536
527
|
* Event handlers
|
|
537
528
|
*/
|
|
538
529
|
onZnpClose() {
|
|
539
530
|
if (!this.closing) {
|
|
540
|
-
this.emit(
|
|
531
|
+
this.emit("disconnected");
|
|
541
532
|
}
|
|
542
533
|
}
|
|
543
534
|
onZnpRecieved(object) {
|
|
@@ -546,16 +537,16 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
546
537
|
}
|
|
547
538
|
if (object.subsystem === Subsystem.ZDO) {
|
|
548
539
|
if ((0, utils_2.isMtCmdAreqZdo)(object.command)) {
|
|
549
|
-
this.emit(
|
|
540
|
+
this.emit("zdoResponse", object.command.zdoClusterId, object.payload.zdo);
|
|
550
541
|
}
|
|
551
|
-
if (object.command.name ===
|
|
542
|
+
if (object.command.name === "tcDeviceInd") {
|
|
552
543
|
const payload = {
|
|
553
544
|
networkAddress: object.payload.nwkaddr,
|
|
554
545
|
ieeeAddr: object.payload.extaddr,
|
|
555
546
|
};
|
|
556
|
-
this.emit(
|
|
547
|
+
this.emit("deviceJoined", payload);
|
|
557
548
|
}
|
|
558
|
-
else if (object.command.name ===
|
|
549
|
+
else if (object.command.name === "endDeviceAnnceInd") {
|
|
559
550
|
// TODO: better way???
|
|
560
551
|
if (Zdo.Buffalo.checkStatus(object.payload.zdo)) {
|
|
561
552
|
const zdoPayload = object.payload.zdo[1];
|
|
@@ -566,7 +557,6 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
566
557
|
// If a device announces multiple times in a very short time, it makes no sense
|
|
567
558
|
// to rediscover the route every time.
|
|
568
559
|
const debouncer = (0, debounce_1.default)(() => {
|
|
569
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
570
560
|
this.queue.execute(async () => {
|
|
571
561
|
this.discoverRoute(zdoPayload.nwkAddress, false).catch(() => { });
|
|
572
562
|
}, zdoPayload.nwkAddress);
|
|
@@ -579,7 +569,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
579
569
|
}
|
|
580
570
|
}
|
|
581
571
|
}
|
|
582
|
-
else if (object.command.name ===
|
|
572
|
+
else if (object.command.name === "concentratorIndCb") {
|
|
583
573
|
// Some routers may change short addresses and the announcement
|
|
584
574
|
// is missed by the coordinator. This can happen when there are
|
|
585
575
|
// power outages or other interruptions in service. They may
|
|
@@ -590,7 +580,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
590
580
|
// mappings.
|
|
591
581
|
// https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/158/4403.zstacktask.c
|
|
592
582
|
// https://github.com/Koenkk/zigbee-herdsman/issues/74
|
|
593
|
-
this.emit(
|
|
583
|
+
this.emit("zdoResponse", Zdo.ClusterId.NETWORK_ADDRESS_RESPONSE, [
|
|
594
584
|
Zdo.Status.SUCCESS,
|
|
595
585
|
{
|
|
596
586
|
eui64: object.payload.extaddr,
|
|
@@ -601,23 +591,23 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
601
591
|
]);
|
|
602
592
|
}
|
|
603
593
|
else {
|
|
604
|
-
if (object.command.name ===
|
|
594
|
+
if (object.command.name === "leaveInd") {
|
|
605
595
|
if (object.payload.rejoin) {
|
|
606
|
-
logger_1.logger.debug(
|
|
596
|
+
logger_1.logger.debug("Device leave: Got leave indication with rejoin=true, nothing to do", NS);
|
|
607
597
|
}
|
|
608
598
|
else {
|
|
609
599
|
const payload = {
|
|
610
600
|
networkAddress: object.payload.srcaddr,
|
|
611
601
|
ieeeAddr: object.payload.extaddr,
|
|
612
602
|
};
|
|
613
|
-
this.emit(
|
|
603
|
+
this.emit("deviceLeave", payload);
|
|
614
604
|
}
|
|
615
605
|
}
|
|
616
606
|
}
|
|
617
607
|
}
|
|
618
608
|
else {
|
|
619
609
|
if (object.subsystem === Subsystem.AF) {
|
|
620
|
-
if (object.command.name ===
|
|
610
|
+
if (object.command.name === "incomingMsg" || object.command.name === "incomingMsgExt") {
|
|
621
611
|
const payload = {
|
|
622
612
|
clusterID: object.payload.clusterid,
|
|
623
613
|
data: object.payload.data,
|
|
@@ -630,13 +620,13 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
630
620
|
destinationEndpoint: object.payload.dstendpoint,
|
|
631
621
|
};
|
|
632
622
|
this.waitress.resolve(payload);
|
|
633
|
-
this.emit(
|
|
623
|
+
this.emit("zclPayload", payload);
|
|
634
624
|
}
|
|
635
625
|
}
|
|
636
626
|
}
|
|
637
627
|
}
|
|
638
628
|
async getNetworkParameters() {
|
|
639
|
-
const result = await this.znp.requestWithReply(Subsystem.ZDO,
|
|
629
|
+
const result = await this.znp.requestWithReply(Subsystem.ZDO, "extNwkInfo", {});
|
|
640
630
|
return {
|
|
641
631
|
panID: result.payload.panid,
|
|
642
632
|
extendedPanID: result.payload.extendedpanid, // read as IEEEADDR, so `0x${string}`
|
|
@@ -651,7 +641,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
651
641
|
};
|
|
652
642
|
}
|
|
653
643
|
async supportsBackup() {
|
|
654
|
-
return true;
|
|
644
|
+
return await Promise.resolve(true);
|
|
655
645
|
}
|
|
656
646
|
async backup(ieeeAddressesInDatabase) {
|
|
657
647
|
return await this.adapterManager.backup.createBackup(ieeeAddressesInDatabase);
|
|
@@ -659,10 +649,10 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
659
649
|
async setChannelInterPAN(channel) {
|
|
660
650
|
return await this.queue.execute(async () => {
|
|
661
651
|
this.interpanLock = true;
|
|
662
|
-
await this.znp.request(Subsystem.AF,
|
|
652
|
+
await this.znp.request(Subsystem.AF, "interPanCtl", { cmd: 1, data: [channel] });
|
|
663
653
|
if (!this.interpanEndpointRegistered) {
|
|
664
654
|
// Make sure that endpoint 12 is registered to proxy the InterPAN messages.
|
|
665
|
-
await this.znp.request(Subsystem.AF,
|
|
655
|
+
await this.znp.request(Subsystem.AF, "interPanCtl", { cmd: 2, data: [12] });
|
|
666
656
|
this.interpanEndpointRegistered = true;
|
|
667
657
|
}
|
|
668
658
|
});
|
|
@@ -675,7 +665,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
675
665
|
async sendZclFrameInterPANBroadcast(zclFrame, timeout) {
|
|
676
666
|
return await this.queue.execute(async () => {
|
|
677
667
|
const command = zclFrame.command;
|
|
678
|
-
if (command.response
|
|
668
|
+
if (command.response === undefined) {
|
|
679
669
|
throw new Error(`Command '${command.name}' has no response, cannot wait for response`);
|
|
680
670
|
}
|
|
681
671
|
const response = this.waitForInternal(undefined, 0xfe, zclFrame.header.frameControl.frameType, Zcl.Direction.SERVER_TO_CLIENT, undefined, zclFrame.cluster.ID, command.response, timeout);
|
|
@@ -691,7 +681,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
691
681
|
}
|
|
692
682
|
async restoreChannelInterPAN() {
|
|
693
683
|
return await this.queue.execute(async () => {
|
|
694
|
-
await this.znp.request(Subsystem.AF,
|
|
684
|
+
await this.znp.request(Subsystem.AF, "interPanCtl", { cmd: 0, data: [] });
|
|
695
685
|
// Give adapter some time to restore, otherwise stuff crashes
|
|
696
686
|
await (0, utils_1.wait)(3000);
|
|
697
687
|
this.interpanLock = false;
|
|
@@ -720,8 +710,8 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
720
710
|
*/
|
|
721
711
|
async dataRequest(destinationAddress, destinationEndpoint, sourceEndpoint, clusterID, radius, data, timeout) {
|
|
722
712
|
const transactionID = this.nextTransactionID();
|
|
723
|
-
const response = this.znp.waitFor(Type.AREQ, Subsystem.AF,
|
|
724
|
-
await this.znp.request(Subsystem.AF,
|
|
713
|
+
const response = this.znp.waitFor(Type.AREQ, Subsystem.AF, "dataConfirm", undefined, transactionID, undefined, timeout);
|
|
714
|
+
await this.znp.request(Subsystem.AF, "dataRequest", {
|
|
725
715
|
dstaddr: destinationAddress,
|
|
726
716
|
destendpoint: destinationEndpoint,
|
|
727
717
|
srcendpoint: sourceEndpoint,
|
|
@@ -745,9 +735,9 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
745
735
|
async dataRequestExtended(addressMode, destinationAddressOrGroupID, destinationEndpoint, panID, sourceEndpoint, clusterID, radius, data, timeout, confirmation, attemptsLeft = 5) {
|
|
746
736
|
const transactionID = this.nextTransactionID();
|
|
747
737
|
const response = confirmation
|
|
748
|
-
? this.znp.waitFor(Type.AREQ, Subsystem.AF,
|
|
738
|
+
? this.znp.waitFor(Type.AREQ, Subsystem.AF, "dataConfirm", undefined, transactionID, undefined, timeout)
|
|
749
739
|
: undefined;
|
|
750
|
-
await this.znp.request(Subsystem.AF,
|
|
740
|
+
await this.znp.request(Subsystem.AF, "dataRequestExt", {
|
|
751
741
|
dstaddrmode: addressMode,
|
|
752
742
|
dstaddr: this.toAddressString(destinationAddressOrGroupID),
|
|
753
743
|
destendpoint: destinationEndpoint,
|
|
@@ -774,9 +764,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
774
764
|
await (0, utils_1.wait)(2000);
|
|
775
765
|
return await this.dataRequestExtended(addressMode, destinationAddressOrGroupID, destinationEndpoint, panID, sourceEndpoint, clusterID, radius, data, timeout, confirmation, attemptsLeft - 1);
|
|
776
766
|
}
|
|
777
|
-
|
|
778
|
-
throw new DataConfirmError(dataConfirm.payload.status);
|
|
779
|
-
}
|
|
767
|
+
throw new DataConfirmError(dataConfirm.payload.status);
|
|
780
768
|
}
|
|
781
769
|
return dataConfirm;
|
|
782
770
|
}
|
|
@@ -789,7 +777,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
789
777
|
return this.transactionID;
|
|
790
778
|
}
|
|
791
779
|
toAddressString(address) {
|
|
792
|
-
return typeof address ===
|
|
780
|
+
return typeof address === "number" ? `0x${address.toString(16).padStart(16, "0")}` : address.toString();
|
|
793
781
|
}
|
|
794
782
|
waitressTimeoutFormatter(matcher, timeout) {
|
|
795
783
|
return (`Timeout - ${matcher.address} - ${matcher.endpoint}` +
|
|
@@ -808,7 +796,7 @@ class ZStackAdapter extends adapter_1.default {
|
|
|
808
796
|
}
|
|
809
797
|
checkInterpanLock() {
|
|
810
798
|
if (this.interpanLock) {
|
|
811
|
-
throw new Error(
|
|
799
|
+
throw new Error("Cannot execute command, in Inter-PAN mode");
|
|
812
800
|
}
|
|
813
801
|
}
|
|
814
802
|
}
|