homebridge 2.0.0-alpha.61 → 2.0.0-alpha.63

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.
@@ -0,0 +1,70 @@
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 { MatterAccessory } from './matterTypes.js';
7
+ /**
8
+ * Cluster IDs from Matter specification
9
+ * Using Matter.js Cluster references instead of magic numbers
10
+ */
11
+ export declare const CLUSTER_IDS: {
12
+ readonly COLOR_CONTROL: import("@matter/main").Branded<768, "ClusterId">;
13
+ readonly THERMOSTAT: import("@matter/main").ClusterId;
14
+ readonly WINDOW_COVERING: import("@matter/main").ClusterId;
15
+ readonly DOOR_LOCK: import("@matter/main").Branded<257, "ClusterId">;
16
+ readonly ON_OFF: import("@matter/main").Branded<6, "ClusterId">;
17
+ readonly LEVEL_CONTROL: import("@matter/main").Branded<8, "ClusterId">;
18
+ };
19
+ /**
20
+ * Validates required fields on a Matter accessory
21
+ * @throws MatterDeviceError if validation fails
22
+ */
23
+ export declare function validateAccessoryRequiredFields(accessory: MatterAccessory): void;
24
+ /**
25
+ * Generic feature detection from device type behaviors
26
+ *
27
+ * @param deviceType - The Matter device type
28
+ * @param clusterIdOrName - Cluster ID (number) or name (string)
29
+ * @param featureExtractor - Function to extract feature names from supportedFeatures
30
+ * @returns Array of detected features or null if cluster not found
31
+ */
32
+ export declare function detectBehaviorFeatures(deviceType: EndpointType, clusterIdOrName: number | string, featureExtractor: (supportedFeatures: Record<string, boolean>) => string[]): string[] | null;
33
+ /**
34
+ * Extract ColorControl features from supportedFeatures
35
+ */
36
+ export declare function extractColorControlFeatures(supportedFeatures: Record<string, boolean>): string[];
37
+ /**
38
+ * Extract Thermostat features from supportedFeatures
39
+ */
40
+ export declare function extractThermostatFeatures(supportedFeatures: Record<string, boolean>): string[];
41
+ /**
42
+ * Determine ColorControl features based on handlers
43
+ * Only includes features that have corresponding handler methods
44
+ */
45
+ export declare function determineColorControlFeaturesFromHandlers(handlers: Record<string, unknown>): string[];
46
+ /**
47
+ * Detect WindowCovering features from accessory attributes
48
+ */
49
+ export declare function detectWindowCoveringFeatures(accessory: MatterAccessory): string[];
50
+ /**
51
+ * Detect ServiceArea features from cluster attributes
52
+ */
53
+ export declare function detectServiceAreaFeatures(serviceAreaCluster: Record<string, unknown> | undefined): string[];
54
+ /**
55
+ * Apply WindowCovering features to device type
56
+ */
57
+ export declare function applyWindowCoveringFeatures(deviceType: EndpointType, accessory: MatterAccessory, features: string[]): EndpointType;
58
+ /**
59
+ * Get the behavior map for custom cluster handlers
60
+ */
61
+ export declare function getBehaviorMap(): Record<string, any>;
62
+ /**
63
+ * Build custom behaviors for RoboticVacuumCleaner devices
64
+ */
65
+ export declare function buildRvcCustomBehaviors(accessory: MatterAccessory, serviceAreaFeatures: string[] | null): any[];
66
+ /**
67
+ * Apply detected features to a behavior class
68
+ */
69
+ export declare function applyFeaturesToBehavior(behaviorClass: any, features: string[] | null, clusterName: string): any;
70
+ //# 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;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAwBvD;;;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,GAAG,CAAC,CAcpD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,eAAe,EAC1B,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,GACnC,GAAG,EAAE,CA4BP;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,GAAG,EAClB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EACzB,WAAW,EAAE,MAAM,GAClB,GAAG,CAQL"}
@@ -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 { WindowCoveringServer } from '@matter/main/behaviors';
6
+ import * as clusters from '@matter/main/clusters';
7
+ import * as devices from '@matter/main/devices';
8
+ import { Logger } from '../logger.js';
9
+ import { HomebridgeColorControlServer, HomebridgeDoorLockServer, HomebridgeIdentifyServer, HomebridgeLevelControlServer, HomebridgeOnOffServer, HomebridgeRvcCleanModeServer, HomebridgeRvcOperationalStateServer, HomebridgeRvcRunModeServer, HomebridgeServiceAreaServer, HomebridgeThermostatServer, HomebridgeWindowCoveringServer, } from './matterBehaviors.js';
10
+ import { MatterDeviceError } from './matterTypes.js';
11
+ const log = Logger.withPrefix('Matter/Server');
12
+ /**
13
+ * Cluster IDs from Matter specification
14
+ * Using Matter.js Cluster references instead of magic numbers
15
+ */
16
+ export const CLUSTER_IDS = {
17
+ COLOR_CONTROL: clusters.ColorControl.Cluster.id,
18
+ THERMOSTAT: clusters.Thermostat.Cluster.id,
19
+ WINDOW_COVERING: clusters.WindowCovering.Cluster.id,
20
+ DOOR_LOCK: clusters.DoorLock.Cluster.id,
21
+ ON_OFF: clusters.OnOff.Cluster.id,
22
+ LEVEL_CONTROL: clusters.LevelControl.Cluster.id,
23
+ };
24
+ /**
25
+ * Validates required fields on a Matter accessory
26
+ * @throws MatterDeviceError if validation fails
27
+ */
28
+ export function validateAccessoryRequiredFields(accessory) {
29
+ if (!accessory.deviceType) {
30
+ throw new MatterDeviceError(`Matter accessory "${accessory.displayName || 'unknown'}" is missing required field 'deviceType'. `
31
+ + 'Example: deviceType: api.matter.deviceTypes.OnOffLight\n'
32
+ + 'Available device types: OnOffLight, DimmableLight, TemperatureSensor, etc.\n'
33
+ + 'See the Matter types documentation for the full list.');
34
+ }
35
+ if (!accessory.uuid) {
36
+ throw new MatterDeviceError('Matter accessory is missing required field \'uuid\'.\n'
37
+ + 'Generate a unique UUID for your accessory:\n'
38
+ + ' const uuid = api.hap.uuid.generate(\'my-unique-id\')');
39
+ }
40
+ if (!accessory.displayName) {
41
+ throw new MatterDeviceError(`Matter accessory (${accessory.uuid}) is missing required field 'displayName'.\n`
42
+ + 'Example: displayName: \'Living Room Light\'');
43
+ }
44
+ if (!accessory.serialNumber) {
45
+ throw new MatterDeviceError(`Matter accessory "${accessory.displayName}" is missing required field 'serialNumber'.\n`
46
+ + 'Example: serialNumber: \'ABC123\' or serialNumber: accessory.UUID');
47
+ }
48
+ if (!accessory.manufacturer) {
49
+ throw new MatterDeviceError(`Matter accessory "${accessory.displayName}" is missing required field 'manufacturer'.\n`
50
+ + 'Example: manufacturer: \'Homebridge\' or manufacturer: \'My Plugin Name\'');
51
+ }
52
+ if (!accessory.model) {
53
+ throw new MatterDeviceError(`Matter accessory "${accessory.displayName}" is missing required field 'model'.\n`
54
+ + 'Example: model: \'v1.0\' or model: \'Smart Light\'');
55
+ }
56
+ if (!accessory.clusters || typeof accessory.clusters !== 'object') {
57
+ throw new MatterDeviceError(`Matter accessory "${accessory.displayName}" is missing or has invalid 'clusters' field.\n`
58
+ + 'Clusters define the functionality of your device. Example:\n'
59
+ + ' clusters: {\n'
60
+ + ' onOff: { onOff: false },\n'
61
+ + ' levelControl: { currentLevel: 0, minLevel: 0, maxLevel: 254 }\n'
62
+ + ' }');
63
+ }
64
+ }
65
+ /**
66
+ * Convert device type behaviors to array
67
+ * Handles array, Set, object, or iterable formats
68
+ */
69
+ function convertBehaviorsToArray(behaviors) {
70
+ if (Array.isArray(behaviors)) {
71
+ return behaviors;
72
+ }
73
+ if (typeof behaviors === 'object' && behaviors !== null) {
74
+ const values = Object.values(behaviors);
75
+ if (values.length > 0) {
76
+ return values;
77
+ }
78
+ }
79
+ try {
80
+ return Array.from(behaviors);
81
+ }
82
+ catch {
83
+ return [];
84
+ }
85
+ }
86
+ /**
87
+ * Find a specific behavior by cluster ID or name
88
+ */
89
+ function findBehaviorByCluster(behaviors, clusterIdOrName) {
90
+ return behaviors.find((behavior) => {
91
+ if (typeof clusterIdOrName === 'number') {
92
+ return behavior.cluster?.id === clusterIdOrName;
93
+ }
94
+ return behavior.id === clusterIdOrName;
95
+ });
96
+ }
97
+ /**
98
+ * Generic feature detection from device type behaviors
99
+ *
100
+ * @param deviceType - The Matter device type
101
+ * @param clusterIdOrName - Cluster ID (number) or name (string)
102
+ * @param featureExtractor - Function to extract feature names from supportedFeatures
103
+ * @returns Array of detected features or null if cluster not found
104
+ */
105
+ export function detectBehaviorFeatures(deviceType, clusterIdOrName, featureExtractor) {
106
+ const deviceTypeDef = deviceType;
107
+ const existingBehaviors = deviceTypeDef.behaviors;
108
+ if (!existingBehaviors) {
109
+ return null;
110
+ }
111
+ const behaviorsArray = convertBehaviorsToArray(existingBehaviors);
112
+ const behavior = findBehaviorByCluster(behaviorsArray, clusterIdOrName);
113
+ if (!behavior?.cluster?.supportedFeatures) {
114
+ return null;
115
+ }
116
+ return featureExtractor(behavior.cluster.supportedFeatures);
117
+ }
118
+ /**
119
+ * Extract ColorControl features from supportedFeatures
120
+ */
121
+ export function extractColorControlFeatures(supportedFeatures) {
122
+ const features = [];
123
+ if (supportedFeatures.hueSaturation) {
124
+ features.push('HueSaturation');
125
+ }
126
+ if (supportedFeatures.xy) {
127
+ features.push('Xy');
128
+ }
129
+ if (supportedFeatures.colorTemperature) {
130
+ features.push('ColorTemperature');
131
+ }
132
+ return features;
133
+ }
134
+ /**
135
+ * Extract Thermostat features from supportedFeatures
136
+ */
137
+ export function extractThermostatFeatures(supportedFeatures) {
138
+ const features = [];
139
+ if (supportedFeatures.heating) {
140
+ features.push('Heating');
141
+ }
142
+ if (supportedFeatures.cooling) {
143
+ features.push('Cooling');
144
+ }
145
+ if (supportedFeatures.occupancy) {
146
+ features.push('Occupancy');
147
+ }
148
+ if (supportedFeatures.autoMode) {
149
+ features.push('AutoMode');
150
+ }
151
+ return features;
152
+ }
153
+ /**
154
+ * Determine ColorControl features based on handlers
155
+ * Only includes features that have corresponding handler methods
156
+ */
157
+ export function determineColorControlFeaturesFromHandlers(handlers) {
158
+ const features = [];
159
+ if ('moveToHueAndSaturationLogic' in handlers) {
160
+ features.push('HueSaturation');
161
+ }
162
+ if ('moveToColorLogic' in handlers) {
163
+ features.push('Xy');
164
+ }
165
+ if ('moveToColorTemperatureLogic' in handlers) {
166
+ features.push('ColorTemperature');
167
+ }
168
+ return features;
169
+ }
170
+ /**
171
+ * Detect WindowCovering features from accessory attributes
172
+ */
173
+ export function detectWindowCoveringFeatures(accessory) {
174
+ const features = [];
175
+ const wcCluster = accessory.clusters.windowCovering;
176
+ if (!wcCluster) {
177
+ return features;
178
+ }
179
+ const hasLiftAttrs = 'targetPositionLiftPercent100ths' in wcCluster
180
+ || 'currentPositionLiftPercent100ths' in wcCluster;
181
+ const configStatus = wcCluster.configStatus;
182
+ const hasConfigLift = configStatus?.liftPositionAware === true;
183
+ const hasTiltAttrs = 'targetPositionTiltPercent100ths' in wcCluster
184
+ || 'currentPositionTiltPercent100ths' in wcCluster;
185
+ const hasConfigTilt = configStatus?.tiltPositionAware === true;
186
+ log.debug(`[${accessory.displayName}] WindowCovering detection: `
187
+ + `hasLiftAttrs=${hasLiftAttrs}, hasConfigLift=${hasConfigLift}, `
188
+ + `hasTiltAttrs=${hasTiltAttrs}, hasConfigTilt=${hasConfigTilt}`);
189
+ if (hasLiftAttrs) {
190
+ features.push('Lift');
191
+ if (hasConfigLift) {
192
+ features.push('PositionAwareLift');
193
+ }
194
+ }
195
+ if (hasTiltAttrs) {
196
+ features.push('Tilt');
197
+ if (hasConfigTilt) {
198
+ features.push('PositionAwareTilt');
199
+ }
200
+ }
201
+ return features;
202
+ }
203
+ /**
204
+ * Detect ServiceArea features from cluster attributes
205
+ */
206
+ export function detectServiceAreaFeatures(serviceAreaCluster) {
207
+ const features = [];
208
+ if (!serviceAreaCluster) {
209
+ return features;
210
+ }
211
+ if ('supportedMaps' in serviceAreaCluster) {
212
+ features.push('Maps');
213
+ }
214
+ if ('progress' in serviceAreaCluster) {
215
+ features.push('ProgressReporting');
216
+ }
217
+ return features;
218
+ }
219
+ /**
220
+ * Apply WindowCovering features to device type
221
+ */
222
+ export function applyWindowCoveringFeatures(deviceType, accessory, features) {
223
+ if (features.length === 0) {
224
+ log.warn(`⚠️ No WindowCovering features detected for ${accessory.displayName}!`);
225
+ return deviceType;
226
+ }
227
+ log.info(`Auto-detected WindowCovering features for ${accessory.displayName}: ${features.join(', ')}`);
228
+ const modifiedDeviceType = deviceType.with(WindowCoveringServer.with(...features));
229
+ const hasTiltFeatures = features.includes('Tilt');
230
+ if (hasTiltFeatures) {
231
+ const wcCluster = accessory.clusters.windowCovering;
232
+ wcCluster.type = 8; // TiltBlindLift
233
+ log.debug('Set WindowCovering type to 8 (TiltBlindLift) for tilt-capable device');
234
+ }
235
+ if (!accessory.context) {
236
+ accessory.context = {};
237
+ }
238
+ accessory.context._skipWindowCoveringBehavior = true;
239
+ return modifiedDeviceType;
240
+ }
241
+ /**
242
+ * Get the behavior map for custom cluster handlers
243
+ */
244
+ export function getBehaviorMap() {
245
+ return {
246
+ onOff: HomebridgeOnOffServer,
247
+ levelControl: HomebridgeLevelControlServer,
248
+ colorControl: HomebridgeColorControlServer,
249
+ windowCovering: HomebridgeWindowCoveringServer,
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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"}
@@ -599,6 +599,7 @@ export declare const clusterNames: {
599
599
  readonly RvcRunMode: "rvcRunMode";
600
600
  readonly RvcOperationalState: "rvcOperationalState";
601
601
  readonly RvcCleanMode: "rvcCleanMode";
602
+ readonly ServiceArea: "serviceArea";
602
603
  readonly PumpConfigurationAndControl: "pumpConfigurationAndControl";
603
604
  readonly Identify: "identify";
604
605
  readonly BasicInformation: "basicInformation";
@@ -609,4 +610,58 @@ export declare const clusterNames: {
609
610
  * Provides type safety for cluster name strings
610
611
  */
611
612
  export type MatterClusterName = typeof clusterNames[keyof typeof clusterNames];
613
+ /**
614
+ * Internal Matter accessory with endpoint reference
615
+ * Used in MatterServer to track registered accessories
616
+ */
617
+ export interface InternalMatterAccessory extends MatterAccessory {
618
+ /** Plugin identifier that registered this accessory */
619
+ _associatedPlugin?: string;
620
+ /** Platform name that registered this accessory */
621
+ _associatedPlatform?: string;
622
+ /** Matter.js endpoint instance */
623
+ endpoint?: Endpoint;
624
+ /** Whether this accessory is currently registered */
625
+ registered: boolean;
626
+ }
627
+ /**
628
+ * Type-safe accessory map for MatterServer
629
+ */
630
+ export type MatterAccessoryMap = Map<string, InternalMatterAccessory>;
631
+ /**
632
+ * Check if endpoint has state property (runtime check)
633
+ */
634
+ export declare function hasEndpointState(endpoint: Endpoint): boolean;
635
+ /**
636
+ * Safely update endpoint state
637
+ * Uses the Endpoint's set method to update cluster attributes
638
+ */
639
+ export declare function updateEndpointState(endpoint: Endpoint, cluster: string, attributes: Record<string, unknown>): Promise<void>;
640
+ /**
641
+ * Device type with behaviors (internal Matter.js structure)
642
+ */
643
+ export interface DeviceTypeWithBehaviors extends EndpointType {
644
+ with: (...behaviors: any[]) => DeviceTypeWithBehaviors;
645
+ }
646
+ /**
647
+ * WindowCovering cluster with dynamic attributes
648
+ */
649
+ export interface WindowCoveringCluster {
650
+ type?: number;
651
+ configStatus?: {
652
+ liftPositionAware?: boolean;
653
+ tiltPositionAware?: boolean;
654
+ liftEncoderControlled?: boolean;
655
+ tiltEncoderControlled?: boolean;
656
+ };
657
+ targetPositionLiftPercent100ths?: number;
658
+ currentPositionLiftPercent100ths?: number;
659
+ targetPositionTiltPercent100ths?: number;
660
+ currentPositionTiltPercent100ths?: number;
661
+ operationalStatus?: number;
662
+ }
663
+ /**
664
+ * Type-safe cluster access for WindowCovering
665
+ */
666
+ export declare function getWindowCoveringCluster(accessory: MatterAccessory): WindowCoveringCluster | undefined;
612
667
  //# sourceMappingURL=matterTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"matterTypes.d.ts","sourceRoot":"","sources":["../../src/matter/matterTypes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG1D,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAAC,KAAK,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAE1F;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;CACjD;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACtD,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAA;IAEZ,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAA;IAEnB,6EAA6E;IAC7E,UAAU,EAAE,YAAY,CAAA;IAExB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAA;IAEpB,wBAAwB;IACxB,YAAY,EAAE,MAAM,CAAA;IAEpB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAA;IAEb,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,CAAA;IAEX;;;;;;;;;OASG;IACH,QAAQ,EAAE;QACR,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAA;SACjC,CAAA;KACF,CAAA;IAED;;;;;OAKG;IACH,QAAQ,CAAC,EAAE;QACT,CAAC,WAAW,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAC7C,CAAA;IAED;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3D,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,cAAc,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAEtD,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAE5B,sDAAsD;IACtD,cAAc,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAEtD,oDAAoD;IACpD,gBAAgB,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAExD,8EAA8E;IAC9E,uBAAuB,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IAE7E,8CAA8C;IAC9C,sBAAsB,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAA;IAE5D,gDAAgD;IAChD,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACjD;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,cAAc,mBAAmB;IACjC,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,KAAK,CAAA;CACtB;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;aAOlB,IAAI,EAAE,MAAM;aACZ,OAAO,CAAC,EAAE,kBAAkB;IAP9C,SAAgB,IAAI,EAAE,eAAe,CAAA;IACrC,SAAgB,SAAS,EAAE,IAAI,CAAA;IAC/B,SAAgB,WAAW,EAAE,OAAO,CAAA;gBAGlC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,kBAAkB,YAAA,EAC5C,IAAI,GAAE,eAAyC,EAC/C,WAAW,UAAO;CAQrB;AAED,qBAAa,wBAAyB,SAAQ,WAAW;gBAC3C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;CAI1D;AAED,qBAAa,kBAAmB,SAAQ,WAAW;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;CAI1D;AAED,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;CAI1D;AAED,qBAAa,kBAAmB,SAAQ,WAAW;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;CAI1D;AAGD,OAAO,EAAE,QAAQ,EAAE,CAAA;AAGnB,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCd,CAAA;AAEV;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;CAgCf,CAAA;AAEV;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,YAAY,CAAC,MAAM,OAAO,YAAY,CAAC,CAAA"}
1
+ {"version":3,"file":"matterTypes.d.ts","sourceRoot":"","sources":["../../src/matter/matterTypes.ts"],"names":[],"mappings":"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"}
@@ -139,6 +139,7 @@ export const clusterNames = {
139
139
  RvcRunMode: 'rvcRunMode',
140
140
  RvcOperationalState: 'rvcOperationalState',
141
141
  RvcCleanMode: 'rvcCleanMode',
142
+ ServiceArea: 'serviceArea',
142
143
  // Pump & Other
143
144
  PumpConfigurationAndControl: 'pumpConfigurationAndControl',
144
145
  // Identification
@@ -147,4 +148,27 @@ export const clusterNames = {
147
148
  BasicInformation: 'basicInformation',
148
149
  BridgedDeviceBasicInformation: 'bridgedDeviceBasicInformation',
149
150
  };
151
+ /**
152
+ * Check if endpoint has state property (runtime check)
153
+ */
154
+ export function hasEndpointState(endpoint) {
155
+ return 'state' in endpoint && typeof endpoint.state === 'object';
156
+ }
157
+ /**
158
+ * Safely update endpoint state
159
+ * Uses the Endpoint's set method to update cluster attributes
160
+ */
161
+ export async function updateEndpointState(endpoint, cluster, attributes) {
162
+ if (!hasEndpointState(endpoint)) {
163
+ throw new Error('Endpoint does not support state updates');
164
+ }
165
+ const updateObject = { [cluster]: attributes };
166
+ await endpoint.set(updateObject);
167
+ }
168
+ /**
169
+ * Type-safe cluster access for WindowCovering
170
+ */
171
+ export function getWindowCoveringCluster(accessory) {
172
+ return accessory.clusters.windowCovering;
173
+ }
150
174
  //# sourceMappingURL=matterTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"matterTypes.js","sourceRoot":"","sources":["../../src/matter/matterTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matterTypes.js","sourceRoot":"","sources":["../../src/matter/matterTypes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "homebridge",
3
3
  "type": "module",
4
- "version": "2.0.0-alpha.61",
4
+ "version": "2.0.0-alpha.63",
5
5
  "description": "HomeKit support for the impatient",
6
6
  "author": "Nick Farina",
7
7
  "license": "Apache-2.0",
@@ -65,13 +65,13 @@
65
65
  "@types/node": "^24.9.1",
66
66
  "@types/semver": "^7.7.1",
67
67
  "@types/source-map-support": "^0.5.10",
68
- "@vitest/coverage-v8": "^3.2.4",
68
+ "@vitest/coverage-v8": "^4.0.1",
69
69
  "eslint-plugin-format": "^1.0.2",
70
70
  "nodemon": "^3.1.10",
71
71
  "rimraf": "^6.0.1",
72
72
  "ts-node": "^10.9.2",
73
73
  "typedoc": "^0.28.14",
74
74
  "typescript": "^5.9.3",
75
- "vitest": "^3.2.4"
75
+ "vitest": "^4.0.1"
76
76
  }
77
77
  }