zigbee-herdsman 3.5.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/dependabot.yml +9 -3
- package/.github/workflows/ci.yml +2 -4
- package/.github/workflows/stale.yml +1 -1
- package/.release-please-manifest.json +1 -1
- package/.vscode/extensions.json +3 -0
- package/.vscode/settings.json +11 -0
- package/CHANGELOG.md +25 -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 +115 -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 +894 -893
- 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 +6 -13
- 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 +543 -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 +5398 -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 +236 -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/.prettierignore +0 -2
- package/.prettierrc +0 -26
- package/eslint.config.mjs +0 -32
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
import assert from "node:assert";
|
|
2
|
+
|
|
3
|
+
import {NvItemsIds, type NvSystemIds, ZnpCommandStatus} from "../constants/common";
|
|
4
|
+
import type * as Structs from "../structs";
|
|
5
|
+
import type {BuiltTable} from "../structs";
|
|
6
|
+
import {Subsystem} from "../unpi/constants";
|
|
7
|
+
import type {Znp} from "../znp";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Adapter non-volatile memory instrumentation. This class provides interface to interact
|
|
11
|
+
* with ZNP adapter's NV memory. Provided functionality covers basic operations from reading,
|
|
12
|
+
* writing and deleting keys to extended table manipulation.
|
|
13
|
+
*/
|
|
14
|
+
export class AdapterNvMemory {
|
|
15
|
+
public memoryAlignment?: Structs.StructMemoryAlignment;
|
|
16
|
+
|
|
17
|
+
private znp: Znp;
|
|
18
|
+
|
|
19
|
+
public constructor(znp: Znp) {
|
|
20
|
+
this.znp = znp;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Initialize NV memory driver by examining target and determining memory alignment.
|
|
25
|
+
*/
|
|
26
|
+
public async init(): Promise<void> {
|
|
27
|
+
/* use `ZCD_NV_NWKKEY` to determine if target platform uses memory alignment (length 21 = unaligned, length 24 = aligned) */
|
|
28
|
+
const rawNwkKey = await this.readItem(NvItemsIds.NWKKEY);
|
|
29
|
+
this.memoryAlignment = rawNwkKey.length === 21 ? "unaligned" : "aligned";
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Reads a variable-length item from NV memory and returns buffer object. Read can be offset as required.
|
|
34
|
+
*
|
|
35
|
+
* @param id NV item identifier.
|
|
36
|
+
* @param offset Desired data offset to read from.
|
|
37
|
+
*/
|
|
38
|
+
public async readItem(id: NvItemsIds, offset?: number): Promise<Buffer>;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Reads a variable-length item from NV memory and creates a builds a requested struct.
|
|
42
|
+
*
|
|
43
|
+
* @param id NV item identifier.
|
|
44
|
+
* @param offset Desired data offset to read from.
|
|
45
|
+
* @param useStruct Struct factory to use to wrap the data in.
|
|
46
|
+
*/
|
|
47
|
+
public async readItem<R extends Structs.BuiltStruct, T extends R | Structs.BuiltTable<R>>(
|
|
48
|
+
id: NvItemsIds,
|
|
49
|
+
offset?: number,
|
|
50
|
+
useStruct?: Structs.MemoryObjectFactory<T>,
|
|
51
|
+
): Promise<T>;
|
|
52
|
+
|
|
53
|
+
public async readItem<R extends Structs.BuiltStruct, T extends R | Structs.BuiltTable<R>>(
|
|
54
|
+
id: NvItemsIds,
|
|
55
|
+
offset = 0,
|
|
56
|
+
useStruct?: Structs.MemoryObjectFactory<T>,
|
|
57
|
+
): Promise<Buffer | T | null> {
|
|
58
|
+
if (useStruct) {
|
|
59
|
+
this.checkMemoryAlignmentSetup();
|
|
60
|
+
}
|
|
61
|
+
const lengthResponse = await this.retry(() => this.znp.requestWithReply(Subsystem.SYS, "osalNvLength", {id}));
|
|
62
|
+
if (!lengthResponse?.payload?.length || lengthResponse?.payload?.length === 0) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const length = lengthResponse.payload.length;
|
|
66
|
+
const buffer = Buffer.alloc(length);
|
|
67
|
+
while (offset < length) {
|
|
68
|
+
const readResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "osalNvReadExt", {id, offset}));
|
|
69
|
+
/* v8 ignore start */
|
|
70
|
+
if (!readResponse) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
if (readResponse.payload?.status !== 0) {
|
|
74
|
+
throw new Error(`Received non-success status while reading NV (id=${id}, offset=${offset}, status=${readResponse.payload.status})`);
|
|
75
|
+
}
|
|
76
|
+
/* v8 ignore stop */
|
|
77
|
+
buffer.set(readResponse.payload.value, offset);
|
|
78
|
+
offset += readResponse.payload.value.length;
|
|
79
|
+
}
|
|
80
|
+
if (useStruct) {
|
|
81
|
+
return useStruct(buffer, this.memoryAlignment) as T;
|
|
82
|
+
}
|
|
83
|
+
return buffer;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Writes data to adapter NV memory. Method fails if write fails.
|
|
88
|
+
*
|
|
89
|
+
* @param id NV item identifier.
|
|
90
|
+
* @param data Data to be written.
|
|
91
|
+
* @param offset Offset within NV item to write the data.
|
|
92
|
+
* @param autoInit Whether NV item should be automatically initialized if not present.
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
public async writeItem(id: NvItemsIds, data: Buffer | Structs.SerializableMemoryObject, offset = 0, autoInit = true): Promise<void> {
|
|
96
|
+
this.checkMemoryAlignmentSetup();
|
|
97
|
+
const buffer = Buffer.isBuffer(data) ? data : data.serialize(this.memoryAlignment);
|
|
98
|
+
const lengthResponse = await this.retry(() => this.znp.requestWithReply(Subsystem.SYS, "osalNvLength", {id}));
|
|
99
|
+
const exists = lengthResponse.payload.length && lengthResponse.payload.length > 0;
|
|
100
|
+
if (!exists) {
|
|
101
|
+
/* v8 ignore next */
|
|
102
|
+
const initLength = buffer.length > 240 ? 240 : buffer.length;
|
|
103
|
+
/* v8 ignore start */
|
|
104
|
+
if (!autoInit) {
|
|
105
|
+
throw new Error(`Cannot write NV memory item which does not exist (id=${id})`);
|
|
106
|
+
}
|
|
107
|
+
/* v8 ignore stop */
|
|
108
|
+
const initResponse = await this.retry(() =>
|
|
109
|
+
this.znp.requestWithReply(
|
|
110
|
+
Subsystem.SYS,
|
|
111
|
+
"osalNvItemInit",
|
|
112
|
+
{id, len: buffer.length, initlen: initLength, initvalue: buffer.slice(0, initLength)},
|
|
113
|
+
undefined,
|
|
114
|
+
undefined,
|
|
115
|
+
[ZnpCommandStatus.SUCCESS, ZnpCommandStatus.NV_ITEM_INITIALIZED],
|
|
116
|
+
),
|
|
117
|
+
);
|
|
118
|
+
/* v8 ignore start */
|
|
119
|
+
if (initResponse.payload.status !== 0x09) {
|
|
120
|
+
throw new Error(
|
|
121
|
+
`Failed to initialize NV memory item (id=${id}, name=${NvItemsIds[id]}, len=${buffer.length}, status=${initResponse.payload.status})`,
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
/* v8 ignore stop */
|
|
125
|
+
}
|
|
126
|
+
let remaining = buffer.length;
|
|
127
|
+
while (remaining > 0) {
|
|
128
|
+
/* v8 ignore next */
|
|
129
|
+
const writeLength = remaining > 240 ? 240 : remaining;
|
|
130
|
+
const dataOffset = buffer.length - remaining;
|
|
131
|
+
const writeData = buffer.slice(dataOffset, dataOffset + writeLength);
|
|
132
|
+
const writeResponse = await this.retry(() =>
|
|
133
|
+
this.znp.requestWithReply(Subsystem.SYS, "osalNvWriteExt", {id, offset: dataOffset, len: writeLength, value: writeData}),
|
|
134
|
+
);
|
|
135
|
+
/* v8 ignore start */
|
|
136
|
+
if (writeResponse.payload.status !== 0) {
|
|
137
|
+
throw new Error(`Received non-success status while writing NV (id=${id}, offset=${offset}, status=${writeResponse.payload.status})`);
|
|
138
|
+
}
|
|
139
|
+
/* v8 ignore stop */
|
|
140
|
+
remaining -= writeLength;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Determines whether NV item is different from provided data and updates if necessary.
|
|
146
|
+
*
|
|
147
|
+
* @param id NV item identifier.
|
|
148
|
+
* @param data Desired NV item value.
|
|
149
|
+
* @param autoInit Whether NV item should be automatically initialized if not present.
|
|
150
|
+
*/
|
|
151
|
+
public async updateItem(id: NvItemsIds, data: Buffer, autoInit = true): Promise<void> {
|
|
152
|
+
this.checkMemoryAlignmentSetup();
|
|
153
|
+
const current = await this.readItem(id);
|
|
154
|
+
if (!current || !current.equals(data)) {
|
|
155
|
+
await this.writeItem(id, data, 0, autoInit);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Deletes an NV memory item.
|
|
161
|
+
*
|
|
162
|
+
* @param id NV item identifier.
|
|
163
|
+
*/
|
|
164
|
+
public async deleteItem(id: NvItemsIds): Promise<void> {
|
|
165
|
+
this.checkMemoryAlignmentSetup();
|
|
166
|
+
const lengthResponse = await this.retry(() => this.znp.requestWithReply(Subsystem.SYS, "osalNvLength", {id}));
|
|
167
|
+
const exists = lengthResponse.payload.length && lengthResponse.payload.length > 0;
|
|
168
|
+
|
|
169
|
+
if (exists) {
|
|
170
|
+
const deleteResponse = await this.retry(() =>
|
|
171
|
+
this.znp.requestWithReply(Subsystem.SYS, "osalNvDelete", {id, len: lengthResponse.payload.length}),
|
|
172
|
+
);
|
|
173
|
+
/* v8 ignore start */
|
|
174
|
+
if (!deleteResponse || ![ZnpCommandStatus.SUCCESS, ZnpCommandStatus.NV_ITEM_INITIALIZED].includes(deleteResponse.payload.status)) {
|
|
175
|
+
throw new Error(`Received non-success status while deleting NV (id=${id}, status=${deleteResponse.payload.status})`);
|
|
176
|
+
}
|
|
177
|
+
/* v8 ignore stop */
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Reads extended table entry (used by Z-Stack 3.x+). NV tables within newer Z-Stack releases include 16-bit `subId`
|
|
183
|
+
* identifying table entries.
|
|
184
|
+
*
|
|
185
|
+
* @param sysId SimpleLink system identifier.
|
|
186
|
+
* @param id NV item identifier.
|
|
187
|
+
* @param subId Entry index.
|
|
188
|
+
* @param offset Data offset to read from.
|
|
189
|
+
*/
|
|
190
|
+
public async readExtendedTableEntry(sysId: NvSystemIds, id: NvItemsIds, subId: number, offset?: number): Promise<Buffer>;
|
|
191
|
+
public async readExtendedTableEntry<T extends Structs.BuiltStruct>(
|
|
192
|
+
sysId: NvSystemIds,
|
|
193
|
+
id: NvItemsIds,
|
|
194
|
+
subId: number,
|
|
195
|
+
offset?: number,
|
|
196
|
+
useStruct?: Structs.MemoryObjectFactory<T>,
|
|
197
|
+
): Promise<T>;
|
|
198
|
+
public async readExtendedTableEntry<T extends Structs.BuiltStruct>(
|
|
199
|
+
sysId: NvSystemIds,
|
|
200
|
+
id: NvItemsIds,
|
|
201
|
+
subId: number,
|
|
202
|
+
offset?: number,
|
|
203
|
+
useStruct?: Structs.MemoryObjectFactory<T>,
|
|
204
|
+
): Promise<Buffer | T | null> {
|
|
205
|
+
this.checkMemoryAlignmentSetup();
|
|
206
|
+
const lengthResponse = await this.retry(() => this.znp.requestWithReply(Subsystem.SYS, "nvLength", {sysid: sysId, itemid: id, subid: subId}));
|
|
207
|
+
const exists = lengthResponse.payload.len && lengthResponse.payload.len > 0;
|
|
208
|
+
if (exists) {
|
|
209
|
+
const readResponse = await this.retry(() =>
|
|
210
|
+
this.znp.requestWithReply(Subsystem.SYS, "nvRead", {
|
|
211
|
+
sysid: sysId,
|
|
212
|
+
itemid: id,
|
|
213
|
+
subid: subId,
|
|
214
|
+
offset: offset || 0,
|
|
215
|
+
len: lengthResponse.payload.len,
|
|
216
|
+
}),
|
|
217
|
+
);
|
|
218
|
+
/* v8 ignore start */
|
|
219
|
+
if (readResponse.payload.status !== 0) {
|
|
220
|
+
throw new Error(
|
|
221
|
+
`Received non-success status while reading NV extended table entry (sysId=${sysId}, id=${id}, subId=${subId}, offset=${offset}, status=${readResponse.payload.status})`,
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
/* v8 ignore stop */
|
|
225
|
+
/* v8 ignore next */
|
|
226
|
+
return useStruct ? useStruct(readResponse.payload.value) : readResponse.payload.value;
|
|
227
|
+
}
|
|
228
|
+
return null;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Writes extended table entry (user by Z-Stack 3.x+). NV tables within newer Z-Stack releases include 16-bit `subId`
|
|
233
|
+
* identifying table tnreis.
|
|
234
|
+
*
|
|
235
|
+
* @param sysId SimpleLink system identifier.
|
|
236
|
+
* @param id NV item identifier.
|
|
237
|
+
* @param subId Entry index.
|
|
238
|
+
* @param data Data to write to the table.
|
|
239
|
+
* @param offset Offset to write at.
|
|
240
|
+
* @param autoInit Whether non-existent entry should be automatically initialized.
|
|
241
|
+
*/
|
|
242
|
+
public async writeExtendedTableEntry(
|
|
243
|
+
sysId: NvSystemIds,
|
|
244
|
+
id: NvItemsIds,
|
|
245
|
+
subId: number,
|
|
246
|
+
data: Buffer,
|
|
247
|
+
offset?: number,
|
|
248
|
+
autoInit = true,
|
|
249
|
+
): Promise<void> {
|
|
250
|
+
this.checkMemoryAlignmentSetup();
|
|
251
|
+
const lengthResponse = await this.retry(() => this.znp.requestWithReply(Subsystem.SYS, "nvLength", {sysid: sysId, itemid: id, subid: subId}));
|
|
252
|
+
const exists = lengthResponse.payload.len && lengthResponse.payload.len > 0;
|
|
253
|
+
/* v8 ignore start */
|
|
254
|
+
if (!exists) {
|
|
255
|
+
if (!autoInit) {
|
|
256
|
+
throw new Error(`Cannot write NV memory extended table item which does not exist (sudId=${sysId}, id=${id}, subId=${subId})`);
|
|
257
|
+
}
|
|
258
|
+
const createResponse = await this.retry(() =>
|
|
259
|
+
this.znp.request(Subsystem.SYS, "nvCreate", {sysid: sysId, itemid: id, subid: subId, len: data.length}),
|
|
260
|
+
);
|
|
261
|
+
if (!createResponse || createResponse.payload.status !== ZnpCommandStatus.SUCCESS) {
|
|
262
|
+
throw new Error(`Failed to crate NV memory extended table item with status (sudId=${sysId}, id=${id}, subId=${subId})`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
/* v8 ignore stop */
|
|
266
|
+
const writeResponse = await this.retry(() =>
|
|
267
|
+
this.znp.requestWithReply(Subsystem.SYS, "nvWrite", {
|
|
268
|
+
sysid: sysId,
|
|
269
|
+
itemid: id,
|
|
270
|
+
subid: subId,
|
|
271
|
+
offset: offset || 0,
|
|
272
|
+
len: data.length,
|
|
273
|
+
value: data,
|
|
274
|
+
}),
|
|
275
|
+
);
|
|
276
|
+
/* v8 ignore start */
|
|
277
|
+
if (writeResponse.payload.status !== 0) {
|
|
278
|
+
throw new Error(
|
|
279
|
+
`Received non-success status while writing NV extended table idem (sudId=${sysId}, id=${id}, subId=${subId}, offset=${offset}, status=${writeResponse.payload.status})`,
|
|
280
|
+
);
|
|
281
|
+
}
|
|
282
|
+
/* v8 ignore stop */
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Reads a legacy NV table at defined index into raw `Buffer` object array. Providing maximum
|
|
287
|
+
* length is necessary in order to prevent invalid memory access.
|
|
288
|
+
*
|
|
289
|
+
* @param mode Only legacy mode is supported with this signature.
|
|
290
|
+
* @param id The item index at which the table starts.
|
|
291
|
+
* @param maxLength Maximum number of items the table may contain.
|
|
292
|
+
*/
|
|
293
|
+
public async readTable(mode: "legacy", id: NvItemsIds, maxLength: number): Promise<Buffer[]>;
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Reads a legacy table at defined index into a table structure covering struct entries.
|
|
297
|
+
* Providing maximum length is necessary in order to prevent invalid memory access.
|
|
298
|
+
*
|
|
299
|
+
* @param mode Only legacy mode is supported with this signature.
|
|
300
|
+
* @param id The item index at which the table starts.
|
|
301
|
+
* @param maxLength Maximum number of items the table may contain.
|
|
302
|
+
* @param useTable Table factory to spawn a table and populate with retrieved data.
|
|
303
|
+
*/
|
|
304
|
+
public async readTable<R extends Structs.BuiltStruct, T extends Structs.BuiltTable<R>>(
|
|
305
|
+
mode: "legacy",
|
|
306
|
+
id: NvItemsIds,
|
|
307
|
+
maxLength: number,
|
|
308
|
+
useTable?: Structs.MemoryObjectFactory<T>,
|
|
309
|
+
): Promise<T>;
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Reads an extended (Z-Stack 3.x.0+) table into raw `Buffer` object array.
|
|
313
|
+
* Maximum length is optional since the table boundary can be detected automatically.
|
|
314
|
+
*
|
|
315
|
+
* @param mode Only extended mode is supported with this signature.
|
|
316
|
+
* @param sysId SimpleLink system identifier.
|
|
317
|
+
* @param id Extended table NV index.
|
|
318
|
+
* @param maxLength Maximum number of entries to load from the table.
|
|
319
|
+
*/
|
|
320
|
+
public async readTable(mode: "extended", sysId: NvSystemIds, id: NvItemsIds, maxLength?: number): Promise<Buffer[]>;
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* Reads an extended (Z-Stack 3.x.0+) table into a table structure covering struct entries.
|
|
324
|
+
* Maximum length is optional since the table boundary can be detected automatically.
|
|
325
|
+
*
|
|
326
|
+
* @param mode Only extended mode is supported with this signature.
|
|
327
|
+
* @param sysId SimpleLink system identifier.
|
|
328
|
+
* @param id Extended table NV index.
|
|
329
|
+
* @param maxLength Maximum number of entries to load from the table.
|
|
330
|
+
* @param useTable Table factory to spawn a table and populate with retrieved data.
|
|
331
|
+
*/
|
|
332
|
+
public async readTable<R extends Structs.BuiltStruct, T extends Structs.BuiltTable<R>>(
|
|
333
|
+
mode: "extended",
|
|
334
|
+
sysId: NvSystemIds,
|
|
335
|
+
id: NvItemsIds,
|
|
336
|
+
maxLength?: number,
|
|
337
|
+
useTable?: Structs.MemoryObjectFactory<T>,
|
|
338
|
+
): Promise<T>;
|
|
339
|
+
|
|
340
|
+
public async readTable<R extends Structs.BuiltStruct, T extends Structs.BuiltTable<R>>(
|
|
341
|
+
mode: "legacy" | "extended",
|
|
342
|
+
p1: NvSystemIds | NvItemsIds,
|
|
343
|
+
p2: NvItemsIds | number,
|
|
344
|
+
p3?: Structs.MemoryObjectFactory<T> | number,
|
|
345
|
+
p4?: Structs.MemoryObjectFactory<T>,
|
|
346
|
+
): Promise<Buffer[] | T> {
|
|
347
|
+
const sysId = mode === "legacy" ? undefined : (p1 as NvSystemIds);
|
|
348
|
+
const id = (mode === "legacy" ? p1 : p2) as NvItemsIds;
|
|
349
|
+
const maxLength = (mode === "legacy" ? p2 : p3) as number;
|
|
350
|
+
const useTable = (mode === "legacy" ? p3 : p4) as Structs.MemoryObjectFactory<T>;
|
|
351
|
+
|
|
352
|
+
const rawEntries: Buffer[] = [];
|
|
353
|
+
let entryOffset = 0;
|
|
354
|
+
let rawEntry = null;
|
|
355
|
+
if (mode === "legacy") {
|
|
356
|
+
do {
|
|
357
|
+
rawEntry = await this.readItem(id + entryOffset++);
|
|
358
|
+
if (rawEntry) {
|
|
359
|
+
rawEntries.push(rawEntry);
|
|
360
|
+
}
|
|
361
|
+
} while (rawEntry !== null && entryOffset < maxLength);
|
|
362
|
+
} else {
|
|
363
|
+
do {
|
|
364
|
+
assert(sysId !== undefined);
|
|
365
|
+
rawEntry = await this.readExtendedTableEntry(sysId, id, entryOffset++);
|
|
366
|
+
if (rawEntry) {
|
|
367
|
+
rawEntries.push(rawEntry);
|
|
368
|
+
}
|
|
369
|
+
/* v8 ignore next */
|
|
370
|
+
} while (rawEntry !== null && (!maxLength || entryOffset < maxLength));
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/* v8 ignore next */
|
|
374
|
+
return useTable ? useTable(rawEntries) : rawEntries;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* Writes a struct-based table structure into a legacy NV memory position.
|
|
379
|
+
*
|
|
380
|
+
* @param mode Only legacy mode is supported with this signature.
|
|
381
|
+
* @param id Start NV item index.
|
|
382
|
+
* @param table Table structure to write to NV memory.
|
|
383
|
+
*/
|
|
384
|
+
public async writeTable<R extends Structs.BuiltStruct>(mode: "legacy", id: NvItemsIds, table: BuiltTable<R>): Promise<void>;
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* Writes a struct-based table structure into an extended NV memory position.
|
|
388
|
+
*
|
|
389
|
+
* @param mode Only extended mode is supported with this signature.
|
|
390
|
+
* @param sysId SimpleLink system identifier.
|
|
391
|
+
* @param id Extended table NV item index.
|
|
392
|
+
* @param table Table structure to write to NV memory.
|
|
393
|
+
*/
|
|
394
|
+
public async writeTable<R extends Structs.BuiltStruct>(mode: "extended", sysId: NvSystemIds, id: NvItemsIds, table: BuiltTable<R>): Promise<void>;
|
|
395
|
+
|
|
396
|
+
public async writeTable<R extends Structs.BuiltStruct>(
|
|
397
|
+
mode: "extended" | "legacy",
|
|
398
|
+
p1: NvSystemIds | NvItemsIds,
|
|
399
|
+
p2: NvItemsIds | BuiltTable<R>,
|
|
400
|
+
p3?: BuiltTable<R>,
|
|
401
|
+
): Promise<void> {
|
|
402
|
+
this.checkMemoryAlignmentSetup();
|
|
403
|
+
const sysId = mode === "legacy" ? undefined : (p1 as NvSystemIds);
|
|
404
|
+
const id = (mode === "legacy" ? p1 : p2) as NvItemsIds;
|
|
405
|
+
const table = (mode === "legacy" ? p2 : p3) as BuiltTable<R>;
|
|
406
|
+
|
|
407
|
+
if (mode === "legacy") {
|
|
408
|
+
for (const [index, entry] of table.entries.entries()) {
|
|
409
|
+
await this.writeItem(id + index, entry.serialize(this.memoryAlignment));
|
|
410
|
+
}
|
|
411
|
+
} else {
|
|
412
|
+
assert(sysId !== undefined);
|
|
413
|
+
for (const [index, entry] of table.entries.entries()) {
|
|
414
|
+
await this.writeExtendedTableEntry(sysId, id, index, entry.serialize(this.memoryAlignment));
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* Internal function to prevent occasional ZNP request failures.
|
|
421
|
+
*
|
|
422
|
+
* *Some timeouts were present when working with SimpleLink Z-Stack 3.x.0+.*
|
|
423
|
+
*
|
|
424
|
+
* @param fn Function to retry.
|
|
425
|
+
* @param retries Maximum number of retries.
|
|
426
|
+
*/
|
|
427
|
+
// @ts-expect-error always returns something or throws an error as retries >= 1
|
|
428
|
+
private async retry<R>(fn: () => Promise<R>, retries = 3): Promise<R> {
|
|
429
|
+
assert(retries >= 1);
|
|
430
|
+
let i = 0;
|
|
431
|
+
while (i < retries) {
|
|
432
|
+
try {
|
|
433
|
+
const result = await fn();
|
|
434
|
+
return result;
|
|
435
|
+
/* v8 ignore start */
|
|
436
|
+
} catch (error) {
|
|
437
|
+
if (i >= retries) {
|
|
438
|
+
throw error;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
i++;
|
|
443
|
+
}
|
|
444
|
+
/* v8 ignore stop */
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* Internal function used by NV manipulation methods to check for correct driver initialization.
|
|
449
|
+
*/
|
|
450
|
+
private checkMemoryAlignmentSetup(): void {
|
|
451
|
+
/* v8 ignore start */
|
|
452
|
+
if (this.memoryAlignment === undefined) {
|
|
453
|
+
throw new Error("adapter memory alignment unknown - has nv memory driver been initialized?");
|
|
454
|
+
}
|
|
455
|
+
/* v8 ignore stop */
|
|
456
|
+
}
|
|
457
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import {Clusters} from "../../../zspec/zcl/definition/cluster";
|
|
2
|
+
import * as Constants from "../constants";
|
|
3
|
+
|
|
4
|
+
const EndpointDefaults: {
|
|
5
|
+
appdeviceid: number;
|
|
6
|
+
appdevver: number;
|
|
7
|
+
appnuminclusters: number;
|
|
8
|
+
appinclusterlist: number[];
|
|
9
|
+
appnumoutclusters: number;
|
|
10
|
+
appoutclusterlist: number[];
|
|
11
|
+
latencyreq: number;
|
|
12
|
+
} = {
|
|
13
|
+
appdeviceid: 0x0005,
|
|
14
|
+
appdevver: 0,
|
|
15
|
+
appnuminclusters: 0,
|
|
16
|
+
appinclusterlist: [],
|
|
17
|
+
appnumoutclusters: 0,
|
|
18
|
+
appoutclusterlist: [],
|
|
19
|
+
latencyreq: Constants.AF.networkLatencyReq.NO_LATENCY_REQS,
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const Endpoints = [
|
|
23
|
+
{...EndpointDefaults, endpoint: 1, appprofid: 0x0104},
|
|
24
|
+
{...EndpointDefaults, endpoint: 2, appprofid: 0x0101},
|
|
25
|
+
// Required for https://github.com/Koenkk/zigbee-herdsman-converters/commit/d0fb06c2429171f327950484ea3dec80864637cc
|
|
26
|
+
{...EndpointDefaults, endpoint: 3, appprofid: 0x0104},
|
|
27
|
+
{...EndpointDefaults, endpoint: 4, appprofid: 0x0107},
|
|
28
|
+
{...EndpointDefaults, endpoint: 5, appprofid: 0x0108},
|
|
29
|
+
{...EndpointDefaults, endpoint: 6, appprofid: 0x0109},
|
|
30
|
+
{...EndpointDefaults, endpoint: 8, appprofid: 0x0104},
|
|
31
|
+
{...EndpointDefaults, endpoint: 10, appprofid: 0x0104},
|
|
32
|
+
{
|
|
33
|
+
...EndpointDefaults,
|
|
34
|
+
endpoint: 11,
|
|
35
|
+
appprofid: 0x0104,
|
|
36
|
+
appdeviceid: 0x0400,
|
|
37
|
+
appnumoutclusters: 2,
|
|
38
|
+
appoutclusterlist: [Clusters.ssIasZone.ID, Clusters.ssIasWd.ID],
|
|
39
|
+
appnuminclusters: 2,
|
|
40
|
+
// genTime required for https://github.com/Koenkk/zigbee2mqtt/issues/10816
|
|
41
|
+
appinclusterlist: [Clusters.ssIasAce.ID, Clusters.genTime.ID],
|
|
42
|
+
},
|
|
43
|
+
// TERNCY: https://github.com/Koenkk/zigbee-herdsman/issues/82
|
|
44
|
+
{...EndpointDefaults, endpoint: 0x6e, appprofid: 0x0104},
|
|
45
|
+
{...EndpointDefaults, endpoint: 12, appprofid: 0xc05e},
|
|
46
|
+
{
|
|
47
|
+
...EndpointDefaults,
|
|
48
|
+
endpoint: 13,
|
|
49
|
+
appprofid: 0x0104,
|
|
50
|
+
appnuminclusters: 1,
|
|
51
|
+
appinclusterlist: [Clusters.genOta.ID],
|
|
52
|
+
},
|
|
53
|
+
// Insta/Jung/Gira: OTA fallback EP (since it's buggy in firmware 10023202 when it tries to find a matching EP for
|
|
54
|
+
// OTA - it queries for ZLL profile, but then contacts with HA profile)
|
|
55
|
+
{...EndpointDefaults, endpoint: 47, appprofid: 0x0104},
|
|
56
|
+
{...EndpointDefaults, endpoint: 242, appprofid: 0xa1e0},
|
|
57
|
+
];
|