homebridge 2.0.0-alpha.7 → 2.0.0-alpha.70
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/README.md +1 -1
- package/bin/homebridge.js +22 -0
- package/dist/api.d.ts +250 -3
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +92 -0
- package/dist/api.js.map +1 -1
- package/dist/bridgeService.d.ts +11 -3
- package/dist/bridgeService.d.ts.map +1 -1
- package/dist/bridgeService.js +9 -5
- package/dist/bridgeService.js.map +1 -1
- package/dist/childBridgeFork.d.ts +30 -3
- package/dist/childBridgeFork.d.ts.map +1 -1
- package/dist/childBridgeFork.js +278 -5
- package/dist/childBridgeFork.js.map +1 -1
- package/dist/childBridgeService.d.ts +22 -0
- package/dist/childBridgeService.d.ts.map +1 -1
- package/dist/childBridgeService.js +85 -26
- package/dist/childBridgeService.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -2
- package/dist/cli.js.map +1 -1
- package/dist/externalPortService.d.ts +27 -6
- package/dist/externalPortService.d.ts.map +1 -1
- package/dist/externalPortService.js +73 -7
- package/dist/externalPortService.js.map +1 -1
- package/dist/index.d.ts +48 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/ipcService.d.ts +20 -0
- package/dist/ipcService.d.ts.map +1 -1
- package/dist/ipcService.js.map +1 -1
- package/dist/logger.d.ts +6 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +8 -0
- package/dist/logger.js.map +1 -1
- package/dist/matter/index.d.ts +123 -0
- package/dist/matter/index.d.ts.map +1 -0
- package/dist/matter/index.js +19 -0
- package/dist/matter/index.js.map +1 -0
- package/dist/matter/matterAccessoryCache.d.ts +77 -0
- package/dist/matter/matterAccessoryCache.d.ts.map +1 -0
- package/dist/matter/matterAccessoryCache.js +176 -0
- package/dist/matter/matterAccessoryCache.js.map +1 -0
- package/dist/matter/matterBehaviors.d.ts +177 -0
- package/dist/matter/matterBehaviors.d.ts.map +1 -0
- package/dist/matter/matterBehaviors.js +639 -0
- package/dist/matter/matterBehaviors.js.map +1 -0
- package/dist/matter/matterConfigValidator.d.ts +81 -0
- package/dist/matter/matterConfigValidator.d.ts.map +1 -0
- package/dist/matter/matterConfigValidator.js +240 -0
- package/dist/matter/matterConfigValidator.js.map +1 -0
- package/dist/matter/matterErrorHandler.d.ts +94 -0
- package/dist/matter/matterErrorHandler.d.ts.map +1 -0
- package/dist/matter/matterErrorHandler.js +485 -0
- package/dist/matter/matterErrorHandler.js.map +1 -0
- package/dist/matter/matterLogFormatter.d.ts +19 -0
- package/dist/matter/matterLogFormatter.d.ts.map +1 -0
- package/dist/matter/matterLogFormatter.js +126 -0
- package/dist/matter/matterLogFormatter.js.map +1 -0
- package/dist/matter/matterNetworkMonitor.d.ts +68 -0
- package/dist/matter/matterNetworkMonitor.d.ts.map +1 -0
- package/dist/matter/matterNetworkMonitor.js +249 -0
- package/dist/matter/matterNetworkMonitor.js.map +1 -0
- package/dist/matter/matterServer.d.ts +644 -0
- package/dist/matter/matterServer.d.ts.map +1 -0
- package/dist/matter/matterServer.js +1459 -0
- package/dist/matter/matterServer.js.map +1 -0
- package/dist/matter/matterServerHelpers.d.ts +76 -0
- package/dist/matter/matterServerHelpers.d.ts.map +1 -0
- package/dist/matter/matterServerHelpers.js +298 -0
- package/dist/matter/matterServerHelpers.js.map +1 -0
- package/dist/matter/matterSharedTypes.d.ts +165 -0
- package/dist/matter/matterSharedTypes.d.ts.map +1 -0
- package/dist/matter/matterSharedTypes.js +51 -0
- package/dist/matter/matterSharedTypes.js.map +1 -0
- package/dist/matter/matterStorage.d.ts +126 -0
- package/dist/matter/matterStorage.d.ts.map +1 -0
- package/dist/matter/matterStorage.js +419 -0
- package/dist/matter/matterStorage.js.map +1 -0
- package/dist/matter/matterTypes.d.ts +668 -0
- package/dist/matter/matterTypes.d.ts.map +1 -0
- package/dist/matter/matterTypes.js +174 -0
- package/dist/matter/matterTypes.js.map +1 -0
- package/dist/platformAccessory.d.ts +1 -0
- package/dist/platformAccessory.d.ts.map +1 -1
- package/dist/platformAccessory.js +8 -1
- package/dist/platformAccessory.js.map +1 -1
- package/dist/plugin.d.ts +0 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +8 -11
- package/dist/plugin.js.map +1 -1
- package/dist/pluginManager.d.ts.map +1 -1
- package/dist/pluginManager.js +22 -21
- package/dist/pluginManager.js.map +1 -1
- package/dist/server.d.ts +23 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +374 -10
- package/dist/server.js.map +1 -1
- package/dist/storageService.js +8 -8
- package/dist/storageService.js.map +1 -1
- package/dist/user.d.ts +1 -0
- package/dist/user.d.ts.map +1 -1
- package/dist/user.js +10 -7
- package/dist/user.js.map +1 -1
- package/dist/util/mac.d.ts.map +1 -1
- package/dist/util/mac.js +2 -2
- package/dist/util/mac.js.map +1 -1
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +23 -22
- package/bin/homebridge +0 -19
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAGnC,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;AAE5B;;GAEG;AACH,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,0BAA0B,EAC1B,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,21 @@ export { APIEvent, PluginType } from './api.js';
|
|
|
6
6
|
* Export Logger const enums
|
|
7
7
|
*/
|
|
8
8
|
export { LogLevel } from './logger.js';
|
|
9
|
+
export { ChildMatterMessageType, MatterBridgeStatus } from './matter/matterSharedTypes.js';
|
|
10
|
+
/**
|
|
11
|
+
* Matter device types, clusters, and cluster names
|
|
12
|
+
* Access via api.matter.deviceTypes, api.matter.clusters, api.matter.clusterNames
|
|
13
|
+
*/
|
|
14
|
+
export { clusterNames, clusters, devices, deviceTypes } from './matter/matterTypes.js';
|
|
15
|
+
/**
|
|
16
|
+
* ═══════════════════════════════════════════════════════════════════════
|
|
17
|
+
* Matter Protocol - UI Integration Types
|
|
18
|
+
* ═══════════════════════════════════════════════════════════════════════
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Matter error types for error handling
|
|
22
|
+
*/
|
|
23
|
+
export { MatterCommissioningError, MatterDeviceError, MatterError, MatterErrorType, MatterNetworkError, MatterStorageError, } from './matter/matterTypes.js';
|
|
9
24
|
/**
|
|
10
25
|
* Export Platform Accessory const enums
|
|
11
26
|
*/
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA6BA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAiB/C;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AA2CtC,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAa1F;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAEtF;;;;GAIG;AAEH;;GAEG;AACH,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,yBAAyB,CAAA;AAIhC;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAiB/D;;;;GAIG;AACH,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,gCAAgC,EAChC,8BAA8B,EAC9B,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,UAAU,EACV,YAAY,EACZ,wBAAwB,EACxB,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,OAAO,EACP,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,8BAA8B,EAC9B,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,KAAK,EACL,SAAS,EACT,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,MAAM,EACN,KAAK,GACN,MAAM,YAAY,CAAA"}
|
package/dist/ipcService.d.ts
CHANGED
|
@@ -10,6 +10,26 @@ export declare const enum IpcOutgoingEvent {
|
|
|
10
10
|
CHILD_BRIDGE_METADATA_RESPONSE = "childBridgeMetadataResponse",
|
|
11
11
|
CHILD_BRIDGE_STATUS_UPDATE = "childBridgeStatusUpdate"
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Server status update message sent from Homebridge to parent process
|
|
15
|
+
*/
|
|
16
|
+
export interface ServerStatusUpdate {
|
|
17
|
+
status: string;
|
|
18
|
+
paired: boolean | null;
|
|
19
|
+
setupUri: string | null;
|
|
20
|
+
name: string;
|
|
21
|
+
username: string;
|
|
22
|
+
pin: string;
|
|
23
|
+
matter: {
|
|
24
|
+
enabled: boolean;
|
|
25
|
+
port?: number;
|
|
26
|
+
setupUri?: string;
|
|
27
|
+
pin?: string;
|
|
28
|
+
serialNumber?: string;
|
|
29
|
+
commissioned?: boolean;
|
|
30
|
+
deviceCount?: number;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
13
33
|
export declare interface IpcService {
|
|
14
34
|
on: ((event: IpcIncomingEvent.RESTART_CHILD_BRIDGE, listener: (childBridgeUsername: string) => void) => this) & ((event: IpcIncomingEvent.STOP_CHILD_BRIDGE, listener: (childBridgeUsername: string) => void) => this) & ((event: IpcIncomingEvent.START_CHILD_BRIDGE, listener: (childBridgeUsername: string) => void) => this) & ((event: IpcIncomingEvent.CHILD_BRIDGE_METADATA_REQUEST, listener: () => void) => this);
|
|
15
35
|
}
|
package/dist/ipcService.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipcService.d.ts","sourceRoot":"","sources":["../src/ipcService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI1C,0BAAkB,gBAAgB;IAChC,oBAAoB,uBAAuB;IAC3C,iBAAiB,oBAAoB;IACrC,kBAAkB,qBAAqB;IACvC,6BAA6B,+BAA+B;CAC7D;AAGD,0BAAkB,gBAAgB;IAChC,oBAAoB,uBAAuB;IAC3C,8BAA8B,gCAAgC;IAC9D,0BAA0B,4BAA4B;CACvD;AAGD,MAAM,CAAC,OAAO,WAAW,UAAU;IACjC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,6BAA6B,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,CAAA;CAC3Z;AAGD,qBAAa,UAAW,SAAQ,YAAY;;IAK1C;;;OAGG;IACI,KAAK,IAAI,IAAI;IASpB;;;;OAIG;IACI,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAQ9D"}
|
|
1
|
+
{"version":3,"file":"ipcService.d.ts","sourceRoot":"","sources":["../src/ipcService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI1C,0BAAkB,gBAAgB;IAChC,oBAAoB,uBAAuB;IAC3C,iBAAiB,oBAAoB;IACrC,kBAAkB,qBAAqB;IACvC,6BAA6B,+BAA+B;CAC7D;AAGD,0BAAkB,gBAAgB;IAChC,oBAAoB,uBAAuB;IAC3C,8BAA8B,gCAAgC;IAC9D,0BAA0B,4BAA4B;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACF;AAGD,MAAM,CAAC,OAAO,WAAW,UAAU;IACjC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,6BAA6B,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,CAAA;CAC3Z;AAGD,qBAAa,UAAW,SAAQ,YAAY;;IAK1C;;;OAGG;IACI,KAAK,IAAI,IAAI;IASpB;;;;OAIG;IACI,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAQ9D"}
|
package/dist/ipcService.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipcService.js","sourceRoot":"","sources":["../src/ipcService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,gDAAgD;AAChD,MAAM,CAAN,IAAkB,gBAKjB;AALD,WAAkB,gBAAgB;IAChC,+DAA2C,CAAA;IAC3C,yDAAqC,CAAA;IACrC,2DAAuC,CAAA;IACvC,gFAA4D,CAAA;AAC9D,CAAC,EALiB,gBAAgB,KAAhB,gBAAgB,QAKjC;AAED,gDAAgD;AAChD,MAAM,CAAN,IAAkB,gBAIjB;AAJD,WAAkB,gBAAgB;IAChC,+DAA2C,CAAA;IAC3C,kFAA8D,CAAA;IAC9D,0EAAsD,CAAA;AACxD,CAAC,EAJiB,gBAAgB,KAAhB,gBAAgB,QAIjC;
|
|
1
|
+
{"version":3,"file":"ipcService.js","sourceRoot":"","sources":["../src/ipcService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,gDAAgD;AAChD,MAAM,CAAN,IAAkB,gBAKjB;AALD,WAAkB,gBAAgB;IAChC,+DAA2C,CAAA;IAC3C,yDAAqC,CAAA;IACrC,2DAAuC,CAAA;IACvC,gFAA4D,CAAA;AAC9D,CAAC,EALiB,gBAAgB,KAAhB,gBAAgB,QAKjC;AAED,gDAAgD;AAChD,MAAM,CAAN,IAAkB,gBAIjB;AAJD,WAAkB,gBAAgB;IAChC,+DAA2C,CAAA;IAC3C,kFAA8D,CAAA;IAC9D,0EAAsD,CAAA;AACxD,CAAC,EAJiB,gBAAgB,KAAhB,gBAAgB,QAIjC;AA4BD,4DAA4D;AAC5D,MAAM,OAAO,UAAW,SAAQ,YAAY;IAC1C;QACE,KAAK,EAAE,CAAA;IACT,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAoC,EAAE,EAAE;YAC7D,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC3D,OAAM;YACR,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,EAAoB,EAAE,IAAa;QACpD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE;gBACF,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -59,6 +59,12 @@ export declare class Logger {
|
|
|
59
59
|
* @param enabled {boolean}
|
|
60
60
|
*/
|
|
61
61
|
static setTimestampEnabled(enabled?: boolean): void;
|
|
62
|
+
/**
|
|
63
|
+
* Check if timestamps are enabled in log messages.
|
|
64
|
+
*
|
|
65
|
+
* @returns {boolean} true if timestamps are enabled
|
|
66
|
+
*/
|
|
67
|
+
static isTimestampEnabled(): boolean;
|
|
62
68
|
/**
|
|
63
69
|
* Forces color in logging output, even if it seems like color is unsupported.
|
|
64
70
|
*/
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,0BAAkB,QAAQ;IACxB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,0BAAkB,QAAQ;IACxB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAC7C,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACrD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACxD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACrD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACtD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IACtD,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CACtE;AAaD;;GAEG;AACH,qBAAa,MAAM;IACjB,gBAAuB,QAAQ,SAAe;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAChE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAQ;IACnC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAO;IAEtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;gBAEZ,MAAM,CAAC,EAAE,MAAM;IAI3B;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAyB1C;;;;OAIG;WACW,eAAe,CAAC,OAAO,GAAE,OAAc,GAAG,IAAI;IAI5D;;;;OAIG;WACW,mBAAmB,CAAC,OAAO,GAAE,OAAc,GAAG,IAAI;IAIhE;;;;OAIG;WACW,kBAAkB,IAAI,OAAO;IAI3C;;OAEG;WACW,UAAU,IAAI,IAAI;IAIzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAIjD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAIpD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAIjD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAIlD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAIlD,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;CAoCzE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|
package/dist/logger.js
CHANGED
|
@@ -75,6 +75,14 @@ export class Logger {
|
|
|
75
75
|
static setTimestampEnabled(enabled = true) {
|
|
76
76
|
Logger.timestampEnabled = enabled;
|
|
77
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Check if timestamps are enabled in log messages.
|
|
80
|
+
*
|
|
81
|
+
* @returns {boolean} true if timestamps are enabled
|
|
82
|
+
*/
|
|
83
|
+
static isTimestampEnabled() {
|
|
84
|
+
return Logger.timestampEnabled;
|
|
85
|
+
}
|
|
78
86
|
/**
|
|
79
87
|
* Forces color in logging output, even if it seems like color is unsupported.
|
|
80
88
|
*/
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;;;;;;GAWG;AACH,gDAAgD;AAChD,MAAM,CAAN,IAAkB,QAMjB;AAND,WAAkB,QAAQ;IACxB,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,2BAAe,CAAA;AACjB,CAAC,EANiB,QAAQ,KAAR,QAAQ,QAMzB;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matter Protocol Support for Homebridge
|
|
3
|
+
*
|
|
4
|
+
* This module provides Matter protocol support through a Plugin API,
|
|
5
|
+
* allowing plugin developers to explicitly register Matter accessories.
|
|
6
|
+
*/
|
|
7
|
+
import type { ColorControl, DoorLock, FanControl, Groups, Identify, LevelControl, ModeBase, OnOff, ScenesManagement, ServiceArea, Thermostat, WindowCovering } from '@matter/main/clusters';
|
|
8
|
+
export { type MatterConfigValidationResult, MatterConfigValidator } from './matterConfigValidator.js';
|
|
9
|
+
export { MatterServer } from './matterServer.js';
|
|
10
|
+
export { HomebridgeMatterStorage, MatterStorageManager } from './matterStorage.js';
|
|
11
|
+
export { clusterNames, clusters, devices, deviceTypes, type InternalMatterAccessory, type MatterAccessory, type MatterClusterHandlers, type MatterClusterName, type MatterCommandHandler, MatterCommissioningError, type MatterConfig, MatterDeviceError, MatterError, type MatterErrorDetails, MatterErrorType, MatterNetworkError, MatterStorageError, } from './matterTypes.js';
|
|
12
|
+
/**
|
|
13
|
+
* Matter Cluster Command Request Types
|
|
14
|
+
* Use these types for handler arguments to get full type safety
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import type { MatterRequests } from 'homebridge'
|
|
19
|
+
*
|
|
20
|
+
* handlers: {
|
|
21
|
+
* levelControl: {
|
|
22
|
+
* moveToLevel: async (args: MatterRequests.MoveToLevel) => {
|
|
23
|
+
* console.log(`Level: ${args.level}`)
|
|
24
|
+
* }
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare namespace MatterRequests {
|
|
30
|
+
type OffWithEffect = OnOff.OffWithEffectRequest;
|
|
31
|
+
type OnWithTimedOff = OnOff.OnWithTimedOffRequest;
|
|
32
|
+
type MoveToLevel = LevelControl.MoveToLevelRequest;
|
|
33
|
+
type Move = LevelControl.MoveRequest;
|
|
34
|
+
type Step = LevelControl.StepRequest;
|
|
35
|
+
type Stop = LevelControl.StopRequest;
|
|
36
|
+
type MoveToClosestFrequency = LevelControl.MoveToClosestFrequencyRequest;
|
|
37
|
+
type MoveToHue = ColorControl.MoveToHueRequest;
|
|
38
|
+
type MoveHue = ColorControl.MoveHueRequest;
|
|
39
|
+
type StepHue = ColorControl.StepHueRequest;
|
|
40
|
+
type MoveToSaturation = ColorControl.MoveToSaturationRequest;
|
|
41
|
+
type MoveSaturation = ColorControl.MoveSaturationRequest;
|
|
42
|
+
type StepSaturation = ColorControl.StepSaturationRequest;
|
|
43
|
+
type MoveToHueAndSaturation = ColorControl.MoveToHueAndSaturationRequest;
|
|
44
|
+
type MoveToColor = ColorControl.MoveToColorRequest;
|
|
45
|
+
type MoveColor = ColorControl.MoveColorRequest;
|
|
46
|
+
type StepColor = ColorControl.StepColorRequest;
|
|
47
|
+
type MoveToColorTemperature = ColorControl.MoveToColorTemperatureRequest;
|
|
48
|
+
type MoveColorTemperature = ColorControl.MoveColorTemperatureRequest;
|
|
49
|
+
type StepColorTemperature = ColorControl.StepColorTemperatureRequest;
|
|
50
|
+
type StopMoveStep = ColorControl.StopMoveStepRequest;
|
|
51
|
+
type EnhancedMoveToHue = ColorControl.EnhancedMoveToHueRequest;
|
|
52
|
+
type EnhancedMoveHue = ColorControl.EnhancedMoveHueRequest;
|
|
53
|
+
type EnhancedStepHue = ColorControl.EnhancedStepHueRequest;
|
|
54
|
+
type EnhancedMoveToHueAndSaturation = ColorControl.EnhancedMoveToHueAndSaturationRequest;
|
|
55
|
+
type ColorLoopSet = ColorControl.ColorLoopSetRequest;
|
|
56
|
+
type IdentifyRequest = Identify.IdentifyRequest;
|
|
57
|
+
type TriggerEffect = Identify.TriggerEffectRequest;
|
|
58
|
+
type AddGroup = Groups.AddGroupRequest;
|
|
59
|
+
type ViewGroup = Groups.ViewGroupRequest;
|
|
60
|
+
type GetGroupMembership = Groups.GetGroupMembershipRequest;
|
|
61
|
+
type RemoveGroup = Groups.RemoveGroupRequest;
|
|
62
|
+
type AddGroupIfIdentifying = Groups.AddGroupIfIdentifyingRequest;
|
|
63
|
+
type AddScene = ScenesManagement.AddSceneRequest;
|
|
64
|
+
type ViewScene = ScenesManagement.ViewSceneRequest;
|
|
65
|
+
type RemoveScene = ScenesManagement.RemoveSceneRequest;
|
|
66
|
+
type RemoveAllScenes = ScenesManagement.RemoveAllScenesRequest;
|
|
67
|
+
type StoreScene = ScenesManagement.StoreSceneRequest;
|
|
68
|
+
type RecallScene = ScenesManagement.RecallSceneRequest;
|
|
69
|
+
type GetSceneMembership = ScenesManagement.GetSceneMembershipRequest;
|
|
70
|
+
type CopyScene = ScenesManagement.CopySceneRequest;
|
|
71
|
+
type LockDoor = DoorLock.LockDoorRequest;
|
|
72
|
+
type UnlockDoor = DoorLock.UnlockDoorRequest;
|
|
73
|
+
type UnlockWithTimeout = DoorLock.UnlockWithTimeoutRequest;
|
|
74
|
+
type UnboltDoor = DoorLock.UnboltDoorRequest;
|
|
75
|
+
type SetUser = DoorLock.SetUserRequest;
|
|
76
|
+
type GetUser = DoorLock.GetUserRequest;
|
|
77
|
+
type ClearUser = DoorLock.ClearUserRequest;
|
|
78
|
+
type SetUserStatus = DoorLock.SetUserStatusRequest;
|
|
79
|
+
type GetUserStatus = DoorLock.GetUserStatusRequest;
|
|
80
|
+
type SetUserType = DoorLock.SetUserTypeRequest;
|
|
81
|
+
type GetUserType = DoorLock.GetUserTypeRequest;
|
|
82
|
+
type SetCredential = DoorLock.SetCredentialRequest;
|
|
83
|
+
type GetCredentialStatus = DoorLock.GetCredentialStatusRequest;
|
|
84
|
+
type ClearCredential = DoorLock.ClearCredentialRequest;
|
|
85
|
+
type SetPinCode = DoorLock.SetPinCodeRequest;
|
|
86
|
+
type GetPinCode = DoorLock.GetPinCodeRequest;
|
|
87
|
+
type ClearPinCode = DoorLock.ClearPinCodeRequest;
|
|
88
|
+
type SetRfidCode = DoorLock.SetRfidCodeRequest;
|
|
89
|
+
type GetRfidCode = DoorLock.GetRfidCodeRequest;
|
|
90
|
+
type ClearRfidCode = DoorLock.ClearRfidCodeRequest;
|
|
91
|
+
type SetWeekDaySchedule = DoorLock.SetWeekDayScheduleRequest;
|
|
92
|
+
type GetWeekDaySchedule = DoorLock.GetWeekDayScheduleRequest;
|
|
93
|
+
type ClearWeekDaySchedule = DoorLock.ClearWeekDayScheduleRequest;
|
|
94
|
+
type SetYearDaySchedule = DoorLock.SetYearDayScheduleRequest;
|
|
95
|
+
type GetYearDaySchedule = DoorLock.GetYearDayScheduleRequest;
|
|
96
|
+
type ClearYearDaySchedule = DoorLock.ClearYearDayScheduleRequest;
|
|
97
|
+
type SetHolidaySchedule = DoorLock.SetHolidayScheduleRequest;
|
|
98
|
+
type GetHolidaySchedule = DoorLock.GetHolidayScheduleRequest;
|
|
99
|
+
type ClearHolidaySchedule = DoorLock.ClearHolidayScheduleRequest;
|
|
100
|
+
type SetAliroReaderConfig = DoorLock.SetAliroReaderConfigRequest;
|
|
101
|
+
type GoToLiftPercentage = WindowCovering.GoToLiftPercentageRequest;
|
|
102
|
+
type GoToTiltPercentage = WindowCovering.GoToTiltPercentageRequest;
|
|
103
|
+
type GoToLiftValue = WindowCovering.GoToLiftValueRequest;
|
|
104
|
+
type GoToTiltValue = WindowCovering.GoToTiltValueRequest;
|
|
105
|
+
type SetpointRaiseLower = Thermostat.SetpointRaiseLowerRequest;
|
|
106
|
+
type SetActivePreset = Thermostat.SetActivePresetRequest;
|
|
107
|
+
type SetActiveSchedule = Thermostat.SetActiveScheduleRequest;
|
|
108
|
+
type GetWeeklySchedule = Thermostat.GetWeeklyScheduleRequest;
|
|
109
|
+
type SetWeeklySchedule = Thermostat.SetWeeklyScheduleRequest;
|
|
110
|
+
type FanStep = FanControl.StepRequest;
|
|
111
|
+
type ChangeToMode = ModeBase.ChangeToModeRequest;
|
|
112
|
+
type SelectAreas = ServiceArea.SelectAreasRequest;
|
|
113
|
+
type SkipArea = ServiceArea.SkipAreaRequest;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Matter Cluster Types & Enums
|
|
117
|
+
* Import these to access type-safe enum values for cluster attributes using the original matter.js names.
|
|
118
|
+
*
|
|
119
|
+
* All 130+ Matter clusters are exported here with their original matter.js names, providing access to
|
|
120
|
+
* enums, types, and constants with full TypeScript autocomplete support.
|
|
121
|
+
*/
|
|
122
|
+
export * as MatterTypes from '@matter/main/clusters';
|
|
123
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/matter/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matter Protocol Support for Homebridge
|
|
3
|
+
*
|
|
4
|
+
* This module provides Matter protocol support through a Plugin API,
|
|
5
|
+
* allowing plugin developers to explicitly register Matter accessories.
|
|
6
|
+
*/
|
|
7
|
+
export { MatterConfigValidator } from './matterConfigValidator.js';
|
|
8
|
+
export { MatterServer } from './matterServer.js';
|
|
9
|
+
export { HomebridgeMatterStorage, MatterStorageManager } from './matterStorage.js';
|
|
10
|
+
export { clusterNames, clusters, devices, deviceTypes, MatterCommissioningError, MatterDeviceError, MatterError, MatterErrorType, MatterNetworkError, MatterStorageError, } from './matterTypes.js';
|
|
11
|
+
/**
|
|
12
|
+
* Matter Cluster Types & Enums
|
|
13
|
+
* Import these to access type-safe enum values for cluster attributes using the original matter.js names.
|
|
14
|
+
*
|
|
15
|
+
* All 130+ Matter clusters are exported here with their original matter.js names, providing access to
|
|
16
|
+
* enums, types, and constants with full TypeScript autocomplete support.
|
|
17
|
+
*/
|
|
18
|
+
export * as MatterTypes from '@matter/main/clusters';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/matter/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,OAAO,EAAqC,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAClF,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,WAAW,EAMX,wBAAwB,EAExB,iBAAiB,EACjB,WAAW,EAEX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AA0KzB;;;;;;GAMG;AACH,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matter Accessory Cache
|
|
3
|
+
*
|
|
4
|
+
* Handles persistence of Matter accessories across Homebridge restarts.
|
|
5
|
+
* Similar to HAP's cached accessories, but designed for Matter's simpler API.
|
|
6
|
+
*/
|
|
7
|
+
import type { InternalMatterAccessory } from './matterTypes.js';
|
|
8
|
+
/**
|
|
9
|
+
* Serializable Matter accessory (excludes functions and runtime state)
|
|
10
|
+
*/
|
|
11
|
+
export interface SerializedMatterAccessory {
|
|
12
|
+
plugin: string;
|
|
13
|
+
platform: string;
|
|
14
|
+
uuid: string;
|
|
15
|
+
displayName: string;
|
|
16
|
+
deviceType: {
|
|
17
|
+
name?: string;
|
|
18
|
+
code?: number;
|
|
19
|
+
};
|
|
20
|
+
serialNumber: string;
|
|
21
|
+
manufacturer: string;
|
|
22
|
+
model: string;
|
|
23
|
+
firmwareRevision?: string;
|
|
24
|
+
hardwareRevision?: string;
|
|
25
|
+
softwareVersion?: string;
|
|
26
|
+
context?: Record<string, any>;
|
|
27
|
+
clusters: {
|
|
28
|
+
[clusterName: string]: {
|
|
29
|
+
[attributeName: string]: any;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Matter Accessory Cache Manager
|
|
35
|
+
*/
|
|
36
|
+
export declare class MatterAccessoryCache {
|
|
37
|
+
private readonly cacheFilePath;
|
|
38
|
+
private cachedAccessories;
|
|
39
|
+
private cacheLoaded;
|
|
40
|
+
private saveQueue;
|
|
41
|
+
private directoryEnsured;
|
|
42
|
+
constructor(storagePath: string, bridgeId: string);
|
|
43
|
+
/**
|
|
44
|
+
* Load cached accessories from disk
|
|
45
|
+
*/
|
|
46
|
+
load(): Promise<Map<string, SerializedMatterAccessory>>;
|
|
47
|
+
/**
|
|
48
|
+
* Save accessories to cache (serialized to prevent concurrent write conflicts)
|
|
49
|
+
* Uses a queue pattern to ensure saves are truly serialized even when called concurrently
|
|
50
|
+
*/
|
|
51
|
+
save(accessories: Map<string, InternalMatterAccessory>): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Internal save implementation
|
|
54
|
+
*/
|
|
55
|
+
private performSave;
|
|
56
|
+
/**
|
|
57
|
+
* Get cached accessory by UUID
|
|
58
|
+
*/
|
|
59
|
+
getCached(uuid: string): SerializedMatterAccessory | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* Check if an accessory is cached
|
|
62
|
+
*/
|
|
63
|
+
hasCached(uuid: string): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Remove an accessory from cache
|
|
66
|
+
*/
|
|
67
|
+
removeCached(uuid: string): void;
|
|
68
|
+
/**
|
|
69
|
+
* Get all cached accessories
|
|
70
|
+
*/
|
|
71
|
+
getAllCached(): Map<string, SerializedMatterAccessory>;
|
|
72
|
+
/**
|
|
73
|
+
* Serialize a Matter accessory for storage
|
|
74
|
+
*/
|
|
75
|
+
private serializeAccessory;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=matterAccessoryCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matterAccessoryCache.d.ts","sourceRoot":"","sources":["../../src/matter/matterAccessoryCache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAU/D;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,QAAQ,EAAE;QACR,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAAA;SAC7B,CAAA;KACF,CAAA;CACF;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,iBAAiB,CAAoD;IAC7E,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,gBAAgB,CAAQ;gBAEpB,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAIjD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAmD7D;;;OAGG;IACG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5E;;OAEG;YACW,WAAW;IAgDzB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAI9D;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACH,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAItD;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAwB3B"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matter Accessory Cache
|
|
3
|
+
*
|
|
4
|
+
* Handles persistence of Matter accessories across Homebridge restarts.
|
|
5
|
+
* Similar to HAP's cached accessories, but designed for Matter's simpler API.
|
|
6
|
+
*/
|
|
7
|
+
import { dirname, join } from 'node:path';
|
|
8
|
+
import fs from 'fs-extra';
|
|
9
|
+
import { Logger } from '../logger.js';
|
|
10
|
+
const log = Logger.withPrefix('Matter/Accessories');
|
|
11
|
+
/**
|
|
12
|
+
* Matter Accessory Cache Manager
|
|
13
|
+
*/
|
|
14
|
+
export class MatterAccessoryCache {
|
|
15
|
+
cacheFilePath;
|
|
16
|
+
cachedAccessories = new Map();
|
|
17
|
+
cacheLoaded = false;
|
|
18
|
+
saveQueue = Promise.resolve();
|
|
19
|
+
directoryEnsured = false;
|
|
20
|
+
constructor(storagePath, bridgeId) {
|
|
21
|
+
this.cacheFilePath = join(storagePath, bridgeId, 'accessories.json');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Load cached accessories from disk
|
|
25
|
+
*/
|
|
26
|
+
async load() {
|
|
27
|
+
if (this.cacheLoaded) {
|
|
28
|
+
return this.cachedAccessories;
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
// Ensure cache file exists
|
|
32
|
+
if (!await fs.pathExists(this.cacheFilePath)) {
|
|
33
|
+
log.info('No cached Matter accessories found (first run)');
|
|
34
|
+
this.cacheLoaded = true;
|
|
35
|
+
return this.cachedAccessories;
|
|
36
|
+
}
|
|
37
|
+
// Read and parse cache file
|
|
38
|
+
const cacheData = await fs.readJson(this.cacheFilePath);
|
|
39
|
+
if (!Array.isArray(cacheData)) {
|
|
40
|
+
log.warn('Invalid Matter accessory cache format, deleting corrupted file');
|
|
41
|
+
await fs.remove(this.cacheFilePath);
|
|
42
|
+
this.cacheLoaded = true;
|
|
43
|
+
return this.cachedAccessories;
|
|
44
|
+
}
|
|
45
|
+
// Load accessories into map
|
|
46
|
+
for (const serialized of cacheData) {
|
|
47
|
+
if (serialized.uuid) {
|
|
48
|
+
this.cachedAccessories.set(serialized.uuid, serialized);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
log.info(`Loaded ${this.cachedAccessories.size} cached Matter accessories`);
|
|
52
|
+
this.cacheLoaded = true;
|
|
53
|
+
// Directory must exist if we successfully loaded the cache file
|
|
54
|
+
this.directoryEnsured = true;
|
|
55
|
+
return this.cachedAccessories;
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
// If JSON parsing failed (corrupted file), delete it and start fresh
|
|
59
|
+
log.error(`Failed to load Matter accessory cache: ${this.cacheFilePath}: ${error.message}`);
|
|
60
|
+
log.warn('Deleting corrupted cache file and starting fresh');
|
|
61
|
+
try {
|
|
62
|
+
await fs.remove(this.cacheFilePath);
|
|
63
|
+
}
|
|
64
|
+
catch (removeError) {
|
|
65
|
+
log.debug('Could not delete corrupted cache file:', removeError);
|
|
66
|
+
}
|
|
67
|
+
this.cacheLoaded = true;
|
|
68
|
+
return this.cachedAccessories;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Save accessories to cache (serialized to prevent concurrent write conflicts)
|
|
73
|
+
* Uses a queue pattern to ensure saves are truly serialized even when called concurrently
|
|
74
|
+
*/
|
|
75
|
+
async save(accessories) {
|
|
76
|
+
// Chain this save to the end of the queue
|
|
77
|
+
// This ensures all saves run sequentially without race conditions
|
|
78
|
+
this.saveQueue = this.saveQueue.then(() => this.performSave(accessories));
|
|
79
|
+
// Wait for this save to complete
|
|
80
|
+
await this.saveQueue;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Internal save implementation
|
|
84
|
+
*/
|
|
85
|
+
async performSave(accessories) {
|
|
86
|
+
const tempFilePath = `${this.cacheFilePath}.tmp`;
|
|
87
|
+
try {
|
|
88
|
+
// Serialize accessories (strip out functions)
|
|
89
|
+
const serialized = [];
|
|
90
|
+
for (const accessory of accessories.values()) {
|
|
91
|
+
serialized.push(this.serializeAccessory(accessory));
|
|
92
|
+
}
|
|
93
|
+
// Ensure directory exists (only check once, not on every save)
|
|
94
|
+
if (!this.directoryEnsured) {
|
|
95
|
+
const directory = dirname(this.cacheFilePath);
|
|
96
|
+
await fs.ensureDir(directory);
|
|
97
|
+
// Verify directory was created successfully
|
|
98
|
+
const dirExists = await fs.pathExists(directory);
|
|
99
|
+
if (!dirExists) {
|
|
100
|
+
throw new Error(`Failed to create cache directory: ${directory}`);
|
|
101
|
+
}
|
|
102
|
+
this.directoryEnsured = true;
|
|
103
|
+
log.debug(`Cache directory ensured: ${directory}`);
|
|
104
|
+
}
|
|
105
|
+
// Write to temporary file first (atomic write pattern to prevent corruption)
|
|
106
|
+
await fs.writeJson(tempFilePath, serialized, { spaces: 2 });
|
|
107
|
+
// Atomically move temp file to final location
|
|
108
|
+
// Use move instead of rename for better cross-device compatibility
|
|
109
|
+
await fs.move(tempFilePath, this.cacheFilePath, { overwrite: true });
|
|
110
|
+
log.debug(`Saved ${serialized.length} Matter accessories to cache`);
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
log.error(`Failed to save Matter accessory cache: ${error.message}`);
|
|
114
|
+
// Clean up temp file if it exists
|
|
115
|
+
try {
|
|
116
|
+
if (await fs.pathExists(tempFilePath)) {
|
|
117
|
+
await fs.remove(tempFilePath);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (cleanupError) {
|
|
121
|
+
log.debug('Could not clean up temporary cache file:', cleanupError);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get cached accessory by UUID
|
|
127
|
+
*/
|
|
128
|
+
getCached(uuid) {
|
|
129
|
+
return this.cachedAccessories.get(uuid);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Check if an accessory is cached
|
|
133
|
+
*/
|
|
134
|
+
hasCached(uuid) {
|
|
135
|
+
return this.cachedAccessories.has(uuid);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Remove an accessory from cache
|
|
139
|
+
*/
|
|
140
|
+
removeCached(uuid) {
|
|
141
|
+
this.cachedAccessories.delete(uuid);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get all cached accessories
|
|
145
|
+
*/
|
|
146
|
+
getAllCached() {
|
|
147
|
+
return new Map(this.cachedAccessories);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Serialize a Matter accessory for storage
|
|
151
|
+
*/
|
|
152
|
+
serializeAccessory(accessory) {
|
|
153
|
+
// Extract device type information
|
|
154
|
+
const deviceType = accessory.deviceType;
|
|
155
|
+
const deviceTypeInfo = {
|
|
156
|
+
name: deviceType?.name,
|
|
157
|
+
code: deviceType?.code,
|
|
158
|
+
};
|
|
159
|
+
return {
|
|
160
|
+
plugin: accessory._associatedPlugin || '',
|
|
161
|
+
platform: accessory._associatedPlatform || '',
|
|
162
|
+
uuid: accessory.uuid,
|
|
163
|
+
displayName: accessory.displayName,
|
|
164
|
+
deviceType: deviceTypeInfo,
|
|
165
|
+
serialNumber: accessory.serialNumber,
|
|
166
|
+
manufacturer: accessory.manufacturer,
|
|
167
|
+
model: accessory.model,
|
|
168
|
+
firmwareRevision: accessory.firmwareRevision,
|
|
169
|
+
hardwareRevision: accessory.hardwareRevision,
|
|
170
|
+
softwareVersion: accessory.softwareVersion,
|
|
171
|
+
context: accessory.context,
|
|
172
|
+
clusters: structuredClone(accessory.clusters),
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=matterAccessoryCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matterAccessoryCache.js","sourceRoot":"","sources":["../../src/matter/matterAccessoryCache.ts"],"names":[],"mappings":"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"}
|