homebridge 2.0.0-alpha.7 → 2.0.0-alpha.71

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 (112) hide show
  1. package/README.md +1 -1
  2. package/bin/homebridge.js +22 -0
  3. package/dist/api.d.ts +250 -3
  4. package/dist/api.d.ts.map +1 -1
  5. package/dist/api.js +92 -0
  6. package/dist/api.js.map +1 -1
  7. package/dist/bridgeService.d.ts +11 -3
  8. package/dist/bridgeService.d.ts.map +1 -1
  9. package/dist/bridgeService.js +9 -5
  10. package/dist/bridgeService.js.map +1 -1
  11. package/dist/childBridgeFork.d.ts +30 -3
  12. package/dist/childBridgeFork.d.ts.map +1 -1
  13. package/dist/childBridgeFork.js +278 -5
  14. package/dist/childBridgeFork.js.map +1 -1
  15. package/dist/childBridgeService.d.ts +22 -0
  16. package/dist/childBridgeService.d.ts.map +1 -1
  17. package/dist/childBridgeService.js +85 -26
  18. package/dist/childBridgeService.js.map +1 -1
  19. package/dist/cli.d.ts.map +1 -1
  20. package/dist/cli.js +3 -2
  21. package/dist/cli.js.map +1 -1
  22. package/dist/externalPortService.d.ts +27 -6
  23. package/dist/externalPortService.d.ts.map +1 -1
  24. package/dist/externalPortService.js +73 -7
  25. package/dist/externalPortService.js.map +1 -1
  26. package/dist/index.d.ts +48 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +15 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/ipcService.d.ts +20 -0
  31. package/dist/ipcService.d.ts.map +1 -1
  32. package/dist/ipcService.js.map +1 -1
  33. package/dist/logger.d.ts +6 -0
  34. package/dist/logger.d.ts.map +1 -1
  35. package/dist/logger.js +8 -0
  36. package/dist/logger.js.map +1 -1
  37. package/dist/matter/index.d.ts +123 -0
  38. package/dist/matter/index.d.ts.map +1 -0
  39. package/dist/matter/index.js +19 -0
  40. package/dist/matter/index.js.map +1 -0
  41. package/dist/matter/matterAccessoryCache.d.ts +77 -0
  42. package/dist/matter/matterAccessoryCache.d.ts.map +1 -0
  43. package/dist/matter/matterAccessoryCache.js +176 -0
  44. package/dist/matter/matterAccessoryCache.js.map +1 -0
  45. package/dist/matter/matterBehaviors.d.ts +177 -0
  46. package/dist/matter/matterBehaviors.d.ts.map +1 -0
  47. package/dist/matter/matterBehaviors.js +639 -0
  48. package/dist/matter/matterBehaviors.js.map +1 -0
  49. package/dist/matter/matterConfigValidator.d.ts +81 -0
  50. package/dist/matter/matterConfigValidator.d.ts.map +1 -0
  51. package/dist/matter/matterConfigValidator.js +240 -0
  52. package/dist/matter/matterConfigValidator.js.map +1 -0
  53. package/dist/matter/matterErrorHandler.d.ts +94 -0
  54. package/dist/matter/matterErrorHandler.d.ts.map +1 -0
  55. package/dist/matter/matterErrorHandler.js +485 -0
  56. package/dist/matter/matterErrorHandler.js.map +1 -0
  57. package/dist/matter/matterLogFormatter.d.ts +19 -0
  58. package/dist/matter/matterLogFormatter.d.ts.map +1 -0
  59. package/dist/matter/matterLogFormatter.js +126 -0
  60. package/dist/matter/matterLogFormatter.js.map +1 -0
  61. package/dist/matter/matterNetworkMonitor.d.ts +68 -0
  62. package/dist/matter/matterNetworkMonitor.d.ts.map +1 -0
  63. package/dist/matter/matterNetworkMonitor.js +249 -0
  64. package/dist/matter/matterNetworkMonitor.js.map +1 -0
  65. package/dist/matter/matterServer.d.ts +644 -0
  66. package/dist/matter/matterServer.d.ts.map +1 -0
  67. package/dist/matter/matterServer.js +1460 -0
  68. package/dist/matter/matterServer.js.map +1 -0
  69. package/dist/matter/matterServerHelpers.d.ts +76 -0
  70. package/dist/matter/matterServerHelpers.d.ts.map +1 -0
  71. package/dist/matter/matterServerHelpers.js +298 -0
  72. package/dist/matter/matterServerHelpers.js.map +1 -0
  73. package/dist/matter/matterSharedTypes.d.ts +165 -0
  74. package/dist/matter/matterSharedTypes.d.ts.map +1 -0
  75. package/dist/matter/matterSharedTypes.js +51 -0
  76. package/dist/matter/matterSharedTypes.js.map +1 -0
  77. package/dist/matter/matterStorage.d.ts +126 -0
  78. package/dist/matter/matterStorage.d.ts.map +1 -0
  79. package/dist/matter/matterStorage.js +419 -0
  80. package/dist/matter/matterStorage.js.map +1 -0
  81. package/dist/matter/matterTypes.d.ts +668 -0
  82. package/dist/matter/matterTypes.d.ts.map +1 -0
  83. package/dist/matter/matterTypes.js +174 -0
  84. package/dist/matter/matterTypes.js.map +1 -0
  85. package/dist/platformAccessory.d.ts +1 -0
  86. package/dist/platformAccessory.d.ts.map +1 -1
  87. package/dist/platformAccessory.js +8 -1
  88. package/dist/platformAccessory.js.map +1 -1
  89. package/dist/plugin.d.ts +0 -1
  90. package/dist/plugin.d.ts.map +1 -1
  91. package/dist/plugin.js +8 -11
  92. package/dist/plugin.js.map +1 -1
  93. package/dist/pluginManager.d.ts.map +1 -1
  94. package/dist/pluginManager.js +22 -21
  95. package/dist/pluginManager.js.map +1 -1
  96. package/dist/server.d.ts +23 -1
  97. package/dist/server.d.ts.map +1 -1
  98. package/dist/server.js +374 -10
  99. package/dist/server.js.map +1 -1
  100. package/dist/storageService.js +8 -8
  101. package/dist/storageService.js.map +1 -1
  102. package/dist/user.d.ts +1 -0
  103. package/dist/user.d.ts.map +1 -1
  104. package/dist/user.js +10 -7
  105. package/dist/user.js.map +1 -1
  106. package/dist/util/mac.d.ts.map +1 -1
  107. package/dist/util/mac.js +2 -2
  108. package/dist/util/mac.js.map +1 -1
  109. package/dist/version.js +2 -2
  110. package/dist/version.js.map +1 -1
  111. package/package.json +23 -22
  112. package/bin/homebridge +0 -19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterServer.js","sourceRoot":"","sources":["../../src/matter/matterServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Helper functions for MatterServer.registerAccessory()
3
+ * Extracted from the monolithic 521-line function for better maintainability
4
+ */
5
+ import type { EndpointType } from '@matter/main';
6
+ import type { Behavior } from '@matter/node';
7
+ import type { MatterAccessory } from './matterTypes.js';
8
+ /**
9
+ * Type representing a behavior class (constructor)
10
+ */
11
+ type BehaviorType = Behavior.Type;
12
+ /**
13
+ * Cluster IDs from Matter specification
14
+ * Using Matter.js Cluster references instead of magic numbers
15
+ */
16
+ export declare const CLUSTER_IDS: {
17
+ readonly COLOR_CONTROL: import("@matter/main").Branded<768, "ClusterId">;
18
+ readonly THERMOSTAT: import("@matter/main").ClusterId;
19
+ readonly WINDOW_COVERING: import("@matter/main").ClusterId;
20
+ readonly DOOR_LOCK: import("@matter/main").Branded<257, "ClusterId">;
21
+ readonly ON_OFF: import("@matter/main").Branded<6, "ClusterId">;
22
+ readonly LEVEL_CONTROL: import("@matter/main").Branded<8, "ClusterId">;
23
+ };
24
+ /**
25
+ * Validates required fields on a Matter accessory
26
+ * @throws MatterDeviceError if validation fails
27
+ */
28
+ export declare function validateAccessoryRequiredFields(accessory: MatterAccessory): void;
29
+ /**
30
+ * Generic feature detection from device type behaviors
31
+ *
32
+ * @param deviceType - The Matter device type
33
+ * @param clusterIdOrName - Cluster ID (number) or name (string)
34
+ * @param featureExtractor - Function to extract feature names from supportedFeatures
35
+ * @returns Array of detected features or null if cluster not found
36
+ */
37
+ export declare function detectBehaviorFeatures(deviceType: EndpointType, clusterIdOrName: number | string, featureExtractor: (supportedFeatures: Record<string, boolean>) => string[]): string[] | null;
38
+ /**
39
+ * Extract ColorControl features from supportedFeatures
40
+ */
41
+ export declare function extractColorControlFeatures(supportedFeatures: Record<string, boolean>): string[];
42
+ /**
43
+ * Extract Thermostat features from supportedFeatures
44
+ */
45
+ export declare function extractThermostatFeatures(supportedFeatures: Record<string, boolean>): string[];
46
+ /**
47
+ * Determine ColorControl features based on handlers
48
+ * Only includes features that have corresponding handler methods
49
+ */
50
+ export declare function determineColorControlFeaturesFromHandlers(handlers: Record<string, unknown>): string[];
51
+ /**
52
+ * Detect WindowCovering features from accessory attributes
53
+ */
54
+ export declare function detectWindowCoveringFeatures(accessory: MatterAccessory): string[];
55
+ /**
56
+ * Detect ServiceArea features from cluster attributes
57
+ */
58
+ export declare function detectServiceAreaFeatures(serviceAreaCluster: Record<string, unknown> | undefined): string[];
59
+ /**
60
+ * Apply WindowCovering features to device type
61
+ */
62
+ export declare function applyWindowCoveringFeatures(deviceType: EndpointType, accessory: MatterAccessory, features: string[]): EndpointType;
63
+ /**
64
+ * Get the behavior map for custom cluster handlers
65
+ */
66
+ export declare function getBehaviorMap(): Record<string, BehaviorType>;
67
+ /**
68
+ * Build custom behaviors for RoboticVacuumCleaner devices
69
+ */
70
+ export declare function buildRvcCustomBehaviors(accessory: MatterAccessory, serviceAreaFeatures: string[] | null): BehaviorType[];
71
+ /**
72
+ * Apply detected features to a behavior class
73
+ */
74
+ export declare function applyFeaturesToBehavior(behaviorClass: BehaviorType, features: string[] | null, clusterName: string): BehaviorType;
75
+ export {};
76
+ //# sourceMappingURL=matterServerHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterServerHelpers.d.ts","sourceRoot":"","sources":["../../src/matter/matterServerHelpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAsBvD;;GAEG;AACH,KAAK,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAA;AAIjC;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAA;AAaV;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAwDhF;AAwCD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,YAAY,EACxB,eAAe,EAAE,MAAM,GAAG,MAAM,EAChC,gBAAgB,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,EAAE,GACzE,MAAM,EAAE,GAAG,IAAI,CAgBjB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAchG;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAiB9F;AAED;;;GAGG;AACH,wBAAgB,yCAAyC,CACvD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,EAAE,CAgBV;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,EAAE,CAsCjF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACtD,MAAM,EAAE,CAgBV;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,YAAY,EACxB,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,MAAM,EAAE,GACjB,YAAY,CAyBd;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAe7D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,eAAe,EAC1B,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,GACnC,YAAY,EAAE,CA4BhB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,YAAY,EAC3B,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EACzB,WAAW,EAAE,MAAM,GAClB,YAAY,CAQd"}
@@ -0,0 +1,298 @@
1
+ /**
2
+ * Helper functions for MatterServer.registerAccessory()
3
+ * Extracted from the monolithic 521-line function for better maintainability
4
+ */
5
+ import * as clusters from '@matter/main/clusters';
6
+ import * as devices from '@matter/main/devices';
7
+ import { Logger } from '../logger.js';
8
+ import { HomebridgeColorControlServer, HomebridgeDoorLockServer, HomebridgeFanControlServer, HomebridgeIdentifyServer, HomebridgeLevelControlServer, HomebridgeOnOffServer, HomebridgeRvcCleanModeServer, HomebridgeRvcOperationalStateServer, HomebridgeRvcRunModeServer, HomebridgeServiceAreaServer, HomebridgeThermostatServer, HomebridgeWindowCoveringServer, } from './matterBehaviors.js';
9
+ import { MatterDeviceError } from './matterTypes.js';
10
+ const log = Logger.withPrefix('Matter/Server');
11
+ /**
12
+ * Cluster IDs from Matter specification
13
+ * Using Matter.js Cluster references instead of magic numbers
14
+ */
15
+ export const CLUSTER_IDS = {
16
+ COLOR_CONTROL: clusters.ColorControl.Cluster.id,
17
+ THERMOSTAT: clusters.Thermostat.Cluster.id,
18
+ WINDOW_COVERING: clusters.WindowCovering.Cluster.id,
19
+ DOOR_LOCK: clusters.DoorLock.Cluster.id,
20
+ ON_OFF: clusters.OnOff.Cluster.id,
21
+ LEVEL_CONTROL: clusters.LevelControl.Cluster.id,
22
+ };
23
+ /**
24
+ * Validates required fields on a Matter accessory
25
+ * @throws MatterDeviceError if validation fails
26
+ */
27
+ export function validateAccessoryRequiredFields(accessory) {
28
+ if (!accessory.deviceType) {
29
+ throw new MatterDeviceError(`Matter accessory "${accessory.displayName || 'unknown'}" is missing required field 'deviceType'. `
30
+ + 'Example: deviceType: api.matter.deviceTypes.OnOffLight\n'
31
+ + 'Available device types: OnOffLight, DimmableLight, TemperatureSensor, etc.\n'
32
+ + 'See the Matter types documentation for the full list.');
33
+ }
34
+ if (!accessory.uuid) {
35
+ throw new MatterDeviceError('Matter accessory is missing required field \'uuid\'.\n'
36
+ + 'Generate a unique UUID for your accessory:\n'
37
+ + ' const uuid = api.hap.uuid.generate(\'my-unique-id\')');
38
+ }
39
+ if (!accessory.displayName) {
40
+ throw new MatterDeviceError(`Matter accessory (${accessory.uuid}) is missing required field 'displayName'.\n`
41
+ + 'Example: displayName: \'Living Room Light\'');
42
+ }
43
+ if (!accessory.serialNumber) {
44
+ throw new MatterDeviceError(`Matter accessory "${accessory.displayName}" is missing required field 'serialNumber'.\n`
45
+ + 'Example: serialNumber: \'ABC123\' or serialNumber: accessory.UUID');
46
+ }
47
+ if (!accessory.manufacturer) {
48
+ throw new MatterDeviceError(`Matter accessory "${accessory.displayName}" is missing required field 'manufacturer'.\n`
49
+ + 'Example: manufacturer: \'Homebridge\' or manufacturer: \'My Plugin Name\'');
50
+ }
51
+ if (!accessory.model) {
52
+ throw new MatterDeviceError(`Matter accessory "${accessory.displayName}" is missing required field 'model'.\n`
53
+ + 'Example: model: \'v1.0\' or model: \'Smart Light\'');
54
+ }
55
+ if (!accessory.clusters || typeof accessory.clusters !== 'object') {
56
+ throw new MatterDeviceError(`Matter accessory "${accessory.displayName}" is missing or has invalid 'clusters' field.\n`
57
+ + 'Clusters define the functionality of your device. Example:\n'
58
+ + ' clusters: {\n'
59
+ + ' onOff: { onOff: false },\n'
60
+ + ' levelControl: { currentLevel: 0, minLevel: 0, maxLevel: 254 }\n'
61
+ + ' }');
62
+ }
63
+ }
64
+ /**
65
+ * Convert device type behaviors to array
66
+ * Handles array, Set, object, or iterable formats
67
+ */
68
+ function convertBehaviorsToArray(behaviors) {
69
+ if (Array.isArray(behaviors)) {
70
+ return behaviors;
71
+ }
72
+ if (typeof behaviors === 'object' && behaviors !== null) {
73
+ const values = Object.values(behaviors);
74
+ if (values.length > 0) {
75
+ return values;
76
+ }
77
+ }
78
+ try {
79
+ return Array.from(behaviors);
80
+ }
81
+ catch {
82
+ return [];
83
+ }
84
+ }
85
+ /**
86
+ * Find a specific behavior by cluster ID or name
87
+ */
88
+ function findBehaviorByCluster(behaviors, clusterIdOrName) {
89
+ return behaviors.find((behavior) => {
90
+ if (typeof clusterIdOrName === 'number') {
91
+ return behavior.cluster?.id === clusterIdOrName;
92
+ }
93
+ return behavior.id === clusterIdOrName;
94
+ });
95
+ }
96
+ /**
97
+ * Generic feature detection from device type behaviors
98
+ *
99
+ * @param deviceType - The Matter device type
100
+ * @param clusterIdOrName - Cluster ID (number) or name (string)
101
+ * @param featureExtractor - Function to extract feature names from supportedFeatures
102
+ * @returns Array of detected features or null if cluster not found
103
+ */
104
+ export function detectBehaviorFeatures(deviceType, clusterIdOrName, featureExtractor) {
105
+ const deviceTypeDef = deviceType;
106
+ const existingBehaviors = deviceTypeDef.behaviors;
107
+ if (!existingBehaviors) {
108
+ return null;
109
+ }
110
+ const behaviorsArray = convertBehaviorsToArray(existingBehaviors);
111
+ const behavior = findBehaviorByCluster(behaviorsArray, clusterIdOrName);
112
+ if (!behavior?.cluster?.supportedFeatures) {
113
+ return null;
114
+ }
115
+ return featureExtractor(behavior.cluster.supportedFeatures);
116
+ }
117
+ /**
118
+ * Extract ColorControl features from supportedFeatures
119
+ */
120
+ export function extractColorControlFeatures(supportedFeatures) {
121
+ const features = [];
122
+ if (supportedFeatures.hueSaturation) {
123
+ features.push('HueSaturation');
124
+ }
125
+ if (supportedFeatures.xy) {
126
+ features.push('Xy');
127
+ }
128
+ if (supportedFeatures.colorTemperature) {
129
+ features.push('ColorTemperature');
130
+ }
131
+ return features;
132
+ }
133
+ /**
134
+ * Extract Thermostat features from supportedFeatures
135
+ */
136
+ export function extractThermostatFeatures(supportedFeatures) {
137
+ const features = [];
138
+ if (supportedFeatures.heating) {
139
+ features.push('Heating');
140
+ }
141
+ if (supportedFeatures.cooling) {
142
+ features.push('Cooling');
143
+ }
144
+ if (supportedFeatures.occupancy) {
145
+ features.push('Occupancy');
146
+ }
147
+ if (supportedFeatures.autoMode) {
148
+ features.push('AutoMode');
149
+ }
150
+ return features;
151
+ }
152
+ /**
153
+ * Determine ColorControl features based on handlers
154
+ * Only includes features that have corresponding handler methods
155
+ */
156
+ export function determineColorControlFeaturesFromHandlers(handlers) {
157
+ const features = [];
158
+ if ('moveToHueAndSaturationLogic' in handlers) {
159
+ features.push('HueSaturation');
160
+ }
161
+ if ('moveToColorLogic' in handlers) {
162
+ features.push('Xy');
163
+ }
164
+ if ('moveToColorTemperatureLogic' in handlers) {
165
+ features.push('ColorTemperature');
166
+ }
167
+ return features;
168
+ }
169
+ /**
170
+ * Detect WindowCovering features from accessory attributes
171
+ */
172
+ export function detectWindowCoveringFeatures(accessory) {
173
+ const features = [];
174
+ const wcCluster = accessory.clusters.windowCovering;
175
+ if (!wcCluster) {
176
+ return features;
177
+ }
178
+ const hasLiftAttrs = 'targetPositionLiftPercent100ths' in wcCluster
179
+ || 'currentPositionLiftPercent100ths' in wcCluster;
180
+ const configStatus = wcCluster.configStatus;
181
+ const hasConfigLift = configStatus?.liftPositionAware === true;
182
+ const hasTiltAttrs = 'targetPositionTiltPercent100ths' in wcCluster
183
+ || 'currentPositionTiltPercent100ths' in wcCluster;
184
+ const hasConfigTilt = configStatus?.tiltPositionAware === true;
185
+ log.debug(`[${accessory.displayName}] WindowCovering detection: `
186
+ + `hasLiftAttrs=${hasLiftAttrs}, hasConfigLift=${hasConfigLift}, `
187
+ + `hasTiltAttrs=${hasTiltAttrs}, hasConfigTilt=${hasConfigTilt}`);
188
+ if (hasLiftAttrs) {
189
+ features.push('Lift');
190
+ if (hasConfigLift) {
191
+ features.push('PositionAwareLift');
192
+ }
193
+ }
194
+ if (hasTiltAttrs) {
195
+ features.push('Tilt');
196
+ if (hasConfigTilt) {
197
+ features.push('PositionAwareTilt');
198
+ }
199
+ }
200
+ return features;
201
+ }
202
+ /**
203
+ * Detect ServiceArea features from cluster attributes
204
+ */
205
+ export function detectServiceAreaFeatures(serviceAreaCluster) {
206
+ const features = [];
207
+ if (!serviceAreaCluster) {
208
+ return features;
209
+ }
210
+ if ('supportedMaps' in serviceAreaCluster) {
211
+ features.push('Maps');
212
+ }
213
+ if ('progress' in serviceAreaCluster) {
214
+ features.push('ProgressReporting');
215
+ }
216
+ return features;
217
+ }
218
+ /**
219
+ * Apply WindowCovering features to device type
220
+ */
221
+ export function applyWindowCoveringFeatures(deviceType, accessory, features) {
222
+ if (features.length === 0) {
223
+ log.warn(`⚠️ No WindowCovering features detected for ${accessory.displayName}!`);
224
+ return deviceType;
225
+ }
226
+ log.info(`Auto-detected WindowCovering features for ${accessory.displayName}: ${features.join(', ')}`);
227
+ const modifiedDeviceType = deviceType.with(HomebridgeWindowCoveringServer.with(...features));
228
+ const hasTiltFeatures = features.includes('Tilt');
229
+ if (hasTiltFeatures) {
230
+ const wcCluster = accessory.clusters.windowCovering;
231
+ wcCluster.type = 8; // TiltBlindLift
232
+ log.debug('Set WindowCovering type to 8 (TiltBlindLift) for tilt-capable device');
233
+ }
234
+ if (!accessory.context) {
235
+ accessory.context = {};
236
+ }
237
+ accessory.context._skipWindowCoveringBehavior = true;
238
+ return modifiedDeviceType;
239
+ }
240
+ /**
241
+ * Get the behavior map for custom cluster handlers
242
+ */
243
+ export function getBehaviorMap() {
244
+ return {
245
+ onOff: HomebridgeOnOffServer,
246
+ levelControl: HomebridgeLevelControlServer,
247
+ colorControl: HomebridgeColorControlServer,
248
+ windowCovering: HomebridgeWindowCoveringServer,
249
+ fanControl: HomebridgeFanControlServer,
250
+ doorLock: HomebridgeDoorLockServer,
251
+ thermostat: HomebridgeThermostatServer,
252
+ rvcOperationalState: HomebridgeRvcOperationalStateServer,
253
+ rvcRunMode: HomebridgeRvcRunModeServer,
254
+ rvcCleanMode: HomebridgeRvcCleanModeServer,
255
+ serviceArea: HomebridgeServiceAreaServer,
256
+ identify: HomebridgeIdentifyServer,
257
+ };
258
+ }
259
+ /**
260
+ * Build custom behaviors for RoboticVacuumCleaner devices
261
+ */
262
+ export function buildRvcCustomBehaviors(accessory, serviceAreaFeatures) {
263
+ const customBehaviors = [];
264
+ const { RvcCleanModeServer, ServiceAreaServer } = devices.RoboticVacuumCleanerRequirements;
265
+ if (accessory.clusters?.rvcCleanMode) {
266
+ if (accessory.handlers?.rvcCleanMode) {
267
+ customBehaviors.push(HomebridgeRvcCleanModeServer);
268
+ log.info('Adding custom RvcCleanMode behavior with handlers');
269
+ }
270
+ else {
271
+ customBehaviors.push(RvcCleanModeServer);
272
+ log.info('Adding base RvcCleanMode server');
273
+ }
274
+ }
275
+ if (accessory.clusters?.serviceArea) {
276
+ let behaviorClass = accessory.handlers?.serviceArea
277
+ ? HomebridgeServiceAreaServer
278
+ : ServiceAreaServer;
279
+ if (serviceAreaFeatures && serviceAreaFeatures.length > 0) {
280
+ behaviorClass = behaviorClass.with(...serviceAreaFeatures);
281
+ log.info(`ServiceArea ${accessory.handlers?.serviceArea ? 'custom behavior' : 'base server'} will have features: ${serviceAreaFeatures.join(', ')}`);
282
+ }
283
+ customBehaviors.push(behaviorClass);
284
+ }
285
+ return customBehaviors;
286
+ }
287
+ /**
288
+ * Apply detected features to a behavior class
289
+ */
290
+ export function applyFeaturesToBehavior(behaviorClass, features, clusterName) {
291
+ if (!features || features.length === 0) {
292
+ return behaviorClass;
293
+ }
294
+ const modifiedBehavior = behaviorClass.with(...features);
295
+ log.info(`${clusterName} custom behavior will preserve features: ${features.join(', ')}`);
296
+ return modifiedBehavior;
297
+ }
298
+ //# sourceMappingURL=matterServerHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterServerHelpers.js","sourceRoot":"","sources":["../../src/matter/matterServerHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Shared Matter Types
3
+ *
4
+ * These types are used by both the homebridge core and the UI
5
+ * to ensure consistency across the Matter implementation.
6
+ */
7
+ /**
8
+ * Matter bridge status states
9
+ */
10
+ export declare enum MatterBridgeStatus {
11
+ /**
12
+ * When the Matter bridge is loading or restarting
13
+ */
14
+ PENDING = "pending",
15
+ /**
16
+ * The Matter bridge is online and ready for commissioning
17
+ */
18
+ OK = "ok",
19
+ /**
20
+ * The bridge is shutting down or stopped
21
+ */
22
+ DOWN = "down"
23
+ }
24
+ /**
25
+ * Metadata for a Matter bridge instance
26
+ */
27
+ export interface MatterBridgeMetadata {
28
+ /** Bridge type identifier (always 'matter') */
29
+ type: 'matter';
30
+ /** Current operational status */
31
+ status: MatterBridgeStatus;
32
+ /** Bridge username/identifier */
33
+ username?: string;
34
+ /** Bridge port number */
35
+ port?: number;
36
+ /** Display name of the bridge */
37
+ name: string;
38
+ /** Plugin identifier that owns this bridge */
39
+ plugin: string;
40
+ /** Unique identifier for this bridge instance */
41
+ identifier: string;
42
+ /** Whether the bridge was manually stopped */
43
+ manuallyStopped?: boolean;
44
+ /** Process ID of the bridge if running as child process */
45
+ pid?: number;
46
+ /** QR code payload for commissioning */
47
+ qrCode?: string;
48
+ /** Manual pairing code for commissioning */
49
+ manualPairingCode?: string;
50
+ /** Device serial number */
51
+ serialNumber?: string;
52
+ /** Number of devices exposed by this bridge */
53
+ deviceCount: number;
54
+ /** Whether the bridge has been commissioned */
55
+ commissioned?: boolean;
56
+ }
57
+ /**
58
+ * Matter commissioning information
59
+ */
60
+ export interface MatterCommissioningInfo {
61
+ /** Bridge type (always 'matter') */
62
+ type?: 'matter';
63
+ /** Setup URI/QR code for pairing */
64
+ setupUri?: string | null;
65
+ /** PIN/pairing code */
66
+ pin?: string | null;
67
+ /** QR code payload for commissioning */
68
+ qrCode?: string;
69
+ /** Manual pairing code for commissioning */
70
+ manualPairingCode?: string;
71
+ /** Device serial number */
72
+ serialNumber?: string;
73
+ /** Whether the device is commissioned */
74
+ commissioned: boolean;
75
+ /** Port number if applicable */
76
+ port?: number;
77
+ }
78
+ /**
79
+ * Matter accessory information
80
+ */
81
+ export interface MatterAccessoryInfo {
82
+ /** Unique identifier */
83
+ uuid: string;
84
+ /** Display name */
85
+ displayName: string;
86
+ /** HAP category */
87
+ category: number;
88
+ /** Matter device information */
89
+ matterInfo?: {
90
+ /** Whether this is a bridged device */
91
+ bridged: boolean;
92
+ /** Child bridge identifier if bridged */
93
+ childBridge?: string;
94
+ /** Matter device type */
95
+ deviceType?: string;
96
+ };
97
+ /** HAP services */
98
+ services?: Array<{
99
+ type: string;
100
+ subtype?: string;
101
+ displayName?: string;
102
+ characteristics: Array<{
103
+ type: string;
104
+ value: any;
105
+ props: any;
106
+ }>;
107
+ }>;
108
+ }
109
+ /**
110
+ * Matter server configuration
111
+ * Used internally by MatterServer class
112
+ */
113
+ export interface MatterServerConfig {
114
+ /** Server port */
115
+ port?: number;
116
+ /** Unique identifier (REQUIRED - must be unique for each Matter bridge instance) */
117
+ uniqueId: string;
118
+ /** Storage path */
119
+ storagePath?: string;
120
+ /** Manufacturer name (inherited from bridge config) */
121
+ manufacturer?: string;
122
+ /** Model name (inherited from bridge config) */
123
+ model?: string;
124
+ /** Firmware revision (inherited from bridge config) */
125
+ firmwareRevision?: string;
126
+ /** Serial number (inherited from bridge config) */
127
+ serialNumber?: string;
128
+ /** Enable debug mode for verbose logging */
129
+ debugModeEnabled?: boolean;
130
+ }
131
+ /**
132
+ * Matter accessories collection
133
+ */
134
+ export interface MatterAccessoriesResponse {
135
+ /** Child bridge accessories indexed by bridge ID */
136
+ children: {
137
+ [bridgeId: string]: MatterAccessoryInfo[];
138
+ };
139
+ }
140
+ /**
141
+ * IPC message types for Matter child bridges
142
+ */
143
+ export declare enum ChildMatterMessageType {
144
+ /** Sent from child when ready to accept config */
145
+ READY = "ready",
146
+ /** Sent to child with configuration */
147
+ LOAD = "load",
148
+ /** Sent from child when loaded */
149
+ LOADED = "loaded",
150
+ /** Sent to child to start the Matter bridge */
151
+ START = "start",
152
+ /** Sent from child when Matter bridge is online */
153
+ ONLINE = "online",
154
+ /** Sent to/from child to add an accessory */
155
+ ADD_ACCESSORY = "addAccessory",
156
+ /** Sent to/from child to remove an accessory */
157
+ REMOVE_ACCESSORY = "removeAccessory",
158
+ /** Sent from child with status updates */
159
+ STATUS_UPDATE = "statusUpdate",
160
+ /** Sent from child when an error occurs */
161
+ ERROR = "error",
162
+ /** Sent to child to shut down */
163
+ SHUTDOWN = "shutdown"
164
+ }
165
+ //# sourceMappingURL=matterSharedTypes.d.ts.map