hap-nodejs 0.10.0-beta.7 → 0.10.1-beta.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 +82 -75
- 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 +12 -12
- 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.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 +236 -201
- 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 +95 -93
- 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 +4 -4
- package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.js +38 -34
- package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
- package/dist/lib/camera/RecordingManagement.d.ts.map +1 -1
- package/dist/lib/camera/RecordingManagement.js +70 -34
- package/dist/lib/camera/RecordingManagement.js.map +1 -1
- package/dist/lib/camera/index.d.ts +4 -4
- 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 +21 -17
- package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
- package/dist/lib/controller/CameraController.d.ts +6 -4
- package/dist/lib/controller/CameraController.d.ts.map +1 -1
- package/dist/lib/controller/CameraController.js +18 -16
- 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.map +1 -1
- package/dist/lib/controller/DoorbellController.js +1 -0
- package/dist/lib/controller/DoorbellController.js.map +1 -1
- package/dist/lib/controller/RemoteController.d.ts +1 -1
- package/dist/lib/controller/RemoteController.d.ts.map +1 -1
- package/dist/lib/controller/RemoteController.js +50 -42
- 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 +14 -6
- package/dist/lib/datastream/DataStreamParser.js.map +1 -1
- package/dist/lib/datastream/DataStreamServer.d.ts +11 -1
- package/dist/lib/datastream/DataStreamServer.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamServer.js +91 -54
- 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 +2 -2
- 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 +7 -7
- package/dist/lib/util/eventedhttp.d.ts.map +1 -1
- package/dist/lib/util/eventedhttp.js +71 -55
- 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 +14 -11
package/@types/bonjour-hap.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
declare module
|
|
1
|
+
declare module "bonjour-hap" {
|
|
2
2
|
|
|
3
3
|
export const enum Protocols {
|
|
4
|
-
TCP =
|
|
5
|
-
UDP =
|
|
4
|
+
TCP = "tcp",
|
|
5
|
+
UDP = "udp",
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export type Nullable<T> = T | null;
|
|
@@ -26,6 +26,7 @@ declare module 'bonjour-hap' {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
export type PublishOptions = {
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
30
|
category?: any,
|
|
30
31
|
host?: string;
|
|
31
32
|
name?: string;
|
package/@types/simple-plist.d.ts
CHANGED
package/dist/BridgedCore.js
CHANGED
|
@@ -4,13 +4,13 @@ var tslib_1 = require("tslib");
|
|
|
4
4
|
var path_1 = (0, tslib_1.__importDefault)(require("path"));
|
|
5
5
|
var node_persist_1 = (0, tslib_1.__importDefault)(require("node-persist"));
|
|
6
6
|
var _1 = require("./");
|
|
7
|
-
console.log("HAP-NodeJS v"
|
|
7
|
+
console.log("HAP-NodeJS v".concat((0, _1.HAPLibraryVersion)(), " starting..."));
|
|
8
8
|
console.warn("DEPRECATION NOTICE: The use of Core and BridgeCore are deprecated and are scheduled to be remove in October 2020. " +
|
|
9
9
|
"For more information and some guidance on how to migrate, have a look at https://github.com/homebridge/HAP-NodeJS/wiki/Deprecation-of-Core-and-BridgeCore");
|
|
10
10
|
// Initialize our storage system
|
|
11
11
|
node_persist_1.default.initSync();
|
|
12
12
|
// Start by creating our Bridge which will host all loaded Accessories
|
|
13
|
-
var bridge = new _1.Bridge(
|
|
13
|
+
var bridge = new _1.Bridge("Node Bridge", _1.uuid.generate("Node Bridge"));
|
|
14
14
|
// Listen for bridge identification event
|
|
15
15
|
bridge.on("identify" /* IDENTIFY */, function (paired, callback) {
|
|
16
16
|
console.log("Node Bridge identify");
|
|
@@ -28,9 +28,10 @@ bridge.publish({
|
|
|
28
28
|
username: "CC:22:3D:E3:CE:F6",
|
|
29
29
|
port: 51826,
|
|
30
30
|
pincode: "031-45-154",
|
|
31
|
-
category: 2 /* BRIDGE
|
|
31
|
+
category: 2 /* BRIDGE */,
|
|
32
32
|
});
|
|
33
|
-
var signals = {
|
|
33
|
+
var signals = { "SIGINT": 2, "SIGTERM": 15 };
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
35
|
Object.keys(signals).forEach(function (signal) {
|
|
35
36
|
process.on(signal, function () {
|
|
36
37
|
bridge.unpublish();
|
package/dist/BridgedCore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgedCore.js","sourceRoot":"","sources":["../src/BridgedCore.ts"],"names":[],"mappings":";;;AAAA,2DAAwB;AAExB,2EAAmC;AAEnC,uBAAgI;AAEhI,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"BridgedCore.js","sourceRoot":"","sources":["../src/BridgedCore.ts"],"names":[],"mappings":";;;AAAA,2DAAwB;AAExB,2EAAmC;AAEnC,uBAAgI;AAEhI,OAAO,CAAC,GAAG,CAAC,sBAAe,IAAA,oBAAiB,GAAE,iBAAc,CAAC,CAAC;AAE9D,OAAO,CAAC,IAAI,CAAC,oHAAoH;IAC/H,2JAA2J,CAAC,CAAC;AAE/J,gCAAgC;AAChC,sBAAO,CAAC,QAAQ,EAAE,CAAC;AAEnB,sEAAsE;AACtE,IAAM,MAAM,GAAG,IAAI,SAAM,CAAC,aAAa,EAAE,OAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AAEvE,yCAAyC;AACzC,MAAM,CAAC,EAAE,4BAA+B,UAAC,MAAe,EAAE,QAAsB;IAC9E,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,UAAU;AACxB,CAAC,CAAC,CAAC;AAEH,qDAAqD;AACrD,IAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAChD,IAAM,WAAW,GAAG,kBAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAEvD,6BAA6B;AAC7B,WAAW,CAAC,OAAO,CAAC,UAAC,SAAoB;IACvC,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,CAAC,OAAO,CAAC;IACb,QAAQ,EAAE,mBAAmB;IAC7B,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,YAAY;IACrB,QAAQ,gBAAmB;CAC5B,CAAC,CAAC;AAEH,IAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAA4B,CAAC;AACzE,8DAA8D;AAC9D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,MAAW;IACvC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QACjB,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,UAAU,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/Core.js
CHANGED
|
@@ -4,7 +4,7 @@ var tslib_1 = require("tslib");
|
|
|
4
4
|
var path_1 = (0, tslib_1.__importDefault)(require("path"));
|
|
5
5
|
var node_persist_1 = (0, tslib_1.__importDefault)(require("node-persist"));
|
|
6
6
|
var _1 = require("./");
|
|
7
|
-
console.log("HAP-NodeJS v"
|
|
7
|
+
console.log("HAP-NodeJS v".concat((0, _1.HAPLibraryVersion)(), " starting..."));
|
|
8
8
|
console.warn("DEPRECATION NOTICE: The use of Core and BridgeCore are deprecated and are scheduled to be remove in October 2020. " +
|
|
9
9
|
"For more information and some guidance on how to migrate, have a look at https://github.com/homebridge/HAP-NodeJS/wiki/Deprecation-of-Core-and-BridgeCore");
|
|
10
10
|
// Initialize our storage system
|
|
@@ -17,26 +17,28 @@ var accessories = _1.AccessoryLoader.loadDirectory(dir);
|
|
|
17
17
|
// Publish them all separately (as opposed to BridgedCore which publishes them behind a single Bridge accessory)
|
|
18
18
|
accessories.forEach(function (accessory) {
|
|
19
19
|
// To push Accessories separately, we'll need a few extra properties
|
|
20
|
-
// @ts-
|
|
21
|
-
if (!accessory.username)
|
|
20
|
+
// @ts-expect-error: Core/BridgeCore API
|
|
21
|
+
if (!accessory.username) {
|
|
22
22
|
throw new Error("Username not found on accessory '" + accessory.displayName +
|
|
23
23
|
"'. Core.js requires all accessories to define a unique 'username' property.");
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
}
|
|
25
|
+
// @ts-expect-error: Core/BridgeCore API
|
|
26
|
+
if (!accessory.pincode) {
|
|
26
27
|
throw new Error("Pincode not found on accessory '" + accessory.displayName +
|
|
27
28
|
"'. Core.js requires all accessories to define a 'pincode' property.");
|
|
29
|
+
}
|
|
28
30
|
// publish this Accessory on the local network
|
|
29
31
|
accessory.publish({
|
|
30
32
|
port: targetPort++,
|
|
31
|
-
// @ts-
|
|
33
|
+
// @ts-expect-error: Core/BridgeCore API
|
|
32
34
|
username: accessory.username,
|
|
33
|
-
// @ts-
|
|
35
|
+
// @ts-expect-error: Core/BridgeCore API
|
|
34
36
|
pincode: accessory.pincode,
|
|
35
|
-
|
|
36
|
-
category: accessory.category
|
|
37
|
+
category: accessory.category,
|
|
37
38
|
});
|
|
38
39
|
});
|
|
39
|
-
var signals = {
|
|
40
|
+
var signals = { "SIGINT": 2, "SIGTERM": 15 };
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
42
|
Object.keys(signals).forEach(function (signal) {
|
|
41
43
|
process.on(signal, function () {
|
|
42
44
|
for (var i = 0; i < accessories.length; i++) {
|
package/dist/Core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Core.js","sourceRoot":"","sources":["../src/Core.ts"],"names":[],"mappings":";;;AAAA,2DAAwB;AAExB,2EAAmC;AAEnC,uBAAwD;AAExD,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"Core.js","sourceRoot":"","sources":["../src/Core.ts"],"names":[],"mappings":";;;AAAA,2DAAwB;AAExB,2EAAmC;AAEnC,uBAAwD;AAExD,OAAO,CAAC,GAAG,CAAC,sBAAe,IAAA,oBAAiB,GAAE,iBAAc,CAAC,CAAC;AAE9D,OAAO,CAAC,IAAI,CAAC,oHAAoH;IAC/H,2JAA2J,CAAC,CAAC;AAE/J,gCAAgC;AAChC,sBAAO,CAAC,QAAQ,EAAE,CAAC;AAEnB,yFAAyF;AACzF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,qDAAqD;AACrD,IAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAChD,IAAM,WAAW,GAAG,kBAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAEvD,gHAAgH;AAChH,WAAW,CAAC,OAAO,CAAC,UAAC,SAAS;IAE5B,oEAAoE;IACpE,wCAAwC;IACxC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,SAAS,CAAC,WAAW;YAC3D,6EAA6E,CAAC,CAAC;KAChG;IAED,wCAAwC;IACxC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,SAAS,CAAC,WAAW;YAC1D,qEAAqE,CAAC,CAAC;KACxF;IAED,8CAA8C;IAC9C,SAAS,CAAC,OAAO,CAAC;QAChB,IAAI,EAAE,UAAU,EAAE;QAClB,wCAAwC;QACxC,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,wCAAwC;QACxC,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;KAC7B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAA4B,CAAC;AACzE,8DAA8D;AAC9D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,MAAW;IACvC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;SAC5B;QAED,UAAU,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
//In This example we create an air conditioner Accessory that Has a Thermostat linked to a Fan Service.
|
|
3
|
-
//For example, I've also put a Light Service that should be hidden to represent a light in the closet that is part of the AC.
|
|
4
|
-
//
|
|
2
|
+
// In This example we create an air conditioner Accessory that Has a Thermostat linked to a Fan Service.
|
|
3
|
+
// For example, I've also put a Light Service that should be hidden to represent a light in the closet that is part of the AC.
|
|
4
|
+
// It is to show how to hide services.
|
|
5
|
+
// The linking and Hiding does NOT appear to be reflected in Home
|
|
5
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
7
|
// here's a fake hardware device that we'll expose to HomeKit
|
|
7
8
|
var __1 = require("..");
|
|
@@ -13,16 +14,15 @@ var ACTest_data = {
|
|
|
13
14
|
CurrentTemperature: 33,
|
|
14
15
|
TargetTemperature: 32,
|
|
15
16
|
TemperatureDisplayUnits: 1,
|
|
16
|
-
LightOn: false
|
|
17
|
+
LightOn: false,
|
|
17
18
|
};
|
|
18
19
|
// This is the Accessory that we'll return to HAP-NodeJS that represents our fake fan.
|
|
19
|
-
var ACTest = exports.accessory = new __1.Accessory(
|
|
20
|
+
var ACTest = exports.accessory = new __1.Accessory("Air Conditioner", __1.uuid.generate("hap-nodejs:accessories:airconditioner"));
|
|
20
21
|
// Add properties for publishing (in case we're using Core.js and not BridgedCore.js)
|
|
21
|
-
// @ts-
|
|
22
|
+
// @ts-expect-error: Core/BridgeCore API
|
|
22
23
|
ACTest.username = "1A:2B:3C:4D:5E:FF";
|
|
23
|
-
// @ts-
|
|
24
|
+
// @ts-expect-error: Core/BridgeCore API
|
|
24
25
|
ACTest.pincode = "031-45-154";
|
|
25
|
-
// @ts-ignore
|
|
26
26
|
ACTest.category = 9 /* THERMOSTAT */;
|
|
27
27
|
// set some basic properties (these values are arbitrary and setting them is optional)
|
|
28
28
|
ACTest
|
|
@@ -114,7 +114,7 @@ ThermostatService.getCharacteristic(__1.Characteristic.TemperatureDisplayUnits)
|
|
|
114
114
|
console.log("Characteristic TemperatureDisplayUnits changed to %s", value);
|
|
115
115
|
callback();
|
|
116
116
|
});
|
|
117
|
-
var LightService = ACTest.addService(__1.Service.Lightbulb,
|
|
117
|
+
var LightService = ACTest.addService(__1.Service.Lightbulb, "AC Light");
|
|
118
118
|
LightService.getCharacteristic(__1.Characteristic.On)
|
|
119
119
|
.on("get" /* GET */, function (callback) {
|
|
120
120
|
callback(null, ACTest_data.LightOn);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AirConditioner_accessory.js","sourceRoot":"","sources":["../../src/accessories/AirConditioner_accessory.ts"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"AirConditioner_accessory.js","sourceRoot":"","sources":["../../src/accessories/AirConditioner_accessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,11 @@ var __1 = require("..");
|
|
|
6
6
|
var http = (0, tslib_1.__importStar)(require("http"));
|
|
7
7
|
var url_1 = (0, tslib_1.__importDefault)(require("url"));
|
|
8
8
|
var gstreamer_audioProducer_1 = require("./gstreamer-audioProducer");
|
|
9
|
-
var remoteUUID = __1.uuid.generate(
|
|
10
|
-
var remote = exports.accessory = new __1.Accessory(
|
|
11
|
-
// @ts-
|
|
9
|
+
var remoteUUID = __1.uuid.generate("hap-nodejs:accessories:remote");
|
|
10
|
+
var remote = exports.accessory = new __1.Accessory("Remote", remoteUUID);
|
|
11
|
+
// @ts-expect-error: Core/BridgeCore API
|
|
12
12
|
remote.username = "DB:AF:E0:5C:69:76";
|
|
13
|
-
// @ts-
|
|
13
|
+
// @ts-expect-error: Core/BridgeCore API
|
|
14
14
|
remote.pincode = "874-23-897";
|
|
15
15
|
remote.category = 32 /* TARGET_CONTROLLER */;
|
|
16
16
|
// ----------------- for siri support -----------------
|
|
@@ -92,13 +92,13 @@ http.createServer(function (request, response) {
|
|
|
92
92
|
}
|
|
93
93
|
var buttonState = parseInt(query.state, 10);
|
|
94
94
|
var button = parseInt(query.button, 10);
|
|
95
|
-
// @ts-
|
|
95
|
+
// @ts-expect-error: forceConsistentCasingInFileNames compiler option
|
|
96
96
|
if (__1.ButtonState[buttonState] === undefined) {
|
|
97
97
|
response.writeHead(400, { "Content-Type": "text/html" });
|
|
98
98
|
response.end("Bad request. Unknown button state " + (0, escape_html_1.default)(query.state + ""));
|
|
99
99
|
return;
|
|
100
100
|
}
|
|
101
|
-
// @ts-
|
|
101
|
+
// @ts-expect-error: forceConsistentCasingInFileNames compiler option
|
|
102
102
|
if (__1.ButtonType[button] === undefined) {
|
|
103
103
|
response.writeHead(400, { "Content-Type": "text/html" });
|
|
104
104
|
response.end("Bad request. Unknown button " + (0, escape_html_1.default)(query.button + ""));
|
|
@@ -123,11 +123,12 @@ http.createServer(function (request, response) {
|
|
|
123
123
|
var time = 200;
|
|
124
124
|
if (query.time !== undefined) {
|
|
125
125
|
var parsedTime = parseInt(query.time, 10);
|
|
126
|
-
if (parsedTime)
|
|
126
|
+
if (parsedTime) {
|
|
127
127
|
time = parsedTime;
|
|
128
|
+
}
|
|
128
129
|
}
|
|
129
130
|
var button = parseInt(query.button, 10);
|
|
130
|
-
// @ts-
|
|
131
|
+
// @ts-expect-error: forceConsistentCasingInFileNames compiler option
|
|
131
132
|
if (__1.ButtonType[button] === undefined) {
|
|
132
133
|
response.writeHead(400, { "Content-Type": "text/html" });
|
|
133
134
|
response.end("Bad request. Unknown button " + (0, escape_html_1.default)(query.button + ""));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppleTVRemote_accessory.js","sourceRoot":"","sources":["../../src/accessories/AppleTVRemote_accessory.ts"],"names":[],"mappings":";;;AAAA,yEAAqC;AACrC,wBAA4F;AAC5F,sDAA6B;AAC7B,yDAA8C;AAC9C,qEAAqF;AAErF,IAAM,UAAU,GAAG,QAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;AAClE,IAAM,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,aAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAEvE,
|
|
1
|
+
{"version":3,"file":"AppleTVRemote_accessory.js","sourceRoot":"","sources":["../../src/accessories/AppleTVRemote_accessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,22 +6,22 @@ var child_process_1 = require("child_process");
|
|
|
6
6
|
var events_1 = require("events");
|
|
7
7
|
var net_1 = require("net");
|
|
8
8
|
var __1 = require("..");
|
|
9
|
-
var cameraUUID = __1.uuid.generate(
|
|
10
|
-
var camera = exports.accessory = new __1.Accessory(
|
|
11
|
-
// @ts-
|
|
9
|
+
var cameraUUID = __1.uuid.generate("hap-nodejs:accessories:ip-camera");
|
|
10
|
+
var camera = exports.accessory = new __1.Accessory("IPCamera", cameraUUID);
|
|
11
|
+
// @ts-expect-error: Core/BridgeCore API
|
|
12
12
|
camera.username = "9F:B2:46:0C:40:DB";
|
|
13
|
-
// @ts-
|
|
13
|
+
// @ts-expect-error: Core/BridgeCore API
|
|
14
14
|
camera.pincode = "948-23-459";
|
|
15
15
|
camera.category = 17 /* IP_CAMERA */;
|
|
16
16
|
var FFMPEGH264ProfileNames = [
|
|
17
17
|
"baseline",
|
|
18
18
|
"main",
|
|
19
|
-
"high"
|
|
19
|
+
"high",
|
|
20
20
|
];
|
|
21
21
|
var FFMPEGH264LevelNames = [
|
|
22
22
|
"3.1",
|
|
23
23
|
"3.2",
|
|
24
|
-
"4.0"
|
|
24
|
+
"4.0",
|
|
25
25
|
];
|
|
26
26
|
var ports = new Set();
|
|
27
27
|
function getPort() {
|
|
@@ -42,22 +42,22 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
42
42
|
}
|
|
43
43
|
ExampleCamera.prototype.handleSnapshotRequest = function (request, callback) {
|
|
44
44
|
var _this = this;
|
|
45
|
-
var ffmpegCommand = "-f lavfi -i testsrc=s="
|
|
45
|
+
var ffmpegCommand = "-f lavfi -i testsrc=s=".concat(request.width, "x").concat(request.height, " -vframes 1 -f mjpeg -");
|
|
46
46
|
var ffmpeg = (0, child_process_1.spawn)("ffmpeg", ffmpegCommand.split(" "), { env: process.env });
|
|
47
47
|
var snapshotBuffers = [];
|
|
48
|
-
ffmpeg.stdout.on(
|
|
49
|
-
ffmpeg.stderr.on(
|
|
48
|
+
ffmpeg.stdout.on("data", function (data) { return snapshotBuffers.push(data); });
|
|
49
|
+
ffmpeg.stderr.on("data", function (data) {
|
|
50
50
|
if (_this.ffmpegDebugOutput) {
|
|
51
51
|
console.log("SNAPSHOT: " + String(data));
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
|
-
ffmpeg.on(
|
|
54
|
+
ffmpeg.on("exit", function (code, signal) {
|
|
55
55
|
if (signal) {
|
|
56
56
|
console.log("Snapshot process was killed with signal: " + signal);
|
|
57
57
|
callback(new Error("killed with signal " + signal));
|
|
58
58
|
}
|
|
59
59
|
else if (code === 0) {
|
|
60
|
-
console.log("Successfully captured snapshot at "
|
|
60
|
+
console.log("Successfully captured snapshot at ".concat(request.width, "x").concat(request.height));
|
|
61
61
|
callback(undefined, Buffer.concat(snapshotBuffers));
|
|
62
62
|
}
|
|
63
63
|
else {
|
|
@@ -111,6 +111,7 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
111
111
|
var fps = video.fps;
|
|
112
112
|
var payloadType = video.pt;
|
|
113
113
|
var maxBitrate = video.max_bit_rate;
|
|
114
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
114
115
|
var rtcpInterval = video.rtcp_interval; // usually 0.5
|
|
115
116
|
var mtu = video.mtu; // maximum transmission unit
|
|
116
117
|
var address = sessionInfo.address;
|
|
@@ -119,11 +120,11 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
119
120
|
var ssrc = sessionInfo.videoSSRC;
|
|
120
121
|
var cryptoSuite = sessionInfo.videoCryptoSuite;
|
|
121
122
|
var videoSRTP = sessionInfo.videoSRTP.toString("base64");
|
|
122
|
-
console.log("Starting video stream ("
|
|
123
|
-
var videoffmpegCommand = "-re -f lavfi -i testsrc=s="
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
console.log("Starting video stream (".concat(width, "x").concat(height, ", ").concat(fps, " fps, ").concat(maxBitrate, " kbps, ").concat(mtu, " mtu)..."));
|
|
124
|
+
var videoffmpegCommand = "-re -f lavfi -i testsrc=s=".concat(width, "x").concat(height, ":r=").concat(fps, " -map 0:0 ") +
|
|
125
|
+
"-c:v h264 -pix_fmt yuv420p -r ".concat(fps, " -an -sn -dn -b:v ").concat(maxBitrate, "k ") +
|
|
126
|
+
"-profile:v ".concat(profile, " -level:v ").concat(level, " ") +
|
|
127
|
+
"-payload_type ".concat(payloadType, " -ssrc ").concat(ssrc, " -f rtp ");
|
|
127
128
|
if (cryptoSuite !== 2 /* NONE */) {
|
|
128
129
|
var suite = void 0;
|
|
129
130
|
switch (cryptoSuite) {
|
|
@@ -134,15 +135,15 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
134
135
|
suite = "AES_CM_256_HMAC_SHA1_80";
|
|
135
136
|
break;
|
|
136
137
|
}
|
|
137
|
-
videoffmpegCommand += "-srtp_out_suite "
|
|
138
|
+
videoffmpegCommand += "-srtp_out_suite ".concat(suite, " -srtp_out_params ").concat(videoSRTP, " s");
|
|
138
139
|
}
|
|
139
|
-
videoffmpegCommand += "rtp://"
|
|
140
|
+
videoffmpegCommand += "rtp://".concat(address, ":").concat(videoPort, "?rtcpport=").concat(videoPort, "&localrtcpport=").concat(localVideoPort, "&pkt_size=").concat(mtu);
|
|
140
141
|
if (this.ffmpegDebugOutput) {
|
|
141
142
|
console.log("FFMPEG command: ffmpeg " + videoffmpegCommand);
|
|
142
143
|
}
|
|
143
|
-
var ffmpegVideo = (0, child_process_1.spawn)(
|
|
144
|
+
var ffmpegVideo = (0, child_process_1.spawn)("ffmpeg", videoffmpegCommand.split(" "), { env: process.env });
|
|
144
145
|
var started_1 = false;
|
|
145
|
-
ffmpegVideo.stderr.on(
|
|
146
|
+
ffmpegVideo.stderr.on("data", function (data) {
|
|
146
147
|
console.log(data.toString("utf8"));
|
|
147
148
|
if (!started_1) {
|
|
148
149
|
started_1 = true;
|
|
@@ -153,11 +154,11 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
153
154
|
console.log("VIDEO: " + String(data));
|
|
154
155
|
}
|
|
155
156
|
});
|
|
156
|
-
ffmpegVideo.on(
|
|
157
|
+
ffmpegVideo.on("error", function (error) {
|
|
157
158
|
console.log("[Video] Failed to start video stream: " + error.message);
|
|
158
159
|
callback(new Error("ffmpeg process creation failed!"));
|
|
159
160
|
});
|
|
160
|
-
ffmpegVideo.on(
|
|
161
|
+
ffmpegVideo.on("exit", function (code, signal) {
|
|
161
162
|
var message = "[Video] ffmpeg exited with code: " + code + " and signal: " + signal;
|
|
162
163
|
if (code == null || code === 255) {
|
|
163
164
|
console.log(message + " (Video stream stopped!)");
|
|
@@ -184,7 +185,7 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
184
185
|
console.log("Received (unsupported) request to reconfigure to: " + JSON.stringify(request.video));
|
|
185
186
|
callback();
|
|
186
187
|
break;
|
|
187
|
-
case "stop" /* STOP */:
|
|
188
|
+
case "stop" /* STOP */: {
|
|
188
189
|
var ongoingSession = this.ongoingSessions[sessionId];
|
|
189
190
|
if (!ongoingSession) {
|
|
190
191
|
callback();
|
|
@@ -192,7 +193,7 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
192
193
|
}
|
|
193
194
|
ports.delete(ongoingSession.localVideoPort);
|
|
194
195
|
try {
|
|
195
|
-
ongoingSession.process.kill(
|
|
196
|
+
ongoingSession.process.kill("SIGKILL");
|
|
196
197
|
}
|
|
197
198
|
catch (e) {
|
|
198
199
|
console.log("Error occurred terminating the video process!");
|
|
@@ -202,6 +203,7 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
202
203
|
console.log("Stopped streaming session!");
|
|
203
204
|
callback();
|
|
204
205
|
break;
|
|
206
|
+
}
|
|
205
207
|
}
|
|
206
208
|
};
|
|
207
209
|
ExampleCamera.prototype.updateRecordingActive = function (active) {
|
|
@@ -221,6 +223,7 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
221
223
|
* * It would start to immediately record after a trigger event occurred and not just
|
|
222
224
|
* when the HomeKit Controller requests it (see the documentation of `CameraRecordingDelegate`).
|
|
223
225
|
*/
|
|
226
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
224
227
|
ExampleCamera.prototype.handleRecordingStreamRequest = function (streamId) {
|
|
225
228
|
var _a, _b, _c;
|
|
226
229
|
return (0, tslib_1.__asyncGenerator)(this, arguments, function handleRecordingStreamRequest_1() {
|
|
@@ -233,25 +236,25 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
233
236
|
STOP_AFTER_MOTION_STOP = false;
|
|
234
237
|
this.handlingStreamingRequest = true;
|
|
235
238
|
(0, assert_1.default)(this.configuration.videoCodec.type === 0 /* H264 */);
|
|
236
|
-
profile = this.configuration.videoCodec.parameters.profile === 2 /* HIGH */ ?
|
|
237
|
-
: this.configuration.videoCodec.parameters.profile === 1 /* MAIN */ ?
|
|
238
|
-
level = this.configuration.videoCodec.parameters.level === 2 /* LEVEL4_0 */ ?
|
|
239
|
-
: this.configuration.videoCodec.parameters.level === 1 /* LEVEL3_2 */ ?
|
|
239
|
+
profile = this.configuration.videoCodec.parameters.profile === 2 /* HIGH */ ? "high"
|
|
240
|
+
: this.configuration.videoCodec.parameters.profile === 1 /* MAIN */ ? "main" : "baseline";
|
|
241
|
+
level = this.configuration.videoCodec.parameters.level === 2 /* LEVEL4_0 */ ? "4.0"
|
|
242
|
+
: this.configuration.videoCodec.parameters.level === 1 /* LEVEL3_2 */ ? "3.2" : "3.1";
|
|
240
243
|
videoArgs = [
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
this.configuration.videoCodec.parameters.bitRate
|
|
252
|
-
|
|
253
|
-
"expr:eq(t,n_forced*"
|
|
254
|
-
|
|
244
|
+
"-an",
|
|
245
|
+
"-sn",
|
|
246
|
+
"-dn",
|
|
247
|
+
"-codec:v",
|
|
248
|
+
"libx264",
|
|
249
|
+
"-pix_fmt",
|
|
250
|
+
"yuv420p",
|
|
251
|
+
"-profile:v", profile,
|
|
252
|
+
"-level:v", level,
|
|
253
|
+
"-b:v",
|
|
254
|
+
"".concat(this.configuration.videoCodec.parameters.bitRate, "k"),
|
|
255
|
+
"-force_key_frames",
|
|
256
|
+
"expr:eq(t,n_forced*".concat(this.configuration.videoCodec.parameters.iFrameInterval / 1000, ")"),
|
|
257
|
+
"-r", this.configuration.videoCodec.resolution[2].toString(),
|
|
255
258
|
];
|
|
256
259
|
switch (this.configuration.audioCodec.samplerate) {
|
|
257
260
|
case 0 /* KHZ_8 */:
|
|
@@ -277,18 +280,18 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
277
280
|
}
|
|
278
281
|
audioArgs = ((_b = (_a = this.controller) === null || _a === void 0 ? void 0 : _a.recordingManagement) === null || _b === void 0 ? void 0 : _b.recordingManagementService.getCharacteristic(__1.Characteristic.RecordingAudioActive))
|
|
279
282
|
? (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([
|
|
280
|
-
|
|
283
|
+
"-acodec", "libfdk_aac"
|
|
281
284
|
], (0, tslib_1.__read)((this.configuration.audioCodec.type === 0 /* AAC_LC */ ?
|
|
282
|
-
[
|
|
283
|
-
[
|
|
284
|
-
|
|
285
|
-
samplerate
|
|
286
|
-
|
|
287
|
-
this.configuration.audioCodec.bitrate
|
|
288
|
-
|
|
289
|
-
""
|
|
285
|
+
["-profile:a", "aac_low"] :
|
|
286
|
+
["-profile:a", "aac_eld"])), false), [
|
|
287
|
+
"-ar",
|
|
288
|
+
"".concat(samplerate, "k"),
|
|
289
|
+
"-b:a",
|
|
290
|
+
"".concat(this.configuration.audioCodec.bitrate, "k"),
|
|
291
|
+
"-ac",
|
|
292
|
+
"".concat(this.configuration.audioCodec.audioChannels),
|
|
290
293
|
], false) : [];
|
|
291
|
-
this.server = new MP4StreamingServer("ffmpeg",
|
|
294
|
+
this.server = new MP4StreamingServer("ffmpeg", "-f lavfi -i testsrc=s=".concat(this.configuration.videoCodec.resolution[0], "x").concat(this.configuration.videoCodec.resolution[1], ":r=").concat(this.configuration.videoCodec.resolution[2])
|
|
292
295
|
.split(/ /g), audioArgs, videoArgs);
|
|
293
296
|
return [4 /*yield*/, (0, tslib_1.__await)(this.server.start())];
|
|
294
297
|
case 1:
|
|
@@ -313,7 +316,7 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
313
316
|
pending.push(box.header, box.data);
|
|
314
317
|
motionDetected = (_c = camera.getService(__1.Service.MotionSensor)) === null || _c === void 0 ? void 0 : _c.getCharacteristic(__1.Characteristic.MotionDetected).value;
|
|
315
318
|
console.log("mp4 box type " + box.type + " and length " + box.length);
|
|
316
|
-
if (!(box.type === "moov" || box.type
|
|
319
|
+
if (!(box.type === "moov" || box.type === "mdat")) return [3 /*break*/, 10];
|
|
317
320
|
fragment = Buffer.concat(pending);
|
|
318
321
|
pending.splice(0, pending.length);
|
|
319
322
|
isLast = STOP_AFTER_MOTION_STOP && !motionDetected;
|
|
@@ -359,6 +362,7 @@ var ExampleCamera = /** @class */ (function () {
|
|
|
359
362
|
});
|
|
360
363
|
});
|
|
361
364
|
};
|
|
365
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
362
366
|
ExampleCamera.prototype.closeRecordingStream = function (streamId, reason) {
|
|
363
367
|
if (this.server) {
|
|
364
368
|
this.server.destroy();
|
|
@@ -386,10 +390,10 @@ var MP4StreamingServer = /** @class */ (function () {
|
|
|
386
390
|
this.args = [];
|
|
387
391
|
(_a = this.args).push.apply(_a, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(ffmpegInput), false));
|
|
388
392
|
(_b = this.args).push.apply(_b, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(audioOutputArgs), false));
|
|
389
|
-
this.args.push(
|
|
393
|
+
this.args.push("-f", "mp4");
|
|
390
394
|
(_c = this.args).push.apply(_c, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(videoOutputArgs), false));
|
|
391
|
-
this.args.push(
|
|
392
|
-
this.args.push(
|
|
395
|
+
this.args.push("-fflags", "+genpts", "-reset_timestamps", "1");
|
|
396
|
+
this.args.push("-movflags", "frag_keyframe+empty_moov+default_base_moof");
|
|
393
397
|
}
|
|
394
398
|
MP4StreamingServer.prototype.start = function () {
|
|
395
399
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
@@ -406,15 +410,15 @@ var MP4StreamingServer = /** @class */ (function () {
|
|
|
406
410
|
return [2 /*return*/];
|
|
407
411
|
}
|
|
408
412
|
port = this.server.address().port;
|
|
409
|
-
this.args.push(
|
|
413
|
+
this.args.push("tcp://127.0.0.1:" + port);
|
|
410
414
|
console.log(this.ffmpegPath + " " + this.args.join(" "));
|
|
411
|
-
this.childProcess = (0, child_process_1.spawn)(this.ffmpegPath, this.args, { env: process.env, stdio: this.debugMode ?
|
|
415
|
+
this.childProcess = (0, child_process_1.spawn)(this.ffmpegPath, this.args, { env: process.env, stdio: this.debugMode ? "pipe" : "ignore" });
|
|
412
416
|
if (!this.childProcess) {
|
|
413
417
|
console.error("ChildProcess is undefined directly after the init!");
|
|
414
418
|
}
|
|
415
419
|
if (this.debugMode) {
|
|
416
|
-
this.childProcess.stdout.on(
|
|
417
|
-
this.childProcess.stderr.on(
|
|
420
|
+
this.childProcess.stdout.on("data", function (data) { return console.log(data.toString()); });
|
|
421
|
+
this.childProcess.stderr.on("data", function (data) { return console.log(data.toString()); });
|
|
418
422
|
}
|
|
419
423
|
return [2 /*return*/];
|
|
420
424
|
}
|
|
@@ -496,13 +500,15 @@ var MP4StreamingServer = /** @class */ (function () {
|
|
|
496
500
|
var readHandler = function () {
|
|
497
501
|
var value = _this.socket.read(length);
|
|
498
502
|
if (value) {
|
|
503
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
499
504
|
cleanup();
|
|
500
505
|
resolve(value);
|
|
501
506
|
}
|
|
502
507
|
};
|
|
503
508
|
var endHandler = function () {
|
|
509
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
504
510
|
cleanup();
|
|
505
|
-
reject(new Error("FFMPEG socket closed during read for "
|
|
511
|
+
reject(new Error("FFMPEG socket closed during read for ".concat(length, " bytes!")));
|
|
506
512
|
};
|
|
507
513
|
var cleanup = function () {
|
|
508
514
|
var _a, _b;
|
|
@@ -526,6 +532,7 @@ var cameraController = new __1.CameraController({
|
|
|
526
532
|
delegate: streamDelegate,
|
|
527
533
|
streamingOptions: {
|
|
528
534
|
// srtp: true, // legacy option which will just enable AES_CM_128_HMAC_SHA1_80 (can still be used though)
|
|
535
|
+
// NONE is not supported by iOS just there for testing with Wireshark for example
|
|
529
536
|
supportedCryptoSuites: [2 /* NONE */, 0 /* AES_CM_128_HMAC_SHA1_80 */],
|
|
530
537
|
video: {
|
|
531
538
|
codec: {
|
|
@@ -547,17 +554,17 @@ var cameraController = new __1.CameraController({
|
|
|
547
554
|
],
|
|
548
555
|
},
|
|
549
556
|
/* audio option is omitted, as it is not supported in this example; HAP-NodeJS will fake an appropriate audio codec
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
557
|
+
audio: {
|
|
558
|
+
comfort_noise: false, // optional, default false
|
|
559
|
+
codecs: [
|
|
560
|
+
{
|
|
561
|
+
type: AudioStreamingCodecType.OPUS,
|
|
562
|
+
audioChannels: 1, // optional, default 1
|
|
563
|
+
samplerate: [AudioStreamingSamplerate.KHZ_16, AudioStreamingSamplerate.KHZ_24], // 16 and 24 must be present for AAC-ELD or OPUS
|
|
564
|
+
},
|
|
565
|
+
],
|
|
566
|
+
},
|
|
567
|
+
// */
|
|
561
568
|
},
|
|
562
569
|
recording: {
|
|
563
570
|
options: {
|
|
@@ -583,8 +590,8 @@ var cameraController = new __1.CameraController({
|
|
|
583
590
|
[1280, 720, 30],
|
|
584
591
|
[1280, 960, 30],
|
|
585
592
|
[1920, 1080, 30],
|
|
586
|
-
[1600, 1200, 30]
|
|
587
|
-
]
|
|
593
|
+
[1600, 1200, 30],
|
|
594
|
+
],
|
|
588
595
|
},
|
|
589
596
|
audio: {
|
|
590
597
|
codecs: {
|
|
@@ -600,7 +607,7 @@ var cameraController = new __1.CameraController({
|
|
|
600
607
|
sensors: {
|
|
601
608
|
motion: true,
|
|
602
609
|
occupancy: true,
|
|
603
|
-
}
|
|
610
|
+
},
|
|
604
611
|
});
|
|
605
612
|
streamDelegate.controller = cameraController;
|
|
606
613
|
camera.configureController(cameraController);
|