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.
- package/dist/api.d.ts +16 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +9 -8
- package/dist/api.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -21
- package/dist/index.js.map +1 -1
- package/dist/matter/matterBehaviors.d.ts +14 -6
- package/dist/matter/matterBehaviors.d.ts.map +1 -1
- package/dist/matter/matterBehaviors.js +121 -341
- package/dist/matter/matterBehaviors.js.map +1 -1
- package/dist/matter/matterServer.d.ts +5 -4
- package/dist/matter/matterServer.d.ts.map +1 -1
- package/dist/matter/matterServer.js +15 -192
- package/dist/matter/matterServer.js.map +1 -1
- package/dist/matter/matterServerHelpers.d.ts +70 -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/matterTypes.d.ts +55 -0
- package/dist/matter/matterTypes.d.ts.map +1 -1
- package/dist/matter/matterTypes.js +24 -0
- package/dist/matter/matterTypes.js.map +1 -1
- package/package.json +3 -3
|
@@ -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":"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
|
|
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.
|
|
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": "^
|
|
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": "^
|
|
75
|
+
"vitest": "^4.0.1"
|
|
76
76
|
}
|
|
77
77
|
}
|