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
|
@@ -52,7 +52,7 @@ const types_1 = require("./types");
|
|
|
52
52
|
const named_1 = require("./types/named");
|
|
53
53
|
const struct_1 = require("./types/struct");
|
|
54
54
|
const utils_2 = require("./utils");
|
|
55
|
-
const NS =
|
|
55
|
+
const NS = "zh:ezsp:driv";
|
|
56
56
|
const IEEE_PREFIX_MFG_ID = [
|
|
57
57
|
{ mfgId: 0x115f, prefix: [0x04, 0xcf, 0xfc] },
|
|
58
58
|
{ mfgId: 0x115f, prefix: [0x54, 0xef, 0x44] },
|
|
@@ -91,7 +91,7 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
91
91
|
* @returns
|
|
92
92
|
*/
|
|
93
93
|
async reset() {
|
|
94
|
-
logger_1.logger.debug(
|
|
94
|
+
logger_1.logger.debug("Reset connection.", NS);
|
|
95
95
|
try {
|
|
96
96
|
// don't emit 'close' on stop since we don't want this to bubble back up as 'disconnected' to the controller.
|
|
97
97
|
await this.stop(false);
|
|
@@ -101,7 +101,7 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
101
101
|
}
|
|
102
102
|
try {
|
|
103
103
|
await (0, utils_1.wait)(1000);
|
|
104
|
-
logger_1.logger.debug(
|
|
104
|
+
logger_1.logger.debug("Startup again.", NS);
|
|
105
105
|
await this.startup();
|
|
106
106
|
}
|
|
107
107
|
catch (err) {
|
|
@@ -116,25 +116,25 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
async onEzspReset() {
|
|
119
|
-
logger_1.logger.debug(
|
|
119
|
+
logger_1.logger.debug("onEzspReset()", NS);
|
|
120
120
|
await this.reset();
|
|
121
121
|
}
|
|
122
122
|
onEzspClose() {
|
|
123
|
-
logger_1.logger.debug(
|
|
124
|
-
this.emit(
|
|
123
|
+
logger_1.logger.debug("onEzspClose()", NS);
|
|
124
|
+
this.emit("close");
|
|
125
125
|
}
|
|
126
126
|
async stop(emitClose = true) {
|
|
127
|
-
logger_1.logger.debug(
|
|
127
|
+
logger_1.logger.debug("Stopping driver", NS);
|
|
128
128
|
if (this.ezsp) {
|
|
129
129
|
return await this.ezsp.close(emitClose);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
async startup(transmitPower) {
|
|
133
|
-
let result =
|
|
133
|
+
let result = "resumed";
|
|
134
134
|
this.transactionID = 1;
|
|
135
135
|
// this.ezsp = undefined;
|
|
136
136
|
this.ezsp = new ezsp_1.Ezsp();
|
|
137
|
-
this.ezsp.on(
|
|
137
|
+
this.ezsp.on("close", this.onEzspClose.bind(this));
|
|
138
138
|
try {
|
|
139
139
|
await this.ezsp.connect(this.serialOpt);
|
|
140
140
|
}
|
|
@@ -142,7 +142,7 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
142
142
|
logger_1.logger.debug(`EZSP could not connect: ${error}`, NS);
|
|
143
143
|
throw error;
|
|
144
144
|
}
|
|
145
|
-
this.ezsp.on(
|
|
145
|
+
this.ezsp.on("reset", this.onEzspReset.bind(this));
|
|
146
146
|
await this.ezsp.version();
|
|
147
147
|
await this.ezsp.updateConfig();
|
|
148
148
|
await this.ezsp.updatePolicies();
|
|
@@ -170,15 +170,22 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
170
170
|
//const mfgName = await ezsp.execCommand('getMfgToken', EzspMfgTokenId.MFG_STRING);
|
|
171
171
|
// getting MFG_BOARD_NAME token
|
|
172
172
|
//const boardName = await ezsp.execCommand('getMfgToken', EzspMfgTokenId.MFG_BOARD_NAME);
|
|
173
|
-
/* eslint-disable prefer-const */
|
|
174
173
|
let verInfo = await this.ezsp.getValue(named_1.EzspValueId.VALUE_VERSION_INFO);
|
|
175
|
-
|
|
174
|
+
// biome-ignore lint/style/useConst: <explanation>
|
|
175
|
+
let build;
|
|
176
|
+
// biome-ignore lint/style/useConst: <explanation>
|
|
177
|
+
let major;
|
|
178
|
+
// biome-ignore lint/style/useConst: <explanation>
|
|
179
|
+
let minor;
|
|
180
|
+
// biome-ignore lint/style/useConst: <explanation>
|
|
181
|
+
let patch;
|
|
182
|
+
// biome-ignore lint/style/useConst: <explanation>
|
|
183
|
+
let special;
|
|
176
184
|
[build, verInfo] = types_1.uint16_t.deserialize(types_1.uint16_t, verInfo);
|
|
177
185
|
[major, verInfo] = types_1.uint8_t.deserialize(types_1.uint8_t, verInfo);
|
|
178
186
|
[minor, verInfo] = types_1.uint8_t.deserialize(types_1.uint8_t, verInfo);
|
|
179
187
|
[patch, verInfo] = types_1.uint8_t.deserialize(types_1.uint8_t, verInfo);
|
|
180
188
|
[special, verInfo] = types_1.uint8_t.deserialize(types_1.uint8_t, verInfo);
|
|
181
|
-
/* eslint-enable prefer-const */
|
|
182
189
|
const vers = `${major}.${minor}.${patch}.${special} build ${build}`;
|
|
183
190
|
logger_1.logger.debug(`EmberZNet version: ${vers}`, NS);
|
|
184
191
|
this.version = {
|
|
@@ -191,89 +198,91 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
191
198
|
if (await this.needsToBeInitialised(this.nwkOpt)) {
|
|
192
199
|
// need to check the backup
|
|
193
200
|
const restore = await this.needsToBeRestore(this.nwkOpt);
|
|
194
|
-
const res = await this.ezsp.execCommand(
|
|
201
|
+
const res = await this.ezsp.execCommand("networkState");
|
|
195
202
|
logger_1.logger.debug(`Network state ${res.status}`, NS);
|
|
196
|
-
if (res.status
|
|
197
|
-
logger_1.logger.info(
|
|
203
|
+
if (res.status === named_1.EmberNetworkStatus.JOINED_NETWORK) {
|
|
204
|
+
logger_1.logger.info("Leaving current network and forming new network", NS);
|
|
198
205
|
const st = await this.ezsp.leaveNetwork();
|
|
199
|
-
if (st
|
|
206
|
+
if (st !== types_1.EmberStatus.NETWORK_DOWN) {
|
|
200
207
|
logger_1.logger.error(`leaveNetwork returned unexpected status: ${st}`, NS);
|
|
201
208
|
}
|
|
202
209
|
}
|
|
203
210
|
if (restore) {
|
|
204
211
|
// restore
|
|
205
|
-
logger_1.logger.info(
|
|
212
|
+
logger_1.logger.info("Restore network from backup", NS);
|
|
206
213
|
await this.formNetwork(true, transmitPower);
|
|
207
|
-
result =
|
|
214
|
+
result = "restored";
|
|
208
215
|
}
|
|
209
216
|
else {
|
|
210
217
|
// reset
|
|
211
|
-
logger_1.logger.info(
|
|
218
|
+
logger_1.logger.info("Form network", NS);
|
|
212
219
|
await this.formNetwork(false, transmitPower);
|
|
213
|
-
result =
|
|
220
|
+
result = "reset";
|
|
214
221
|
}
|
|
215
222
|
}
|
|
216
|
-
const state = (await this.ezsp.execCommand(
|
|
223
|
+
const state = (await this.ezsp.execCommand("networkState")).status;
|
|
217
224
|
logger_1.logger.debug(`Network state ${state}`, NS);
|
|
218
|
-
const netParams = await this.ezsp.execCommand(
|
|
219
|
-
if (netParams.status
|
|
225
|
+
const netParams = await this.ezsp.execCommand("getNetworkParameters");
|
|
226
|
+
if (netParams.status !== types_1.EmberStatus.SUCCESS) {
|
|
220
227
|
logger_1.logger.error(`Command (getNetworkParameters) returned unexpected state: ${netParams.status}`, NS);
|
|
221
228
|
}
|
|
222
229
|
this.networkParams = netParams.parameters;
|
|
223
230
|
logger_1.logger.debug(`Node type: ${netParams.nodeType}, Network parameters: ${this.networkParams}`, NS);
|
|
224
|
-
const nwk = (await this.ezsp.execCommand(
|
|
225
|
-
const ieee = (await this.ezsp.execCommand(
|
|
231
|
+
const nwk = (await this.ezsp.execCommand("getNodeId")).nodeId;
|
|
232
|
+
const ieee = (await this.ezsp.execCommand("getEui64")).eui64;
|
|
226
233
|
this.ieee = new named_1.EmberEUI64(ieee);
|
|
227
|
-
logger_1.logger.debug(
|
|
228
|
-
this.ezsp.on(
|
|
234
|
+
logger_1.logger.debug("Network ready", NS);
|
|
235
|
+
this.ezsp.on("frame", this.handleFrame.bind(this));
|
|
229
236
|
logger_1.logger.debug(`EZSP nwk=${nwk}, IEEE=0x${this.ieee}`, NS);
|
|
230
237
|
const linkResult = await this.getKey(named_1.EmberKeyType.TRUST_CENTER_LINK_KEY);
|
|
231
238
|
logger_1.logger.debug(`TRUST_CENTER_LINK_KEY: ${JSON.stringify(linkResult)}`, NS);
|
|
232
239
|
const netResult = await this.getKey(named_1.EmberKeyType.CURRENT_NETWORK_KEY);
|
|
233
240
|
logger_1.logger.debug(`CURRENT_NETWORK_KEY: ${JSON.stringify(netResult)}`, NS);
|
|
234
241
|
await (0, utils_1.wait)(1000);
|
|
235
|
-
await this.ezsp.execCommand(
|
|
242
|
+
await this.ezsp.execCommand("setManufacturerCode", { code: DEFAULT_MFG_ID });
|
|
236
243
|
this.multicast = new multicast_1.Multicast(this);
|
|
237
244
|
await this.multicast.startup([]);
|
|
238
245
|
await this.multicast.subscribe(ZSpec.GP_GROUP_ID, ZSpec.GP_ENDPOINT);
|
|
239
246
|
// await this.multicast.subscribe(1, 901);
|
|
240
|
-
if (transmitPower !=
|
|
241
|
-
await this.ezsp.execCommand(
|
|
247
|
+
if (transmitPower != null && this.networkParams.radioTxPower !== transmitPower) {
|
|
248
|
+
await this.ezsp.execCommand("setRadioPower", { power: transmitPower });
|
|
242
249
|
}
|
|
243
250
|
return result;
|
|
244
251
|
}
|
|
245
252
|
async needsToBeInitialised(options) {
|
|
246
253
|
let valid = true;
|
|
247
254
|
valid = valid && (await this.ezsp.networkInit());
|
|
248
|
-
const netParams = await this.ezsp.execCommand(
|
|
255
|
+
const netParams = await this.ezsp.execCommand("getNetworkParameters");
|
|
249
256
|
const networkParams = netParams.parameters;
|
|
250
257
|
logger_1.logger.debug(`Current Node type: ${netParams.nodeType}, Network parameters: ${networkParams}`, NS);
|
|
251
|
-
valid = valid && netParams.status
|
|
252
|
-
valid = valid && netParams.nodeType
|
|
253
|
-
valid = valid && options.panID
|
|
258
|
+
valid = valid && netParams.status === types_1.EmberStatus.SUCCESS;
|
|
259
|
+
valid = valid && netParams.nodeType === types_1.EmberNodeType.COORDINATOR;
|
|
260
|
+
valid = valid && options.panID === networkParams.panId;
|
|
254
261
|
valid = valid && options.channelList.includes(networkParams.radioChannel);
|
|
255
262
|
valid = valid && (0, es6_1.default)(options.extendedPanID, networkParams.extendedPanId);
|
|
256
263
|
return !valid;
|
|
257
264
|
}
|
|
258
265
|
async formNetwork(restore, transmitPower) {
|
|
259
266
|
let backup;
|
|
260
|
-
await this.ezsp.execCommand(
|
|
261
|
-
let
|
|
267
|
+
await this.ezsp.execCommand("clearTransientLinkKeys");
|
|
268
|
+
let initialSecurityState;
|
|
262
269
|
if (restore) {
|
|
263
|
-
backup =
|
|
270
|
+
backup = this.backupMan.getStoredBackup();
|
|
264
271
|
if (!backup) {
|
|
265
|
-
throw new Error(
|
|
272
|
+
throw new Error("No valid backup found.");
|
|
266
273
|
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
274
|
+
initialSecurityState = (0, utils_2.emberSecurity)(backup.networkOptions.networkKey);
|
|
275
|
+
initialSecurityState.bitmask |= named_1.EmberInitialSecurityBitmask.NO_FRAME_COUNTER_RESET;
|
|
276
|
+
initialSecurityState.networkKeySequenceNumber = backup.networkKeyInfo.sequenceNumber;
|
|
277
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
278
|
+
initialSecurityState.preconfiguredKey.contents = backup.ezsp.hashed_tclk;
|
|
271
279
|
}
|
|
272
280
|
else {
|
|
273
|
-
await this.ezsp.execCommand(
|
|
274
|
-
|
|
281
|
+
await this.ezsp.execCommand("clearKeyTable");
|
|
282
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
283
|
+
initialSecurityState = (0, utils_2.emberSecurity)(Buffer.from(this.nwkOpt.networkKey));
|
|
275
284
|
}
|
|
276
|
-
await this.ezsp.setInitialSecurityState(
|
|
285
|
+
await this.ezsp.setInitialSecurityState(initialSecurityState);
|
|
277
286
|
const parameters = new struct_1.EmberNetworkParameters();
|
|
278
287
|
parameters.radioTxPower = transmitPower ?? 5;
|
|
279
288
|
parameters.joinMethod = named_1.EmberJoinMethod.USE_MAC_ASSOCIATION;
|
|
@@ -282,14 +291,19 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
282
291
|
parameters.channels = 0x07fff800; // all channels
|
|
283
292
|
if (restore) {
|
|
284
293
|
// `backup` valid from above
|
|
294
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
285
295
|
parameters.panId = backup.networkOptions.panId;
|
|
296
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
286
297
|
parameters.extendedPanId = backup.networkOptions.extendedPanId;
|
|
298
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
287
299
|
parameters.radioChannel = backup.logicalChannel;
|
|
300
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
288
301
|
parameters.nwkUpdateId = backup.networkUpdateId;
|
|
289
302
|
}
|
|
290
303
|
else {
|
|
291
304
|
parameters.radioChannel = this.nwkOpt.channelList[0];
|
|
292
305
|
parameters.panId = this.nwkOpt.panID;
|
|
306
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
293
307
|
parameters.extendedPanId = Buffer.from(this.nwkOpt.extendedPanID);
|
|
294
308
|
}
|
|
295
309
|
await this.ezsp.formNetwork(parameters);
|
|
@@ -297,9 +311,9 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
297
311
|
}
|
|
298
312
|
handleFrame(frameName, frame) {
|
|
299
313
|
switch (true) {
|
|
300
|
-
case frameName ===
|
|
314
|
+
case frameName === "incomingMessageHandler": {
|
|
301
315
|
const apsFrame = frame.apsFrame;
|
|
302
|
-
if (apsFrame.profileId
|
|
316
|
+
if (apsFrame.profileId === Zdo.ZDO_PROFILE_ID && apsFrame.clusterId >= 0x8000 /* response only */) {
|
|
303
317
|
const zdoResponse = Zdo.Buffalo.readResponse(true, apsFrame.clusterId, frame.message);
|
|
304
318
|
if (apsFrame.clusterId === Zdo.ClusterId.NETWORK_ADDRESS_RESPONSE) {
|
|
305
319
|
// special case to properly resolve a NETWORK_ADDRESS_RESPONSE following a NETWORK_ADDRESS_REQUEST (based on EUI64 from ZDO payload)
|
|
@@ -325,7 +339,7 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
325
339
|
});
|
|
326
340
|
}
|
|
327
341
|
// always pass ZDO to bubble up to controller
|
|
328
|
-
this.emit(
|
|
342
|
+
this.emit("incomingMessage", {
|
|
329
343
|
messageType: frame.type,
|
|
330
344
|
apsFrame,
|
|
331
345
|
lqi: frame.lastHopLqi,
|
|
@@ -345,7 +359,7 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
345
359
|
frame: apsFrame,
|
|
346
360
|
});
|
|
347
361
|
if (!handled) {
|
|
348
|
-
this.emit(
|
|
362
|
+
this.emit("incomingMessage", {
|
|
349
363
|
messageType: frame.type,
|
|
350
364
|
apsFrame,
|
|
351
365
|
lqi: frame.lastHopLqi,
|
|
@@ -360,7 +374,7 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
360
374
|
}
|
|
361
375
|
break;
|
|
362
376
|
}
|
|
363
|
-
case frameName ===
|
|
377
|
+
case frameName === "trustCenterJoinHandler": {
|
|
364
378
|
if (frame.status === named_1.EmberDeviceUpdate.DEVICE_LEFT) {
|
|
365
379
|
this.handleNodeLeft(frame.newNodeId, frame.newNodeEui64);
|
|
366
380
|
}
|
|
@@ -371,22 +385,22 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
371
385
|
}
|
|
372
386
|
break;
|
|
373
387
|
}
|
|
374
|
-
case frameName ===
|
|
388
|
+
case frameName === "incomingRouteRecordHandler": {
|
|
375
389
|
this.handleRouteRecord(frame.source, frame.longId, frame.lastHopLqi, frame.lastHopRssi, frame.relay);
|
|
376
390
|
break;
|
|
377
391
|
}
|
|
378
|
-
case frameName ===
|
|
392
|
+
case frameName === "incomingRouteErrorHandler": {
|
|
379
393
|
this.handleRouteError(frame.status, frame.target);
|
|
380
394
|
break;
|
|
381
395
|
}
|
|
382
|
-
case frameName ===
|
|
396
|
+
case frameName === "incomingNetworkStatusHandler": {
|
|
383
397
|
this.handleNetworkStatus(frame.errorCode, frame.target);
|
|
384
398
|
break;
|
|
385
399
|
}
|
|
386
|
-
case frameName ===
|
|
400
|
+
case frameName === "messageSentHandler": {
|
|
387
401
|
// todo
|
|
388
402
|
const status = frame.status;
|
|
389
|
-
if (status
|
|
403
|
+
if (status !== 0) {
|
|
390
404
|
// send failure
|
|
391
405
|
logger_1.logger.debug(() => `Delivery failed for ${JSON.stringify(frame)}.`, NS);
|
|
392
406
|
}
|
|
@@ -396,20 +410,19 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
396
410
|
// then we will register the coordinator in this group
|
|
397
411
|
// Applicable for IKEA remotes
|
|
398
412
|
const msgType = frame.type;
|
|
399
|
-
if (msgType
|
|
413
|
+
if (msgType === named_1.EmberOutgoingMessageType.OUTGOING_MULTICAST) {
|
|
400
414
|
const apsFrame = frame.apsFrame;
|
|
401
|
-
if (apsFrame.destinationEndpoint
|
|
402
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
415
|
+
if (apsFrame.destinationEndpoint === 255) {
|
|
403
416
|
this.multicast.subscribe(apsFrame.groupId, 1);
|
|
404
417
|
}
|
|
405
418
|
}
|
|
406
419
|
}
|
|
407
420
|
break;
|
|
408
421
|
}
|
|
409
|
-
case frameName ===
|
|
422
|
+
case frameName === "macFilterMatchMessageHandler": {
|
|
410
423
|
const [rawFrame, data] = struct_1.EmberIeeeRawFrame.deserialize(struct_1.EmberIeeeRawFrame, frame.message);
|
|
411
424
|
logger_1.logger.debug(`macFilterMatchMessageHandler frame message: ${rawFrame}`, NS);
|
|
412
|
-
this.emit(
|
|
425
|
+
this.emit("incomingMessage", {
|
|
413
426
|
messageType: null,
|
|
414
427
|
apsFrame: rawFrame,
|
|
415
428
|
lqi: frame.lastHopLqi,
|
|
@@ -422,7 +435,7 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
422
435
|
});
|
|
423
436
|
break;
|
|
424
437
|
}
|
|
425
|
-
case frameName ===
|
|
438
|
+
case frameName === "stackStatusHandler": {
|
|
426
439
|
logger_1.logger.debug(`stackStatusHandler: ${types_1.EmberStatus.valueToName(types_1.EmberStatus, frame.status)}`, NS);
|
|
427
440
|
break;
|
|
428
441
|
}
|
|
@@ -434,7 +447,7 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
434
447
|
// }
|
|
435
448
|
// break;
|
|
436
449
|
// }
|
|
437
|
-
case frameName
|
|
450
|
+
case frameName === "gpepIncomingMessageHandler": {
|
|
438
451
|
let commandIdentifier = cluster_1.Clusters.greenPower.commands.notification.ID;
|
|
439
452
|
if (frame.gpdCommandId === 0xe0) {
|
|
440
453
|
if (!frame.gpdCommandPayload.length) {
|
|
@@ -467,7 +480,7 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
467
480
|
message: Buffer.concat([gpdHeader, frame.gpdCommandPayload]),
|
|
468
481
|
sender: frame.addr,
|
|
469
482
|
};
|
|
470
|
-
this.emit(
|
|
483
|
+
this.emit("incomingMessage", gpdMessage);
|
|
471
484
|
break;
|
|
472
485
|
}
|
|
473
486
|
default:
|
|
@@ -517,29 +530,28 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
517
530
|
ieee = new named_1.EmberEUI64(ieee);
|
|
518
531
|
}
|
|
519
532
|
this.eui64ToNodeId.delete(ieee.toString());
|
|
520
|
-
this.emit(
|
|
533
|
+
this.emit("deviceLeft", nwk, ieee);
|
|
521
534
|
}
|
|
522
535
|
async resetMfgId(mfgId) {
|
|
523
|
-
await this.ezsp.execCommand(
|
|
536
|
+
await this.ezsp.execCommand("setManufacturerCode", { code: mfgId });
|
|
524
537
|
// 60 sec for waiting
|
|
525
538
|
await (0, utils_1.wait)(60000);
|
|
526
|
-
await this.ezsp.execCommand(
|
|
539
|
+
await this.ezsp.execCommand("setManufacturerCode", { code: DEFAULT_MFG_ID });
|
|
527
540
|
}
|
|
528
541
|
handleNodeJoined(nwk, ieee) {
|
|
529
542
|
if (ieee && !(ieee instanceof named_1.EmberEUI64)) {
|
|
530
543
|
ieee = new named_1.EmberEUI64(ieee);
|
|
531
544
|
}
|
|
532
545
|
for (const rec of IEEE_PREFIX_MFG_ID) {
|
|
533
|
-
if (Buffer.from(ieee.value).indexOf(Buffer.from(rec.prefix))
|
|
546
|
+
if (Buffer.from(ieee.value).indexOf(Buffer.from(rec.prefix)) === 0) {
|
|
534
547
|
// set ManufacturerCode
|
|
535
548
|
logger_1.logger.debug(`handleNodeJoined: change ManufacturerCode for ieee ${ieee} to ${rec.mfgId}`, NS);
|
|
536
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
537
549
|
this.resetMfgId(rec.mfgId);
|
|
538
550
|
break;
|
|
539
551
|
}
|
|
540
552
|
}
|
|
541
553
|
this.eui64ToNodeId.set(ieee.toString(), nwk);
|
|
542
|
-
this.emit(
|
|
554
|
+
this.emit("deviceJoined", nwk, ieee);
|
|
543
555
|
}
|
|
544
556
|
setNode(nwk, ieee) {
|
|
545
557
|
if (ieee && !(ieee instanceof named_1.EmberEUI64)) {
|
|
@@ -553,17 +565,17 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
553
565
|
try {
|
|
554
566
|
const seq = (apsFrame.sequence + 1) & 0xff;
|
|
555
567
|
let eui64;
|
|
556
|
-
if (typeof nwk !==
|
|
568
|
+
if (typeof nwk !== "number") {
|
|
557
569
|
eui64 = nwk;
|
|
558
570
|
const strEui64 = eui64.toString();
|
|
559
571
|
let nodeId = this.eui64ToNodeId.get(strEui64);
|
|
560
572
|
if (nodeId === undefined) {
|
|
561
|
-
nodeId = (await this.ezsp.execCommand(
|
|
573
|
+
nodeId = (await this.ezsp.execCommand("lookupNodeIdByEui64", { eui64: eui64 })).nodeId;
|
|
562
574
|
if (nodeId && nodeId !== 0xffff) {
|
|
563
575
|
this.eui64ToNodeId.set(strEui64, nodeId);
|
|
564
576
|
}
|
|
565
577
|
else {
|
|
566
|
-
throw new Error(
|
|
578
|
+
throw new Error(`Unknown EUI64:${strEui64}`);
|
|
567
579
|
}
|
|
568
580
|
}
|
|
569
581
|
nwk = nodeId;
|
|
@@ -578,7 +590,7 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
578
590
|
// // }
|
|
579
591
|
}
|
|
580
592
|
if (extendedTimeout) {
|
|
581
|
-
await this.ezsp.execCommand(
|
|
593
|
+
await this.ezsp.execCommand("setExtendedTimeout", { remoteEui64: eui64, extendedTimeout: true });
|
|
582
594
|
}
|
|
583
595
|
const sendResult = await this.ezsp.sendUnicast(named_1.EmberOutgoingMessageType.OUTGOING_DIRECT, nwk, apsFrame, seq, data);
|
|
584
596
|
// repeat only for these statuses
|
|
@@ -588,7 +600,7 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
588
600
|
await (0, utils_1.wait)(delay);
|
|
589
601
|
}
|
|
590
602
|
else {
|
|
591
|
-
result = sendResult.status
|
|
603
|
+
result = sendResult.status === types_1.EmberStatus.SUCCESS;
|
|
592
604
|
break;
|
|
593
605
|
}
|
|
594
606
|
}
|
|
@@ -599,8 +611,7 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
599
611
|
}
|
|
600
612
|
return result;
|
|
601
613
|
}
|
|
602
|
-
|
|
603
|
-
async mrequest(apsFrame, data, timeout = 30000) {
|
|
614
|
+
async mrequest(apsFrame, data, _timeout = 30000) {
|
|
604
615
|
try {
|
|
605
616
|
const seq = (apsFrame.sequence + 1) & 0xff;
|
|
606
617
|
await this.ezsp.sendMulticast(apsFrame, seq, data);
|
|
@@ -610,11 +621,10 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
610
621
|
return false;
|
|
611
622
|
}
|
|
612
623
|
}
|
|
613
|
-
|
|
614
|
-
async rawrequest(rawFrame, data, timeout = 10000) {
|
|
624
|
+
async rawrequest(rawFrame, data, _timeout = 10000) {
|
|
615
625
|
try {
|
|
616
626
|
const msgData = Buffer.concat([struct_1.EmberRawFrame.serialize(struct_1.EmberRawFrame, rawFrame), data]);
|
|
617
|
-
await this.ezsp.execCommand(
|
|
627
|
+
await this.ezsp.execCommand("sendRawMessage", { message: msgData });
|
|
618
628
|
return true;
|
|
619
629
|
}
|
|
620
630
|
catch (e) {
|
|
@@ -622,11 +632,10 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
622
632
|
return false;
|
|
623
633
|
}
|
|
624
634
|
}
|
|
625
|
-
|
|
626
|
-
async ieeerawrequest(rawFrame, data, timeout = 10000) {
|
|
635
|
+
async ieeerawrequest(rawFrame, data, _timeout = 10000) {
|
|
627
636
|
try {
|
|
628
637
|
const msgData = Buffer.concat([struct_1.EmberIeeeRawFrame.serialize(struct_1.EmberIeeeRawFrame, rawFrame), data]);
|
|
629
|
-
await this.ezsp.execCommand(
|
|
638
|
+
await this.ezsp.execCommand("sendRawMessage", { message: msgData });
|
|
630
639
|
return true;
|
|
631
640
|
}
|
|
632
641
|
catch (e) {
|
|
@@ -677,21 +686,19 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
677
686
|
if (value === nwk)
|
|
678
687
|
return new named_1.EmberEUI64(eUI64);
|
|
679
688
|
}
|
|
680
|
-
const value = await this.ezsp.execCommand(
|
|
689
|
+
const value = await this.ezsp.execCommand("lookupEui64ByNodeId", { nodeId: nwk });
|
|
681
690
|
if (value.status === types_1.EmberStatus.SUCCESS) {
|
|
682
691
|
const eUI64 = new named_1.EmberEUI64(value.eui64);
|
|
683
692
|
this.eui64ToNodeId.set(eUI64.toString(), nwk);
|
|
684
693
|
return eUI64;
|
|
685
694
|
}
|
|
686
|
-
|
|
687
|
-
throw new Error('Unrecognized nodeId:' + nwk);
|
|
688
|
-
}
|
|
695
|
+
throw new Error(`Unrecognized nodeId:${nwk}`);
|
|
689
696
|
}
|
|
690
697
|
async preJoining(seconds) {
|
|
691
698
|
if (seconds) {
|
|
692
|
-
const ieee = new named_1.EmberEUI64(
|
|
699
|
+
const ieee = new named_1.EmberEUI64("0xFFFFFFFFFFFFFFFF");
|
|
693
700
|
const linkKey = new types_1.EmberKeyData();
|
|
694
|
-
linkKey.contents = Buffer.from(
|
|
701
|
+
linkKey.contents = Buffer.from("ZigBeeAlliance09");
|
|
695
702
|
const result = await this.addTransientLinkKey(ieee, linkKey);
|
|
696
703
|
if (result.status !== types_1.EmberStatus.SUCCESS) {
|
|
697
704
|
throw new Error(`Add Transient Link Key for '${ieee}' failed`);
|
|
@@ -702,17 +709,17 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
702
709
|
}
|
|
703
710
|
}
|
|
704
711
|
else {
|
|
705
|
-
await this.ezsp.execCommand(
|
|
712
|
+
await this.ezsp.execCommand("clearTransientLinkKeys");
|
|
706
713
|
}
|
|
707
714
|
}
|
|
708
715
|
async permitJoining(seconds) {
|
|
709
|
-
return await this.ezsp.execCommand(
|
|
716
|
+
return await this.ezsp.execCommand("permitJoining", { duration: seconds });
|
|
710
717
|
}
|
|
711
718
|
makeZDOframe(name, params) {
|
|
712
719
|
return this.ezsp.makeZDOframe(name, params);
|
|
713
720
|
}
|
|
714
721
|
async addEndpoint({ endpoint = 1, profileId = 260, deviceId = 0xbeef, appFlags = 0, inputClusters = [], outputClusters = [], }) {
|
|
715
|
-
const res = await this.ezsp.execCommand(
|
|
722
|
+
const res = await this.ezsp.execCommand("addEndpoint", {
|
|
716
723
|
endpoint: endpoint,
|
|
717
724
|
profileId: profileId,
|
|
718
725
|
deviceId: deviceId,
|
|
@@ -737,15 +744,13 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
737
744
|
(!payload.frame || payload.payload[0] === matcher.sequence));
|
|
738
745
|
}
|
|
739
746
|
setChannel(channel) {
|
|
740
|
-
return this.ezsp.execCommand(
|
|
747
|
+
return this.ezsp.execCommand("setLogicalAndRadioChannel", { radioChannel: channel });
|
|
741
748
|
}
|
|
742
749
|
addTransientLinkKey(partner, transientKey) {
|
|
743
750
|
if (this.ezsp.ezspV < 13) {
|
|
744
|
-
return this.ezsp.execCommand(
|
|
745
|
-
}
|
|
746
|
-
else {
|
|
747
|
-
return this.ezsp.execCommand('importTransientKey', { partner, transientKey, flags: 0 });
|
|
751
|
+
return this.ezsp.execCommand("addTransientLinkKey", { partner, transientKey });
|
|
748
752
|
}
|
|
753
|
+
return this.ezsp.execCommand("importTransientKey", { partner, transientKey, flags: 0 });
|
|
749
754
|
}
|
|
750
755
|
async addInstallCode(ieeeAddress, key, hashed) {
|
|
751
756
|
const ieee = new named_1.EmberEUI64(ieeeAddress);
|
|
@@ -758,49 +763,45 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
758
763
|
}
|
|
759
764
|
async getKey(keyType) {
|
|
760
765
|
if (this.ezsp.ezspV < 13) {
|
|
761
|
-
return await this.ezsp.execCommand(
|
|
762
|
-
}
|
|
763
|
-
else {
|
|
764
|
-
// Mapping EmberKeyType to SecManKeyType (ezsp13)
|
|
765
|
-
const SecManKeyType = {
|
|
766
|
-
[named_1.EmberKeyType.TRUST_CENTER_LINK_KEY]: 2,
|
|
767
|
-
[named_1.EmberKeyType.CURRENT_NETWORK_KEY]: 1,
|
|
768
|
-
};
|
|
769
|
-
const smc = new struct_1.EmberSecurityManagerContext();
|
|
770
|
-
smc.type = SecManKeyType[keyType];
|
|
771
|
-
smc.index = 0;
|
|
772
|
-
smc.derivedType = named_1.EmberDerivedKeyType.NONE;
|
|
773
|
-
smc.eui64 = new named_1.EmberEUI64('0x0000000000000000');
|
|
774
|
-
smc.multiNetworkIndex = 0;
|
|
775
|
-
smc.flags = 0;
|
|
776
|
-
smc.psaKeyAlgPermission = 0;
|
|
777
|
-
const keyInfo = await this.ezsp.execCommand('exportKey', { context: smc });
|
|
778
|
-
if (keyInfo.status !== named_1.SLStatus.SL_STATUS_OK) {
|
|
779
|
-
logger_1.logger.error(`exportKey(${named_1.EmberKeyType.valueToName(named_1.EmberKeyType, keyType)}) returned unexpected SL status: ${keyInfo.status}`, NS);
|
|
780
|
-
}
|
|
781
|
-
return keyInfo;
|
|
766
|
+
return await this.ezsp.execCommand("getKey", { keyType });
|
|
782
767
|
}
|
|
768
|
+
// Mapping EmberKeyType to SecManKeyType (ezsp13)
|
|
769
|
+
const SecManKeyType = {
|
|
770
|
+
[named_1.EmberKeyType.TRUST_CENTER_LINK_KEY]: 2,
|
|
771
|
+
[named_1.EmberKeyType.CURRENT_NETWORK_KEY]: 1,
|
|
772
|
+
};
|
|
773
|
+
const smc = new struct_1.EmberSecurityManagerContext();
|
|
774
|
+
smc.type = SecManKeyType[keyType];
|
|
775
|
+
smc.index = 0;
|
|
776
|
+
smc.derivedType = named_1.EmberDerivedKeyType.NONE;
|
|
777
|
+
smc.eui64 = new named_1.EmberEUI64("0x0000000000000000");
|
|
778
|
+
smc.multiNetworkIndex = 0;
|
|
779
|
+
smc.flags = 0;
|
|
780
|
+
smc.psaKeyAlgPermission = 0;
|
|
781
|
+
const keyInfo = await this.ezsp.execCommand("exportKey", { context: smc });
|
|
782
|
+
if (keyInfo.status !== named_1.SLStatus.SL_STATUS_OK) {
|
|
783
|
+
logger_1.logger.error(`exportKey(${named_1.EmberKeyType.valueToName(named_1.EmberKeyType, keyType)}) returned unexpected SL status: ${keyInfo.status}`, NS);
|
|
784
|
+
}
|
|
785
|
+
return keyInfo;
|
|
783
786
|
}
|
|
784
787
|
async getNetworkKeyInfo() {
|
|
785
788
|
if (this.ezsp.ezspV < 13) {
|
|
786
|
-
throw new Error(
|
|
789
|
+
throw new Error("getNetKeyInfo(): Invalid call on EZSP < 13.");
|
|
787
790
|
}
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
logger_1.logger.error(`getNetworkKeyInfo() returned unexpected SL status: ${keyInfo.status}`, NS);
|
|
792
|
-
}
|
|
793
|
-
return keyInfo;
|
|
791
|
+
const keyInfo = await this.ezsp.execCommand("getNetworkKeyInfo");
|
|
792
|
+
if (keyInfo.status !== named_1.SLStatus.SL_STATUS_OK) {
|
|
793
|
+
logger_1.logger.error(`getNetworkKeyInfo() returned unexpected SL status: ${keyInfo.status}`, NS);
|
|
794
794
|
}
|
|
795
|
+
return keyInfo;
|
|
795
796
|
}
|
|
796
797
|
async needsToBeRestore(options) {
|
|
797
798
|
// if no backup and the settings have been changed, then need to start a new network
|
|
798
|
-
const backup =
|
|
799
|
+
const backup = this.backupMan.getStoredBackup();
|
|
799
800
|
if (!backup)
|
|
800
801
|
return false;
|
|
801
802
|
let valid = true;
|
|
802
803
|
//valid = valid && (await this.ezsp.networkInit());
|
|
803
|
-
const netParams = await this.ezsp.execCommand(
|
|
804
|
+
const netParams = await this.ezsp.execCommand("getNetworkParameters");
|
|
804
805
|
const networkParams = netParams.parameters;
|
|
805
806
|
logger_1.logger.debug(`Current Node type: ${netParams.nodeType}, Network parameters: ${networkParams}`, NS);
|
|
806
807
|
logger_1.logger.debug(`Backuped network parameters: ${backup.networkOptions}`, NS);
|
|
@@ -813,30 +814,36 @@ class Driver extends node_events_1.EventEmitter {
|
|
|
813
814
|
netKey = Buffer.from(networkKey.keyData.contents);
|
|
814
815
|
}
|
|
815
816
|
// if the settings in the backup match the chip, then need to warn to delete the backup file first
|
|
816
|
-
valid = valid && networkParams.panId
|
|
817
|
-
valid = valid && networkParams.radioChannel
|
|
817
|
+
valid = valid && networkParams.panId === backup.networkOptions.panId;
|
|
818
|
+
valid = valid && networkParams.radioChannel === backup.logicalChannel;
|
|
818
819
|
valid = valid && Buffer.from(networkParams.extendedPanId).equals(backup.networkOptions.extendedPanId);
|
|
819
820
|
valid = valid && Buffer.from(netKey).equals(backup.networkOptions.networkKey);
|
|
820
821
|
if (valid) {
|
|
821
|
-
logger_1.logger.error(
|
|
822
|
+
logger_1.logger.error("Configuration is not consistent with adapter backup!", NS);
|
|
822
823
|
logger_1.logger.error(`- PAN ID: configured=${options.panID}, adapter=${networkParams.panId}, backup=${backup.networkOptions.panId}`, NS);
|
|
823
|
-
logger_1.logger.error(`- Extended PAN ID: configured=${
|
|
824
|
-
|
|
825
|
-
|
|
824
|
+
logger_1.logger.error(`- Extended PAN ID: configured=${
|
|
825
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
826
|
+
Buffer.from(options.extendedPanID).toString("hex")}, ` +
|
|
827
|
+
`adapter=${Buffer.from(networkParams.extendedPanId).toString("hex")}, ` +
|
|
828
|
+
`backup=${Buffer.from(networkParams.extendedPanId).toString("hex")}`, NS);
|
|
826
829
|
logger_1.logger.error(`- Channel: configured=${options.channelList}, adapter=${networkParams.radioChannel}, backup=${backup.logicalChannel}`, NS);
|
|
827
|
-
logger_1.logger.error(`- Network key: configured=${
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
logger_1.logger.error(
|
|
833
|
-
|
|
830
|
+
logger_1.logger.error(`- Network key: configured=${
|
|
831
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
832
|
+
Buffer.from(options.networkKey).toString("hex")}, ` +
|
|
833
|
+
`adapter=${Buffer.from(netKey).toString("hex")}, ` +
|
|
834
|
+
`backup=${backup.networkOptions.networkKey.toString("hex")}`, NS);
|
|
835
|
+
logger_1.logger.error("Please update configuration to prevent further issues.", NS);
|
|
836
|
+
logger_1.logger.error("If you wish to re-commission your network, please remove coordinator backup.", NS);
|
|
837
|
+
logger_1.logger.error("Re-commissioning your network will require re-pairing of all devices!", NS);
|
|
838
|
+
throw new Error("startup failed - configuration-adapter mismatch - see logs above for more information");
|
|
834
839
|
}
|
|
835
840
|
valid = true;
|
|
836
841
|
// if the settings in the backup match the config, then the old network is in the chip and needs to be restored
|
|
837
|
-
valid = valid && options.panID
|
|
842
|
+
valid = valid && options.panID === backup.networkOptions.panId;
|
|
838
843
|
valid = valid && options.channelList.includes(backup.logicalChannel);
|
|
844
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
839
845
|
valid = valid && Buffer.from(options.extendedPanID).equals(backup.networkOptions.extendedPanId);
|
|
846
|
+
// biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
|
|
840
847
|
valid = valid && Buffer.from(options.networkKey).equals(backup.networkOptions.networkKey);
|
|
841
848
|
return valid;
|
|
842
849
|
}
|