homebridge 2.0.0-beta.44 → 2.0.0-beta.46
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 +3 -365
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +13 -85
- package/dist/api.js.map +1 -1
- package/dist/bridgeService.d.ts +0 -25
- package/dist/bridgeService.d.ts.map +1 -1
- package/dist/bridgeService.js +32 -85
- package/dist/bridgeService.js.map +1 -1
- package/dist/childBridgeFork.d.ts +12 -15
- package/dist/childBridgeFork.d.ts.map +1 -1
- package/dist/childBridgeFork.js +152 -83
- package/dist/childBridgeFork.js.map +1 -1
- package/dist/childBridgeService.d.ts +21 -105
- package/dist/childBridgeService.d.ts.map +1 -1
- package/dist/childBridgeService.js +57 -134
- package/dist/childBridgeService.js.map +1 -1
- package/dist/cli.js +0 -2
- package/dist/cli.js.map +1 -1
- package/dist/externalPortService.d.ts +0 -21
- package/dist/externalPortService.d.ts.map +1 -1
- package/dist/externalPortService.js +0 -28
- package/dist/externalPortService.js.map +1 -1
- package/dist/index.d.ts +0 -112
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -44
- package/dist/index.js.map +1 -1
- package/dist/ipcService.d.ts +23 -15
- package/dist/ipcService.d.ts.map +1 -1
- package/dist/ipcService.js +6 -12
- package/dist/ipcService.js.map +1 -1
- package/dist/logger.d.ts +0 -46
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +13 -57
- package/dist/logger.js.map +1 -1
- package/dist/matter/BaseMatterManager.d.ts +19 -0
- package/dist/matter/BaseMatterManager.d.ts.map +1 -0
- package/dist/matter/BaseMatterManager.js +170 -0
- package/dist/matter/BaseMatterManager.js.map +1 -0
- package/dist/matter/ChildBridgeMatterManager.d.ts +7 -69
- package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -1
- package/dist/matter/ChildBridgeMatterManager.js +51 -234
- package/dist/matter/ChildBridgeMatterManager.js.map +1 -1
- package/dist/matter/ClusterCommandMapper.d.ts +5 -0
- package/dist/matter/ClusterCommandMapper.d.ts.map +1 -0
- package/dist/matter/ClusterCommandMapper.js +203 -0
- package/dist/matter/ClusterCommandMapper.js.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +0 -27
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -1
- package/dist/matter/ExternalMatterAccessoryPublisher.js +3 -28
- package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -1
- package/dist/matter/MatterAPIImpl.d.ts +0 -68
- package/dist/matter/MatterAPIImpl.d.ts.map +1 -1
- package/dist/matter/MatterAPIImpl.js +7 -107
- package/dist/matter/MatterAPIImpl.js.map +1 -1
- package/dist/matter/MatterBridgeManager.d.ts +9 -60
- package/dist/matter/MatterBridgeManager.d.ts.map +1 -1
- package/dist/matter/MatterBridgeManager.js +140 -216
- package/dist/matter/MatterBridgeManager.js.map +1 -1
- package/dist/matter/MatterConfigCollector.d.ts +1 -20
- package/dist/matter/MatterConfigCollector.d.ts.map +1 -1
- package/dist/matter/MatterConfigCollector.js +15 -28
- package/dist/matter/MatterConfigCollector.js.map +1 -1
- package/dist/matter/accessoryCache.d.ts +0 -48
- package/dist/matter/accessoryCache.d.ts.map +1 -1
- package/dist/matter/accessoryCache.js +1 -60
- package/dist/matter/accessoryCache.js.map +1 -1
- package/dist/matter/behaviors/AirQualityBehavior.d.ts +0 -42
- package/dist/matter/behaviors/AirQualityBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/AirQualityBehavior.js +0 -44
- package/dist/matter/behaviors/AirQualityBehavior.js.map +1 -1
- package/dist/matter/behaviors/BehaviorRegistry.d.ts +4 -42
- package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -1
- package/dist/matter/behaviors/BehaviorRegistry.js +12 -42
- package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -1
- package/dist/matter/behaviors/ColorControlBehavior.d.ts +0 -49
- package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ColorControlBehavior.js +0 -90
- package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts +0 -91
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js +0 -96
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js.map +1 -1
- package/dist/matter/behaviors/DoorLockBehavior.d.ts +0 -11
- package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/DoorLockBehavior.js +0 -25
- package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -1
- package/dist/matter/behaviors/FanControlBehavior.d.ts +0 -11
- package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/FanControlBehavior.js +0 -25
- package/dist/matter/behaviors/FanControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/IdentifyBehavior.d.ts +0 -11
- package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/IdentifyBehavior.js +0 -17
- package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -1
- package/dist/matter/behaviors/LevelControlBehavior.d.ts +0 -20
- package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/LevelControlBehavior.js +0 -52
- package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -1
- package/dist/matter/behaviors/OnOffBehavior.d.ts +0 -17
- package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/OnOffBehavior.js +0 -38
- package/dist/matter/behaviors/OnOffBehavior.js.map +1 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +0 -11
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.js +0 -17
- package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +0 -11
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js +0 -29
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +0 -11
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.js +0 -17
- package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +0 -11
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.js +0 -23
- package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -1
- package/dist/matter/behaviors/ThermostatBehavior.d.ts +0 -11
- package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/ThermostatBehavior.js +0 -39
- package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +0 -17
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.js +0 -56
- package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -1
- package/dist/matter/behaviors/index.d.ts +0 -5
- package/dist/matter/behaviors/index.d.ts.map +1 -1
- package/dist/matter/behaviors/index.js +0 -5
- package/dist/matter/behaviors/index.js.map +1 -1
- package/dist/matter/configValidator.d.ts +0 -55
- package/dist/matter/configValidator.d.ts.map +1 -1
- package/dist/matter/configValidator.js +1 -68
- package/dist/matter/configValidator.js.map +1 -1
- package/dist/matter/errorHandler.d.ts +0 -22
- package/dist/matter/errorHandler.d.ts.map +1 -1
- package/dist/matter/errorHandler.js +0 -32
- package/dist/matter/errorHandler.js.map +1 -1
- package/dist/matter/errors.d.ts +0 -132
- package/dist/matter/errors.d.ts.map +1 -1
- package/dist/matter/errors.js +0 -132
- package/dist/matter/errors.js.map +1 -1
- package/dist/matter/index.d.ts +0 -30
- package/dist/matter/index.d.ts.map +1 -1
- package/dist/matter/index.js +0 -13
- package/dist/matter/index.js.map +1 -1
- package/dist/matter/logFormatter.d.ts +0 -17
- package/dist/matter/logFormatter.d.ts.map +1 -1
- package/dist/matter/logFormatter.js +5 -63
- package/dist/matter/logFormatter.js.map +1 -1
- package/dist/matter/server.d.ts +12 -236
- package/dist/matter/server.d.ts.map +1 -1
- package/dist/matter/server.js +177 -488
- package/dist/matter/server.js.map +1 -1
- package/dist/matter/serverHelpers.d.ts +0 -56
- package/dist/matter/serverHelpers.d.ts.map +1 -1
- package/dist/matter/serverHelpers.js +1 -66
- package/dist/matter/serverHelpers.js.map +1 -1
- package/dist/matter/sharedTypes.d.ts +0 -83
- package/dist/matter/sharedTypes.d.ts.map +1 -1
- package/dist/matter/sharedTypes.js +0 -26
- package/dist/matter/sharedTypes.js.map +1 -1
- package/dist/matter/storage.d.ts +0 -90
- package/dist/matter/storage.d.ts.map +1 -1
- package/dist/matter/storage.js +2 -130
- package/dist/matter/storage.js.map +1 -1
- package/dist/matter/typeHelpers.d.ts +0 -30
- package/dist/matter/typeHelpers.d.ts.map +1 -1
- package/dist/matter/typeHelpers.js +0 -24
- package/dist/matter/typeHelpers.js.map +1 -1
- package/dist/matter/types.d.ts +0 -273
- package/dist/matter/types.d.ts.map +1 -1
- package/dist/matter/types.js +0 -83
- package/dist/matter/types.js.map +1 -1
- package/dist/platformAccessory.d.ts +0 -15
- package/dist/platformAccessory.d.ts.map +1 -1
- package/dist/platformAccessory.js +6 -32
- package/dist/platformAccessory.js.map +1 -1
- package/dist/plugin.d.ts +0 -3
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +6 -29
- package/dist/plugin.js.map +1 -1
- package/dist/pluginManager.d.ts +0 -22
- package/dist/pluginManager.d.ts.map +1 -1
- package/dist/pluginManager.js +18 -41
- package/dist/pluginManager.js.map +1 -1
- package/dist/server.d.ts +9 -29
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +308 -157
- package/dist/server.js.map +1 -1
- package/dist/user.d.ts +0 -3
- package/dist/user.d.ts.map +1 -1
- package/dist/user.js +2 -5
- package/dist/user.js.map +1 -1
- package/dist/util/mac.js +0 -1
- package/dist/util/mac.js.map +1 -1
- package/package.json +4 -4
- package/dist/api.spec.d.ts +0 -2
- package/dist/api.spec.d.ts.map +0 -1
- package/dist/api.spec.js +0 -413
- package/dist/api.spec.js.map +0 -1
- package/dist/logger.spec.d.ts +0 -2
- package/dist/logger.spec.d.ts.map +0 -1
- package/dist/logger.spec.js +0 -95
- package/dist/logger.spec.js.map +0 -1
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +0 -2
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +0 -1
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +0 -293
- package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +0 -1
- package/dist/matter/accessoryCache.spec.d.ts +0 -2
- package/dist/matter/accessoryCache.spec.d.ts.map +0 -1
- package/dist/matter/accessoryCache.spec.js +0 -452
- package/dist/matter/accessoryCache.spec.js.map +0 -1
- package/dist/matter/behaviors/AirQualityBehavior.spec.d.ts +0 -5
- package/dist/matter/behaviors/AirQualityBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/AirQualityBehavior.spec.js +0 -46
- package/dist/matter/behaviors/AirQualityBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +0 -2
- package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/BehaviorRegistry.spec.js +0 -307
- package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +0 -1
- package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/ColorControlBehavior.spec.js +0 -29
- package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.d.ts +0 -5
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.js +0 -95
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/DoorLockBehavior.spec.js +0 -120
- package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/FanControlBehavior.spec.js +0 -23
- package/dist/matter/behaviors/FanControlBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/IdentifyBehavior.spec.js +0 -64
- package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/LevelControlBehavior.spec.js +0 -145
- package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/OnOffBehavior.spec.js +0 -128
- package/dist/matter/behaviors/OnOffBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +0 -57
- package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +0 -55
- package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +0 -57
- package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +0 -53
- package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/ThermostatBehavior.spec.js +0 -23
- package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +0 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +0 -2
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +0 -1
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +0 -27
- package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +0 -1
- package/dist/matter/configValidator.spec.d.ts +0 -2
- package/dist/matter/configValidator.spec.d.ts.map +0 -1
- package/dist/matter/configValidator.spec.js +0 -390
- package/dist/matter/configValidator.spec.js.map +0 -1
- package/dist/matter/errorHandler.spec.d.ts +0 -2
- package/dist/matter/errorHandler.spec.d.ts.map +0 -1
- package/dist/matter/errorHandler.spec.js +0 -159
- package/dist/matter/errorHandler.spec.js.map +0 -1
- package/dist/matter/logFormatter.spec.d.ts +0 -2
- package/dist/matter/logFormatter.spec.d.ts.map +0 -1
- package/dist/matter/logFormatter.spec.js +0 -252
- package/dist/matter/logFormatter.spec.js.map +0 -1
- package/dist/matter/serverHelpers.spec.d.ts +0 -2
- package/dist/matter/serverHelpers.spec.d.ts.map +0 -1
- package/dist/matter/serverHelpers.spec.js +0 -527
- package/dist/matter/serverHelpers.spec.js.map +0 -1
- package/dist/matter/storage.spec.d.ts +0 -2
- package/dist/matter/storage.spec.d.ts.map +0 -1
- package/dist/matter/storage.spec.js +0 -570
- package/dist/matter/storage.spec.js.map +0 -1
- package/dist/matter/typeHelpers.spec.d.ts +0 -2
- package/dist/matter/typeHelpers.spec.d.ts.map +0 -1
- package/dist/matter/typeHelpers.spec.js +0 -127
- package/dist/matter/typeHelpers.spec.js.map +0 -1
- package/dist/platformAccessory.spec.d.ts +0 -2
- package/dist/platformAccessory.spec.d.ts.map +0 -1
- package/dist/platformAccessory.spec.js +0 -126
- package/dist/platformAccessory.spec.js.map +0 -1
- package/dist/pluginManager.spec.d.ts +0 -2
- package/dist/pluginManager.spec.d.ts.map +0 -1
- package/dist/pluginManager.spec.js +0 -43
- package/dist/pluginManager.spec.js.map +0 -1
- package/dist/server.spec.d.ts +0 -2
- package/dist/server.spec.d.ts.map +0 -1
- package/dist/server.spec.js +0 -57
- package/dist/server.spec.js.map +0 -1
- package/dist/user.spec.d.ts +0 -2
- package/dist/user.spec.d.ts.map +0 -1
- package/dist/user.spec.js +0 -31
- package/dist/user.spec.js.map +0 -1
- package/dist/util/mac.spec.d.ts +0 -2
- package/dist/util/mac.spec.d.ts.map +0 -1
- package/dist/util/mac.spec.js +0 -36
- package/dist/util/mac.spec.js.map +0 -1
- package/dist/version.spec.d.ts +0 -2
- package/dist/version.spec.d.ts.map +0 -1
- package/dist/version.spec.js +0 -20
- package/dist/version.spec.js.map +0 -1
|
@@ -1,43 +1,25 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DoorLock Cluster Behavior
|
|
3
|
-
*
|
|
4
|
-
* Handles door lock commands for smart locks
|
|
5
|
-
*/
|
|
6
1
|
import { DoorLockServer } from '@matter/main/behaviors/door-lock';
|
|
7
2
|
import { Status, StatusResponseError } from '@matter/main/types';
|
|
8
3
|
import { MatterStatus } from '../errors.js';
|
|
9
|
-
/**
|
|
10
|
-
* Custom DoorLock Server that calls plugin handlers
|
|
11
|
-
*/
|
|
12
4
|
export class HomebridgeDoorLockServer extends DoorLockServer {
|
|
13
5
|
static registry;
|
|
14
|
-
/**
|
|
15
|
-
* Set the behavior registry (called once during server initialization)
|
|
16
|
-
*/
|
|
17
6
|
static setRegistry(registry) {
|
|
18
7
|
this.registry = registry;
|
|
19
8
|
}
|
|
20
9
|
async lockDoor() {
|
|
21
10
|
const endpointId = this.endpoint.id;
|
|
22
11
|
try {
|
|
23
|
-
// Execute user handler
|
|
24
12
|
await HomebridgeDoorLockServer.registry.executeHandler(endpointId, 'doorLock', 'lockDoor');
|
|
25
|
-
// Only reached if handler succeeded - update Matter state
|
|
26
13
|
await super.lockDoor();
|
|
27
|
-
// Sync lock state to cache
|
|
28
14
|
const currentState = this.state;
|
|
29
15
|
if (currentState.lockState !== undefined) {
|
|
30
16
|
HomebridgeDoorLockServer.registry.syncStateToCache(endpointId, 'doorLock', { lockState: currentState.lockState });
|
|
31
17
|
}
|
|
32
18
|
}
|
|
33
19
|
catch (error) {
|
|
34
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
35
|
-
// This sends a proper Matter protocol error response to the controller
|
|
36
20
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
37
21
|
throw error;
|
|
38
22
|
}
|
|
39
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
40
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
41
23
|
const message = error instanceof Error ? error.message : String(error);
|
|
42
24
|
throw new StatusResponseError(`Failed to lock door: ${message}`, Status.Failure);
|
|
43
25
|
}
|
|
@@ -45,24 +27,17 @@ export class HomebridgeDoorLockServer extends DoorLockServer {
|
|
|
45
27
|
async unlockDoor() {
|
|
46
28
|
const endpointId = this.endpoint.id;
|
|
47
29
|
try {
|
|
48
|
-
// Execute user handler
|
|
49
30
|
await HomebridgeDoorLockServer.registry.executeHandler(endpointId, 'doorLock', 'unlockDoor');
|
|
50
|
-
// Only reached if handler succeeded - update Matter state
|
|
51
31
|
await super.unlockDoor();
|
|
52
|
-
// Sync lock state to cache
|
|
53
32
|
const currentState = this.state;
|
|
54
33
|
if (currentState.lockState !== undefined) {
|
|
55
34
|
HomebridgeDoorLockServer.registry.syncStateToCache(endpointId, 'doorLock', { lockState: currentState.lockState });
|
|
56
35
|
}
|
|
57
36
|
}
|
|
58
37
|
catch (error) {
|
|
59
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
60
|
-
// This sends a proper Matter protocol error response to the controller
|
|
61
38
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
62
39
|
throw error;
|
|
63
40
|
}
|
|
64
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
65
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
66
41
|
const message = error instanceof Error ? error.message : String(error);
|
|
67
42
|
throw new StatusResponseError(`Failed to unlock door: ${message}`, Status.Failure);
|
|
68
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DoorLockBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/DoorLockBehavior.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DoorLockBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/DoorLockBehavior.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAK3C,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IAClD,MAAM,CAAC,QAAQ,CAAkB;IAKzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,KAAK,CAAC,QAAQ;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,IAAI,CAAC;YAEH,MAAM,wBAAwB,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;YAG1F,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;YAGtB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAY,CAAA;YACtC,IAAI,YAAY,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACzC,wBAAwB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAA;YACnH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAGf,IAAI,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,CAAA;YACb,CAAC;YAID,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,mBAAmB,CAAC,wBAAwB,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,UAAU;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,IAAI,CAAC;YAEH,MAAM,wBAAwB,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA;YAG5F,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;YAGxB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAY,CAAA;YACtC,IAAI,YAAY,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACzC,wBAAwB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAA;YACnH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAGf,IAAI,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,CAAA;YACb,CAAC;YAID,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,mBAAmB,CAAC,0BAA0B,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* FanControl Cluster Behavior
|
|
3
|
-
*
|
|
4
|
-
* Handles fan control commands for fans
|
|
5
|
-
*/
|
|
6
1
|
import type { BehaviorRegistry } from './BehaviorRegistry.js';
|
|
7
2
|
import { FanControlServer } from '@matter/main/behaviors/fan-control';
|
|
8
|
-
/**
|
|
9
|
-
* Custom FanControl Server that calls plugin handlers
|
|
10
|
-
*/
|
|
11
3
|
export declare class HomebridgeFanControlServer extends FanControlServer {
|
|
12
4
|
#private;
|
|
13
5
|
private static registry;
|
|
14
|
-
/**
|
|
15
|
-
* Set the behavior registry (called once during server initialization)
|
|
16
|
-
*/
|
|
17
6
|
static setRegistry(registry: BehaviorRegistry): void;
|
|
18
7
|
initialize(): void;
|
|
19
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FanControlBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/FanControlBehavior.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FanControlBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/FanControlBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAQrE,qBAAa,0BAA2B,SAAQ,gBAAgB;;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAKzC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAI3C,UAAU,IAAI,IAAI;CAoE5B"}
|
|
@@ -1,45 +1,26 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* FanControl Cluster Behavior
|
|
3
|
-
*
|
|
4
|
-
* Handles fan control commands for fans
|
|
5
|
-
*/
|
|
6
1
|
import { FanControlServer } from '@matter/main/behaviors/fan-control';
|
|
7
2
|
import { Status, StatusResponseError } from '@matter/main/types';
|
|
8
3
|
import { MatterStatus } from '../errors.js';
|
|
9
|
-
/**
|
|
10
|
-
* Custom FanControl Server that calls plugin handlers
|
|
11
|
-
*/
|
|
12
4
|
export class HomebridgeFanControlServer extends FanControlServer {
|
|
13
5
|
static registry;
|
|
14
|
-
/**
|
|
15
|
-
* Set the behavior registry (called once during server initialization)
|
|
16
|
-
*/
|
|
17
6
|
static setRegistry(registry) {
|
|
18
7
|
this.registry = registry;
|
|
19
8
|
}
|
|
20
9
|
initialize() {
|
|
21
10
|
super.initialize();
|
|
22
|
-
// React to fanMode attribute changes (on/off)
|
|
23
11
|
this.reactTo(this.events.fanMode$Changed, this.#handleFanModeChange);
|
|
24
|
-
// React to percentSetting attribute changes (speed)
|
|
25
12
|
this.reactTo(this.events.percentSetting$Changed, this.#handlePercentSettingChange);
|
|
26
13
|
}
|
|
27
14
|
async #handleFanModeChange(value, oldValue) {
|
|
28
15
|
const endpointId = this.endpoint.id;
|
|
29
16
|
try {
|
|
30
|
-
// Execute user handler
|
|
31
17
|
await HomebridgeFanControlServer.registry.executeHandler(endpointId, 'fanControl', 'fanModeChange', { fanMode: value, oldFanMode: oldValue });
|
|
32
|
-
// Sync state to cache
|
|
33
18
|
HomebridgeFanControlServer.registry.syncStateToCache(endpointId, 'fanControl', { fanMode: value });
|
|
34
19
|
}
|
|
35
20
|
catch (error) {
|
|
36
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
37
|
-
// This sends a proper Matter protocol error response to the controller
|
|
38
21
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
39
22
|
throw error;
|
|
40
23
|
}
|
|
41
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
42
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
43
24
|
const message = error instanceof Error ? error.message : String(error);
|
|
44
25
|
throw new StatusResponseError(`Failed to change fan mode: ${message}`, Status.Failure);
|
|
45
26
|
}
|
|
@@ -47,22 +28,16 @@ export class HomebridgeFanControlServer extends FanControlServer {
|
|
|
47
28
|
async #handlePercentSettingChange(value, oldValue) {
|
|
48
29
|
const endpointId = this.endpoint.id;
|
|
49
30
|
try {
|
|
50
|
-
// Execute user handler
|
|
51
31
|
await HomebridgeFanControlServer.registry.executeHandler(endpointId, 'fanControl', 'percentSettingChange', { percentSetting: value, oldPercentSetting: oldValue });
|
|
52
|
-
// Sync state to cache
|
|
53
32
|
HomebridgeFanControlServer.registry.syncStateToCache(endpointId, 'fanControl', {
|
|
54
33
|
percentSetting: value,
|
|
55
34
|
percentCurrent: value,
|
|
56
35
|
});
|
|
57
36
|
}
|
|
58
37
|
catch (error) {
|
|
59
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
60
|
-
// This sends a proper Matter protocol error response to the controller
|
|
61
38
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
62
39
|
throw error;
|
|
63
40
|
}
|
|
64
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
65
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
66
41
|
const message = error instanceof Error ? error.message : String(error);
|
|
67
42
|
throw new StatusResponseError(`Failed to change fan speed: ${message}`, Status.Failure);
|
|
68
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FanControlBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/FanControlBehavior.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FanControlBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/FanControlBehavior.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAK3C,MAAM,OAAO,0BAA2B,SAAQ,gBAAgB;IACtD,MAAM,CAAC,QAAQ,CAAkB;IAKzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,UAAU;QACjB,KAAK,CAAC,UAAU,EAAE,CAAA;QAGlB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAGpE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAA;IACpF,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAa,EAAE,QAAgB;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,IAAI,CAAC;YAEH,MAAM,0BAA0B,CAAC,QAAQ,CAAC,cAAc,CACtD,UAAU,EACV,YAAY,EACZ,eAAe,EACf,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CACzC,CAAA;YAGD,0BAA0B,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QACpG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAGf,IAAI,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,CAAA;YACb,CAAC;YAID,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,mBAAmB,CAAC,8BAA8B,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACxF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,KAAoB,EAAE,QAAuB;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,IAAI,CAAC;YAEH,MAAM,0BAA0B,CAAC,QAAQ,CAAC,cAAc,CACtD,UAAU,EACV,YAAY,EACZ,sBAAsB,EACtB,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CACvD,CAAA;YAGD,0BAA0B,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE;gBAC7E,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,KAAK;aACtB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAGf,IAAI,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,CAAA;YACb,CAAC;YAID,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,mBAAmB,CAAC,+BAA+B,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACzF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Identify Cluster Behavior
|
|
3
|
-
*
|
|
4
|
-
* Handles identify commands (e.g., flash LED, beep sound)
|
|
5
|
-
*/
|
|
6
1
|
import type { Identify } from '@matter/main/clusters';
|
|
7
2
|
import type { BehaviorRegistry } from './BehaviorRegistry.js';
|
|
8
3
|
import { IdentifyServer } from '@matter/main/behaviors/identify';
|
|
9
|
-
/**
|
|
10
|
-
* Custom Identify Server that calls plugin handlers
|
|
11
|
-
*/
|
|
12
4
|
export declare class HomebridgeIdentifyServer extends IdentifyServer {
|
|
13
5
|
private static registry;
|
|
14
|
-
/**
|
|
15
|
-
* Set the behavior registry (called once during server initialization)
|
|
16
|
-
*/
|
|
17
6
|
static setRegistry(registry: BehaviorRegistry): void;
|
|
18
7
|
identify(request: Identify.IdentifyRequest): Promise<void>;
|
|
19
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentifyBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/IdentifyBehavior.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IdentifyBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/IdentifyBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAErD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAQhE,qBAAa,wBAAyB,SAAQ,cAAc;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAKzC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIrC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB1E"}
|
|
@@ -1,38 +1,21 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Identify Cluster Behavior
|
|
3
|
-
*
|
|
4
|
-
* Handles identify commands (e.g., flash LED, beep sound)
|
|
5
|
-
*/
|
|
6
1
|
import { IdentifyServer } from '@matter/main/behaviors/identify';
|
|
7
2
|
import { Status, StatusResponseError } from '@matter/main/types';
|
|
8
3
|
import { MatterStatus } from '../errors.js';
|
|
9
|
-
/**
|
|
10
|
-
* Custom Identify Server that calls plugin handlers
|
|
11
|
-
*/
|
|
12
4
|
export class HomebridgeIdentifyServer extends IdentifyServer {
|
|
13
5
|
static registry;
|
|
14
|
-
/**
|
|
15
|
-
* Set the behavior registry (called once during server initialization)
|
|
16
|
-
*/
|
|
17
6
|
static setRegistry(registry) {
|
|
18
7
|
this.registry = registry;
|
|
19
8
|
}
|
|
20
9
|
async identify(request) {
|
|
21
10
|
const endpointId = this.endpoint.id;
|
|
22
11
|
try {
|
|
23
|
-
// Execute user handler
|
|
24
12
|
await HomebridgeIdentifyServer.registry.executeHandler(endpointId, 'identify', 'identify', request);
|
|
25
|
-
// Only reached if handler succeeded - call base implementation
|
|
26
13
|
return await super.identify(request);
|
|
27
14
|
}
|
|
28
15
|
catch (error) {
|
|
29
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
30
|
-
// This sends a proper Matter protocol error response to the controller
|
|
31
16
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
32
17
|
throw error;
|
|
33
18
|
}
|
|
34
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
35
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
36
19
|
const message = error instanceof Error ? error.message : String(error);
|
|
37
20
|
throw new StatusResponseError(`Failed to identify: ${message}`, Status.Failure);
|
|
38
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentifyBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/IdentifyBehavior.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IdentifyBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/IdentifyBehavior.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAK3C,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IAClD,MAAM,CAAC,QAAQ,CAAkB;IAKzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,KAAK,CAAC,QAAQ,CAAC,OAAiC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEnC,IAAI,CAAC;YAEH,MAAM,wBAAwB,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;YAGnG,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAGf,IAAI,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,CAAA;YACb,CAAC;YAID,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,mBAAmB,CAAC,uBAAuB,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,33 +1,13 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LevelControl Cluster Behavior
|
|
3
|
-
*
|
|
4
|
-
* Handles brightness/level control for dimmable lights
|
|
5
|
-
*/
|
|
6
1
|
import type { LevelControl } from '@matter/main/clusters/level-control';
|
|
7
2
|
import type { BehaviorRegistry } from './BehaviorRegistry.js';
|
|
8
3
|
import { LevelControlServer } from '@matter/main/behaviors/level-control';
|
|
9
4
|
export declare class HomebridgeLevelControlServer extends LevelControlServer {
|
|
10
5
|
private static registry;
|
|
11
6
|
static setRegistry(registry: BehaviorRegistry): void;
|
|
12
|
-
/**
|
|
13
|
-
* Handle moveToLevel command
|
|
14
|
-
*/
|
|
15
7
|
moveToLevel(request: LevelControl.MoveToLevelRequest): Promise<void>;
|
|
16
|
-
/**
|
|
17
|
-
* Handle move command
|
|
18
|
-
*/
|
|
19
8
|
move(request: LevelControl.MoveRequest): Promise<void>;
|
|
20
|
-
/**
|
|
21
|
-
* Handle step command
|
|
22
|
-
*/
|
|
23
9
|
step(request: LevelControl.StepRequest): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Handle stop command
|
|
26
|
-
*/
|
|
27
10
|
stop(request: LevelControl.StopRequest): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* Handle moveToLevelWithOnOff command
|
|
30
|
-
*/
|
|
31
11
|
moveToLevelWithOnOff(request: LevelControl.MoveToLevelRequest): Promise<void>;
|
|
32
12
|
}
|
|
33
13
|
//# sourceMappingURL=LevelControlBehavior.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LevelControlBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/LevelControlBehavior.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LevelControlBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/LevelControlBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AAKzE,qBAAa,4BAA6B,SAAQ,kBAAkB;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAOrC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCpE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BtD,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BtD,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BtD,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAgC7F"}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LevelControl Cluster Behavior
|
|
3
|
-
*
|
|
4
|
-
* Handles brightness/level control for dimmable lights
|
|
5
|
-
*/
|
|
6
1
|
import { LevelControlServer } from '@matter/main/behaviors/level-control';
|
|
7
2
|
import { Status, StatusResponseError } from '@matter/main/types';
|
|
8
3
|
import { MatterStatus } from '../errors.js';
|
|
@@ -11,125 +6,78 @@ export class HomebridgeLevelControlServer extends LevelControlServer {
|
|
|
11
6
|
static setRegistry(registry) {
|
|
12
7
|
this.registry = registry;
|
|
13
8
|
}
|
|
14
|
-
/**
|
|
15
|
-
* Handle moveToLevel command
|
|
16
|
-
*/
|
|
17
9
|
async moveToLevel(request) {
|
|
18
10
|
const endpointId = this.endpoint.id;
|
|
19
11
|
try {
|
|
20
|
-
// Execute user handler
|
|
21
12
|
await HomebridgeLevelControlServer.registry.executeHandler(endpointId, 'levelControl', 'moveToLevel', request);
|
|
22
|
-
// Only reached if handler succeeded - update Matter state
|
|
23
13
|
await super.moveToLevel(request);
|
|
24
|
-
// Sync state to cache
|
|
25
14
|
HomebridgeLevelControlServer.registry.syncStateToCache(endpointId, 'levelControl', {
|
|
26
15
|
currentLevel: request.level,
|
|
27
16
|
});
|
|
28
17
|
}
|
|
29
18
|
catch (error) {
|
|
30
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
31
|
-
// This sends a proper Matter protocol error response to the controller
|
|
32
19
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
33
20
|
throw error;
|
|
34
21
|
}
|
|
35
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
36
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
37
22
|
const message = error instanceof Error ? error.message : String(error);
|
|
38
23
|
throw new StatusResponseError(`Failed to set level: ${message}`, Status.Failure);
|
|
39
24
|
}
|
|
40
25
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Handle move command
|
|
43
|
-
*/
|
|
44
26
|
async move(request) {
|
|
45
27
|
const endpointId = this.endpoint.id;
|
|
46
28
|
try {
|
|
47
|
-
// Execute user handler
|
|
48
29
|
await HomebridgeLevelControlServer.registry.executeHandler(endpointId, 'levelControl', 'move', request);
|
|
49
|
-
// Only reached if handler succeeded
|
|
50
30
|
await super.move(request);
|
|
51
31
|
}
|
|
52
32
|
catch (error) {
|
|
53
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
54
|
-
// This sends a proper Matter protocol error response to the controller
|
|
55
33
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
56
34
|
throw error;
|
|
57
35
|
}
|
|
58
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
59
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
60
36
|
const message = error instanceof Error ? error.message : String(error);
|
|
61
37
|
throw new StatusResponseError(`Failed to move level: ${message}`, Status.Failure);
|
|
62
38
|
}
|
|
63
39
|
}
|
|
64
|
-
/**
|
|
65
|
-
* Handle step command
|
|
66
|
-
*/
|
|
67
40
|
async step(request) {
|
|
68
41
|
const endpointId = this.endpoint.id;
|
|
69
42
|
try {
|
|
70
|
-
// Execute user handler
|
|
71
43
|
await HomebridgeLevelControlServer.registry.executeHandler(endpointId, 'levelControl', 'step', request);
|
|
72
|
-
// Only reached if handler succeeded
|
|
73
44
|
await super.step(request);
|
|
74
45
|
}
|
|
75
46
|
catch (error) {
|
|
76
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
77
|
-
// This sends a proper Matter protocol error response to the controller
|
|
78
47
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
79
48
|
throw error;
|
|
80
49
|
}
|
|
81
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
82
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
83
50
|
const message = error instanceof Error ? error.message : String(error);
|
|
84
51
|
throw new StatusResponseError(`Failed to step level: ${message}`, Status.Failure);
|
|
85
52
|
}
|
|
86
53
|
}
|
|
87
|
-
/**
|
|
88
|
-
* Handle stop command
|
|
89
|
-
*/
|
|
90
54
|
async stop(request) {
|
|
91
55
|
const endpointId = this.endpoint.id;
|
|
92
56
|
try {
|
|
93
|
-
// Execute user handler
|
|
94
57
|
await HomebridgeLevelControlServer.registry.executeHandler(endpointId, 'levelControl', 'stop', request);
|
|
95
|
-
// Only reached if handler succeeded
|
|
96
58
|
await super.stop(request);
|
|
97
59
|
}
|
|
98
60
|
catch (error) {
|
|
99
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
100
|
-
// This sends a proper Matter protocol error response to the controller
|
|
101
61
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
102
62
|
throw error;
|
|
103
63
|
}
|
|
104
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
105
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
106
64
|
const message = error instanceof Error ? error.message : String(error);
|
|
107
65
|
throw new StatusResponseError(`Failed to stop level change: ${message}`, Status.Failure);
|
|
108
66
|
}
|
|
109
67
|
}
|
|
110
|
-
/**
|
|
111
|
-
* Handle moveToLevelWithOnOff command
|
|
112
|
-
*/
|
|
113
68
|
async moveToLevelWithOnOff(request) {
|
|
114
69
|
const endpointId = this.endpoint.id;
|
|
115
70
|
try {
|
|
116
|
-
// Execute user handler
|
|
117
71
|
await HomebridgeLevelControlServer.registry.executeHandler(endpointId, 'levelControl', 'moveToLevelWithOnOff', request);
|
|
118
|
-
// Only reached if handler succeeded - update Matter state
|
|
119
72
|
await super.moveToLevelWithOnOff(request);
|
|
120
|
-
// Sync state to cache
|
|
121
73
|
HomebridgeLevelControlServer.registry.syncStateToCache(endpointId, 'levelControl', {
|
|
122
74
|
currentLevel: request.level,
|
|
123
75
|
});
|
|
124
76
|
}
|
|
125
77
|
catch (error) {
|
|
126
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
127
|
-
// This sends a proper Matter protocol error response to the controller
|
|
128
78
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
129
79
|
throw error;
|
|
130
80
|
}
|
|
131
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
132
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
133
81
|
const message = error instanceof Error ? error.message : String(error);
|
|
134
82
|
throw new StatusResponseError(`Failed to set level with on/off: ${message}`, Status.Failure);
|
|
135
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LevelControlBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/LevelControlBehavior.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LevelControlBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/LevelControlBehavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OnOff Cluster Behavior
|
|
3
|
-
*
|
|
4
|
-
* Handles on/off commands for lights, switches, and outlets
|
|
5
|
-
*/
|
|
6
1
|
import type { BehaviorRegistry } from './BehaviorRegistry.js';
|
|
7
2
|
import { OnOffServer } from '@matter/main/behaviors/on-off';
|
|
8
3
|
export declare class HomebridgeOnOffServer extends OnOffServer {
|
|
9
4
|
private static registry;
|
|
10
|
-
/**
|
|
11
|
-
* Set the behavior registry (called once during server initialization)
|
|
12
|
-
*/
|
|
13
5
|
static setRegistry(registry: BehaviorRegistry): void;
|
|
14
|
-
/**
|
|
15
|
-
* Handle 'on' command
|
|
16
|
-
*/
|
|
17
6
|
on(): Promise<void>;
|
|
18
|
-
/**
|
|
19
|
-
* Handle 'off' command
|
|
20
|
-
*/
|
|
21
7
|
off(): Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* Handle 'toggle' command
|
|
24
|
-
*/
|
|
25
8
|
toggle(): Promise<void>;
|
|
26
9
|
}
|
|
27
10
|
//# sourceMappingURL=OnOffBehavior.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnOffBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/OnOffBehavior.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OnOffBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/OnOffBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAK3D,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAKzC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAOrC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BnB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BpB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CA2BvC"}
|
|
@@ -1,92 +1,54 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OnOff Cluster Behavior
|
|
3
|
-
*
|
|
4
|
-
* Handles on/off commands for lights, switches, and outlets
|
|
5
|
-
*/
|
|
6
1
|
import { OnOffServer } from '@matter/main/behaviors/on-off';
|
|
7
2
|
import { Status, StatusResponseError } from '@matter/main/types';
|
|
8
3
|
import { MatterStatus } from '../errors.js';
|
|
9
4
|
export class HomebridgeOnOffServer extends OnOffServer {
|
|
10
5
|
static registry;
|
|
11
|
-
/**
|
|
12
|
-
* Set the behavior registry (called once during server initialization)
|
|
13
|
-
*/
|
|
14
6
|
static setRegistry(registry) {
|
|
15
7
|
this.registry = registry;
|
|
16
8
|
}
|
|
17
|
-
/**
|
|
18
|
-
* Handle 'on' command
|
|
19
|
-
*/
|
|
20
9
|
async on() {
|
|
21
10
|
const endpointId = this.endpoint.id;
|
|
22
11
|
try {
|
|
23
|
-
// Execute user handler
|
|
24
12
|
await HomebridgeOnOffServer.registry.executeHandler(endpointId, 'onOff', 'on');
|
|
25
|
-
// Only reached if handler succeeded - update Matter state
|
|
26
13
|
await super.on();
|
|
27
|
-
// Sync state to cache
|
|
28
14
|
HomebridgeOnOffServer.registry.syncStateToCache(endpointId, 'onOff', { onOff: true });
|
|
29
15
|
}
|
|
30
16
|
catch (error) {
|
|
31
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
32
|
-
// This sends a proper Matter protocol error response to the controller
|
|
33
17
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
34
18
|
throw error;
|
|
35
19
|
}
|
|
36
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
37
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
38
20
|
const message = error instanceof Error ? error.message : String(error);
|
|
39
21
|
throw new StatusResponseError(`Failed to turn on: ${message}`, Status.Failure);
|
|
40
22
|
}
|
|
41
23
|
}
|
|
42
|
-
/**
|
|
43
|
-
* Handle 'off' command
|
|
44
|
-
*/
|
|
45
24
|
async off() {
|
|
46
25
|
const endpointId = this.endpoint.id;
|
|
47
26
|
try {
|
|
48
|
-
// Execute user handler
|
|
49
27
|
await HomebridgeOnOffServer.registry.executeHandler(endpointId, 'onOff', 'off');
|
|
50
|
-
// Only reached if handler succeeded - update Matter state
|
|
51
28
|
await super.off();
|
|
52
|
-
// Sync state to cache
|
|
53
29
|
HomebridgeOnOffServer.registry.syncStateToCache(endpointId, 'onOff', { onOff: false });
|
|
54
30
|
}
|
|
55
31
|
catch (error) {
|
|
56
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
57
|
-
// This sends a proper Matter protocol error response to the controller
|
|
58
32
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
59
33
|
throw error;
|
|
60
34
|
}
|
|
61
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
62
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
63
35
|
const message = error instanceof Error ? error.message : String(error);
|
|
64
36
|
throw new StatusResponseError(`Failed to turn off: ${message}`, Status.Failure);
|
|
65
37
|
}
|
|
66
38
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Handle 'toggle' command
|
|
69
|
-
*/
|
|
70
39
|
async toggle() {
|
|
71
40
|
const endpointId = this.endpoint.id;
|
|
72
41
|
try {
|
|
73
|
-
// Execute user handler
|
|
74
42
|
await HomebridgeOnOffServer.registry.executeHandler(endpointId, 'onOff', 'toggle');
|
|
75
|
-
// Only reached if handler succeeded - update Matter state
|
|
76
43
|
await super.toggle();
|
|
77
|
-
// Sync state to cache (toggle changes the value)
|
|
78
44
|
const currentState = this.state;
|
|
79
45
|
const newState = !currentState.onOff;
|
|
80
46
|
HomebridgeOnOffServer.registry.syncStateToCache(endpointId, 'onOff', { onOff: newState });
|
|
81
47
|
}
|
|
82
48
|
catch (error) {
|
|
83
|
-
// If user handler already threw a StatusResponseError, propagate it as-is
|
|
84
|
-
// This sends a proper Matter protocol error response to the controller
|
|
85
49
|
if (MatterStatus.isMatterProtocolError(error)) {
|
|
86
50
|
throw error;
|
|
87
51
|
}
|
|
88
|
-
// For other errors, wrap in appropriate StatusResponseError
|
|
89
|
-
// This prevents the endpoint from crashing and keeps the device online
|
|
90
52
|
const message = error instanceof Error ? error.message : String(error);
|
|
91
53
|
throw new StatusResponseError(`Failed to toggle: ${message}`, Status.Failure);
|
|
92
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnOffBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/OnOffBehavior.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OnOffBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/OnOffBehavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RvcCleanMode Cluster Behavior
|
|
3
|
-
*
|
|
4
|
-
* Handles robotic vacuum cleaner cleaning mode changes
|
|
5
|
-
*/
|
|
6
1
|
import type { BehaviorRegistry } from './BehaviorRegistry.js';
|
|
7
2
|
import { RvcCleanModeServer } from '@matter/main/behaviors/rvc-clean-mode';
|
|
8
|
-
/**
|
|
9
|
-
* Custom RvcCleanMode Server that calls plugin handlers
|
|
10
|
-
*/
|
|
11
3
|
export declare class HomebridgeRvcCleanModeServer extends RvcCleanModeServer {
|
|
12
4
|
private static registry;
|
|
13
|
-
/**
|
|
14
|
-
* Set the behavior registry (called once during server initialization)
|
|
15
|
-
*/
|
|
16
5
|
static setRegistry(registry: BehaviorRegistry): void;
|
|
17
6
|
changeToMode(request: any): Promise<any>;
|
|
18
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RvcCleanModeBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcCleanModeBehavior.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RvcCleanModeBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcCleanModeBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAQ1E,qBAAa,4BAA6B,SAAQ,kBAAkB;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAKzC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIrC,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAsBxD"}
|