hap-nodejs 0.10.0-beta.1 → 0.10.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/bonjour-hap.d.ts +4 -3
- package/@types/simple-plist.d.ts +2 -1
- package/README.md +1 -1
- package/dist/BridgedCore.js +7 -6
- package/dist/BridgedCore.js.map +1 -1
- package/dist/Core.js +14 -12
- 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 +17 -16
- package/dist/accessories/AppleTVRemote_accessory.js.map +1 -1
- package/dist/accessories/Camera_accessory.js +415 -36
- package/dist/accessories/Camera_accessory.js.map +1 -1
- package/dist/accessories/Fan_accessory.js +10 -15
- 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 +21 -22
- package/dist/accessories/gstreamer-audioProducer.js.map +1 -1
- package/dist/index.d.ts +27 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -24
- 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 +38 -17
- package/dist/lib/Accessory.d.ts.map +1 -1
- package/dist/lib/Accessory.js +345 -273
- 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 +109 -99
- package/dist/lib/AccessoryLoader.js.map +1 -1
- package/dist/lib/Advertiser.d.ts +23 -3
- package/dist/lib/Advertiser.d.ts.map +1 -1
- package/dist/lib/Advertiser.js +242 -29
- 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 +1 -1
- package/dist/lib/Bridge.js.map +1 -1
- package/dist/lib/Characteristic.d.ts +22 -21
- package/dist/lib/Characteristic.d.ts.map +1 -1
- package/dist/lib/Characteristic.js +147 -144
- 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 +43 -39
- 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 +51 -47
- 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 +230 -208
- package/dist/lib/camera/RTPProxy.js.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.d.ts +46 -10
- package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.js +124 -49
- 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 +750 -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 +4 -3
- 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 +37 -31
- package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
- package/dist/lib/controller/CameraController.d.ts +253 -7
- package/dist/lib/controller/CameraController.d.ts.map +1 -1
- package/dist/lib/controller/CameraController.js +382 -35
- 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 +64 -12
- 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 +79 -69
- package/dist/lib/controller/RemoteController.js.map +1 -1
- package/dist/lib/controller/index.d.ts +4 -4
- package/dist/lib/controller/index.js +5 -5
- package/dist/lib/controller/index.js.map +1 -1
- package/dist/lib/datastream/DataStreamManagement.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamManagement.js +12 -11
- 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 +31 -22
- package/dist/lib/datastream/DataStreamParser.js.map +1 -1
- package/dist/lib/datastream/DataStreamServer.d.ts +24 -5
- package/dist/lib/datastream/DataStreamServer.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamServer.js +109 -68
- package/dist/lib/datastream/DataStreamServer.js.map +1 -1
- package/dist/lib/datastream/index.d.ts +3 -3
- package/dist/lib/datastream/index.js +3 -3
- package/dist/lib/datastream/index.js.map +1 -1
- package/dist/lib/definitions/CharacteristicDefinitions.js +249 -249
- package/dist/lib/definitions/CharacteristicDefinitions.js.map +1 -1
- package/dist/lib/definitions/ServiceDefinitions.js +75 -75
- package/dist/lib/definitions/ServiceDefinitions.js.map +1 -1
- package/dist/lib/definitions/generate-definitions.d.ts.map +1 -1
- package/dist/lib/definitions/generate-definitions.js +76 -72
- 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 +34 -16
- package/dist/lib/definitions/generator-configuration.js.map +1 -1
- package/dist/lib/definitions/index.js +2 -2
- package/dist/lib/definitions/index.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 +86 -76
- 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 +9 -9
- 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 +2 -1
- 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 +69 -67
- 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 +2 -2
- package/dist/lib/tv/AccessControlManagement.js.map +1 -1
- package/dist/lib/util/clone.js +5 -4
- 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 +2 -2
- package/dist/lib/util/color-utils.js.map +1 -1
- package/dist/lib/util/eventedhttp.d.ts +4 -4
- package/dist/lib/util/eventedhttp.d.ts.map +1 -1
- package/dist/lib/util/eventedhttp.js +54 -51
- 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 +66 -82
- package/dist/lib/util/hapCrypto.js.map +1 -1
- package/dist/lib/util/hapStatusError.js +3 -3
- package/dist/lib/util/hapStatusError.js.map +1 -1
- package/dist/lib/util/net-utils.d.ts.map +1 -1
- package/dist/lib/util/net-utils.js +4 -6
- 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 +2 -1
- package/dist/lib/util/once.js.map +1 -1
- package/dist/lib/util/promise-utils.d.ts +2 -0
- package/dist/lib/util/promise-utils.d.ts.map +1 -0
- package/dist/lib/util/promise-utils.js +10 -0
- package/dist/lib/util/promise-utils.js.map +1 -0
- 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 +8 -8
- 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 +15 -12
- 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 +26 -20
- 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 +22 -19
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.
|
|
@@ -54,7 +54,7 @@ export interface ServiceNetworkOptions {
|
|
|
54
54
|
}
|
|
55
55
|
export interface Advertiser {
|
|
56
56
|
initPort(port: number): void;
|
|
57
|
-
startAdvertising(): void
|
|
57
|
+
startAdvertising(): Promise<void>;
|
|
58
58
|
updateAdvertisement(silent?: boolean): void;
|
|
59
59
|
destroy(): void;
|
|
60
60
|
}
|
|
@@ -96,8 +96,28 @@ export declare class BonjourHAPAdvertiser extends EventEmitter implements Advert
|
|
|
96
96
|
private destroyed;
|
|
97
97
|
constructor(accessoryInfo: AccessoryInfo, responderOptions?: MulticastOptions, serviceOptions?: ServiceNetworkOptions);
|
|
98
98
|
initPort(port: number): void;
|
|
99
|
-
startAdvertising(): void
|
|
99
|
+
startAdvertising(): Promise<void>;
|
|
100
100
|
updateAdvertisement(silent?: boolean): void;
|
|
101
101
|
destroy(): void;
|
|
102
102
|
}
|
|
103
|
+
/**
|
|
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.
|
|
106
|
+
*/
|
|
107
|
+
export declare class AvahiAdvertiser extends EventEmitter implements Advertiser {
|
|
108
|
+
private readonly accessoryInfo;
|
|
109
|
+
private readonly setupHash;
|
|
110
|
+
private port?;
|
|
111
|
+
private bus?;
|
|
112
|
+
private path?;
|
|
113
|
+
constructor(accessoryInfo: AccessoryInfo);
|
|
114
|
+
private createTxt;
|
|
115
|
+
initPort(port: number): void;
|
|
116
|
+
startAdvertising(): Promise<void>;
|
|
117
|
+
updateAdvertisement(silent?: boolean): Promise<void>;
|
|
118
|
+
destroy(): Promise<void>;
|
|
119
|
+
static isAvailable(): Promise<boolean>;
|
|
120
|
+
private static messageBusConnectionResult;
|
|
121
|
+
private static avahiInvoke;
|
|
122
|
+
}
|
|
103
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
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BonjourHAPAdvertiser = exports.CiaoAdvertiser = exports.AdvertiserEvent = exports.PairingFeatureFlag = exports.StatusFlag = void 0;
|
|
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
|
-
var ciao_1 = tslib_1.__importDefault(require("@homebridge/ciao"));
|
|
7
|
-
var assert_1 = tslib_1.__importDefault(require("assert"));
|
|
8
|
-
var bonjour_hap_1 = tslib_1.__importDefault(require("bonjour-hap"));
|
|
9
|
-
var crypto_1 = tslib_1.__importDefault(require("crypto"));
|
|
7
|
+
var ciao_1 = (0, tslib_1.__importDefault)(require("@homebridge/ciao"));
|
|
8
|
+
var assert_1 = (0, tslib_1.__importDefault)(require("assert"));
|
|
9
|
+
var bonjour_hap_1 = (0, tslib_1.__importDefault)(require("bonjour-hap"));
|
|
10
|
+
var crypto_1 = (0, tslib_1.__importDefault)(require("crypto"));
|
|
11
|
+
var debug_1 = (0, tslib_1.__importDefault)(require("debug"));
|
|
12
|
+
var dbus_native_1 = (0, tslib_1.__importDefault)(require("@homebridge/dbus-native"));
|
|
10
13
|
var events_1 = require("events");
|
|
14
|
+
var promise_utils_1 = require("./util/promise-utils");
|
|
15
|
+
var debug = (0, debug_1.default)("HAP-NodeJS:Advertiser");
|
|
11
16
|
/**
|
|
12
17
|
* This enum lists all bitmasks for all known status flags.
|
|
13
18
|
* When the bit for the given bitmask is set, it represents the state described by the name.
|
|
@@ -40,36 +45,38 @@ var AdvertiserEvent;
|
|
|
40
45
|
* mdns payload).
|
|
41
46
|
*/
|
|
42
47
|
var CiaoAdvertiser = /** @class */ (function (_super) {
|
|
43
|
-
tslib_1.__extends(CiaoAdvertiser, _super);
|
|
48
|
+
(0, tslib_1.__extends)(CiaoAdvertiser, _super);
|
|
44
49
|
function CiaoAdvertiser(accessoryInfo, responderOptions, serviceOptions) {
|
|
45
50
|
var _this = _super.call(this) || this;
|
|
46
51
|
_this.accessoryInfo = accessoryInfo;
|
|
47
52
|
_this.setupHash = CiaoAdvertiser.computeSetupHash(accessoryInfo);
|
|
48
|
-
_this.responder = ciao_1.default.getResponder(tslib_1.__assign({}, responderOptions));
|
|
49
|
-
_this.advertisedService = _this.responder.createService(tslib_1.__assign({ name: _this.accessoryInfo.displayName, type: "hap" /* HAP */, txt: CiaoAdvertiser.createTxt(accessoryInfo, _this.setupHash) }, serviceOptions));
|
|
53
|
+
_this.responder = ciao_1.default.getResponder((0, tslib_1.__assign)({}, responderOptions));
|
|
54
|
+
_this.advertisedService = _this.responder.createService((0, tslib_1.__assign)({ name: _this.accessoryInfo.displayName, type: "hap" /* HAP */, txt: CiaoAdvertiser.createTxt(accessoryInfo, _this.setupHash) }, serviceOptions));
|
|
50
55
|
_this.advertisedService.on("name-change" /* NAME_CHANGED */, _this.emit.bind(_this, "updated-name" /* UPDATED_NAME */));
|
|
51
|
-
|
|
56
|
+
debug("Preparing Advertiser for '".concat(_this.accessoryInfo.displayName, "' using ciao backend!"));
|
|
52
57
|
return _this;
|
|
53
58
|
}
|
|
54
59
|
CiaoAdvertiser.prototype.initPort = function (port) {
|
|
55
60
|
this.advertisedService.updatePort(port);
|
|
56
61
|
};
|
|
57
62
|
CiaoAdvertiser.prototype.startAdvertising = function () {
|
|
58
|
-
|
|
63
|
+
debug("Starting to advertise '".concat(this.accessoryInfo.displayName, "' using ciao backend!"));
|
|
59
64
|
return this.advertisedService.advertise();
|
|
60
65
|
};
|
|
61
66
|
CiaoAdvertiser.prototype.updateAdvertisement = function (silent) {
|
|
62
|
-
|
|
67
|
+
var txt = CiaoAdvertiser.createTxt(this.accessoryInfo, this.setupHash);
|
|
68
|
+
debug("Updating txt record (txt: %o, silent: %d)", txt, silent);
|
|
69
|
+
this.advertisedService.updateTxt(txt, silent);
|
|
63
70
|
};
|
|
64
71
|
CiaoAdvertiser.prototype.destroy = function () {
|
|
65
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
66
|
-
return tslib_1.__generator(this, function (_a) {
|
|
72
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
73
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
67
74
|
switch (_a.label) {
|
|
68
|
-
case 0:
|
|
75
|
+
case 0:
|
|
76
|
+
// advertisedService.destroy(); is called implicitly via the shutdown call
|
|
77
|
+
return [4 /*yield*/, this.responder.shutdown()];
|
|
69
78
|
case 1:
|
|
70
|
-
|
|
71
|
-
return [4 /*yield*/, this.responder.shutdown()];
|
|
72
|
-
case 2:
|
|
79
|
+
// advertisedService.destroy(); is called implicitly via the shutdown call
|
|
73
80
|
_a.sent();
|
|
74
81
|
this.removeAllListeners();
|
|
75
82
|
return [2 /*return*/];
|
|
@@ -89,15 +96,15 @@ var CiaoAdvertiser = /** @class */ (function (_super) {
|
|
|
89
96
|
md: accessoryInfo.model,
|
|
90
97
|
pv: CiaoAdvertiser.protocolVersion,
|
|
91
98
|
"s#": 1,
|
|
92
|
-
sf: CiaoAdvertiser.sf.apply(CiaoAdvertiser, tslib_1.__spreadArray([], tslib_1.__read(statusFlags))),
|
|
99
|
+
sf: CiaoAdvertiser.sf.apply(CiaoAdvertiser, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(statusFlags), false)),
|
|
93
100
|
ci: accessoryInfo.category,
|
|
94
101
|
sh: setupHash,
|
|
95
102
|
};
|
|
96
103
|
};
|
|
97
104
|
CiaoAdvertiser.computeSetupHash = function (accessoryInfo) {
|
|
98
|
-
var hash = crypto_1.default.createHash(
|
|
105
|
+
var hash = crypto_1.default.createHash("sha512");
|
|
99
106
|
hash.update(accessoryInfo.setupID + accessoryInfo.username.toUpperCase());
|
|
100
|
-
return hash.digest().slice(0, 4).toString(
|
|
107
|
+
return hash.digest().slice(0, 4).toString("base64");
|
|
101
108
|
};
|
|
102
109
|
CiaoAdvertiser.ff = function () {
|
|
103
110
|
var flags = [];
|
|
@@ -126,35 +133,38 @@ exports.CiaoAdvertiser = CiaoAdvertiser;
|
|
|
126
133
|
* Advertiser base on the legacy "bonjour-hap" library.
|
|
127
134
|
*/
|
|
128
135
|
var BonjourHAPAdvertiser = /** @class */ (function (_super) {
|
|
129
|
-
tslib_1.__extends(BonjourHAPAdvertiser, _super);
|
|
136
|
+
(0, tslib_1.__extends)(BonjourHAPAdvertiser, _super);
|
|
130
137
|
function BonjourHAPAdvertiser(accessoryInfo, responderOptions, serviceOptions) {
|
|
131
138
|
var _this = _super.call(this) || this;
|
|
132
139
|
_this.destroyed = false;
|
|
133
140
|
_this.accessoryInfo = accessoryInfo;
|
|
134
141
|
_this.setupHash = CiaoAdvertiser.computeSetupHash(accessoryInfo);
|
|
135
142
|
_this.serviceOptions = serviceOptions;
|
|
136
|
-
_this.bonjour = bonjour_hap_1.default(responderOptions);
|
|
137
|
-
|
|
143
|
+
_this.bonjour = (0, bonjour_hap_1.default)(responderOptions);
|
|
144
|
+
debug("Preparing Advertiser for '".concat(_this.accessoryInfo.displayName, "' using bonjour-hap backend!"));
|
|
138
145
|
return _this;
|
|
139
146
|
}
|
|
140
147
|
BonjourHAPAdvertiser.prototype.initPort = function (port) {
|
|
141
148
|
this.port = port;
|
|
142
149
|
};
|
|
143
150
|
BonjourHAPAdvertiser.prototype.startAdvertising = function () {
|
|
144
|
-
assert_1.default(!this.destroyed, "Can't advertise on a destroyed bonjour instance!");
|
|
145
|
-
if (this.port ==
|
|
151
|
+
(0, assert_1.default)(!this.destroyed, "Can't advertise on a destroyed bonjour instance!");
|
|
152
|
+
if (this.port == null) {
|
|
146
153
|
throw new Error("Tried starting bonjour-hap advertisement without initializing port!");
|
|
147
154
|
}
|
|
148
|
-
|
|
155
|
+
debug("Starting to advertise '".concat(this.accessoryInfo.displayName, "' using bonjour-hap backend!"));
|
|
149
156
|
if (this.advertisement) {
|
|
150
157
|
this.destroy();
|
|
151
158
|
}
|
|
152
|
-
var hostname = this.accessoryInfo.username.replace(/:/ig, "_") +
|
|
153
|
-
this.advertisement = this.bonjour.publish(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));
|
|
159
|
+
var hostname = this.accessoryInfo.username.replace(/:/ig, "_") + ".local";
|
|
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));
|
|
161
|
+
return (0, promise_utils_1.PromiseTimeout)(1);
|
|
154
162
|
};
|
|
155
163
|
BonjourHAPAdvertiser.prototype.updateAdvertisement = function (silent) {
|
|
164
|
+
var txt = CiaoAdvertiser.createTxt(this.accessoryInfo, this.setupHash);
|
|
165
|
+
debug("Updating txt record (txt: %o, silent: %d)", txt, silent);
|
|
156
166
|
if (this.advertisement) {
|
|
157
|
-
this.advertisement.updateTxt(
|
|
167
|
+
this.advertisement.updateTxt(txt, silent);
|
|
158
168
|
}
|
|
159
169
|
};
|
|
160
170
|
BonjourHAPAdvertiser.prototype.destroy = function () {
|
|
@@ -173,4 +183,207 @@ var BonjourHAPAdvertiser = /** @class */ (function (_super) {
|
|
|
173
183
|
return BonjourHAPAdvertiser;
|
|
174
184
|
}(events_1.EventEmitter));
|
|
175
185
|
exports.BonjourHAPAdvertiser = BonjourHAPAdvertiser;
|
|
186
|
+
/**
|
|
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.
|
|
189
|
+
*/
|
|
190
|
+
var AvahiAdvertiser = /** @class */ (function (_super) {
|
|
191
|
+
(0, tslib_1.__extends)(AvahiAdvertiser, _super);
|
|
192
|
+
function AvahiAdvertiser(accessoryInfo) {
|
|
193
|
+
var _this = _super.call(this) || this;
|
|
194
|
+
_this.accessoryInfo = accessoryInfo;
|
|
195
|
+
_this.setupHash = CiaoAdvertiser.computeSetupHash(accessoryInfo);
|
|
196
|
+
_this.bus = dbus_native_1.default.systemBus();
|
|
197
|
+
debug("Preparing Advertiser for '".concat(_this.accessoryInfo.displayName, "' using Avahi backend!"));
|
|
198
|
+
return _this;
|
|
199
|
+
}
|
|
200
|
+
AvahiAdvertiser.prototype.createTxt = function () {
|
|
201
|
+
return Object
|
|
202
|
+
.entries(CiaoAdvertiser.createTxt(this.accessoryInfo, this.setupHash))
|
|
203
|
+
.map(function (el) { return Buffer.from(el[0] + "=" + el[1]); });
|
|
204
|
+
};
|
|
205
|
+
AvahiAdvertiser.prototype.initPort = function (port) {
|
|
206
|
+
this.port = port;
|
|
207
|
+
};
|
|
208
|
+
AvahiAdvertiser.prototype.startAdvertising = function () {
|
|
209
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
210
|
+
var _a;
|
|
211
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
|
212
|
+
switch (_b.label) {
|
|
213
|
+
case 0:
|
|
214
|
+
if (this.port == null) {
|
|
215
|
+
throw new Error("Tried starting Avahi advertisement without initializing port!");
|
|
216
|
+
}
|
|
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!"));
|
|
221
|
+
_a = this;
|
|
222
|
+
return [4 /*yield*/, AvahiAdvertiser.avahiInvoke(this.bus, "/", "Server", "EntryGroupNew")];
|
|
223
|
+
case 1:
|
|
224
|
+
_a.path = (_b.sent());
|
|
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
|
+
})];
|
|
239
|
+
case 2:
|
|
240
|
+
_b.sent();
|
|
241
|
+
return [4 /*yield*/, AvahiAdvertiser.avahiInvoke(this.bus, this.path, "EntryGroup", "Commit")];
|
|
242
|
+
case 3:
|
|
243
|
+
_b.sent();
|
|
244
|
+
return [2 /*return*/];
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
};
|
|
249
|
+
AvahiAdvertiser.prototype.updateAdvertisement = function (silent) {
|
|
250
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
251
|
+
var error_1;
|
|
252
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
253
|
+
switch (_a.label) {
|
|
254
|
+
case 0:
|
|
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;
|
|
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:
|
|
271
|
+
_a.sent();
|
|
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*/];
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
});
|
|
281
|
+
};
|
|
282
|
+
AvahiAdvertiser.prototype.destroy = function () {
|
|
283
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
284
|
+
var error_2;
|
|
285
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
286
|
+
switch (_a.label) {
|
|
287
|
+
case 0:
|
|
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;
|
|
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:
|
|
297
|
+
_a.sent();
|
|
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]);
|
|
325
|
+
_a.label = 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);
|
|
382
|
+
}
|
|
383
|
+
});
|
|
384
|
+
});
|
|
385
|
+
};
|
|
386
|
+
return AvahiAdvertiser;
|
|
387
|
+
}(events_1.EventEmitter));
|
|
388
|
+
exports.AvahiAdvertiser = AvahiAdvertiser;
|
|
176
389
|
//# sourceMappingURL=Advertiser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Advertiser.js","sourceRoot":"","sources":["../../src/lib/Advertiser.ts"],"names":[],"mappings":";;;;AAAA,sDAAsD;AACtD,
|
|
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
CHANGED
|
@@ -9,7 +9,7 @@ var Accessory_1 = require("./Accessory");
|
|
|
9
9
|
* will be hosted automatically, instead of needed to publish() every single Accessory as a separate server.
|
|
10
10
|
*/
|
|
11
11
|
var Bridge = /** @class */ (function (_super) {
|
|
12
|
-
tslib_1.__extends(Bridge, _super);
|
|
12
|
+
(0, tslib_1.__extends)(Bridge, _super);
|
|
13
13
|
function Bridge(displayName, UUID) {
|
|
14
14
|
var _this = _super.call(this, displayName, UUID) || this;
|
|
15
15
|
_this._isBridge = true;
|
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,
|
|
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,7 +780,7 @@ 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.
|
|
@@ -789,7 +790,7 @@ export declare class Characteristic extends EventEmitter {
|
|
|
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
|