homebridge 2.0.0-alpha.5 → 2.0.0-alpha.51
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/README.md +1 -1
- package/bin/homebridge.js +22 -0
- package/dist/api.d.ts +219 -3
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +79 -0
- package/dist/api.js.map +1 -1
- package/dist/bridgeService.d.ts +10 -3
- package/dist/bridgeService.d.ts.map +1 -1
- package/dist/bridgeService.js +9 -5
- package/dist/bridgeService.js.map +1 -1
- package/dist/childBridgeFork.d.ts +17 -2
- package/dist/childBridgeFork.d.ts.map +1 -1
- package/dist/childBridgeFork.js +161 -4
- package/dist/childBridgeFork.js.map +1 -1
- package/dist/childBridgeService.d.ts +21 -0
- package/dist/childBridgeService.d.ts.map +1 -1
- package/dist/childBridgeService.js +72 -25
- package/dist/childBridgeService.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -2
- package/dist/cli.js.map +1 -1
- package/dist/externalPortService.js.map +1 -1
- package/dist/index.d.ts +48 -2
- 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 +51 -0
- package/dist/matter/index.d.ts.map +1 -0
- package/dist/matter/index.js +11 -0
- package/dist/matter/index.js.map +1 -0
- package/dist/matter/matterAccessoryCache.d.ts +77 -0
- package/dist/matter/matterAccessoryCache.d.ts.map +1 -0
- package/dist/matter/matterAccessoryCache.js +176 -0
- package/dist/matter/matterAccessoryCache.js.map +1 -0
- package/dist/matter/matterBehaviors.d.ts +127 -0
- package/dist/matter/matterBehaviors.d.ts.map +1 -0
- package/dist/matter/matterBehaviors.js +611 -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 +94 -0
- package/dist/matter/matterErrorHandler.d.ts.map +1 -0
- package/dist/matter/matterErrorHandler.js +485 -0
- package/dist/matter/matterErrorHandler.js.map +1 -0
- package/dist/matter/matterLogFormatter.d.ts +18 -0
- package/dist/matter/matterLogFormatter.d.ts.map +1 -0
- package/dist/matter/matterLogFormatter.js +128 -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 +250 -0
- package/dist/matter/matterNetworkMonitor.js.map +1 -0
- package/dist/matter/matterServer.d.ts +642 -0
- package/dist/matter/matterServer.d.ts.map +1 -0
- package/dist/matter/matterServer.js +1535 -0
- package/dist/matter/matterServer.js.map +1 -0
- package/dist/matter/matterSharedTypes.d.ts +165 -0
- package/dist/matter/matterSharedTypes.d.ts.map +1 -0
- package/dist/matter/matterSharedTypes.js +51 -0
- package/dist/matter/matterSharedTypes.js.map +1 -0
- package/dist/matter/matterStorage.d.ts +126 -0
- package/dist/matter/matterStorage.d.ts.map +1 -0
- package/dist/matter/matterStorage.js +419 -0
- package/dist/matter/matterStorage.js.map +1 -0
- package/dist/matter/matterTypes.d.ts +612 -0
- package/dist/matter/matterTypes.d.ts.map +1 -0
- package/dist/matter/matterTypes.js +148 -0
- package/dist/matter/matterTypes.js.map +1 -0
- package/dist/platformAccessory.d.ts +1 -0
- package/dist/platformAccessory.d.ts.map +1 -1
- package/dist/platformAccessory.js +8 -1
- package/dist/platformAccessory.js.map +1 -1
- package/dist/plugin.d.ts +0 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +9 -12
- package/dist/plugin.js.map +1 -1
- package/dist/pluginManager.d.ts.map +1 -1
- package/dist/pluginManager.js +22 -21
- package/dist/pluginManager.js.map +1 -1
- package/dist/server.d.ts +16 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +276 -8
- package/dist/server.js.map +1 -1
- package/dist/storageService.js +8 -8
- package/dist/storageService.js.map +1 -1
- package/dist/user.d.ts +1 -0
- package/dist/user.d.ts.map +1 -1
- package/dist/user.js +10 -7
- package/dist/user.js.map +1 -1
- package/dist/util/mac.d.ts.map +1 -1
- package/dist/util/mac.js +2 -2
- package/dist/util/mac.js.map +1 -1
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +25 -26
- package/bin/homebridge +0 -19
|
@@ -0,0 +1,612 @@
|
|
|
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 type { Endpoint, EndpointType } from '@matter/main';
|
|
8
|
+
import * as clusters from '@matter/main/clusters';
|
|
9
|
+
import * as devices from '@matter/main/devices';
|
|
10
|
+
/**
|
|
11
|
+
* Matter command handler function type
|
|
12
|
+
*
|
|
13
|
+
* Handlers can be synchronous or asynchronous (returning a Promise).
|
|
14
|
+
* The args parameter contains the command arguments passed by Matter.js (optional).
|
|
15
|
+
*/
|
|
16
|
+
export type MatterCommandHandler<TArgs = unknown> = (args?: TArgs) => Promise<void> | void;
|
|
17
|
+
/**
|
|
18
|
+
* Matter cluster handlers interface
|
|
19
|
+
*
|
|
20
|
+
* Maps command names to their handler functions.
|
|
21
|
+
* Each command can have custom argument types.
|
|
22
|
+
*/
|
|
23
|
+
export interface MatterClusterHandlers {
|
|
24
|
+
[commandName: string]: MatterCommandHandler<any>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Matter Accessory - Plugin API Interface
|
|
28
|
+
*
|
|
29
|
+
* This is the main interface that plugin developers use to register
|
|
30
|
+
* Matter accessories with Homebridge.
|
|
31
|
+
*/
|
|
32
|
+
export interface MatterAccessory<T = Record<string, any>> {
|
|
33
|
+
/** Unique identifier for this accessory (must be unique across all accessories) */
|
|
34
|
+
uuid: string;
|
|
35
|
+
/** Display name for the accessory */
|
|
36
|
+
displayName: string;
|
|
37
|
+
/** Matter device type (e.g., OnOffLightDevice, DimmableLightDevice, etc.) */
|
|
38
|
+
deviceType: EndpointType;
|
|
39
|
+
/** Serial number for the device */
|
|
40
|
+
serialNumber: string;
|
|
41
|
+
/** Manufacturer name */
|
|
42
|
+
manufacturer: string;
|
|
43
|
+
/** Model name/identifier */
|
|
44
|
+
model: string;
|
|
45
|
+
/** Firmware revision (optional) */
|
|
46
|
+
firmwareRevision?: string;
|
|
47
|
+
/** Hardware revision (optional) */
|
|
48
|
+
hardwareRevision?: string;
|
|
49
|
+
/** Software version (optional) */
|
|
50
|
+
softwareVersion?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Plugin developer storage - persists across restarts
|
|
53
|
+
* This is a way for plugin developers to store custom data with their accessory
|
|
54
|
+
* Similar to `PlatformAccessory.context` for HAP accessories
|
|
55
|
+
*/
|
|
56
|
+
context?: T;
|
|
57
|
+
/**
|
|
58
|
+
* Initial cluster states
|
|
59
|
+
* Key is the cluster name, value is an object of attribute name -> value
|
|
60
|
+
*
|
|
61
|
+
* Example:
|
|
62
|
+
* {
|
|
63
|
+
* onOff: { onOff: true },
|
|
64
|
+
* levelControl: { currentLevel: 127, minLevel: 1, maxLevel: 254 }
|
|
65
|
+
* }
|
|
66
|
+
*/
|
|
67
|
+
clusters: {
|
|
68
|
+
[clusterName: string]: {
|
|
69
|
+
[attributeName: string]: unknown;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Handlers for Matter commands (Home app → Device)
|
|
74
|
+
*
|
|
75
|
+
* These handlers are called when a user controls the accessory via the Home app.
|
|
76
|
+
* Use handlers to send commands to your actual device (cloud API, local network, etc.).
|
|
77
|
+
*/
|
|
78
|
+
handlers?: {
|
|
79
|
+
[clusterName: string]: MatterClusterHandlers;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Optional: Get current state handler
|
|
83
|
+
* Called when a Matter controller reads an attribute
|
|
84
|
+
* If not provided, the last set value is returned
|
|
85
|
+
*/
|
|
86
|
+
getState?: (cluster: string, attribute: string) => Promise<any> | any;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Matter Configuration (for bridge or child bridge)
|
|
90
|
+
*/
|
|
91
|
+
export interface MatterConfig extends Record<string, unknown> {
|
|
92
|
+
/** Port for Matter server (optional, will auto-assign if not specified) */
|
|
93
|
+
port?: number;
|
|
94
|
+
/** Name for the Matter bridge (optional) */
|
|
95
|
+
name?: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Matter Fabric Information
|
|
99
|
+
* Represents a commissioned controller (fabric) on the Matter bridge
|
|
100
|
+
*/
|
|
101
|
+
export interface MatterFabricInfo {
|
|
102
|
+
fabricIndex: number;
|
|
103
|
+
fabricId: string;
|
|
104
|
+
nodeId: string;
|
|
105
|
+
rootVendorId: number;
|
|
106
|
+
label?: string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Matter Server Events
|
|
110
|
+
* Event types emitted by the Matter server for commissioning lifecycle
|
|
111
|
+
*/
|
|
112
|
+
export interface MatterServerEvents {
|
|
113
|
+
/** Emitted when the bridge is commissioned for the first time */
|
|
114
|
+
'commissioned': (fabricInfo: MatterFabricInfo) => void;
|
|
115
|
+
/** Emitted when the last fabric is removed (bridge becomes uncommissioned) */
|
|
116
|
+
'decommissioned': () => void;
|
|
117
|
+
/** Emitted when a new fabric (controller) is added */
|
|
118
|
+
'fabric-added': (fabricInfo: MatterFabricInfo) => void;
|
|
119
|
+
/** Emitted when a fabric (controller) is removed */
|
|
120
|
+
'fabric-removed': (fabricInfo: MatterFabricInfo) => void;
|
|
121
|
+
/** Emitted whenever commissioning state changes (any fabric added/removed) */
|
|
122
|
+
'commissioning-changed': (commissioned: boolean, fabricCount: number) => void;
|
|
123
|
+
/** Emitted when an accessory is registered */
|
|
124
|
+
'accessory-registered': (accessory: MatterAccessory) => void;
|
|
125
|
+
/** Emitted when an accessory is unregistered */
|
|
126
|
+
'accessory-unregistered': (uuid: string) => void;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Internal Matter accessory representation
|
|
130
|
+
* (Used internally by MatterServer)
|
|
131
|
+
*/
|
|
132
|
+
export interface InternalMatterAccessory extends MatterAccessory {
|
|
133
|
+
_associatedPlugin?: string;
|
|
134
|
+
_associatedPlatform?: string;
|
|
135
|
+
endpoint?: Endpoint;
|
|
136
|
+
registered: boolean;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Matter error type enum (for error handler categorization)
|
|
140
|
+
*/
|
|
141
|
+
export declare enum MatterErrorType {
|
|
142
|
+
INITIALIZATION = "INITIALIZATION",
|
|
143
|
+
NETWORK = "NETWORK",
|
|
144
|
+
COMMISSIONING = "COMMISSIONING",
|
|
145
|
+
DEVICE_SYNC = "DEVICE_SYNC",
|
|
146
|
+
SERVER = "SERVER",
|
|
147
|
+
STORAGE = "STORAGE",
|
|
148
|
+
CONFIGURATION = "CONFIGURATION",
|
|
149
|
+
DEVICE_ERROR = "DEVICE_ERROR",
|
|
150
|
+
UNKNOWN = "UNKNOWN"
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Matter error details interface
|
|
154
|
+
*/
|
|
155
|
+
export interface MatterErrorDetails {
|
|
156
|
+
type?: MatterErrorType;
|
|
157
|
+
recoverable?: boolean;
|
|
158
|
+
code?: string;
|
|
159
|
+
context?: string;
|
|
160
|
+
originalError?: Error;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Matter error types
|
|
164
|
+
*/
|
|
165
|
+
export declare class MatterError extends Error {
|
|
166
|
+
readonly code: string;
|
|
167
|
+
readonly details?: MatterErrorDetails | undefined;
|
|
168
|
+
readonly type: MatterErrorType;
|
|
169
|
+
readonly timestamp: Date;
|
|
170
|
+
readonly recoverable: boolean;
|
|
171
|
+
constructor(message: string, code: string, details?: MatterErrorDetails | undefined, type?: MatterErrorType, recoverable?: boolean);
|
|
172
|
+
}
|
|
173
|
+
export declare class MatterCommissioningError extends MatterError {
|
|
174
|
+
constructor(message: string, details?: MatterErrorDetails);
|
|
175
|
+
}
|
|
176
|
+
export declare class MatterStorageError extends MatterError {
|
|
177
|
+
constructor(message: string, details?: MatterErrorDetails);
|
|
178
|
+
}
|
|
179
|
+
export declare class MatterDeviceError extends MatterError {
|
|
180
|
+
constructor(message: string, details?: MatterErrorDetails);
|
|
181
|
+
}
|
|
182
|
+
export declare class MatterNetworkError extends MatterError {
|
|
183
|
+
constructor(message: string, details?: MatterErrorDetails);
|
|
184
|
+
}
|
|
185
|
+
export { clusters };
|
|
186
|
+
export { devices };
|
|
187
|
+
/**
|
|
188
|
+
* Friendly device type names for the Plugin API
|
|
189
|
+
* Maps simplified names to actual Matter.js device types
|
|
190
|
+
*/
|
|
191
|
+
export declare const deviceTypes: {
|
|
192
|
+
readonly OnOffLight: devices.OnOffLightDevice;
|
|
193
|
+
readonly DimmableLight: devices.DimmableLightDevice;
|
|
194
|
+
readonly ColorTemperatureLight: devices.ColorTemperatureLightDevice;
|
|
195
|
+
readonly ExtendedColorLight: devices.ExtendedColorLightDevice;
|
|
196
|
+
readonly OnOffSwitch: devices.OnOffLightSwitchDevice;
|
|
197
|
+
readonly OnOffOutlet: devices.OnOffPlugInUnitDevice;
|
|
198
|
+
readonly DimmableOutlet: devices.DimmablePlugInUnitDevice;
|
|
199
|
+
readonly TemperatureSensor: devices.TemperatureSensorDevice;
|
|
200
|
+
readonly HumiditySensor: devices.HumiditySensorDevice;
|
|
201
|
+
readonly LightSensor: devices.LightSensorDevice;
|
|
202
|
+
readonly MotionSensor: devices.OccupancySensorDevice;
|
|
203
|
+
readonly ContactSensor: devices.ContactSensorDevice;
|
|
204
|
+
readonly LeakSensor: devices.WaterLeakDetectorDevice;
|
|
205
|
+
readonly SmokeSensor: devices.SmokeCoAlarmDevice;
|
|
206
|
+
readonly Thermostat: import("@matter/main").MutableEndpoint.With<EndpointType.For<{
|
|
207
|
+
readonly name: "Thermostat";
|
|
208
|
+
readonly deviceType: 769;
|
|
209
|
+
readonly deviceRevision: 4;
|
|
210
|
+
readonly requirements: typeof devices.ThermostatRequirements;
|
|
211
|
+
readonly behaviors: {
|
|
212
|
+
readonly identify: typeof import("@matter/node/behaviors").IdentifyServer;
|
|
213
|
+
};
|
|
214
|
+
}>, import("@matter/main").SupportedBehaviors.With<{
|
|
215
|
+
readonly identify: typeof import("@matter/node/behaviors").IdentifyServer;
|
|
216
|
+
}, readonly [import("@matter/main").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<import("@matter/types").ClusterType.Of<{
|
|
217
|
+
readonly id: 513;
|
|
218
|
+
readonly name: "Thermostat";
|
|
219
|
+
readonly revision: 8;
|
|
220
|
+
readonly features: {
|
|
221
|
+
readonly heating: import("@matter/types").BitFlag;
|
|
222
|
+
readonly cooling: import("@matter/types").BitFlag;
|
|
223
|
+
readonly occupancy: import("@matter/types").BitFlag;
|
|
224
|
+
readonly scheduleConfiguration: import("@matter/types").BitFlag;
|
|
225
|
+
readonly setback: import("@matter/types").BitFlag;
|
|
226
|
+
readonly autoMode: import("@matter/types").BitFlag;
|
|
227
|
+
readonly localTemperatureNotExposed: import("@matter/types").BitFlag;
|
|
228
|
+
readonly matterScheduleConfiguration: import("@matter/types").BitFlag;
|
|
229
|
+
readonly presets: import("@matter/types").BitFlag;
|
|
230
|
+
};
|
|
231
|
+
readonly attributes: {
|
|
232
|
+
readonly localTemperature: import("@matter/types").Attribute<number | null, any>;
|
|
233
|
+
readonly outdoorTemperature: import("@matter/types").OptionalAttribute<number | null, any>;
|
|
234
|
+
readonly hvacSystemTypeConfiguration: import("@matter/types").OptionalWritableAttribute<import("@matter/types").TypeFromPartialBitSchema<{
|
|
235
|
+
coolingStage: import("@matter/types").BitField;
|
|
236
|
+
heatingStage: import("@matter/types").BitField;
|
|
237
|
+
heatingIsHeatPump: import("@matter/types").BitFlag;
|
|
238
|
+
heatingUsesFuel: import("@matter/types").BitFlag;
|
|
239
|
+
}>, any>;
|
|
240
|
+
readonly remoteSensing: import("@matter/types").OptionalWritableAttribute<import("@matter/types").TypeFromPartialBitSchema<{
|
|
241
|
+
localTemperature: import("@matter/types").BitFlag;
|
|
242
|
+
outdoorTemperature: import("@matter/types").BitFlag;
|
|
243
|
+
occupancy: import("@matter/types").BitFlag;
|
|
244
|
+
}>, any>;
|
|
245
|
+
readonly controlSequenceOfOperation: import("@matter/types").WritableAttribute<clusters.Thermostat.ControlSequenceOfOperation, any>;
|
|
246
|
+
readonly systemMode: import("@matter/types").WritableAttribute<clusters.Thermostat.SystemMode, any>;
|
|
247
|
+
readonly temperatureSetpointHold: import("@matter/types").OptionalWritableAttribute<clusters.Thermostat.TemperatureSetpointHold, any>;
|
|
248
|
+
readonly temperatureSetpointHoldDuration: import("@matter/types").OptionalWritableAttribute<number | null, any>;
|
|
249
|
+
readonly thermostatProgrammingOperationMode: import("@matter/types").OptionalWritableAttribute<import("@matter/types").TypeFromPartialBitSchema<{
|
|
250
|
+
scheduleActive: import("@matter/types").BitFlag;
|
|
251
|
+
autoRecovery: import("@matter/types").BitFlag;
|
|
252
|
+
economy: import("@matter/types").BitFlag;
|
|
253
|
+
}>, any>;
|
|
254
|
+
readonly thermostatRunningState: import("@matter/types").OptionalAttribute<import("@matter/types").TypeFromPartialBitSchema<{
|
|
255
|
+
heat: import("@matter/types").BitFlag;
|
|
256
|
+
cool: import("@matter/types").BitFlag;
|
|
257
|
+
fan: import("@matter/types").BitFlag;
|
|
258
|
+
heatStage2: import("@matter/types").BitFlag;
|
|
259
|
+
coolStage2: import("@matter/types").BitFlag;
|
|
260
|
+
fanStage2: import("@matter/types").BitFlag;
|
|
261
|
+
fanStage3: import("@matter/types").BitFlag;
|
|
262
|
+
}>, any>;
|
|
263
|
+
readonly setpointChangeSource: import("@matter/types").OptionalAttribute<clusters.Thermostat.SetpointChangeSource, any>;
|
|
264
|
+
readonly setpointChangeAmount: import("@matter/types").OptionalAttribute<number | null, any>;
|
|
265
|
+
readonly setpointChangeSourceTimestamp: import("@matter/types").OptionalAttribute<number, any>;
|
|
266
|
+
readonly emergencyHeatDelta: import("@matter/types").OptionalWritableAttribute<number, any>;
|
|
267
|
+
readonly acType: import("@matter/types").OptionalWritableAttribute<clusters.Thermostat.AcType, any>;
|
|
268
|
+
readonly acCapacity: import("@matter/types").OptionalWritableAttribute<number, any>;
|
|
269
|
+
readonly acRefrigerantType: import("@matter/types").OptionalWritableAttribute<clusters.Thermostat.AcRefrigerantType, any>;
|
|
270
|
+
readonly acCompressorType: import("@matter/types").OptionalWritableAttribute<clusters.Thermostat.AcCompressorType, any>;
|
|
271
|
+
readonly acErrorCode: import("@matter/types").OptionalWritableAttribute<import("@matter/types").TypeFromPartialBitSchema<{
|
|
272
|
+
compressorFail: import("@matter/types").BitFlag;
|
|
273
|
+
roomSensorFail: import("@matter/types").BitFlag;
|
|
274
|
+
outdoorSensorFail: import("@matter/types").BitFlag;
|
|
275
|
+
coilSensorFail: import("@matter/types").BitFlag;
|
|
276
|
+
fanFail: import("@matter/types").BitFlag;
|
|
277
|
+
}>, any>;
|
|
278
|
+
readonly acLouverPosition: import("@matter/types").OptionalWritableAttribute<clusters.Thermostat.AcLouverPosition, any>;
|
|
279
|
+
readonly acCoilTemperature: import("@matter/types").OptionalAttribute<number | null, any>;
|
|
280
|
+
readonly acCapacityFormat: import("@matter/types").OptionalWritableAttribute<clusters.Thermostat.AcCapacityFormat, any>;
|
|
281
|
+
readonly setpointHoldExpiryTimestamp: import("@matter/types").OptionalAttribute<number | null, any>;
|
|
282
|
+
};
|
|
283
|
+
readonly commands: {
|
|
284
|
+
readonly setpointRaiseLower: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
|
|
285
|
+
mode: import("@matter/types").FieldType<clusters.Thermostat.SetpointRaiseLowerMode>;
|
|
286
|
+
amount: import("@matter/types").FieldType<number>;
|
|
287
|
+
}>, void, any>;
|
|
288
|
+
};
|
|
289
|
+
readonly extensions: readonly [{
|
|
290
|
+
readonly flags: {
|
|
291
|
+
readonly occupancy: true;
|
|
292
|
+
};
|
|
293
|
+
readonly component: {
|
|
294
|
+
readonly attributes: {
|
|
295
|
+
readonly occupancy: import("@matter/types").Attribute<import("@matter/types").TypeFromPartialBitSchema<{
|
|
296
|
+
occupied: import("@matter/types").BitFlag;
|
|
297
|
+
}>, any>;
|
|
298
|
+
};
|
|
299
|
+
};
|
|
300
|
+
}, {
|
|
301
|
+
readonly flags: {
|
|
302
|
+
readonly heating: true;
|
|
303
|
+
};
|
|
304
|
+
readonly component: {
|
|
305
|
+
readonly attributes: {
|
|
306
|
+
readonly absMinHeatSetpointLimit: import("@matter/types").OptionalFixedAttribute<number, any>;
|
|
307
|
+
readonly absMaxHeatSetpointLimit: import("@matter/types").OptionalFixedAttribute<number, any>;
|
|
308
|
+
readonly piHeatingDemand: import("@matter/types").OptionalAttribute<number, any>;
|
|
309
|
+
readonly occupiedHeatingSetpoint: import("@matter/types").WritableAttribute<number, any>;
|
|
310
|
+
readonly minHeatSetpointLimit: import("@matter/types").OptionalWritableAttribute<number, any>;
|
|
311
|
+
readonly maxHeatSetpointLimit: import("@matter/types").OptionalWritableAttribute<number, any>;
|
|
312
|
+
};
|
|
313
|
+
};
|
|
314
|
+
}, {
|
|
315
|
+
readonly flags: {
|
|
316
|
+
readonly cooling: true;
|
|
317
|
+
};
|
|
318
|
+
readonly component: {
|
|
319
|
+
readonly attributes: {
|
|
320
|
+
readonly absMinCoolSetpointLimit: import("@matter/types").OptionalFixedAttribute<number, any>;
|
|
321
|
+
readonly absMaxCoolSetpointLimit: import("@matter/types").OptionalFixedAttribute<number, any>;
|
|
322
|
+
readonly piCoolingDemand: import("@matter/types").OptionalAttribute<number, any>;
|
|
323
|
+
readonly occupiedCoolingSetpoint: import("@matter/types").WritableAttribute<number, any>;
|
|
324
|
+
readonly minCoolSetpointLimit: import("@matter/types").OptionalWritableAttribute<number, any>;
|
|
325
|
+
readonly maxCoolSetpointLimit: import("@matter/types").OptionalWritableAttribute<number, any>;
|
|
326
|
+
};
|
|
327
|
+
};
|
|
328
|
+
}, {
|
|
329
|
+
readonly flags: {
|
|
330
|
+
readonly localTemperatureNotExposed: false;
|
|
331
|
+
};
|
|
332
|
+
readonly component: {
|
|
333
|
+
readonly attributes: {
|
|
334
|
+
readonly localTemperatureCalibration: import("@matter/types").OptionalWritableAttribute<number, any>;
|
|
335
|
+
};
|
|
336
|
+
};
|
|
337
|
+
}, {
|
|
338
|
+
readonly flags: {
|
|
339
|
+
readonly cooling: true;
|
|
340
|
+
readonly occupancy: true;
|
|
341
|
+
};
|
|
342
|
+
readonly component: {
|
|
343
|
+
readonly attributes: {
|
|
344
|
+
readonly unoccupiedCoolingSetpoint: import("@matter/types").WritableAttribute<number, any>;
|
|
345
|
+
};
|
|
346
|
+
};
|
|
347
|
+
}, {
|
|
348
|
+
readonly flags: {
|
|
349
|
+
readonly heating: true;
|
|
350
|
+
readonly occupancy: true;
|
|
351
|
+
};
|
|
352
|
+
readonly component: {
|
|
353
|
+
readonly attributes: {
|
|
354
|
+
readonly unoccupiedHeatingSetpoint: import("@matter/types").WritableAttribute<number, any>;
|
|
355
|
+
};
|
|
356
|
+
};
|
|
357
|
+
}, {
|
|
358
|
+
readonly flags: {
|
|
359
|
+
readonly autoMode: true;
|
|
360
|
+
};
|
|
361
|
+
readonly component: {
|
|
362
|
+
readonly attributes: {
|
|
363
|
+
readonly minSetpointDeadBand: import("@matter/types").WritableAttribute<number, any>;
|
|
364
|
+
readonly thermostatRunningMode: import("@matter/types").OptionalAttribute<clusters.Thermostat.ThermostatRunningMode, any>;
|
|
365
|
+
};
|
|
366
|
+
};
|
|
367
|
+
}, {
|
|
368
|
+
readonly flags: {
|
|
369
|
+
readonly scheduleConfiguration: true;
|
|
370
|
+
};
|
|
371
|
+
readonly component: {
|
|
372
|
+
readonly attributes: {
|
|
373
|
+
readonly startOfWeek: import("@matter/types").FixedAttribute<clusters.Thermostat.StartOfWeek, any>;
|
|
374
|
+
readonly numberOfWeeklyTransitions: import("@matter/types").FixedAttribute<number, any>;
|
|
375
|
+
readonly numberOfDailyTransitions: import("@matter/types").FixedAttribute<number, any>;
|
|
376
|
+
};
|
|
377
|
+
readonly commands: {
|
|
378
|
+
readonly setWeeklySchedule: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
|
|
379
|
+
numberOfTransitionsForSequence: import("@matter/types").FieldType<number>;
|
|
380
|
+
dayOfWeekForSequence: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{
|
|
381
|
+
sunday: import("@matter/types").BitFlag;
|
|
382
|
+
monday: import("@matter/types").BitFlag;
|
|
383
|
+
tuesday: import("@matter/types").BitFlag;
|
|
384
|
+
wednesday: import("@matter/types").BitFlag;
|
|
385
|
+
thursday: import("@matter/types").BitFlag;
|
|
386
|
+
friday: import("@matter/types").BitFlag;
|
|
387
|
+
saturday: import("@matter/types").BitFlag;
|
|
388
|
+
away: import("@matter/types").BitFlag;
|
|
389
|
+
}>>;
|
|
390
|
+
modeForSequence: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{
|
|
391
|
+
heatSetpointPresent: import("@matter/types").BitFlag;
|
|
392
|
+
coolSetpointPresent: import("@matter/types").BitFlag;
|
|
393
|
+
}>>;
|
|
394
|
+
transitions: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
|
|
395
|
+
transitionTime: import("@matter/types").FieldType<number>;
|
|
396
|
+
heatSetpoint: import("@matter/types").FieldType<number | null>;
|
|
397
|
+
coolSetpoint: import("@matter/types").FieldType<number | null>;
|
|
398
|
+
}>[]>;
|
|
399
|
+
}>, void, any>;
|
|
400
|
+
readonly getWeeklySchedule: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
|
|
401
|
+
daysToReturn: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{
|
|
402
|
+
sunday: import("@matter/types").BitFlag;
|
|
403
|
+
monday: import("@matter/types").BitFlag;
|
|
404
|
+
tuesday: import("@matter/types").BitFlag;
|
|
405
|
+
wednesday: import("@matter/types").BitFlag;
|
|
406
|
+
thursday: import("@matter/types").BitFlag;
|
|
407
|
+
friday: import("@matter/types").BitFlag;
|
|
408
|
+
saturday: import("@matter/types").BitFlag;
|
|
409
|
+
away: import("@matter/types").BitFlag;
|
|
410
|
+
}>>;
|
|
411
|
+
modeToReturn: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{
|
|
412
|
+
heatSetpointPresent: import("@matter/types").BitFlag;
|
|
413
|
+
coolSetpointPresent: import("@matter/types").BitFlag;
|
|
414
|
+
}>>;
|
|
415
|
+
}>, import("@matter/types").TypeFromFields<{
|
|
416
|
+
numberOfTransitionsForSequence: import("@matter/types").FieldType<number>;
|
|
417
|
+
dayOfWeekForSequence: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{
|
|
418
|
+
sunday: import("@matter/types").BitFlag;
|
|
419
|
+
monday: import("@matter/types").BitFlag;
|
|
420
|
+
tuesday: import("@matter/types").BitFlag;
|
|
421
|
+
wednesday: import("@matter/types").BitFlag;
|
|
422
|
+
thursday: import("@matter/types").BitFlag;
|
|
423
|
+
friday: import("@matter/types").BitFlag;
|
|
424
|
+
saturday: import("@matter/types").BitFlag;
|
|
425
|
+
away: import("@matter/types").BitFlag;
|
|
426
|
+
}>>;
|
|
427
|
+
modeForSequence: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{
|
|
428
|
+
heatSetpointPresent: import("@matter/types").BitFlag;
|
|
429
|
+
coolSetpointPresent: import("@matter/types").BitFlag;
|
|
430
|
+
}>>;
|
|
431
|
+
transitions: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
|
|
432
|
+
transitionTime: import("@matter/types").FieldType<number>;
|
|
433
|
+
heatSetpoint: import("@matter/types").FieldType<number | null>;
|
|
434
|
+
coolSetpoint: import("@matter/types").FieldType<number | null>;
|
|
435
|
+
}>[]>;
|
|
436
|
+
}>, any>;
|
|
437
|
+
readonly clearWeeklySchedule: import("@matter/types").Command<void, void, any>;
|
|
438
|
+
};
|
|
439
|
+
};
|
|
440
|
+
}, {
|
|
441
|
+
readonly flags: {
|
|
442
|
+
readonly setback: true;
|
|
443
|
+
};
|
|
444
|
+
readonly component: {
|
|
445
|
+
readonly attributes: {
|
|
446
|
+
readonly occupiedSetback: import("@matter/types").WritableAttribute<number | null, any>;
|
|
447
|
+
readonly occupiedSetbackMin: import("@matter/types").FixedAttribute<number | null, any>;
|
|
448
|
+
readonly occupiedSetbackMax: import("@matter/types").FixedAttribute<number | null, any>;
|
|
449
|
+
};
|
|
450
|
+
};
|
|
451
|
+
}, {
|
|
452
|
+
readonly flags: {
|
|
453
|
+
readonly setback: true;
|
|
454
|
+
readonly occupancy: true;
|
|
455
|
+
};
|
|
456
|
+
readonly component: {
|
|
457
|
+
readonly attributes: {
|
|
458
|
+
readonly unoccupiedSetback: import("@matter/types").WritableAttribute<number | null, any>;
|
|
459
|
+
readonly unoccupiedSetbackMin: import("@matter/types").FixedAttribute<number | null, any>;
|
|
460
|
+
readonly unoccupiedSetbackMax: import("@matter/types").FixedAttribute<number | null, any>;
|
|
461
|
+
};
|
|
462
|
+
};
|
|
463
|
+
}, {
|
|
464
|
+
readonly flags: {
|
|
465
|
+
readonly presets: true;
|
|
466
|
+
};
|
|
467
|
+
readonly component: {
|
|
468
|
+
readonly attributes: {
|
|
469
|
+
readonly presetTypes: import("@matter/types").FixedAttribute<import("@matter/types").TypeFromFields<{
|
|
470
|
+
presetScenario: import("@matter/types").FieldType<clusters.Thermostat.PresetScenario>;
|
|
471
|
+
numberOfPresets: import("@matter/types").FieldType<number>;
|
|
472
|
+
presetTypeFeatures: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{
|
|
473
|
+
automatic: import("@matter/types").BitFlag;
|
|
474
|
+
supportsNames: import("@matter/types").BitFlag;
|
|
475
|
+
}>>;
|
|
476
|
+
}>[], any>;
|
|
477
|
+
readonly numberOfPresets: import("@matter/types").FixedAttribute<number, any>;
|
|
478
|
+
readonly activePresetHandle: import("@matter/types").Attribute<Uint8Array<ArrayBufferLike> | null, any>;
|
|
479
|
+
readonly presets: import("@matter/types").WritableAttribute<import("@matter/types").TypeFromFields<{
|
|
480
|
+
presetHandle: import("@matter/types").FieldType<Uint8Array<ArrayBufferLike> | null>;
|
|
481
|
+
presetScenario: import("@matter/types").FieldType<clusters.Thermostat.PresetScenario>;
|
|
482
|
+
name: import("@matter/types").OptionalFieldType<string | null>;
|
|
483
|
+
coolingSetpoint: import("@matter/types").OptionalFieldType<number>;
|
|
484
|
+
heatingSetpoint: import("@matter/types").OptionalFieldType<number>;
|
|
485
|
+
builtIn: import("@matter/types").FieldType<boolean | null>;
|
|
486
|
+
}>[], any>;
|
|
487
|
+
};
|
|
488
|
+
readonly commands: {
|
|
489
|
+
readonly setActivePresetRequest: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
|
|
490
|
+
presetHandle: import("@matter/types").FieldType<Uint8Array<ArrayBufferLike> | null>;
|
|
491
|
+
}>, void, any>;
|
|
492
|
+
};
|
|
493
|
+
};
|
|
494
|
+
}, {
|
|
495
|
+
readonly flags: {
|
|
496
|
+
readonly matterScheduleConfiguration: true;
|
|
497
|
+
};
|
|
498
|
+
readonly component: {
|
|
499
|
+
readonly attributes: {
|
|
500
|
+
readonly scheduleTypes: import("@matter/types").FixedAttribute<import("@matter/types").TypeFromFields<{
|
|
501
|
+
systemMode: import("@matter/types").FieldType<clusters.Thermostat.SystemMode>;
|
|
502
|
+
numberOfSchedules: import("@matter/types").FieldType<number>;
|
|
503
|
+
scheduleTypeFeatures: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{
|
|
504
|
+
supportsPresets: import("@matter/types").BitFlag;
|
|
505
|
+
supportsSetpoints: import("@matter/types").BitFlag;
|
|
506
|
+
supportsNames: import("@matter/types").BitFlag;
|
|
507
|
+
supportsOff: import("@matter/types").BitFlag;
|
|
508
|
+
}>>;
|
|
509
|
+
}>[], any>;
|
|
510
|
+
readonly numberOfSchedules: import("@matter/types").FixedAttribute<number, any>;
|
|
511
|
+
readonly numberOfScheduleTransitions: import("@matter/types").FixedAttribute<number, any>;
|
|
512
|
+
readonly numberOfScheduleTransitionPerDay: import("@matter/types").FixedAttribute<number | null, any>;
|
|
513
|
+
readonly activeScheduleHandle: import("@matter/types").Attribute<Uint8Array<ArrayBufferLike> | null, any>;
|
|
514
|
+
readonly schedules: import("@matter/types").WritableAttribute<import("@matter/types").TypeFromFields<{
|
|
515
|
+
scheduleHandle: import("@matter/types").FieldType<Uint8Array<ArrayBufferLike> | null>;
|
|
516
|
+
systemMode: import("@matter/types").FieldType<clusters.Thermostat.SystemMode>;
|
|
517
|
+
name: import("@matter/types").OptionalFieldType<string>;
|
|
518
|
+
presetHandle: import("@matter/types").OptionalFieldType<Uint8Array<ArrayBufferLike>>;
|
|
519
|
+
transitions: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
|
|
520
|
+
dayOfWeek: import("@matter/types").FieldType<import("@matter/types").TypeFromPartialBitSchema<{
|
|
521
|
+
sunday: import("@matter/types").BitFlag;
|
|
522
|
+
monday: import("@matter/types").BitFlag;
|
|
523
|
+
tuesday: import("@matter/types").BitFlag;
|
|
524
|
+
wednesday: import("@matter/types").BitFlag;
|
|
525
|
+
thursday: import("@matter/types").BitFlag;
|
|
526
|
+
friday: import("@matter/types").BitFlag;
|
|
527
|
+
saturday: import("@matter/types").BitFlag;
|
|
528
|
+
away: import("@matter/types").BitFlag;
|
|
529
|
+
}>>;
|
|
530
|
+
transitionTime: import("@matter/types").FieldType<number>;
|
|
531
|
+
presetHandle: import("@matter/types").OptionalFieldType<Uint8Array<ArrayBufferLike>>;
|
|
532
|
+
systemMode: import("@matter/types").OptionalFieldType<clusters.Thermostat.SystemMode>;
|
|
533
|
+
coolingSetpoint: import("@matter/types").OptionalFieldType<number>;
|
|
534
|
+
heatingSetpoint: import("@matter/types").OptionalFieldType<number>;
|
|
535
|
+
}>[]>;
|
|
536
|
+
builtIn: import("@matter/types").FieldType<boolean | null>;
|
|
537
|
+
}>[], any>;
|
|
538
|
+
};
|
|
539
|
+
readonly commands: {
|
|
540
|
+
readonly setActiveScheduleRequest: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
|
|
541
|
+
scheduleHandle: import("@matter/types").FieldType<Uint8Array<ArrayBufferLike>>;
|
|
542
|
+
}>, void, any>;
|
|
543
|
+
};
|
|
544
|
+
};
|
|
545
|
+
}, {
|
|
546
|
+
readonly flags: {
|
|
547
|
+
readonly autoMode: true;
|
|
548
|
+
readonly heating: false;
|
|
549
|
+
};
|
|
550
|
+
readonly component: false;
|
|
551
|
+
}, {
|
|
552
|
+
readonly flags: {
|
|
553
|
+
readonly autoMode: true;
|
|
554
|
+
readonly cooling: false;
|
|
555
|
+
};
|
|
556
|
+
readonly component: false;
|
|
557
|
+
}, {
|
|
558
|
+
readonly flags: {
|
|
559
|
+
readonly heating: false;
|
|
560
|
+
readonly cooling: false;
|
|
561
|
+
};
|
|
562
|
+
readonly component: false;
|
|
563
|
+
}];
|
|
564
|
+
}>, readonly ["Heating", "Cooling"]>, typeof import("@matter/node/behaviors").ThermostatServer, import("@matter/node/behaviors").ThermostatInterface>]>>;
|
|
565
|
+
readonly Fan: devices.FanDevice;
|
|
566
|
+
readonly DoorLock: devices.DoorLockDevice;
|
|
567
|
+
readonly WindowCovering: devices.WindowCoveringDevice;
|
|
568
|
+
readonly RoboticVacuumCleaner: devices.RoboticVacuumCleanerDevice;
|
|
569
|
+
readonly GenericSwitch: devices.GenericSwitchDevice;
|
|
570
|
+
readonly Pump: devices.PumpDevice;
|
|
571
|
+
readonly RoomAirConditioner: devices.RoomAirConditionerDevice;
|
|
572
|
+
};
|
|
573
|
+
/**
|
|
574
|
+
* Matter Cluster Names
|
|
575
|
+
* Commonly used cluster names for type safety and autocomplete
|
|
576
|
+
* Use these with api.updateMatterAccessoryState() and api.getAccessoryState()
|
|
577
|
+
*
|
|
578
|
+
* @example
|
|
579
|
+
* ```typescript
|
|
580
|
+
* // With autocomplete and type safety:
|
|
581
|
+
* api.updateMatterAccessoryState(uuid, api.matterClusterNames.OnOff, { onOff: true })
|
|
582
|
+
* api.getAccessoryState(uuid, api.matterClusterNames.LevelControl)
|
|
583
|
+
* ```
|
|
584
|
+
*/
|
|
585
|
+
export declare const clusterNames: {
|
|
586
|
+
readonly OnOff: "onOff";
|
|
587
|
+
readonly LevelControl: "levelControl";
|
|
588
|
+
readonly ColorControl: "colorControl";
|
|
589
|
+
readonly DoorLock: "doorLock";
|
|
590
|
+
readonly WindowCovering: "windowCovering";
|
|
591
|
+
readonly Thermostat: "thermostat";
|
|
592
|
+
readonly FanControl: "fanControl";
|
|
593
|
+
readonly TemperatureMeasurement: "temperatureMeasurement";
|
|
594
|
+
readonly RelativeHumidityMeasurement: "relativeHumidityMeasurement";
|
|
595
|
+
readonly IlluminanceMeasurement: "illuminanceMeasurement";
|
|
596
|
+
readonly OccupancySensing: "occupancySensing";
|
|
597
|
+
readonly BooleanState: "booleanState";
|
|
598
|
+
readonly SmokeCoAlarm: "smokeCoAlarm";
|
|
599
|
+
readonly RvcRunMode: "rvcRunMode";
|
|
600
|
+
readonly RvcOperationalState: "rvcOperationalState";
|
|
601
|
+
readonly RvcCleanMode: "rvcCleanMode";
|
|
602
|
+
readonly PumpConfigurationAndControl: "pumpConfigurationAndControl";
|
|
603
|
+
readonly Identify: "identify";
|
|
604
|
+
readonly BasicInformation: "basicInformation";
|
|
605
|
+
readonly BridgedDeviceBasicInformation: "bridgedDeviceBasicInformation";
|
|
606
|
+
};
|
|
607
|
+
/**
|
|
608
|
+
* Type for Matter cluster names
|
|
609
|
+
* Provides type safety for cluster name strings
|
|
610
|
+
*/
|
|
611
|
+
export type MatterClusterName = typeof clusterNames[keyof typeof clusterNames];
|
|
612
|
+
//# sourceMappingURL=matterTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matterTypes.d.ts","sourceRoot":"","sources":["../../src/matter/matterTypes.ts"],"names":[],"mappings":"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"}
|