homebridge 2.0.0-alpha.41 → 2.0.0-alpha.43
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 +81 -20
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +71 -11
- package/dist/api.js.map +1 -1
- package/dist/bridgeService.d.ts +14 -12
- package/dist/bridgeService.d.ts.map +1 -1
- package/dist/bridgeService.js +17 -3
- package/dist/bridgeService.js.map +1 -1
- package/dist/bridgeTypes.d.ts +54 -0
- package/dist/bridgeTypes.d.ts.map +1 -0
- package/dist/bridgeTypes.js +8 -0
- package/dist/bridgeTypes.js.map +1 -0
- package/dist/childBridgeFork.d.ts +23 -0
- package/dist/childBridgeFork.d.ts.map +1 -1
- package/dist/childBridgeFork.js +240 -4
- package/dist/childBridgeFork.js.map +1 -1
- package/dist/childBridgeService.d.ts +47 -7
- package/dist/childBridgeService.d.ts.map +1 -1
- package/dist/childBridgeService.js +67 -2
- package/dist/childBridgeService.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +5 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/ipcService.d.ts +3 -1
- package/dist/ipcService.d.ts.map +1 -1
- package/dist/ipcService.js +2 -0
- package/dist/ipcService.js.map +1 -1
- package/dist/matter/index.d.ts +4 -6
- package/dist/matter/index.d.ts.map +1 -1
- package/dist/matter/index.js +4 -5
- package/dist/matter/index.js.map +1 -1
- package/dist/matter/matterConfigValidator.d.ts +2 -3
- package/dist/matter/matterConfigValidator.d.ts.map +1 -1
- package/dist/matter/matterConfigValidator.js +47 -38
- package/dist/matter/matterConfigValidator.js.map +1 -1
- package/dist/matter/matterErrorHandler.d.ts +6 -25
- package/dist/matter/matterErrorHandler.d.ts.map +1 -1
- package/dist/matter/matterErrorHandler.js +89 -99
- package/dist/matter/matterErrorHandler.js.map +1 -1
- package/dist/matter/matterServer.d.ts +126 -39
- package/dist/matter/matterServer.d.ts.map +1 -1
- package/dist/matter/matterServer.js +528 -226
- package/dist/matter/matterServer.js.map +1 -1
- package/dist/matter/matterSharedTypes.d.ts +16 -38
- package/dist/matter/matterSharedTypes.d.ts.map +1 -1
- package/dist/matter/matterSharedTypes.js +3 -4
- package/dist/matter/matterSharedTypes.js.map +1 -1
- package/dist/matter/matterStorage.d.ts +116 -0
- package/dist/matter/matterStorage.d.ts.map +1 -0
- package/dist/matter/matterStorage.js +442 -0
- package/dist/matter/matterStorage.js.map +1 -0
- package/dist/matter/matterTypes.d.ts +148 -20
- package/dist/matter/matterTypes.d.ts.map +1 -1
- package/dist/matter/matterTypes.js +91 -263
- package/dist/matter/matterTypes.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +4 -2
- package/dist/plugin.js.map +1 -1
- package/dist/server.d.ts +18 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +376 -349
- package/dist/server.js.map +1 -1
- package/dist/user.d.ts +1 -0
- package/dist/user.d.ts.map +1 -1
- package/dist/user.js +3 -0
- package/dist/user.js.map +1 -1
- package/package.json +6 -7
- package/dist/childMatterBridgeFork.d.ts +0 -108
- package/dist/childMatterBridgeFork.d.ts.map +0 -1
- package/dist/childMatterBridgeFork.js +0 -330
- package/dist/childMatterBridgeFork.js.map +0 -1
- package/dist/childMatterBridgeService.d.ts +0 -166
- package/dist/childMatterBridgeService.d.ts.map +0 -1
- package/dist/childMatterBridgeService.js +0 -623
- package/dist/childMatterBridgeService.js.map +0 -1
- package/dist/matter/matterBridge.d.ts +0 -64
- package/dist/matter/matterBridge.d.ts.map +0 -1
- package/dist/matter/matterBridge.js +0 -154
- package/dist/matter/matterBridge.js.map +0 -1
- package/dist/matter/matterDevice.d.ts +0 -107
- package/dist/matter/matterDevice.d.ts.map +0 -1
- package/dist/matter/matterDevice.js +0 -913
- package/dist/matter/matterDevice.js.map +0 -1
- package/dist/matter/portAllocator.d.ts +0 -85
- package/dist/matter/portAllocator.d.ts.map +0 -1
- package/dist/matter/portAllocator.js +0 -296
- package/dist/matter/portAllocator.js.map +0 -1
|
@@ -7,6 +7,9 @@ export declare class ChildBridgeFork {
|
|
|
7
7
|
private api;
|
|
8
8
|
private pluginManager;
|
|
9
9
|
private externalPortService;
|
|
10
|
+
private matterServer?;
|
|
11
|
+
private matterConfig?;
|
|
12
|
+
private matterSerialNumber?;
|
|
10
13
|
private type;
|
|
11
14
|
private plugin;
|
|
12
15
|
private identifier;
|
|
@@ -19,6 +22,10 @@ export declare class ChildBridgeFork {
|
|
|
19
22
|
sendMessage<T = unknown>(type: ChildProcessMessageEventType, data?: T): void;
|
|
20
23
|
loadPlugin(data: ChildProcessLoadEventData): Promise<void>;
|
|
21
24
|
startBridge(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Load platform/accessory for Matter-only bridges (without HAP)
|
|
27
|
+
*/
|
|
28
|
+
private loadPlatformForMatterOnly;
|
|
22
29
|
/**
|
|
23
30
|
* Request the next available external port from the parent process
|
|
24
31
|
* @param username
|
|
@@ -33,6 +40,22 @@ export declare class ChildBridgeFork {
|
|
|
33
40
|
* Sends the current pairing status of the child bridge to the parent process
|
|
34
41
|
*/
|
|
35
42
|
sendPairedStatusEvent(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Sends Matter bridge status when Matter is configured
|
|
45
|
+
*/
|
|
46
|
+
sendMatterStatusEvent(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Start Matter server for child bridge
|
|
49
|
+
*/
|
|
50
|
+
private startMatterServer;
|
|
51
|
+
/**
|
|
52
|
+
* Handle Matter metadata request from parent process
|
|
53
|
+
*/
|
|
54
|
+
handleMatterMetadataRequest(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Hook to handle HAP accessory registration and sync with Matter
|
|
57
|
+
*/
|
|
58
|
+
private handleAccessoryRegistration;
|
|
36
59
|
shutdown(): void;
|
|
37
60
|
}
|
|
38
61
|
//# sourceMappingURL=childBridgeFork.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"childBridgeFork.d.ts","sourceRoot":"","sources":["../src/childBridgeFork.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAU5C,OAAO,KAAK,EAEV,yBAAyB,EAGzB,kCAAkC,EAEnC,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"childBridgeFork.d.ts","sourceRoot":"","sources":["../src/childBridgeFork.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAU5C,OAAO,KAAK,EAEV,yBAAyB,EAGzB,kCAAkC,EAEnC,MAAM,yBAAyB,CAAA;AAUhC,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAOtE,OAAO,gCAAgC,CAAA;AAQvC,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,YAAY,CAAC,CAWpB;IAED,OAAO,CAAC,YAAY,CAAC,CAAgD;IACrE,OAAO,CAAC,kBAAkB,CAAC,CAAQ;IAEnC,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,mBAAmB,CAAiE;;IAO5F,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;IAStE,UAAU,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiD1D,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAsKlC;;OAEG;YACW,yBAAyB;IAmCvC;;;OAGG;IACU,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAoBnF;;;OAGG;IACI,sBAAsB,CAAC,IAAI,EAAE,kCAAkC,GAAG,IAAI;IAO7E;;OAEG;IACI,qBAAqB;IAO5B;;OAEG;IACI,qBAAqB;IAkC5B;;OAEG;YACW,iBAAiB;IAwD/B;;OAEG;IACI,2BAA2B,IAAI,IAAI;IAS1C;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAuBnC,QAAQ,IAAI,IAAI;CAUjB"}
|
package/dist/childBridgeFork.js
CHANGED
|
@@ -5,6 +5,7 @@ import { HomebridgeAPI } from './api.js';
|
|
|
5
5
|
import { BridgeService } from './bridgeService.js';
|
|
6
6
|
import { ChildBridgeExternalPortService } from './externalPortService.js';
|
|
7
7
|
import { Logger } from './logger.js';
|
|
8
|
+
import { PlatformAccessory } from './platformAccessory.js';
|
|
8
9
|
import { PluginManager } from './pluginManager.js';
|
|
9
10
|
import { User } from './user.js';
|
|
10
11
|
import 'source-map-support/register.js';
|
|
@@ -17,6 +18,9 @@ export class ChildBridgeFork {
|
|
|
17
18
|
api;
|
|
18
19
|
pluginManager;
|
|
19
20
|
externalPortService;
|
|
21
|
+
matterServer;
|
|
22
|
+
matterConfig;
|
|
23
|
+
matterSerialNumber;
|
|
20
24
|
type;
|
|
21
25
|
plugin;
|
|
22
26
|
identifier;
|
|
@@ -59,10 +63,8 @@ export class ChildBridgeFork {
|
|
|
59
63
|
if (this.bridgeOptions.forceColourLogging) {
|
|
60
64
|
Logger.forceColor();
|
|
61
65
|
}
|
|
62
|
-
if (this.bridgeOptions.customStoragePath) {
|
|
63
|
-
User.setStoragePath(this.bridgeOptions.customStoragePath);
|
|
64
|
-
}
|
|
65
66
|
// Initialize HAP-NodeJS with a custom persist directory
|
|
67
|
+
// The storage path is already set from the parent process environment
|
|
66
68
|
HAPStorage.setCustomStoragePath(User.persistPath());
|
|
67
69
|
// load api
|
|
68
70
|
this.api = new HomebridgeAPI();
|
|
@@ -79,7 +81,46 @@ export class ChildBridgeFork {
|
|
|
79
81
|
});
|
|
80
82
|
}
|
|
81
83
|
async startBridge() {
|
|
84
|
+
// Check if this is a Matter-only bridge
|
|
85
|
+
const isMatterOnlyBridge = this.bridgeConfig.matterOnly === true;
|
|
86
|
+
// Check if Matter is configured
|
|
87
|
+
this.matterConfig = this.bridgeConfig.matter;
|
|
88
|
+
// Initialize Matter if it's configured (either Matter-only or combined bridge)
|
|
89
|
+
if (this.matterConfig) {
|
|
90
|
+
Logger.internal.debug(`Child bridge has Matter config (${isMatterOnlyBridge ? 'Matter-only' : 'Combined HAP+Matter'}), starting Matter server`);
|
|
91
|
+
// If Matter doesn't have a port configured, allocate one
|
|
92
|
+
if (!this.matterConfig.port) {
|
|
93
|
+
// Generate a unique username for Matter port allocation
|
|
94
|
+
const matterUsername = isMatterOnlyBridge
|
|
95
|
+
? `matter-${this.plugin.getPluginIdentifier()}-${this.identifier}` // Use unique identifier for Matter-only
|
|
96
|
+
: `${this.bridgeConfig.username}:MATTER`;
|
|
97
|
+
const matterPort = await this.externalPortService.requestPort(matterUsername);
|
|
98
|
+
this.matterConfig.port = matterPort || 5540; // Default to 5540 if no port available
|
|
99
|
+
Logger.internal.debug(`Allocated Matter port: ${this.matterConfig.port}${!isMatterOnlyBridge ? ` (HAP port: ${this.bridgeConfig.port})` : ''}`);
|
|
100
|
+
}
|
|
101
|
+
// Start Matter server
|
|
102
|
+
await this.startMatterServer(this.matterConfig);
|
|
103
|
+
// Send Matter bridge status to parent process
|
|
104
|
+
this.sendMatterStatusEvent();
|
|
105
|
+
}
|
|
106
|
+
// Skip HAP bridge initialization for Matter-only bridges
|
|
107
|
+
if (isMatterOnlyBridge) {
|
|
108
|
+
Logger.internal.info('Matter-only bridge - skipping HAP initialization');
|
|
109
|
+
// For Matter-only, we still need to instantiate the platform, just not publish HAP
|
|
110
|
+
await this.loadPlatformForMatterOnly();
|
|
111
|
+
this.api.signalFinished();
|
|
112
|
+
this.sendMessage("online" /* ChildProcessMessageEventType.ONLINE */);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
82
115
|
this.bridgeService = new BridgeService(this.api, this.pluginManager, this.externalPortService, this.bridgeOptions, this.bridgeConfig, this.homebridgeConfig);
|
|
116
|
+
// Only hook into accessory registration if Matter is configured
|
|
117
|
+
if (this.matterConfig && this.bridgeService.handleRegisterPlatformAccessories) {
|
|
118
|
+
const originalHandler = this.bridgeService.handleRegisterPlatformAccessories.bind(this.bridgeService);
|
|
119
|
+
this.bridgeService.handleRegisterPlatformAccessories = (accessories) => {
|
|
120
|
+
originalHandler(accessories);
|
|
121
|
+
this.handleAccessoryRegistration(accessories);
|
|
122
|
+
};
|
|
123
|
+
}
|
|
83
124
|
// watch bridge events to check when server is online
|
|
84
125
|
this.bridgeService.bridge.on("advertised" /* AccessoryEventTypes.ADVERTISED */, () => {
|
|
85
126
|
this.sendPairedStatusEvent();
|
|
@@ -94,8 +135,15 @@ export class ChildBridgeFork {
|
|
|
94
135
|
});
|
|
95
136
|
// load the cached accessories
|
|
96
137
|
await this.bridgeService.loadCachedPlatformAccessoriesFromDisk();
|
|
138
|
+
// For combined HAP+Matter bridges, we should only process the platform once
|
|
139
|
+
// When _bridge.matter is configured alongside HAP, we only need to instantiate the platform once
|
|
140
|
+
let platformInstantiated = false;
|
|
97
141
|
for (const config of this.pluginConfig) {
|
|
98
142
|
if (this.type === "platform" /* PluginType.PLATFORM */) {
|
|
143
|
+
// Skip if we've already instantiated this platform (for combined HAP+Matter)
|
|
144
|
+
if (platformInstantiated) {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
99
147
|
const plugin = this.pluginManager.getPluginForPlatform(this.identifier);
|
|
100
148
|
const displayName = config.name || plugin.getPluginIdentifier();
|
|
101
149
|
const logger = Logger.withPrefix(displayName);
|
|
@@ -103,13 +151,16 @@ export class ChildBridgeFork {
|
|
|
103
151
|
const platform = new constructor(logger, config, this.api);
|
|
104
152
|
if (HomebridgeAPI.isDynamicPlatformPlugin(platform)) {
|
|
105
153
|
plugin.assignDynamicPlatform(this.identifier, platform);
|
|
154
|
+
platformInstantiated = true;
|
|
106
155
|
}
|
|
107
156
|
else if (HomebridgeAPI.isStaticPlatformPlugin(platform)) { // Plugin 1.0, load accessories
|
|
108
157
|
await this.bridgeService.loadPlatformAccessories(plugin, platform, this.identifier, logger);
|
|
158
|
+
platformInstantiated = true;
|
|
109
159
|
}
|
|
110
160
|
else {
|
|
111
161
|
// otherwise it's a IndependentPlatformPlugin which doesn't expose any methods at all.
|
|
112
162
|
// We just call the constructor and let it be enabled.
|
|
163
|
+
platformInstantiated = true;
|
|
113
164
|
}
|
|
114
165
|
}
|
|
115
166
|
else if (this.type === "accessory" /* PluginType.ACCESSORY */) {
|
|
@@ -126,6 +177,23 @@ export class ChildBridgeFork {
|
|
|
126
177
|
const accessory = this.bridgeService.createHAPAccessory(plugin, accessoryInstance, displayName, this.identifier, config.uuid_base);
|
|
127
178
|
if (accessory) {
|
|
128
179
|
this.bridgeService.bridge.addBridgedAccessory(accessory);
|
|
180
|
+
// If Matter is configured, also add the accessory to Matter
|
|
181
|
+
if (this.matterConfig && this.matterServer) {
|
|
182
|
+
Logger.internal.debug(`[MATTER-ACCESSORY] Syncing accessory plugin ${displayName} to Matter`);
|
|
183
|
+
// Convert HAP accessory to PlatformAccessory for Matter
|
|
184
|
+
// Generate a valid UUID for the accessory
|
|
185
|
+
const uuid = this.api.hap.uuid.generate(`${plugin.getPluginIdentifier()}.${this.identifier}`);
|
|
186
|
+
const platformAccessory = new PlatformAccessory(displayName, uuid);
|
|
187
|
+
// Copy services from HAP accessory to platform accessory
|
|
188
|
+
accessory.services.forEach((service) => {
|
|
189
|
+
// Skip the AccessoryInformation service as PlatformAccessory already has one
|
|
190
|
+
if (service.UUID !== this.api.hap.Service.AccessoryInformation.UUID) {
|
|
191
|
+
platformAccessory.addService(service);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
// Add to Matter
|
|
195
|
+
this.handleAccessoryRegistration([platformAccessory]);
|
|
196
|
+
}
|
|
129
197
|
}
|
|
130
198
|
else {
|
|
131
199
|
logger('Accessory %s returned empty set of services. Won\'t adding it to the bridge!', this.identifier);
|
|
@@ -134,11 +202,51 @@ export class ChildBridgeFork {
|
|
|
134
202
|
}
|
|
135
203
|
// restore the cached accessories
|
|
136
204
|
this.bridgeService.restoreCachedPlatformAccessories();
|
|
205
|
+
// If Matter is configured, sync all restored accessories to Matter
|
|
206
|
+
if (this.matterConfig && this.matterServer) {
|
|
207
|
+
const restoredAccessories = this.bridgeService.getCachedPlatformAccessories();
|
|
208
|
+
if (restoredAccessories && restoredAccessories.length > 0) {
|
|
209
|
+
Logger.internal.debug(`Syncing ${restoredAccessories.length} restored accessories to Matter`);
|
|
210
|
+
this.handleAccessoryRegistration(restoredAccessories);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
137
213
|
this.bridgeService.publishBridge();
|
|
138
214
|
this.api.signalFinished();
|
|
139
215
|
// tell the parent we are online
|
|
140
216
|
this.sendMessage("online" /* ChildProcessMessageEventType.ONLINE */);
|
|
141
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* Load platform/accessory for Matter-only bridges (without HAP)
|
|
220
|
+
*/
|
|
221
|
+
async loadPlatformForMatterOnly() {
|
|
222
|
+
for (const config of this.pluginConfig) {
|
|
223
|
+
if (this.type === "platform" /* PluginType.PLATFORM */) {
|
|
224
|
+
const plugin = this.pluginManager.getPluginForPlatform(this.identifier);
|
|
225
|
+
const displayName = config.name || plugin.getPluginIdentifier();
|
|
226
|
+
const logger = Logger.withPrefix(displayName);
|
|
227
|
+
const constructor = plugin.getPlatformConstructor(this.identifier);
|
|
228
|
+
const platform = new constructor(logger, config, this.api);
|
|
229
|
+
if (HomebridgeAPI.isDynamicPlatformPlugin(platform)) {
|
|
230
|
+
plugin.assignDynamicPlatform(this.identifier, platform);
|
|
231
|
+
}
|
|
232
|
+
// For Matter-only, static platforms and independent platforms just get constructed
|
|
233
|
+
}
|
|
234
|
+
else if (this.type === "accessory" /* PluginType.ACCESSORY */) {
|
|
235
|
+
const plugin = this.pluginManager.getPluginForAccessory(this.identifier);
|
|
236
|
+
const displayName = config.name;
|
|
237
|
+
if (!displayName) {
|
|
238
|
+
Logger.internal.warn('Could not load accessory %s as it is missing the required \'name\' property!', this.identifier);
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
const logger = Logger.withPrefix(displayName);
|
|
242
|
+
const constructor = plugin.getAccessoryConstructor(this.identifier);
|
|
243
|
+
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
244
|
+
const accessoryInstance = new constructor(logger, config, this.api);
|
|
245
|
+
// Accessories for Matter-only bridges are registered via api.matter.registerAccessory()
|
|
246
|
+
// We just instantiate them here to allow plugin initialization
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
142
250
|
/**
|
|
143
251
|
* Request the next available external port from the parent process
|
|
144
252
|
* @param username
|
|
@@ -179,8 +287,128 @@ export class ChildBridgeFork {
|
|
|
179
287
|
setupUri: this.bridgeService?.bridge?.setupURI() ?? null,
|
|
180
288
|
});
|
|
181
289
|
}
|
|
290
|
+
/**
|
|
291
|
+
* Sends Matter bridge status when Matter is configured
|
|
292
|
+
*/
|
|
293
|
+
sendMatterStatusEvent() {
|
|
294
|
+
if (!this.matterConfig) {
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
// Generate identifier based on bridge type
|
|
298
|
+
const isMatterOnly = this.bridgeConfig.matterOnly === true;
|
|
299
|
+
const matterBridgeId = isMatterOnly
|
|
300
|
+
? `matter-${this.plugin.getPluginIdentifier()}-${this.identifier}`
|
|
301
|
+
: `${this.bridgeConfig.username}-matter`;
|
|
302
|
+
const commissioningInfo = this.matterServer?.getCommissioningInfo() ?? { commissioned: false };
|
|
303
|
+
const { qrCode, manualPairingCode, commissioned } = commissioningInfo;
|
|
304
|
+
this.sendMessage("matterStatus" /* ChildProcessMessageEventType.MATTER_STATUS_UPDATE */, {
|
|
305
|
+
type: 'matter',
|
|
306
|
+
status: commissioned ? 'ok' : 'pending',
|
|
307
|
+
port: this.matterConfig.port || 5540,
|
|
308
|
+
qrCode,
|
|
309
|
+
manualPairingCode,
|
|
310
|
+
serialNumber: this.matterSerialNumber,
|
|
311
|
+
name: this.matterConfig.name,
|
|
312
|
+
plugin: this.plugin.getPluginIdentifier(),
|
|
313
|
+
identifier: matterBridgeId,
|
|
314
|
+
username: this.bridgeConfig.username, // undefined for Matter-only bridges
|
|
315
|
+
deviceCount: this.matterServer?.getDeviceCount ? this.matterServer.getDeviceCount() : 0,
|
|
316
|
+
manuallyStopped: false,
|
|
317
|
+
pid: process.pid,
|
|
318
|
+
commissioned,
|
|
319
|
+
});
|
|
320
|
+
Logger.internal.debug(`Sent Matter status update for bridge: ${matterBridgeId}`);
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Start Matter server for child bridge
|
|
324
|
+
*/
|
|
325
|
+
async startMatterServer(matterConfig) {
|
|
326
|
+
Logger.internal.info('Starting Matter server in child bridge process');
|
|
327
|
+
// Dynamically import the MatterServer to avoid loading it when not needed
|
|
328
|
+
const { MatterServer } = await import('./matter/matterServer.js');
|
|
329
|
+
// Generate unique ID based on bridge type
|
|
330
|
+
const isMatterOnly = this.bridgeConfig.matterOnly === true;
|
|
331
|
+
const uniqueId = isMatterOnly
|
|
332
|
+
? `matter-${this.plugin.getPluginIdentifier()}-${this.identifier}`
|
|
333
|
+
: `${this.bridgeConfig.username}-matter`;
|
|
334
|
+
// Create Matter server with the provided configuration
|
|
335
|
+
this.matterServer = new MatterServer({
|
|
336
|
+
port: matterConfig.port || 5540,
|
|
337
|
+
name: matterConfig.name || this.bridgeConfig.name || 'Homebridge Matter Bridge',
|
|
338
|
+
uniqueId,
|
|
339
|
+
storagePath: User.matterPath(),
|
|
340
|
+
});
|
|
341
|
+
await this.matterServer.start();
|
|
342
|
+
// Inform the API that Matter is enabled
|
|
343
|
+
this.api._setMatterEnabled(true);
|
|
344
|
+
const commissioningInfo = this.matterServer.getCommissioningInfo();
|
|
345
|
+
Logger.internal.info('Matter server started with commissioning info:', commissioningInfo);
|
|
346
|
+
// Store the serial number for status updates
|
|
347
|
+
this.matterSerialNumber = commissioningInfo.serialNumber;
|
|
348
|
+
// Send initial Matter status update
|
|
349
|
+
this.sendMatterStatusEvent();
|
|
350
|
+
// Set up event listeners for Matter API calls
|
|
351
|
+
const { InternalAPIEvent } = await import('./api.js');
|
|
352
|
+
this.api.on("registerMatterAccessory" /* InternalAPIEvent.REGISTER_MATTER_ACCESSORY */, (accessory) => {
|
|
353
|
+
if (this.matterServer) {
|
|
354
|
+
this.matterServer.registerAccessory(accessory);
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
this.api.on("unregisterMatterAccessory" /* InternalAPIEvent.UNREGISTER_MATTER_ACCESSORY */, (uuid) => {
|
|
358
|
+
if (this.matterServer) {
|
|
359
|
+
this.matterServer.unregisterAccessory(uuid);
|
|
360
|
+
}
|
|
361
|
+
});
|
|
362
|
+
this.api.on("updateMatterAccessoryState" /* InternalAPIEvent.UPDATE_MATTER_ACCESSORY_STATE */, (uuid, cluster, attributes) => {
|
|
363
|
+
if (this.matterServer) {
|
|
364
|
+
this.matterServer.updateAccessoryState(uuid, cluster, attributes);
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
// Send updated Matter status with fresh commissioning info to parent
|
|
368
|
+
this.sendMatterStatusEvent();
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Handle Matter metadata request from parent process
|
|
372
|
+
*/
|
|
373
|
+
handleMatterMetadataRequest() {
|
|
374
|
+
if (!this.matterConfig || !this.matterServer) {
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
// Send Matter bridge metadata back to parent
|
|
378
|
+
this.sendMatterStatusEvent();
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Hook to handle HAP accessory registration and sync with Matter
|
|
382
|
+
*/
|
|
383
|
+
handleAccessoryRegistration(accessories) {
|
|
384
|
+
if (!this.matterServer) {
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
Logger.internal.debug(`Syncing ${accessories.length} accessories to Matter`);
|
|
388
|
+
for (const accessory of accessories) {
|
|
389
|
+
// Add to Matter server if it has the addAccessory method
|
|
390
|
+
if (typeof this.matterServer.addAccessory === 'function') {
|
|
391
|
+
this.matterServer.addAccessory(accessory).then((matterDevice) => {
|
|
392
|
+
if (matterDevice) {
|
|
393
|
+
Logger.internal.debug(`Successfully added ${accessory.displayName} to Matter server`);
|
|
394
|
+
// Update Matter status to reflect new device count
|
|
395
|
+
this.sendMatterStatusEvent();
|
|
396
|
+
}
|
|
397
|
+
}).catch((error) => {
|
|
398
|
+
Logger.internal.error(`Failed to add accessory ${accessory.displayName} to Matter:`, error);
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
182
403
|
shutdown() {
|
|
183
404
|
this.bridgeService.teardown();
|
|
405
|
+
// Only stop Matter server if it was initialized
|
|
406
|
+
if (this.matterServer && typeof this.matterServer.stop === 'function') {
|
|
407
|
+
Logger.internal.debug('Stopping Matter server');
|
|
408
|
+
this.matterServer.stop().catch((error) => {
|
|
409
|
+
Logger.internal.error('Error stopping Matter server:', error);
|
|
410
|
+
});
|
|
411
|
+
}
|
|
184
412
|
}
|
|
185
413
|
}
|
|
186
414
|
/**
|
|
@@ -200,13 +428,21 @@ process.on('message', (message) => {
|
|
|
200
428
|
break;
|
|
201
429
|
}
|
|
202
430
|
case "start" /* ChildProcessMessageEventType.START */: {
|
|
203
|
-
childPluginFork.startBridge()
|
|
431
|
+
childPluginFork.startBridge().catch((error) => {
|
|
432
|
+
Logger.internal.error('Failed to start bridge:', error);
|
|
433
|
+
process.exit(1);
|
|
434
|
+
});
|
|
204
435
|
break;
|
|
205
436
|
}
|
|
206
437
|
case "portAllocated" /* ChildProcessMessageEventType.PORT_ALLOCATED */: {
|
|
207
438
|
childPluginFork.handleExternalResponse(message.data);
|
|
208
439
|
break;
|
|
209
440
|
}
|
|
441
|
+
case 'MATTER_BRIDGE_METADATA_REQUEST': {
|
|
442
|
+
// Handle request for Matter bridge metadata
|
|
443
|
+
childPluginFork.handleMatterMetadataRequest();
|
|
444
|
+
break;
|
|
445
|
+
}
|
|
210
446
|
}
|
|
211
447
|
});
|
|
212
448
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"childBridgeFork.js","sourceRoot":"","sources":["../src/childBridgeFork.ts"],"names":[],"mappings":"AAAA,mBAAmB;AAsBnB,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,OAAO,EAAuB,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5D,OAAO,EAAE,aAAa,EAAc,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAA;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,gCAAgC,CAAA;AAEvC;;GAEG;AAEH,OAAO,CAAC,KAAK,GAAG,0BAA0B,CAAA;AAE1C,MAAM,OAAO,eAAe;IAClB,aAAa,CAAgB;IAC7B,GAAG,CAAgB;IACnB,aAAa,CAAgB;IAC7B,mBAAmB,CAAiC;IAEpD,IAAI,CAAa;IACjB,MAAM,CAAS;IACf,UAAU,CAAS;IACnB,YAAY,CAA0C;IACtD,YAAY,CAAsB;IAClC,aAAa,CAAgB;IAC7B,gBAAgB,CAAmB;IAEnC,mBAAmB,GAAwD,IAAI,GAAG,EAAE,CAAA;IAE5F;QACE,+DAA+D;QAC/D,IAAI,CAAC,WAAW,kDAAoC,CAAA;IACtD,CAAC;IAED,WAAW,CAAc,IAAkC,EAAE,IAAQ;QACnE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,IAAI;gBACR,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAA+B;QAC9C,WAAW;QACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAE7C,mEAAmE;QACnE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;QAED,mDAAmD;QACnD,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YACvC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;YACxC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC;YAC1C,MAAM,CAAC,UAAU,EAAE,CAAA;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;YACzC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;QAC3D,CAAC;QAED,wDAAwD;QACxD,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAEnD,WAAW;QACX,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,EAAE,CAAA;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChD,IAAI,CAAC,mBAAmB,GAAG,IAAI,8BAA8B,CAAC,IAAI,CAAC,CAAA;QAEnE,cAAc;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACxB,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAEvE,8CAA8C;QAC9C,OAAO,CAAC,KAAK,GAAG,eAAe,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAA;QAElE,IAAI,CAAC,WAAW,qDAAyE;YACvF,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;SAC7B,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CACpC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,gBAAgB,CACtB,CAAA;QAED,qDAAqD;QACrD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,oDAAiC,GAAG,EAAE;YAChE,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEF,yDAAyD;QACzD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,4CAA6B,GAAG,EAAE;YAC5D,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEF,2DAA2D;QAC3D,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,gDAA+B,GAAG,EAAE;YAC9D,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEF,8BAA8B;QAC9B,MAAM,IAAI,CAAC,aAAa,CAAC,qCAAqC,EAAE,CAAA;QAEhE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,IAAI,yCAAwB,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACvE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAA;gBAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;gBAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAClE,MAAM,QAAQ,GAAmB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAwB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAE5F,IAAI,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpD,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;gBACzD,CAAC;qBAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,+BAA+B;oBAC1F,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;gBAC7F,CAAC;qBAAM,CAAC;oBACN,sFAAsF;oBACtF,sDAAsD;gBACxD,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,2CAAyB,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACxE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAA;gBAE/B,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,8EAA8E,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;oBACrH,OAAM;gBACR,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;gBAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACnE,MAAM,iBAAiB,GAAoB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAyB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAEvG,8IAA8I;gBAC9I,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;gBAElI,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAA;gBAC1D,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,8EAA8E,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;gBACzG,CAAC;YACH,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,aAAa,CAAC,gCAAgC,EAAE,CAAA;QAErD,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAA;QAClC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAA;QAEzB,gCAAgC;QAChC,IAAI,CAAC,WAAW,oDAAqC,CAAA;IACvD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,mBAAmB,CAAC,QAAoB;QACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBACrC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,qGAAqG,CAAC,CAAA;gBAC3H,OAAO,CAAC,SAAS,CAAC,CAAA;YACpB,CAAC,EAAE,IAAI,CAAC,CAAA;YAER,iBAAiB;YACjB,MAAM,QAAQ,GAAG,CAAC,IAAwB,EAAE,EAAE;gBAC5C,YAAY,CAAC,cAAc,CAAC,CAAA;gBAC5B,OAAO,CAAC,IAAI,CAAC,CAAA;gBACb,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC3C,CAAC,CAAA;YACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YAEhD,oBAAoB;YACpB,IAAI,CAAC,WAAW,gEAA8E,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC7G,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACI,sBAAsB,CAAC,IAAwC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACI,qBAAqB;QAC1B,IAAI,CAAC,WAAW,4DAA+E;YAC7F,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,IAAI;YACpE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI;SACzD,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;IAC/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;AAE7C;;GAEG;AACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAA0C,EAAE,EAAE;IACnE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAC/C,OAAM;IACR,CAAC;IAED,QAAQ,OAAO,CAAC,EAAE,EAAE,CAAC;QACnB,mDAAsC,CAAC,CAAC,CAAC;YACvC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,IAAiC,CAAC,CAAA;YACrE,MAAK;QACP,CAAC;QACD,qDAAuC,CAAC,CAAC,CAAC;YACxC,eAAe,CAAC,WAAW,EAAE,CAAA;YAC7B,MAAK;QACP,CAAC;QACD,sEAAgD,CAAC,CAAC,CAAC;YACjD,eAAe,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAA0C,CAAC,CAAA;YAC1F,MAAK;QACP,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEF;;GAEG;AACH,IAAI,YAAY,GAAG,KAAK,CAAA;AACxB,SAAS,aAAa,CAAC,MAAsB,EAAE,SAAiB;IAC9D,IAAI,YAAY,EAAE,CAAC;QACjB,OAAM;IACR,CAAC;IACD,YAAY,GAAG,IAAI,CAAA;IAEnB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,+CAA+C,EAAE,MAAM,CAAC,CAAA;IAE7E,IAAI,CAAC;QACH,eAAe,CAAC,QAAQ,EAAE,CAAA;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,aAAa;IACf,CAAC;IAED,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,IAAI,CAAC,CAAA;AACvD,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;AAChE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;AAEnE;;GAEG;AACH,WAAW,CAAC,GAAG,EAAE;IACf,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,EAAE,IAAI,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"childBridgeFork.js","sourceRoot":"","sources":["../src/childBridgeFork.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { MacAddress } from 'hap-nodejs';
|
|
2
2
|
import type { HomebridgeAPI } from './api.js';
|
|
3
3
|
import type { AccessoryConfig, BridgeConfiguration, BridgeOptions, HomebridgeConfig, PlatformConfig } from './bridgeService.js';
|
|
4
|
+
import type { BaseBridgeMetadata } from './bridgeTypes.js';
|
|
4
5
|
import type { ExternalPortService } from './externalPortService.js';
|
|
5
6
|
import type { IpcService } from './ipcService.js';
|
|
6
7
|
import type { Plugin } from './plugin.js';
|
|
@@ -38,7 +39,11 @@ export declare const enum ChildProcessMessageEventType {
|
|
|
38
39
|
/**
|
|
39
40
|
* Sent from the child to update its current status
|
|
40
41
|
*/
|
|
41
|
-
STATUS_UPDATE = "status"
|
|
42
|
+
STATUS_UPDATE = "status",
|
|
43
|
+
/**
|
|
44
|
+
* Sent from the child when it has Matter config alongside HAP
|
|
45
|
+
*/
|
|
46
|
+
MATTER_STATUS_UPDATE = "matterStatus"
|
|
42
47
|
}
|
|
43
48
|
export declare const enum ChildBridgeStatus {
|
|
44
49
|
/**
|
|
@@ -81,19 +86,35 @@ export interface ChildBridgePairedStatusEventData {
|
|
|
81
86
|
paired: boolean | null;
|
|
82
87
|
setupUri: string | null;
|
|
83
88
|
}
|
|
84
|
-
|
|
89
|
+
/**
|
|
90
|
+
* HAP child bridge metadata
|
|
91
|
+
*
|
|
92
|
+
* Extends the base bridge metadata with HAP-specific properties.
|
|
93
|
+
* This ensures consistency with Matter bridge metadata while maintaining
|
|
94
|
+
* HAP-specific fields like paired, setupUri, and pin.
|
|
95
|
+
*/
|
|
96
|
+
export interface ChildMetadata extends Omit<BaseBridgeMetadata, 'type' | 'status' | 'manuallyStopped'> {
|
|
97
|
+
/** Bridge type (always 'hap' for child bridges) */
|
|
85
98
|
type: 'hap';
|
|
99
|
+
/** Current operational status */
|
|
86
100
|
status: ChildBridgeStatus;
|
|
101
|
+
/** Whether the bridge is paired with a controller */
|
|
87
102
|
paired?: boolean | null;
|
|
103
|
+
/** Setup URI for pairing (HomeKit QR code) */
|
|
88
104
|
setupUri?: string | null;
|
|
105
|
+
/** HAP bridge username (MAC address) */
|
|
89
106
|
username: MacAddress;
|
|
90
|
-
|
|
107
|
+
/** HAP pairing PIN */
|
|
91
108
|
pin: string;
|
|
92
|
-
|
|
93
|
-
plugin: string;
|
|
94
|
-
identifier: string;
|
|
109
|
+
/** Whether the bridge was manually stopped */
|
|
95
110
|
manuallyStopped: boolean;
|
|
96
|
-
|
|
111
|
+
/** Matter configuration if enabled alongside HAP */
|
|
112
|
+
matterConfig?: {
|
|
113
|
+
port?: number;
|
|
114
|
+
name?: string;
|
|
115
|
+
};
|
|
116
|
+
/** Matter bridge identifier if Matter is enabled */
|
|
117
|
+
matterIdentifier?: string;
|
|
97
118
|
}
|
|
98
119
|
/**
|
|
99
120
|
* Manages the child processes of platforms/accessories being exposed as separate forked bridges.
|
|
@@ -117,6 +138,7 @@ export declare class ChildBridgeService {
|
|
|
117
138
|
private pairedStatus;
|
|
118
139
|
private manuallyStopped;
|
|
119
140
|
private setupUri;
|
|
141
|
+
private matterCommissioningInfo?;
|
|
120
142
|
private pluginConfig;
|
|
121
143
|
private log;
|
|
122
144
|
private displayName?;
|
|
@@ -178,6 +200,7 @@ export declare class ChildBridgeService {
|
|
|
178
200
|
private teardown;
|
|
179
201
|
/**
|
|
180
202
|
* Trigger sending child bridge metadata to the process parent via IPC
|
|
203
|
+
* Note: Matter-only bridges don't send HAP status updates
|
|
181
204
|
*/
|
|
182
205
|
private sendStatusUpdate;
|
|
183
206
|
/**
|
|
@@ -198,7 +221,24 @@ export declare class ChildBridgeService {
|
|
|
198
221
|
refreshConfig(): Promise<void>;
|
|
199
222
|
/**
|
|
200
223
|
* Returns metadata about this child bridge
|
|
224
|
+
* Note: This is for HAP child bridges only. Matter-only bridges expose metadata via Matter IPC events.
|
|
201
225
|
*/
|
|
202
226
|
getMetadata(): ChildMetadata;
|
|
227
|
+
/**
|
|
228
|
+
* Get Matter commissioning info if available
|
|
229
|
+
*/
|
|
230
|
+
getCommissioningInfo(): {
|
|
231
|
+
qrCode?: string;
|
|
232
|
+
manualPairingCode?: string;
|
|
233
|
+
serialNumber?: string;
|
|
234
|
+
commissioned: boolean;
|
|
235
|
+
} | undefined;
|
|
236
|
+
/**
|
|
237
|
+
* Get Matter config if available
|
|
238
|
+
*/
|
|
239
|
+
getMatterConfig(): {
|
|
240
|
+
port?: number;
|
|
241
|
+
name?: string;
|
|
242
|
+
} | undefined;
|
|
203
243
|
}
|
|
204
244
|
//# sourceMappingURL=childBridgeService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"childBridgeService.d.ts","sourceRoot":"","sources":["../src/childBridgeService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AASpD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AASrC,0BAAkB,4BAA4B;IAC5C;;OAEG;IACH,KAAK,UAAU;IAEf;;OAEG;IACH,IAAI,SAAS;IAEb;;OAEG;IACH,MAAM,WAAW;IAEjB;;OAEG;IACH,KAAK,UAAU;IAEf;;OAEG;IACH,MAAM,WAAW;IAEjB;;OAEG;IACH,YAAY,gBAAgB;IAE5B;;OAEG;IACH,cAAc,kBAAkB;IAEhC;;OAEG;IACH,aAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"childBridgeService.d.ts","sourceRoot":"","sources":["../src/childBridgeService.ts"],"names":[],"mappings":"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"}
|