homebridge 2.0.0-alpha.1 → 2.0.0-alpha.10
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 -117
- 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 +10 -7
- package/dist/childBridgeService.d.ts.map +1 -0
- package/{lib → dist}/childBridgeService.js +86 -65
- 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 +38 -47
- 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 -44
- 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,46 +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.
|
|
87
|
+
log.success('Homebridge v%s (HAP v%s) (%s) is running on port %s.', getVersion(), HAPLibraryVersion(), bridgeConfig.name, port);
|
|
117
88
|
});
|
|
118
|
-
// noinspection JSDeprecatedSymbols
|
|
119
89
|
const publishInfo = {
|
|
120
90
|
username: bridgeConfig.username,
|
|
121
91
|
port: bridgeConfig.port,
|
|
@@ -128,7 +98,7 @@ class BridgeService {
|
|
|
128
98
|
if (bridgeConfig.setupID && bridgeConfig.setupID.length === 4) {
|
|
129
99
|
publishInfo.setupID = bridgeConfig.setupID;
|
|
130
100
|
}
|
|
131
|
-
log.debug(
|
|
101
|
+
log.debug('Publishing bridge accessory (name: %s, publishInfo: %o).', this.bridge.displayName, BridgeService.strippingPinCode(publishInfo));
|
|
132
102
|
this.bridge.publish(publishInfo, this.allowInsecureAccess);
|
|
133
103
|
}
|
|
134
104
|
/**
|
|
@@ -139,20 +109,20 @@ class BridgeService {
|
|
|
139
109
|
try {
|
|
140
110
|
cachedAccessories = await this.storageService.getItem(this.bridgeOptions.cachedAccessoriesItemName);
|
|
141
111
|
}
|
|
142
|
-
catch (
|
|
143
|
-
log.error(
|
|
144
|
-
if (
|
|
112
|
+
catch (error) {
|
|
113
|
+
log.error('Failed to load cached accessories from disk:', error.message);
|
|
114
|
+
if (error instanceof SyntaxError) {
|
|
145
115
|
// syntax error probably means invalid json / corrupted file; try and restore from backup
|
|
146
116
|
cachedAccessories = await this.restoreCachedAccessoriesBackup();
|
|
147
117
|
}
|
|
148
118
|
else {
|
|
149
|
-
log.error(
|
|
119
|
+
log.error('Not restoring cached accessories - some accessories may be reset.');
|
|
150
120
|
}
|
|
151
121
|
}
|
|
152
122
|
if (cachedAccessories) {
|
|
153
123
|
log.info(`Loaded ${cachedAccessories.length} cached accessories from ${this.bridgeOptions.cachedAccessoriesItemName}.`);
|
|
154
|
-
this.cachedPlatformAccessories = cachedAccessories.map(serialized => {
|
|
155
|
-
return
|
|
124
|
+
this.cachedPlatformAccessories = cachedAccessories.map((serialized) => {
|
|
125
|
+
return PlatformAccessory.deserialize(serialized);
|
|
156
126
|
});
|
|
157
127
|
if (cachedAccessories.length) {
|
|
158
128
|
// create a backup of the cache file
|
|
@@ -175,8 +145,8 @@ class BridgeService {
|
|
|
175
145
|
try {
|
|
176
146
|
await this.storageService.copyItem(this.bridgeOptions.cachedAccessoriesItemName, this.backupCacheFileName);
|
|
177
147
|
}
|
|
178
|
-
catch (
|
|
179
|
-
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);
|
|
180
150
|
}
|
|
181
151
|
}
|
|
182
152
|
/**
|
|
@@ -191,12 +161,12 @@ class BridgeService {
|
|
|
191
161
|
}
|
|
192
162
|
return cachedAccessories;
|
|
193
163
|
}
|
|
194
|
-
catch (
|
|
164
|
+
catch (error) {
|
|
195
165
|
return null;
|
|
196
166
|
}
|
|
197
167
|
}
|
|
198
168
|
restoreCachedPlatformAccessories() {
|
|
199
|
-
this.cachedPlatformAccessories = this.cachedPlatformAccessories.filter(accessory => {
|
|
169
|
+
this.cachedPlatformAccessories = this.cachedPlatformAccessories.filter((accessory) => {
|
|
200
170
|
let plugin = this.pluginManager.getPlugin(accessory._associatedPlugin);
|
|
201
171
|
if (!plugin) { // a little explainer here. This section is basically here to resolve plugin name changes of dynamic platform plugins
|
|
202
172
|
try {
|
|
@@ -206,15 +176,14 @@ class BridgeService {
|
|
|
206
176
|
// could improve on this by calculating the Levenshtein distance to only allow platform ownership changes
|
|
207
177
|
// when something like a typo happened. Are there other reasons the name could change?
|
|
208
178
|
// And how would we define the threshold?
|
|
209
|
-
log.info(
|
|
210
|
-
|
|
211
|
-
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!`);
|
|
212
181
|
accessory._associatedPlugin = plugin.getPluginIdentifier(); // update the associated plugin to the new one
|
|
213
182
|
}
|
|
214
183
|
}
|
|
215
184
|
catch (error) { // error is thrown if multiple plugins where found for the given platform name
|
|
216
|
-
log.info(
|
|
217
|
-
|
|
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}`);
|
|
218
187
|
}
|
|
219
188
|
}
|
|
220
189
|
const platformPlugins = plugin && plugin.getActiveDynamicPlatform(accessory._associatedPlatform);
|
|
@@ -230,14 +199,14 @@ class BridgeService {
|
|
|
230
199
|
}
|
|
231
200
|
else {
|
|
232
201
|
// We set a placeholder for FirmwareRevision before configureAccessory is called so the plugin has the opportunity to override it.
|
|
233
|
-
accessory.getService(
|
|
202
|
+
accessory.getService(Service.AccessoryInformation)?.setCharacteristic(Characteristic.FirmwareRevision, '0');
|
|
234
203
|
platformPlugins.configureAccessory(accessory);
|
|
235
204
|
}
|
|
236
205
|
try {
|
|
237
206
|
this.bridge.addBridgedAccessory(accessory._associatedHAPAccessory);
|
|
238
207
|
}
|
|
239
|
-
catch (
|
|
240
|
-
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);
|
|
241
210
|
return false; // filter it from the list
|
|
242
211
|
}
|
|
243
212
|
return true; // keep it in the list
|
|
@@ -251,41 +220,40 @@ class BridgeService {
|
|
|
251
220
|
// only save the cache file back to disk if we have already attempted to load it
|
|
252
221
|
// this should prevent the cache being deleted should homebridge be shutdown before it has finished launching
|
|
253
222
|
if (this.cachedAccessoriesFileLoaded) {
|
|
254
|
-
const serializedAccessories = this.cachedPlatformAccessories.map(accessory =>
|
|
223
|
+
const serializedAccessories = this.cachedPlatformAccessories.map(accessory => PlatformAccessory.serialize(accessory));
|
|
255
224
|
this.storageService.setItemSync(this.bridgeOptions.cachedAccessoriesItemName, serializedAccessories);
|
|
256
225
|
}
|
|
257
226
|
}
|
|
258
|
-
catch (
|
|
259
|
-
log.error(
|
|
260
|
-
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.');
|
|
261
230
|
}
|
|
262
231
|
}
|
|
263
232
|
handleRegisterPlatformAccessories(accessories) {
|
|
264
|
-
const hapAccessories = accessories.map(accessory => {
|
|
233
|
+
const hapAccessories = accessories.map((accessory) => {
|
|
265
234
|
this.cachedPlatformAccessories.push(accessory);
|
|
266
235
|
const plugin = this.pluginManager.getPlugin(accessory._associatedPlugin);
|
|
267
236
|
if (plugin) {
|
|
268
237
|
const platforms = plugin.getActiveDynamicPlatform(accessory._associatedPlatform);
|
|
269
238
|
if (!platforms) {
|
|
270
|
-
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);
|
|
271
240
|
}
|
|
272
241
|
accessory._associatedHAPAccessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory._associatedHAPAccessory, {}));
|
|
273
242
|
}
|
|
274
243
|
else {
|
|
275
|
-
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);
|
|
276
245
|
}
|
|
277
246
|
return accessory._associatedHAPAccessory;
|
|
278
247
|
});
|
|
279
248
|
this.bridge.addBridgedAccessories(hapAccessories);
|
|
280
249
|
this.saveCachedPlatformAccessoriesOnDisk();
|
|
281
250
|
}
|
|
282
|
-
|
|
283
|
-
handleUpdatePlatformAccessories(accessories) {
|
|
251
|
+
handleUpdatePlatformAccessories() {
|
|
284
252
|
// Update persisted accessories
|
|
285
253
|
this.saveCachedPlatformAccessoriesOnDisk();
|
|
286
254
|
}
|
|
287
255
|
handleUnregisterPlatformAccessories(accessories) {
|
|
288
|
-
const hapAccessories = accessories.map(accessory => {
|
|
256
|
+
const hapAccessories = accessories.map((accessory) => {
|
|
289
257
|
const index = this.cachedPlatformAccessories.indexOf(accessory);
|
|
290
258
|
if (index >= 0) {
|
|
291
259
|
this.cachedPlatformAccessories.splice(index, 1);
|
|
@@ -299,7 +267,7 @@ class BridgeService {
|
|
|
299
267
|
const accessoryPin = this.bridgeConfig.pin;
|
|
300
268
|
for (const accessory of accessories) {
|
|
301
269
|
const hapAccessory = accessory._associatedHAPAccessory;
|
|
302
|
-
const advertiseAddress =
|
|
270
|
+
const advertiseAddress = generate(hapAccessory.UUID);
|
|
303
271
|
// get external port allocation
|
|
304
272
|
const accessoryPort = await this.externalPortService.requestPort(advertiseAddress);
|
|
305
273
|
if (this.publishedExternalAccessories.has(advertiseAddress)) {
|
|
@@ -312,15 +280,14 @@ class BridgeService {
|
|
|
312
280
|
if (plugin) {
|
|
313
281
|
hapAccessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, hapAccessory, { ignoreSlow: true }));
|
|
314
282
|
}
|
|
315
|
-
else if (
|
|
283
|
+
else if (PluginManager.isQualifiedPluginIdentifier(accessory._associatedPlugin)) {
|
|
316
284
|
// we did already complain in api.ts if it wasn't a qualified name
|
|
317
|
-
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);
|
|
318
286
|
}
|
|
319
287
|
hapAccessory.on("listening" /* AccessoryEventTypes.LISTENING */, (port) => {
|
|
320
|
-
log.
|
|
321
|
-
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);
|
|
322
290
|
});
|
|
323
|
-
// noinspection JSDeprecatedSymbols
|
|
324
291
|
const publishInfo = {
|
|
325
292
|
username: advertiseAddress,
|
|
326
293
|
pincode: accessoryPin,
|
|
@@ -330,40 +297,38 @@ class BridgeService {
|
|
|
330
297
|
addIdentifyingMaterial: true,
|
|
331
298
|
advertiser: this.bridgeConfig.advertiser,
|
|
332
299
|
};
|
|
333
|
-
log.debug(
|
|
300
|
+
log.debug('Publishing external accessory (name: %s, publishInfo: %o).', hapAccessory.displayName, BridgeService.strippingPinCode(publishInfo));
|
|
334
301
|
hapAccessory.publish(publishInfo, this.allowInsecureAccess);
|
|
335
302
|
}
|
|
336
303
|
}
|
|
337
304
|
createHAPAccessory(plugin, accessoryInstance, displayName, accessoryType, uuidBase) {
|
|
338
305
|
const services = (accessoryInstance.getServices() || [])
|
|
339
306
|
.filter(service => !!service); // filter out undefined values; a common mistake
|
|
340
|
-
const controllers = (accessoryInstance.getControllers && accessoryInstance.getControllers() || [])
|
|
307
|
+
const controllers = ((accessoryInstance.getControllers && accessoryInstance.getControllers()) || [])
|
|
341
308
|
.filter(controller => !!controller);
|
|
342
309
|
if (services.length === 0 && controllers.length === 0) { // check that we only add valid accessory with at least one service
|
|
343
310
|
return undefined;
|
|
344
311
|
}
|
|
345
312
|
// The returned "services" for this accessory are simply an array of new-API-style
|
|
346
313
|
// Service instances which we can add to a created HAP-NodeJS Accessory directly.
|
|
347
|
-
const accessoryUUID =
|
|
348
|
-
const accessory = new
|
|
314
|
+
const accessoryUUID = uuid.generate(`${accessoryType}:${uuidBase || displayName}`);
|
|
315
|
+
const accessory = new Accessory(displayName, accessoryUUID);
|
|
349
316
|
// listen for the identify event if the accessory instance has defined an identify() method
|
|
350
317
|
if (accessoryInstance.identify) {
|
|
351
318
|
accessory.on("identify" /* AccessoryEventTypes.IDENTIFY */, (paired, callback) => {
|
|
352
|
-
//
|
|
353
|
-
|
|
354
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
355
|
-
accessoryInstance.identify(() => { }); // empty callback for backwards compatibility
|
|
319
|
+
// @ts-expect-error: empty callback for backwards compatibility
|
|
320
|
+
accessoryInstance.identify(() => { });
|
|
356
321
|
callback();
|
|
357
322
|
});
|
|
358
323
|
}
|
|
359
|
-
const informationService = accessory.getService(
|
|
360
|
-
services.forEach(service => {
|
|
324
|
+
const informationService = accessory.getService(Service.AccessoryInformation);
|
|
325
|
+
services.forEach((service) => {
|
|
361
326
|
// if you returned an AccessoryInformation service, merge its values with ours
|
|
362
|
-
if (service instanceof
|
|
363
|
-
service.setCharacteristic(
|
|
327
|
+
if (service instanceof Service.AccessoryInformation) {
|
|
328
|
+
service.setCharacteristic(Characteristic.Name, displayName); // ensure display name is set
|
|
364
329
|
// ensure the plugin has not hooked already some listeners (some weird ones do).
|
|
365
330
|
// Otherwise, they would override our identify listener registered by the HAP-NodeJS accessory
|
|
366
|
-
service.getCharacteristic(
|
|
331
|
+
service.getCharacteristic(Characteristic.Identify).removeAllListeners("set" /* CharacteristicEventTypes.SET */);
|
|
367
332
|
// pull out any values and listeners (get and set) you may have defined
|
|
368
333
|
informationService.replaceCharacteristicsFromService(service);
|
|
369
334
|
}
|
|
@@ -372,36 +337,34 @@ class BridgeService {
|
|
|
372
337
|
}
|
|
373
338
|
});
|
|
374
339
|
accessory.on("characteristic-warning" /* AccessoryEventTypes.CHARACTERISTIC_WARNING */, BridgeService.printCharacteristicWriteWarning.bind(this, plugin, accessory, {}));
|
|
375
|
-
controllers.forEach(controller => {
|
|
340
|
+
controllers.forEach((controller) => {
|
|
376
341
|
accessory.configureController(controller);
|
|
377
342
|
});
|
|
378
343
|
return accessory;
|
|
379
344
|
}
|
|
380
345
|
async loadPlatformAccessories(plugin, platformInstance, platformType, logger) {
|
|
381
346
|
// Plugin 1.0, load accessories
|
|
382
|
-
return new Promise(resolve => {
|
|
347
|
+
return new Promise((resolve) => {
|
|
383
348
|
// warn the user if the static platform is blocking the startup of Homebridge for to long
|
|
384
349
|
const loadDelayWarningInterval = setInterval(() => {
|
|
385
|
-
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.');
|
|
386
351
|
}, 20000);
|
|
387
|
-
platformInstance.accessories(
|
|
352
|
+
platformInstance.accessories(once((accessories) => {
|
|
388
353
|
// clear the load delay warning interval
|
|
389
354
|
clearInterval(loadDelayWarningInterval);
|
|
390
355
|
// loop through accessories adding them to the list and registering them
|
|
391
356
|
accessories.forEach((accessoryInstance, index) => {
|
|
392
|
-
//
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
const uuidBase = accessoryInstance.uuid_base; // optional base uuid
|
|
398
|
-
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);
|
|
399
362
|
const accessory = this.createHAPAccessory(plugin, accessoryInstance, accessoryName, platformType, uuidBase);
|
|
400
363
|
if (accessory) {
|
|
401
364
|
this.bridge.addBridgedAccessory(accessory);
|
|
402
365
|
}
|
|
403
366
|
else {
|
|
404
|
-
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);
|
|
405
368
|
}
|
|
406
369
|
});
|
|
407
370
|
resolve();
|
|
@@ -420,9 +383,8 @@ class BridgeService {
|
|
|
420
383
|
const info = {
|
|
421
384
|
...publishInfo,
|
|
422
385
|
};
|
|
423
|
-
info.pincode =
|
|
386
|
+
info.pincode = '***-**-***';
|
|
424
387
|
return info;
|
|
425
388
|
}
|
|
426
389
|
}
|
|
427
|
-
exports.BridgeService = BridgeService;
|
|
428
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"}
|