homebridge 2.0.0-beta.30 → 2.0.0-beta.31
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 +267 -3
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +92 -0
- package/dist/api.js.map +1 -1
- package/dist/bridgeService.d.ts +4 -2
- package/dist/bridgeService.d.ts.map +1 -1
- package/dist/bridgeService.js +1 -3
- package/dist/bridgeService.js.map +1 -1
- package/dist/childBridgeFork.d.ts +29 -2
- package/dist/childBridgeFork.d.ts.map +1 -1
- package/dist/childBridgeFork.js +294 -4
- package/dist/childBridgeFork.js.map +1 -1
- package/dist/childBridgeService.d.ts +19 -0
- package/dist/childBridgeService.d.ts.map +1 -1
- package/dist/childBridgeService.js +38 -3
- package/dist/childBridgeService.js.map +1 -1
- package/dist/externalPortService.d.ts +27 -6
- package/dist/externalPortService.d.ts.map +1 -1
- package/dist/externalPortService.js +73 -7
- package/dist/externalPortService.js.map +1 -1
- package/dist/index.d.ts +47 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/ipcService.d.ts +20 -0
- package/dist/ipcService.d.ts.map +1 -1
- package/dist/ipcService.js.map +1 -1
- package/dist/logger.d.ts +6 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +8 -0
- package/dist/logger.js.map +1 -1
- package/dist/matter/index.d.ts +123 -0
- package/dist/matter/index.d.ts.map +1 -0
- package/dist/matter/index.js +19 -0
- package/dist/matter/index.js.map +1 -0
- package/dist/matter/matterAccessoryCache.d.ts +96 -0
- package/dist/matter/matterAccessoryCache.d.ts.map +1 -0
- package/dist/matter/matterAccessoryCache.js +192 -0
- package/dist/matter/matterAccessoryCache.js.map +1 -0
- package/dist/matter/matterBehaviors.d.ts +194 -0
- package/dist/matter/matterBehaviors.d.ts.map +1 -0
- package/dist/matter/matterBehaviors.js +665 -0
- package/dist/matter/matterBehaviors.js.map +1 -0
- package/dist/matter/matterConfigValidator.d.ts +81 -0
- package/dist/matter/matterConfigValidator.d.ts.map +1 -0
- package/dist/matter/matterConfigValidator.js +240 -0
- package/dist/matter/matterConfigValidator.js.map +1 -0
- package/dist/matter/matterErrorHandler.d.ts +106 -0
- package/dist/matter/matterErrorHandler.d.ts.map +1 -0
- package/dist/matter/matterErrorHandler.js +495 -0
- package/dist/matter/matterErrorHandler.js.map +1 -0
- package/dist/matter/matterLogFormatter.d.ts +19 -0
- package/dist/matter/matterLogFormatter.d.ts.map +1 -0
- package/dist/matter/matterLogFormatter.js +144 -0
- package/dist/matter/matterLogFormatter.js.map +1 -0
- package/dist/matter/matterNetworkMonitor.d.ts +68 -0
- package/dist/matter/matterNetworkMonitor.d.ts.map +1 -0
- package/dist/matter/matterNetworkMonitor.js +249 -0
- package/dist/matter/matterNetworkMonitor.js.map +1 -0
- package/dist/matter/matterServer.d.ts +656 -0
- package/dist/matter/matterServer.d.ts.map +1 -0
- package/dist/matter/matterServer.js +1690 -0
- package/dist/matter/matterServer.js.map +1 -0
- package/dist/matter/matterServerHelpers.d.ts +81 -0
- package/dist/matter/matterServerHelpers.d.ts.map +1 -0
- package/dist/matter/matterServerHelpers.js +323 -0
- package/dist/matter/matterServerHelpers.js.map +1 -0
- package/dist/matter/matterSharedTypes.d.ts +170 -0
- package/dist/matter/matterSharedTypes.d.ts.map +1 -0
- package/dist/matter/matterSharedTypes.js +52 -0
- package/dist/matter/matterSharedTypes.js.map +1 -0
- package/dist/matter/matterStorage.d.ts +128 -0
- package/dist/matter/matterStorage.d.ts.map +1 -0
- package/dist/matter/matterStorage.js +415 -0
- package/dist/matter/matterStorage.js.map +1 -0
- package/dist/matter/matterTypes.d.ts +745 -0
- package/dist/matter/matterTypes.d.ts.map +1 -0
- package/dist/matter/matterTypes.js +174 -0
- package/dist/matter/matterTypes.js.map +1 -0
- package/dist/server.d.ts +23 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +385 -7
- package/dist/server.js.map +1 -1
- package/dist/user.d.ts +1 -0
- package/dist/user.d.ts.map +1 -1
- package/dist/user.js +3 -0
- package/dist/user.js.map +1 -1
- package/package.json +16 -15
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matterTypes.d.ts","sourceRoot":"","sources":["../../src/matter/matterTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matter Types for Homebridge Plugin API
|
|
3
|
+
*
|
|
4
|
+
* This module provides types and interfaces for plugin developers
|
|
5
|
+
* to create Matter-compatible accessories.
|
|
6
|
+
*/
|
|
7
|
+
// Import Matter.js clusters and device types
|
|
8
|
+
import * as clusters from '@matter/main/clusters';
|
|
9
|
+
import * as devices from '@matter/main/devices';
|
|
10
|
+
/**
|
|
11
|
+
* Matter error type enum (for error handler categorization)
|
|
12
|
+
*/
|
|
13
|
+
export var MatterErrorType;
|
|
14
|
+
(function (MatterErrorType) {
|
|
15
|
+
MatterErrorType["INITIALIZATION"] = "INITIALIZATION";
|
|
16
|
+
MatterErrorType["NETWORK"] = "NETWORK";
|
|
17
|
+
MatterErrorType["COMMISSIONING"] = "COMMISSIONING";
|
|
18
|
+
MatterErrorType["DEVICE_SYNC"] = "DEVICE_SYNC";
|
|
19
|
+
MatterErrorType["SERVER"] = "SERVER";
|
|
20
|
+
MatterErrorType["STORAGE"] = "STORAGE";
|
|
21
|
+
MatterErrorType["CONFIGURATION"] = "CONFIGURATION";
|
|
22
|
+
MatterErrorType["DEVICE_ERROR"] = "DEVICE_ERROR";
|
|
23
|
+
MatterErrorType["UNKNOWN"] = "UNKNOWN";
|
|
24
|
+
})(MatterErrorType || (MatterErrorType = {}));
|
|
25
|
+
/**
|
|
26
|
+
* Matter error types
|
|
27
|
+
*/
|
|
28
|
+
export class MatterError extends Error {
|
|
29
|
+
code;
|
|
30
|
+
details;
|
|
31
|
+
type;
|
|
32
|
+
timestamp;
|
|
33
|
+
recoverable;
|
|
34
|
+
constructor(message, code, details) {
|
|
35
|
+
super(message);
|
|
36
|
+
this.code = code;
|
|
37
|
+
this.details = details;
|
|
38
|
+
this.name = 'MatterError';
|
|
39
|
+
this.type = details?.type ?? MatterErrorType.UNKNOWN;
|
|
40
|
+
this.timestamp = new Date();
|
|
41
|
+
this.recoverable = details?.recoverable ?? true;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class MatterCommissioningError extends MatterError {
|
|
45
|
+
constructor(message, details) {
|
|
46
|
+
super(message, 'COMMISSIONING_ERROR', { ...details, type: MatterErrorType.COMMISSIONING });
|
|
47
|
+
this.name = 'MatterCommissioningError';
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export class MatterStorageError extends MatterError {
|
|
51
|
+
constructor(message, details) {
|
|
52
|
+
super(message, 'STORAGE_ERROR', { ...details, type: MatterErrorType.STORAGE });
|
|
53
|
+
this.name = 'MatterStorageError';
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export class MatterDeviceError extends MatterError {
|
|
57
|
+
constructor(message, details) {
|
|
58
|
+
super(message, 'DEVICE_ERROR', { ...details, type: MatterErrorType.DEVICE_ERROR });
|
|
59
|
+
this.name = 'MatterDeviceError';
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export class MatterNetworkError extends MatterError {
|
|
63
|
+
constructor(message, details) {
|
|
64
|
+
super(message, 'NETWORK_ERROR', { ...details, type: MatterErrorType.NETWORK });
|
|
65
|
+
this.name = 'MatterNetworkError';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Export Matter.js clusters for direct access
|
|
69
|
+
export { clusters };
|
|
70
|
+
// Export raw devices namespace (for advanced use)
|
|
71
|
+
export { devices };
|
|
72
|
+
/**
|
|
73
|
+
* Friendly device type names for the Plugin API
|
|
74
|
+
* Maps simplified names to actual Matter.js device types
|
|
75
|
+
*/
|
|
76
|
+
export const deviceTypes = {
|
|
77
|
+
// Lighting
|
|
78
|
+
OnOffLight: devices.OnOffLightDevice,
|
|
79
|
+
DimmableLight: devices.DimmableLightDevice,
|
|
80
|
+
ColorTemperatureLight: devices.ColorTemperatureLightDevice,
|
|
81
|
+
ExtendedColorLight: devices.ExtendedColorLightDevice,
|
|
82
|
+
// Switches & Outlets
|
|
83
|
+
OnOffSwitch: devices.OnOffLightSwitchDevice,
|
|
84
|
+
OnOffOutlet: devices.OnOffPlugInUnitDevice,
|
|
85
|
+
DimmableOutlet: devices.DimmablePlugInUnitDevice,
|
|
86
|
+
// Sensors
|
|
87
|
+
TemperatureSensor: devices.TemperatureSensorDevice,
|
|
88
|
+
HumiditySensor: devices.HumiditySensorDevice,
|
|
89
|
+
LightSensor: devices.LightSensorDevice,
|
|
90
|
+
MotionSensor: devices.OccupancySensorDevice,
|
|
91
|
+
ContactSensor: devices.ContactSensorDevice,
|
|
92
|
+
LeakSensor: devices.WaterLeakDetectorDevice,
|
|
93
|
+
SmokeSensor: devices.SmokeCoAlarmDevice,
|
|
94
|
+
// HVAC
|
|
95
|
+
Thermostat: devices.ThermostatDevice.with(devices.ThermostatRequirements.ThermostatServer.with('Heating', 'Cooling')),
|
|
96
|
+
Fan: devices.FanDevice,
|
|
97
|
+
// Security
|
|
98
|
+
DoorLock: devices.DoorLockDevice,
|
|
99
|
+
// Window Coverings (features will be auto-detected based on accessory attributes)
|
|
100
|
+
WindowCovering: devices.WindowCoveringDevice,
|
|
101
|
+
// Appliances
|
|
102
|
+
// RVC optional clusters (RvcCleanMode, ServiceArea) are added dynamically in matterServer
|
|
103
|
+
// based on whether they're defined in the accessory configuration
|
|
104
|
+
RoboticVacuumCleaner: devices.RoboticVacuumCleanerDevice,
|
|
105
|
+
// Other
|
|
106
|
+
GenericSwitch: devices.GenericSwitchDevice,
|
|
107
|
+
Pump: devices.PumpDevice,
|
|
108
|
+
RoomAirConditioner: devices.RoomAirConditionerDevice,
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Matter Cluster Names
|
|
112
|
+
* Commonly used cluster names for type safety and autocomplete
|
|
113
|
+
* Use these with api.updateMatterAccessoryState() and api.getAccessoryState()
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```typescript
|
|
117
|
+
* // With autocomplete and type safety:
|
|
118
|
+
* api.updateMatterAccessoryState(uuid, api.matterClusterNames.OnOff, { onOff: true })
|
|
119
|
+
* api.getAccessoryState(uuid, api.matterClusterNames.LevelControl)
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export const clusterNames = {
|
|
123
|
+
// Control Clusters
|
|
124
|
+
OnOff: 'onOff',
|
|
125
|
+
LevelControl: 'levelControl',
|
|
126
|
+
ColorControl: 'colorControl',
|
|
127
|
+
DoorLock: 'doorLock',
|
|
128
|
+
WindowCovering: 'windowCovering',
|
|
129
|
+
Thermostat: 'thermostat',
|
|
130
|
+
FanControl: 'fanControl',
|
|
131
|
+
// Sensor Clusters
|
|
132
|
+
TemperatureMeasurement: 'temperatureMeasurement',
|
|
133
|
+
RelativeHumidityMeasurement: 'relativeHumidityMeasurement',
|
|
134
|
+
IlluminanceMeasurement: 'illuminanceMeasurement',
|
|
135
|
+
OccupancySensing: 'occupancySensing',
|
|
136
|
+
BooleanState: 'booleanState',
|
|
137
|
+
SmokeCoAlarm: 'smokeCoAlarm',
|
|
138
|
+
// Robotic Vacuum Cleaner Clusters
|
|
139
|
+
RvcRunMode: 'rvcRunMode',
|
|
140
|
+
RvcOperationalState: 'rvcOperationalState',
|
|
141
|
+
RvcCleanMode: 'rvcCleanMode',
|
|
142
|
+
ServiceArea: 'serviceArea',
|
|
143
|
+
// Pump & Other
|
|
144
|
+
PumpConfigurationAndControl: 'pumpConfigurationAndControl',
|
|
145
|
+
// Identification
|
|
146
|
+
Identify: 'identify',
|
|
147
|
+
// Device Information (read-only, set during registration)
|
|
148
|
+
BasicInformation: 'basicInformation',
|
|
149
|
+
BridgedDeviceBasicInformation: 'bridgedDeviceBasicInformation',
|
|
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
|
+
}
|
|
174
|
+
//# sourceMappingURL=matterTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matterTypes.js","sourceRoot":"","sources":["../../src/matter/matterTypes.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -32,6 +32,8 @@ export declare class Server {
|
|
|
32
32
|
private readonly externalPortService;
|
|
33
33
|
private readonly config;
|
|
34
34
|
private readonly childBridges;
|
|
35
|
+
private matterServer?;
|
|
36
|
+
private readonly externalMatterServers;
|
|
35
37
|
private serverStatus;
|
|
36
38
|
constructor(options?: HomebridgeOptions);
|
|
37
39
|
/**
|
|
@@ -40,8 +42,28 @@ export declare class Server {
|
|
|
40
42
|
*/
|
|
41
43
|
private setServerStatus;
|
|
42
44
|
start(): Promise<void>;
|
|
43
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Initialize Matter server for main bridge if enabled
|
|
47
|
+
*/
|
|
48
|
+
private initializeMatterServer;
|
|
49
|
+
teardown(): Promise<void>;
|
|
44
50
|
private publishBridge;
|
|
51
|
+
private handlePublishExternalAccessories;
|
|
52
|
+
/**
|
|
53
|
+
* Handle external Matter accessories - each gets its own dedicated Matter server
|
|
54
|
+
* This is required for devices like Robotic Vacuum Cleaners that Apple Home
|
|
55
|
+
* requires to be on their own bridge.
|
|
56
|
+
*/
|
|
57
|
+
private handlePublishExternalMatterAccessories;
|
|
58
|
+
private handleRegisterPlatformAccessories;
|
|
59
|
+
private handleUnregisterPlatformAccessories;
|
|
60
|
+
private handleRegisterMatterPlatformAccessories;
|
|
61
|
+
private handleUnregisterMatterPlatformAccessories;
|
|
62
|
+
private handleUpdateMatterAccessoryState;
|
|
63
|
+
/**
|
|
64
|
+
* Restore cached Matter accessories (matching HAP pattern)
|
|
65
|
+
*/
|
|
66
|
+
private restoreCachedMatterAccessories;
|
|
45
67
|
private static loadConfig;
|
|
46
68
|
private loadAccessories;
|
|
47
69
|
private loadPlatforms;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAqCA,MAAM,WAAW,iBAAiB;IAChC,6BAA6B,CAAC,EAAE,OAAO,CAAA;IACvC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAGD,0BAAkB,YAAY;IAC5B;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,EAAE,OAAO;IAET;;OAEG;IACH,IAAI,SAAS;CACd;AAED,qBAAa,MAAM;IAwBf,OAAO,CAAC,OAAO;IAvBjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAIzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6C;IAG1E,OAAO,CAAC,YAAY,CAAC,CAAc;IAInC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuC;IAG7E,OAAO,CAAC,YAAY,CAAqC;gBAG/C,OAAO,GAAE,iBAAsB;IAmEzC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAsCV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCnC;;OAEG;YACW,sBAAsB;IAuGvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BtC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gCAAgC;IAMxC;;;;OAIG;YACW,sCAAsC;IAyFpD,OAAO,CAAC,iCAAiC;IAKzC,OAAO,CAAC,mCAAmC;IAK3C,OAAO,CAAC,uCAAuC;IAU/C,OAAO,CAAC,yCAAyC;IAUjD,OAAO,CAAC,gCAAgC;IAUxC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IA8CtC,OAAO,CAAC,MAAM,CAAC,UAAU;IAiJzB,OAAO,CAAC,eAAe;IAoGvB,OAAO,CAAC,aAAa;IA4FrB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyCjC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAuClC,OAAO,CAAC,cAAc;CAqBvB"}
|