homebridge 2.0.0-beta.1 → 2.0.0-beta.11
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 +57 -16
- package/lib/api.d.ts +19 -24
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +25 -25
- package/lib/api.js.map +1 -1
- package/lib/bridgeService.d.ts +10 -9
- package/lib/bridgeService.d.ts.map +1 -1
- package/lib/bridgeService.js +73 -93
- package/lib/bridgeService.js.map +1 -1
- package/lib/childBridgeFork.d.ts.map +1 -1
- package/lib/childBridgeFork.js +31 -21
- package/lib/childBridgeFork.js.map +1 -1
- package/lib/childBridgeService.d.ts +12 -7
- package/lib/childBridgeService.d.ts.map +1 -1
- package/lib/childBridgeService.js +68 -48
- package/lib/childBridgeService.js.map +1 -1
- package/lib/cli.d.ts.map +1 -1
- package/lib/cli.js +6 -12
- package/lib/cli.js.map +1 -1
- package/lib/externalPortService.d.ts +2 -2
- package/lib/externalPortService.d.ts.map +1 -1
- package/lib/externalPortService.js +6 -3
- package/lib/externalPortService.js.map +1 -1
- package/lib/index.d.ts +5 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +0 -3
- package/lib/index.js.map +1 -1
- package/lib/ipcService.d.ts +1 -2
- package/lib/ipcService.d.ts.map +1 -1
- package/lib/ipcService.js +4 -4
- package/lib/ipcService.js.map +1 -1
- package/lib/logger.d.ts +4 -27
- package/lib/logger.d.ts.map +1 -1
- package/lib/logger.js +26 -55
- package/lib/logger.js.map +1 -1
- package/lib/platformAccessory.d.ts +3 -27
- package/lib/platformAccessory.d.ts.map +1 -1
- package/lib/platformAccessory.js +19 -39
- package/lib/platformAccessory.js.map +1 -1
- package/lib/plugin.d.ts.map +1 -1
- package/lib/plugin.js +22 -10
- package/lib/plugin.js.map +1 -1
- package/lib/pluginManager.d.ts +1 -1
- package/lib/pluginManager.d.ts.map +1 -1
- package/lib/pluginManager.js +21 -17
- package/lib/pluginManager.js.map +1 -1
- package/lib/server.d.ts.map +1 -1
- package/lib/server.js +46 -44
- package/lib/server.js.map +1 -1
- package/lib/storageService.js +2 -1
- package/lib/storageService.js.map +1 -1
- package/lib/user.js +3 -2
- package/lib/user.js.map +1 -1
- package/lib/util/mac.d.ts +1 -2
- package/lib/util/mac.d.ts.map +1 -1
- package/lib/util/mac.js +3 -4
- package/lib/util/mac.js.map +1 -1
- package/lib/version.js +2 -3
- package/lib/version.js.map +1 -1
- package/package.json +37 -32
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://homebridge.io"><img src="https://raw.githubusercontent.com/homebridge/branding/
|
|
2
|
+
<a href="https://homebridge.io"><img src="https://raw.githubusercontent.com/homebridge/branding/latest/logos/homebridge-color-round-stylized.png" height="140"></a>
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<span align="center">
|
|
@@ -7,14 +7,16 @@
|
|
|
7
7
|
# Homebridge
|
|
8
8
|
|
|
9
9
|
<a href="https://www.npmjs.com/package/homebridge"><img title="npm version" src="https://badgen.net/npm/v/homebridge?label=stable"></a>
|
|
10
|
-
<a href="https://github.com/homebridge/homebridge/wiki/Homebridge-
|
|
10
|
+
<a href="https://github.com/homebridge/homebridge/wiki/How-To-Change-Homebridge-Version#manage-beta-version"><img title="npm version" src="https://badgen.net/npm/v/homebridge/beta?label=beta"></a>
|
|
11
|
+
<a href="https://github.com/homebridge/homebridge/wiki/How-To-Change-Homebridge-Version#manage-beta-version"><img title="npm version" src="https://badgen.net/npm/v/homebridge/alpha?label=alpha"></a><br>
|
|
11
12
|
<a href="https://www.npmjs.com/package/homebridge"><img title="npm downloads" src="https://badgen.net/npm/dt/homebridge"></a>
|
|
13
|
+
<a href="https://github.com/homebridge/homebridge/actions/workflows/build.yml"><img title="Node Build" src="https://github.com/homebridge/homebridge/actions/workflows/build.yml/badge.svg"></a>
|
|
12
14
|
|
|
13
15
|
</span>
|
|
14
16
|
|
|
15
17
|
<img src="https://media.giphy.com/media/10l79ICohTu4iQ/giphy.gif" align="right" alt="Unlocking Door">
|
|
16
18
|
|
|
17
|
-
**Homebridge** is a lightweight
|
|
19
|
+
**Homebridge** is a lightweight Node.js server you can run on your home network that emulates the iOS HomeKit API. It supports Plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of "smart home" devices.
|
|
18
20
|
|
|
19
21
|
Since Siri supports devices added through HomeKit, this means that with Homebridge you can ask Siri to control devices that don't have any support for HomeKit at all. For instance, using just some of the available plugins, you can say:
|
|
20
22
|
|
|
@@ -32,7 +34,7 @@ The official Homebridge Discord server and Reddit community are where users can
|
|
|
32
34
|
|
|
33
35
|
<span align="center">
|
|
34
36
|
|
|
35
|
-
[](https://discord.gg/kqNCe2D) [](https://www.reddit.com/r/homebridge/)
|
|
37
|
+
[](https://discord.gg/kqNCe2D) [](https://www.reddit.com/r/homebridge/)
|
|
36
38
|
|
|
37
39
|
</span>
|
|
38
40
|
|
|
@@ -40,17 +42,56 @@ HomeKit communities can also be found on both [Discord](https://discord.gg/RcV7f
|
|
|
40
42
|
|
|
41
43
|
## Installation
|
|
42
44
|
|
|
43
|
-
|
|
45
|
+
<img align="left" src="https://user-images.githubusercontent.com/3979615/59594350-07b45b80-9137-11e9-85fd-e75093ba91a4.png" alt="raspbian" height="75" width="75"/>
|
|
44
46
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
### Raspberry Pi
|
|
48
|
+
|
|
49
|
+
[Official Homebridge Raspberry Pi Image](https://github.com/homebridge/homebridge-raspbian-image/wiki/Getting-Started) <br> [Install Homebridge on Raspbian](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Raspbian)
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
<img align="left" src="https://user-images.githubusercontent.com/3979615/59595664-93c78280-9139-11e9-83dc-4d6f9405e788.png" alt="linux" height="75" width="75"/>
|
|
54
|
+
|
|
55
|
+
### Linux
|
|
56
|
+
|
|
57
|
+
[Debian or Ubuntu Linux](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Debian-or-Ubuntu-Linux) |
|
|
58
|
+
[Red Hat, CentOS or Fedora Linux](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Red-Hat%2C-CentOS-or-Fedora-Linux) | [Arch / Manjaro Linux|Install Homebridge on Arch Linux](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Arch-Linux) <br>
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
<img align="left" src="https://user-images.githubusercontent.com/3979615/59594157-b015f000-9136-11e9-93cb-c9d9773ec9e8.png" alt="macos" height="75" width="75"/>
|
|
63
|
+
|
|
64
|
+
### macOS
|
|
65
|
+
|
|
66
|
+
[Install Homebridge on macOS](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-macOS)
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
<img align="left" src="https://user-images.githubusercontent.com/3979615/59593218-e0f52580-9134-11e9-8b77-585755af5d99.png" alt="windows" height="75" width="75"/>
|
|
71
|
+
|
|
72
|
+
### Windows 10 / 11
|
|
73
|
+
|
|
74
|
+
[Install Homebridge on Windows 10 / 11 Using Hyper V](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Windows-10-Using-Hyper-V)
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
<img align="left" src="https://user-images.githubusercontent.com/3979615/59594527-56fa8c00-9137-11e9-937b-32092dfcff41.png" alt="docker" height="75" width="75"/>
|
|
79
|
+
|
|
80
|
+
### Docker
|
|
81
|
+
|
|
82
|
+
[Install Homebridge on Docker](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker) <br> [Synology](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-Synology) | [Unraid](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-Unraid) | [QNAP](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-QNAP) | [TrueNAS Scale](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-TrueNAS-Scale)
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
<img align="left" src="https://user-images.githubusercontent.com/3979615/78118531-dc46f700-7452-11ea-95e5-977f79d1904f.png" alt="docker" height="75" width="75"/>
|
|
87
|
+
|
|
88
|
+
### Synology DSM
|
|
89
|
+
|
|
90
|
+
[Install Homebridge on Synology DSM 7](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Synology-DSM)
|
|
91
|
+
|
|
92
|
+
### Other Platforms
|
|
93
|
+
|
|
94
|
+
[Other Platforms](https://github.com/homebridge/homebridge/wiki/Other-Platforms)
|
|
54
95
|
|
|
55
96
|
## Adding Homebridge to iOS
|
|
56
97
|
|
|
@@ -76,7 +117,7 @@ The [Homebridge Plugin Template](https://github.com/homebridge/homebridge-plugin
|
|
|
76
117
|
|
|
77
118
|
There are many existing plugins you can study; you might start with the [Homebridge Example Plugins](https://github.com/homebridge/homebridge-examples) or a plugin that already implements the device type you need.
|
|
78
119
|
|
|
79
|
-
When writing your plugin, you'll want Homebridge to load it from your development directory instead of publishing it to `npm` each time. Run this command inside your plugin project folder so your global
|
|
120
|
+
When writing your plugin, you'll want Homebridge to load it from your development directory instead of publishing it to `npm` each time. Run this command inside your plugin project folder so your global installation of Homebridge can discover it:
|
|
80
121
|
|
|
81
122
|
|
|
82
123
|
```shell
|
|
@@ -114,7 +155,7 @@ Try the following:
|
|
|
114
155
|
|
|
115
156
|
### Limitations
|
|
116
157
|
|
|
117
|
-
* One bridge can only expose 150 accessories due to a HomeKit limit. You can however run your plugins as a [Child Bridge](https://github.com/homebridge/homebridge/wiki/Child-Bridges) or run [Multiple Homebridge Instances](https://github.com/
|
|
158
|
+
* One bridge can only expose 150 accessories due to a HomeKit limit. You can however run your plugins as a [Child Bridge](https://github.com/homebridge/homebridge/wiki/Child-Bridges) or run [Multiple Homebridge Instances](https://github.com/homebridge/homebridge-config-ui-x/wiki/Homebridge-Service-Command#multiple-instances) to get around this limitation.
|
|
118
159
|
* Once an accessory has been added to the Home app, changing its name via Homebridge won't be automatically reflected in iOS. You must change it via the Home app as well.
|
|
119
160
|
|
|
120
161
|
## Why Homebridge?
|
package/lib/api.d.ts
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { EventEmitter } from "events";
|
|
3
2
|
import * as hapNodeJs from "hap-nodejs";
|
|
4
3
|
import { Controller, Service } from "hap-nodejs";
|
|
4
|
+
import { AccessoryConfig, PlatformConfig } from "./bridgeService";
|
|
5
|
+
import { Logging } from "./logger";
|
|
5
6
|
import { PlatformAccessory } from "./platformAccessory";
|
|
6
7
|
import { User } from "./user";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export declare type AccessoryIdentifier = string;
|
|
17
|
-
export declare type PlatformIdentifier = string;
|
|
8
|
+
export type HAP = typeof hapNodeJs;
|
|
9
|
+
export type HAPLegacyTypes = typeof hapNodeJs.LegacyTypes;
|
|
10
|
+
export type PluginIdentifier = PluginName | ScopedPluginName;
|
|
11
|
+
export type PluginName = string;
|
|
12
|
+
export type ScopedPluginName = string;
|
|
13
|
+
export type AccessoryName = string;
|
|
14
|
+
export type PlatformName = string;
|
|
15
|
+
export type AccessoryIdentifier = string;
|
|
16
|
+
export type PlatformIdentifier = string;
|
|
18
17
|
export declare const enum PluginType {
|
|
19
18
|
ACCESSORY = "accessory",
|
|
20
19
|
PLATFORM = "platform"
|
|
@@ -38,7 +37,7 @@ export interface AccessoryPluginConstructor {
|
|
|
38
37
|
}
|
|
39
38
|
export interface AccessoryPlugin {
|
|
40
39
|
/**
|
|
41
|
-
* Optional method which will be called if a 'identify' of
|
|
40
|
+
* Optional method which will be called if a 'identify' of an Accessory is requested by HomeKit.
|
|
42
41
|
*/
|
|
43
42
|
identify?(): void;
|
|
44
43
|
/**
|
|
@@ -54,17 +53,17 @@ export interface AccessoryPlugin {
|
|
|
54
53
|
*
|
|
55
54
|
* This includes controllers like the RemoteController or the CameraController.
|
|
56
55
|
* Any necessary controller specific setup should have been done when returning the array.
|
|
57
|
-
* In most cases the plugin will only return
|
|
56
|
+
* In most cases the plugin will only return an array of the size 1.
|
|
58
57
|
*
|
|
59
58
|
* In the case that the Plugin does not add any additional services (returned by {@link getServices}) the
|
|
60
|
-
* method {@link getServices} must defined in any way and should just return an empty array.
|
|
59
|
+
* method {@link getServices} must be defined in any way and should just return an empty array.
|
|
61
60
|
*
|
|
62
61
|
* @returns {Controller[]} controllers - returned controllers will be configured for the Accessory
|
|
63
62
|
*/
|
|
64
63
|
getControllers?(): Controller[];
|
|
65
64
|
}
|
|
66
|
-
export interface PlatformPluginConstructor {
|
|
67
|
-
new (logger: Logging, config:
|
|
65
|
+
export interface PlatformPluginConstructor<Config extends PlatformConfig = PlatformConfig> {
|
|
66
|
+
new (logger: Logging, config: Config, api: API): DynamicPlatformPlugin | StaticPlatformPlugin | IndependentPlatformPlugin;
|
|
68
67
|
}
|
|
69
68
|
export interface PlatformPlugin {
|
|
70
69
|
}
|
|
@@ -114,7 +113,7 @@ export declare const enum APIEvent {
|
|
|
114
113
|
*/
|
|
115
114
|
DID_FINISH_LAUNCHING = "didFinishLaunching",
|
|
116
115
|
/**
|
|
117
|
-
* This event is fired when homebridge
|
|
116
|
+
* This event is fired when homebridge gets shutdown. This could be a regular shutdown or an unexpected crash.
|
|
118
117
|
* At this stage all Accessories are already unpublished and all PlatformAccessories are already saved to disk!
|
|
119
118
|
*/
|
|
120
119
|
SHUTDOWN = "shutdown"
|
|
@@ -158,15 +157,11 @@ export interface API {
|
|
|
158
157
|
versionGreaterOrEqual(version: string): boolean;
|
|
159
158
|
registerAccessory(accessoryName: AccessoryName, constructor: AccessoryPluginConstructor): void;
|
|
160
159
|
registerAccessory(pluginIdentifier: PluginIdentifier, accessoryName: AccessoryName, constructor: AccessoryPluginConstructor): void;
|
|
161
|
-
registerPlatform(platformName: PlatformName, constructor: PlatformPluginConstructor): void;
|
|
162
|
-
registerPlatform(pluginIdentifier: PluginIdentifier, platformName: PlatformName, constructor: PlatformPluginConstructor): void;
|
|
160
|
+
registerPlatform<Config extends PlatformConfig>(platformName: PlatformName, constructor: PlatformPluginConstructor<Config>): void;
|
|
161
|
+
registerPlatform<Config extends PlatformConfig>(pluginIdentifier: PluginIdentifier, platformName: PlatformName, constructor: PlatformPluginConstructor<Config>): void;
|
|
163
162
|
registerPlatformAccessories(pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: PlatformAccessory[]): void;
|
|
164
163
|
updatePlatformAccessories(accessories: PlatformAccessory[]): void;
|
|
165
164
|
unregisterPlatformAccessories(pluginIdentifier: PluginIdentifier, platformName: PlatformName, accessories: PlatformAccessory[]): void;
|
|
166
|
-
/**
|
|
167
|
-
* @deprecated use {@link publishExternalAccessories} directly to publish a standalone Accessory
|
|
168
|
-
*/
|
|
169
|
-
publishCameraAccessories(pluginIdentifier: PluginIdentifier, accessories: PlatformAccessory[]): void;
|
|
170
165
|
publishExternalAccessories(pluginIdentifier: PluginIdentifier, accessories: PlatformAccessory[]): void;
|
|
171
166
|
on(event: "didFinishLaunching", listener: () => void): this;
|
|
172
167
|
on(event: "shutdown", listener: () => void): this;
|
package/lib/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/lib/api.js
CHANGED
|
@@ -29,18 +29,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.HomebridgeAPI = exports.InternalAPIEvent = exports.APIEvent = exports.PluginType = void 0;
|
|
30
30
|
const events_1 = require("events");
|
|
31
31
|
const hapNodeJs = __importStar(require("hap-nodejs"));
|
|
32
|
-
const
|
|
33
|
-
const platformAccessory_1 = require("./platformAccessory");
|
|
34
|
-
const user_1 = require("./user");
|
|
32
|
+
const semver_1 = __importDefault(require("semver"));
|
|
35
33
|
const logger_1 = require("./logger");
|
|
34
|
+
const platformAccessory_1 = require("./platformAccessory");
|
|
36
35
|
const pluginManager_1 = require("./pluginManager");
|
|
37
|
-
const
|
|
36
|
+
const user_1 = require("./user");
|
|
37
|
+
const version_1 = __importDefault(require("./version"));
|
|
38
38
|
const log = logger_1.Logger.internal;
|
|
39
39
|
var PluginType;
|
|
40
40
|
(function (PluginType) {
|
|
41
41
|
PluginType["ACCESSORY"] = "accessory";
|
|
42
42
|
PluginType["PLATFORM"] = "platform";
|
|
43
|
-
})(PluginType
|
|
43
|
+
})(PluginType || (exports.PluginType = PluginType = {}));
|
|
44
44
|
var APIEvent;
|
|
45
45
|
(function (APIEvent) {
|
|
46
46
|
/**
|
|
@@ -50,11 +50,11 @@ var APIEvent;
|
|
|
50
50
|
*/
|
|
51
51
|
APIEvent["DID_FINISH_LAUNCHING"] = "didFinishLaunching";
|
|
52
52
|
/**
|
|
53
|
-
* This event is fired when homebridge
|
|
53
|
+
* This event is fired when homebridge gets shutdown. This could be a regular shutdown or an unexpected crash.
|
|
54
54
|
* At this stage all Accessories are already unpublished and all PlatformAccessories are already saved to disk!
|
|
55
55
|
*/
|
|
56
56
|
APIEvent["SHUTDOWN"] = "shutdown";
|
|
57
|
-
})(APIEvent
|
|
57
|
+
})(APIEvent || (exports.APIEvent = APIEvent = {}));
|
|
58
58
|
var InternalAPIEvent;
|
|
59
59
|
(function (InternalAPIEvent) {
|
|
60
60
|
InternalAPIEvent["REGISTER_ACCESSORY"] = "registerAccessory";
|
|
@@ -63,18 +63,18 @@ var InternalAPIEvent;
|
|
|
63
63
|
InternalAPIEvent["REGISTER_PLATFORM_ACCESSORIES"] = "registerPlatformAccessories";
|
|
64
64
|
InternalAPIEvent["UPDATE_PLATFORM_ACCESSORIES"] = "updatePlatformAccessories";
|
|
65
65
|
InternalAPIEvent["UNREGISTER_PLATFORM_ACCESSORIES"] = "unregisterPlatformAccessories";
|
|
66
|
-
})(InternalAPIEvent
|
|
66
|
+
})(InternalAPIEvent || (exports.InternalAPIEvent = InternalAPIEvent = {}));
|
|
67
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;
|
|
68
75
|
// ------------------------------------------------------------------------
|
|
69
76
|
constructor() {
|
|
70
77
|
super();
|
|
71
|
-
this.version = 2.7; // homebridge API version
|
|
72
|
-
this.serverVersion = (0, version_1.default)(); // homebridge node module version
|
|
73
|
-
// ------------------ LEGACY EXPORTS FOR PRE TYPESCRIPT ------------------
|
|
74
|
-
this.user = user_1.User;
|
|
75
|
-
this.hap = hapNodeJs;
|
|
76
|
-
this.hapLegacyTypes = hapNodeJs.LegacyTypes; // used for older accessories/platforms
|
|
77
|
-
this.platformAccessory = platformAccessory_1.PlatformAccessory;
|
|
78
78
|
}
|
|
79
79
|
versionGreaterOrEqual(version) {
|
|
80
80
|
return semver_1.default.gte(this.serverVersion, version);
|
|
@@ -86,29 +86,29 @@ class HomebridgeAPI extends events_1.EventEmitter {
|
|
|
86
86
|
return "accessories" in platformPlugin;
|
|
87
87
|
}
|
|
88
88
|
signalFinished() {
|
|
89
|
-
this.emit("didFinishLaunching" /* DID_FINISH_LAUNCHING */);
|
|
89
|
+
this.emit("didFinishLaunching" /* APIEvent.DID_FINISH_LAUNCHING */);
|
|
90
90
|
}
|
|
91
91
|
signalShutdown() {
|
|
92
|
-
this.emit("shutdown" /* SHUTDOWN */);
|
|
92
|
+
this.emit("shutdown" /* APIEvent.SHUTDOWN */);
|
|
93
93
|
}
|
|
94
94
|
registerAccessory(pluginIdentifier, accessoryName, constructor) {
|
|
95
95
|
if (typeof accessoryName === "function") {
|
|
96
96
|
constructor = accessoryName;
|
|
97
97
|
accessoryName = pluginIdentifier;
|
|
98
|
-
this.emit("registerAccessory" /* REGISTER_ACCESSORY */, accessoryName, constructor);
|
|
98
|
+
this.emit("registerAccessory" /* InternalAPIEvent.REGISTER_ACCESSORY */, accessoryName, constructor);
|
|
99
99
|
}
|
|
100
100
|
else {
|
|
101
|
-
this.emit("registerAccessory" /* REGISTER_ACCESSORY */, accessoryName, constructor, pluginIdentifier);
|
|
101
|
+
this.emit("registerAccessory" /* InternalAPIEvent.REGISTER_ACCESSORY */, accessoryName, constructor, pluginIdentifier);
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
registerPlatform(pluginIdentifier, platformName, constructor) {
|
|
105
105
|
if (typeof platformName === "function") {
|
|
106
106
|
constructor = platformName;
|
|
107
107
|
platformName = pluginIdentifier;
|
|
108
|
-
this.emit("registerPlatform" /* REGISTER_PLATFORM */, platformName, constructor);
|
|
108
|
+
this.emit("registerPlatform" /* InternalAPIEvent.REGISTER_PLATFORM */, platformName, constructor);
|
|
109
109
|
}
|
|
110
110
|
else {
|
|
111
|
-
this.emit("registerPlatform" /* REGISTER_PLATFORM */, platformName, constructor, pluginIdentifier);
|
|
111
|
+
this.emit("registerPlatform" /* InternalAPIEvent.REGISTER_PLATFORM */, platformName, constructor, pluginIdentifier);
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
publishCameraAccessories(pluginIdentifier, accessories) {
|
|
@@ -125,7 +125,7 @@ class HomebridgeAPI extends events_1.EventEmitter {
|
|
|
125
125
|
}
|
|
126
126
|
accessory._associatedPlugin = pluginIdentifier;
|
|
127
127
|
});
|
|
128
|
-
this.emit("publishExternalAccessories" /* PUBLISH_EXTERNAL_ACCESSORIES */, accessories);
|
|
128
|
+
this.emit("publishExternalAccessories" /* InternalAPIEvent.PUBLISH_EXTERNAL_ACCESSORIES */, accessories);
|
|
129
129
|
}
|
|
130
130
|
registerPlatformAccessories(pluginIdentifier, platformName, accessories) {
|
|
131
131
|
accessories.forEach(accessory => {
|
|
@@ -136,10 +136,10 @@ class HomebridgeAPI extends events_1.EventEmitter {
|
|
|
136
136
|
accessory._associatedPlugin = pluginIdentifier;
|
|
137
137
|
accessory._associatedPlatform = platformName;
|
|
138
138
|
});
|
|
139
|
-
this.emit("registerPlatformAccessories" /* REGISTER_PLATFORM_ACCESSORIES */, accessories);
|
|
139
|
+
this.emit("registerPlatformAccessories" /* InternalAPIEvent.REGISTER_PLATFORM_ACCESSORIES */, accessories);
|
|
140
140
|
}
|
|
141
141
|
updatePlatformAccessories(accessories) {
|
|
142
|
-
this.emit("updatePlatformAccessories" /* UPDATE_PLATFORM_ACCESSORIES */, accessories);
|
|
142
|
+
this.emit("updatePlatformAccessories" /* InternalAPIEvent.UPDATE_PLATFORM_ACCESSORIES */, accessories);
|
|
143
143
|
}
|
|
144
144
|
unregisterPlatformAccessories(pluginIdentifier, platformName, accessories) {
|
|
145
145
|
accessories.forEach(accessory => {
|
|
@@ -148,7 +148,7 @@ class HomebridgeAPI extends events_1.EventEmitter {
|
|
|
148
148
|
throw new Error(`${pluginIdentifier} - ${platformName} attempt to unregister an accessory that isn't PlatformAccessory!`);
|
|
149
149
|
}
|
|
150
150
|
});
|
|
151
|
-
this.emit("unregisterPlatformAccessories" /* UNREGISTER_PLATFORM_ACCESSORIES */, accessories);
|
|
151
|
+
this.emit("unregisterPlatformAccessories" /* InternalAPIEvent.UNREGISTER_PLATFORM_ACCESSORIES */, accessories);
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
exports.HomebridgeAPI = HomebridgeAPI;
|
package/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAsC;AACtC,sDAAwC;AAExC,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/lib/bridgeService.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { PluginManager } from "./pluginManager";
|
|
2
|
-
import { Logging } from "./logger";
|
|
3
|
-
import { Plugin } from "./plugin";
|
|
4
|
-
import { PlatformAccessory } from "./platformAccessory";
|
|
5
1
|
import { Accessory, Bridge, CharacteristicWarning, InterfaceName, IPAddress, MacAddress, MDNSAdvertiser } from "hap-nodejs";
|
|
6
2
|
import { AccessoryIdentifier, AccessoryName, AccessoryPlugin, HomebridgeAPI, PlatformIdentifier, PlatformName, PluginIdentifier, StaticPlatformPlugin } from "./api";
|
|
7
3
|
import { ExternalPortService, ExternalPortsConfiguration } from "./externalPortService";
|
|
4
|
+
import { Logging } from "./logger";
|
|
5
|
+
import { PlatformAccessory } from "./platformAccessory";
|
|
6
|
+
import { Plugin } from "./plugin";
|
|
7
|
+
import { PluginManager } from "./pluginManager";
|
|
8
8
|
import { HomebridgeOptions } from "./server";
|
|
9
9
|
export interface BridgeConfiguration {
|
|
10
10
|
name: string;
|
|
@@ -17,6 +17,11 @@ export interface BridgeConfiguration {
|
|
|
17
17
|
manufacturer?: string;
|
|
18
18
|
model?: string;
|
|
19
19
|
disableIpc?: boolean;
|
|
20
|
+
firmwareRevision?: string;
|
|
21
|
+
env?: {
|
|
22
|
+
DEBUG?: string;
|
|
23
|
+
NODE_OPTIONS?: string;
|
|
24
|
+
};
|
|
20
25
|
}
|
|
21
26
|
export interface AccessoryConfig extends Record<string, any> {
|
|
22
27
|
accessory: AccessoryName | AccessoryIdentifier;
|
|
@@ -31,16 +36,12 @@ export interface PlatformConfig extends Record<string, any> {
|
|
|
31
36
|
}
|
|
32
37
|
export interface HomebridgeConfig {
|
|
33
38
|
bridge: BridgeConfiguration;
|
|
34
|
-
/**
|
|
35
|
-
* @deprecated
|
|
36
|
-
*/
|
|
37
|
-
mdns?: any;
|
|
38
39
|
accessories: AccessoryConfig[];
|
|
39
40
|
platforms: PlatformConfig[];
|
|
40
41
|
plugins?: PluginIdentifier[];
|
|
41
42
|
/**
|
|
42
43
|
* Array of disabled plugins.
|
|
43
|
-
* Unlike the plugins[] config which prevents plugins from being initialised at all, disabled plugins still have their alias loaded so
|
|
44
|
+
* Unlike the plugins[] config which prevents plugins from being initialised at all, disabled plugins still have their alias loaded, so
|
|
44
45
|
* we can match config blocks of disabled plugins and show an appropriate message in the logs.
|
|
45
46
|
*/
|
|
46
47
|
disabledPlugins?: PluginIdentifier[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridgeService.d.ts","sourceRoot":"","sources":["../src/bridgeService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bridgeService.d.ts","sourceRoot":"","sources":["../src/bridgeService.ts"],"names":[],"mappings":"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"}
|