homebridge 2.0.0-beta.6 → 2.0.0-beta.61
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 +136 -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 +361 -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 +21 -0
- package/dist/matter/BaseMatterManager.d.ts.map +1 -0
- package/dist/matter/BaseMatterManager.js +197 -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 +473 -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 +39 -0
- package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
- package/dist/matter/MatterBridgeManager.js +323 -0
- package/dist/matter/MatterBridgeManager.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 +182 -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/config.d.ts +9 -0
- package/dist/matter/config.d.ts.map +1 -0
- package/dist/matter/config.js +84 -0
- package/dist/matter/config.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 +642 -0
- package/dist/matter/types.d.ts.map +1 -0
- package/dist/matter/types.js +208 -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 +727 -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/api.js
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.HomebridgeAPI = exports.InternalAPIEvent = exports.APIEvent = exports.PluginType = void 0;
|
|
30
|
-
const events_1 = require("events");
|
|
31
|
-
const hapNodeJs = __importStar(require("hap-nodejs"));
|
|
32
|
-
const semver_1 = __importDefault(require("semver"));
|
|
33
|
-
const logger_1 = require("./logger");
|
|
34
|
-
const platformAccessory_1 = require("./platformAccessory");
|
|
35
|
-
const pluginManager_1 = require("./pluginManager");
|
|
36
|
-
const user_1 = require("./user");
|
|
37
|
-
const version_1 = __importDefault(require("./version"));
|
|
38
|
-
const log = logger_1.Logger.internal;
|
|
39
|
-
var PluginType;
|
|
40
|
-
(function (PluginType) {
|
|
41
|
-
PluginType["ACCESSORY"] = "accessory";
|
|
42
|
-
PluginType["PLATFORM"] = "platform";
|
|
43
|
-
})(PluginType || (exports.PluginType = PluginType = {}));
|
|
44
|
-
var APIEvent;
|
|
45
|
-
(function (APIEvent) {
|
|
46
|
-
/**
|
|
47
|
-
* Event is fired once homebridge has finished with booting up and initializing all components and plugins.
|
|
48
|
-
* When this event is fired it is possible that the Bridge accessory isn't published yet, if homebridge still needs
|
|
49
|
-
* to wait for some {@see StaticPlatformPlugin | StaticPlatformPlugins} to finish accessory creation.
|
|
50
|
-
*/
|
|
51
|
-
APIEvent["DID_FINISH_LAUNCHING"] = "didFinishLaunching";
|
|
52
|
-
/**
|
|
53
|
-
* This event is fired when homebridge gets shutdown. This could be a regular shutdown or an unexpected crash.
|
|
54
|
-
* At this stage all Accessories are already unpublished and all PlatformAccessories are already saved to disk!
|
|
55
|
-
*/
|
|
56
|
-
APIEvent["SHUTDOWN"] = "shutdown";
|
|
57
|
-
})(APIEvent || (exports.APIEvent = APIEvent = {}));
|
|
58
|
-
var InternalAPIEvent;
|
|
59
|
-
(function (InternalAPIEvent) {
|
|
60
|
-
InternalAPIEvent["REGISTER_ACCESSORY"] = "registerAccessory";
|
|
61
|
-
InternalAPIEvent["REGISTER_PLATFORM"] = "registerPlatform";
|
|
62
|
-
InternalAPIEvent["PUBLISH_EXTERNAL_ACCESSORIES"] = "publishExternalAccessories";
|
|
63
|
-
InternalAPIEvent["REGISTER_PLATFORM_ACCESSORIES"] = "registerPlatformAccessories";
|
|
64
|
-
InternalAPIEvent["UPDATE_PLATFORM_ACCESSORIES"] = "updatePlatformAccessories";
|
|
65
|
-
InternalAPIEvent["UNREGISTER_PLATFORM_ACCESSORIES"] = "unregisterPlatformAccessories";
|
|
66
|
-
})(InternalAPIEvent || (exports.InternalAPIEvent = InternalAPIEvent = {}));
|
|
67
|
-
class HomebridgeAPI extends events_1.EventEmitter {
|
|
68
|
-
version = 2.7; // homebridge API version
|
|
69
|
-
serverVersion = (0, version_1.default)(); // homebridge node module version
|
|
70
|
-
// ------------------ LEGACY EXPORTS FOR PRE TYPESCRIPT ------------------
|
|
71
|
-
user = user_1.User;
|
|
72
|
-
hap = hapNodeJs;
|
|
73
|
-
hapLegacyTypes = hapNodeJs.LegacyTypes; // used for older accessories/platforms
|
|
74
|
-
platformAccessory = platformAccessory_1.PlatformAccessory;
|
|
75
|
-
// ------------------------------------------------------------------------
|
|
76
|
-
constructor() {
|
|
77
|
-
super();
|
|
78
|
-
}
|
|
79
|
-
versionGreaterOrEqual(version) {
|
|
80
|
-
return semver_1.default.gte(this.serverVersion, version);
|
|
81
|
-
}
|
|
82
|
-
static isDynamicPlatformPlugin(platformPlugin) {
|
|
83
|
-
return "configureAccessory" in platformPlugin;
|
|
84
|
-
}
|
|
85
|
-
static isStaticPlatformPlugin(platformPlugin) {
|
|
86
|
-
return "accessories" in platformPlugin;
|
|
87
|
-
}
|
|
88
|
-
signalFinished() {
|
|
89
|
-
this.emit("didFinishLaunching" /* APIEvent.DID_FINISH_LAUNCHING */);
|
|
90
|
-
}
|
|
91
|
-
signalShutdown() {
|
|
92
|
-
this.emit("shutdown" /* APIEvent.SHUTDOWN */);
|
|
93
|
-
}
|
|
94
|
-
registerAccessory(pluginIdentifier, accessoryName, constructor) {
|
|
95
|
-
if (typeof accessoryName === "function") {
|
|
96
|
-
constructor = accessoryName;
|
|
97
|
-
accessoryName = pluginIdentifier;
|
|
98
|
-
this.emit("registerAccessory" /* InternalAPIEvent.REGISTER_ACCESSORY */, accessoryName, constructor);
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
this.emit("registerAccessory" /* InternalAPIEvent.REGISTER_ACCESSORY */, accessoryName, constructor, pluginIdentifier);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
registerPlatform(pluginIdentifier, platformName, constructor) {
|
|
105
|
-
if (typeof platformName === "function") {
|
|
106
|
-
constructor = platformName;
|
|
107
|
-
platformName = pluginIdentifier;
|
|
108
|
-
this.emit("registerPlatform" /* InternalAPIEvent.REGISTER_PLATFORM */, platformName, constructor);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
this.emit("registerPlatform" /* InternalAPIEvent.REGISTER_PLATFORM */, platformName, constructor, pluginIdentifier);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
publishCameraAccessories(pluginIdentifier, accessories) {
|
|
115
|
-
this.publishExternalAccessories(pluginIdentifier, accessories);
|
|
116
|
-
}
|
|
117
|
-
publishExternalAccessories(pluginIdentifier, accessories) {
|
|
118
|
-
if (!pluginManager_1.PluginManager.isQualifiedPluginIdentifier(pluginIdentifier)) {
|
|
119
|
-
log.info(`One of your plugins incorrectly registered an external accessory using the platform name (${pluginIdentifier}) and not the plugin identifier. Please report this to the developer!`);
|
|
120
|
-
}
|
|
121
|
-
accessories.forEach(accessory => {
|
|
122
|
-
// noinspection SuspiciousTypeOfGuard
|
|
123
|
-
if (!(accessory instanceof platformAccessory_1.PlatformAccessory)) {
|
|
124
|
-
throw new Error(`${pluginIdentifier} attempt to register an accessory that isn't PlatformAccessory!`);
|
|
125
|
-
}
|
|
126
|
-
accessory._associatedPlugin = pluginIdentifier;
|
|
127
|
-
});
|
|
128
|
-
this.emit("publishExternalAccessories" /* InternalAPIEvent.PUBLISH_EXTERNAL_ACCESSORIES */, accessories);
|
|
129
|
-
}
|
|
130
|
-
registerPlatformAccessories(pluginIdentifier, platformName, accessories) {
|
|
131
|
-
accessories.forEach(accessory => {
|
|
132
|
-
// noinspection SuspiciousTypeOfGuard
|
|
133
|
-
if (!(accessory instanceof platformAccessory_1.PlatformAccessory)) {
|
|
134
|
-
throw new Error(`${pluginIdentifier} - ${platformName} attempt to register an accessory that isn't PlatformAccessory!`);
|
|
135
|
-
}
|
|
136
|
-
accessory._associatedPlugin = pluginIdentifier;
|
|
137
|
-
accessory._associatedPlatform = platformName;
|
|
138
|
-
});
|
|
139
|
-
this.emit("registerPlatformAccessories" /* InternalAPIEvent.REGISTER_PLATFORM_ACCESSORIES */, accessories);
|
|
140
|
-
}
|
|
141
|
-
updatePlatformAccessories(accessories) {
|
|
142
|
-
this.emit("updatePlatformAccessories" /* InternalAPIEvent.UPDATE_PLATFORM_ACCESSORIES */, accessories);
|
|
143
|
-
}
|
|
144
|
-
unregisterPlatformAccessories(pluginIdentifier, platformName, accessories) {
|
|
145
|
-
accessories.forEach(accessory => {
|
|
146
|
-
// noinspection SuspiciousTypeOfGuard
|
|
147
|
-
if (!(accessory instanceof platformAccessory_1.PlatformAccessory)) {
|
|
148
|
-
throw new Error(`${pluginIdentifier} - ${platformName} attempt to unregister an accessory that isn't PlatformAccessory!`);
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
this.emit("unregisterPlatformAccessories" /* InternalAPIEvent.UNREGISTER_PLATFORM_ACCESSORIES */, accessories);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
exports.HomebridgeAPI = HomebridgeAPI;
|
|
155
|
-
//# sourceMappingURL=api.js.map
|
package/lib/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bridgeService.d.ts","sourceRoot":"","sources":["../src/bridgeService.ts"],"names":[],"mappings":"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"}
|
package/lib/bridgeService.js
DELETED
|
@@ -1,426 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.BridgeService = void 0;
|
|
30
|
-
const hap_nodejs_1 = require("hap-nodejs");
|
|
31
|
-
const logger_1 = require("./logger");
|
|
32
|
-
const platformAccessory_1 = require("./platformAccessory");
|
|
33
|
-
const pluginManager_1 = require("./pluginManager");
|
|
34
|
-
const storageService_1 = require("./storageService");
|
|
35
|
-
const mac = __importStar(require("./util/mac"));
|
|
36
|
-
const version_1 = __importDefault(require("./version"));
|
|
37
|
-
const log = logger_1.Logger.internal;
|
|
38
|
-
class BridgeService {
|
|
39
|
-
api;
|
|
40
|
-
pluginManager;
|
|
41
|
-
externalPortService;
|
|
42
|
-
bridgeOptions;
|
|
43
|
-
bridgeConfig;
|
|
44
|
-
config;
|
|
45
|
-
bridge;
|
|
46
|
-
storageService;
|
|
47
|
-
allowInsecureAccess;
|
|
48
|
-
cachedPlatformAccessories = [];
|
|
49
|
-
cachedAccessoriesFileLoaded = false;
|
|
50
|
-
publishedExternalAccessories = new Map();
|
|
51
|
-
constructor(api, pluginManager, externalPortService, bridgeOptions, bridgeConfig, config) {
|
|
52
|
-
this.api = api;
|
|
53
|
-
this.pluginManager = pluginManager;
|
|
54
|
-
this.externalPortService = externalPortService;
|
|
55
|
-
this.bridgeOptions = bridgeOptions;
|
|
56
|
-
this.bridgeConfig = bridgeConfig;
|
|
57
|
-
this.config = config;
|
|
58
|
-
this.storageService = new storageService_1.StorageService(this.bridgeOptions.cachedAccessoriesDir);
|
|
59
|
-
this.storageService.initSync();
|
|
60
|
-
// Server is "secure by default", meaning it creates a top-level Bridge accessory that
|
|
61
|
-
// will not allow unauthenticated requests. This matches the behavior of actual HomeKit
|
|
62
|
-
// accessories. However, you can set this to true to allow all requests without authentication,
|
|
63
|
-
// which can be useful for easy hacking. Note that this will expose all functions of your
|
|
64
|
-
// bridged accessories, like changing characteristics (i.e. flipping your lights on and off).
|
|
65
|
-
this.allowInsecureAccess = this.bridgeOptions.insecureAccess || false;
|
|
66
|
-
this.api.on("registerPlatformAccessories" /* InternalAPIEvent.REGISTER_PLATFORM_ACCESSORIES */, this.handleRegisterPlatformAccessories.bind(this));
|
|
67
|
-
this.api.on("updatePlatformAccessories" /* InternalAPIEvent.UPDATE_PLATFORM_ACCESSORIES */, this.handleUpdatePlatformAccessories.bind(this));
|
|
68
|
-
this.api.on("unregisterPlatformAccessories" /* InternalAPIEvent.UNREGISTER_PLATFORM_ACCESSORIES */, this.handleUnregisterPlatformAccessories.bind(this));
|
|
69
|
-
this.api.on("publishExternalAccessories" /* InternalAPIEvent.PUBLISH_EXTERNAL_ACCESSORIES */, this.handlePublishExternalAccessories.bind(this));
|
|
70
|
-
this.bridge = new hap_nodejs_1.Bridge(bridgeConfig.name, hap_nodejs_1.uuid.generate("HomeBridge"));
|
|
71
|
-
this.bridge.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, () => {
|
|
72
|
-
// We register characteristic warning handlers on every bridged accessory (to have a reference to the plugin).
|
|
73
|
-
// For Bridges the warnings will propagate to the main Bridge accessory, thus we need to silence them here.
|
|
74
|
-
// Otherwise, those would be printed twice (by us and HAP-NodeJS as it detects no handlers on the bridge).
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
// characteristic warning event has additional parameter originatorChain: string[] which is currently unused
|
|
78
|
-
static printCharacteristicWriteWarning(plugin, accessory, opts, warning) {
|
|
79
|
-
const wikiInfo = "See https://homebridge.io/w/JtMGR for more info.";
|
|
80
|
-
switch (warning.type) {
|
|
81
|
-
case "slow-read" /* CharacteristicWarningType.SLOW_READ */:
|
|
82
|
-
case "slow-write" /* CharacteristicWarningType.SLOW_WRITE */:
|
|
83
|
-
if (!opts.ignoreSlow) {
|
|
84
|
-
log.info((0, logger_1.getLogPrefix)(plugin.getPluginIdentifier()), "This plugin slows down Homebridge.", warning.message, wikiInfo);
|
|
85
|
-
}
|
|
86
|
-
break;
|
|
87
|
-
case "timeout-read" /* CharacteristicWarningType.TIMEOUT_READ */:
|
|
88
|
-
case "timeout-write" /* CharacteristicWarningType.TIMEOUT_WRITE */:
|
|
89
|
-
log.error((0, logger_1.getLogPrefix)(plugin.getPluginIdentifier()), "This plugin slows down Homebridge.", warning.message, wikiInfo);
|
|
90
|
-
break;
|
|
91
|
-
case "warn-message" /* CharacteristicWarningType.WARN_MESSAGE */:
|
|
92
|
-
log.info((0, logger_1.getLogPrefix)(plugin.getPluginIdentifier()), `This plugin generated a warning from the characteristic '${warning.characteristic.displayName}':`, warning.message + ".", wikiInfo);
|
|
93
|
-
break;
|
|
94
|
-
case "error-message" /* CharacteristicWarningType.ERROR_MESSAGE */:
|
|
95
|
-
log.error((0, logger_1.getLogPrefix)(plugin.getPluginIdentifier()), `This plugin threw an error from the characteristic '${warning.characteristic.displayName}':`, warning.message + ".", wikiInfo);
|
|
96
|
-
break;
|
|
97
|
-
case "debug-message" /* CharacteristicWarningType.DEBUG_MESSAGE */:
|
|
98
|
-
log.debug((0, logger_1.getLogPrefix)(plugin.getPluginIdentifier()), `Characteristic '${warning.characteristic.displayName}':`, warning.message + ".", wikiInfo);
|
|
99
|
-
break;
|
|
100
|
-
default: // generic message for yet unknown types
|
|
101
|
-
log.info((0, logger_1.getLogPrefix)(plugin.getPluginIdentifier()), `This plugin generated a warning from the characteristic '${warning.characteristic.displayName}':`, warning.message + ".", wikiInfo);
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
if (warning.stack) {
|
|
105
|
-
log.debug((0, logger_1.getLogPrefix)(plugin.getPluginIdentifier()), warning.stack);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
publishBridge() {
|
|
109
|
-
const bridgeConfig = this.bridgeConfig;
|
|
110
|
-
const info = this.bridge.getService(hap_nodejs_1.Service.AccessoryInformation);
|
|
111
|
-
info.setCharacteristic(hap_nodejs_1.Characteristic.Manufacturer, bridgeConfig.manufacturer || "homebridge.io");
|
|
112
|
-
info.setCharacteristic(hap_nodejs_1.Characteristic.Model, bridgeConfig.model || "homebridge");
|
|
113
|
-
info.setCharacteristic(hap_nodejs_1.Characteristic.SerialNumber, bridgeConfig.username);
|
|
114
|
-
info.setCharacteristic(hap_nodejs_1.Characteristic.FirmwareRevision, bridgeConfig.firmwareRevision || (0, version_1.default)());
|
|
115
|
-
this.bridge.on("listening" /* AccessoryEventTypes.LISTENING */, (port) => {
|
|
116
|
-
log.success("Homebridge v%s (HAP v%s) (%s) is running on port %s.", (0, version_1.default)(), (0, hap_nodejs_1.HAPLibraryVersion)(), bridgeConfig.name, port);
|
|
117
|
-
});
|
|
118
|
-
const publishInfo = {
|
|
119
|
-
username: bridgeConfig.username,
|
|
120
|
-
port: bridgeConfig.port,
|
|
121
|
-
pincode: bridgeConfig.pin,
|
|
122
|
-
category: 2 /* Categories.BRIDGE */,
|
|
123
|
-
bind: bridgeConfig.bind,
|
|
124
|
-
addIdentifyingMaterial: true,
|
|
125
|
-
advertiser: bridgeConfig.advertiser,
|
|
126
|
-
};
|
|
127
|
-
if (bridgeConfig.setupID && bridgeConfig.setupID.length === 4) {
|
|
128
|
-
publishInfo.setupID = bridgeConfig.setupID;
|
|
129
|
-
}
|
|
130
|
-
log.debug("Publishing bridge accessory (name: %s, publishInfo: %o).", this.bridge.displayName, BridgeService.strippingPinCode(publishInfo));
|
|
131
|
-
this.bridge.publish(publishInfo, this.allowInsecureAccess);
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Attempt to load the cached accessories from disk.
|
|
135
|
-
*/
|
|
136
|
-
async loadCachedPlatformAccessoriesFromDisk() {
|
|
137
|
-
let cachedAccessories = null;
|
|
138
|
-
try {
|
|
139
|
-
cachedAccessories = await this.storageService.getItem(this.bridgeOptions.cachedAccessoriesItemName);
|
|
140
|
-
}
|
|
141
|
-
catch (e) {
|
|
142
|
-
log.error("Failed to load cached accessories from disk:", e.message);
|
|
143
|
-
if (e instanceof SyntaxError) {
|
|
144
|
-
// syntax error probably means invalid json / corrupted file; try and restore from backup
|
|
145
|
-
cachedAccessories = await this.restoreCachedAccessoriesBackup();
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
log.error("Not restoring cached accessories - some accessories may be reset.");
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
if (cachedAccessories) {
|
|
152
|
-
log.info(`Loaded ${cachedAccessories.length} cached accessories from ${this.bridgeOptions.cachedAccessoriesItemName}.`);
|
|
153
|
-
this.cachedPlatformAccessories = cachedAccessories.map(serialized => {
|
|
154
|
-
return platformAccessory_1.PlatformAccessory.deserialize(serialized);
|
|
155
|
-
});
|
|
156
|
-
if (cachedAccessories.length) {
|
|
157
|
-
// create a backup of the cache file
|
|
158
|
-
await this.createCachedAccessoriesBackup();
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
this.cachedAccessoriesFileLoaded = true;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Return the name of the backup cache file
|
|
165
|
-
*/
|
|
166
|
-
get backupCacheFileName() {
|
|
167
|
-
return `.${this.bridgeOptions.cachedAccessoriesItemName}.bak`;
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Create a backup of the cached file
|
|
171
|
-
* This is used if we ever have trouble reading the main cache file
|
|
172
|
-
*/
|
|
173
|
-
async createCachedAccessoriesBackup() {
|
|
174
|
-
try {
|
|
175
|
-
await this.storageService.copyItem(this.bridgeOptions.cachedAccessoriesItemName, this.backupCacheFileName);
|
|
176
|
-
}
|
|
177
|
-
catch (e) {
|
|
178
|
-
log.warn(`Failed to create a backup of the ${this.bridgeOptions.cachedAccessoriesItemName} cached accessories file:`, e.message);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Restore a cached accessories backup
|
|
183
|
-
* This is used if the main cache file has a JSON syntax error / is corrupted
|
|
184
|
-
*/
|
|
185
|
-
async restoreCachedAccessoriesBackup() {
|
|
186
|
-
try {
|
|
187
|
-
const cachedAccessories = await this.storageService.getItem(this.backupCacheFileName);
|
|
188
|
-
if (cachedAccessories && cachedAccessories.length) {
|
|
189
|
-
log.warn(`Recovered ${cachedAccessories.length} accessories from ${this.bridgeOptions.cachedAccessoriesItemName} cache backup.`);
|
|
190
|
-
}
|
|
191
|
-
return cachedAccessories;
|
|
192
|
-
}
|
|
193
|
-
catch (e) {
|
|
194
|
-
return null;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
restoreCachedPlatformAccessories() {
|
|
198
|
-
this.cachedPlatformAccessories = this.cachedPlatformAccessories.filter(accessory => {
|
|
199
|
-
let plugin = this.pluginManager.getPlugin(accessory._associatedPlugin);
|
|
200
|
-
if (!plugin) { // a little explainer here. This section is basically here to resolve plugin name changes of dynamic platform plugins
|
|
201
|
-
try {
|
|
202
|
-
// resolve platform accessories by searching for plugins which registered a dynamic platform for the given name
|
|
203
|
-
plugin = this.pluginManager.getPluginByActiveDynamicPlatform(accessory._associatedPlatform);
|
|
204
|
-
if (plugin) { // if it's undefined the no plugin was found
|
|
205
|
-
// could improve on this by calculating the Levenshtein distance to only allow platform ownership changes
|
|
206
|
-
// when something like a typo happened. Are there other reasons the name could change?
|
|
207
|
-
// And how would we define the threshold?
|
|
208
|
-
log.info("When searching for the associated plugin of the accessory '" + accessory.displayName + "' " +
|
|
209
|
-
"it seems like the plugin name changed from '" + accessory._associatedPlugin + "' to '" +
|
|
210
|
-
plugin.getPluginIdentifier() + "'. Plugin association is now being transformed!");
|
|
211
|
-
accessory._associatedPlugin = plugin.getPluginIdentifier(); // update the associated plugin to the new one
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
catch (error) { // error is thrown if multiple plugins where found for the given platform name
|
|
215
|
-
log.info("Could not find the associated plugin for the accessory '" + accessory.displayName + "'. " +
|
|
216
|
-
"Tried to find the plugin by the platform name but " + error.message);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
const platformPlugins = plugin && plugin.getActiveDynamicPlatform(accessory._associatedPlatform);
|
|
220
|
-
if (plugin) {
|
|
221
|
-
accessory._associatedHAPAccessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory._associatedHAPAccessory, {}));
|
|
222
|
-
}
|
|
223
|
-
if (!platformPlugins) {
|
|
224
|
-
log.info(`Failed to find plugin to handle accessory ${accessory._associatedHAPAccessory.displayName}`);
|
|
225
|
-
if (!this.bridgeOptions.keepOrphanedCachedAccessories) {
|
|
226
|
-
log.info(`Removing orphaned accessory ${accessory._associatedHAPAccessory.displayName}`);
|
|
227
|
-
return false; // filter it from the list
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
// We set a placeholder for FirmwareRevision before configureAccessory is called so the plugin has the opportunity to override it.
|
|
232
|
-
accessory.getService(hap_nodejs_1.Service.AccessoryInformation)?.setCharacteristic(hap_nodejs_1.Characteristic.FirmwareRevision, "0");
|
|
233
|
-
platformPlugins.configureAccessory(accessory);
|
|
234
|
-
}
|
|
235
|
-
try {
|
|
236
|
-
this.bridge.addBridgedAccessory(accessory._associatedHAPAccessory);
|
|
237
|
-
}
|
|
238
|
-
catch (e) {
|
|
239
|
-
log.warn(`${accessory._associatedPlugin ? (0, logger_1.getLogPrefix)(accessory._associatedPlugin) : ""} Could not restore cached accessory '${accessory._associatedHAPAccessory.displayName}':`, e?.message);
|
|
240
|
-
return false; // filter it from the list
|
|
241
|
-
}
|
|
242
|
-
return true; // keep it in the list
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Save the cached accessories back to disk.
|
|
247
|
-
*/
|
|
248
|
-
saveCachedPlatformAccessoriesOnDisk() {
|
|
249
|
-
try {
|
|
250
|
-
// only save the cache file back to disk if we have already attempted to load it
|
|
251
|
-
// this should prevent the cache being deleted should homebridge be shutdown before it has finished launching
|
|
252
|
-
if (this.cachedAccessoriesFileLoaded) {
|
|
253
|
-
const serializedAccessories = this.cachedPlatformAccessories.map(accessory => platformAccessory_1.PlatformAccessory.serialize(accessory));
|
|
254
|
-
this.storageService.setItemSync(this.bridgeOptions.cachedAccessoriesItemName, serializedAccessories);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
catch (e) {
|
|
258
|
-
log.error("Failed to save cached accessories to disk:", e.message);
|
|
259
|
-
log.error("Your accessories will not persist between restarts until this issue is resolved.");
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
handleRegisterPlatformAccessories(accessories) {
|
|
263
|
-
const hapAccessories = accessories.map(accessory => {
|
|
264
|
-
this.cachedPlatformAccessories.push(accessory);
|
|
265
|
-
const plugin = this.pluginManager.getPlugin(accessory._associatedPlugin);
|
|
266
|
-
if (plugin) {
|
|
267
|
-
const platforms = plugin.getActiveDynamicPlatform(accessory._associatedPlatform);
|
|
268
|
-
if (!platforms) {
|
|
269
|
-
log.warn("The plugin '%s' registered a new accessory for the platform '%s'. The platform couldn't be found though!", accessory._associatedPlugin, accessory._associatedPlatform);
|
|
270
|
-
}
|
|
271
|
-
accessory._associatedHAPAccessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory._associatedHAPAccessory, {}));
|
|
272
|
-
}
|
|
273
|
-
else {
|
|
274
|
-
log.warn("A platform configured a new accessory under the plugin name '%s'. However no loaded plugin could be found for the name!", accessory._associatedPlugin);
|
|
275
|
-
}
|
|
276
|
-
return accessory._associatedHAPAccessory;
|
|
277
|
-
});
|
|
278
|
-
this.bridge.addBridgedAccessories(hapAccessories);
|
|
279
|
-
this.saveCachedPlatformAccessoriesOnDisk();
|
|
280
|
-
}
|
|
281
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
282
|
-
handleUpdatePlatformAccessories(accessories) {
|
|
283
|
-
// Update persisted accessories
|
|
284
|
-
this.saveCachedPlatformAccessoriesOnDisk();
|
|
285
|
-
}
|
|
286
|
-
handleUnregisterPlatformAccessories(accessories) {
|
|
287
|
-
const hapAccessories = accessories.map(accessory => {
|
|
288
|
-
const index = this.cachedPlatformAccessories.indexOf(accessory);
|
|
289
|
-
if (index >= 0) {
|
|
290
|
-
this.cachedPlatformAccessories.splice(index, 1);
|
|
291
|
-
}
|
|
292
|
-
return accessory._associatedHAPAccessory;
|
|
293
|
-
});
|
|
294
|
-
this.bridge.removeBridgedAccessories(hapAccessories);
|
|
295
|
-
this.saveCachedPlatformAccessoriesOnDisk();
|
|
296
|
-
}
|
|
297
|
-
async handlePublishExternalAccessories(accessories) {
|
|
298
|
-
const accessoryPin = this.bridgeConfig.pin;
|
|
299
|
-
for (const accessory of accessories) {
|
|
300
|
-
const hapAccessory = accessory._associatedHAPAccessory;
|
|
301
|
-
const advertiseAddress = mac.generate(hapAccessory.UUID);
|
|
302
|
-
// get external port allocation
|
|
303
|
-
const accessoryPort = await this.externalPortService.requestPort(advertiseAddress);
|
|
304
|
-
if (this.publishedExternalAccessories.has(advertiseAddress)) {
|
|
305
|
-
throw new Error(`Accessory ${hapAccessory.displayName} experienced an address collision.`);
|
|
306
|
-
}
|
|
307
|
-
else {
|
|
308
|
-
this.publishedExternalAccessories.set(advertiseAddress, accessory);
|
|
309
|
-
}
|
|
310
|
-
const plugin = this.pluginManager.getPlugin(accessory._associatedPlugin);
|
|
311
|
-
if (plugin) {
|
|
312
|
-
hapAccessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, hapAccessory, { ignoreSlow: true }));
|
|
313
|
-
}
|
|
314
|
-
else if (pluginManager_1.PluginManager.isQualifiedPluginIdentifier(accessory._associatedPlugin)) {
|
|
315
|
-
// we did already complain in api.ts if it wasn't a qualified name
|
|
316
|
-
log.warn("A platform configured a external accessory under the plugin name '%s'. However no loaded plugin could be found for the name!", accessory._associatedPlugin);
|
|
317
|
-
}
|
|
318
|
-
hapAccessory.on("listening" /* AccessoryEventTypes.LISTENING */, (port) => {
|
|
319
|
-
log.success("%s is running on port %s.", hapAccessory.displayName, port);
|
|
320
|
-
log.info("Please add [%s] manually in Home app. Setup Code: %s", hapAccessory.displayName, accessoryPin);
|
|
321
|
-
});
|
|
322
|
-
const publishInfo = {
|
|
323
|
-
username: advertiseAddress,
|
|
324
|
-
pincode: accessoryPin,
|
|
325
|
-
category: accessory.category,
|
|
326
|
-
port: accessoryPort,
|
|
327
|
-
bind: this.bridgeConfig.bind,
|
|
328
|
-
addIdentifyingMaterial: true,
|
|
329
|
-
advertiser: this.bridgeConfig.advertiser,
|
|
330
|
-
};
|
|
331
|
-
log.debug("Publishing external accessory (name: %s, publishInfo: %o).", hapAccessory.displayName, BridgeService.strippingPinCode(publishInfo));
|
|
332
|
-
hapAccessory.publish(publishInfo, this.allowInsecureAccess);
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
createHAPAccessory(plugin, accessoryInstance, displayName, accessoryType, uuidBase) {
|
|
336
|
-
const services = (accessoryInstance.getServices() || [])
|
|
337
|
-
.filter(service => !!service); // filter out undefined values; a common mistake
|
|
338
|
-
const controllers = (accessoryInstance.getControllers && accessoryInstance.getControllers() || [])
|
|
339
|
-
.filter(controller => !!controller);
|
|
340
|
-
if (services.length === 0 && controllers.length === 0) { // check that we only add valid accessory with at least one service
|
|
341
|
-
return undefined;
|
|
342
|
-
}
|
|
343
|
-
// The returned "services" for this accessory are simply an array of new-API-style
|
|
344
|
-
// Service instances which we can add to a created HAP-NodeJS Accessory directly.
|
|
345
|
-
const accessoryUUID = hap_nodejs_1.uuid.generate(accessoryType + ":" + (uuidBase || displayName));
|
|
346
|
-
const accessory = new hap_nodejs_1.Accessory(displayName, accessoryUUID);
|
|
347
|
-
// listen for the identify event if the accessory instance has defined an identify() method
|
|
348
|
-
if (accessoryInstance.identify) {
|
|
349
|
-
accessory.on("identify" /* AccessoryEventTypes.IDENTIFY */, (paired, callback) => {
|
|
350
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
351
|
-
// @ts-ignore
|
|
352
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
353
|
-
accessoryInstance.identify(() => { }); // empty callback for backwards compatibility
|
|
354
|
-
callback();
|
|
355
|
-
});
|
|
356
|
-
}
|
|
357
|
-
const informationService = accessory.getService(hap_nodejs_1.Service.AccessoryInformation);
|
|
358
|
-
services.forEach(service => {
|
|
359
|
-
// if you returned an AccessoryInformation service, merge its values with ours
|
|
360
|
-
if (service instanceof hap_nodejs_1.Service.AccessoryInformation) {
|
|
361
|
-
service.setCharacteristic(hap_nodejs_1.Characteristic.Name, displayName); // ensure display name is set
|
|
362
|
-
// ensure the plugin has not hooked already some listeners (some weird ones do).
|
|
363
|
-
// Otherwise, they would override our identify listener registered by the HAP-NodeJS accessory
|
|
364
|
-
service.getCharacteristic(hap_nodejs_1.Characteristic.Identify).removeAllListeners("set" /* CharacteristicEventTypes.SET */);
|
|
365
|
-
// pull out any values and listeners (get and set) you may have defined
|
|
366
|
-
informationService.replaceCharacteristicsFromService(service);
|
|
367
|
-
}
|
|
368
|
-
else {
|
|
369
|
-
accessory.addService(service);
|
|
370
|
-
}
|
|
371
|
-
});
|
|
372
|
-
accessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory, {}));
|
|
373
|
-
controllers.forEach(controller => {
|
|
374
|
-
accessory.configureController(controller);
|
|
375
|
-
});
|
|
376
|
-
return accessory;
|
|
377
|
-
}
|
|
378
|
-
async loadPlatformAccessories(plugin, platformInstance, platformType, logger) {
|
|
379
|
-
// Plugin 1.0, load accessories
|
|
380
|
-
return new Promise(resolve => {
|
|
381
|
-
// warn the user if the static platform is blocking the startup of Homebridge for to long
|
|
382
|
-
const loadDelayWarningInterval = setInterval(() => {
|
|
383
|
-
log.warn((0, logger_1.getLogPrefix)(plugin.getPluginIdentifier()), "This plugin is taking long time to load and preventing Homebridge from starting. See https://homebridge.io/w/JtMGR for more info.");
|
|
384
|
-
}, 20000);
|
|
385
|
-
platformInstance.accessories((0, hap_nodejs_1.once)((accessories) => {
|
|
386
|
-
// clear the load delay warning interval
|
|
387
|
-
clearInterval(loadDelayWarningInterval);
|
|
388
|
-
// loop through accessories adding them to the list and registering them
|
|
389
|
-
accessories.forEach((accessoryInstance, index) => {
|
|
390
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
391
|
-
// @ts-ignore
|
|
392
|
-
const accessoryName = accessoryInstance.name; // assume this property was set
|
|
393
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
394
|
-
// @ts-ignore
|
|
395
|
-
const uuidBase = accessoryInstance.uuid_base; // optional base uuid
|
|
396
|
-
log.info("Initializing platform accessory '%s'...", accessoryName);
|
|
397
|
-
const accessory = this.createHAPAccessory(plugin, accessoryInstance, accessoryName, platformType, uuidBase);
|
|
398
|
-
if (accessory) {
|
|
399
|
-
this.bridge.addBridgedAccessory(accessory);
|
|
400
|
-
}
|
|
401
|
-
else {
|
|
402
|
-
logger("Platform %s returned an accessory at index %d with an empty set of services. Won't adding it to the bridge!", platformType, index);
|
|
403
|
-
}
|
|
404
|
-
});
|
|
405
|
-
resolve();
|
|
406
|
-
}));
|
|
407
|
-
});
|
|
408
|
-
}
|
|
409
|
-
teardown() {
|
|
410
|
-
this.bridge.unpublish();
|
|
411
|
-
for (const accessory of this.publishedExternalAccessories.values()) {
|
|
412
|
-
accessory._associatedHAPAccessory.unpublish();
|
|
413
|
-
}
|
|
414
|
-
this.saveCachedPlatformAccessoriesOnDisk();
|
|
415
|
-
this.api.signalShutdown();
|
|
416
|
-
}
|
|
417
|
-
static strippingPinCode(publishInfo) {
|
|
418
|
-
const info = {
|
|
419
|
-
...publishInfo,
|
|
420
|
-
};
|
|
421
|
-
info.pincode = "***-**-***";
|
|
422
|
-
return info;
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
exports.BridgeService = BridgeService;
|
|
426
|
-
//# sourceMappingURL=bridgeService.js.map
|
package/lib/bridgeService.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bridgeService.js","sourceRoot":"","sources":["../src/bridgeService.ts"],"names":[],"mappings":"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"}
|