homebridge 2.0.0-alpha.37 → 2.0.0-alpha.38
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/config-sample.json +12 -1
- package/dist/api.d.ts +38 -20
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +40 -1
- package/dist/api.js.map +1 -1
- package/dist/bridgeService.d.ts +20 -1
- package/dist/bridgeService.d.ts.map +1 -1
- package/dist/bridgeService.js +8 -2
- package/dist/bridgeService.js.map +1 -1
- package/dist/childBridgeFork.d.ts +1 -1
- package/dist/childBridgeFork.d.ts.map +1 -1
- package/dist/childBridgeFork.js +1 -1
- package/dist/childBridgeFork.js.map +1 -1
- package/dist/childBridgeService.d.ts +1 -0
- package/dist/childBridgeService.d.ts.map +1 -1
- package/dist/childBridgeService.js +6 -4
- package/dist/childBridgeService.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/externalPortService.js.map +1 -1
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ipcService.d.ts +1 -4
- package/dist/ipcService.d.ts.map +1 -1
- package/dist/ipcService.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/matterConfigValidator.d.ts +34 -0
- package/dist/matterConfigValidator.d.ts.map +1 -0
- package/dist/matterConfigValidator.js +249 -0
- package/dist/matterConfigValidator.js.map +1 -0
- package/dist/matterService.d.ts +168 -0
- package/dist/matterService.d.ts.map +1 -0
- package/dist/matterService.js +677 -0
- package/dist/matterService.js.map +1 -0
- package/dist/matterTypes.d.ts +20 -0
- package/dist/matterTypes.d.ts.map +1 -0
- package/dist/matterTypes.js +278 -0
- package/dist/matterTypes.js.map +1 -0
- package/dist/platformAccessory.d.ts +3 -2
- 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 +3 -6
- package/dist/plugin.js.map +1 -1
- package/dist/pluginManager.d.ts.map +1 -1
- package/dist/pluginManager.js +20 -19
- package/dist/pluginManager.js.map +1 -1
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +41 -4
- package/dist/server.js.map +1 -1
- package/dist/storageService.js +8 -8
- package/dist/storageService.js.map +1 -1
- package/dist/user.js +7 -7
- package/dist/user.js.map +1 -1
- package/dist/util/mac.d.ts.map +1 -1
- package/dist/util/mac.js +3 -2
- package/dist/util/mac.js.map +1 -1
- package/dist/util/matter-cli.d.ts +3 -0
- package/dist/util/matter-cli.d.ts.map +1 -0
- package/dist/util/matter-cli.js +211 -0
- package/dist/util/matter-cli.js.map +1 -0
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +22 -19
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { HomebridgeAPI } from './api.js';
|
|
2
|
+
import { ExternalPortService } from './externalPortService.js';
|
|
3
|
+
import { PlatformAccessory } from './platformAccessory.js';
|
|
4
|
+
import { PluginManager } from './pluginManager.js';
|
|
5
|
+
import { HomebridgeOptions } from './server.js';
|
|
6
|
+
import '@matter/main';
|
|
7
|
+
export interface MatterConfiguration {
|
|
8
|
+
enabled?: boolean;
|
|
9
|
+
port?: number;
|
|
10
|
+
discriminator?: number;
|
|
11
|
+
passcode?: number;
|
|
12
|
+
vendorId?: number;
|
|
13
|
+
productId?: number;
|
|
14
|
+
deviceName?: string;
|
|
15
|
+
deviceType?: number;
|
|
16
|
+
storageDir?: string;
|
|
17
|
+
debugEnabled?: boolean;
|
|
18
|
+
interfaceName?: string;
|
|
19
|
+
announceInterval?: number;
|
|
20
|
+
commissioningTimeout?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface MatterBridgeOptions extends HomebridgeOptions {
|
|
23
|
+
matterConfig?: MatterConfiguration;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Matter service for publishing accessories via Matter protocol
|
|
27
|
+
* This runs alongside the existing HAP bridge service
|
|
28
|
+
*/
|
|
29
|
+
export declare class MatterService {
|
|
30
|
+
private matterConfiguration;
|
|
31
|
+
private pluginManager;
|
|
32
|
+
private externalPortService;
|
|
33
|
+
private api;
|
|
34
|
+
private options;
|
|
35
|
+
private matterServer;
|
|
36
|
+
private commissioningServer;
|
|
37
|
+
private storageManager;
|
|
38
|
+
private readonly isEnabled;
|
|
39
|
+
private readonly matterConfig;
|
|
40
|
+
private publishedAccessories;
|
|
41
|
+
private isInitialized;
|
|
42
|
+
private isStarted;
|
|
43
|
+
constructor(matterConfiguration: MatterConfiguration, pluginManager: PluginManager, externalPortService: ExternalPortService, api: HomebridgeAPI, options: HomebridgeOptions);
|
|
44
|
+
/**
|
|
45
|
+
* Validate Matter configuration parameters
|
|
46
|
+
*/
|
|
47
|
+
private validateConfiguration;
|
|
48
|
+
/**
|
|
49
|
+
* Initialize the Matter server if enabled
|
|
50
|
+
*/
|
|
51
|
+
initialize(): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Initialize storage for Matter server
|
|
54
|
+
*/
|
|
55
|
+
private initializeStorage;
|
|
56
|
+
/**
|
|
57
|
+
* Create the Matter server node
|
|
58
|
+
*/
|
|
59
|
+
private createMatterServer;
|
|
60
|
+
/**
|
|
61
|
+
* Setup commissioning server for device pairing
|
|
62
|
+
*/
|
|
63
|
+
private setupCommissioningServer;
|
|
64
|
+
/**
|
|
65
|
+
* Generate a unique serial number for the Matter bridge
|
|
66
|
+
*/
|
|
67
|
+
private generateSerialNumber;
|
|
68
|
+
/**
|
|
69
|
+
* Generate a unique identifier for the Matter bridge
|
|
70
|
+
*/
|
|
71
|
+
private generateUniqueId;
|
|
72
|
+
/**
|
|
73
|
+
* Log commissioning information for users
|
|
74
|
+
*/
|
|
75
|
+
private logCommissioningInfo;
|
|
76
|
+
/**
|
|
77
|
+
* Format passcode for manual pairing
|
|
78
|
+
*/
|
|
79
|
+
private formatPairingCode;
|
|
80
|
+
/**
|
|
81
|
+
* Start the Matter server
|
|
82
|
+
*/
|
|
83
|
+
start(): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Stop the Matter server
|
|
86
|
+
*/
|
|
87
|
+
stop(): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Clean up resources
|
|
90
|
+
*/
|
|
91
|
+
private cleanup;
|
|
92
|
+
/**
|
|
93
|
+
* Publish a platform accessory via Matter protocol
|
|
94
|
+
*/
|
|
95
|
+
publishAccessory(accessory: PlatformAccessory): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Unpublish a platform accessory from Matter protocol
|
|
98
|
+
*/
|
|
99
|
+
unpublishAccessory(accessory: PlatformAccessory): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Convert HAP accessory to Matter device
|
|
102
|
+
* This maps HAP services and characteristics to appropriate Matter clusters and attributes
|
|
103
|
+
*/
|
|
104
|
+
private convertToMatterDevice;
|
|
105
|
+
/**
|
|
106
|
+
* Get the primary service from an accessory (excluding utility services)
|
|
107
|
+
*/
|
|
108
|
+
private getPrimaryService;
|
|
109
|
+
/**
|
|
110
|
+
* Determine the appropriate Matter device type for a HAP service
|
|
111
|
+
*/
|
|
112
|
+
private getMatterDeviceType;
|
|
113
|
+
/**
|
|
114
|
+
* Create a Matter device with the specified type and map characteristics
|
|
115
|
+
*/
|
|
116
|
+
private createMatterDevice;
|
|
117
|
+
/**
|
|
118
|
+
* Get placeholder clusters for a device type
|
|
119
|
+
*/
|
|
120
|
+
private getPlaceholderClusters;
|
|
121
|
+
/**
|
|
122
|
+
* Map HAP characteristics to Matter cluster attributes
|
|
123
|
+
*/
|
|
124
|
+
private mapCharacteristicsToMatter;
|
|
125
|
+
/**
|
|
126
|
+
* Get the Matter cluster name for a HAP characteristic
|
|
127
|
+
*/
|
|
128
|
+
private getMatterClusterForCharacteristic;
|
|
129
|
+
/**
|
|
130
|
+
* Get the Matter attribute name for a HAP characteristic
|
|
131
|
+
*/
|
|
132
|
+
private getMatterAttributeForCharacteristic;
|
|
133
|
+
/**
|
|
134
|
+
* Get Matter server status
|
|
135
|
+
*/
|
|
136
|
+
getStatus(): {
|
|
137
|
+
enabled: boolean;
|
|
138
|
+
running: boolean;
|
|
139
|
+
accessoryCount: number;
|
|
140
|
+
qrCode?: string;
|
|
141
|
+
setupCode?: string;
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Get commissioning QR code for setup
|
|
145
|
+
*/
|
|
146
|
+
getCommissioningQRCode(): string | null;
|
|
147
|
+
/**
|
|
148
|
+
* Get manual pairing code for setup
|
|
149
|
+
*/
|
|
150
|
+
getManualPairingCode(): string | null;
|
|
151
|
+
/**
|
|
152
|
+
* Get list of published accessories
|
|
153
|
+
*/
|
|
154
|
+
getPublishedAccessories(): PlatformAccessory[];
|
|
155
|
+
/**
|
|
156
|
+
* Check if an accessory is published via Matter
|
|
157
|
+
*/
|
|
158
|
+
isAccessoryPublished(accessory: PlatformAccessory): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Get Matter configuration (read-only)
|
|
161
|
+
*/
|
|
162
|
+
getConfiguration(): Readonly<MatterConfiguration>;
|
|
163
|
+
/**
|
|
164
|
+
* Force restart the Matter server (for configuration changes)
|
|
165
|
+
*/
|
|
166
|
+
restart(): Promise<void>;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=matterService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matterService.d.ts","sourceRoot":"","sources":["../src/matterService.ts"],"names":[],"mappings":"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"}
|