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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClusterCommandMapper.js","sourceRoot":"","sources":["../../src/matter/ClusterCommandMapper.ts"],"names":[],"mappings":"AAwBA,MAAM,wBAAwB,GAA8C;IAM1E,KAAK,EAAE;QACL,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;YAClB,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;iBACzC,CAAA;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAGD,YAAY,EAAE;QACZ,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;YAClB,IAAI,cAAc,IAAI,UAAU,EAAE,CAAC;gBACjC,OAAO;oBACL,OAAO,EAAE,aAAa;oBACtB,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,YAAY,EAAE;iBACzC,CAAA;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAOD,YAAY,EAAE;QACZ,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;YAElB,IAAI,wBAAwB,IAAI,UAAU,EAAE,CAAC;gBAC3C,OAAO;oBACL,OAAO,EAAE,wBAAwB;oBACjC,IAAI,EAAE;wBACJ,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;wBACzD,cAAc,EAAE,UAAU,CAAC,cAAc,IAAI,IAAI;qBAClD;iBACF,CAAA;YACH,CAAC;YAGD,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;gBACrD,OAAO;oBACL,OAAO,EAAE,aAAa;oBACtB,IAAI,EAAE;wBACJ,MAAM,EAAE,UAAU,CAAC,MAAM;wBACzB,MAAM,EAAE,UAAU,CAAC,MAAM;wBACzB,cAAc,EAAE,UAAU,CAAC,cAAc,IAAI,IAAI;qBAClD;iBACF,CAAA;YACH,CAAC;YAGD,IAAI,YAAY,IAAI,UAAU,IAAI,mBAAmB,IAAI,UAAU,EAAE,CAAC;gBACpE,OAAO;oBACL,OAAO,EAAE,wBAAwB;oBACjC,IAAI,EAAE;wBACJ,GAAG,EAAE,UAAU,CAAC,UAAU,IAAI,CAAC;wBAC/B,UAAU,EAAE,UAAU,CAAC,iBAAiB,IAAI,CAAC;wBAC7C,cAAc,EAAE,UAAU,CAAC,cAAc,IAAI,IAAI;qBAClD;iBACF,CAAA;YACH,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAOD,UAAU,EAAE;QACV,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;YAElB,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC/D,OAAO;oBACL,OAAO,EAAE,MAAM;oBACf,IAAI,EAAE;wBACJ,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,CAAC;wBACpC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,KAAK;wBAC9B,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,IAAI;qBACxC;iBACF,CAAA;YACH,CAAC;YAGD,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;gBAG5B,OAAO,IAAI,CAAA;YACb,CAAC;YAGD,IAAI,gBAAgB,IAAI,UAAU,EAAE,CAAC;gBAGnC,OAAO,IAAI,CAAA;YACb,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAOD,cAAc,EAAE;QACd,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;YAElB,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,UAAU,CAAC,QAAkB,CAAA;gBAEzC,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;oBACxE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAA;gBACzB,CAAC;YACH,CAAC;YAGD,IAAI,iCAAiC,IAAI,UAAU,EAAE,CAAC;gBACpD,OAAO;oBACL,OAAO,EAAE,oBAAoB;oBAC7B,IAAI,EAAE;wBACJ,sBAAsB,EAAE,UAAU,CAAC,+BAA+B;qBACnE;iBACF,CAAA;YACH,CAAC;YAGD,IAAI,iCAAiC,IAAI,UAAU,EAAE,CAAC;gBACpD,OAAO;oBACL,OAAO,EAAE,oBAAoB;oBAC7B,IAAI,EAAE;wBACJ,sBAAsB,EAAE,UAAU,CAAC,+BAA+B;qBACnE;iBACF,CAAA;YACH,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAOD,QAAQ,EAAE;QACR,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;YAElB,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,UAAU,CAAC,QAAkB,CAAA;gBAEzC,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;oBAC/C,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAA;gBACzB,CAAC;YACH,CAAC;YAGD,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;gBAE9B,OAAO;oBACL,OAAO,EAAE,UAAU,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;iBAChE,CAAA;YACH,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAOD,UAAU,EAAE;QACV,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;YAElB,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,oBAAoB,EAAE,CAAC;gBAC7E,OAAO;oBACL,OAAO,EAAE,oBAAoB;oBAC7B,IAAI,EAAE;wBACJ,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC;wBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,EAAE;qBAChC;iBACF,CAAA;YACH,CAAC;YAGD,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;gBAG/B,OAAO,IAAI,CAAA;YACb,CAAC;YAGD,IAAI,yBAAyB,IAAI,UAAU,EAAE,CAAC;gBAE5C,OAAO,IAAI,CAAA;YACb,CAAC;YAGD,IAAI,yBAAyB,IAAI,UAAU,EAAE,CAAC;gBAE5C,OAAO,IAAI,CAAA;YACb,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAOD,mBAAmB,EAAE;QACnB,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;YAGlB,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;gBAC7B,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,QAAkB,EAAE,CAAA;YACnD,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAGD,UAAU,EAAE;QACV,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;YAClB,IAAI,aAAa,IAAI,UAAU,EAAE,CAAC;gBAChC,OAAO;oBACL,OAAO,EAAE,cAAc;oBACvB,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,WAAW,EAAE;iBAC1C,CAAA;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAGD,YAAY,EAAE;QACZ,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;YAClB,IAAI,aAAa,IAAI,UAAU,EAAE,CAAC;gBAChC,OAAO;oBACL,OAAO,EAAE,cAAc;oBACvB,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,WAAW,EAAE;iBAC1C,CAAA;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAGD,WAAW,EAAE;QACX,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;YAElB,IAAI,eAAe,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC7E,OAAO;oBACL,OAAO,EAAE,aAAa;oBACtB,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,aAAa,EAAE;iBAC7C,CAAA;YACH,CAAC;YAED,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;gBAC7B,OAAO;oBACL,OAAO,EAAE,UAAU;oBACnB,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,QAAQ,EAAE;iBAC3C,CAAA;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF;CACF,CAAA;AAYD,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,UAAmC;IAEnC,MAAM,OAAO,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;IAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gDAAgD,OAAO,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAEtC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAIpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -1,33 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External Matter Accessory Publisher
|
|
3
|
-
*
|
|
4
|
-
* Shared logic for publishing external Matter accessories on dedicated bridges.
|
|
5
|
-
* Used by both MatterBridgeManager and ChildBridgeMatterManager to avoid code duplication.
|
|
6
|
-
*/
|
|
7
1
|
import type { InternalMatterAccessory } from './types.js';
|
|
8
2
|
import { MatterServer } from './server.js';
|
|
9
|
-
/**
|
|
10
|
-
* Configuration context for publishing external Matter accessories
|
|
11
|
-
*/
|
|
12
3
|
export interface ExternalAccessoryPublishContext {
|
|
13
|
-
/** Port service for allocating Matter ports */
|
|
14
4
|
portService: {
|
|
15
5
|
requestMatterPort: (uniqueId: string) => Promise<number | null | undefined>;
|
|
16
6
|
};
|
|
17
|
-
/** Network interfaces to bind to (from bridge config) */
|
|
18
7
|
networkInterfaces?: string[];
|
|
19
|
-
/** Whether debug mode is enabled */
|
|
20
8
|
debugModeEnabled?: boolean;
|
|
21
9
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Result of publishing an external Matter accessory
|
|
24
|
-
*/
|
|
25
10
|
export interface PublishedExternalAccessory {
|
|
26
|
-
/** The MatterServer instance for this accessory */
|
|
27
11
|
server: MatterServer;
|
|
28
|
-
/** Port the server is running on */
|
|
29
12
|
port: number;
|
|
30
|
-
/** Commissioning information */
|
|
31
13
|
commissioningInfo: {
|
|
32
14
|
qrCode?: string;
|
|
33
15
|
manualPairingCode?: string;
|
|
@@ -35,14 +17,5 @@ export interface PublishedExternalAccessory {
|
|
|
35
17
|
commissioned: boolean;
|
|
36
18
|
};
|
|
37
19
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Publish an external Matter accessory on its own dedicated Matter server.
|
|
40
|
-
* This is required for devices like Robotic Vacuum Cleaners that Apple Home
|
|
41
|
-
* requires to be on their own bridge.
|
|
42
|
-
*
|
|
43
|
-
* @param accessory - The Matter accessory to publish
|
|
44
|
-
* @param context - Configuration context for publishing
|
|
45
|
-
* @returns Published accessory info, or null if publishing failed
|
|
46
|
-
*/
|
|
47
20
|
export declare function publishExternalMatterAccessory(accessory: InternalMatterAccessory, context: ExternalAccessoryPublishContext): Promise<PublishedExternalAccessory | null>;
|
|
48
21
|
//# sourceMappingURL=ExternalMatterAccessoryPublisher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalMatterAccessoryPublisher.d.ts","sourceRoot":"","sources":["../../src/matter/ExternalMatterAccessoryPublisher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExternalMatterAccessoryPublisher.d.ts","sourceRoot":"","sources":["../../src/matter/ExternalMatterAccessoryPublisher.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAKzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAO1C,MAAM,WAAW,+BAA+B;IAE9C,WAAW,EAAE;QACX,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;KAC5E,CAAA;IAED,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE5B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAKD,MAAM,WAAW,0BAA0B;IAEzC,MAAM,EAAE,YAAY,CAAA;IAEpB,IAAI,EAAE,MAAM,CAAA;IAEZ,iBAAiB,EAAE;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,YAAY,EAAE,OAAO,CAAA;KACtB,CAAA;CACF;AAWD,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,uBAAuB,EAClC,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAgE5C"}
|
|
@@ -1,25 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External Matter Accessory Publisher
|
|
3
|
-
*
|
|
4
|
-
* Shared logic for publishing external Matter accessories on dedicated bridges.
|
|
5
|
-
* Used by both MatterBridgeManager and ChildBridgeMatterManager to avoid code duplication.
|
|
6
|
-
*/
|
|
7
1
|
import { Logger } from '../logger.js';
|
|
8
2
|
import { User } from '../user.js';
|
|
9
3
|
import { generate } from '../util/mac.js';
|
|
10
4
|
import { MatterServer } from './server.js';
|
|
11
5
|
const log = Logger.internal;
|
|
12
|
-
/**
|
|
13
|
-
* Publish an external Matter accessory on its own dedicated Matter server.
|
|
14
|
-
* This is required for devices like Robotic Vacuum Cleaners that Apple Home
|
|
15
|
-
* requires to be on their own bridge.
|
|
16
|
-
*
|
|
17
|
-
* @param accessory - The Matter accessory to publish
|
|
18
|
-
* @param context - Configuration context for publishing
|
|
19
|
-
* @returns Published accessory info, or null if publishing failed
|
|
20
|
-
*/
|
|
21
6
|
export async function publishExternalMatterAccessory(accessory, context) {
|
|
22
|
-
// Validate accessory has required fields
|
|
23
7
|
if (!accessory.uuid) {
|
|
24
8
|
log.error('External Matter accessory missing UUID - skipping');
|
|
25
9
|
return null;
|
|
@@ -28,11 +12,8 @@ export async function publishExternalMatterAccessory(accessory, context) {
|
|
|
28
12
|
log.error(`External Matter accessory ${accessory.uuid} missing displayName - skipping`);
|
|
29
13
|
return null;
|
|
30
14
|
}
|
|
31
|
-
// Generate deterministic MAC address from UUID (same pattern as HAP external accessories)
|
|
32
15
|
const advertiseAddress = generate(accessory.uuid);
|
|
33
|
-
// For Matter, use the MAC without colons as uniqueId
|
|
34
16
|
const uniqueId = advertiseAddress.replace(/:/g, '');
|
|
35
|
-
// Allocate Matter port for the external Matter server
|
|
36
17
|
const port = await context.portService.requestMatterPort(uniqueId);
|
|
37
18
|
if (!port) {
|
|
38
19
|
log.error(`Failed to allocate Matter port for external Matter accessory ${accessory.displayName}`);
|
|
@@ -40,7 +21,6 @@ export async function publishExternalMatterAccessory(accessory, context) {
|
|
|
40
21
|
return null;
|
|
41
22
|
}
|
|
42
23
|
log.info(`Allocated port ${port} for external Matter accessory: ${accessory.displayName}`);
|
|
43
|
-
// Create dedicated Matter server for this accessory
|
|
44
24
|
const matterServer = new MatterServer({
|
|
45
25
|
port,
|
|
46
26
|
uniqueId,
|
|
@@ -48,21 +28,16 @@ export async function publishExternalMatterAccessory(accessory, context) {
|
|
|
48
28
|
manufacturer: accessory.manufacturer,
|
|
49
29
|
model: accessory.model,
|
|
50
30
|
firmwareRevision: accessory.firmwareRevision,
|
|
51
|
-
serialNumber: accessory.serialNumber || uniqueId,
|
|
31
|
+
serialNumber: accessory.serialNumber || uniqueId,
|
|
52
32
|
debugModeEnabled: context.debugModeEnabled,
|
|
53
|
-
externalAccessory: true,
|
|
33
|
+
externalAccessory: true,
|
|
54
34
|
networkInterfaces: context.networkInterfaces,
|
|
55
35
|
});
|
|
56
|
-
// Start the Matter server (but don't run it yet due to externalAccessory mode)
|
|
57
36
|
await matterServer.start();
|
|
58
|
-
// Get plugin identifier from accessory
|
|
59
37
|
const pluginIdentifier = accessory._associatedPlugin || 'unknown';
|
|
60
|
-
// Register the accessory to this dedicated server
|
|
61
38
|
await matterServer.registerPlatformAccessories(pluginIdentifier, 'ExternalMatter', [accessory]);
|
|
62
|
-
// Now run the server with the device already attached (required for external accessories)
|
|
63
39
|
await matterServer.runServer();
|
|
64
40
|
log.info(`✓ External Matter accessory published: ${accessory.displayName} on port ${port}`);
|
|
65
|
-
// Get commissioning info
|
|
66
41
|
const commissioningInfo = matterServer.getCommissioningInfo();
|
|
67
42
|
return {
|
|
68
43
|
server: matterServer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalMatterAccessoryPublisher.js","sourceRoot":"","sources":["../../src/matter/ExternalMatterAccessoryPublisher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExternalMatterAccessoryPublisher.js","sourceRoot":"","sources":["../../src/matter/ExternalMatterAccessoryPublisher.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAA;AA0C3B,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,SAAkC,EAClC,OAAwC;IAGxC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpB,GAAG,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;QAC9D,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,6BAA6B,SAAS,CAAC,IAAI,iCAAiC,CAAC,CAAA;QACvF,OAAO,IAAI,CAAA;IACb,CAAC;IAGD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAGjD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAGnD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAClE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,KAAK,CAAC,gEAAgE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAClG,GAAG,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAA;QAC1G,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,mCAAmC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;IAG1F,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,IAAI;QACJ,QAAQ;QACR,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE;QAC9B,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;QAC5C,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,QAAQ;QAChD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,iBAAiB,EAAE,IAAI;QACvB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC7C,CAAC,CAAA;IAGF,MAAM,YAAY,CAAC,KAAK,EAAE,CAAA;IAG1B,MAAM,gBAAgB,GAAG,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAA;IAGjE,MAAM,YAAY,CAAC,2BAA2B,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAG/F,MAAM,YAAY,CAAC,SAAS,EAAE,CAAA;IAE9B,GAAG,CAAC,IAAI,CAAC,0CAA0C,SAAS,CAAC,WAAW,YAAY,IAAI,EAAE,CAAC,CAAA;IAG3F,MAAM,iBAAiB,GAAG,YAAY,CAAC,oBAAoB,EAAE,CAAA;IAE7D,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,IAAI;QACJ,iBAAiB;KAClB,CAAA;AACH,CAAC"}
|
|
@@ -1,49 +1,13 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Matter API Implementation
|
|
3
|
-
*
|
|
4
|
-
* This class implements the Matter API facade, keeping Matter-specific logic
|
|
5
|
-
* separate from the core HomebridgeAPI class.
|
|
6
|
-
*
|
|
7
|
-
* Benefits:
|
|
8
|
-
* - Reduces changes to core api.ts file
|
|
9
|
-
* - Lazy-loads Matter code only when used
|
|
10
|
-
* - Clear separation between HAP and Matter
|
|
11
|
-
* - Easier to test in isolation
|
|
12
|
-
* - Validates accessories before registration
|
|
13
|
-
* - Provides detailed error messages for debugging
|
|
14
|
-
*/
|
|
15
1
|
import type { EndpointType } from '@matter/main';
|
|
16
2
|
import type { HomebridgeAPI, MatterAPI, PlatformName, PluginIdentifier } from '../api.js';
|
|
17
3
|
import { clusters, MatterAccessory } from './index.js';
|
|
18
|
-
/**
|
|
19
|
-
* Implementation of the Matter API
|
|
20
|
-
* Delegates to the HomebridgeAPI instance for event emission and server access
|
|
21
|
-
* Provides validation and coordination for Matter accessory operations
|
|
22
|
-
*/
|
|
23
4
|
export declare class MatterAPIImpl implements MatterAPI {
|
|
24
5
|
private readonly api;
|
|
25
6
|
constructor(api: HomebridgeAPI);
|
|
26
|
-
/**
|
|
27
|
-
* Validate a Matter accessory has required fields
|
|
28
|
-
* @throws MatterAccessoryValidationError if validation fails
|
|
29
|
-
*/
|
|
30
7
|
private validateAccessory;
|
|
31
|
-
/**
|
|
32
|
-
* Validate an array of accessories, logging errors for invalid ones
|
|
33
|
-
* @returns Array of valid accessories only
|
|
34
|
-
*/
|
|
35
8
|
private validateAccessories;
|
|
36
|
-
/**
|
|
37
|
-
* Validate cluster name is valid
|
|
38
|
-
*/
|
|
39
9
|
private validateClusterName;
|
|
40
|
-
/**
|
|
41
|
-
* UUID generator (alias of api.hap.uuid for convenience)
|
|
42
|
-
*/
|
|
43
10
|
get uuid(): typeof import("hap-nodejs/dist/lib/util/uuid.js");
|
|
44
|
-
/**
|
|
45
|
-
* Matter device types for creating accessories
|
|
46
|
-
*/
|
|
47
11
|
get deviceTypes(): {
|
|
48
12
|
readonly OnOffLight: import("@matter/node/devices").OnOffLightDevice;
|
|
49
13
|
readonly DimmableLight: import("@matter/node/devices").DimmableLightDevice;
|
|
@@ -439,13 +403,7 @@ export declare class MatterAPIImpl implements MatterAPI {
|
|
|
439
403
|
readonly Pump: import("@matter/node/devices").PumpDevice;
|
|
440
404
|
readonly RoomAirConditioner: import("@matter/node/devices").RoomAirConditionerDevice;
|
|
441
405
|
};
|
|
442
|
-
/**
|
|
443
|
-
* Matter clusters - Direct access to Matter.js cluster definitions
|
|
444
|
-
*/
|
|
445
406
|
get clusters(): typeof clusters;
|
|
446
|
-
/**
|
|
447
|
-
* Matter cluster names for type safety and autocomplete
|
|
448
|
-
*/
|
|
449
407
|
get clusterNames(): {
|
|
450
408
|
readonly OnOff: "onOff";
|
|
451
409
|
readonly LevelControl: "levelControl";
|
|
@@ -475,37 +433,11 @@ export declare class MatterAPIImpl implements MatterAPI {
|
|
|
475
433
|
readonly BasicInformation: "basicInformation";
|
|
476
434
|
readonly BridgedDeviceBasicInformation: "bridgedDeviceBasicInformation";
|
|
477
435
|
};
|
|
478
|
-
/**
|
|
479
|
-
* Matter types - Access to Matter.js cluster type definitions and enums
|
|
480
|
-
*/
|
|
481
436
|
get types(): typeof clusters;
|
|
482
|
-
/**
|
|
483
|
-
* Register Matter platform accessories
|
|
484
|
-
* Automatically handles external accessories (e.g., RoboticVacuumCleaner) that need dedicated bridges
|
|
485
|
-
* Validates accessories before registration
|
|
486
|
-
* Returns a promise that resolves when all accessories are fully registered
|
|
487
|
-
*/
|
|
488
437
|
registerPlatformAccessories(pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: MatterAccessory[]): Promise<void>;
|
|
489
|
-
/**
|
|
490
|
-
* Update Matter platform accessories in the cache
|
|
491
|
-
* Similar to api.updatePlatformAccessories() for HAP accessories
|
|
492
|
-
*/
|
|
493
438
|
updatePlatformAccessories(accessories: MatterAccessory[]): Promise<void>;
|
|
494
|
-
/**
|
|
495
|
-
* Unregister Matter platform accessories
|
|
496
|
-
* Automatically handles external accessories (e.g., RoboticVacuumCleaner) that have dedicated bridges
|
|
497
|
-
*/
|
|
498
439
|
unregisterPlatformAccessories(pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: MatterAccessory[]): Promise<void>;
|
|
499
|
-
/**
|
|
500
|
-
* Update a Matter accessory's cluster state
|
|
501
|
-
* Validates inputs before updating
|
|
502
|
-
*/
|
|
503
440
|
updateAccessoryState(uuid: string, cluster: string, attributes: Record<string, unknown>, partId?: string): Promise<void>;
|
|
504
|
-
/**
|
|
505
|
-
* Get a Matter accessory's current cluster state
|
|
506
|
-
* Checks both external servers and main bridge server
|
|
507
|
-
* Validates inputs before retrieving state
|
|
508
|
-
*/
|
|
509
441
|
getAccessoryState(uuid: string, cluster: string, partId?: string): Promise<Record<string, unknown> | undefined>;
|
|
510
442
|
}
|
|
511
443
|
//# sourceMappingURL=MatterAPIImpl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatterAPIImpl.d.ts","sourceRoot":"","sources":["../../src/matter/MatterAPIImpl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MatterAPIImpl.d.ts","sourceRoot":"","sources":["../../src/matter/MatterAPIImpl.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAKzF,OAAO,EAAgB,QAAQ,EAAe,eAAe,EAA6B,MAAM,YAAY,CAAA;AAmC5G,qBAAa,aAAc,YAAW,SAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,aAAa;IAM/C,OAAO,CAAC,iBAAiB;IAgDzB,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,mBAAmB;IAc3B,IAAI,IAAI,sDAEP;IAKD,IAAI,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uFAgQg69B,uBAAuB;;4EAAmL,uBAAuB;;;;;;;;;;4EAAkpB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;yFAAwwC,uBAAuB;;8EAAuL,uBAAuB;;;oFAAwO,uBAAuB;;;;;;;;;;;;;wFAAk2B,uBAAuB;;;;;;;;;;8EAAymB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA9P7hmC;IAKD,IAAI,QAAQ,oBAEX;IAKD,IAAI,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEf;IAKD,IAAI,KAAK,oBAER;IAQK,2BAA2B,CAC/B,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,eAAe,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC;IAkFV,yBAAyB,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxE,6BAA6B,CACjC,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,eAAe,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC;IAuCV,oBAAoB,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAiCV,iBAAiB,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CAqChD"}
|
|
@@ -1,37 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Matter API Implementation
|
|
3
|
-
*
|
|
4
|
-
* This class implements the Matter API facade, keeping Matter-specific logic
|
|
5
|
-
* separate from the core HomebridgeAPI class.
|
|
6
|
-
*
|
|
7
|
-
* Benefits:
|
|
8
|
-
* - Reduces changes to core api.ts file
|
|
9
|
-
* - Lazy-loads Matter code only when used
|
|
10
|
-
* - Clear separation between HAP and Matter
|
|
11
|
-
* - Easier to test in isolation
|
|
12
|
-
* - Validates accessories before registration
|
|
13
|
-
* - Provides detailed error messages for debugging
|
|
14
|
-
*/
|
|
15
1
|
import { Logger } from '../logger.js';
|
|
16
2
|
import { clusterNames, clusters, deviceTypes, MatterTypes } from './index.js';
|
|
17
3
|
const log = Logger.internal;
|
|
18
|
-
/**
|
|
19
|
-
* Device types that require dedicated external bridges
|
|
20
|
-
* These devices must be published on their own bridge (not added to main/child bridge)
|
|
21
|
-
*/
|
|
22
4
|
const EXTERNAL_DEVICE_TYPES = [
|
|
23
5
|
deviceTypes.RoboticVacuumCleaner,
|
|
24
6
|
];
|
|
25
|
-
/**
|
|
26
|
-
* Check if a device type requires external bridge publishing
|
|
27
|
-
*/
|
|
28
7
|
function requiresExternalBridge(deviceType) {
|
|
29
|
-
// Compare device type IDs for exact match
|
|
30
8
|
return EXTERNAL_DEVICE_TYPES.some(externalType => externalType.deviceType === deviceType.deviceType);
|
|
31
9
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Validation error for Matter accessories
|
|
34
|
-
*/
|
|
35
10
|
class MatterAccessoryValidationError extends Error {
|
|
36
11
|
accessory;
|
|
37
12
|
constructor(message, accessory) {
|
|
@@ -40,20 +15,11 @@ class MatterAccessoryValidationError extends Error {
|
|
|
40
15
|
this.name = 'MatterAccessoryValidationError';
|
|
41
16
|
}
|
|
42
17
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Implementation of the Matter API
|
|
45
|
-
* Delegates to the HomebridgeAPI instance for event emission and server access
|
|
46
|
-
* Provides validation and coordination for Matter accessory operations
|
|
47
|
-
*/
|
|
48
18
|
export class MatterAPIImpl {
|
|
49
19
|
api;
|
|
50
20
|
constructor(api) {
|
|
51
21
|
this.api = api;
|
|
52
22
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Validate a Matter accessory has required fields
|
|
55
|
-
* @throws MatterAccessoryValidationError if validation fails
|
|
56
|
-
*/
|
|
57
23
|
validateAccessory(accessory, context) {
|
|
58
24
|
if (!accessory.uuid) {
|
|
59
25
|
throw new MatterAccessoryValidationError(`${context}: Matter accessory missing required 'uuid' field`, accessory);
|
|
@@ -74,10 +40,6 @@ export class MatterAPIImpl {
|
|
|
74
40
|
throw new MatterAccessoryValidationError(`${context}: Matter accessory '${accessory.displayName}' (${accessory.uuid}) missing required 'serialNumber' field`, accessory);
|
|
75
41
|
}
|
|
76
42
|
}
|
|
77
|
-
/**
|
|
78
|
-
* Validate an array of accessories, logging errors for invalid ones
|
|
79
|
-
* @returns Array of valid accessories only
|
|
80
|
-
*/
|
|
81
43
|
validateAccessories(accessories, context) {
|
|
82
44
|
const validAccessories = [];
|
|
83
45
|
for (const accessory of accessories) {
|
|
@@ -97,59 +59,33 @@ export class MatterAPIImpl {
|
|
|
97
59
|
}
|
|
98
60
|
return validAccessories;
|
|
99
61
|
}
|
|
100
|
-
/**
|
|
101
|
-
* Validate cluster name is valid
|
|
102
|
-
*/
|
|
103
62
|
validateClusterName(clusterName, context) {
|
|
104
|
-
// Check if cluster name is in the known cluster names
|
|
105
63
|
const validClusterNames = Object.values(clusterNames);
|
|
106
64
|
if (!validClusterNames.includes(clusterName)) {
|
|
107
65
|
log.warn(`${context}: Unknown cluster name '${clusterName}'. This might cause issues. `
|
|
108
66
|
+ `Valid clusters: ${validClusterNames.join(', ')}`);
|
|
109
67
|
}
|
|
110
68
|
}
|
|
111
|
-
/**
|
|
112
|
-
* UUID generator (alias of api.hap.uuid for convenience)
|
|
113
|
-
*/
|
|
114
69
|
get uuid() {
|
|
115
70
|
return this.api.hap.uuid;
|
|
116
71
|
}
|
|
117
|
-
/**
|
|
118
|
-
* Matter device types for creating accessories
|
|
119
|
-
*/
|
|
120
72
|
get deviceTypes() {
|
|
121
73
|
return deviceTypes;
|
|
122
74
|
}
|
|
123
|
-
/**
|
|
124
|
-
* Matter clusters - Direct access to Matter.js cluster definitions
|
|
125
|
-
*/
|
|
126
75
|
get clusters() {
|
|
127
76
|
return clusters;
|
|
128
77
|
}
|
|
129
|
-
/**
|
|
130
|
-
* Matter cluster names for type safety and autocomplete
|
|
131
|
-
*/
|
|
132
78
|
get clusterNames() {
|
|
133
79
|
return clusterNames;
|
|
134
80
|
}
|
|
135
|
-
/**
|
|
136
|
-
* Matter types - Access to Matter.js cluster type definitions and enums
|
|
137
|
-
*/
|
|
138
81
|
get types() {
|
|
139
82
|
return MatterTypes;
|
|
140
83
|
}
|
|
141
|
-
/**
|
|
142
|
-
* Register Matter platform accessories
|
|
143
|
-
* Automatically handles external accessories (e.g., RoboticVacuumCleaner) that need dedicated bridges
|
|
144
|
-
* Validates accessories before registration
|
|
145
|
-
* Returns a promise that resolves when all accessories are fully registered
|
|
146
|
-
*/
|
|
147
84
|
async registerPlatformAccessories(pluginIdentifier, platformName, accessories) {
|
|
148
85
|
if (accessories.length === 0) {
|
|
149
86
|
log.warn(`${pluginIdentifier}: Attempted to register 0 Matter accessories`);
|
|
150
87
|
return;
|
|
151
88
|
}
|
|
152
|
-
// Validate all accessories before registration
|
|
153
89
|
const validAccessories = this.validateAccessories(accessories, `registerPlatformAccessories (${pluginIdentifier}/${platformName})`);
|
|
154
90
|
if (validAccessories.length === 0) {
|
|
155
91
|
log.error(`${pluginIdentifier}: All ${accessories.length} Matter accessories failed validation`);
|
|
@@ -158,7 +94,6 @@ export class MatterAPIImpl {
|
|
|
158
94
|
if (validAccessories.length < accessories.length) {
|
|
159
95
|
log.warn(`${pluginIdentifier}: ${accessories.length - validAccessories.length} of ${accessories.length} Matter accessories failed validation`);
|
|
160
96
|
}
|
|
161
|
-
// Split accessories into normal (bridge) and external (standalone) based on device type
|
|
162
97
|
const normalAccessories = [];
|
|
163
98
|
const externalAccessories = [];
|
|
164
99
|
for (const accessory of validAccessories) {
|
|
@@ -169,60 +104,42 @@ export class MatterAPIImpl {
|
|
|
169
104
|
normalAccessories.push(accessory);
|
|
170
105
|
}
|
|
171
106
|
}
|
|
172
|
-
// Handle normal accessories (added to bridge)
|
|
173
107
|
if (normalAccessories.length > 0) {
|
|
174
|
-
// Add plugin/platform association
|
|
175
108
|
normalAccessories.forEach((accessory) => {
|
|
176
109
|
const internal = accessory;
|
|
177
110
|
internal._associatedPlugin = pluginIdentifier;
|
|
178
111
|
internal._associatedPlatform = platformName;
|
|
179
112
|
});
|
|
180
113
|
log.debug(`${pluginIdentifier}: Registering ${normalAccessories.length} Matter accessor${normalAccessories.length === 1 ? 'y' : 'ies'} for platform '${platformName}'`);
|
|
181
|
-
this.api.emit("registerMatterPlatformAccessories"
|
|
114
|
+
this.api.emit("registerMatterPlatformAccessories", pluginIdentifier, platformName, normalAccessories);
|
|
182
115
|
}
|
|
183
|
-
// Handle external accessories (standalone bridges)
|
|
184
116
|
if (externalAccessories.length > 0) {
|
|
185
|
-
// Add plugin association (no platform for external)
|
|
186
117
|
externalAccessories.forEach((accessory) => {
|
|
187
118
|
const internal = accessory;
|
|
188
119
|
internal._associatedPlugin = pluginIdentifier;
|
|
189
120
|
});
|
|
190
121
|
log.debug(`${pluginIdentifier}: Publishing ${externalAccessories.length} external Matter accessor${externalAccessories.length === 1 ? 'y' : 'ies'} (${externalAccessories.map(a => a.displayName).join(', ')})`);
|
|
191
|
-
// Create a promise to track when external publishing completes
|
|
192
122
|
const registrationId = `${pluginIdentifier}-${Date.now()}-${Math.random()}`;
|
|
193
123
|
const registrationPromise = new Promise((resolve) => {
|
|
194
|
-
// Store the resolve function so it can be called when publishing completes
|
|
195
124
|
this.api._pendingExternalRegistrations.set(registrationId, resolve);
|
|
196
125
|
});
|
|
197
|
-
|
|
198
|
-
this.api.emit("publishExternalMatterAccessories" /* InternalAPIEvent.PUBLISH_EXTERNAL_MATTER_ACCESSORIES */, externalAccessories, registrationId);
|
|
199
|
-
// Wait for external publishing to complete
|
|
126
|
+
this.api.emit("publishExternalMatterAccessories", externalAccessories, registrationId);
|
|
200
127
|
await registrationPromise;
|
|
201
128
|
}
|
|
202
129
|
}
|
|
203
|
-
/**
|
|
204
|
-
* Update Matter platform accessories in the cache
|
|
205
|
-
* Similar to api.updatePlatformAccessories() for HAP accessories
|
|
206
|
-
*/
|
|
207
130
|
async updatePlatformAccessories(accessories) {
|
|
208
131
|
if (accessories.length === 0) {
|
|
209
132
|
log.warn('Attempted to update 0 Matter platform accessories');
|
|
210
133
|
return;
|
|
211
134
|
}
|
|
212
135
|
log.debug(`Updating ${accessories.length} Matter platform accessor${accessories.length === 1 ? 'y' : 'ies'} in cache`);
|
|
213
|
-
|
|
214
|
-
this.api.emit("updateMatterPlatformAccessories" /* InternalAPIEvent.UPDATE_MATTER_PLATFORM_ACCESSORIES */, accessories);
|
|
136
|
+
this.api.emit("updateMatterPlatformAccessories", accessories);
|
|
215
137
|
}
|
|
216
|
-
/**
|
|
217
|
-
* Unregister Matter platform accessories
|
|
218
|
-
* Automatically handles external accessories (e.g., RoboticVacuumCleaner) that have dedicated bridges
|
|
219
|
-
*/
|
|
220
138
|
async unregisterPlatformAccessories(pluginIdentifier, platformName, accessories) {
|
|
221
139
|
if (accessories.length === 0) {
|
|
222
140
|
log.warn(`${pluginIdentifier}: Attempted to unregister 0 Matter accessories`);
|
|
223
141
|
return;
|
|
224
142
|
}
|
|
225
|
-
// Split accessories into normal (bridge) and external (standalone) based on device type
|
|
226
143
|
const normalAccessories = [];
|
|
227
144
|
const externalAccessories = [];
|
|
228
145
|
for (const accessory of accessories) {
|
|
@@ -233,23 +150,16 @@ export class MatterAPIImpl {
|
|
|
233
150
|
normalAccessories.push(accessory);
|
|
234
151
|
}
|
|
235
152
|
}
|
|
236
|
-
// Handle normal accessories (on bridge)
|
|
237
153
|
if (normalAccessories.length > 0) {
|
|
238
154
|
log.debug(`${pluginIdentifier}: Unregistering ${normalAccessories.length} Matter accessor${normalAccessories.length === 1 ? 'y' : 'ies'} from platform '${platformName}'`);
|
|
239
|
-
this.api.emit("unregisterMatterPlatformAccessories"
|
|
155
|
+
this.api.emit("unregisterMatterPlatformAccessories", pluginIdentifier, platformName, normalAccessories);
|
|
240
156
|
}
|
|
241
|
-
// Handle external accessories (standalone bridges)
|
|
242
157
|
if (externalAccessories.length > 0) {
|
|
243
158
|
log.debug(`${pluginIdentifier}: Unregistering ${externalAccessories.length} external Matter accessor${externalAccessories.length === 1 ? 'y' : 'ies'} (${externalAccessories.map(a => a.displayName).join(', ')})`);
|
|
244
|
-
this.api.emit("unregisterExternalMatterAccessories"
|
|
159
|
+
this.api.emit("unregisterExternalMatterAccessories", externalAccessories);
|
|
245
160
|
}
|
|
246
161
|
}
|
|
247
|
-
/**
|
|
248
|
-
* Update a Matter accessory's cluster state
|
|
249
|
-
* Validates inputs before updating
|
|
250
|
-
*/
|
|
251
162
|
async updateAccessoryState(uuid, cluster, attributes, partId) {
|
|
252
|
-
// Validate inputs
|
|
253
163
|
if (!uuid) {
|
|
254
164
|
log.error('updateAccessoryState: uuid parameter is required');
|
|
255
165
|
return;
|
|
@@ -262,18 +172,11 @@ export class MatterAPIImpl {
|
|
|
262
172
|
log.warn(`updateAccessoryState: No attributes provided for accessory ${uuid}, cluster ${cluster}`);
|
|
263
173
|
return;
|
|
264
174
|
}
|
|
265
|
-
// Validate cluster name (warning only, don't block)
|
|
266
175
|
this.validateClusterName(cluster, `updateAccessoryState (${uuid})`);
|
|
267
176
|
log.debug(`Updating Matter accessory state: uuid=${uuid}, cluster=${cluster}, attributes=${Object.keys(attributes).join(', ')}${partId ? `, partId=${partId}` : ''}`);
|
|
268
|
-
this.api.emit("updateMatterAccessoryState"
|
|
177
|
+
this.api.emit("updateMatterAccessoryState", uuid, cluster, attributes, partId);
|
|
269
178
|
}
|
|
270
|
-
/**
|
|
271
|
-
* Get a Matter accessory's current cluster state
|
|
272
|
-
* Checks both external servers and main bridge server
|
|
273
|
-
* Validates inputs before retrieving state
|
|
274
|
-
*/
|
|
275
179
|
async getAccessoryState(uuid, cluster, partId) {
|
|
276
|
-
// Validate inputs
|
|
277
180
|
if (!uuid) {
|
|
278
181
|
log.error('getAccessoryState: uuid parameter is required');
|
|
279
182
|
return undefined;
|
|
@@ -282,10 +185,8 @@ export class MatterAPIImpl {
|
|
|
282
185
|
log.error(`getAccessoryState: cluster parameter is required for accessory ${uuid}`);
|
|
283
186
|
return undefined;
|
|
284
187
|
}
|
|
285
|
-
// Validate cluster name (warning only, don't block)
|
|
286
188
|
this.validateClusterName(cluster, `getAccessoryState (${uuid})`);
|
|
287
189
|
log.debug(`Getting Matter accessory state: uuid=${uuid}, cluster=${cluster}${partId ? `, partId=${partId}` : ''}`);
|
|
288
|
-
// Check external servers first (for accessories like robot vacuums)
|
|
289
190
|
const matterManager = this.api._matterManager;
|
|
290
191
|
if (matterManager?.externalMatterServers) {
|
|
291
192
|
const externalServer = matterManager.externalMatterServers.get(uuid);
|
|
@@ -293,7 +194,6 @@ export class MatterAPIImpl {
|
|
|
293
194
|
return externalServer.getAccessoryState(uuid, cluster, partId);
|
|
294
195
|
}
|
|
295
196
|
}
|
|
296
|
-
// Otherwise, try the main bridge server
|
|
297
197
|
const matterServer = this.api._matterServer;
|
|
298
198
|
if (!matterServer) {
|
|
299
199
|
log.debug(`getAccessoryState: Matter server not available for accessory ${uuid}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatterAPIImpl.js","sourceRoot":"","sources":["../../src/matter/MatterAPIImpl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MatterAPIImpl.js","sourceRoot":"","sources":["../../src/matter/MatterAPIImpl.ts"],"names":[],"mappings":"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"}
|