@switchbot/homebridge-switchbot 5.0.0 → 5.1.0-beta.1
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/npm-version-script-esm.js +97 -0
- package/CHANGELOG.md +21 -8
- package/MIGRATION.md +5 -0
- package/README.md +25 -0
- package/config.schema.json +11 -0
- package/dist/SwitchBotHAPPlatform.d.ts.map +1 -1
- package/dist/SwitchBotHAPPlatform.js +33 -4
- package/dist/SwitchBotHAPPlatform.js.map +1 -1
- package/dist/SwitchBotMatterPlatform.d.ts +2 -0
- package/dist/SwitchBotMatterPlatform.d.ts.map +1 -1
- package/dist/SwitchBotMatterPlatform.js +61 -5
- package/dist/SwitchBotMatterPlatform.js.map +1 -1
- package/dist/homebridge-ui/endpoints/config.d.ts.map +1 -1
- package/dist/homebridge-ui/endpoints/config.js +9 -2
- package/dist/homebridge-ui/endpoints/config.js.map +1 -1
- package/dist/homebridge-ui/homebridge-ui/endpoints/config.js +9 -2
- package/dist/homebridge-ui/homebridge-ui/endpoints/config.js.map +1 -1
- package/dist/homebridge-ui/homebridge-ui/utils/config-parser.js +8 -0
- package/dist/homebridge-ui/homebridge-ui/utils/config-parser.js.map +1 -1
- package/dist/homebridge-ui/homebridge-ui/utils/v4-detection.js +23 -0
- package/dist/homebridge-ui/homebridge-ui/utils/v4-detection.js.map +1 -0
- package/dist/homebridge-ui/public/css/styles.css +61 -1
- package/dist/homebridge-ui/public/index.html +25 -2
- package/dist/homebridge-ui/public/js/api.d.ts +16 -0
- package/dist/homebridge-ui/public/js/api.d.ts.map +1 -1
- package/dist/homebridge-ui/public/js/api.js +48 -0
- package/dist/homebridge-ui/public/js/api.js.map +1 -1
- package/dist/homebridge-ui/public/js/api.ts +61 -1
- package/dist/homebridge-ui/public/js/app.js +237 -111
- package/dist/homebridge-ui/public/js/app.js.map +4 -4
- package/dist/homebridge-ui/public/js/app.ts +22 -4
- package/dist/homebridge-ui/public/js/devices.d.ts.map +1 -1
- package/dist/homebridge-ui/public/js/devices.js +6 -0
- package/dist/homebridge-ui/public/js/devices.js.map +1 -1
- package/dist/homebridge-ui/public/js/devices.ts +6 -0
- package/dist/homebridge-ui/public/js/modals.d.ts +1 -0
- package/dist/homebridge-ui/public/js/modals.d.ts.map +1 -1
- package/dist/homebridge-ui/public/js/modals.js +53 -0
- package/dist/homebridge-ui/public/js/modals.js.map +1 -1
- package/dist/homebridge-ui/public/js/modals.ts +58 -0
- package/dist/homebridge-ui/public/js/render.d.ts.map +1 -1
- package/dist/homebridge-ui/public/js/render.js +2 -1
- package/dist/homebridge-ui/public/js/render.js.map +1 -1
- package/dist/homebridge-ui/public/js/render.ts +2 -1
- package/dist/homebridge-ui/settings.js.map +1 -1
- package/dist/homebridge-ui/utils/config-parser.d.ts +8 -0
- package/dist/homebridge-ui/utils/config-parser.d.ts.map +1 -1
- package/dist/homebridge-ui/utils/config-parser.js +8 -0
- package/dist/homebridge-ui/utils/config-parser.js.map +1 -1
- package/dist/homebridge-ui/utils/v4-detection.d.ts +12 -0
- package/dist/homebridge-ui/utils/v4-detection.d.ts.map +1 -0
- package/dist/homebridge-ui/utils/v4-detection.js +23 -0
- package/dist/homebridge-ui/utils/v4-detection.js.map +1 -0
- package/dist/settings.d.ts +11 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js.map +1 -1
- package/dist/utils.d.ts +5 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +27 -0
- package/dist/utils.js.map +1 -1
- package/docs/assets/highlight.css +15 -15
- package/docs/assets/icons.js +1 -1
- package/docs/assets/icons.svg +1 -1
- package/docs/assets/main.js +3 -3
- package/docs/index.html +22 -5
- package/docs/variables/default.html +1 -1
- package/package.json +6 -6
- package/scripts/build-ui.js +30 -0
- package/src/SwitchBotHAPPlatform.ts +31 -6
- package/src/SwitchBotMatterPlatform.ts +61 -7
- package/src/homebridge-ui/endpoints/config.ts +10 -2
- package/src/homebridge-ui/public/css/styles.css +61 -1
- package/src/homebridge-ui/public/index.html +23 -0
- package/src/homebridge-ui/public/js/api.ts +61 -1
- package/src/homebridge-ui/public/js/app.ts +22 -4
- package/src/homebridge-ui/public/js/devices.ts +6 -0
- package/src/homebridge-ui/public/js/modals.ts +58 -0
- package/src/homebridge-ui/public/js/render.ts +2 -1
- package/src/homebridge-ui/utils/config-parser.ts +9 -0
- package/src/homebridge-ui/utils/v4-detection.ts +23 -0
- package/src/settings.ts +12 -0
- package/src/utils.ts +31 -0
- package/test/homebridge-ui/config-parser.spec.ts +61 -0
- package/test/platform/matter-integration.spec.ts +50 -0
- package/test/utils/utils.spec.ts +15 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This scripts queries the npm registry to pull out the latest version for a given tag.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import assert from 'node:assert'
|
|
8
|
+
import child_process from 'node:child_process'
|
|
9
|
+
import fs from 'node:fs'
|
|
10
|
+
import process from 'node:process'
|
|
11
|
+
|
|
12
|
+
const BRANCH_VERSION_PATTERN = /^([A-Z]+)-(\d+\.\d+\.\d+)$/i
|
|
13
|
+
|
|
14
|
+
// Load the contents of the package.json file
|
|
15
|
+
const packageJSON = JSON.parse(fs.readFileSync('package.json', 'utf8'))
|
|
16
|
+
|
|
17
|
+
const refArgument = process.argv[2]
|
|
18
|
+
const tagArgument = process.argv[3] || 'latest'
|
|
19
|
+
|
|
20
|
+
if (!refArgument) {
|
|
21
|
+
console.error('ref argument is missing')
|
|
22
|
+
console.error('Usage: npm-version-script-esm.js <ref> [tag]')
|
|
23
|
+
process.exit(1)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Queries the NPM registry for the latest version for the provided base version and tag.
|
|
28
|
+
* If the tag is latest, then the base version is returned if it exists. For other tags, the latest
|
|
29
|
+
* version found for that base version and tag is returned.
|
|
30
|
+
* @param baseVersion The base version to query for, e.g. 2.0.0
|
|
31
|
+
* @param tag The tag to query for, e.g. beta or latest
|
|
32
|
+
* @returns {string} Returns the version, or '' if not found
|
|
33
|
+
*/
|
|
34
|
+
function getTagVersionFromNpm(baseVersion, tag) {
|
|
35
|
+
try {
|
|
36
|
+
return JSON.parse(child_process.execSync(`npm info ${packageJSON.name} versions --json`).toString('utf8').trim())
|
|
37
|
+
.filter(v => tag === 'latest' ? v === baseVersion : v.startsWith(`${baseVersion}-${tag}.`)) // find all published versions for this base version and tag
|
|
38
|
+
.reduce((_, current) => current, '') // choose the last as they're sorted in ascending order, or '' if there are none
|
|
39
|
+
} catch (e) {
|
|
40
|
+
console.error(`Failed to query the npm registry for the latest version for tag: ${tag}`, e)
|
|
41
|
+
// throw e;
|
|
42
|
+
return ''
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function desiredTargetVersion(ref) {
|
|
47
|
+
// ref is a GitHub action ref string
|
|
48
|
+
if (ref.startsWith('refs/pull/')) {
|
|
49
|
+
throw new Error('The version script was executed inside a PR!')
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
assert(ref.startsWith('refs/heads/'))
|
|
53
|
+
const branchName = ref.slice('refs/heads/'.length)
|
|
54
|
+
|
|
55
|
+
const results = branchName.match(BRANCH_VERSION_PATTERN)
|
|
56
|
+
if (results !== null) {
|
|
57
|
+
if (results[1] !== tagArgument) {
|
|
58
|
+
console.warn(`The base branch name (${results[1]}) differs from the tag name ${tagArgument}`)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return results[2]
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
throw new Error(`Malformed branch name for ref: ${ref}. Can't derive the base version. Use a branch name like: beta-x.x.x or alpha-x.x.x`)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// derive the base version from the branch ref
|
|
68
|
+
const baseVersion = desiredTargetVersion(refArgument)
|
|
69
|
+
|
|
70
|
+
// query the npm registry for the latest version of the provided tag name
|
|
71
|
+
const latestReleasedVersion = getTagVersionFromNpm(baseVersion, tagArgument) // e.g. 0.7.0-beta.12
|
|
72
|
+
|
|
73
|
+
let publishTag
|
|
74
|
+
|
|
75
|
+
if (latestReleasedVersion) {
|
|
76
|
+
console.warn(`Latest published version for ${baseVersion} with tag ${tagArgument} is ${latestReleasedVersion}`)
|
|
77
|
+
publishTag = latestReleasedVersion // set this released beta or alpha to be incremented
|
|
78
|
+
} else {
|
|
79
|
+
console.warn(`No published versions for ${baseVersion} with tag ${tagArgument}`)
|
|
80
|
+
publishTag = baseVersion // start off with a new beta or alpha version
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (packageJSON.version !== publishTag) {
|
|
84
|
+
// report the change for CI
|
|
85
|
+
console.warn(`Changing version in package.json from ${packageJSON.version} to ${publishTag}`)
|
|
86
|
+
|
|
87
|
+
// save the package.json
|
|
88
|
+
packageJSON.version = publishTag
|
|
89
|
+
fs.writeFileSync('package.json', JSON.stringify(packageJSON, null, 2))
|
|
90
|
+
|
|
91
|
+
// perform the same change to the package-lock.json
|
|
92
|
+
const packageLockJSON = JSON.parse(fs.readFileSync('package-lock.json', 'utf8'))
|
|
93
|
+
packageLockJSON.version = publishTag
|
|
94
|
+
fs.writeFileSync('package-lock.json', JSON.stringify(packageLockJSON, null, 2))
|
|
95
|
+
} else {
|
|
96
|
+
console.warn(`Leaving version in package.json at ${packageJSON.version}`)
|
|
97
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -2,28 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/)
|
|
4
4
|
|
|
5
|
-
## [5.
|
|
5
|
+
## [5.1.0](https://github.com/OpenWonderLabs/homebridge-switchbot/compare/v5.0.0...v5.1.0) (2026-04-XX)
|
|
6
6
|
|
|
7
7
|
### What's Changed
|
|
8
|
-
-
|
|
8
|
+
- Add per-device `externalPublishProtocol` option (`none`/`hap`/`matter`) to publish selected devices as external accessories for HAP or Matter.
|
|
9
|
+
- Add Homebridge UI support to configure **Publish as External Device** when adding or editing devices.
|
|
10
|
+
- Add migration/readme documentation for external publishing behavior and defaults.
|
|
11
|
+
|
|
12
|
+
**Full Changelog**: https://github.com/OpenWonderLabs/homebridge-switchbot/compare/v5.0.0...v5.1.0
|
|
13
|
+
|
|
14
|
+
## [5.0.0](https://github.com/OpenWonderLabs/homebridge-switchbot/compare/v4.3.1...v5.0.0) (2026-04-10)
|
|
15
|
+
|
|
16
|
+
### ⚠️ Breaking Changes
|
|
17
|
+
- Upgrade `node-switchbot` dependency to `^4.0.0` with improved resilience and connection intelligence.
|
|
18
|
+
- Matter support: The plugin now supports **Matter child bridge** platform mode for Matter-compatible smart home ecosystems.
|
|
19
|
+
- New `SwitchBotMatterPlatform` platform type for Matter protocol support.
|
|
20
|
+
- Matter devices are registered via the Discovery + Configuration merge model: discovered devices are supplemented by per-device config overrides.
|
|
21
|
+
- Stale accessories (previously registered but no longer discovered/configured) are automatically removed by default. Use `keepStaleAccessories` option to preserve them.
|
|
22
|
+
- Device discovery and registration behavior has changed:
|
|
23
|
+
- Matter platform defaults to discovery-first registration with optional config-only device support via `allowConfigOnlyDevices`.
|
|
24
|
+
- Per-device configuration is now merged with discovered device properties (by `deviceId`) instead of being stored separately.
|
|
25
|
+
|
|
26
|
+
#### Other Changes
|
|
9
27
|
- Align SwitchBot client init options with stable v4 (`scanTimeout` and `enableConnectionIntelligence`).
|
|
10
28
|
- Improve runtime use of node-switchbot v4 device manager by reusing managed devices and reducing redundant discovery calls.
|
|
11
29
|
- Harden client teardown by cancelling and rejecting pending debounced writes during shutdown.
|
|
12
|
-
- Refresh release docs from beta wording to stable v4 release wording.
|
|
13
|
-
|
|
14
|
-
- Matter platform: register only devices discovered via the SwitchBot OpenAPI by default. Per-device config overrides (by deviceId) are correctly merged into discovered devices.
|
|
15
30
|
- Add `options.allowConfigOnlyDevices` (boolean) to opt-in to registering devices that exist only in config (not discovered).
|
|
16
|
-
- Add unit tests for per-device merging and config-only behavior.
|
|
17
|
-
- Matter (Matter platform): default to discovery-first registration and automatically remove previously-registered "stale" accessories that are no longer discovered or configured.
|
|
18
31
|
- Add `options.keepStaleAccessories` (Advanced Settings) to opt-in to preserving previously-registered accessories when set to true. Default: false (stale accessories are removed automatically).
|
|
19
32
|
- Implement per-device OpenAPI polling with tracked timers and proper lifecycle cleanup (timers and BLE handlers cleared on unregister/shutdown).
|
|
20
33
|
- Centralize OpenAPI/BLE -> Matter mapping and expand BLE/OpenAPI parsing to include PM2.5/PM10/VOC/CO2, temperature/humidity, improved color parsing, and additional sensor/robot-vacuum fields.
|
|
21
34
|
- Prefer accessory-specific update helpers where available; fall back to generic Matter updates otherwise.
|
|
22
|
-
- Add unit tests covering BLE parsing, stale-accessory behavior, mapping helpers, and lifecycle cleanup.
|
|
23
35
|
- Add `options.dailyApiResetLocalMidnight` (boolean) to control whether the daily API budget resets at local midnight (true) or UTC midnight (false, default).
|
|
24
36
|
- Fix configuration schema placement for the "Reset Daily Counter at Local Midnight" option: remove erroneous insertion inside IR remote type list and expose it correctly under platform `options`.
|
|
25
37
|
- Fix UI discovery OpenAPI credential gating to require both token and secret before cloud discovery calls.
|
|
26
38
|
- Enable node-switchbot v4 resilience options (`enableConnectionIntelligence` and `enableCircuitBreaker`) for UI discovery clients.
|
|
39
|
+
- Add unit tests for per-device merging, config-only behavior, BLE parsing, stale-accessory behavior, and mapping helpers, and lifecycle cleanup.
|
|
27
40
|
|
|
28
41
|
**Full Changelog**: https://github.com/OpenWonderLabs/homebridge-switchbot/compare/v4.3.1...v5.0.0
|
|
29
42
|
|
package/MIGRATION.md
CHANGED
|
@@ -9,11 +9,16 @@ This document highlights important changes and recommended actions before upgrad
|
|
|
9
9
|
2. Configuration keys
|
|
10
10
|
- `enableMatter` (boolean) — enable Matter child-bridge registration.
|
|
11
11
|
- `preferMatter` (boolean) — prefer Matter for devices that support Matter descriptors; HAP fallback still available.
|
|
12
|
+
- `externalPublishProtocol` (per-device string) — controls per-device external publishing mode. Valid values: `none` (default), `hap`, `matter`.
|
|
12
13
|
- `openApiToken` + `openApiSecret` (string) — both are required for OpenAPI discovery/calls for cloud-reachable devices.
|
|
13
14
|
- `perDeviceMaxRetries`, `requestTimeout`, `maxRetries` — network retry/timing options for OpenAPI fallback.
|
|
14
15
|
|
|
15
16
|
- `writeDebounceMs` (number, milliseconds, default 100) — global write coalescing debounce window. Commands sent to the same device within this window are coalesced (last-write-wins) to reduce duplicate network/API commands. Set to `0` to disable coalescing if you require immediate, per-command delivery.
|
|
16
17
|
|
|
18
|
+
Upgrade guidance:
|
|
19
|
+
- Existing configs do not need changes; devices default to `externalPublishProtocol: "none"`.
|
|
20
|
+
- Set `hap` or `matter` only for devices you explicitly want published as external accessories.
|
|
21
|
+
|
|
17
22
|
3. Hybrid client
|
|
18
23
|
- The plugin dynamically imports `node-switchbot` when available and uses OpenAPI fallback when both `openApiToken` and `openApiSecret` are configured.
|
|
19
24
|
- If you rely on BLE-only operation, ensure devices and the host have BLE available.
|
package/README.md
CHANGED
|
@@ -45,6 +45,31 @@ Click **Save Advanced Settings** to apply changes. These settings match the opti
|
|
|
45
45
|
|
|
46
46
|
<!-- Optionally add a screenshot here -->
|
|
47
47
|
|
|
48
|
+
### Per-Device External Publishing (HAP or Matter)
|
|
49
|
+
|
|
50
|
+
Each device now supports an `externalPublishProtocol` option to control whether it is published as an external accessory.
|
|
51
|
+
|
|
52
|
+
- `none` (default): normal platform registration behavior.
|
|
53
|
+
- `hap`: publish this device as a HAP external accessory.
|
|
54
|
+
- `matter`: publish this device as a Matter external accessory.
|
|
55
|
+
|
|
56
|
+
Behavior notes:
|
|
57
|
+
|
|
58
|
+
- This is configured per device in the Homebridge UI under **Publish as External Device** when adding or editing a device.
|
|
59
|
+
- If the selected external publish API is not available on your Homebridge runtime, the plugin falls back to normal platform registration for that device.
|
|
60
|
+
- Use `hap` for HAP-focused setups and `matter` for Matter-focused setups; leave as `none` unless you specifically want external accessory publishing.
|
|
61
|
+
|
|
62
|
+
Example device config excerpt:
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"deviceId": "E7F8A1B2C3D4",
|
|
67
|
+
"configDeviceName": "Bedroom Bot",
|
|
68
|
+
"configDeviceType": "Bot",
|
|
69
|
+
"externalPublishProtocol": "hap"
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
48
73
|
|
|
49
74
|
- ### If using OpenAPI Connection
|
|
50
75
|
1. Download SwitchBot App on App Store or Google Play Store
|
package/config.schema.json
CHANGED
|
@@ -172,6 +172,17 @@
|
|
|
172
172
|
],
|
|
173
173
|
"default": "auto"
|
|
174
174
|
},
|
|
175
|
+
"externalPublishProtocol": {
|
|
176
|
+
"type": "string",
|
|
177
|
+
"title": "Publish as External Device",
|
|
178
|
+
"description": "Publish this device as an external accessory for a specific protocol. Select HAP or Matter to expose it externally, or None to keep normal platform publishing.",
|
|
179
|
+
"enum": [
|
|
180
|
+
"none",
|
|
181
|
+
"hap",
|
|
182
|
+
"matter"
|
|
183
|
+
],
|
|
184
|
+
"default": "none"
|
|
185
|
+
},
|
|
175
186
|
"room": {
|
|
176
187
|
"type": "string",
|
|
177
188
|
"title": "Room",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitchBotHAPPlatform.d.ts","sourceRoot":"","sources":["../src/SwitchBotHAPPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAO7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,oBAAoB;IAC/B,8BAA8B;IAC9B,GAAG,EAAE,GAAG,GAAG,SAAS,CAAA;IACpB,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,2BAA2B;IAC3B,MAAM,EAAE,qBAAqB,CAAA;IAC7B,mCAAmC;IACnC,OAAO,EAAE,GAAG,EAAE,CAAK;IACnB,gDAAgD;IAChD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAAa;IACnC,0CAA0C;IAC1C,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,4CAA4C;IAC5C,OAAO,CAAC,iBAAiB,CAAyC;IAClE,wCAAwC;IACxC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,2CAA2C;IAC3C,OAAO,CAAC,oBAAoB,CAAI;IAChC,yDAAyD;IACzD,OAAO,CAAC,gBAAgB,CAAI;IAE5B;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,GAAG;IA2C1D;;;;;;OAMG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"SwitchBotHAPPlatform.d.ts","sourceRoot":"","sources":["../src/SwitchBotHAPPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAO7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,oBAAoB;IAC/B,8BAA8B;IAC9B,GAAG,EAAE,GAAG,GAAG,SAAS,CAAA;IACpB,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,2BAA2B;IAC3B,MAAM,EAAE,qBAAqB,CAAA;IAC7B,mCAAmC;IACnC,OAAO,EAAE,GAAG,EAAE,CAAK;IACnB,gDAAgD;IAChD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAAa;IACnC,0CAA0C;IAC1C,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,4CAA4C;IAC5C,OAAO,CAAC,iBAAiB,CAAyC;IAClE,wCAAwC;IACxC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,2CAA2C;IAC3C,OAAO,CAAC,oBAAoB,CAAI;IAChC,yDAAyD;IACzD,OAAO,CAAC,gBAAgB,CAAI;IAE5B;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,GAAG;IA2C1D;;;;;;OAMG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA8DlC;;;;;;;;;;;;;;;;;;;;OAoBG;YACW,sBAAsB;IAuIpC;;;OAGG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;;OAGG;IACH,mBAAmB,IAAI,IAAI;IAS3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;;;OAMG;YACW,qBAAqB;IAiCnC;;;;OAIG;IACH,QAAQ,IAAI,IAAI;IAQhB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAkI5B;;;;OAIG;IACG,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD;;;;OAIG;IACH,wBAAwB,CAAC,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;CAShD;AAED,eAAe,oBAAoB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createDevice } from './deviceFactory.js';
|
|
2
2
|
import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
|
|
3
3
|
import { SwitchBotClient } from './switchbotClient.js';
|
|
4
|
-
import { normalizeTypeForMatter } from './utils.js';
|
|
4
|
+
import { normalizeTypeForMatter, resolveExternalPublishProtocol } from './utils.js';
|
|
5
5
|
/**
|
|
6
6
|
* Homebridge platform class for SwitchBot HAP (HomeKit Accessory Protocol) integration.
|
|
7
7
|
* Handles device discovery, registration, polling, and accessory lifecycle for HAP-enabled SwitchBot devices.
|
|
@@ -145,12 +145,13 @@ export class SwitchBotHAPPlatform {
|
|
|
145
145
|
_raw: raw,
|
|
146
146
|
};
|
|
147
147
|
const type = normalizeTypeForMatter(d.type);
|
|
148
|
+
const externalPublishProtocol = resolveExternalPublishProtocol(raw);
|
|
148
149
|
const deviceOpts = { id: d.id, type, name: d.name, encryptionKey: d.encryptionKey, keyId: d.keyId, log: this.log };
|
|
149
150
|
this.log.debug(`[HAP/Debug] Device options for ${d.name ?? d.id}:`, JSON.stringify(deviceOpts, null, 2));
|
|
150
151
|
try {
|
|
151
152
|
const created = await createDevice(deviceOpts, this.config, false);
|
|
152
153
|
this.devices.push(created);
|
|
153
|
-
createdDevices.push({ created, d, type });
|
|
154
|
+
createdDevices.push({ created, d, type, externalPublishProtocol });
|
|
154
155
|
}
|
|
155
156
|
catch (e) {
|
|
156
157
|
this.log.error(`Failed to create HAP device ${d.id}:`, e instanceof Error ? e.stack || e.message : e);
|
|
@@ -188,7 +189,8 @@ export class SwitchBotHAPPlatform {
|
|
|
188
189
|
}
|
|
189
190
|
const hap = this.api.hap;
|
|
190
191
|
const accessoriesToRegister = [];
|
|
191
|
-
|
|
192
|
+
const externalAccessoriesToPublish = [];
|
|
193
|
+
for (const { created, d, type, externalPublishProtocol } of createdDevices) {
|
|
192
194
|
try {
|
|
193
195
|
const uuid = hap.uuid.generate(`${d.id}`);
|
|
194
196
|
let accessory = this.accessories.get(uuid);
|
|
@@ -215,7 +217,12 @@ export class SwitchBotHAPPlatform {
|
|
|
215
217
|
catch (e) {
|
|
216
218
|
// ignore context failures
|
|
217
219
|
}
|
|
218
|
-
|
|
220
|
+
if (externalPublishProtocol === 'hap') {
|
|
221
|
+
externalAccessoriesToPublish.push(accessory);
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
accessoriesToRegister.push(accessory);
|
|
225
|
+
}
|
|
219
226
|
this.accessories.set(uuid, accessory);
|
|
220
227
|
}
|
|
221
228
|
else {
|
|
@@ -299,6 +306,27 @@ export class SwitchBotHAPPlatform {
|
|
|
299
306
|
else {
|
|
300
307
|
this.log.info('No HAP accessories to register');
|
|
301
308
|
}
|
|
309
|
+
if (externalAccessoriesToPublish.length > 0) {
|
|
310
|
+
if (typeof this.api.publishExternalAccessories === 'function') {
|
|
311
|
+
try {
|
|
312
|
+
this.api.publishExternalAccessories(PLUGIN_NAME, externalAccessoriesToPublish);
|
|
313
|
+
this.log.info(`Published ${externalAccessoriesToPublish.length} HAP external accessory(ies) with Homebridge`);
|
|
314
|
+
}
|
|
315
|
+
catch (e) {
|
|
316
|
+
this.log.warn('Failed to publish HAP external accessories', e);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
this.log.warn('HAP external accessory publishing API not available; falling back to regular platform registration');
|
|
321
|
+
try {
|
|
322
|
+
this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, externalAccessoriesToPublish);
|
|
323
|
+
this.log.info(`Registered ${externalAccessoriesToPublish.length} HAP accessory(ies) as fallback (external publishing unavailable)`);
|
|
324
|
+
}
|
|
325
|
+
catch (e) {
|
|
326
|
+
this.log.warn('Failed to register fallback HAP accessories', e);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
302
330
|
}
|
|
303
331
|
/**
|
|
304
332
|
* Returns the timestamp (ms) of the last OpenAPI daily counter reset.
|
|
@@ -331,6 +359,7 @@ export class SwitchBotHAPPlatform {
|
|
|
331
359
|
id: d.deviceId ?? d.id,
|
|
332
360
|
type: d.configDeviceType ?? d.type,
|
|
333
361
|
name: d.configDeviceName ?? d.name,
|
|
362
|
+
externalPublishProtocol: resolveExternalPublishProtocol(d),
|
|
334
363
|
})));
|
|
335
364
|
}
|
|
336
365
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitchBotHAPPlatform.js","sourceRoot":"","sources":["../src/SwitchBotHAPPlatform.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,oBAAoB;IAC/B,8BAA8B;IAC9B,GAAG,CAAiB;IACpB,iCAAiC;IACjC,GAAG,CAAQ;IACX,2BAA2B;IAC3B,MAAM,CAAuB;IAC7B,mCAAmC;IACnC,OAAO,GAAU,EAAE,CAAA;IACnB,gDAAgD;IAChD,WAAW,CAAkB;IAC7B,sDAAsD;IAC9C,cAAc,GAAW,EAAE,CAAA;IACnC,0CAA0C;IAClC,oBAAoB,GAA0B,IAAI,CAAA;IAC1D,4CAA4C;IACpC,iBAAiB,GAAgC,IAAI,GAAG,EAAE,CAAA;IAClE,wCAAwC;IAChC,iBAAiB,GAA0B,IAAI,CAAA;IACvD,2CAA2C;IACnC,oBAAoB,GAAG,CAAC,CAAA;IAChC,yDAAyD;IACjD,gBAAgB,GAAG,CAAC,CAAA;IAE5B;;;;;OAKG;IACH,YAAY,GAAW,EAAE,MAAsB,EAAE,GAAS;QACxD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,wEAAwE;QACxE,IAAI,CAAC,MAAM,GAAG,EAAE,GAAI,MAAc,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QACtD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;QAEnD,iFAAiF;QACjF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,MAAc,CAAC,OAAO,GAAG,MAAM,CAAA;QACvC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,yEAAyE;QACzE,IAAI,IAAI,CAAC,GAAG,IAAI,OAAQ,IAAI,CAAC,GAAW,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;YAC1D,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;gBACpD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;gBACxB,IAAI,CAAC,oBAAoB,EAAE,CAAA;gBAC3B,qDAAqD;gBACrD,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC3C,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAA;gBACnC,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,yBAAyB;gBACnC,mDAAmD;gBACnD,IAAI,OAAQ,IAAI,CAAC,GAAW,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;oBAC9C,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;wBACpC,IAAI,CAAC,QAAQ,EAAE,CAAA;oBACjB,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,WAAW,EAAE,CAAA;YACvB,IAAI,CAAC,oBAAoB,EAAE,CAAA;YAC3B,qDAAqD;YACrD,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC3C,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAA;YACnC,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,yBAAyB;QACrC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW;QACf,2CAA2C;QAC3C,MAAM,WAAW,GAAG,EAAE,CAAA;QACtB,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,IAAI,YAAY,GAAG,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,GAAG,IAAI,OAAQ,IAAI,CAAC,GAAW,CAAC,iBAAiB,KAAK,UAAU,IAAI,OAAQ,IAAI,CAAC,GAAW,CAAC,eAAe,KAAK,UAAU,IAAI,OAAQ,IAAI,CAAC,GAAW,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YAC9L,IAAK,IAAI,CAAC,GAAW,CAAC,iBAAiB,EAAE,IAAK,IAAI,CAAC,GAAW,CAAC,eAAe,EAAE,EAAE,CAAC;gBACjF,IAAI,CAAC;oBACH,MAAO,IAAI,CAAC,GAAW,CAAC,aAAa,EAAE,CAAA;oBACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;gBAC5D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAA;gBAC1D,CAAC;gBACD,OAAO,OAAO,GAAG,WAAW,EAAE,CAAC;oBAC7B,IAAK,IAAI,CAAC,GAAW,CAAC,MAAM,EAAE,CAAC;wBAC7B,YAAY,GAAG,IAAI,CAAA;wBACnB,MAAK;oBACP,CAAC;oBACD,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;oBAC9C,OAAO,EAAE,CAAA;gBACX,CAAC;gBACD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;gBAC5E,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACpC,IAAI,OAAO,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAC1D,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAI,IAAI,CAAC,MAAc,EAAE,OAAO,IAAI,EAAE,CAAA;QACnD,MAAM,cAAc,GAA6C,EAAE,CAAA;QACnE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,0FAA0F;YAC1F,MAAM,CAAC,GAAQ;gBACb,EAAE,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE;gBAC1B,IAAI,EAAE,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,IAAI;gBACtC,IAAI,EAAE,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,UAAU,IAAI,SAAS;gBACrE,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,IAAI,EAAE,GAAG;aACV,CAAA;YACD,MAAM,IAAI,GAAW,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACnD,MAAM,UAAU,GAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAA;YACvH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACxG,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;gBAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC1B,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YAC3C,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACvG,CAAC;QACH,CAAC;QACD,2FAA2F;QAC3F,MAAM,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAA;QACjD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACK,KAAK,CAAC,sBAAsB,CAAC,cAAwD;QAC3F,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAE,IAAI,CAAC,GAAW,CAAC,GAAG,IAAI,OAAQ,IAAI,CAAC,GAAW,CAAC,GAAG,CAAC,2BAA2B,KAAK,UAAU,EAAE,CAAC;YACnH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;YAC9D,OAAM;QACR,CAAC;QACD,MAAM,GAAG,GAAI,IAAI,CAAC,GAAW,CAAC,GAAG,CAAA;QACjC,MAAM,qBAAqB,GAAU,EAAE,CAAA;QACvC,KAAK,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,cAAc,EAAE,CAAC;YAClD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBACzC,IAAI,SAAS,GAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;wBAC/C,IAAI,CAAC;4BACH,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gCAClD,SAAS,GAAG,CAAC,CAAA;gCACb,MAAK;4BACP,CAAC;wBACH,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,SAAS;wBACX,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,SAAS,GAAG,IAAK,IAAI,CAAC,GAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,CAAA;oBACzE,IAAI,CAAC;wBACH,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAA;wBAC3C,SAAS,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAA;wBACjC,SAAS,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;oBAC/B,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,0BAA0B;oBAC5B,CAAC;oBACD,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;gBACvC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAA;wBAC3C,SAAS,CAAC,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAA;wBAC/D,SAAS,CAAC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAA;wBACvD,SAAS,CAAC,UAAU,GAAG,IAAI,CAAA;wBAC3B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;wBACzD,SAAS,CAAC,WAAW,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAA;wBACnE,SAAS,CAAC,YAAY,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,YAAY,IAAI,WAAW,CAAA;wBACnG,SAAS,CAAC,KAAK,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,CAAA;wBACvE,SAAS,CAAC,YAAY,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAA;wBAC5F,SAAS,CAAC,gBAAgB,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC,gBAAgB,IAAI,OAAO,CAAA;wBAC3G,SAAS,CAAC,gBAAgB,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC,gBAAgB,IAAI,EAAE,CAAA;wBACtG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,IAAI,IAAI,CAAA;oBAC3D,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,SAAS;oBACX,CAAC;gBACH,CAAC;gBACD,gGAAgG;gBAChG,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACzD,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAChC,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;oBAC7D,KAAK,MAAM,eAAe,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;wBACzD,IAAI,eAAe,CAAC,WAAW,IAAI,eAAe,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;4BAChI,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;wBAC1C,CAAC;oBACH,CAAC;oBACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACjC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;wBAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,SAAQ;wBACV,CAAC;wBACD,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;wBAC9E,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,CAAA;wBACtD,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC;4BAC3D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;gCAClD,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAA;4BAC5C,CAAC;wBACH,CAAC;wBACD,KAAK,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,CAAC;4BAClF,MAAM,YAAY,GAAQ,eAAe,CAAA;4BACzC,MAAM,cAAc,GAAI,GAAG,CAAC,cAAsB,CAAC,QAAQ,CAAC,CAAA;4BAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;gCACpB,SAAQ;4BACV,CAAC;4BACD,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;gCACvC,IAAI,CAAC;oCACH,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;gCACxE,CAAC;gCAAC,OAAO,CAAC,EAAE,CAAC;oCACX,wDAAwD;gCAC1D,CAAC;4BACH,CAAC;4BACD,IAAI,YAAY,IAAI,OAAO,YAAY,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;gCAC3D,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;4BACnE,CAAC;4BACD,IAAI,YAAY,IAAI,OAAO,YAAY,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;gCAC3D,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;4BACnE,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC,CAAA;YAClE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;QACD,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC;gBACF,IAAI,CAAC,GAAW,CAAC,2BAA2B,CAAC,WAAW,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAA;gBAChG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,qBAAqB,CAAC,MAAM,qCAAqC,CAAC,CAAA;YAChG,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAA;IAC9B,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACjB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uCAAuC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;QAC/E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,aAAa;QACnB,kEAAkE;QAClE,MAAM,OAAO,GAAI,IAAI,CAAC,MAAc,EAAE,OAAO,IAAI,EAAE,CAAA;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YAC7C,EAAE,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE;YACtB,IAAI,EAAE,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI;YAClC,IAAI,EAAE,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI;SACnC,CAAC,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,qBAAqB;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACxC,IAAI,WAAW,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;YAC1E,oCAAoC;YACpC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAE,IAAI,CAAC,MAAc,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC1G,6CAA6C;YAC7C,MAAM,mBAAmB,GAAU,EAAE,CAAA;YACrC,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3D,MAAM,QAAQ,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAA;gBAC7C,IAAI,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/C,mBAAmB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC/C,CAAC;YACH,CAAC;YACD,iDAAiD;YACjD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,IAAK,IAAI,CAAC,GAAW,CAAC,6BAA6B,EAAE,CAAC;gBAClG,IAAI,CAAC;oBACF,IAAI,CAAC,GAAW,CAAC,6BAA6B,CAAC,WAAW,EAAE,aAAa,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;oBACtH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,mBAAmB,CAAC,MAAM,qCAAqC,CAAC,CAAA;oBAC9F,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,mBAAmB,EAAE,CAAC;wBAC3C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;oBAC/B,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAA;gBAC9D,CAAC;YACH,CAAC;YACD,gEAAgE;YAChE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;YAC9E,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;YACxB,IAAI,CAAC,cAAc,GAAG,WAAW,CAAA;QACnC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;YACxC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAA;YAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,oBAAoB;QAC1B,4BAA4B;QAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAAE,aAAa,CAAC,CAAC,CAAC,CAAA;QACjE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAA;QAC9B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACvC,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;QAE7B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAa,CAAA;QAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAA;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;QACtE,MAAM,YAAY,GAAG,GAAG,CAAC,kBAAkB,KAAK,KAAK,CAAA;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,UAAU,EAAE,EAAE,CAAC,CAAA;QAChF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,CAAA;QACrE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;QAChF,MAAM,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAA;QAC7D,MAAM,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAA;QAEvD,gCAAgC;QAChC,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAA;YAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAClC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;QACxD,CAAC,CAAA;QACD,6BAA6B;QAC7B,MAAM,qBAAqB,GAAG,GAAG,EAAE;YACjC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YACtB,IAAI,SAAe,CAAA;YACnB,IAAI,oBAAoB,EAAE,CAAC;gBACzB,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YACrF,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;gBACzB,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YACpC,CAAC;YACD,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAA;YAC9C,UAAU,CAAC,GAAG,EAAE;gBACd,YAAY,EAAE,CAAA;gBACd,qBAAqB,EAAE,CAAA;YACzB,CAAC,EAAE,EAAE,CAAC,CAAA;QACR,CAAC,CAAA;QACD,qBAAqB,EAAE,CAAA;QAEvB,wCAAwC;QACxC,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,IAAI,CAAC,oBAAoB,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC;gBAC3D,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAA;gBACpF,CAAC;gBACD,OAAO,KAAK,CAAA;YACd,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAED,2DAA2D;QAC3D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAA;YACjC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,KAAK,KAAK,CAAA;YACrC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACpB,SAAQ;YACV,CAAC;YACD,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACpF,IAAI,aAAa,EAAE,CAAC;gBAClB,8CAA8C;gBAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;oBACnC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;wBACf,OAAM;oBACR,CAAC;oBACD,IAAI,CAAC;wBACH,MAAM,MAAM,GAAI,IAAI,CAAC,MAAc,CAAC,OAAO,CAAA;wBAC3C,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;4BACrD,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;4BAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAA;4BAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,yBAAyB,aAAa,OAAO,IAAI,CAAC,oBAAoB,IAAI,UAAU,GAAG,CAAC,CAAA;wBACtI,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,EAAG,CAAW,EAAE,OAAO,CAAC,CAAA;oBACrF,CAAC;gBACH,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,CAAA;gBACxB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,YAAY,EAAE,CAAC;YACjB,0CAA0C;YAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAC/C,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAA;gBACjC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,KAAK,KAAK,CAAA;gBACrC,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACpF,OAAO,EAAE,IAAI,OAAO,IAAI,CAAC,aAAa,CAAA;YACxC,CAAC,CAAC,CAAA;YACF,qCAAqC;YACrC,MAAM,UAAU,GAAG,GAAG,EAAE;gBACtB,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;oBAC9C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;wBACf,OAAM;oBACR,CAAC;oBACD,MAAM,MAAM,GAAI,IAAI,CAAC,MAAc,CAAC,OAAO,CAAA;oBAC3C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;wBACtD,OAAM;oBACR,CAAC;oBACD,oBAAoB;oBACpB,MAAM,MAAM,GAAY,EAAE,CAAA;oBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC;wBAC/D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAA;oBAC1D,CAAC;oBACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAQ,EAAE,EAAE;4BAC7C,IAAI,CAAC;gCACH,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC,CAAA;gCAC9C,IAAI,CAAC,oBAAoB,EAAE,CAAA;gCAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,oBAAoB,IAAI,UAAU,GAAG,CAAC,CAAA;4BACxH,CAAC;4BAAC,OAAO,CAAC,EAAE,CAAC;gCACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+CAA+C,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,GAAG,EAAG,CAAW,EAAE,OAAO,CAAC,CAAA;4BACjH,CAAC;wBACH,CAAC,CAAC,CAAC,CAAA;oBACL,CAAC;gBACH,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,CAAA;YACtB,CAAC,CAAA;YACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAA;YACxE,CAAC;iBAAM,CAAC;gBACN,UAAU,EAAE,CAAA;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CAAC,SAAc;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAA;YAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;YACrC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,SAAS,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC,CAAA;QAC7E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gDAAgD,EAAE,CAAC,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,wBAAwB,CAAE,SAAc;QACtC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAA;YAC/D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;YACrC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,SAAS,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC,CAAA;QACpF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sDAAsD,EAAE,CAAC,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;CACF;AAED,eAAe,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"SwitchBotHAPPlatform.js","sourceRoot":"","sources":["../src/SwitchBotHAPPlatform.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,7 +87,9 @@ export declare class SwitchBotMatterPlatform {
|
|
|
87
87
|
type: string;
|
|
88
88
|
useMatter: boolean;
|
|
89
89
|
matterAvailable: boolean;
|
|
90
|
+
externalPublishProtocol: 'none' | 'hap' | 'matter';
|
|
90
91
|
}[]): Promise<void>;
|
|
92
|
+
private publishMatterExternalAccessories;
|
|
91
93
|
/**
|
|
92
94
|
* Returns the timestamp (ms) of the last OpenAPI daily counter reset.
|
|
93
95
|
* @returns {number} Timestamp in ms
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitchBotMatterPlatform.d.ts","sourceRoot":"","sources":["../src/SwitchBotMatterPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAO7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,uBAAuB;IAClC,8BAA8B;IAC9B,GAAG,EAAE,GAAG,GAAG,SAAS,CAAA;IACpB,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,2BAA2B;IAC3B,MAAM,EAAE,qBAAqB,CAAA;IAC7B,mCAAmC;IACnC,OAAO,EAAE,GAAG,EAAE,CAAK;IACnB,gDAAgD;IAChD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAAa;IACnC,0CAA0C;IAC1C,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,4CAA4C;IAC5C,OAAO,CAAC,iBAAiB,CAAyC;IAClE,wCAAwC;IACxC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,2CAA2C;IAC3C,OAAO,CAAC,oBAAoB,CAAI;IAChC,yDAAyD;IACzD,OAAO,CAAC,gBAAgB,CAAI;IAE5B;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,GAAG;IA2C1D;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"SwitchBotMatterPlatform.d.ts","sourceRoot":"","sources":["../src/SwitchBotMatterPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAO7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,uBAAuB;IAClC,8BAA8B;IAC9B,GAAG,EAAE,GAAG,GAAG,SAAS,CAAA;IACpB,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,2BAA2B;IAC3B,MAAM,EAAE,qBAAqB,CAAA;IAC7B,mCAAmC;IACnC,OAAO,EAAE,GAAG,EAAE,CAAK;IACnB,gDAAgD;IAChD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAAa;IACnC,0CAA0C;IAC1C,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,4CAA4C;IAC5C,OAAO,CAAC,iBAAiB,CAAyC;IAClE,wCAAwC;IACxC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,2CAA2C;IAC3C,OAAO,CAAC,oBAAoB,CAAI;IAChC,yDAAyD;IACzD,OAAO,CAAC,gBAAgB,CAAI;IAE5B;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,GAAG;IA2C1D;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAmDlC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,yBAAyB,CAAC,cAAc,EAAE;QAAE,OAAO,EAAE,GAAG,CAAC;QAAC,CAAC,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAC;QAAC,uBAAuB,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAiI5L,gCAAgC;IAwB9C;;;OAGG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;;OAGG;IACH,mBAAmB,IAAI,IAAI;IAS3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;;;OAMG;YACW,qBAAqB;IAiCnC;;;;OAIG;IACH,QAAQ,IAAI,IAAI;IAQhB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAkI5B;;;;OAIG;IACG,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD;;;;OAIG;IACH,wBAAwB,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;CAS/C;AAED,eAAe,uBAAuB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createDevice } from './deviceFactory.js';
|
|
2
2
|
import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
|
|
3
3
|
import { SwitchBotClient } from './switchbotClient.js';
|
|
4
|
-
import { createMatterHandlers, DEVICE_MATTER_CLUSTERS, DEVICE_MATTER_SUPPORTED, normalizeTypeForMatter, resolveMatterDeviceType } from './utils.js';
|
|
4
|
+
import { createMatterHandlers, DEVICE_MATTER_CLUSTERS, DEVICE_MATTER_SUPPORTED, normalizeTypeForMatter, resolveExternalPublishProtocol, resolveMatterDeviceType } from './utils.js';
|
|
5
5
|
/**
|
|
6
6
|
* Homebridge platform class for SwitchBot Matter integration.
|
|
7
7
|
* Handles device discovery, registration, polling, and accessory lifecycle for Matter-enabled SwitchBot devices.
|
|
@@ -118,6 +118,7 @@ export class SwitchBotMatterPlatform {
|
|
|
118
118
|
_raw: raw,
|
|
119
119
|
};
|
|
120
120
|
const type = normalizeTypeForMatter(d.type);
|
|
121
|
+
const externalPublishProtocol = resolveExternalPublishProtocol(raw);
|
|
121
122
|
const deviceOpts = { id: d.id, type, name: d.name, encryptionKey: d.encryptionKey, keyId: d.keyId, log: this.log };
|
|
122
123
|
this.log.debug(`[Matter/Debug] Device options for ${d.name ?? d.id}:`, JSON.stringify(deviceOpts, null, 2));
|
|
123
124
|
const matterSupported = !!DEVICE_MATTER_SUPPORTED[(type || '').toLowerCase()];
|
|
@@ -127,7 +128,7 @@ export class SwitchBotMatterPlatform {
|
|
|
127
128
|
try {
|
|
128
129
|
const created = await createDevice(deviceOpts, this.config, useMatter);
|
|
129
130
|
this.devices.push(created);
|
|
130
|
-
createdDevices.push({ created, d, type, useMatter, matterAvailable });
|
|
131
|
+
createdDevices.push({ created, d, type, useMatter, matterAvailable, externalPublishProtocol });
|
|
131
132
|
if (useMatter) {
|
|
132
133
|
this.log.info(`Prepared Matter accessory for ${d.id} (${type})${matterAvailable ? ' (auto-detected)' : ' (manually enabled)'}`);
|
|
133
134
|
}
|
|
@@ -182,7 +183,8 @@ export class SwitchBotMatterPlatform {
|
|
|
182
183
|
}
|
|
183
184
|
const matterApi = this.api.matter;
|
|
184
185
|
const accessoriesToRegister = [];
|
|
185
|
-
|
|
186
|
+
const externalAccessoriesToPublish = [];
|
|
187
|
+
for (const { created, d, type, useMatter, matterAvailable, externalPublishProtocol } of createdDevices) {
|
|
186
188
|
// Only register accessories where Matter is enabled and supported
|
|
187
189
|
if (!useMatter) {
|
|
188
190
|
// Log reason for skipping registration
|
|
@@ -235,7 +237,12 @@ export class SwitchBotMatterPlatform {
|
|
|
235
237
|
handlers: createdDesc.handlers || createMatterHandlers(this.log, d.id, type, this.config?._client) || undefined,
|
|
236
238
|
context: { deviceId: d.id, type, created: true },
|
|
237
239
|
};
|
|
238
|
-
|
|
240
|
+
if (externalPublishProtocol === 'matter') {
|
|
241
|
+
externalAccessoriesToPublish.push(accessory);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
accessoriesToRegister.push(accessory);
|
|
245
|
+
}
|
|
239
246
|
this.accessories.set(uuid, accessory);
|
|
240
247
|
}
|
|
241
248
|
else {
|
|
@@ -259,7 +266,12 @@ export class SwitchBotMatterPlatform {
|
|
|
259
266
|
accessory.handlers = createdDesc.handlers || createMatterHandlers(this.log, d.id, type, this.config?._client) || undefined;
|
|
260
267
|
accessory.displayName = createdDesc.name || d.name || type;
|
|
261
268
|
accessory.UUID = accessory.UUID || accessory.uuid || uuid;
|
|
262
|
-
|
|
269
|
+
if (externalPublishProtocol === 'matter') {
|
|
270
|
+
externalAccessoriesToPublish.push(accessory);
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
accessoriesToRegister.push(accessory);
|
|
274
|
+
}
|
|
263
275
|
this.accessories.set(accessory.UUID || uuid, accessory);
|
|
264
276
|
}
|
|
265
277
|
this.log.info(`Created/updated Matter accessory ${d.id} (${type})`);
|
|
@@ -280,6 +292,49 @@ export class SwitchBotMatterPlatform {
|
|
|
280
292
|
else {
|
|
281
293
|
this.log.info('No Matter accessories to register');
|
|
282
294
|
}
|
|
295
|
+
if (externalAccessoriesToPublish.length > 0) {
|
|
296
|
+
try {
|
|
297
|
+
if (typeof matterApi.publishExternalAccessories === 'function') {
|
|
298
|
+
await matterApi.publishExternalAccessories(PLUGIN_NAME, externalAccessoriesToPublish);
|
|
299
|
+
this.log.info(`Published ${externalAccessoriesToPublish.length} Matter external accessory(ies) with Homebridge`);
|
|
300
|
+
}
|
|
301
|
+
else if (typeof matterApi.registerExternalAccessories === 'function') {
|
|
302
|
+
await matterApi.registerExternalAccessories(PLUGIN_NAME, PLATFORM_NAME, externalAccessoriesToPublish);
|
|
303
|
+
this.log.info(`Registered ${externalAccessoriesToPublish.length} Matter external accessory(ies) with Homebridge`);
|
|
304
|
+
}
|
|
305
|
+
else if (await this.publishMatterExternalAccessories(externalAccessoriesToPublish)) {
|
|
306
|
+
this.log.info(`Published ${externalAccessoriesToPublish.length} Matter external accessory(ies) with Homebridge`);
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
this.log.warn('Matter external accessory publishing API not available; falling back to regular platform registration');
|
|
310
|
+
await matterApi.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, externalAccessoriesToPublish);
|
|
311
|
+
this.log.info(`Registered ${externalAccessoriesToPublish.length} Matter accessory(ies) as fallback (external publishing unavailable)`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
catch (e) {
|
|
315
|
+
this.log.warn('Failed to publish/register Matter external accessories', e);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
async publishMatterExternalAccessories(accessories) {
|
|
320
|
+
const api = this.api;
|
|
321
|
+
if (!api || typeof api.emit !== 'function') {
|
|
322
|
+
return false;
|
|
323
|
+
}
|
|
324
|
+
const pendingRegistrations = api._pendingExternalRegistrations;
|
|
325
|
+
if (!(pendingRegistrations instanceof Map) && pendingRegistrations !== undefined) {
|
|
326
|
+
return false;
|
|
327
|
+
}
|
|
328
|
+
const registrationId = `${PLUGIN_NAME}-${Date.now()}-${Math.random()}`;
|
|
329
|
+
const registrationPromise = new Promise((resolve) => {
|
|
330
|
+
if (!(api._pendingExternalRegistrations instanceof Map)) {
|
|
331
|
+
api._pendingExternalRegistrations = new Map();
|
|
332
|
+
}
|
|
333
|
+
api._pendingExternalRegistrations.set(registrationId, resolve);
|
|
334
|
+
});
|
|
335
|
+
api.emit('publishExternalMatterAccessories', accessories, registrationId);
|
|
336
|
+
await registrationPromise;
|
|
337
|
+
return true;
|
|
283
338
|
}
|
|
284
339
|
/**
|
|
285
340
|
* Returns the timestamp (ms) of the last OpenAPI daily counter reset.
|
|
@@ -312,6 +367,7 @@ export class SwitchBotMatterPlatform {
|
|
|
312
367
|
id: d.deviceId ?? d.id,
|
|
313
368
|
type: d.configDeviceType ?? d.type,
|
|
314
369
|
name: d.configDeviceName ?? d.name,
|
|
370
|
+
externalPublishProtocol: resolveExternalPublishProtocol(d),
|
|
315
371
|
})));
|
|
316
372
|
}
|
|
317
373
|
/**
|