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