homebridge 2.0.0-alpha.3 → 2.0.0-alpha.5
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 +8 -6
- package/config-sample.json +3 -3
- package/{lib → dist}/api.d.ts +23 -40
- package/dist/api.d.ts.map +1 -0
- package/{lib → dist}/api.js +38 -64
- package/dist/api.js.map +1 -0
- package/{lib → dist}/bridgeService.d.ts +10 -9
- package/dist/bridgeService.d.ts.map +1 -0
- package/{lib → dist}/bridgeService.js +79 -121
- package/dist/bridgeService.js.map +1 -0
- package/{lib → dist}/childBridgeFork.d.ts +4 -3
- package/dist/childBridgeFork.d.ts.map +1 -0
- package/{lib → dist}/childBridgeFork.js +38 -41
- package/dist/childBridgeFork.js.map +1 -0
- package/{lib → dist}/childBridgeService.d.ts +8 -7
- package/dist/childBridgeService.d.ts.map +1 -0
- package/{lib → dist}/childBridgeService.js +54 -55
- 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 +89 -0
- package/dist/cli.js.map +1 -0
- package/{lib → dist}/externalPortService.d.ts +2 -2
- package/{lib → dist}/externalPortService.d.ts.map +1 -1
- package/{lib → dist}/externalPortService.js +4 -9
- package/dist/externalPortService.js.map +1 -0
- package/{lib → dist}/index.d.ts +29 -29
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/{lib → dist}/ipcService.d.ts +2 -5
- package/dist/ipcService.d.ts.map +1 -0
- package/{lib → dist}/ipcService.js +12 -12
- package/dist/ipcService.js.map +1 -0
- package/{lib → dist}/logger.d.ts +6 -6
- package/dist/logger.d.ts.map +1 -0
- package/{lib → dist}/logger.js +19 -28
- package/dist/logger.js.map +1 -0
- package/{lib → dist}/platformAccessory.d.ts +7 -6
- package/dist/platformAccessory.d.ts.map +1 -0
- package/{lib → dist}/platformAccessory.js +12 -16
- package/dist/platformAccessory.js.map +1 -0
- package/{lib → dist}/plugin.d.ts +2 -2
- package/dist/plugin.d.ts.map +1 -0
- package/{lib → dist}/plugin.js +36 -45
- package/dist/plugin.js.map +1 -0
- package/{lib → dist}/pluginManager.d.ts +3 -3
- package/dist/pluginManager.d.ts.map +1 -0
- package/{lib → dist}/pluginManager.js +72 -78
- package/dist/pluginManager.js.map +1 -0
- package/dist/server.d.ts.map +1 -0
- package/{lib → dist}/server.js +89 -116
- 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.map +1 -1
- 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 +14 -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 +42 -42
- package/lib/api.d.ts.map +0 -1
- package/lib/api.js.map +0 -1
- package/lib/bridgeService.d.ts.map +0 -1
- package/lib/bridgeService.js.map +0 -1
- package/lib/childBridgeFork.d.ts.map +0 -1
- package/lib/childBridgeFork.js.map +0 -1
- package/lib/childBridgeService.d.ts.map +0 -1
- 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 -115
- package/lib/cli.js.map +0 -1
- package/lib/externalPortService.js.map +0 -1
- 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.map +0 -1
- package/lib/ipcService.js.map +0 -1
- package/lib/logger.d.ts.map +0 -1
- package/lib/logger.js.map +0 -1
- package/lib/platformAccessory.d.ts.map +0 -1
- package/lib/platformAccessory.js.map +0 -1
- package/lib/plugin.d.ts.map +0 -1
- 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.map +0 -1
- package/lib/storageService.js +0 -70
- package/lib/storageService.js.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}/server.d.ts +0 -0
- /package/{lib → dist}/storageService.d.ts +0 -0
- /package/{lib → dist}/user.d.ts +0 -0
- /package/{lib → dist}/version.d.ts +0 -0
|
@@ -1,41 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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 {
|
|
1
|
+
import { Accessory, Bridge, Characteristic, HAPLibraryVersion, once, Service, uuid, } from 'hap-nodejs';
|
|
2
|
+
import { getLogPrefix, Logger } from './logger.js';
|
|
3
|
+
import { PlatformAccessory } from './platformAccessory.js';
|
|
4
|
+
import { PluginManager } from './pluginManager.js';
|
|
5
|
+
import { StorageService } from './storageService.js';
|
|
6
|
+
import { generate } from './util/mac.js';
|
|
7
|
+
import getVersion from './version.js';
|
|
8
|
+
const log = Logger.internal;
|
|
9
|
+
export class BridgeService {
|
|
39
10
|
api;
|
|
40
11
|
pluginManager;
|
|
41
12
|
externalPortService;
|
|
@@ -55,7 +26,7 @@ class BridgeService {
|
|
|
55
26
|
this.bridgeOptions = bridgeOptions;
|
|
56
27
|
this.bridgeConfig = bridgeConfig;
|
|
57
28
|
this.config = config;
|
|
58
|
-
this.storageService = new
|
|
29
|
+
this.storageService = new StorageService(this.bridgeOptions.cachedAccessoriesDir);
|
|
59
30
|
this.storageService.initSync();
|
|
60
31
|
// Server is "secure by default", meaning it creates a top-level Bridge accessory that
|
|
61
32
|
// will not allow unauthenticated requests. This matches the behavior of actual HomeKit
|
|
@@ -67,7 +38,7 @@ class BridgeService {
|
|
|
67
38
|
this.api.on("updatePlatformAccessories" /* InternalAPIEvent.UPDATE_PLATFORM_ACCESSORIES */, this.handleUpdatePlatformAccessories.bind(this));
|
|
68
39
|
this.api.on("unregisterPlatformAccessories" /* InternalAPIEvent.UNREGISTER_PLATFORM_ACCESSORIES */, this.handleUnregisterPlatformAccessories.bind(this));
|
|
69
40
|
this.api.on("publishExternalAccessories" /* InternalAPIEvent.PUBLISH_EXTERNAL_ACCESSORIES */, this.handlePublishExternalAccessories.bind(this));
|
|
70
|
-
this.bridge = new
|
|
41
|
+
this.bridge = new Bridge(bridgeConfig.name, uuid.generate('HomeBridge'));
|
|
71
42
|
this.bridge.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, () => {
|
|
72
43
|
// We register characteristic warning handlers on every bridged accessory (to have a reference to the plugin).
|
|
73
44
|
// For Bridges the warnings will propagate to the main Bridge accessory, thus we need to silence them here.
|
|
@@ -76,50 +47,45 @@ class BridgeService {
|
|
|
76
47
|
}
|
|
77
48
|
// characteristic warning event has additional parameter originatorChain: string[] which is currently unused
|
|
78
49
|
static printCharacteristicWriteWarning(plugin, accessory, opts, warning) {
|
|
79
|
-
const wikiInfo =
|
|
50
|
+
const wikiInfo = 'See https://homebridge.io/w/JtMGR for more info.';
|
|
80
51
|
switch (warning.type) {
|
|
81
52
|
case "slow-read" /* CharacteristicWarningType.SLOW_READ */:
|
|
82
53
|
case "slow-write" /* CharacteristicWarningType.SLOW_WRITE */:
|
|
83
54
|
if (!opts.ignoreSlow) {
|
|
84
|
-
log.info(
|
|
55
|
+
log.info(getLogPrefix(plugin.getPluginIdentifier()), 'This plugin slows down Homebridge.', warning.message, wikiInfo);
|
|
85
56
|
}
|
|
86
57
|
break;
|
|
87
58
|
case "timeout-read" /* CharacteristicWarningType.TIMEOUT_READ */:
|
|
88
59
|
case "timeout-write" /* CharacteristicWarningType.TIMEOUT_WRITE */:
|
|
89
|
-
log.error(
|
|
60
|
+
log.error(getLogPrefix(plugin.getPluginIdentifier()), 'This plugin slows down Homebridge.', warning.message, wikiInfo);
|
|
90
61
|
break;
|
|
91
62
|
case "warn-message" /* CharacteristicWarningType.WARN_MESSAGE */:
|
|
92
|
-
log.info(
|
|
63
|
+
log.info(getLogPrefix(plugin.getPluginIdentifier()), `This plugin generated a warning from the characteristic '${warning.characteristic.displayName}':`, `${warning.message}.`, wikiInfo);
|
|
93
64
|
break;
|
|
94
65
|
case "error-message" /* CharacteristicWarningType.ERROR_MESSAGE */:
|
|
95
|
-
log.error(
|
|
66
|
+
log.error(getLogPrefix(plugin.getPluginIdentifier()), `This plugin threw an error from the characteristic '${warning.characteristic.displayName}':`, `${warning.message}.`, wikiInfo);
|
|
96
67
|
break;
|
|
97
68
|
case "debug-message" /* CharacteristicWarningType.DEBUG_MESSAGE */:
|
|
98
|
-
log.debug(
|
|
69
|
+
log.debug(getLogPrefix(plugin.getPluginIdentifier()), `Characteristic '${warning.characteristic.displayName}':`, `${warning.message}.`, wikiInfo);
|
|
99
70
|
break;
|
|
100
71
|
default: // generic message for yet unknown types
|
|
101
|
-
log.info(
|
|
72
|
+
log.info(getLogPrefix(plugin.getPluginIdentifier()), `This plugin generated a warning from the characteristic '${warning.characteristic.displayName}':`, `${warning.message}.`, wikiInfo);
|
|
102
73
|
break;
|
|
103
74
|
}
|
|
104
75
|
if (warning.stack) {
|
|
105
|
-
log.debug(
|
|
76
|
+
log.debug(getLogPrefix(plugin.getPluginIdentifier()), warning.stack);
|
|
106
77
|
}
|
|
107
78
|
}
|
|
108
79
|
publishBridge() {
|
|
109
80
|
const bridgeConfig = this.bridgeConfig;
|
|
110
|
-
const info = this.bridge.getService(
|
|
111
|
-
info.setCharacteristic(
|
|
112
|
-
info.setCharacteristic(
|
|
113
|
-
info.setCharacteristic(
|
|
114
|
-
info.setCharacteristic(
|
|
81
|
+
const info = this.bridge.getService(Service.AccessoryInformation);
|
|
82
|
+
info.setCharacteristic(Characteristic.Manufacturer, bridgeConfig.manufacturer || 'homebridge.io');
|
|
83
|
+
info.setCharacteristic(Characteristic.Model, bridgeConfig.model || 'homebridge');
|
|
84
|
+
info.setCharacteristic(Characteristic.SerialNumber, bridgeConfig.username);
|
|
85
|
+
info.setCharacteristic(Characteristic.FirmwareRevision, bridgeConfig.firmwareRevision || getVersion());
|
|
115
86
|
this.bridge.on("listening" /* AccessoryEventTypes.LISTENING */, (port) => {
|
|
116
|
-
log.success(
|
|
117
|
-
log.warn("\n\nNOTICE TO USERS AND PLUGIN DEVELOPERS"
|
|
118
|
-
+ "\n> Homebridge 2.0 is on the way and brings some breaking changes to existing plugins.\n"
|
|
119
|
-
+ "> Please visit the following link to learn more about the changes and how to prepare:\n"
|
|
120
|
-
+ "> https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0\n");
|
|
87
|
+
log.success('Homebridge v%s (HAP v%s) (%s) is running on port %s.', getVersion(), HAPLibraryVersion(), bridgeConfig.name, port);
|
|
121
88
|
});
|
|
122
|
-
// noinspection JSDeprecatedSymbols
|
|
123
89
|
const publishInfo = {
|
|
124
90
|
username: bridgeConfig.username,
|
|
125
91
|
port: bridgeConfig.port,
|
|
@@ -132,7 +98,7 @@ class BridgeService {
|
|
|
132
98
|
if (bridgeConfig.setupID && bridgeConfig.setupID.length === 4) {
|
|
133
99
|
publishInfo.setupID = bridgeConfig.setupID;
|
|
134
100
|
}
|
|
135
|
-
log.debug(
|
|
101
|
+
log.debug('Publishing bridge accessory (name: %s, publishInfo: %o).', this.bridge.displayName, BridgeService.strippingPinCode(publishInfo));
|
|
136
102
|
this.bridge.publish(publishInfo, this.allowInsecureAccess);
|
|
137
103
|
}
|
|
138
104
|
/**
|
|
@@ -143,20 +109,20 @@ class BridgeService {
|
|
|
143
109
|
try {
|
|
144
110
|
cachedAccessories = await this.storageService.getItem(this.bridgeOptions.cachedAccessoriesItemName);
|
|
145
111
|
}
|
|
146
|
-
catch (
|
|
147
|
-
log.error(
|
|
148
|
-
if (
|
|
112
|
+
catch (error) {
|
|
113
|
+
log.error('Failed to load cached accessories from disk:', error.message);
|
|
114
|
+
if (error instanceof SyntaxError) {
|
|
149
115
|
// syntax error probably means invalid json / corrupted file; try and restore from backup
|
|
150
116
|
cachedAccessories = await this.restoreCachedAccessoriesBackup();
|
|
151
117
|
}
|
|
152
118
|
else {
|
|
153
|
-
log.error(
|
|
119
|
+
log.error('Not restoring cached accessories - some accessories may be reset.');
|
|
154
120
|
}
|
|
155
121
|
}
|
|
156
122
|
if (cachedAccessories) {
|
|
157
123
|
log.info(`Loaded ${cachedAccessories.length} cached accessories from ${this.bridgeOptions.cachedAccessoriesItemName}.`);
|
|
158
|
-
this.cachedPlatformAccessories = cachedAccessories.map(serialized => {
|
|
159
|
-
return
|
|
124
|
+
this.cachedPlatformAccessories = cachedAccessories.map((serialized) => {
|
|
125
|
+
return PlatformAccessory.deserialize(serialized);
|
|
160
126
|
});
|
|
161
127
|
if (cachedAccessories.length) {
|
|
162
128
|
// create a backup of the cache file
|
|
@@ -179,8 +145,8 @@ class BridgeService {
|
|
|
179
145
|
try {
|
|
180
146
|
await this.storageService.copyItem(this.bridgeOptions.cachedAccessoriesItemName, this.backupCacheFileName);
|
|
181
147
|
}
|
|
182
|
-
catch (
|
|
183
|
-
log.warn(`Failed to create a backup of the ${this.bridgeOptions.cachedAccessoriesItemName} cached accessories file:`,
|
|
148
|
+
catch (error) {
|
|
149
|
+
log.warn(`Failed to create a backup of the ${this.bridgeOptions.cachedAccessoriesItemName} cached accessories file:`, error.message);
|
|
184
150
|
}
|
|
185
151
|
}
|
|
186
152
|
/**
|
|
@@ -195,12 +161,12 @@ class BridgeService {
|
|
|
195
161
|
}
|
|
196
162
|
return cachedAccessories;
|
|
197
163
|
}
|
|
198
|
-
catch (
|
|
164
|
+
catch (error) {
|
|
199
165
|
return null;
|
|
200
166
|
}
|
|
201
167
|
}
|
|
202
168
|
restoreCachedPlatformAccessories() {
|
|
203
|
-
this.cachedPlatformAccessories = this.cachedPlatformAccessories.filter(accessory => {
|
|
169
|
+
this.cachedPlatformAccessories = this.cachedPlatformAccessories.filter((accessory) => {
|
|
204
170
|
let plugin = this.pluginManager.getPlugin(accessory._associatedPlugin);
|
|
205
171
|
if (!plugin) { // a little explainer here. This section is basically here to resolve plugin name changes of dynamic platform plugins
|
|
206
172
|
try {
|
|
@@ -210,15 +176,14 @@ class BridgeService {
|
|
|
210
176
|
// could improve on this by calculating the Levenshtein distance to only allow platform ownership changes
|
|
211
177
|
// when something like a typo happened. Are there other reasons the name could change?
|
|
212
178
|
// And how would we define the threshold?
|
|
213
|
-
log.info(
|
|
214
|
-
|
|
215
|
-
plugin.getPluginIdentifier() + "'. Plugin association is now being transformed!");
|
|
179
|
+
log.info(`When searching for the associated plugin of the accessory '${accessory.displayName}' `
|
|
180
|
+
+ `it seems like the plugin name changed from '${accessory._associatedPlugin}' to '${plugin.getPluginIdentifier()}'. Plugin association is now being transformed!`);
|
|
216
181
|
accessory._associatedPlugin = plugin.getPluginIdentifier(); // update the associated plugin to the new one
|
|
217
182
|
}
|
|
218
183
|
}
|
|
219
184
|
catch (error) { // error is thrown if multiple plugins where found for the given platform name
|
|
220
|
-
log.info(
|
|
221
|
-
|
|
185
|
+
log.info(`Could not find the associated plugin for the accessory '${accessory.displayName}'. `
|
|
186
|
+
+ `Tried to find the plugin by the platform name but ${error.message}`);
|
|
222
187
|
}
|
|
223
188
|
}
|
|
224
189
|
const platformPlugins = plugin && plugin.getActiveDynamicPlatform(accessory._associatedPlatform);
|
|
@@ -234,14 +199,14 @@ class BridgeService {
|
|
|
234
199
|
}
|
|
235
200
|
else {
|
|
236
201
|
// We set a placeholder for FirmwareRevision before configureAccessory is called so the plugin has the opportunity to override it.
|
|
237
|
-
accessory.getService(
|
|
202
|
+
accessory.getService(Service.AccessoryInformation)?.setCharacteristic(Characteristic.FirmwareRevision, '0');
|
|
238
203
|
platformPlugins.configureAccessory(accessory);
|
|
239
204
|
}
|
|
240
205
|
try {
|
|
241
206
|
this.bridge.addBridgedAccessory(accessory._associatedHAPAccessory);
|
|
242
207
|
}
|
|
243
|
-
catch (
|
|
244
|
-
log.warn(`${accessory._associatedPlugin ?
|
|
208
|
+
catch (error) {
|
|
209
|
+
log.warn(`${accessory._associatedPlugin ? getLogPrefix(accessory._associatedPlugin) : ''} Could not restore cached accessory '${accessory._associatedHAPAccessory.displayName}':`, error.message);
|
|
245
210
|
return false; // filter it from the list
|
|
246
211
|
}
|
|
247
212
|
return true; // keep it in the list
|
|
@@ -255,41 +220,40 @@ class BridgeService {
|
|
|
255
220
|
// only save the cache file back to disk if we have already attempted to load it
|
|
256
221
|
// this should prevent the cache being deleted should homebridge be shutdown before it has finished launching
|
|
257
222
|
if (this.cachedAccessoriesFileLoaded) {
|
|
258
|
-
const serializedAccessories = this.cachedPlatformAccessories.map(accessory =>
|
|
223
|
+
const serializedAccessories = this.cachedPlatformAccessories.map(accessory => PlatformAccessory.serialize(accessory));
|
|
259
224
|
this.storageService.setItemSync(this.bridgeOptions.cachedAccessoriesItemName, serializedAccessories);
|
|
260
225
|
}
|
|
261
226
|
}
|
|
262
|
-
catch (
|
|
263
|
-
log.error(
|
|
264
|
-
log.error(
|
|
227
|
+
catch (error) {
|
|
228
|
+
log.error('Failed to save cached accessories to disk:', error.message);
|
|
229
|
+
log.error('Your accessories will not persist between restarts until this issue is resolved.');
|
|
265
230
|
}
|
|
266
231
|
}
|
|
267
232
|
handleRegisterPlatformAccessories(accessories) {
|
|
268
|
-
const hapAccessories = accessories.map(accessory => {
|
|
233
|
+
const hapAccessories = accessories.map((accessory) => {
|
|
269
234
|
this.cachedPlatformAccessories.push(accessory);
|
|
270
235
|
const plugin = this.pluginManager.getPlugin(accessory._associatedPlugin);
|
|
271
236
|
if (plugin) {
|
|
272
237
|
const platforms = plugin.getActiveDynamicPlatform(accessory._associatedPlatform);
|
|
273
238
|
if (!platforms) {
|
|
274
|
-
log.warn(
|
|
239
|
+
log.warn('The plugin \'%s\' registered a new accessory for the platform \'%s\'. The platform couldn\'t be found though!', accessory._associatedPlugin, accessory._associatedPlatform);
|
|
275
240
|
}
|
|
276
241
|
accessory._associatedHAPAccessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory._associatedHAPAccessory, {}));
|
|
277
242
|
}
|
|
278
243
|
else {
|
|
279
|
-
log.warn(
|
|
244
|
+
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);
|
|
280
245
|
}
|
|
281
246
|
return accessory._associatedHAPAccessory;
|
|
282
247
|
});
|
|
283
248
|
this.bridge.addBridgedAccessories(hapAccessories);
|
|
284
249
|
this.saveCachedPlatformAccessoriesOnDisk();
|
|
285
250
|
}
|
|
286
|
-
|
|
287
|
-
handleUpdatePlatformAccessories(accessories) {
|
|
251
|
+
handleUpdatePlatformAccessories() {
|
|
288
252
|
// Update persisted accessories
|
|
289
253
|
this.saveCachedPlatformAccessoriesOnDisk();
|
|
290
254
|
}
|
|
291
255
|
handleUnregisterPlatformAccessories(accessories) {
|
|
292
|
-
const hapAccessories = accessories.map(accessory => {
|
|
256
|
+
const hapAccessories = accessories.map((accessory) => {
|
|
293
257
|
const index = this.cachedPlatformAccessories.indexOf(accessory);
|
|
294
258
|
if (index >= 0) {
|
|
295
259
|
this.cachedPlatformAccessories.splice(index, 1);
|
|
@@ -303,7 +267,7 @@ class BridgeService {
|
|
|
303
267
|
const accessoryPin = this.bridgeConfig.pin;
|
|
304
268
|
for (const accessory of accessories) {
|
|
305
269
|
const hapAccessory = accessory._associatedHAPAccessory;
|
|
306
|
-
const advertiseAddress =
|
|
270
|
+
const advertiseAddress = generate(hapAccessory.UUID);
|
|
307
271
|
// get external port allocation
|
|
308
272
|
const accessoryPort = await this.externalPortService.requestPort(advertiseAddress);
|
|
309
273
|
if (this.publishedExternalAccessories.has(advertiseAddress)) {
|
|
@@ -316,15 +280,14 @@ class BridgeService {
|
|
|
316
280
|
if (plugin) {
|
|
317
281
|
hapAccessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, hapAccessory, { ignoreSlow: true }));
|
|
318
282
|
}
|
|
319
|
-
else if (
|
|
283
|
+
else if (PluginManager.isQualifiedPluginIdentifier(accessory._associatedPlugin)) {
|
|
320
284
|
// we did already complain in api.ts if it wasn't a qualified name
|
|
321
|
-
log.warn(
|
|
285
|
+
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);
|
|
322
286
|
}
|
|
323
287
|
hapAccessory.on("listening" /* AccessoryEventTypes.LISTENING */, (port) => {
|
|
324
|
-
log.success(
|
|
325
|
-
log.info(
|
|
288
|
+
log.success('%s is running on port %s.', hapAccessory.displayName, port);
|
|
289
|
+
log.info('Please add [%s] manually in Home app. Setup Code: %s', hapAccessory.displayName, accessoryPin);
|
|
326
290
|
});
|
|
327
|
-
// noinspection JSDeprecatedSymbols
|
|
328
291
|
const publishInfo = {
|
|
329
292
|
username: advertiseAddress,
|
|
330
293
|
pincode: accessoryPin,
|
|
@@ -334,40 +297,38 @@ class BridgeService {
|
|
|
334
297
|
addIdentifyingMaterial: true,
|
|
335
298
|
advertiser: this.bridgeConfig.advertiser,
|
|
336
299
|
};
|
|
337
|
-
log.debug(
|
|
300
|
+
log.debug('Publishing external accessory (name: %s, publishInfo: %o).', hapAccessory.displayName, BridgeService.strippingPinCode(publishInfo));
|
|
338
301
|
hapAccessory.publish(publishInfo, this.allowInsecureAccess);
|
|
339
302
|
}
|
|
340
303
|
}
|
|
341
304
|
createHAPAccessory(plugin, accessoryInstance, displayName, accessoryType, uuidBase) {
|
|
342
305
|
const services = (accessoryInstance.getServices() || [])
|
|
343
306
|
.filter(service => !!service); // filter out undefined values; a common mistake
|
|
344
|
-
const controllers = (accessoryInstance.getControllers && accessoryInstance.getControllers() || [])
|
|
307
|
+
const controllers = ((accessoryInstance.getControllers && accessoryInstance.getControllers()) || [])
|
|
345
308
|
.filter(controller => !!controller);
|
|
346
309
|
if (services.length === 0 && controllers.length === 0) { // check that we only add valid accessory with at least one service
|
|
347
310
|
return undefined;
|
|
348
311
|
}
|
|
349
312
|
// The returned "services" for this accessory are simply an array of new-API-style
|
|
350
313
|
// Service instances which we can add to a created HAP-NodeJS Accessory directly.
|
|
351
|
-
const accessoryUUID =
|
|
352
|
-
const accessory = new
|
|
314
|
+
const accessoryUUID = uuid.generate(`${accessoryType}:${uuidBase || displayName}`);
|
|
315
|
+
const accessory = new Accessory(displayName, accessoryUUID);
|
|
353
316
|
// listen for the identify event if the accessory instance has defined an identify() method
|
|
354
317
|
if (accessoryInstance.identify) {
|
|
355
318
|
accessory.on("identify" /* AccessoryEventTypes.IDENTIFY */, (paired, callback) => {
|
|
356
|
-
//
|
|
357
|
-
|
|
358
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
359
|
-
accessoryInstance.identify(() => { }); // empty callback for backwards compatibility
|
|
319
|
+
// @ts-expect-error: empty callback for backwards compatibility
|
|
320
|
+
accessoryInstance.identify(() => { });
|
|
360
321
|
callback();
|
|
361
322
|
});
|
|
362
323
|
}
|
|
363
|
-
const informationService = accessory.getService(
|
|
364
|
-
services.forEach(service => {
|
|
324
|
+
const informationService = accessory.getService(Service.AccessoryInformation);
|
|
325
|
+
services.forEach((service) => {
|
|
365
326
|
// if you returned an AccessoryInformation service, merge its values with ours
|
|
366
|
-
if (service instanceof
|
|
367
|
-
service.setCharacteristic(
|
|
327
|
+
if (service instanceof Service.AccessoryInformation) {
|
|
328
|
+
service.setCharacteristic(Characteristic.Name, displayName); // ensure display name is set
|
|
368
329
|
// ensure the plugin has not hooked already some listeners (some weird ones do).
|
|
369
330
|
// Otherwise, they would override our identify listener registered by the HAP-NodeJS accessory
|
|
370
|
-
service.getCharacteristic(
|
|
331
|
+
service.getCharacteristic(Characteristic.Identify).removeAllListeners("set" /* CharacteristicEventTypes.SET */);
|
|
371
332
|
// pull out any values and listeners (get and set) you may have defined
|
|
372
333
|
informationService.replaceCharacteristicsFromService(service);
|
|
373
334
|
}
|
|
@@ -376,36 +337,34 @@ class BridgeService {
|
|
|
376
337
|
}
|
|
377
338
|
});
|
|
378
339
|
accessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory, {}));
|
|
379
|
-
controllers.forEach(controller => {
|
|
340
|
+
controllers.forEach((controller) => {
|
|
380
341
|
accessory.configureController(controller);
|
|
381
342
|
});
|
|
382
343
|
return accessory;
|
|
383
344
|
}
|
|
384
345
|
async loadPlatformAccessories(plugin, platformInstance, platformType, logger) {
|
|
385
346
|
// Plugin 1.0, load accessories
|
|
386
|
-
return new Promise(resolve => {
|
|
347
|
+
return new Promise((resolve) => {
|
|
387
348
|
// warn the user if the static platform is blocking the startup of Homebridge for to long
|
|
388
349
|
const loadDelayWarningInterval = setInterval(() => {
|
|
389
|
-
log.warn(
|
|
350
|
+
log.warn(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.');
|
|
390
351
|
}, 20000);
|
|
391
|
-
platformInstance.accessories(
|
|
352
|
+
platformInstance.accessories(once((accessories) => {
|
|
392
353
|
// clear the load delay warning interval
|
|
393
354
|
clearInterval(loadDelayWarningInterval);
|
|
394
355
|
// loop through accessories adding them to the list and registering them
|
|
395
356
|
accessories.forEach((accessoryInstance, index) => {
|
|
396
|
-
//
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
const uuidBase = accessoryInstance.uuid_base; // optional base uuid
|
|
402
|
-
log.info("Initializing platform accessory '%s'...", accessoryName);
|
|
357
|
+
// @ts-expect-error: assume this property was set
|
|
358
|
+
const accessoryName = accessoryInstance.name;
|
|
359
|
+
// @ts-expect-error: optional base uuid
|
|
360
|
+
const uuidBase = accessoryInstance.uuid_base;
|
|
361
|
+
log.info('Initializing platform accessory \'%s\'...', accessoryName);
|
|
403
362
|
const accessory = this.createHAPAccessory(plugin, accessoryInstance, accessoryName, platformType, uuidBase);
|
|
404
363
|
if (accessory) {
|
|
405
364
|
this.bridge.addBridgedAccessory(accessory);
|
|
406
365
|
}
|
|
407
366
|
else {
|
|
408
|
-
logger(
|
|
367
|
+
logger('Platform %s returned an accessory at index %d with an empty set of services. Won\'t adding it to the bridge!', platformType, index);
|
|
409
368
|
}
|
|
410
369
|
});
|
|
411
370
|
resolve();
|
|
@@ -424,9 +383,8 @@ class BridgeService {
|
|
|
424
383
|
const info = {
|
|
425
384
|
...publishInfo,
|
|
426
385
|
};
|
|
427
|
-
info.pincode =
|
|
386
|
+
info.pincode = '***-**-***';
|
|
428
387
|
return info;
|
|
429
388
|
}
|
|
430
389
|
}
|
|
431
|
-
exports.BridgeService = BridgeService;
|
|
432
390
|
//# sourceMappingURL=bridgeService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridgeService.js","sourceRoot":"","sources":["../src/bridgeService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import type { MacAddress } from 'hap-nodejs';
|
|
2
|
+
import type { ChildProcessLoadEventData, ChildProcessPortAllocatedEventData } from './childBridgeService.js';
|
|
3
|
+
import 'source-map-support/register.js';
|
|
4
|
+
import { ChildProcessMessageEventType } from './childBridgeService.js';
|
|
4
5
|
export declare class ChildBridgeFork {
|
|
5
6
|
private bridgeService;
|
|
6
7
|
private api;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"childBridgeFork.d.ts","sourceRoot":"","sources":["../src/childBridgeFork.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAU5C,OAAO,KAAK,EAEV,yBAAyB,EAGzB,kCAAkC,EAEnC,MAAM,yBAAyB,CAAA;AAMhC,OAAO,gCAAgC,CAAA;AAIvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAYtE,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAiC;IAE5D,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,mBAAmB,CAAiE;;IAO5F,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;IA8ElC;;;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"}
|