homebridge 2.0.0-beta.44 → 2.0.0-beta.45
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 +126 -80
- 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 +5 -69
- package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -1
- package/dist/matter/ChildBridgeMatterManager.js +36 -227
- 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 +2 -27
- 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 +6 -106
- 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 +139 -215
- 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 +14 -27
- 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 +304 -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,75 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Concentration Measurement Cluster Behavior
|
|
3
|
-
*
|
|
4
|
-
* Handles concentration measurement readings for various pollutants and gases.
|
|
5
|
-
* This cluster is primarily read-only, exposing concentration measurements to Matter controllers.
|
|
6
|
-
*
|
|
7
|
-
* Supported measurement types:
|
|
8
|
-
* - PM2.5: Fine particulate matter density
|
|
9
|
-
* - PM10: Coarse particulate matter density
|
|
10
|
-
* - Ozone (O3): Ozone concentration
|
|
11
|
-
* - NO2: Nitrogen dioxide concentration
|
|
12
|
-
* - CO: Carbon monoxide level
|
|
13
|
-
*
|
|
14
|
-
* Example usage:
|
|
15
|
-
* ```typescript
|
|
16
|
-
* const accessory: MatterAccessory = {
|
|
17
|
-
* uuid: 'air-quality-sensor-1',
|
|
18
|
-
* displayName: 'Living Room Air Quality',
|
|
19
|
-
* deviceType: api.matter.deviceTypes.AirQualitySensor,
|
|
20
|
-
* serialNumber: 'AQ-12345',
|
|
21
|
-
* manufacturer: 'Acme',
|
|
22
|
-
* model: 'AQ-100',
|
|
23
|
-
* clusters: {
|
|
24
|
-
* pm25ConcentrationMeasurement: {
|
|
25
|
-
* measuredValue: 12.5, // PM2.5 concentration in µg/m³
|
|
26
|
-
* minMeasuredValue: 0,
|
|
27
|
-
* maxMeasuredValue: 1000,
|
|
28
|
-
* measurementUnit: 0, // 0 = µg/m³
|
|
29
|
-
* },
|
|
30
|
-
* pm10ConcentrationMeasurement: {
|
|
31
|
-
* measuredValue: 25.0, // PM10 concentration in µg/m³
|
|
32
|
-
* minMeasuredValue: 0,
|
|
33
|
-
* maxMeasuredValue: 1000,
|
|
34
|
-
* measurementUnit: 0,
|
|
35
|
-
* },
|
|
36
|
-
* ozoneConcentrationMeasurement: {
|
|
37
|
-
* measuredValue: 0.05, // Ozone concentration in ppm
|
|
38
|
-
* minMeasuredValue: 0,
|
|
39
|
-
* maxMeasuredValue: 1,
|
|
40
|
-
* measurementUnit: 1, // 1 = ppm
|
|
41
|
-
* },
|
|
42
|
-
* nitrogenDioxideConcentrationMeasurement: {
|
|
43
|
-
* measuredValue: 0.02, // NO2 concentration in ppm
|
|
44
|
-
* minMeasuredValue: 0,
|
|
45
|
-
* maxMeasuredValue: 1,
|
|
46
|
-
* measurementUnit: 1,
|
|
47
|
-
* },
|
|
48
|
-
* carbonMonoxideConcentrationMeasurement: {
|
|
49
|
-
* measuredValue: 3.0, // CO concentration in ppm
|
|
50
|
-
* minMeasuredValue: 0,
|
|
51
|
-
* maxMeasuredValue: 100,
|
|
52
|
-
* measurementUnit: 1,
|
|
53
|
-
* }
|
|
54
|
-
* }
|
|
55
|
-
* }
|
|
56
|
-
*
|
|
57
|
-
* // Update concentration readings
|
|
58
|
-
* await api.matter.updateClusterState(accessory.uuid, 'pm25ConcentrationMeasurement', { measuredValue: 15.3 })
|
|
59
|
-
* await api.matter.updateClusterState(accessory.uuid, 'carbonMonoxideConcentrationMeasurement', { measuredValue: 2.5 })
|
|
60
|
-
* ```
|
|
61
|
-
*/
|
|
62
1
|
import { CarbonMonoxideConcentrationMeasurementServer } from '@matter/node/behaviors/carbon-monoxide-concentration-measurement';
|
|
63
2
|
import { NitrogenDioxideConcentrationMeasurementServer } from '@matter/node/behaviors/nitrogen-dioxide-concentration-measurement';
|
|
64
3
|
import { OzoneConcentrationMeasurementServer } from '@matter/node/behaviors/ozone-concentration-measurement';
|
|
65
4
|
import { Pm10ConcentrationMeasurementServer } from '@matter/node/behaviors/pm10-concentration-measurement';
|
|
66
5
|
import { Pm25ConcentrationMeasurementServer } from '@matter/node/behaviors/pm25-concentration-measurement';
|
|
67
|
-
/**
|
|
68
|
-
* Custom PM2.5 Concentration Measurement Server
|
|
69
|
-
*
|
|
70
|
-
* Measures fine particulate matter (particles with diameter ≤ 2.5 micrometers)
|
|
71
|
-
* This is a read-only cluster - plugins update state via the Matter API
|
|
72
|
-
*/
|
|
73
6
|
export class HomebridgePm25ConcentrationMeasurementServer extends Pm25ConcentrationMeasurementServer {
|
|
74
7
|
static registry;
|
|
75
8
|
static setRegistry(registry) {
|
|
@@ -77,15 +10,8 @@ export class HomebridgePm25ConcentrationMeasurementServer extends Pm25Concentrat
|
|
|
77
10
|
}
|
|
78
11
|
initialize() {
|
|
79
12
|
super.initialize();
|
|
80
|
-
// Read-only cluster, no command handlers needed
|
|
81
13
|
}
|
|
82
14
|
}
|
|
83
|
-
/**
|
|
84
|
-
* Custom PM10 Concentration Measurement Server
|
|
85
|
-
*
|
|
86
|
-
* Measures coarse particulate matter (particles with diameter ≤ 10 micrometers)
|
|
87
|
-
* This is a read-only cluster - plugins update state via the Matter API
|
|
88
|
-
*/
|
|
89
15
|
export class HomebridgePm10ConcentrationMeasurementServer extends Pm10ConcentrationMeasurementServer {
|
|
90
16
|
static registry;
|
|
91
17
|
static setRegistry(registry) {
|
|
@@ -93,15 +19,8 @@ export class HomebridgePm10ConcentrationMeasurementServer extends Pm10Concentrat
|
|
|
93
19
|
}
|
|
94
20
|
initialize() {
|
|
95
21
|
super.initialize();
|
|
96
|
-
// Read-only cluster, no command handlers needed
|
|
97
22
|
}
|
|
98
23
|
}
|
|
99
|
-
/**
|
|
100
|
-
* Custom Ozone Concentration Measurement Server
|
|
101
|
-
*
|
|
102
|
-
* Measures ozone (O3) concentration
|
|
103
|
-
* This is a read-only cluster - plugins update state via the Matter API
|
|
104
|
-
*/
|
|
105
24
|
export class HomebridgeOzoneConcentrationMeasurementServer extends OzoneConcentrationMeasurementServer {
|
|
106
25
|
static registry;
|
|
107
26
|
static setRegistry(registry) {
|
|
@@ -109,15 +28,8 @@ export class HomebridgeOzoneConcentrationMeasurementServer extends OzoneConcentr
|
|
|
109
28
|
}
|
|
110
29
|
initialize() {
|
|
111
30
|
super.initialize();
|
|
112
|
-
// Read-only cluster, no command handlers needed
|
|
113
31
|
}
|
|
114
32
|
}
|
|
115
|
-
/**
|
|
116
|
-
* Custom Nitrogen Dioxide Concentration Measurement Server
|
|
117
|
-
*
|
|
118
|
-
* Measures nitrogen dioxide (NO2) concentration
|
|
119
|
-
* This is a read-only cluster - plugins update state via the Matter API
|
|
120
|
-
*/
|
|
121
33
|
export class HomebridgeNitrogenDioxideConcentrationMeasurementServer extends NitrogenDioxideConcentrationMeasurementServer {
|
|
122
34
|
static registry;
|
|
123
35
|
static setRegistry(registry) {
|
|
@@ -125,15 +37,8 @@ export class HomebridgeNitrogenDioxideConcentrationMeasurementServer extends Nit
|
|
|
125
37
|
}
|
|
126
38
|
initialize() {
|
|
127
39
|
super.initialize();
|
|
128
|
-
// Read-only cluster, no command handlers needed
|
|
129
40
|
}
|
|
130
41
|
}
|
|
131
|
-
/**
|
|
132
|
-
* Custom Carbon Monoxide Concentration Measurement Server
|
|
133
|
-
*
|
|
134
|
-
* Measures carbon monoxide (CO) concentration
|
|
135
|
-
* This is a read-only cluster - plugins update state via the Matter API
|
|
136
|
-
*/
|
|
137
42
|
export class HomebridgeCarbonMonoxideConcentrationMeasurementServer extends CarbonMonoxideConcentrationMeasurementServer {
|
|
138
43
|
static registry;
|
|
139
44
|
static setRegistry(registry) {
|
|
@@ -141,7 +46,6 @@ export class HomebridgeCarbonMonoxideConcentrationMeasurementServer extends Carb
|
|
|
141
46
|
}
|
|
142
47
|
initialize() {
|
|
143
48
|
super.initialize();
|
|
144
|
-
// Read-only cluster, no command handlers needed
|
|
145
49
|
}
|
|
146
50
|
}
|
|
147
51
|
//# sourceMappingURL=ConcentrationMeasurementBehavior.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConcentrationMeasurementBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/ConcentrationMeasurementBehavior.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConcentrationMeasurementBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/ConcentrationMeasurementBehavior.ts"],"names":[],"mappings":"AAgEA,OAAO,EAAE,4CAA4C,EAAE,MAAM,kEAAkE,CAAA;AAC/H,OAAO,EAAE,6CAA6C,EAAE,MAAM,mEAAmE,CAAA;AACjI,OAAO,EAAE,mCAAmC,EAAE,MAAM,wDAAwD,CAAA;AAC5G,OAAO,EAAE,kCAAkC,EAAE,MAAM,uDAAuD,CAAA;AAC1G,OAAO,EAAE,kCAAkC,EAAE,MAAM,uDAAuD,CAAA;AAQ1G,MAAM,OAAO,4CAA6C,SAAQ,kCAAkC;IAC1F,MAAM,CAAC,QAAQ,CAAkB;IAEzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,UAAU;QACjB,KAAK,CAAC,UAAU,EAAE,CAAA;IAEpB,CAAC;CACF;AAQD,MAAM,OAAO,4CAA6C,SAAQ,kCAAkC;IAC1F,MAAM,CAAC,QAAQ,CAAkB;IAEzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,UAAU;QACjB,KAAK,CAAC,UAAU,EAAE,CAAA;IAEpB,CAAC;CACF;AAQD,MAAM,OAAO,6CAA8C,SAAQ,mCAAmC;IAC5F,MAAM,CAAC,QAAQ,CAAkB;IAEzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,UAAU;QACjB,KAAK,CAAC,UAAU,EAAE,CAAA;IAEpB,CAAC;CACF;AAQD,MAAM,OAAO,uDAAwD,SAAQ,6CAA6C;IAChH,MAAM,CAAC,QAAQ,CAAkB;IAEzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,UAAU;QACjB,KAAK,CAAC,UAAU,EAAE,CAAA;IAEpB,CAAC;CACF;AAQD,MAAM,OAAO,sDAAuD,SAAQ,4CAA4C;IAC9G,MAAM,CAAC,QAAQ,CAAkB;IAEzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,UAAU;QACjB,KAAK,CAAC,UAAU,EAAE,CAAA;IAEpB,CAAC;CACF"}
|
|
@@ -1,18 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DoorLock Cluster Behavior
|
|
3
|
-
*
|
|
4
|
-
* Handles door lock commands for smart locks
|
|
5
|
-
*/
|
|
6
1
|
import type { BehaviorRegistry } from './BehaviorRegistry.js';
|
|
7
2
|
import { DoorLockServer } from '@matter/main/behaviors/door-lock';
|
|
8
|
-
/**
|
|
9
|
-
* Custom DoorLock Server that calls plugin handlers
|
|
10
|
-
*/
|
|
11
3
|
export declare class HomebridgeDoorLockServer extends DoorLockServer {
|
|
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
|
lockDoor(): Promise<void>;
|
|
18
7
|
unlockDoor(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DoorLockBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/DoorLockBehavior.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DoorLockBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/DoorLockBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAQjE,qBAAa,wBAAyB,SAAQ,cAAc;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAKzC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIrC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CA4B3C"}
|
|
@@ -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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"}
|