hap-nodejs 0.10.0-beta.6 → 0.10.0
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/@types/bonjour-hap.d.ts +4 -3
- package/@types/simple-plist.d.ts +2 -1
- package/dist/BridgedCore.js +5 -4
- package/dist/BridgedCore.js.map +1 -1
- package/dist/Core.js +12 -10
- package/dist/Core.js.map +1 -1
- package/dist/accessories/AirConditioner_accessory.js +9 -9
- package/dist/accessories/AirConditioner_accessory.js.map +1 -1
- package/dist/accessories/AppleTVRemote_accessory.js +9 -8
- package/dist/accessories/AppleTVRemote_accessory.js.map +1 -1
- package/dist/accessories/Camera_accessory.js +414 -35
- package/dist/accessories/Camera_accessory.js.map +1 -1
- package/dist/accessories/Fan_accessory.js +6 -11
- package/dist/accessories/Fan_accessory.js.map +1 -1
- package/dist/accessories/GarageDoorOpener_accessory.js +7 -8
- package/dist/accessories/GarageDoorOpener_accessory.js.map +1 -1
- package/dist/accessories/Light-AdaptiveLighting_accessory.js +3 -4
- package/dist/accessories/Light-AdaptiveLighting_accessory.js.map +1 -1
- package/dist/accessories/Light_accessory.js +23 -14
- package/dist/accessories/Light_accessory.js.map +1 -1
- package/dist/accessories/Lock_accessory.js +7 -8
- package/dist/accessories/Lock_accessory.js.map +1 -1
- package/dist/accessories/MotionSensor_accessory.js +5 -6
- package/dist/accessories/MotionSensor_accessory.js.map +1 -1
- package/dist/accessories/Outlet_accessory.js +5 -6
- package/dist/accessories/Outlet_accessory.js.map +1 -1
- package/dist/accessories/SmartSpeaker_accessory.js +6 -6
- package/dist/accessories/SmartSpeaker_accessory.js.map +1 -1
- package/dist/accessories/Sprinkler_accessory.js +12 -13
- package/dist/accessories/Sprinkler_accessory.js.map +1 -1
- package/dist/accessories/TV_accessory.js +4 -5
- package/dist/accessories/TV_accessory.js.map +1 -1
- package/dist/accessories/TemperatureSensor_accessory.js +5 -6
- package/dist/accessories/TemperatureSensor_accessory.js.map +1 -1
- package/dist/accessories/Wi-FiRouter_accessory.d.ts +1 -1
- package/dist/accessories/Wi-FiRouter_accessory.d.ts.map +1 -1
- package/dist/accessories/Wi-FiRouter_accessory.js +7 -8
- package/dist/accessories/Wi-FiRouter_accessory.js.map +1 -1
- package/dist/accessories/Wi-FiSatellite_accessory.d.ts +1 -1
- package/dist/accessories/Wi-FiSatellite_accessory.d.ts.map +1 -1
- package/dist/accessories/Wi-FiSatellite_accessory.js +6 -7
- package/dist/accessories/Wi-FiSatellite_accessory.js.map +1 -1
- package/dist/accessories/gstreamer-audioProducer.d.ts.map +1 -1
- package/dist/accessories/gstreamer-audioProducer.js +14 -15
- package/dist/accessories/gstreamer-audioProducer.js.map +1 -1
- package/dist/index.d.ts +22 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/internal-types.d.ts +2 -0
- package/dist/internal-types.d.ts.map +1 -1
- package/dist/internal-types.js.map +1 -1
- package/dist/lib/Accessory.d.ts +13 -13
- package/dist/lib/Accessory.d.ts.map +1 -1
- package/dist/lib/Accessory.js +242 -206
- package/dist/lib/Accessory.js.map +1 -1
- package/dist/lib/AccessoryLoader.d.ts +10 -10
- package/dist/lib/AccessoryLoader.d.ts.map +1 -1
- package/dist/lib/AccessoryLoader.js +105 -95
- package/dist/lib/AccessoryLoader.js.map +1 -1
- package/dist/lib/Advertiser.d.ts +11 -8
- package/dist/lib/Advertiser.d.ts.map +1 -1
- package/dist/lib/Advertiser.js +151 -33
- package/dist/lib/Advertiser.js.map +1 -1
- package/dist/lib/Bridge.d.ts +1 -1
- package/dist/lib/Bridge.d.ts.map +1 -1
- package/dist/lib/Bridge.js.map +1 -1
- package/dist/lib/Characteristic.d.ts +23 -22
- package/dist/lib/Characteristic.d.ts.map +1 -1
- package/dist/lib/Characteristic.js +101 -98
- package/dist/lib/Characteristic.js.map +1 -1
- package/dist/lib/HAPServer.d.ts +2 -2
- package/dist/lib/HAPServer.d.ts.map +1 -1
- package/dist/lib/HAPServer.js +18 -14
- package/dist/lib/HAPServer.js.map +1 -1
- package/dist/lib/Service.d.ts +3 -3
- package/dist/lib/Service.d.ts.map +1 -1
- package/dist/lib/Service.js +26 -26
- package/dist/lib/Service.js.map +1 -1
- package/dist/lib/camera/Camera.d.ts +2 -2
- package/dist/lib/camera/Camera.d.ts.map +1 -1
- package/dist/lib/camera/Camera.js +3 -3
- package/dist/lib/camera/Camera.js.map +1 -1
- package/dist/lib/camera/RTPProxy.d.ts +19 -19
- package/dist/lib/camera/RTPProxy.d.ts.map +1 -1
- package/dist/lib/camera/RTPProxy.js +229 -207
- package/dist/lib/camera/RTPProxy.js.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.d.ts +44 -8
- package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.js +111 -37
- package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
- package/dist/lib/camera/RecordingManagement.d.ts +267 -0
- package/dist/lib/camera/RecordingManagement.d.ts.map +1 -0
- package/dist/lib/camera/RecordingManagement.js +781 -0
- package/dist/lib/camera/RecordingManagement.js.map +1 -0
- package/dist/lib/camera/index.d.ts +4 -3
- package/dist/lib/camera/index.d.ts.map +1 -1
- package/dist/lib/camera/index.js +1 -0
- package/dist/lib/camera/index.js.map +1 -1
- package/dist/lib/controller/AdaptiveLightingController.d.ts +9 -9
- package/dist/lib/controller/AdaptiveLightingController.d.ts.map +1 -1
- package/dist/lib/controller/AdaptiveLightingController.js +25 -19
- package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
- package/dist/lib/controller/CameraController.d.ts +254 -7
- package/dist/lib/controller/CameraController.d.ts.map +1 -1
- package/dist/lib/controller/CameraController.js +378 -31
- package/dist/lib/controller/CameraController.js.map +1 -1
- package/dist/lib/controller/Controller.d.ts +3 -3
- package/dist/lib/controller/Controller.d.ts.map +1 -1
- package/dist/lib/controller/Controller.js.map +1 -1
- package/dist/lib/controller/DoorbellController.d.ts +43 -1
- package/dist/lib/controller/DoorbellController.d.ts.map +1 -1
- package/dist/lib/controller/DoorbellController.js +63 -11
- package/dist/lib/controller/DoorbellController.js.map +1 -1
- package/dist/lib/controller/RemoteController.d.ts +4 -4
- package/dist/lib/controller/RemoteController.d.ts.map +1 -1
- package/dist/lib/controller/RemoteController.js +62 -52
- package/dist/lib/controller/RemoteController.js.map +1 -1
- package/dist/lib/controller/index.d.ts +4 -4
- package/dist/lib/datastream/DataStreamManagement.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamManagement.js +10 -9
- package/dist/lib/datastream/DataStreamManagement.js.map +1 -1
- package/dist/lib/datastream/DataStreamParser.d.ts +24 -24
- package/dist/lib/datastream/DataStreamParser.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamParser.js +16 -7
- package/dist/lib/datastream/DataStreamParser.js.map +1 -1
- package/dist/lib/datastream/DataStreamServer.d.ts +34 -5
- package/dist/lib/datastream/DataStreamServer.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamServer.js +123 -63
- package/dist/lib/datastream/DataStreamServer.js.map +1 -1
- package/dist/lib/datastream/index.d.ts +3 -3
- package/dist/lib/definitions/generate-definitions.d.ts.map +1 -1
- package/dist/lib/definitions/generate-definitions.js +18 -14
- package/dist/lib/definitions/generate-definitions.js.map +1 -1
- package/dist/lib/definitions/generator-configuration.d.ts.map +1 -1
- package/dist/lib/definitions/generator-configuration.js +32 -14
- package/dist/lib/definitions/generator-configuration.js.map +1 -1
- package/dist/lib/model/AccessoryInfo.d.ts +6 -6
- package/dist/lib/model/AccessoryInfo.d.ts.map +1 -1
- package/dist/lib/model/AccessoryInfo.js +79 -69
- package/dist/lib/model/AccessoryInfo.js.map +1 -1
- package/dist/lib/model/ControllerStorage.d.ts.map +1 -1
- package/dist/lib/model/ControllerStorage.js +3 -3
- package/dist/lib/model/ControllerStorage.js.map +1 -1
- package/dist/lib/model/HAPStorage.d.ts.map +1 -1
- package/dist/lib/model/HAPStorage.js +1 -0
- package/dist/lib/model/HAPStorage.js.map +1 -1
- package/dist/lib/model/IdentifierCache.d.ts +11 -11
- package/dist/lib/model/IdentifierCache.d.ts.map +1 -1
- package/dist/lib/model/IdentifierCache.js +67 -65
- package/dist/lib/model/IdentifierCache.js.map +1 -1
- package/dist/lib/tv/AccessControlManagement.d.ts +1 -1
- package/dist/lib/tv/AccessControlManagement.d.ts.map +1 -1
- package/dist/lib/tv/AccessControlManagement.js.map +1 -1
- package/dist/lib/util/clone.js +1 -0
- package/dist/lib/util/clone.js.map +1 -1
- package/dist/lib/util/color-utils.d.ts.map +1 -1
- package/dist/lib/util/color-utils.js +1 -1
- package/dist/lib/util/color-utils.js.map +1 -1
- package/dist/lib/util/eventedhttp.d.ts +8 -8
- package/dist/lib/util/eventedhttp.d.ts.map +1 -1
- package/dist/lib/util/eventedhttp.js +72 -56
- package/dist/lib/util/eventedhttp.js.map +1 -1
- package/dist/lib/util/hapCrypto.d.ts +5 -5
- package/dist/lib/util/hapCrypto.d.ts.map +1 -1
- package/dist/lib/util/hapCrypto.js +57 -86
- package/dist/lib/util/hapCrypto.js.map +1 -1
- package/dist/lib/util/hapStatusError.js +1 -1
- package/dist/lib/util/net-utils.d.ts.map +1 -1
- package/dist/lib/util/net-utils.js +0 -2
- package/dist/lib/util/net-utils.js.map +1 -1
- package/dist/lib/util/once.d.ts +1 -1
- package/dist/lib/util/once.d.ts.map +1 -1
- package/dist/lib/util/once.js +1 -0
- package/dist/lib/util/once.js.map +1 -1
- package/dist/lib/util/request-util.d.ts.map +1 -1
- package/dist/lib/util/request-util.js +1 -0
- package/dist/lib/util/request-util.js.map +1 -1
- package/dist/lib/util/time.d.ts +1 -1
- package/dist/lib/util/time.d.ts.map +1 -1
- package/dist/lib/util/time.js +5 -5
- package/dist/lib/util/time.js.map +1 -1
- package/dist/lib/util/tlv.d.ts.map +1 -1
- package/dist/lib/util/tlv.js +9 -6
- package/dist/lib/util/tlv.js.map +1 -1
- package/dist/lib/util/uuid.d.ts.map +1 -1
- package/dist/lib/util/uuid.js +25 -19
- package/dist/lib/util/uuid.js.map +1 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +15 -12
package/dist/lib/Advertiser.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { MDNSServerOptions, ServiceTxt } from "@homebridge/ciao";
|
|
|
4
4
|
import { InterfaceName, IPAddress } from "@homebridge/ciao/lib/NetworkManager";
|
|
5
5
|
import { MulticastOptions } from "bonjour-hap";
|
|
6
6
|
import { EventEmitter } from "events";
|
|
7
|
-
import { AccessoryInfo } from
|
|
7
|
+
import { AccessoryInfo } from "./model/AccessoryInfo";
|
|
8
8
|
/**
|
|
9
9
|
* This enum lists all bitmasks for all known status flags.
|
|
10
10
|
* When the bit for the given bitmask is set, it represents the state described by the name.
|
|
@@ -34,9 +34,9 @@ export interface ServiceNetworkOptions {
|
|
|
34
34
|
* If defined it restricts the service to be advertised on the specified
|
|
35
35
|
* ip addresses or interface names.
|
|
36
36
|
*
|
|
37
|
-
* If
|
|
38
|
-
* (if
|
|
39
|
-
* If
|
|
37
|
+
* If an interface name is specified, ANY address on that given interface will be advertised
|
|
38
|
+
* (if an IP address of the given interface is also given in the array, it will be overridden).
|
|
39
|
+
* If an IP address is specified, the service will only be advertised for the given addresses.
|
|
40
40
|
*
|
|
41
41
|
* Interface names and addresses can be mixed in the array.
|
|
42
42
|
* If an ip address is given, the ip address must be valid at the time of service creation.
|
|
@@ -101,20 +101,23 @@ export declare class BonjourHAPAdvertiser extends EventEmitter implements Advert
|
|
|
101
101
|
destroy(): void;
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
104
|
-
* Advertiser based on the Avahi D-Bus library.
|
|
104
|
+
* Advertiser based on the Avahi D-Bus library.
|
|
105
|
+
* For (very crappy) docs on the interface, see the XML files at: https://github.com/lathiat/avahi/tree/master/avahi-daemon.
|
|
105
106
|
*/
|
|
106
107
|
export declare class AvahiAdvertiser extends EventEmitter implements Advertiser {
|
|
107
108
|
private readonly accessoryInfo;
|
|
108
109
|
private readonly setupHash;
|
|
109
110
|
private port?;
|
|
110
|
-
private bus
|
|
111
|
-
private path
|
|
111
|
+
private bus?;
|
|
112
|
+
private path?;
|
|
112
113
|
constructor(accessoryInfo: AccessoryInfo);
|
|
113
|
-
private avahiInvoke;
|
|
114
114
|
private createTxt;
|
|
115
115
|
initPort(port: number): void;
|
|
116
116
|
startAdvertising(): Promise<void>;
|
|
117
117
|
updateAdvertisement(silent?: boolean): Promise<void>;
|
|
118
118
|
destroy(): Promise<void>;
|
|
119
|
+
static isAvailable(): Promise<boolean>;
|
|
120
|
+
private static messageBusConnectionResult;
|
|
121
|
+
private static avahiInvoke;
|
|
119
122
|
}
|
|
120
123
|
//# sourceMappingURL=Advertiser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Advertiser.d.ts","sourceRoot":"","sources":["../../src/lib/Advertiser.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"Advertiser.d.ts","sourceRoot":"","sources":["../../src/lib/Advertiser.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/Advertiser.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AvahiAdvertiser = exports.BonjourHAPAdvertiser = exports.CiaoAdvertiser = exports.AdvertiserEvent = exports.PairingFeatureFlag = exports.StatusFlag = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/triple-slash-reference
|
|
5
6
|
/// <reference path="../../@types/bonjour-hap.d.ts" />
|
|
6
7
|
var ciao_1 = (0, tslib_1.__importDefault)(require("@homebridge/ciao"));
|
|
7
8
|
var assert_1 = (0, tslib_1.__importDefault)(require("assert"));
|
|
@@ -11,7 +12,7 @@ var debug_1 = (0, tslib_1.__importDefault)(require("debug"));
|
|
|
11
12
|
var dbus_native_1 = (0, tslib_1.__importDefault)(require("@homebridge/dbus-native"));
|
|
12
13
|
var events_1 = require("events");
|
|
13
14
|
var promise_utils_1 = require("./util/promise-utils");
|
|
14
|
-
var debug = (0, debug_1.default)(
|
|
15
|
+
var debug = (0, debug_1.default)("HAP-NodeJS:Advertiser");
|
|
15
16
|
/**
|
|
16
17
|
* This enum lists all bitmasks for all known status flags.
|
|
17
18
|
* When the bit for the given bitmask is set, it represents the state described by the name.
|
|
@@ -52,14 +53,14 @@ var CiaoAdvertiser = /** @class */ (function (_super) {
|
|
|
52
53
|
_this.responder = ciao_1.default.getResponder((0, tslib_1.__assign)({}, responderOptions));
|
|
53
54
|
_this.advertisedService = _this.responder.createService((0, tslib_1.__assign)({ name: _this.accessoryInfo.displayName, type: "hap" /* HAP */, txt: CiaoAdvertiser.createTxt(accessoryInfo, _this.setupHash) }, serviceOptions));
|
|
54
55
|
_this.advertisedService.on("name-change" /* NAME_CHANGED */, _this.emit.bind(_this, "updated-name" /* UPDATED_NAME */));
|
|
55
|
-
debug("Preparing Advertiser for '"
|
|
56
|
+
debug("Preparing Advertiser for '".concat(_this.accessoryInfo.displayName, "' using ciao backend!"));
|
|
56
57
|
return _this;
|
|
57
58
|
}
|
|
58
59
|
CiaoAdvertiser.prototype.initPort = function (port) {
|
|
59
60
|
this.advertisedService.updatePort(port);
|
|
60
61
|
};
|
|
61
62
|
CiaoAdvertiser.prototype.startAdvertising = function () {
|
|
62
|
-
debug("Starting to advertise '"
|
|
63
|
+
debug("Starting to advertise '".concat(this.accessoryInfo.displayName, "' using ciao backend!"));
|
|
63
64
|
return this.advertisedService.advertise();
|
|
64
65
|
};
|
|
65
66
|
CiaoAdvertiser.prototype.updateAdvertisement = function (silent) {
|
|
@@ -101,9 +102,9 @@ var CiaoAdvertiser = /** @class */ (function (_super) {
|
|
|
101
102
|
};
|
|
102
103
|
};
|
|
103
104
|
CiaoAdvertiser.computeSetupHash = function (accessoryInfo) {
|
|
104
|
-
var hash = crypto_1.default.createHash(
|
|
105
|
+
var hash = crypto_1.default.createHash("sha512");
|
|
105
106
|
hash.update(accessoryInfo.setupID + accessoryInfo.username.toUpperCase());
|
|
106
|
-
return hash.digest().slice(0, 4).toString(
|
|
107
|
+
return hash.digest().slice(0, 4).toString("base64");
|
|
107
108
|
};
|
|
108
109
|
CiaoAdvertiser.ff = function () {
|
|
109
110
|
var flags = [];
|
|
@@ -140,7 +141,7 @@ var BonjourHAPAdvertiser = /** @class */ (function (_super) {
|
|
|
140
141
|
_this.setupHash = CiaoAdvertiser.computeSetupHash(accessoryInfo);
|
|
141
142
|
_this.serviceOptions = serviceOptions;
|
|
142
143
|
_this.bonjour = (0, bonjour_hap_1.default)(responderOptions);
|
|
143
|
-
debug("Preparing Advertiser for '"
|
|
144
|
+
debug("Preparing Advertiser for '".concat(_this.accessoryInfo.displayName, "' using bonjour-hap backend!"));
|
|
144
145
|
return _this;
|
|
145
146
|
}
|
|
146
147
|
BonjourHAPAdvertiser.prototype.initPort = function (port) {
|
|
@@ -148,14 +149,14 @@ var BonjourHAPAdvertiser = /** @class */ (function (_super) {
|
|
|
148
149
|
};
|
|
149
150
|
BonjourHAPAdvertiser.prototype.startAdvertising = function () {
|
|
150
151
|
(0, assert_1.default)(!this.destroyed, "Can't advertise on a destroyed bonjour instance!");
|
|
151
|
-
if (this.port ==
|
|
152
|
+
if (this.port == null) {
|
|
152
153
|
throw new Error("Tried starting bonjour-hap advertisement without initializing port!");
|
|
153
154
|
}
|
|
154
|
-
debug("Starting to advertise '"
|
|
155
|
+
debug("Starting to advertise '".concat(this.accessoryInfo.displayName, "' using bonjour-hap backend!"));
|
|
155
156
|
if (this.advertisement) {
|
|
156
157
|
this.destroy();
|
|
157
158
|
}
|
|
158
|
-
var hostname = this.accessoryInfo.username.replace(/:/ig, "_") +
|
|
159
|
+
var hostname = this.accessoryInfo.username.replace(/:/ig, "_") + ".local";
|
|
159
160
|
this.advertisement = this.bonjour.publish((0, tslib_1.__assign)({ name: this.accessoryInfo.displayName, type: "hap", port: this.port, txt: CiaoAdvertiser.createTxt(this.accessoryInfo, this.setupHash), host: hostname, addUnsafeServiceEnumerationRecord: true }, this.serviceOptions));
|
|
160
161
|
return (0, promise_utils_1.PromiseTimeout)(1);
|
|
161
162
|
};
|
|
@@ -183,28 +184,23 @@ var BonjourHAPAdvertiser = /** @class */ (function (_super) {
|
|
|
183
184
|
}(events_1.EventEmitter));
|
|
184
185
|
exports.BonjourHAPAdvertiser = BonjourHAPAdvertiser;
|
|
185
186
|
/**
|
|
186
|
-
* Advertiser based on the Avahi D-Bus library.
|
|
187
|
+
* Advertiser based on the Avahi D-Bus library.
|
|
188
|
+
* For (very crappy) docs on the interface, see the XML files at: https://github.com/lathiat/avahi/tree/master/avahi-daemon.
|
|
187
189
|
*/
|
|
188
190
|
var AvahiAdvertiser = /** @class */ (function (_super) {
|
|
189
191
|
(0, tslib_1.__extends)(AvahiAdvertiser, _super);
|
|
190
192
|
function AvahiAdvertiser(accessoryInfo) {
|
|
191
193
|
var _this = _super.call(this) || this;
|
|
192
|
-
_this.path = '';
|
|
193
194
|
_this.accessoryInfo = accessoryInfo;
|
|
194
195
|
_this.setupHash = CiaoAdvertiser.computeSetupHash(accessoryInfo);
|
|
195
196
|
_this.bus = dbus_native_1.default.systemBus();
|
|
196
|
-
|
|
197
|
+
debug("Preparing Advertiser for '".concat(_this.accessoryInfo.displayName, "' using Avahi backend!"));
|
|
197
198
|
return _this;
|
|
198
199
|
}
|
|
199
|
-
AvahiAdvertiser.prototype.avahiInvoke = function (path, dbusInterface, member, others) {
|
|
200
|
-
var _this = this;
|
|
201
|
-
return new Promise(function (resolve, reject) {
|
|
202
|
-
var command = (0, tslib_1.__assign)({ destination: 'org.freedesktop.Avahi', path: path, interface: 'org.freedesktop.Avahi.' + dbusInterface, member: member }, (others || {}));
|
|
203
|
-
_this.bus.invoke(command, function (err, result) { return err ? reject(err) : resolve(result); });
|
|
204
|
-
});
|
|
205
|
-
};
|
|
206
200
|
AvahiAdvertiser.prototype.createTxt = function () {
|
|
207
|
-
return Object
|
|
201
|
+
return Object
|
|
202
|
+
.entries(CiaoAdvertiser.createTxt(this.accessoryInfo, this.setupHash))
|
|
203
|
+
.map(function (el) { return Buffer.from(el[0] + "=" + el[1]); });
|
|
208
204
|
};
|
|
209
205
|
AvahiAdvertiser.prototype.initPort = function (port) {
|
|
210
206
|
this.port = port;
|
|
@@ -215,18 +211,34 @@ var AvahiAdvertiser = /** @class */ (function (_super) {
|
|
|
215
211
|
return (0, tslib_1.__generator)(this, function (_b) {
|
|
216
212
|
switch (_b.label) {
|
|
217
213
|
case 0:
|
|
218
|
-
if (this.port ==
|
|
214
|
+
if (this.port == null) {
|
|
219
215
|
throw new Error("Tried starting Avahi advertisement without initializing port!");
|
|
220
216
|
}
|
|
221
|
-
|
|
217
|
+
if (!this.bus) {
|
|
218
|
+
throw new Error("Tried to start Avahi advertisement on a destroyed advertiser!");
|
|
219
|
+
}
|
|
220
|
+
debug("Starting to advertise '".concat(this.accessoryInfo.displayName, "' using Avahi backend!"));
|
|
222
221
|
_a = this;
|
|
223
|
-
return [4 /*yield*/,
|
|
222
|
+
return [4 /*yield*/, AvahiAdvertiser.avahiInvoke(this.bus, "/", "Server", "EntryGroupNew")];
|
|
224
223
|
case 1:
|
|
225
224
|
_a.path = (_b.sent());
|
|
226
|
-
return [4 /*yield*/,
|
|
225
|
+
return [4 /*yield*/, AvahiAdvertiser.avahiInvoke(this.bus, this.path, "EntryGroup", "AddService", {
|
|
226
|
+
body: [
|
|
227
|
+
-1,
|
|
228
|
+
-1,
|
|
229
|
+
0,
|
|
230
|
+
this.accessoryInfo.displayName,
|
|
231
|
+
"_hap._tcp",
|
|
232
|
+
"",
|
|
233
|
+
"",
|
|
234
|
+
this.port,
|
|
235
|
+
this.createTxt(), // txt
|
|
236
|
+
],
|
|
237
|
+
signature: "iiussssqaay",
|
|
238
|
+
})];
|
|
227
239
|
case 2:
|
|
228
240
|
_b.sent();
|
|
229
|
-
return [4 /*yield*/,
|
|
241
|
+
return [4 /*yield*/, AvahiAdvertiser.avahiInvoke(this.bus, this.path, "EntryGroup", "Commit")];
|
|
230
242
|
case 3:
|
|
231
243
|
_b.sent();
|
|
232
244
|
return [2 /*return*/];
|
|
@@ -236,31 +248,137 @@ var AvahiAdvertiser = /** @class */ (function (_super) {
|
|
|
236
248
|
};
|
|
237
249
|
AvahiAdvertiser.prototype.updateAdvertisement = function (silent) {
|
|
238
250
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
251
|
+
var error_1;
|
|
239
252
|
return (0, tslib_1.__generator)(this, function (_a) {
|
|
240
253
|
switch (_a.label) {
|
|
241
254
|
case 0:
|
|
242
|
-
if (!this.
|
|
243
|
-
|
|
255
|
+
if (!this.bus) {
|
|
256
|
+
throw new Error("Tried to update Avahi advertisement on a destroyed advertiser!");
|
|
257
|
+
}
|
|
258
|
+
if (!this.path) {
|
|
259
|
+
debug("Tried to update advertisement without a valid `path`!");
|
|
260
|
+
return [2 /*return*/];
|
|
261
|
+
}
|
|
262
|
+
debug("Updating txt record (txt: %o, silent: %d)", CiaoAdvertiser.createTxt(this.accessoryInfo, this.setupHash), silent);
|
|
263
|
+
_a.label = 1;
|
|
244
264
|
case 1:
|
|
265
|
+
_a.trys.push([1, 3, , 4]);
|
|
266
|
+
return [4 /*yield*/, AvahiAdvertiser.avahiInvoke(this.bus, this.path, "EntryGroup", "UpdateServiceTxt", {
|
|
267
|
+
body: [-1, -1, 0, this.accessoryInfo.displayName, "_hap._tcp", "", this.createTxt()],
|
|
268
|
+
signature: "iiusssaay",
|
|
269
|
+
})];
|
|
270
|
+
case 2:
|
|
245
271
|
_a.sent();
|
|
246
|
-
|
|
247
|
-
case
|
|
272
|
+
return [3 /*break*/, 4];
|
|
273
|
+
case 3:
|
|
274
|
+
error_1 = _a.sent();
|
|
275
|
+
console.error("Failed to update avahi advertisement: " + error_1);
|
|
276
|
+
return [3 /*break*/, 4];
|
|
277
|
+
case 4: return [2 /*return*/];
|
|
248
278
|
}
|
|
249
279
|
});
|
|
250
280
|
});
|
|
251
281
|
};
|
|
252
282
|
AvahiAdvertiser.prototype.destroy = function () {
|
|
253
283
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
284
|
+
var error_2;
|
|
254
285
|
return (0, tslib_1.__generator)(this, function (_a) {
|
|
255
286
|
switch (_a.label) {
|
|
256
287
|
case 0:
|
|
257
|
-
if (!this.
|
|
258
|
-
|
|
288
|
+
if (!this.bus) {
|
|
289
|
+
throw new Error("Tried to destroy Avahi advertisement on a destroyed advertiser!");
|
|
290
|
+
}
|
|
291
|
+
if (!this.path) return [3 /*break*/, 5];
|
|
292
|
+
_a.label = 1;
|
|
259
293
|
case 1:
|
|
294
|
+
_a.trys.push([1, 3, , 4]);
|
|
295
|
+
return [4 /*yield*/, AvahiAdvertiser.avahiInvoke(this.bus, this.path, "EntryGroup", "Free")];
|
|
296
|
+
case 2:
|
|
260
297
|
_a.sent();
|
|
261
|
-
|
|
298
|
+
return [3 /*break*/, 4];
|
|
299
|
+
case 3:
|
|
300
|
+
error_2 = _a.sent();
|
|
301
|
+
// Typically, this fails if e.g. avahi service was stopped in the meantime.
|
|
302
|
+
debug("Destroying Avahi advertisement failed: " + error_2);
|
|
303
|
+
return [3 /*break*/, 4];
|
|
304
|
+
case 4:
|
|
305
|
+
this.path = undefined;
|
|
306
|
+
_a.label = 5;
|
|
307
|
+
case 5:
|
|
308
|
+
this.bus.connection.stream.destroy();
|
|
309
|
+
this.bus = undefined;
|
|
310
|
+
return [2 /*return*/];
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
});
|
|
314
|
+
};
|
|
315
|
+
AvahiAdvertiser.isAvailable = function () {
|
|
316
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
317
|
+
var bus, error_3, version, error_4;
|
|
318
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
319
|
+
switch (_a.label) {
|
|
320
|
+
case 0:
|
|
321
|
+
bus = dbus_native_1.default.systemBus();
|
|
322
|
+
_a.label = 1;
|
|
323
|
+
case 1:
|
|
324
|
+
_a.trys.push([1, , 9, 10]);
|
|
262
325
|
_a.label = 2;
|
|
263
|
-
case 2:
|
|
326
|
+
case 2:
|
|
327
|
+
_a.trys.push([2, 4, , 5]);
|
|
328
|
+
return [4 /*yield*/, this.messageBusConnectionResult(bus)];
|
|
329
|
+
case 3:
|
|
330
|
+
_a.sent();
|
|
331
|
+
return [3 /*break*/, 5];
|
|
332
|
+
case 4:
|
|
333
|
+
error_3 = _a.sent();
|
|
334
|
+
debug("Avahi/DBus classified unavailable due to missing dbus interface!");
|
|
335
|
+
return [2 /*return*/, false];
|
|
336
|
+
case 5:
|
|
337
|
+
_a.trys.push([5, 7, , 8]);
|
|
338
|
+
return [4 /*yield*/, this.avahiInvoke(bus, "/", "Server", "GetVersionString")];
|
|
339
|
+
case 6:
|
|
340
|
+
version = _a.sent();
|
|
341
|
+
debug("Detected Avahi over DBus interface running version '%s'.", version);
|
|
342
|
+
return [3 /*break*/, 8];
|
|
343
|
+
case 7:
|
|
344
|
+
error_4 = _a.sent();
|
|
345
|
+
debug("Avahi/DBus classified unavailable due to missing avahi interface!");
|
|
346
|
+
return [2 /*return*/, false];
|
|
347
|
+
case 8: return [2 /*return*/, true];
|
|
348
|
+
case 9:
|
|
349
|
+
bus.connection.stream.destroy();
|
|
350
|
+
return [7 /*endfinally*/];
|
|
351
|
+
case 10: return [2 /*return*/];
|
|
352
|
+
}
|
|
353
|
+
});
|
|
354
|
+
});
|
|
355
|
+
};
|
|
356
|
+
AvahiAdvertiser.messageBusConnectionResult = function (bus) {
|
|
357
|
+
return new Promise(function (resolve, reject) {
|
|
358
|
+
var errorHandler = function (error) {
|
|
359
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
360
|
+
bus.connection.removeListener("connect", connectHandler);
|
|
361
|
+
reject(error);
|
|
362
|
+
};
|
|
363
|
+
var connectHandler = function () {
|
|
364
|
+
bus.connection.removeListener("error", errorHandler);
|
|
365
|
+
resolve();
|
|
366
|
+
};
|
|
367
|
+
bus.connection.once("connect", connectHandler);
|
|
368
|
+
bus.connection.once("error", errorHandler);
|
|
369
|
+
});
|
|
370
|
+
};
|
|
371
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
372
|
+
AvahiAdvertiser.avahiInvoke = function (bus, path, dbusInterface, member, others) {
|
|
373
|
+
return new Promise(function (resolve, reject) {
|
|
374
|
+
var command = (0, tslib_1.__assign)({ destination: "org.freedesktop.Avahi", path: path, interface: "org.freedesktop.Avahi." + dbusInterface, member: member }, (others || {}));
|
|
375
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
376
|
+
bus.invoke(command, function (err, result) {
|
|
377
|
+
if (err) {
|
|
378
|
+
reject(new Error("avahiInvoke error: ".concat(JSON.stringify(err))));
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
resolve(result);
|
|
264
382
|
}
|
|
265
383
|
});
|
|
266
384
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Advertiser.js","sourceRoot":"","sources":["../../src/lib/Advertiser.ts"],"names":[],"mappings":";;;;AAAA,sDAAsD;AACtD,uEAO0B;AAE1B,+DAA4B;AAC5B,yEAAuF;AACvF,+DAA4B;AAC5B,6DAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"Advertiser.js","sourceRoot":"","sources":["../../src/lib/Advertiser.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/Bridge.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Accessory } from
|
|
1
|
+
import { Accessory } from "./Accessory";
|
|
2
2
|
/**
|
|
3
3
|
* Bridge is a special type of HomeKit Accessory that hosts other Accessories "behind" it. This way you
|
|
4
4
|
* can simply publish() the Bridge (with a single HAPServer on a single port) and all bridged Accessories
|
package/dist/lib/Bridge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bridge.d.ts","sourceRoot":"","sources":["../../src/lib/Bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"Bridge.d.ts","sourceRoot":"","sources":["../../src/lib/Bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,SAAS;gBACvB,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAI9C"}
|
package/dist/lib/Bridge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bridge.js","sourceRoot":"","sources":["../../src/lib/Bridge.ts"],"names":[],"mappings":";;;;AAAA,yCAAwC;AAExC;;;;GAIG;AACH;IAA4B,uCAAS;
|
|
1
|
+
{"version":3,"file":"Bridge.js","sourceRoot":"","sources":["../../src/lib/Bridge.ts"],"names":[],"mappings":";;;;AAAA,yCAAwC;AAExC;;;;GAIG;AACH;IAA4B,uCAAS;IACnC,gBAAY,WAAmB,EAAE,IAAY;QAA7C,YACE,kBAAM,WAAW,EAAE,IAAI,CAAC,SAEzB;QADC,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;IACxB,CAAC;IACH,aAAC;AAAD,CAAC,AALD,CAA4B,qBAAS,GAKpC;AALY,wBAAM"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { EventEmitter } from "events";
|
|
3
3
|
import { CharacteristicJsonObject } from "../internal-types";
|
|
4
|
-
import { CharacteristicValue, Nullable, VoidCallback } from
|
|
4
|
+
import { CharacteristicValue, Nullable, VoidCallback } from "../types";
|
|
5
5
|
import { CharacteristicWarningType } from "./Accessory";
|
|
6
6
|
import { AccessCodeControlPoint, AccessCodeSupportedConfiguration, AccessControlLevel, AccessoryFlags, AccessoryIdentifier, Active, ActiveIdentifier, ActivityInterval, AdministratorOnlyAccess, AirParticulateDensity, AirParticulateSize, AirPlayEnable, AirQuality, AppMatchingIdentifier, AssetUpdateReadiness, AudioFeedback, BatteryLevel, Brightness, ButtonEvent, CameraOperatingModeIndicator, CarbonDioxideDetected, CarbonDioxideLevel, CarbonDioxidePeakLevel, CarbonMonoxideDetected, CarbonMonoxideLevel, CarbonMonoxidePeakLevel, Category, CCAEnergyDetectThreshold, CCASignalDetectThreshold, CharacteristicValueActiveTransitionCount, CharacteristicValueTransitionControl, ChargingState, ClosedCaptions, ColorTemperature, ConfigurationState, ConfigureBridgedAccessory, ConfigureBridgedAccessoryStatus, ConfiguredName, ContactSensorState, CoolingThresholdTemperature, CurrentAirPurifierState, CurrentAmbientLightLevel, CurrentDoorState, CurrentFanState, CurrentHeaterCoolerState, CurrentHeatingCoolingState, CurrentHorizontalTiltAngle, CurrentHumidifierDehumidifierState, CurrentMediaState, CurrentPosition, CurrentRelativeHumidity, CurrentSlatState, CurrentTemperature, CurrentTiltAngle, CurrentTime, CurrentTransport, CurrentVerticalTiltAngle, CurrentVisibilityState, DataStreamHAPTransport, DataStreamHAPTransportInterrupt, DayoftheWeek, DiagonalFieldOfView, DigitalZoom, DiscoverBridgedAccessories, DiscoveredBridgedAccessories, DisplayOrder, EventRetransmissionMaximum, EventSnapshotsActive, EventTransmissionCounters, FilterChangeIndication, FilterLifeLevel, FirmwareRevision, FirmwareUpdateReadiness, FirmwareUpdateStatus, HardwareFinish, HardwareRevision, HeartBeat, HeatingThresholdTemperature, HoldPosition, HomeKitCameraActive, Hue, Identifier, Identify, ImageMirroring, ImageRotation, InputDeviceType, InputSourceType, InUse, IsConfigured, LeakDetected, LinkQuality, ListPairings, LockControlPoint, LockCurrentState, LockLastKnownAction, LockManagementAutoSecurityTimeout, LockPhysicalControls, LockTargetState, Logs, MACRetransmissionMaximum, MACTransmissionCounters, ManagedNetworkEnable, ManuallyDisabled, Manufacturer, MaximumTransmitPower, Model, MotionDetected, MultifunctionButton, Mute, Name, NetworkAccessViolationControl, NetworkClientProfileControl, NetworkClientStatusControl, NFCAccessControlPoint, NFCAccessSupportedConfiguration, NightVision, NitrogenDioxideDensity, ObstructionDetected, OccupancyDetected, On, OperatingStateResponse, OpticalZoom, OutletInUse, OzoneDensity, PairingFeatures, PairSetup, PairVerify, PasswordSetting, PeriodicSnapshotsActive, PictureMode, Ping, PM10Density, PM2_5Density, PositionState, PowerModeSelection, ProductData, ProgrammableSwitchEvent, ProgrammableSwitchOutputState, ProgramMode, Reachable, ReceivedSignalStrengthIndication, ReceiverSensitivity, RecordingAudioActive, RelativeHumidityDehumidifierThreshold, RelativeHumidityHumidifierThreshold, RelayControlPoint, RelayEnabled, RelayState, RemainingDuration, RemoteKey, ResetFilterIndication, RotationDirection, RotationSpeed, RouterStatus, Saturation, SecuritySystemAlarmType, SecuritySystemCurrentState, SecuritySystemTargetState, SelectedAudioStreamConfiguration, SelectedCameraRecordingConfiguration, SelectedDiagnosticsModes, SelectedRTPStreamConfiguration, SerialNumber, ServiceLabelIndex, ServiceLabelNamespace, SetDuration, SetupDataStreamTransport, SetupEndpoints, SetupTransferTransport, SignalToNoiseRatio, SiriEnable, SiriEndpointSessionStatus, SiriEngineVersion, SiriInputType, SiriLightOnUse, SiriListening, SiriTouchToUse, SlatType, SleepDiscoveryMode, SleepInterval, SmokeDetected, SoftwareRevision, StagedFirmwareVersion, StatusActive, StatusFault, StatusJammed, StatusLowBattery, StatusTampered, StreamingStatus, SulphurDioxideDensity, SupportedAssetTypes, SupportedAudioRecordingConfiguration, SupportedAudioStreamConfiguration, SupportedCameraRecordingConfiguration, SupportedCharacteristicValueTransitionConfiguration, SupportedDataStreamTransportConfiguration, SupportedDiagnosticsModes, SupportedDiagnosticsSnapshot, SupportedFirmwareUpdateConfiguration, SupportedRouterConfiguration, SupportedRTPConfiguration, SupportedTransferTransportConfiguration, SupportedVideoRecordingConfiguration, SupportedVideoStreamConfiguration, SwingMode, TargetAirPurifierState, TargetAirQuality, TargetControlList, TargetControlSupportedConfiguration, TargetDoorState, TargetFanState, TargetHeaterCoolerState, TargetHeatingCoolingState, TargetHorizontalTiltAngle, TargetHumidifierDehumidifierState, TargetMediaState, TargetPosition, TargetRelativeHumidity, TargetSlatState, TargetTemperature, TargetTiltAngle, TargetVerticalTiltAngle, TargetVisibilityState, TemperatureDisplayUnits, ThirdPartyCameraActive, ThreadControlPoint, ThreadNodeCapabilities, ThreadOpenThreadVersion, ThreadStatus, TimeUpdate, TransmitPower, TunnelConnectionTimeout, TunneledAccessoryAdvertising, TunneledAccessoryConnected, TunneledAccessoryStateNumber, ValveType, Version, VideoAnalysisActive, VOCDensity, Volume, VolumeControlType, VolumeSelector, WakeConfiguration, WANConfigurationList, WANStatusList, WaterLevel, WiFiCapabilities, WiFiConfigurationControl, WiFiSatelliteStatus } from "./definitions";
|
|
7
7
|
import { HAPStatus } from "./HAPServer";
|
|
8
|
-
import { IdentifierCache } from
|
|
8
|
+
import { IdentifierCache } from "./model/IdentifierCache";
|
|
9
9
|
import { HAPConnection } from "./util/eventedhttp";
|
|
10
|
-
import { HapStatusError } from
|
|
10
|
+
import { HapStatusError } from "./util/hapStatusError";
|
|
11
11
|
export declare const enum Formats {
|
|
12
12
|
BOOL = "bool",
|
|
13
13
|
/**
|
|
@@ -130,7 +130,7 @@ export declare type CharacteristicChange = {
|
|
|
130
130
|
newValue: Nullable<CharacteristicValue>;
|
|
131
131
|
oldValue: Nullable<CharacteristicValue>;
|
|
132
132
|
reason: ChangeReason;
|
|
133
|
-
context?:
|
|
133
|
+
context?: CharacteristicContext;
|
|
134
134
|
};
|
|
135
135
|
export declare const enum ChangeReason {
|
|
136
136
|
/**
|
|
@@ -207,14 +207,15 @@ export declare const enum CharacteristicEventTypes {
|
|
|
207
207
|
*/
|
|
208
208
|
CHARACTERISTIC_WARNING = "characteristic-warning"
|
|
209
209
|
}
|
|
210
|
+
export declare type CharacteristicContext = any;
|
|
210
211
|
export declare type CharacteristicGetCallback = (status?: HAPStatus | null | Error, value?: Nullable<CharacteristicValue>) => void;
|
|
211
212
|
export declare type CharacteristicSetCallback = (error?: HAPStatus | null | Error, writeResponse?: Nullable<CharacteristicValue>) => void;
|
|
212
|
-
export declare type CharacteristicGetHandler = (context:
|
|
213
|
-
export declare type CharacteristicSetHandler = (value: CharacteristicValue, context:
|
|
213
|
+
export declare type CharacteristicGetHandler = (context: CharacteristicContext, connection?: HAPConnection) => Promise<Nullable<CharacteristicValue>> | Nullable<CharacteristicValue>;
|
|
214
|
+
export declare type CharacteristicSetHandler = (value: CharacteristicValue, context: CharacteristicContext, connection?: HAPConnection) => Promise<Nullable<CharacteristicValue> | void> | Nullable<CharacteristicValue> | void;
|
|
214
215
|
export declare type AdditionalAuthorizationHandler = (additionalAuthorizationData: string | undefined) => boolean;
|
|
215
216
|
export declare interface Characteristic {
|
|
216
|
-
on(event: "get", listener: (callback: CharacteristicGetCallback, context:
|
|
217
|
-
on(event: "set", listener: (value: CharacteristicValue, callback: CharacteristicSetCallback, context:
|
|
217
|
+
on(event: "get", listener: (callback: CharacteristicGetCallback, context: CharacteristicContext, connection?: HAPConnection) => void): this;
|
|
218
|
+
on(event: "set", listener: (value: CharacteristicValue, callback: CharacteristicSetCallback, context: CharacteristicContext, connection?: HAPConnection) => void): this;
|
|
218
219
|
on(event: "change", listener: (change: CharacteristicChange) => void): this;
|
|
219
220
|
/**
|
|
220
221
|
* @private
|
|
@@ -231,11 +232,11 @@ export declare interface Characteristic {
|
|
|
231
232
|
/**
|
|
232
233
|
* @private
|
|
233
234
|
*/
|
|
234
|
-
emit(event: "get", callback: CharacteristicGetCallback, context:
|
|
235
|
+
emit(event: "get", callback: CharacteristicGetCallback, context: CharacteristicContext, connection?: HAPConnection): boolean;
|
|
235
236
|
/**
|
|
236
237
|
* @private
|
|
237
238
|
*/
|
|
238
|
-
emit(event: "set", value: CharacteristicValue, callback: CharacteristicSetCallback, context:
|
|
239
|
+
emit(event: "set", value: CharacteristicValue, callback: CharacteristicSetCallback, context: CharacteristicContext, connection?: HAPConnection): boolean;
|
|
239
240
|
/**
|
|
240
241
|
* @private
|
|
241
242
|
*/
|
|
@@ -265,15 +266,15 @@ export declare interface Characteristic {
|
|
|
265
266
|
*/
|
|
266
267
|
export declare class Characteristic extends EventEmitter {
|
|
267
268
|
/**
|
|
268
|
-
* @deprecated Please use the Formats const enum above.
|
|
269
|
+
* @deprecated Please use the Formats const enum above.
|
|
269
270
|
*/
|
|
270
271
|
static Formats: typeof Formats;
|
|
271
272
|
/**
|
|
272
|
-
* @deprecated Please use the Units const enum above.
|
|
273
|
+
* @deprecated Please use the Units const enum above.
|
|
273
274
|
*/
|
|
274
275
|
static Units: typeof Units;
|
|
275
276
|
/**
|
|
276
|
-
* @deprecated Please use the Perms const enum above.
|
|
277
|
+
* @deprecated Please use the Perms const enum above.
|
|
277
278
|
*/
|
|
278
279
|
static Perms: typeof Perms;
|
|
279
280
|
static AccessCodeControlPoint: typeof AccessCodeControlPoint;
|
|
@@ -689,7 +690,7 @@ export declare class Characteristic extends EventEmitter {
|
|
|
689
690
|
*
|
|
690
691
|
* @deprecated
|
|
691
692
|
*/
|
|
692
|
-
getValue(callback?: CharacteristicGetCallback, context?:
|
|
693
|
+
getValue(callback?: CharacteristicGetCallback, context?: CharacteristicContext): void;
|
|
693
694
|
/**
|
|
694
695
|
* This updates the value by calling the {@link CharacteristicEventTypes.SET} event handler associated with the characteristic.
|
|
695
696
|
* This acts the same way as when a HomeKit controller sends a /characteristics request to update the characteristic.
|
|
@@ -729,7 +730,7 @@ export declare class Characteristic extends EventEmitter {
|
|
|
729
730
|
* @param context - Passed to the {@link CharacteristicEventTypes.SET} and {@link CharacteristicEventTypes.CHANGE} event handler.
|
|
730
731
|
* @deprecated Parameter callback is deprecated.
|
|
731
732
|
*/
|
|
732
|
-
setValue(value: CharacteristicValue, callback?: CharacteristicSetCallback, context?:
|
|
733
|
+
setValue(value: CharacteristicValue, callback?: CharacteristicSetCallback, context?: CharacteristicContext): Characteristic;
|
|
733
734
|
/**
|
|
734
735
|
* This updates the value by calling the {@link CharacteristicEventTypes.SET} event handler associated with the characteristic.
|
|
735
736
|
* This acts the same way as when a HomeKit controller sends a /characteristics request to update the characteristic.
|
|
@@ -742,7 +743,7 @@ export declare class Characteristic extends EventEmitter {
|
|
|
742
743
|
* @param value - The new value.
|
|
743
744
|
* @param context - Passed to the {@link CharacteristicEventTypes.SET} and {@link CharacteristicEventTypes.CHANGE} event handler.
|
|
744
745
|
*/
|
|
745
|
-
setValue(value: CharacteristicValue, context?:
|
|
746
|
+
setValue(value: CharacteristicValue, context?: CharacteristicContext): Characteristic;
|
|
746
747
|
/**
|
|
747
748
|
* This updates the value of the characteristic. If the value changed, a event notification will be sent to all connected
|
|
748
749
|
* HomeKit controllers which are registered to receive event notifications for this characteristic.
|
|
@@ -771,7 +772,7 @@ export declare class Characteristic extends EventEmitter {
|
|
|
771
772
|
* @param context - Passed to the {@link CharacteristicEventTypes.CHANGE} event handler.
|
|
772
773
|
* @deprecated Parameter callback is deprecated.
|
|
773
774
|
*/
|
|
774
|
-
updateValue(value: Nullable<CharacteristicValue>, callback?: () => void, context?:
|
|
775
|
+
updateValue(value: Nullable<CharacteristicValue>, callback?: () => void, context?: CharacteristicContext): Characteristic;
|
|
775
776
|
/**
|
|
776
777
|
* This updates the value of the characteristic. If the value changed, a event notification will be sent to all connected
|
|
777
778
|
* HomeKit controllers which are registered to receive event notifications for this characteristic.
|
|
@@ -779,17 +780,17 @@ export declare class Characteristic extends EventEmitter {
|
|
|
779
780
|
* @param value - The new value.
|
|
780
781
|
* @param context - Passed to the {@link CharacteristicEventTypes.CHANGE} event handler.
|
|
781
782
|
*/
|
|
782
|
-
updateValue(value: Nullable<CharacteristicValue>, context?:
|
|
783
|
+
updateValue(value: Nullable<CharacteristicValue>, context?: CharacteristicContext): Characteristic;
|
|
783
784
|
/**
|
|
784
785
|
* This method acts similarly to {@link updateValue} by setting the current value of the characteristic
|
|
785
786
|
* without calling any {@link CharacteristicEventTypes.SET} or {@link onSet} handlers.
|
|
786
|
-
* The difference is that this method forces
|
|
787
|
+
* The difference is that this method forces an event notification sent (updateValue only sends one if the value changed).
|
|
787
788
|
* This is especially useful for characteristics like {@link Characteristic.ButtonEvent} or {@link Characteristic.ProgrammableSwitchEvent}.
|
|
788
789
|
*
|
|
789
790
|
* @param value - The new value.
|
|
790
791
|
* @param context - Passed to the {@link CharacteristicEventTypes.CHANGE} event handler.
|
|
791
792
|
*/
|
|
792
|
-
sendEventNotification(value: CharacteristicValue, context?:
|
|
793
|
+
sendEventNotification(value: CharacteristicValue, context?: CharacteristicContext): Characteristic;
|
|
793
794
|
/**
|
|
794
795
|
* Called when a HAP requests wants to know the current value of the characteristic.
|
|
795
796
|
*
|
|
@@ -797,7 +798,7 @@ export declare class Characteristic extends EventEmitter {
|
|
|
797
798
|
* @param context - Deprecated parameter. There for backwards compatibility.
|
|
798
799
|
* @private Used by the Accessory to load the characteristic value
|
|
799
800
|
*/
|
|
800
|
-
handleGetRequest(connection?: HAPConnection, context?:
|
|
801
|
+
handleGetRequest(connection?: HAPConnection, context?: CharacteristicContext): Promise<Nullable<CharacteristicValue>>;
|
|
801
802
|
/**
|
|
802
803
|
* Called when a HAP requests update the current value of the characteristic.
|
|
803
804
|
*
|
|
@@ -809,7 +810,7 @@ export declare class Characteristic extends EventEmitter {
|
|
|
809
810
|
* write response value is resolved.
|
|
810
811
|
* @private
|
|
811
812
|
*/
|
|
812
|
-
handleSetRequest(value: CharacteristicValue, connection?: HAPConnection, context?:
|
|
813
|
+
handleSetRequest(value: CharacteristicValue, connection?: HAPConnection, context?: CharacteristicContext): Promise<CharacteristicValue | void>;
|
|
813
814
|
/**
|
|
814
815
|
* Called once a HomeKit controller subscribes to events of this characteristics.
|
|
815
816
|
* @private
|