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.
Files changed (71) hide show
  1. package/config-sample.json +12 -1
  2. package/dist/api.d.ts +38 -20
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +40 -1
  5. package/dist/api.js.map +1 -1
  6. package/dist/bridgeService.d.ts +20 -1
  7. package/dist/bridgeService.d.ts.map +1 -1
  8. package/dist/bridgeService.js +8 -2
  9. package/dist/bridgeService.js.map +1 -1
  10. package/dist/childBridgeFork.d.ts +1 -1
  11. package/dist/childBridgeFork.d.ts.map +1 -1
  12. package/dist/childBridgeFork.js +1 -1
  13. package/dist/childBridgeFork.js.map +1 -1
  14. package/dist/childBridgeService.d.ts +1 -0
  15. package/dist/childBridgeService.d.ts.map +1 -1
  16. package/dist/childBridgeService.js +6 -4
  17. package/dist/childBridgeService.js.map +1 -1
  18. package/dist/cli.d.ts.map +1 -1
  19. package/dist/cli.js +2 -1
  20. package/dist/cli.js.map +1 -1
  21. package/dist/externalPortService.js.map +1 -1
  22. package/dist/index.d.ts +11 -2
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/ipcService.d.ts +1 -4
  27. package/dist/ipcService.d.ts.map +1 -1
  28. package/dist/ipcService.js.map +1 -1
  29. package/dist/logger.d.ts.map +1 -1
  30. package/dist/logger.js.map +1 -1
  31. package/dist/matterConfigValidator.d.ts +34 -0
  32. package/dist/matterConfigValidator.d.ts.map +1 -0
  33. package/dist/matterConfigValidator.js +249 -0
  34. package/dist/matterConfigValidator.js.map +1 -0
  35. package/dist/matterService.d.ts +168 -0
  36. package/dist/matterService.d.ts.map +1 -0
  37. package/dist/matterService.js +677 -0
  38. package/dist/matterService.js.map +1 -0
  39. package/dist/matterTypes.d.ts +20 -0
  40. package/dist/matterTypes.d.ts.map +1 -0
  41. package/dist/matterTypes.js +278 -0
  42. package/dist/matterTypes.js.map +1 -0
  43. package/dist/platformAccessory.d.ts +3 -2
  44. package/dist/platformAccessory.d.ts.map +1 -1
  45. package/dist/platformAccessory.js +8 -1
  46. package/dist/platformAccessory.js.map +1 -1
  47. package/dist/plugin.d.ts +0 -1
  48. package/dist/plugin.d.ts.map +1 -1
  49. package/dist/plugin.js +3 -6
  50. package/dist/plugin.js.map +1 -1
  51. package/dist/pluginManager.d.ts.map +1 -1
  52. package/dist/pluginManager.js +20 -19
  53. package/dist/pluginManager.js.map +1 -1
  54. package/dist/server.d.ts +3 -0
  55. package/dist/server.d.ts.map +1 -1
  56. package/dist/server.js +41 -4
  57. package/dist/server.js.map +1 -1
  58. package/dist/storageService.js +8 -8
  59. package/dist/storageService.js.map +1 -1
  60. package/dist/user.js +7 -7
  61. package/dist/user.js.map +1 -1
  62. package/dist/util/mac.d.ts.map +1 -1
  63. package/dist/util/mac.js +3 -2
  64. package/dist/util/mac.js.map +1 -1
  65. package/dist/util/matter-cli.d.ts +3 -0
  66. package/dist/util/matter-cli.d.ts.map +1 -0
  67. package/dist/util/matter-cli.js +211 -0
  68. package/dist/util/matter-cli.js.map +1 -0
  69. package/dist/version.js +2 -2
  70. package/dist/version.js.map +1 -1
  71. 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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"}