homebridge 2.0.0-beta.44 → 2.0.0-beta.46
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/dist/api.d.ts +3 -365
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +13 -85
- package/dist/api.js.map +1 -1
- package/dist/bridgeService.d.ts +0 -25
- package/dist/bridgeService.d.ts.map +1 -1
- package/dist/bridgeService.js +32 -85
- package/dist/bridgeService.js.map +1 -1
- package/dist/childBridgeFork.d.ts +12 -15
- package/dist/childBridgeFork.d.ts.map +1 -1
- package/dist/childBridgeFork.js +152 -83
- package/dist/childBridgeFork.js.map +1 -1
- package/dist/childBridgeService.d.ts +21 -105
- package/dist/childBridgeService.d.ts.map +1 -1
- package/dist/childBridgeService.js +57 -134
- package/dist/childBridgeService.js.map +1 -1
- package/dist/cli.js +0 -2
- package/dist/cli.js.map +1 -1
- package/dist/externalPortService.d.ts +0 -21
- package/dist/externalPortService.d.ts.map +1 -1
- package/dist/externalPortService.js +0 -28
- package/dist/externalPortService.js.map +1 -1
- package/dist/index.d.ts +0 -112
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -44
- package/dist/index.js.map +1 -1
- package/dist/ipcService.d.ts +23 -15
- package/dist/ipcService.d.ts.map +1 -1
- package/dist/ipcService.js +6 -12
- package/dist/ipcService.js.map +1 -1
- package/dist/logger.d.ts +0 -46
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +13 -57
- package/dist/logger.js.map +1 -1
- package/dist/matter/BaseMatterManager.d.ts +19 -0
- package/dist/matter/BaseMatterManager.d.ts.map +1 -0
- package/dist/matter/BaseMatterManager.js +170 -0
- package/dist/matter/BaseMatterManager.js.map +1 -0
- package/dist/matter/ChildBridgeMatterManager.d.ts +7 -69
- package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -1
- package/dist/matter/ChildBridgeMatterManager.js +51 -234
- package/dist/matter/ChildBridgeMatterManager.js.map +1 -1
- package/dist/matter/ClusterCommandMapper.d.ts +5 -0
- package/dist/matter/ClusterCommandMapper.d.ts.map +1 -0
- package/dist/matter/ClusterCommandMapper.js +203 -0
- package/dist/matter/ClusterCommandMapper.js.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +0 -27
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -1
- package/dist/matter/ExternalMatterAccessoryPublisher.js +3 -28
- package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -1
- package/dist/matter/MatterAPIImpl.d.ts +0 -68
- package/dist/matter/MatterAPIImpl.d.ts.map +1 -1
- package/dist/matter/MatterAPIImpl.js +7 -107
- package/dist/matter/MatterAPIImpl.js.map +1 -1
- package/dist/matter/MatterBridgeManager.d.ts +9 -60
- package/dist/matter/MatterBridgeManager.d.ts.map +1 -1
- package/dist/matter/MatterBridgeManager.js +140 -216
- package/dist/matter/MatterBridgeManager.js.map +1 -1
- package/dist/matter/MatterConfigCollector.d.ts +1 -20
- package/dist/matter/MatterConfigCollector.d.ts.map +1 -1
- package/dist/matter/MatterConfigCollector.js +15 -28
- package/dist/matter/MatterConfigCollector.js.map +1 -1
- package/dist/matter/accessoryCache.d.ts +0 -48
- package/dist/matter/accessoryCache.d.ts.map +1 -1
- package/dist/matter/accessoryCache.js +1 -60
- package/dist/matter/accessoryCache.js.map +1 -1
- package/dist/matter/behaviors/AirQualityBehavior.d.ts +0 -42
- package/dist/matter/behaviors/AirQualityBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/AirQualityBehavior.js +0 -44
- package/dist/matter/behaviors/AirQualityBehavior.js.map +1 -1
- package/dist/matter/behaviors/BehaviorRegistry.d.ts +4 -42
- package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -1
- package/dist/matter/behaviors/BehaviorRegistry.js +12 -42
- package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -1
- package/dist/matter/behaviors/ColorControlBehavior.d.ts +0 -49
- package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ColorControlBehavior.js +0 -90
- package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts +0 -91
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js +0 -96
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js.map +1 -1
- package/dist/matter/behaviors/DoorLockBehavior.d.ts +0 -11
- package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/DoorLockBehavior.js +0 -25
- package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -1
- package/dist/matter/behaviors/FanControlBehavior.d.ts +0 -11
- package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/FanControlBehavior.js +0 -25
- package/dist/matter/behaviors/FanControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/IdentifyBehavior.d.ts +0 -11
- package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/IdentifyBehavior.js +0 -17
- package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -1
- package/dist/matter/behaviors/LevelControlBehavior.d.ts +0 -20
- package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/LevelControlBehavior.js +0 -52
- package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/OnOffBehavior.d.ts +0 -17
- package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/OnOffBehavior.js +0 -38
- package/dist/matter/behaviors/OnOffBehavior.js.map +1 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +0 -11
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.js +0 -17
- package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +0 -11
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js +0 -29
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +0 -11
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.js +0 -17
- package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +0 -11
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.js +0 -23
- package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -1
- package/dist/matter/behaviors/ThermostatBehavior.d.ts +0 -11
- package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ThermostatBehavior.js +0 -39
- package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +0 -17
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.js +0 -56
- package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -1
- package/dist/matter/behaviors/index.d.ts +0 -5
- package/dist/matter/behaviors/index.d.ts.map +1 -1
- package/dist/matter/behaviors/index.js +0 -5
- package/dist/matter/behaviors/index.js.map +1 -1
- package/dist/matter/configValidator.d.ts +0 -55
- package/dist/matter/configValidator.d.ts.map +1 -1
- package/dist/matter/configValidator.js +1 -68
- package/dist/matter/configValidator.js.map +1 -1
- package/dist/matter/errorHandler.d.ts +0 -22
- package/dist/matter/errorHandler.d.ts.map +1 -1
- package/dist/matter/errorHandler.js +0 -32
- package/dist/matter/errorHandler.js.map +1 -1
- package/dist/matter/errors.d.ts +0 -132
- package/dist/matter/errors.d.ts.map +1 -1
- package/dist/matter/errors.js +0 -132
- package/dist/matter/errors.js.map +1 -1
- package/dist/matter/index.d.ts +0 -30
- package/dist/matter/index.d.ts.map +1 -1
- package/dist/matter/index.js +0 -13
- package/dist/matter/index.js.map +1 -1
- package/dist/matter/logFormatter.d.ts +0 -17
- package/dist/matter/logFormatter.d.ts.map +1 -1
- package/dist/matter/logFormatter.js +5 -63
- package/dist/matter/logFormatter.js.map +1 -1
- package/dist/matter/server.d.ts +12 -236
- package/dist/matter/server.d.ts.map +1 -1
- package/dist/matter/server.js +177 -488
- package/dist/matter/server.js.map +1 -1
- package/dist/matter/serverHelpers.d.ts +0 -56
- package/dist/matter/serverHelpers.d.ts.map +1 -1
- package/dist/matter/serverHelpers.js +1 -66
- package/dist/matter/serverHelpers.js.map +1 -1
- package/dist/matter/sharedTypes.d.ts +0 -83
- package/dist/matter/sharedTypes.d.ts.map +1 -1
- package/dist/matter/sharedTypes.js +0 -26
- package/dist/matter/sharedTypes.js.map +1 -1
- package/dist/matter/storage.d.ts +0 -90
- package/dist/matter/storage.d.ts.map +1 -1
- package/dist/matter/storage.js +2 -130
- package/dist/matter/storage.js.map +1 -1
- package/dist/matter/typeHelpers.d.ts +0 -30
- package/dist/matter/typeHelpers.d.ts.map +1 -1
- package/dist/matter/typeHelpers.js +0 -24
- package/dist/matter/typeHelpers.js.map +1 -1
- package/dist/matter/types.d.ts +0 -273
- package/dist/matter/types.d.ts.map +1 -1
- package/dist/matter/types.js +0 -83
- package/dist/matter/types.js.map +1 -1
- package/dist/platformAccessory.d.ts +0 -15
- package/dist/platformAccessory.d.ts.map +1 -1
- package/dist/platformAccessory.js +6 -32
- package/dist/platformAccessory.js.map +1 -1
- package/dist/plugin.d.ts +0 -3
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +6 -29
- package/dist/plugin.js.map +1 -1
- package/dist/pluginManager.d.ts +0 -22
- package/dist/pluginManager.d.ts.map +1 -1
- package/dist/pluginManager.js +18 -41
- package/dist/pluginManager.js.map +1 -1
- package/dist/server.d.ts +9 -29
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +308 -157
- package/dist/server.js.map +1 -1
- package/dist/user.d.ts +0 -3
- package/dist/user.d.ts.map +1 -1
- package/dist/user.js +2 -5
- package/dist/user.js.map +1 -1
- package/dist/util/mac.js +0 -1
- package/dist/util/mac.js.map +1 -1
- package/package.json +4 -4
- package/dist/api.spec.d.ts +0 -2
- package/dist/api.spec.d.ts.map +0 -1
- package/dist/api.spec.js +0 -413
- package/dist/api.spec.js.map +0 -1
- package/dist/logger.spec.d.ts +0 -2
- package/dist/logger.spec.d.ts.map +0 -1
- package/dist/logger.spec.js +0 -95
- package/dist/logger.spec.js.map +0 -1
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +0 -2
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +0 -1
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +0 -293
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +0 -1
- package/dist/matter/accessoryCache.spec.d.ts +0 -2
- package/dist/matter/accessoryCache.spec.d.ts.map +0 -1
- package/dist/matter/accessoryCache.spec.js +0 -452
- package/dist/matter/accessoryCache.spec.js.map +0 -1
- package/dist/matter/behaviors/AirQualityBehavior.spec.d.ts +0 -5
- package/dist/matter/behaviors/AirQualityBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/AirQualityBehavior.spec.js +0 -46
- package/dist/matter/behaviors/AirQualityBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +0 -2
- package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/BehaviorRegistry.spec.js +0 -307
- package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +0 -1
- package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/ColorControlBehavior.spec.js +0 -29
- package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.d.ts +0 -5
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.js +0 -95
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/DoorLockBehavior.spec.js +0 -120
- package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/FanControlBehavior.spec.js +0 -23
- package/dist/matter/behaviors/FanControlBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/IdentifyBehavior.spec.js +0 -64
- package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/LevelControlBehavior.spec.js +0 -145
- package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/OnOffBehavior.spec.js +0 -128
- package/dist/matter/behaviors/OnOffBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +0 -57
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +0 -55
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +0 -57
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +0 -53
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/ThermostatBehavior.spec.js +0 -23
- package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +0 -27
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +0 -1
- package/dist/matter/configValidator.spec.d.ts +0 -2
- package/dist/matter/configValidator.spec.d.ts.map +0 -1
- package/dist/matter/configValidator.spec.js +0 -390
- package/dist/matter/configValidator.spec.js.map +0 -1
- package/dist/matter/errorHandler.spec.d.ts +0 -2
- package/dist/matter/errorHandler.spec.d.ts.map +0 -1
- package/dist/matter/errorHandler.spec.js +0 -159
- package/dist/matter/errorHandler.spec.js.map +0 -1
- package/dist/matter/logFormatter.spec.d.ts +0 -2
- package/dist/matter/logFormatter.spec.d.ts.map +0 -1
- package/dist/matter/logFormatter.spec.js +0 -252
- package/dist/matter/logFormatter.spec.js.map +0 -1
- package/dist/matter/serverHelpers.spec.d.ts +0 -2
- package/dist/matter/serverHelpers.spec.d.ts.map +0 -1
- package/dist/matter/serverHelpers.spec.js +0 -527
- package/dist/matter/serverHelpers.spec.js.map +0 -1
- package/dist/matter/storage.spec.d.ts +0 -2
- package/dist/matter/storage.spec.d.ts.map +0 -1
- package/dist/matter/storage.spec.js +0 -570
- package/dist/matter/storage.spec.js.map +0 -1
- package/dist/matter/typeHelpers.spec.d.ts +0 -2
- package/dist/matter/typeHelpers.spec.d.ts.map +0 -1
- package/dist/matter/typeHelpers.spec.js +0 -127
- package/dist/matter/typeHelpers.spec.js.map +0 -1
- package/dist/platformAccessory.spec.d.ts +0 -2
- package/dist/platformAccessory.spec.d.ts.map +0 -1
- package/dist/platformAccessory.spec.js +0 -126
- package/dist/platformAccessory.spec.js.map +0 -1
- package/dist/pluginManager.spec.d.ts +0 -2
- package/dist/pluginManager.spec.d.ts.map +0 -1
- package/dist/pluginManager.spec.js +0 -43
- package/dist/pluginManager.spec.js.map +0 -1
- package/dist/server.spec.d.ts +0 -2
- package/dist/server.spec.d.ts.map +0 -1
- package/dist/server.spec.js +0 -57
- package/dist/server.spec.js.map +0 -1
- package/dist/user.spec.d.ts +0 -2
- package/dist/user.spec.d.ts.map +0 -1
- package/dist/user.spec.js +0 -31
- package/dist/user.spec.js.map +0 -1
- package/dist/util/mac.spec.d.ts +0 -2
- package/dist/util/mac.spec.d.ts.map +0 -1
- package/dist/util/mac.spec.js +0 -36
- package/dist/util/mac.spec.js.map +0 -1
- package/dist/version.spec.d.ts +0 -2
- package/dist/version.spec.d.ts.map +0 -1
- package/dist/version.spec.js +0 -20
- package/dist/version.spec.js.map +0 -1
|
@@ -1,41 +1,55 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Matter Bridge Manager
|
|
3
|
-
*
|
|
4
|
-
* Manages Matter server lifecycle and accessories for the main Homebridge bridge.
|
|
5
|
-
* This class extracts Matter-specific logic from server.ts to minimize changes to core files.
|
|
6
|
-
*/
|
|
7
|
-
import { rmSync } from 'node:fs';
|
|
8
|
-
import path from 'node:path';
|
|
9
1
|
import { Logger } from '../logger.js';
|
|
10
2
|
import { User } from '../user.js';
|
|
11
|
-
import {
|
|
3
|
+
import { BaseMatterManager } from './BaseMatterManager.js';
|
|
12
4
|
import { publishExternalMatterAccessory } from './ExternalMatterAccessoryPublisher.js';
|
|
13
5
|
import { MatterServer } from './server.js';
|
|
14
|
-
const log = Logger.
|
|
15
|
-
|
|
16
|
-
* Manages Matter server and accessories for the main bridge
|
|
17
|
-
*/
|
|
18
|
-
export class MatterBridgeManager {
|
|
6
|
+
const log = Logger.withPrefix('Matter/MainManager');
|
|
7
|
+
export class MatterBridgeManager extends BaseMatterManager {
|
|
19
8
|
config;
|
|
20
9
|
api;
|
|
21
10
|
externalPortService;
|
|
22
|
-
pluginManager;
|
|
23
11
|
options;
|
|
24
|
-
// Matter server instance for main bridge (if enabled)
|
|
25
|
-
matterServer;
|
|
26
|
-
// External Matter servers for accessories that need their own bridge
|
|
27
|
-
// Key is accessory UUID, value is MatterServer instance
|
|
28
|
-
externalMatterServers = new Map();
|
|
29
12
|
constructor(config, api, externalPortService, pluginManager, options) {
|
|
13
|
+
super(pluginManager);
|
|
30
14
|
this.config = config;
|
|
31
15
|
this.api = api;
|
|
32
16
|
this.externalPortService = externalPortService;
|
|
33
|
-
this.pluginManager = pluginManager;
|
|
34
17
|
this.options = options;
|
|
18
|
+
this.setupEventListeners();
|
|
19
|
+
}
|
|
20
|
+
setupEventListeners() {
|
|
21
|
+
this.api.on("publishExternalMatterAccessories", (accessories, registrationId) => {
|
|
22
|
+
this.handlePublishExternalAccessories(accessories, registrationId).catch((error) => {
|
|
23
|
+
log.error('Failed to publish external Matter accessories:', error);
|
|
24
|
+
this.api._resolveExternalRegistration(registrationId);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
this.api.on("registerMatterPlatformAccessories", (pluginIdentifier, platformName, accessories) => {
|
|
28
|
+
this.handleRegisterPlatformAccessories(pluginIdentifier, platformName, accessories).catch((error) => {
|
|
29
|
+
log.error(`Failed to register Matter accessories for ${pluginIdentifier}:`, error);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
this.api.on("updateMatterPlatformAccessories", (accessories) => {
|
|
33
|
+
this.handleUpdatePlatformAccessories(accessories).catch((error) => {
|
|
34
|
+
log.error('Failed to update Matter platform accessories:', error);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
this.api.on("unregisterMatterPlatformAccessories", (pluginIdentifier, platformName, accessories) => {
|
|
38
|
+
this.handleUnregisterPlatformAccessories(pluginIdentifier, platformName, accessories).catch((error) => {
|
|
39
|
+
log.error(`Failed to unregister Matter accessories for ${pluginIdentifier}:`, error);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
this.api.on("unregisterExternalMatterAccessories", (accessories) => {
|
|
43
|
+
this.handleUnregisterExternalAccessories(accessories).catch((error) => {
|
|
44
|
+
log.error('Failed to unregister external Matter accessories:', error);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
this.api.on("updateMatterAccessoryState", (uuid, cluster, attributes, partId) => {
|
|
48
|
+
this.handleUpdateAccessoryState(uuid, cluster, attributes, partId).catch((error) => {
|
|
49
|
+
log.error('Failed to update Matter accessory state:', error);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
35
52
|
}
|
|
36
|
-
/**
|
|
37
|
-
* Collect all configured Matter ports from config to avoid conflicts
|
|
38
|
-
*/
|
|
39
53
|
static collectConfiguredMatterPorts(config) {
|
|
40
54
|
const configuredMatterPorts = [];
|
|
41
55
|
if (config.bridge.matter?.port) {
|
|
@@ -53,33 +67,25 @@ export class MatterBridgeManager {
|
|
|
53
67
|
}
|
|
54
68
|
return configuredMatterPorts;
|
|
55
69
|
}
|
|
56
|
-
/**
|
|
57
|
-
* Initialize Matter server for main bridge if enabled
|
|
58
|
-
*/
|
|
59
70
|
async initialize() {
|
|
60
|
-
// Check if main bridge has matter configuration
|
|
61
71
|
if (!this.config.bridge.matter) {
|
|
62
72
|
return;
|
|
63
73
|
}
|
|
64
|
-
// Declare matterPort outside try block so it's accessible in catch
|
|
65
74
|
let matterPort;
|
|
66
75
|
try {
|
|
67
76
|
log.info('Initializing Matter server for main bridge...');
|
|
68
|
-
// Allocate port from pool if not explicitly configured
|
|
69
77
|
matterPort = this.config.bridge.matter.port;
|
|
70
78
|
if (!matterPort) {
|
|
71
79
|
matterPort = await this.externalPortService.requestPort(`${this.config.bridge.username}:MATTER`);
|
|
72
80
|
if (!matterPort) {
|
|
73
|
-
matterPort = 5540;
|
|
81
|
+
matterPort = 5540;
|
|
74
82
|
log.warn('No port available from pool for main Matter bridge, using default port 5540');
|
|
75
83
|
}
|
|
76
84
|
else {
|
|
77
85
|
log.info(`Allocated port ${matterPort} from pool for main Matter bridge`);
|
|
78
86
|
}
|
|
79
87
|
}
|
|
80
|
-
// Create Matter server instance with config inheritance from main bridge
|
|
81
88
|
const serialNumber = this.config.bridge.username.replace(/:/g, '');
|
|
82
|
-
// Normalize bind config to array format
|
|
83
89
|
const networkInterfaces = this.config.bridge.bind
|
|
84
90
|
? Array.isArray(this.config.bridge.bind)
|
|
85
91
|
? this.config.bridge.bind
|
|
@@ -96,17 +102,13 @@ export class MatterBridgeManager {
|
|
|
96
102
|
debugModeEnabled: this.options.debugModeEnabled,
|
|
97
103
|
networkInterfaces,
|
|
98
104
|
});
|
|
99
|
-
// Start the Matter server
|
|
100
105
|
await this.matterServer.start();
|
|
101
106
|
log.info('Matter server initialized for main bridge');
|
|
102
|
-
// Inform the API that Matter is enabled
|
|
103
107
|
this.api._setMatterEnabled(true);
|
|
104
|
-
// Set the Matter server reference for API methods like getAccessoryState
|
|
105
108
|
this.api._setMatterServer(this.matterServer);
|
|
106
109
|
}
|
|
107
110
|
catch (error) {
|
|
108
111
|
log.error('Failed to initialize Matter server for main bridge:', error);
|
|
109
|
-
// Provide user-friendly guidance for common errors
|
|
110
112
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
111
113
|
const errorCode = error instanceof Error && 'code' in error ? error.code : undefined;
|
|
112
114
|
if (errorMessage.includes('corrupted')) {
|
|
@@ -146,14 +148,8 @@ export class MatterBridgeManager {
|
|
|
146
148
|
}
|
|
147
149
|
}
|
|
148
150
|
}
|
|
149
|
-
/**
|
|
150
|
-
* Handle external Matter accessories - each gets its own dedicated Matter server
|
|
151
|
-
* This is required for devices like Robotic Vacuum Cleaners that Apple Home
|
|
152
|
-
* requires to be on their own bridge.
|
|
153
|
-
*/
|
|
154
151
|
async handlePublishExternalAccessories(accessories, registrationId) {
|
|
155
152
|
log.info(`Publishing ${accessories.length} external Matter accessor${accessories.length === 1 ? 'y' : 'ies'}`);
|
|
156
|
-
// Normalize bind config to array format (inherit from main bridge)
|
|
157
153
|
const networkInterfaces = this.config.bridge.bind
|
|
158
154
|
? Array.isArray(this.config.bridge.bind)
|
|
159
155
|
? this.config.bridge.bind
|
|
@@ -162,30 +158,22 @@ export class MatterBridgeManager {
|
|
|
162
158
|
try {
|
|
163
159
|
for (const accessory of accessories) {
|
|
164
160
|
try {
|
|
165
|
-
// Check if already published
|
|
166
161
|
if (this.externalMatterServers.has(accessory.uuid)) {
|
|
167
162
|
log.warn(`External Matter accessory ${accessory.displayName} (${accessory.uuid}) is already published`);
|
|
168
163
|
continue;
|
|
169
164
|
}
|
|
170
|
-
// Publish the accessory using shared helper
|
|
171
165
|
const result = await publishExternalMatterAccessory(accessory, {
|
|
172
166
|
portService: this.externalPortService,
|
|
173
167
|
networkInterfaces,
|
|
174
168
|
debugModeEnabled: this.options.debugModeEnabled,
|
|
175
169
|
});
|
|
176
170
|
if (!result) {
|
|
177
|
-
// Validation or publishing failed (errors already logged by helper)
|
|
178
171
|
continue;
|
|
179
172
|
}
|
|
180
|
-
// Store the server instance
|
|
181
173
|
this.externalMatterServers.set(accessory.uuid, result.server);
|
|
182
|
-
// Emit the 'ready' event to notify plugins that the accessory is now available on the network
|
|
183
|
-
// This is similar to HAP's 'advertised' event and signals that the Matter server is running
|
|
184
|
-
// and the accessory can be commissioned by Matter controllers
|
|
185
174
|
if (accessory._eventEmitter) {
|
|
186
175
|
accessory._eventEmitter.emit('ready', result.port);
|
|
187
176
|
}
|
|
188
|
-
// Log commissioning info
|
|
189
177
|
if (result.commissioningInfo.qrCode && result.commissioningInfo.manualPairingCode) {
|
|
190
178
|
log.info(`📱 Commissioning codes for ${accessory.displayName}:`);
|
|
191
179
|
log.info(` QR Code: ${result.commissioningInfo.qrCode}`);
|
|
@@ -198,168 +186,10 @@ export class MatterBridgeManager {
|
|
|
198
186
|
}
|
|
199
187
|
}
|
|
200
188
|
finally {
|
|
201
|
-
// Notify that registration is complete (whether successful or not)
|
|
202
189
|
this.api._resolveExternalRegistration(registrationId);
|
|
203
190
|
}
|
|
204
191
|
}
|
|
205
|
-
/**
|
|
206
|
-
* Handle registration of Matter platform accessories
|
|
207
|
-
*/
|
|
208
|
-
async handleRegisterPlatformAccessories(pluginIdentifier, platformName, accessories) {
|
|
209
|
-
if (!this.matterServer) {
|
|
210
|
-
log.warn('Cannot register Matter accessories - Matter server is not running');
|
|
211
|
-
return;
|
|
212
|
-
}
|
|
213
|
-
await this.matterServer.registerPlatformAccessories(pluginIdentifier, platformName, accessories);
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Handle unregistration of Matter platform accessories
|
|
217
|
-
*/
|
|
218
|
-
async handleUnregisterPlatformAccessories(pluginIdentifier, platformName, accessories) {
|
|
219
|
-
if (!this.matterServer) {
|
|
220
|
-
log.warn('Cannot unregister Matter accessories - Matter server is not running');
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
await this.matterServer.unregisterPlatformAccessories(pluginIdentifier, platformName, accessories);
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Handle unregistration of external Matter accessories
|
|
227
|
-
* Stops dedicated servers and cleans up storage
|
|
228
|
-
*/
|
|
229
|
-
async handleUnregisterExternalAccessories(accessories) {
|
|
230
|
-
log.info(`Unregistering ${accessories.length} external Matter accessor${accessories.length === 1 ? 'y' : 'ies'}`);
|
|
231
|
-
for (const accessory of accessories) {
|
|
232
|
-
try {
|
|
233
|
-
// Check if this external server exists
|
|
234
|
-
const matterServer = this.externalMatterServers.get(accessory.uuid);
|
|
235
|
-
if (!matterServer) {
|
|
236
|
-
log.warn(`External Matter accessory ${accessory.displayName} (${accessory.uuid}) is not registered`);
|
|
237
|
-
continue;
|
|
238
|
-
}
|
|
239
|
-
log.info(`Stopping external Matter server for ${accessory.displayName}`);
|
|
240
|
-
// Stop the Matter server
|
|
241
|
-
await matterServer.stop();
|
|
242
|
-
// Remove from the map
|
|
243
|
-
this.externalMatterServers.delete(accessory.uuid);
|
|
244
|
-
// Clean up storage folder
|
|
245
|
-
// Generate the same uniqueId that was used when creating the server
|
|
246
|
-
const advertiseAddress = generate(accessory.uuid);
|
|
247
|
-
const uniqueId = advertiseAddress.replace(/:/g, '');
|
|
248
|
-
const storagePath = path.join(User.matterPath(), uniqueId);
|
|
249
|
-
try {
|
|
250
|
-
log.debug(`Removing Matter storage for external accessory at: ${storagePath}`);
|
|
251
|
-
rmSync(storagePath, { recursive: true, force: true });
|
|
252
|
-
log.info(`✓ Cleaned up storage for external Matter accessory: ${accessory.displayName}`);
|
|
253
|
-
}
|
|
254
|
-
catch (error) {
|
|
255
|
-
log.error(`Failed to clean up storage for external Matter accessory ${accessory.displayName}:`, error);
|
|
256
|
-
}
|
|
257
|
-
log.info(`✓ External Matter accessory unregistered: ${accessory.displayName}`);
|
|
258
|
-
}
|
|
259
|
-
catch (error) {
|
|
260
|
-
log.error(`Failed to unregister external Matter accessory ${accessory.displayName}:`, error);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Handle updating Matter platform accessories in the cache
|
|
266
|
-
* Checks both external servers and main bridge server
|
|
267
|
-
*/
|
|
268
|
-
async handleUpdatePlatformAccessories(accessories) {
|
|
269
|
-
const bridgeAccessories = [];
|
|
270
|
-
// Route each accessory to the appropriate server
|
|
271
|
-
for (const accessory of accessories) {
|
|
272
|
-
const externalServer = this.externalMatterServers.get(accessory.uuid);
|
|
273
|
-
if (externalServer) {
|
|
274
|
-
// Update external accessory
|
|
275
|
-
await externalServer.updatePlatformAccessories([accessory]);
|
|
276
|
-
}
|
|
277
|
-
else {
|
|
278
|
-
// Collect accessories for main bridge
|
|
279
|
-
bridgeAccessories.push(accessory);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
// Update accessories on main bridge server if any
|
|
283
|
-
if (bridgeAccessories.length > 0) {
|
|
284
|
-
if (!this.matterServer) {
|
|
285
|
-
log.warn('Cannot update Matter platform accessories - Matter server is not running');
|
|
286
|
-
return;
|
|
287
|
-
}
|
|
288
|
-
await this.matterServer.updatePlatformAccessories(bridgeAccessories);
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Handle Matter accessory state updates
|
|
293
|
-
* Checks both external servers and main bridge server
|
|
294
|
-
*/
|
|
295
|
-
async handleUpdateAccessoryState(uuid, cluster, attributes, partId) {
|
|
296
|
-
// Check if this is an external accessory first
|
|
297
|
-
const externalServer = this.externalMatterServers.get(uuid);
|
|
298
|
-
if (externalServer) {
|
|
299
|
-
await externalServer.updateAccessoryState(uuid, cluster, attributes, partId);
|
|
300
|
-
return;
|
|
301
|
-
}
|
|
302
|
-
// Otherwise, try the main bridge server
|
|
303
|
-
if (!this.matterServer) {
|
|
304
|
-
log.warn(`Cannot update Matter accessory state for ${uuid} - accessory not found in external servers and main Matter server is not running`);
|
|
305
|
-
return;
|
|
306
|
-
}
|
|
307
|
-
await this.matterServer.updateAccessoryState(uuid, cluster, attributes, partId);
|
|
308
|
-
}
|
|
309
|
-
/**
|
|
310
|
-
* Restore cached Matter accessories (matching HAP pattern)
|
|
311
|
-
*/
|
|
312
|
-
restoreCachedAccessories(keepOrphaned) {
|
|
313
|
-
if (!this.matterServer) {
|
|
314
|
-
log.debug('Matter server not available for restoring cached accessories');
|
|
315
|
-
return;
|
|
316
|
-
}
|
|
317
|
-
const cachedAccessories = this.matterServer.getAllCachedAccessories();
|
|
318
|
-
log.debug(`Restoring ${cachedAccessories.length} cached Matter accessories`);
|
|
319
|
-
for (const cachedAccessory of cachedAccessories) {
|
|
320
|
-
let plugin = this.pluginManager.getPlugin(cachedAccessory.plugin);
|
|
321
|
-
if (!plugin) {
|
|
322
|
-
try {
|
|
323
|
-
// Try to find plugin by platform name (handles plugin renames)
|
|
324
|
-
plugin = this.pluginManager.getPluginByActiveDynamicPlatform(cachedAccessory.platform);
|
|
325
|
-
if (plugin) {
|
|
326
|
-
log.info(`When searching for the associated plugin of the Matter accessory '${cachedAccessory.displayName}' `
|
|
327
|
-
+ `it seems like the plugin name changed from '${cachedAccessory.plugin}' to '${plugin.getPluginIdentifier()}'. Plugin association is now being transformed!`);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
catch (error) {
|
|
331
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
332
|
-
log.warn(`Could not find the associated plugin for the Matter accessory '${cachedAccessory.displayName}'. `
|
|
333
|
-
+ `Tried to find the plugin by the platform name but ${errorMessage}`);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
const platformPlugin = plugin && plugin.getActiveDynamicPlatform(cachedAccessory.platform);
|
|
337
|
-
if (!platformPlugin) {
|
|
338
|
-
log.warn(`Failed to find plugin to handle Matter accessory ${cachedAccessory.displayName} (plugin: ${cachedAccessory.plugin}, platform: ${cachedAccessory.platform})`);
|
|
339
|
-
if (!keepOrphaned) {
|
|
340
|
-
log.info(`Removing orphaned Matter accessory ${cachedAccessory.displayName}`);
|
|
341
|
-
this.matterServer.unregisterAccessory(cachedAccessory.uuid).catch((error) => {
|
|
342
|
-
log.warn(`Failed to unregister orphaned Matter accessory ${cachedAccessory.displayName}:`, error);
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
else {
|
|
347
|
-
// Call configureMatterAccessory if the plugin implements it
|
|
348
|
-
if (platformPlugin.configureMatterAccessory) {
|
|
349
|
-
log.debug(`Calling configureMatterAccessory for ${cachedAccessory.displayName}`);
|
|
350
|
-
platformPlugin.configureMatterAccessory(cachedAccessory);
|
|
351
|
-
}
|
|
352
|
-
else {
|
|
353
|
-
log.debug(`Platform ${cachedAccessory.platform} does not implement configureMatterAccessory`);
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
/**
|
|
359
|
-
* Get Matter server status information for IPC communication
|
|
360
|
-
*/
|
|
361
192
|
getMatterStatus() {
|
|
362
|
-
// Include Matter commissioning info if Matter is enabled
|
|
363
193
|
if (this.matterServer) {
|
|
364
194
|
const commissioningInfo = this.matterServer.getCommissioningInfo();
|
|
365
195
|
return {
|
|
@@ -373,7 +203,6 @@ export class MatterBridgeManager {
|
|
|
373
203
|
};
|
|
374
204
|
}
|
|
375
205
|
else if (this.config.bridge.matter) {
|
|
376
|
-
// Matter is configured but not yet started (or failed to start)
|
|
377
206
|
return {
|
|
378
207
|
enabled: false,
|
|
379
208
|
port: this.config.bridge.matter?.port,
|
|
@@ -383,11 +212,108 @@ export class MatterBridgeManager {
|
|
|
383
212
|
enabled: false,
|
|
384
213
|
};
|
|
385
214
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
215
|
+
collectAllAccessories(bridgeUsername) {
|
|
216
|
+
const accessories = [];
|
|
217
|
+
if (!bridgeUsername || bridgeUsername === this.config.bridge.username) {
|
|
218
|
+
if (this.matterServer) {
|
|
219
|
+
const mainAccessories = this.collectAccessoriesFromServer(this.matterServer, this.config.bridge.username, 'main', this.config.bridge.name || 'Homebridge');
|
|
220
|
+
accessories.push(...mainAccessories);
|
|
221
|
+
for (const server of this.externalMatterServers.values()) {
|
|
222
|
+
const externalAccessories = this.collectAccessoriesFromServer(server, server.username, 'external', server.bridgeName);
|
|
223
|
+
accessories.push(...externalAccessories);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return accessories;
|
|
228
|
+
}
|
|
229
|
+
getAccessoryInfo(uuid) {
|
|
230
|
+
if (this.matterServer) {
|
|
231
|
+
const accessory = this.getAccessoryDetailFromServer(this.matterServer, uuid, this.config.bridge.username, 'main');
|
|
232
|
+
if (accessory) {
|
|
233
|
+
return accessory;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
for (const server of this.externalMatterServers.values()) {
|
|
237
|
+
const accessory = this.getAccessoryDetailFromServer(server, uuid, server.username, 'external');
|
|
238
|
+
if (accessory) {
|
|
239
|
+
return accessory;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return undefined;
|
|
243
|
+
}
|
|
244
|
+
collectAccessoriesFromServer(server, bridgeUsername, bridgeType, bridgeName) {
|
|
245
|
+
const cached = server.getAllCachedAccessories();
|
|
246
|
+
const accessories = [];
|
|
247
|
+
for (const acc of cached) {
|
|
248
|
+
const accessory = this.transformAccessoryData(acc, server, bridgeUsername, bridgeType, bridgeName);
|
|
249
|
+
accessories.push(accessory);
|
|
250
|
+
}
|
|
251
|
+
return accessories;
|
|
252
|
+
}
|
|
253
|
+
transformAccessoryData(acc, server, bridgeUsername, bridgeType, bridgeName) {
|
|
254
|
+
const currentState = this.getCurrentStateFromServer(server, acc.uuid);
|
|
255
|
+
return {
|
|
256
|
+
uuid: acc.uuid,
|
|
257
|
+
displayName: acc.displayName,
|
|
258
|
+
serialNumber: acc.serialNumber,
|
|
259
|
+
manufacturer: acc.manufacturer,
|
|
260
|
+
model: acc.model,
|
|
261
|
+
firmwareRevision: acc.firmwareRevision,
|
|
262
|
+
deviceType: acc.deviceType,
|
|
263
|
+
clusters: currentState,
|
|
264
|
+
parts: acc.parts?.map((part) => ({
|
|
265
|
+
id: part.id,
|
|
266
|
+
displayName: part.displayName,
|
|
267
|
+
deviceType: part.deviceType,
|
|
268
|
+
clusters: this.getCurrentStateFromServer(server, acc.uuid, part.id),
|
|
269
|
+
})),
|
|
270
|
+
bridge: {
|
|
271
|
+
username: bridgeUsername,
|
|
272
|
+
type: bridgeType,
|
|
273
|
+
name: bridgeName,
|
|
274
|
+
},
|
|
275
|
+
plugin: acc.plugin,
|
|
276
|
+
platform: acc.platform,
|
|
277
|
+
context: acc.context,
|
|
278
|
+
commissioned: server.isCommissioned(),
|
|
279
|
+
fabricCount: server.getCommissionedFabricCount(),
|
|
280
|
+
fabrics: server.getFabricInfo(),
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
getAccessoryDetailFromServer(server, uuid, bridgeUsername, bridgeType) {
|
|
284
|
+
const accessory = server.getAccessory(uuid);
|
|
285
|
+
if (!accessory) {
|
|
286
|
+
return undefined;
|
|
287
|
+
}
|
|
288
|
+
const cached = server.getAllCachedAccessories().find((a) => a.uuid === uuid);
|
|
289
|
+
if (!cached) {
|
|
290
|
+
return undefined;
|
|
291
|
+
}
|
|
292
|
+
return this.transformAccessoryData(cached, server, bridgeUsername, bridgeType, server.bridgeName || 'Matter Bridge');
|
|
293
|
+
}
|
|
294
|
+
getCurrentStateFromServer(server, uuid, partId) {
|
|
295
|
+
const accessory = server.getAccessory(uuid);
|
|
296
|
+
if (!accessory) {
|
|
297
|
+
return {};
|
|
298
|
+
}
|
|
299
|
+
const endpoint = partId
|
|
300
|
+
? accessory._parts?.find((p) => p.id === partId)?.endpoint
|
|
301
|
+
: accessory.endpoint;
|
|
302
|
+
if (!endpoint) {
|
|
303
|
+
return {};
|
|
304
|
+
}
|
|
305
|
+
const state = {};
|
|
306
|
+
for (const [clusterName, clusterState] of Object.entries(endpoint.state)) {
|
|
307
|
+
state[clusterName] = {};
|
|
308
|
+
for (const [key, value] of Object.entries(clusterState)) {
|
|
309
|
+
if (!key.startsWith('_') && !key.startsWith('$')) {
|
|
310
|
+
state[clusterName][key] = value;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return state;
|
|
315
|
+
}
|
|
389
316
|
async teardown() {
|
|
390
|
-
// Stop main Matter server if running
|
|
391
317
|
if (this.matterServer) {
|
|
392
318
|
try {
|
|
393
319
|
await this.matterServer.stop();
|
|
@@ -396,7 +322,6 @@ export class MatterBridgeManager {
|
|
|
396
322
|
log.error('Failed to stop Matter server:', error);
|
|
397
323
|
}
|
|
398
324
|
}
|
|
399
|
-
// Stop all external Matter servers
|
|
400
325
|
for (const [uuid, matterServer] of this.externalMatterServers) {
|
|
401
326
|
try {
|
|
402
327
|
await matterServer.stop();
|
|
@@ -407,7 +332,6 @@ export class MatterBridgeManager {
|
|
|
407
332
|
}
|
|
408
333
|
}
|
|
409
334
|
this.externalMatterServers.clear();
|
|
410
|
-
// Child bridge Matter servers are stopped by their own forked processes
|
|
411
335
|
}
|
|
412
336
|
}
|
|
413
337
|
//# sourceMappingURL=MatterBridgeManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatterBridgeManager.js","sourceRoot":"","sources":["../../src/matter/MatterBridgeManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MatterBridgeManager.js","sourceRoot":"","sources":["../../src/matter/MatterBridgeManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Matter Config Collector
|
|
3
|
-
*
|
|
4
|
-
* Collects and validates Matter configuration from Homebridge config.
|
|
5
|
-
* This class extracts Matter config validation logic from server.ts to minimize changes to core files.
|
|
6
|
-
*/
|
|
7
1
|
import type { HomebridgeConfig } from '../bridgeService.js';
|
|
8
|
-
/**
|
|
9
|
-
* Validates and processes Matter configuration from Homebridge config
|
|
10
|
-
*/
|
|
11
2
|
export declare class MatterConfigCollector {
|
|
12
|
-
|
|
13
|
-
* Validate all Matter configuration in the config
|
|
14
|
-
* Validates main bridge and child bridge Matter configs, checks for port conflicts
|
|
15
|
-
*
|
|
16
|
-
* @param config - The Homebridge configuration
|
|
17
|
-
*/
|
|
3
|
+
static validateMatterPortsPool(config: HomebridgeConfig): void;
|
|
18
4
|
static validateMatterConfig(config: HomebridgeConfig): void;
|
|
19
|
-
/**
|
|
20
|
-
* Check for port conflicts between main bridge and child bridges
|
|
21
|
-
*
|
|
22
|
-
* @param config - The Homebridge configuration
|
|
23
|
-
*/
|
|
24
5
|
private static checkPortConflicts;
|
|
25
6
|
}
|
|
26
7
|
//# sourceMappingURL=MatterConfigCollector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatterConfigCollector.d.ts","sourceRoot":"","sources":["../../src/matter/MatterConfigCollector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MatterConfigCollector.d.ts","sourceRoot":"","sources":["../../src/matter/MatterConfigCollector.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAU3D,qBAAa,qBAAqB;IAOhC,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAoB9D,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAwC3D,OAAO,CAAC,MAAM,CAAC,kBAAkB;CA+BlC"}
|
|
@@ -1,31 +1,28 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Matter Config Collector
|
|
3
|
-
*
|
|
4
|
-
* Collects and validates Matter configuration from Homebridge config.
|
|
5
|
-
* This class extracts Matter config validation logic from server.ts to minimize changes to core files.
|
|
6
|
-
*/
|
|
7
1
|
import { Logger } from '../logger.js';
|
|
8
2
|
import { MatterConfigValidator } from './configValidator.js';
|
|
9
|
-
const log = Logger.
|
|
10
|
-
/**
|
|
11
|
-
* Validates and processes Matter configuration from Homebridge config
|
|
12
|
-
*/
|
|
3
|
+
const log = Logger.withPrefix('Matter/Config');
|
|
13
4
|
export class MatterConfigCollector {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
5
|
+
static validateMatterPortsPool(config) {
|
|
6
|
+
if (config.matterPorts !== undefined) {
|
|
7
|
+
if (config.matterPorts.start && config.matterPorts.end) {
|
|
8
|
+
if (config.matterPorts.start > config.matterPorts.end) {
|
|
9
|
+
log.error('Invalid Matter port pool configuration. End should be greater than or equal to start.');
|
|
10
|
+
config.matterPorts = undefined;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
log.error('Invalid configuration for \'matterPorts\'. Missing \'start\' and \'end\' properties! Ignoring it!');
|
|
15
|
+
config.matterPorts = undefined;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
20
19
|
static validateMatterConfig(config) {
|
|
21
|
-
// Check if any Matter config exists
|
|
22
20
|
const hasMatterConfig = config.bridge.matter
|
|
23
21
|
|| config.platforms.some((p) => p._bridge?.matter)
|
|
24
22
|
|| config.accessories.some((a) => a._bridge?.matter);
|
|
25
23
|
if (!hasMatterConfig) {
|
|
26
24
|
return;
|
|
27
25
|
}
|
|
28
|
-
// Validate main bridge Matter config
|
|
29
26
|
if (config.bridge.matter) {
|
|
30
27
|
const validation = MatterConfigValidator.validate(config.bridge.matter);
|
|
31
28
|
if (!validation.isValid) {
|
|
@@ -33,27 +30,19 @@ export class MatterConfigCollector {
|
|
|
33
30
|
delete config.bridge.matter;
|
|
34
31
|
}
|
|
35
32
|
}
|
|
36
|
-
// Validate all child bridge Matter configs and check for port conflicts
|
|
37
33
|
const childMatterValidation = MatterConfigValidator.validateAllChildMatterConfigs(config.platforms, config.accessories);
|
|
38
34
|
if (!childMatterValidation.isValid) {
|
|
39
35
|
log.error('Some child bridge Matter configurations are invalid. Check the errors above.');
|
|
40
36
|
}
|
|
41
|
-
// Check for conflicts between main bridge Matter port and child bridge ports
|
|
42
37
|
if (config.bridge.matter?.port) {
|
|
43
38
|
this.checkPortConflicts(config);
|
|
44
39
|
}
|
|
45
40
|
}
|
|
46
|
-
/**
|
|
47
|
-
* Check for port conflicts between main bridge and child bridges
|
|
48
|
-
*
|
|
49
|
-
* @param config - The Homebridge configuration
|
|
50
|
-
*/
|
|
51
41
|
static checkPortConflicts(config) {
|
|
52
42
|
const mainMatterPort = config.bridge.matter?.port;
|
|
53
43
|
if (!mainMatterPort) {
|
|
54
44
|
return;
|
|
55
45
|
}
|
|
56
|
-
// Collect all child bridge Matter ports
|
|
57
46
|
const childMatterPorts = [];
|
|
58
47
|
for (const platform of config.platforms) {
|
|
59
48
|
if (platform._bridge?.matter?.port) {
|
|
@@ -65,11 +54,9 @@ export class MatterConfigCollector {
|
|
|
65
54
|
childMatterPorts.push(accessory._bridge.matter.port);
|
|
66
55
|
}
|
|
67
56
|
}
|
|
68
|
-
// Check for conflicts with child bridge Matter ports
|
|
69
57
|
if (childMatterPorts.includes(mainMatterPort)) {
|
|
70
58
|
log.error(`Main bridge Matter port ${mainMatterPort} conflicts with a child bridge Matter port. Please use unique ports.`);
|
|
71
59
|
}
|
|
72
|
-
// Check for conflict with main bridge HAP port
|
|
73
60
|
if (config.bridge.port && Math.abs(config.bridge.port - mainMatterPort) < 10) {
|
|
74
61
|
log.warn(`Main bridge HAP port ${config.bridge.port} and Matter port ${mainMatterPort} are very close. Consider spacing them further apart.`);
|
|
75
62
|
}
|