homebridge 2.0.0-beta.5 → 2.0.0-beta.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -17
- package/bin/homebridge.js +22 -0
- package/config-sample.json +3 -3
- package/dist/api.d.ts +137 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +151 -0
- package/dist/api.js.map +1 -0
- package/{lib → dist}/bridgeService.d.ts +16 -32
- package/dist/bridgeService.d.ts.map +1 -0
- package/dist/bridgeService.js +341 -0
- package/dist/bridgeService.js.map +1 -0
- package/dist/childBridgeFork.d.ts +40 -0
- package/dist/childBridgeFork.d.ts.map +1 -0
- package/dist/childBridgeFork.js +362 -0
- package/dist/childBridgeFork.js.map +1 -0
- package/dist/childBridgeService.d.ts +146 -0
- package/dist/childBridgeService.d.ts.map +1 -0
- package/dist/childBridgeService.js +416 -0
- package/dist/childBridgeService.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +88 -0
- package/dist/cli.js.map +1 -0
- package/dist/externalPortService.d.ts +26 -0
- package/dist/externalPortService.d.ts.map +1 -0
- package/dist/externalPortService.js +77 -0
- package/dist/externalPortService.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/ipcService.d.ts +58 -0
- package/dist/ipcService.d.ts.map +1 -0
- package/dist/ipcService.js +43 -0
- package/dist/ipcService.js.map +1 -0
- package/dist/logger.d.ts +38 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +102 -0
- package/dist/logger.js.map +1 -0
- package/dist/matter/BaseMatterManager.d.ts +20 -0
- package/dist/matter/BaseMatterManager.d.ts.map +1 -0
- package/dist/matter/BaseMatterManager.js +183 -0
- package/dist/matter/BaseMatterManager.js.map +1 -0
- package/dist/matter/ChildBridgeMatterManager.d.ts +35 -0
- package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -0
- package/dist/matter/ChildBridgeMatterManager.js +222 -0
- package/dist/matter/ChildBridgeMatterManager.js.map +1 -0
- package/dist/matter/ClusterCommandMapper.d.ts +5 -0
- package/dist/matter/ClusterCommandMapper.d.ts.map +1 -0
- package/dist/matter/ClusterCommandMapper.js +222 -0
- package/dist/matter/ClusterCommandMapper.js.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +22 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.js +49 -0
- package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -0
- package/dist/matter/MatterAPIImpl.d.ts +443 -0
- package/dist/matter/MatterAPIImpl.d.ts.map +1 -0
- package/dist/matter/MatterAPIImpl.js +210 -0
- package/dist/matter/MatterAPIImpl.js.map +1 -0
- package/dist/matter/MatterBridgeManager.d.ts +40 -0
- package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
- package/dist/matter/MatterBridgeManager.js +340 -0
- package/dist/matter/MatterBridgeManager.js.map +1 -0
- package/dist/matter/MatterConfigCollector.d.ts +7 -0
- package/dist/matter/MatterConfigCollector.d.ts.map +1 -0
- package/dist/matter/MatterConfigCollector.js +65 -0
- package/dist/matter/MatterConfigCollector.js.map +1 -0
- package/dist/matter/accessoryCache.d.ts +57 -0
- package/dist/matter/accessoryCache.d.ts.map +1 -0
- package/dist/matter/accessoryCache.js +155 -0
- package/dist/matter/accessoryCache.js.map +1 -0
- package/dist/matter/behaviors/AirQualityBehavior.d.ts +8 -0
- package/dist/matter/behaviors/AirQualityBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/AirQualityBehavior.js +11 -0
- package/dist/matter/behaviors/AirQualityBehavior.js.map +1 -0
- package/dist/matter/behaviors/BehaviorRegistry.d.ts +27 -0
- package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -0
- package/dist/matter/behaviors/BehaviorRegistry.js +110 -0
- package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -0
- package/dist/matter/behaviors/ColorControlBehavior.d.ts +12 -0
- package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ColorControlBehavior.js +139 -0
- package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -0
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts +32 -0
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js +51 -0
- package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js.map +1 -0
- package/dist/matter/behaviors/DoorLockBehavior.d.ts +7 -0
- package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/DoorLockBehavior.js +48 -0
- package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -0
- package/dist/matter/behaviors/FanControlBehavior.d.ts +7 -0
- package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/FanControlBehavior.js +57 -0
- package/dist/matter/behaviors/FanControlBehavior.js.map +1 -0
- package/dist/matter/behaviors/IdentifyBehavior.d.ts +7 -0
- package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/IdentifyBehavior.js +25 -0
- package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -0
- package/dist/matter/behaviors/LevelControlBehavior.d.ts +11 -0
- package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/LevelControlBehavior.js +100 -0
- package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -0
- package/dist/matter/behaviors/OnOffBehavior.d.ts +8 -0
- package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/OnOffBehavior.js +60 -0
- package/dist/matter/behaviors/OnOffBehavior.js.map +1 -0
- package/dist/matter/behaviors/RegistryManager.d.ts +15 -0
- package/dist/matter/behaviors/RegistryManager.d.ts.map +1 -0
- package/dist/matter/behaviors/RegistryManager.js +31 -0
- package/dist/matter/behaviors/RegistryManager.js.map +1 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +14 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.js +29 -0
- package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +10 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js +81 -0
- package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +14 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.js +29 -0
- package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +9 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.js +62 -0
- package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -0
- package/dist/matter/behaviors/ThermostatBehavior.d.ts +9 -0
- package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/ThermostatBehavior.js +92 -0
- package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +12 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.js +108 -0
- package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -0
- package/dist/matter/behaviors/index.d.ts +18 -0
- package/dist/matter/behaviors/index.d.ts.map +1 -0
- package/dist/matter/behaviors/index.js +17 -0
- package/dist/matter/behaviors/index.js.map +1 -0
- package/dist/matter/clusterTypes.d.ts +178 -0
- package/dist/matter/clusterTypes.d.ts.map +1 -0
- package/dist/matter/clusterTypes.js +2 -0
- package/dist/matter/clusterTypes.js.map +1 -0
- package/dist/matter/configValidator.d.ts +26 -0
- package/dist/matter/configValidator.d.ts.map +1 -0
- package/dist/matter/configValidator.js +173 -0
- package/dist/matter/configValidator.js.map +1 -0
- package/dist/matter/errorHandler.d.ts +11 -0
- package/dist/matter/errorHandler.d.ts.map +1 -0
- package/dist/matter/errorHandler.js +81 -0
- package/dist/matter/errorHandler.js.map +1 -0
- package/dist/matter/errors.d.ts +46 -0
- package/dist/matter/errors.d.ts.map +1 -0
- package/dist/matter/errors.js +68 -0
- package/dist/matter/errors.js.map +1 -0
- package/dist/matter/index.d.ts +97 -0
- package/dist/matter/index.d.ts.map +1 -0
- package/dist/matter/index.js +10 -0
- package/dist/matter/index.js.map +1 -0
- package/dist/matter/logFormatter.d.ts +2 -0
- package/dist/matter/logFormatter.d.ts.map +1 -0
- package/dist/matter/logFormatter.js +100 -0
- package/dist/matter/logFormatter.js.map +1 -0
- package/dist/matter/managerTypes.d.ts +57 -0
- package/dist/matter/managerTypes.d.ts.map +1 -0
- package/dist/matter/managerTypes.js +2 -0
- package/dist/matter/managerTypes.js.map +1 -0
- package/dist/matter/server.d.ts +112 -0
- package/dist/matter/server.d.ts.map +1 -0
- package/dist/matter/server.js +1508 -0
- package/dist/matter/server.js.map +1 -0
- package/dist/matter/serverHelpers.d.ts +31 -0
- package/dist/matter/serverHelpers.d.ts.map +1 -0
- package/dist/matter/serverHelpers.js +273 -0
- package/dist/matter/serverHelpers.js.map +1 -0
- package/dist/matter/sharedTypes.d.ts +93 -0
- package/dist/matter/sharedTypes.d.ts.map +1 -0
- package/dist/matter/sharedTypes.js +20 -0
- package/dist/matter/sharedTypes.js.map +1 -0
- package/dist/matter/storage.d.ts +45 -0
- package/dist/matter/storage.d.ts.map +1 -0
- package/dist/matter/storage.js +325 -0
- package/dist/matter/storage.js.map +1 -0
- package/dist/matter/typeHelpers.d.ts +15 -0
- package/dist/matter/typeHelpers.d.ts.map +1 -0
- package/dist/matter/typeHelpers.js +33 -0
- package/dist/matter/typeHelpers.js.map +1 -0
- package/dist/matter/types.d.ts +565 -0
- package/dist/matter/types.d.ts.map +1 -0
- package/dist/matter/types.js +132 -0
- package/dist/matter/types.js.map +1 -0
- package/dist/matter/utils.d.ts +13 -0
- package/dist/matter/utils.d.ts.map +1 -0
- package/dist/matter/utils.js +21 -0
- package/dist/matter/utils.js.map +1 -0
- package/{lib → dist}/platformAccessory.d.ts +8 -21
- package/dist/platformAccessory.d.ts.map +1 -0
- package/dist/platformAccessory.js +79 -0
- package/dist/platformAccessory.js.map +1 -0
- package/{lib → dist}/plugin.d.ts +2 -6
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +159 -0
- package/dist/plugin.js.map +1 -0
- package/{lib → dist}/pluginManager.d.ts +3 -25
- package/dist/pluginManager.d.ts.map +1 -0
- package/{lib → dist}/pluginManager.js +87 -115
- package/dist/pluginManager.js.map +1 -0
- package/{lib → dist}/server.d.ts +15 -20
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +732 -0
- package/dist/server.js.map +1 -0
- package/{lib → dist}/storageService.d.ts.map +1 -1
- package/dist/storageService.js +41 -0
- package/dist/storageService.js.map +1 -0
- package/{lib → dist}/user.d.ts +1 -3
- package/dist/user.d.ts.map +1 -0
- package/dist/user.js +29 -0
- package/dist/user.js.map +1 -0
- package/{lib → dist}/util/mac.d.ts +1 -0
- package/dist/util/mac.d.ts.map +1 -0
- package/dist/util/mac.js +13 -0
- package/dist/util/mac.js.map +1 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +16 -0
- package/dist/version.js.map +1 -0
- package/package.json +49 -50
- package/bin/homebridge +0 -17
- package/lib/api.d.ts +0 -210
- package/lib/api.d.ts.map +0 -1
- package/lib/api.js +0 -155
- package/lib/api.js.map +0 -1
- package/lib/bridgeService.d.ts.map +0 -1
- package/lib/bridgeService.js +0 -426
- package/lib/bridgeService.js.map +0 -1
- package/lib/childBridgeFork.d.ts +0 -37
- package/lib/childBridgeFork.d.ts.map +0 -1
- package/lib/childBridgeFork.js +0 -244
- package/lib/childBridgeFork.js.map +0 -1
- package/lib/childBridgeService.d.ts +0 -199
- package/lib/childBridgeService.d.ts.map +0 -1
- package/lib/childBridgeService.js +0 -428
- package/lib/childBridgeService.js.map +0 -1
- package/lib/cli.d.ts +0 -4
- package/lib/cli.d.ts.map +0 -1
- package/lib/cli.js +0 -111
- package/lib/cli.js.map +0 -1
- package/lib/externalPortService.d.ts +0 -33
- package/lib/externalPortService.d.ts.map +0 -1
- package/lib/externalPortService.js +0 -64
- package/lib/externalPortService.js.map +0 -1
- package/lib/index.d.ts +0 -76
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -72
- package/lib/index.js.map +0 -1
- package/lib/ipcService.d.ts +0 -33
- package/lib/ipcService.d.ts.map +0 -1
- package/lib/ipcService.js +0 -49
- package/lib/ipcService.js.map +0 -1
- package/lib/logger.d.ts +0 -78
- package/lib/logger.d.ts.map +0 -1
- package/lib/logger.js +0 -147
- package/lib/logger.js.map +0 -1
- package/lib/platformAccessory.d.ts.map +0 -1
- package/lib/platformAccessory.js +0 -102
- package/lib/platformAccessory.js.map +0 -1
- package/lib/plugin.d.ts.map +0 -1
- package/lib/plugin.js +0 -194
- package/lib/plugin.js.map +0 -1
- package/lib/pluginManager.d.ts.map +0 -1
- package/lib/pluginManager.js.map +0 -1
- package/lib/server.d.ts.map +0 -1
- package/lib/server.js +0 -457
- package/lib/server.js.map +0 -1
- package/lib/storageService.js +0 -70
- package/lib/storageService.js.map +0 -1
- package/lib/user.d.ts.map +0 -1
- package/lib/user.js +0 -36
- package/lib/user.js.map +0 -1
- package/lib/util/mac.d.ts.map +0 -1
- package/lib/util/mac.js +0 -20
- package/lib/util/mac.js.map +0 -1
- package/lib/version.d.ts.map +0 -1
- package/lib/version.js +0 -21
- package/lib/version.js.map +0 -1
- /package/{lib → dist}/storageService.d.ts +0 -0
- /package/{lib → dist}/version.d.ts +0 -0
package/lib/childBridgeFork.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import "source-map-support/register";
|
|
2
|
-
import { MacAddress } from "hap-nodejs";
|
|
3
|
-
import { ChildProcessMessageEventType, ChildProcessLoadEventData, ChildProcessPortAllocatedEventData } from "./childBridgeService";
|
|
4
|
-
export declare class ChildBridgeFork {
|
|
5
|
-
private bridgeService;
|
|
6
|
-
private api;
|
|
7
|
-
private pluginManager;
|
|
8
|
-
private externalPortService;
|
|
9
|
-
private type;
|
|
10
|
-
private plugin;
|
|
11
|
-
private identifier;
|
|
12
|
-
private pluginConfig;
|
|
13
|
-
private bridgeConfig;
|
|
14
|
-
private bridgeOptions;
|
|
15
|
-
private homebridgeConfig;
|
|
16
|
-
private portRequestCallback;
|
|
17
|
-
constructor();
|
|
18
|
-
sendMessage<T = unknown>(type: ChildProcessMessageEventType, data?: T): void;
|
|
19
|
-
loadPlugin(data: ChildProcessLoadEventData): Promise<void>;
|
|
20
|
-
startBridge(): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Request the next available external port from the parent process
|
|
23
|
-
* @param username
|
|
24
|
-
*/
|
|
25
|
-
requestExternalPort(username: MacAddress): Promise<number | undefined>;
|
|
26
|
-
/**
|
|
27
|
-
* Handles the port allocation response message from the parent process
|
|
28
|
-
* @param data
|
|
29
|
-
*/
|
|
30
|
-
handleExternalResponse(data: ChildProcessPortAllocatedEventData): void;
|
|
31
|
-
/**
|
|
32
|
-
* Sends the current pairing status of the child bridge to the parent process
|
|
33
|
-
*/
|
|
34
|
-
sendPairedStatusEvent(): void;
|
|
35
|
-
shutdown(): void;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=childBridgeFork.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"childBridgeFork.d.ts","sourceRoot":"","sources":["../src/childBridgeFork.ts"],"names":[],"mappings":"AAMA,OAAO,6BAA6B,CAAC;AAErC,OAAO,EAAmC,UAAU,EAAE,MAAM,YAAY,CAAC;AAezE,OAAO,EACL,4BAA4B,EAE5B,yBAAyB,EAEzB,kCAAkC,EAGnC,MAAM,sBAAsB,CAAC;AAO9B,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,mBAAmB,CAAkC;IAE7D,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,gBAAgB,CAAoB;IAE5C,OAAO,CAAC,mBAAmB,CAAkE;;IAO7F,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;IAStE,UAAU,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoD1D,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA+ElC;;;OAGG;IACU,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAoBnF;;;OAGG;IACI,sBAAsB,CAAC,IAAI,EAAE,kCAAkC,GAAG,IAAI;IAO7E;;OAEG;IACI,qBAAqB;IAO5B,QAAQ,IAAI,IAAI;CAGjB"}
|
package/lib/childBridgeFork.js
DELETED
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ChildBridgeFork = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* This is a standalone script executed as a child process fork
|
|
6
|
-
*/
|
|
7
|
-
process.title = "homebridge: child bridge";
|
|
8
|
-
// registering node-source-map-support for typescript stack traces
|
|
9
|
-
require("source-map-support/register");
|
|
10
|
-
const hap_nodejs_1 = require("hap-nodejs");
|
|
11
|
-
const api_1 = require("./api");
|
|
12
|
-
const bridgeService_1 = require("./bridgeService");
|
|
13
|
-
const externalPortService_1 = require("./externalPortService");
|
|
14
|
-
const logger_1 = require("./logger");
|
|
15
|
-
const pluginManager_1 = require("./pluginManager");
|
|
16
|
-
const user_1 = require("./user");
|
|
17
|
-
class ChildBridgeFork {
|
|
18
|
-
bridgeService;
|
|
19
|
-
api;
|
|
20
|
-
pluginManager;
|
|
21
|
-
externalPortService;
|
|
22
|
-
type;
|
|
23
|
-
plugin;
|
|
24
|
-
identifier;
|
|
25
|
-
pluginConfig;
|
|
26
|
-
bridgeConfig;
|
|
27
|
-
bridgeOptions;
|
|
28
|
-
homebridgeConfig;
|
|
29
|
-
portRequestCallback = new Map();
|
|
30
|
-
constructor() {
|
|
31
|
-
// tell the parent process we are ready to accept plugin config
|
|
32
|
-
this.sendMessage("ready" /* ChildProcessMessageEventType.READY */);
|
|
33
|
-
}
|
|
34
|
-
sendMessage(type, data) {
|
|
35
|
-
if (process.send) {
|
|
36
|
-
process.send({
|
|
37
|
-
id: type,
|
|
38
|
-
data,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
async loadPlugin(data) {
|
|
43
|
-
// set data
|
|
44
|
-
this.type = data.type;
|
|
45
|
-
this.identifier = data.identifier;
|
|
46
|
-
this.pluginConfig = data.pluginConfig;
|
|
47
|
-
this.bridgeConfig = data.bridgeConfig;
|
|
48
|
-
this.bridgeOptions = data.bridgeOptions;
|
|
49
|
-
this.homebridgeConfig = data.homebridgeConfig;
|
|
50
|
-
// remove the _bridge key (some plugins do not like unknown config)
|
|
51
|
-
for (const config of this.pluginConfig) {
|
|
52
|
-
delete config._bridge;
|
|
53
|
-
}
|
|
54
|
-
// set bridge settings (inherited from main bridge)
|
|
55
|
-
if (this.bridgeOptions.noLogTimestamps) {
|
|
56
|
-
logger_1.Logger.setTimestampEnabled(false);
|
|
57
|
-
}
|
|
58
|
-
if (this.bridgeOptions.debugModeEnabled) {
|
|
59
|
-
logger_1.Logger.setDebugEnabled(true);
|
|
60
|
-
}
|
|
61
|
-
if (this.bridgeOptions.forceColourLogging) {
|
|
62
|
-
logger_1.Logger.forceColor();
|
|
63
|
-
}
|
|
64
|
-
if (this.bridgeOptions.customStoragePath) {
|
|
65
|
-
user_1.User.setStoragePath(this.bridgeOptions.customStoragePath);
|
|
66
|
-
}
|
|
67
|
-
// Initialize HAP-NodeJS with a custom persist directory
|
|
68
|
-
hap_nodejs_1.HAPStorage.setCustomStoragePath(user_1.User.persistPath());
|
|
69
|
-
// load api
|
|
70
|
-
this.api = new api_1.HomebridgeAPI();
|
|
71
|
-
this.pluginManager = new pluginManager_1.PluginManager(this.api);
|
|
72
|
-
this.externalPortService = new externalPortService_1.ChildBridgeExternalPortService(this);
|
|
73
|
-
// load plugin
|
|
74
|
-
this.plugin = this.pluginManager.loadPlugin(data.pluginPath);
|
|
75
|
-
await this.plugin.load();
|
|
76
|
-
await this.pluginManager.initializePlugin(this.plugin, data.identifier);
|
|
77
|
-
// change process title to include plugin name
|
|
78
|
-
process.title = `homebridge: ${this.plugin.getPluginIdentifier()}`;
|
|
79
|
-
this.sendMessage("loaded" /* ChildProcessMessageEventType.LOADED */, {
|
|
80
|
-
version: this.plugin.version,
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
async startBridge() {
|
|
84
|
-
this.bridgeService = new bridgeService_1.BridgeService(this.api, this.pluginManager, this.externalPortService, this.bridgeOptions, this.bridgeConfig, this.homebridgeConfig);
|
|
85
|
-
// watch bridge events to check when server is online
|
|
86
|
-
this.bridgeService.bridge.on("advertised" /* AccessoryEventTypes.ADVERTISED */, () => {
|
|
87
|
-
this.sendPairedStatusEvent();
|
|
88
|
-
});
|
|
89
|
-
// watch for the paired event to update the server status
|
|
90
|
-
this.bridgeService.bridge.on("paired" /* AccessoryEventTypes.PAIRED */, () => {
|
|
91
|
-
this.sendPairedStatusEvent();
|
|
92
|
-
});
|
|
93
|
-
// watch for the unpaired event to update the server status
|
|
94
|
-
this.bridgeService.bridge.on("unpaired" /* AccessoryEventTypes.UNPAIRED */, () => {
|
|
95
|
-
this.sendPairedStatusEvent();
|
|
96
|
-
});
|
|
97
|
-
// load the cached accessories
|
|
98
|
-
await this.bridgeService.loadCachedPlatformAccessoriesFromDisk();
|
|
99
|
-
for (const config of this.pluginConfig) {
|
|
100
|
-
if (this.type === "platform" /* PluginType.PLATFORM */) {
|
|
101
|
-
const plugin = this.pluginManager.getPluginForPlatform(this.identifier);
|
|
102
|
-
const displayName = config.name || plugin.getPluginIdentifier();
|
|
103
|
-
const logger = logger_1.Logger.withPrefix(displayName);
|
|
104
|
-
const constructor = plugin.getPlatformConstructor(this.identifier);
|
|
105
|
-
const platform = new constructor(logger, config, this.api);
|
|
106
|
-
if (api_1.HomebridgeAPI.isDynamicPlatformPlugin(platform)) {
|
|
107
|
-
plugin.assignDynamicPlatform(this.identifier, platform);
|
|
108
|
-
}
|
|
109
|
-
else if (api_1.HomebridgeAPI.isStaticPlatformPlugin(platform)) { // Plugin 1.0, load accessories
|
|
110
|
-
await this.bridgeService.loadPlatformAccessories(plugin, platform, this.identifier, logger);
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
// otherwise it's a IndependentPlatformPlugin which doesn't expose any methods at all.
|
|
114
|
-
// We just call the constructor and let it be enabled.
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
else if (this.type === "accessory" /* PluginType.ACCESSORY */) {
|
|
118
|
-
const plugin = this.pluginManager.getPluginForAccessory(this.identifier);
|
|
119
|
-
const displayName = config.name;
|
|
120
|
-
if (!displayName) {
|
|
121
|
-
logger_1.Logger.internal.warn("Could not load accessory %s as it is missing the required 'name' property!", this.identifier);
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
const logger = logger_1.Logger.withPrefix(displayName);
|
|
125
|
-
const constructor = plugin.getAccessoryConstructor(this.identifier);
|
|
126
|
-
const accessoryInstance = new constructor(logger, config, this.api);
|
|
127
|
-
//pass accessoryIdentifier for UUID generation, and optional parameter uuid_base which can be used instead of displayName for UUID generation
|
|
128
|
-
const accessory = this.bridgeService.createHAPAccessory(plugin, accessoryInstance, displayName, this.identifier, config.uuid_base);
|
|
129
|
-
if (accessory) {
|
|
130
|
-
this.bridgeService.bridge.addBridgedAccessory(accessory);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
logger("Accessory %s returned empty set of services. Won't adding it to the bridge!", this.identifier);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
// restore the cached accessories
|
|
138
|
-
this.bridgeService.restoreCachedPlatformAccessories();
|
|
139
|
-
this.bridgeService.publishBridge();
|
|
140
|
-
this.api.signalFinished();
|
|
141
|
-
// tell the parent we are online
|
|
142
|
-
this.sendMessage("online" /* ChildProcessMessageEventType.ONLINE */);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Request the next available external port from the parent process
|
|
146
|
-
* @param username
|
|
147
|
-
*/
|
|
148
|
-
async requestExternalPort(username) {
|
|
149
|
-
return new Promise((resolve) => {
|
|
150
|
-
const requestTimeout = setTimeout(() => {
|
|
151
|
-
logger_1.Logger.internal.warn("Parent process did not respond to port allocation request within 5 seconds - assigning random port.");
|
|
152
|
-
resolve(undefined);
|
|
153
|
-
}, 5000);
|
|
154
|
-
// setup callback
|
|
155
|
-
const callback = (port) => {
|
|
156
|
-
clearTimeout(requestTimeout);
|
|
157
|
-
resolve(port);
|
|
158
|
-
this.portRequestCallback.delete(username);
|
|
159
|
-
};
|
|
160
|
-
this.portRequestCallback.set(username, callback);
|
|
161
|
-
// send port request
|
|
162
|
-
this.sendMessage("portRequest" /* ChildProcessMessageEventType.PORT_REQUEST */, { username });
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Handles the port allocation response message from the parent process
|
|
167
|
-
* @param data
|
|
168
|
-
*/
|
|
169
|
-
handleExternalResponse(data) {
|
|
170
|
-
const callback = this.portRequestCallback.get(data.username);
|
|
171
|
-
if (callback) {
|
|
172
|
-
callback(data.port);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Sends the current pairing status of the child bridge to the parent process
|
|
177
|
-
*/
|
|
178
|
-
sendPairedStatusEvent() {
|
|
179
|
-
this.sendMessage("status" /* ChildProcessMessageEventType.STATUS_UPDATE */, {
|
|
180
|
-
paired: this.bridgeService?.bridge?._accessoryInfo?.paired() ?? null,
|
|
181
|
-
setupUri: this.bridgeService?.bridge?.setupURI() ?? null,
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
shutdown() {
|
|
185
|
-
this.bridgeService.teardown();
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
exports.ChildBridgeFork = ChildBridgeFork;
|
|
189
|
-
/**
|
|
190
|
-
* Start Self
|
|
191
|
-
*/
|
|
192
|
-
const childPluginFork = new ChildBridgeFork();
|
|
193
|
-
/**
|
|
194
|
-
* Handle incoming IPC messages from the parent Homebridge process
|
|
195
|
-
*/
|
|
196
|
-
process.on("message", (message) => {
|
|
197
|
-
if (typeof message !== "object" || !message.id) {
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
switch (message.id) {
|
|
201
|
-
case "load" /* ChildProcessMessageEventType.LOAD */: {
|
|
202
|
-
childPluginFork.loadPlugin(message.data);
|
|
203
|
-
break;
|
|
204
|
-
}
|
|
205
|
-
case "start" /* ChildProcessMessageEventType.START */: {
|
|
206
|
-
childPluginFork.startBridge();
|
|
207
|
-
break;
|
|
208
|
-
}
|
|
209
|
-
case "portAllocated" /* ChildProcessMessageEventType.PORT_ALLOCATED */: {
|
|
210
|
-
childPluginFork.handleExternalResponse(message.data);
|
|
211
|
-
break;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
/**
|
|
216
|
-
* Handle the sigterm shutdown signals
|
|
217
|
-
*/
|
|
218
|
-
let shuttingDown = false;
|
|
219
|
-
const signalHandler = (signal, signalNum) => {
|
|
220
|
-
if (shuttingDown) {
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
shuttingDown = true;
|
|
224
|
-
logger_1.Logger.internal.info("Got %s, shutting down child bridge process...", signal);
|
|
225
|
-
try {
|
|
226
|
-
childPluginFork.shutdown();
|
|
227
|
-
}
|
|
228
|
-
catch (e) {
|
|
229
|
-
// do nothing
|
|
230
|
-
}
|
|
231
|
-
setTimeout(() => process.exit(128 + signalNum), 5000);
|
|
232
|
-
};
|
|
233
|
-
process.on("SIGINT", signalHandler.bind(undefined, "SIGINT", 2));
|
|
234
|
-
process.on("SIGTERM", signalHandler.bind(undefined, "SIGTERM", 15));
|
|
235
|
-
/**
|
|
236
|
-
* Ensure orphaned processes are cleaned up
|
|
237
|
-
*/
|
|
238
|
-
setInterval(() => {
|
|
239
|
-
if (!process.connected) {
|
|
240
|
-
logger_1.Logger.internal.info("Parent process not connected, terminating process...");
|
|
241
|
-
process.exit(1);
|
|
242
|
-
}
|
|
243
|
-
}, 5000);
|
|
244
|
-
//# sourceMappingURL=childBridgeFork.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"childBridgeFork.js","sourceRoot":"","sources":["../src/childBridgeFork.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
import { MacAddress } from "hap-nodejs";
|
|
2
|
-
import { HomebridgeAPI, PluginType } from "./api";
|
|
3
|
-
import { AccessoryConfig, BridgeConfiguration, BridgeOptions, HomebridgeConfig, PlatformConfig } from "./bridgeService";
|
|
4
|
-
import { ExternalPortService } from "./externalPortService";
|
|
5
|
-
import { IpcService } from "./ipcService";
|
|
6
|
-
import { Plugin } from "./plugin";
|
|
7
|
-
import { HomebridgeOptions } from "./server";
|
|
8
|
-
export declare const enum ChildProcessMessageEventType {
|
|
9
|
-
/**
|
|
10
|
-
* Sent from the child process when it is ready to accept config
|
|
11
|
-
*/
|
|
12
|
-
READY = "ready",
|
|
13
|
-
/**
|
|
14
|
-
* Sent to the child process with a ChildProcessLoadEventData payload
|
|
15
|
-
*/
|
|
16
|
-
LOAD = "load",
|
|
17
|
-
/**
|
|
18
|
-
* Sent from the child process once it has loaded the plugin
|
|
19
|
-
*/
|
|
20
|
-
LOADED = "loaded",
|
|
21
|
-
/**
|
|
22
|
-
* Sent to the child process telling it to start
|
|
23
|
-
*/
|
|
24
|
-
START = "start",
|
|
25
|
-
/**
|
|
26
|
-
* Sent from the child process when the bridge is online
|
|
27
|
-
*/
|
|
28
|
-
ONLINE = "online",
|
|
29
|
-
/**
|
|
30
|
-
* Sent from the child when it wants to request port allocation for an external accessory
|
|
31
|
-
*/
|
|
32
|
-
PORT_REQUEST = "portRequest",
|
|
33
|
-
/**
|
|
34
|
-
* Sent from the parent with the port allocation response
|
|
35
|
-
*/
|
|
36
|
-
PORT_ALLOCATED = "portAllocated",
|
|
37
|
-
/**
|
|
38
|
-
* Sent from the child to update its current status
|
|
39
|
-
*/
|
|
40
|
-
STATUS_UPDATE = "status"
|
|
41
|
-
}
|
|
42
|
-
export declare const enum ChildBridgeStatus {
|
|
43
|
-
/**
|
|
44
|
-
* When the child bridge is loading, or restarting
|
|
45
|
-
*/
|
|
46
|
-
PENDING = "pending",
|
|
47
|
-
/**
|
|
48
|
-
* The child bridge is online and has published it's accessory
|
|
49
|
-
*/
|
|
50
|
-
OK = "ok",
|
|
51
|
-
/**
|
|
52
|
-
* The bridge is shutting down, or the process ended unexpectedly
|
|
53
|
-
*/
|
|
54
|
-
DOWN = "down"
|
|
55
|
-
}
|
|
56
|
-
export interface ChildProcessMessageEvent<T> {
|
|
57
|
-
id: ChildProcessMessageEventType;
|
|
58
|
-
data?: T;
|
|
59
|
-
}
|
|
60
|
-
export interface ChildProcessLoadEventData {
|
|
61
|
-
type: PluginType;
|
|
62
|
-
identifier: string;
|
|
63
|
-
pluginPath: string;
|
|
64
|
-
pluginConfig: Array<PlatformConfig | AccessoryConfig>;
|
|
65
|
-
bridgeConfig: BridgeConfiguration;
|
|
66
|
-
homebridgeConfig: HomebridgeConfig;
|
|
67
|
-
bridgeOptions: BridgeOptions;
|
|
68
|
-
}
|
|
69
|
-
export interface ChildProcessPluginLoadedEventData {
|
|
70
|
-
version: string;
|
|
71
|
-
}
|
|
72
|
-
export interface ChildProcessPortRequestEventData {
|
|
73
|
-
username: MacAddress;
|
|
74
|
-
}
|
|
75
|
-
export interface ChildProcessPortAllocatedEventData {
|
|
76
|
-
username: MacAddress;
|
|
77
|
-
port?: number;
|
|
78
|
-
}
|
|
79
|
-
export interface ChildBridgePairedStatusEventData {
|
|
80
|
-
paired: boolean | null;
|
|
81
|
-
setupUri: string | null;
|
|
82
|
-
}
|
|
83
|
-
export interface ChildMetadata {
|
|
84
|
-
status: ChildBridgeStatus;
|
|
85
|
-
paired?: boolean | null;
|
|
86
|
-
setupUri?: string | null;
|
|
87
|
-
username: MacAddress;
|
|
88
|
-
pin: string;
|
|
89
|
-
name: string;
|
|
90
|
-
plugin: string;
|
|
91
|
-
identifier: string;
|
|
92
|
-
manuallyStopped: boolean;
|
|
93
|
-
pid?: number;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Manages the child processes of platforms/accessories being exposed as separate forked bridges.
|
|
97
|
-
* A child bridge runs a single platform or accessory.
|
|
98
|
-
*/
|
|
99
|
-
export declare class ChildBridgeService {
|
|
100
|
-
type: PluginType;
|
|
101
|
-
identifier: string;
|
|
102
|
-
private plugin;
|
|
103
|
-
private bridgeConfig;
|
|
104
|
-
private homebridgeConfig;
|
|
105
|
-
private homebridgeOptions;
|
|
106
|
-
private api;
|
|
107
|
-
private ipcService;
|
|
108
|
-
private externalPortService;
|
|
109
|
-
private child?;
|
|
110
|
-
private args;
|
|
111
|
-
private processEnv;
|
|
112
|
-
private shuttingDown;
|
|
113
|
-
private lastBridgeStatus;
|
|
114
|
-
private pairedStatus;
|
|
115
|
-
private manuallyStopped;
|
|
116
|
-
private setupUri;
|
|
117
|
-
private pluginConfig;
|
|
118
|
-
private log;
|
|
119
|
-
private displayName?;
|
|
120
|
-
constructor(type: PluginType, identifier: string, plugin: Plugin, bridgeConfig: BridgeConfiguration, homebridgeConfig: HomebridgeConfig, homebridgeOptions: HomebridgeOptions, api: HomebridgeAPI, ipcService: IpcService, externalPortService: ExternalPortService);
|
|
121
|
-
/**
|
|
122
|
-
* Start the child bridge service
|
|
123
|
-
*/
|
|
124
|
-
start(): void;
|
|
125
|
-
/**
|
|
126
|
-
* Add a config block to a child bridge.
|
|
127
|
-
* Platform child bridges can only contain one config block.
|
|
128
|
-
* @param config
|
|
129
|
-
*/
|
|
130
|
-
addConfig(config: PlatformConfig | AccessoryConfig): void;
|
|
131
|
-
private get bridgeStatus();
|
|
132
|
-
private set bridgeStatus(value);
|
|
133
|
-
/**
|
|
134
|
-
* Start the child bridge process
|
|
135
|
-
*/
|
|
136
|
-
private startChildProcess;
|
|
137
|
-
/**
|
|
138
|
-
* Called when the child bridge process exits, if Homebridge is not shutting down, it will restart the process
|
|
139
|
-
* @param code
|
|
140
|
-
* @param signal
|
|
141
|
-
*/
|
|
142
|
-
private handleProcessClose;
|
|
143
|
-
/**
|
|
144
|
-
* Helper function to send a message to the child process
|
|
145
|
-
* @param type
|
|
146
|
-
* @param data
|
|
147
|
-
*/
|
|
148
|
-
private sendMessage;
|
|
149
|
-
/**
|
|
150
|
-
* Some plugins may make use of the homebridge process flags
|
|
151
|
-
* These will be passed through to the forked process
|
|
152
|
-
*/
|
|
153
|
-
private setProcessFlags;
|
|
154
|
-
/**
|
|
155
|
-
* Set environment variables for the child process
|
|
156
|
-
*/
|
|
157
|
-
private setProcessEnv;
|
|
158
|
-
/**
|
|
159
|
-
* Tell the child process to load the given plugin
|
|
160
|
-
*/
|
|
161
|
-
private loadPlugin;
|
|
162
|
-
/**
|
|
163
|
-
* Tell the child bridge to start broadcasting
|
|
164
|
-
*/
|
|
165
|
-
private startBridge;
|
|
166
|
-
/**
|
|
167
|
-
* Handle external port requests from child
|
|
168
|
-
*/
|
|
169
|
-
private handlePortRequest;
|
|
170
|
-
/**
|
|
171
|
-
* Send sigterm to the child bridge
|
|
172
|
-
*/
|
|
173
|
-
private teardown;
|
|
174
|
-
/**
|
|
175
|
-
* Trigger sending child bridge metadata to the process parent via IPC
|
|
176
|
-
*/
|
|
177
|
-
private sendStatusUpdate;
|
|
178
|
-
/**
|
|
179
|
-
* Restarts the child bridge process
|
|
180
|
-
*/
|
|
181
|
-
restartChildBridge(): void;
|
|
182
|
-
/**
|
|
183
|
-
* Stops the child bridge, not starting it again
|
|
184
|
-
*/
|
|
185
|
-
stopChildBridge(): void;
|
|
186
|
-
/**
|
|
187
|
-
* Starts the child bridge, only if it was manually stopped and is no longer running
|
|
188
|
-
*/
|
|
189
|
-
startChildBridge(): void;
|
|
190
|
-
/**
|
|
191
|
-
* Read the config.json file from disk and refresh the plugin config block for just this plugin
|
|
192
|
-
*/
|
|
193
|
-
refreshConfig(): Promise<void>;
|
|
194
|
-
/**
|
|
195
|
-
* Returns metadata about this child bridge
|
|
196
|
-
*/
|
|
197
|
-
getMetadata(): ChildMetadata;
|
|
198
|
-
}
|
|
199
|
-
//# sourceMappingURL=childBridgeService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"childBridgeService.d.ts","sourceRoot":"","sources":["../src/childBridgeService.ts"],"names":[],"mappings":"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"}
|