homebridge-unifi-protect 6.13.1 → 6.15.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/README.md +1 -1
- package/config.schema.json +8 -8
- package/dist/protect-camera.d.ts +1 -0
- package/dist/protect-camera.js +107 -66
- package/dist/protect-camera.js.map +1 -1
- package/dist/protect-chime.js +9 -9
- package/dist/protect-chime.js.map +1 -1
- package/dist/protect-device.d.ts +5 -1
- package/dist/protect-device.js +31 -8
- package/dist/protect-device.js.map +1 -1
- package/dist/protect-doorbell.js +6 -6
- package/dist/protect-doorbell.js.map +1 -1
- package/dist/protect-ffmpeg-codecs.js +1 -0
- package/dist/protect-ffmpeg-codecs.js.map +1 -1
- package/dist/protect-ffmpeg-options.js +22 -5
- package/dist/protect-ffmpeg-options.js.map +1 -1
- package/dist/protect-light.js +10 -10
- package/dist/protect-light.js.map +1 -1
- package/dist/protect-liveviews.js +14 -20
- package/dist/protect-liveviews.js.map +1 -1
- package/dist/protect-nvr-events.d.ts +2 -3
- package/dist/protect-nvr-events.js +63 -44
- package/dist/protect-nvr-events.js.map +1 -1
- package/dist/protect-nvr.d.ts +1 -2
- package/dist/protect-nvr.js +63 -19
- package/dist/protect-nvr.js.map +1 -1
- package/dist/protect-options.d.ts +5 -3
- package/dist/protect-options.js +18 -15
- package/dist/protect-options.js.map +1 -1
- package/dist/protect-platform.d.ts +1 -1
- package/dist/protect-platform.js +7 -11
- package/dist/protect-platform.js.map +1 -1
- package/dist/protect-record.js +4 -4
- package/dist/protect-record.js.map +1 -1
- package/dist/protect-rtp.js +8 -6
- package/dist/protect-rtp.js.map +1 -1
- package/dist/protect-sensor.js +40 -26
- package/dist/protect-sensor.js.map +1 -1
- package/dist/protect-stream.js +1 -1
- package/dist/protect-stream.js.map +1 -1
- package/dist/protect-types.d.ts +1 -0
- package/dist/protect-types.js +1 -0
- package/dist/protect-types.js.map +1 -1
- package/dist/protect-viewer.js +2 -3
- package/dist/protect-viewer.js.map +1 -1
- package/dist/settings.d.ts +2 -1
- package/dist/settings.js +5 -3
- package/dist/settings.js.map +1 -1
- package/homebridge-ui/public/index.html +12 -1
- package/homebridge-ui/public/lib/featureoptions.mjs +2 -1
- package/homebridge-ui/public/protect-featureoptions.mjs +12 -7
- package/homebridge-ui/public/ui.mjs +2 -4
- package/homebridge-ui/server.js +11 -4
- package/package.json +12 -12
package/dist/protect-nvr.js
CHANGED
|
@@ -16,12 +16,11 @@ import util from "node:util";
|
|
|
16
16
|
export class ProtectNvr {
|
|
17
17
|
api;
|
|
18
18
|
config;
|
|
19
|
+
deviceRemovalQueue;
|
|
19
20
|
configuredDevices;
|
|
20
21
|
events;
|
|
21
22
|
isEnabled;
|
|
22
23
|
hap;
|
|
23
|
-
lastMotion;
|
|
24
|
-
lastRing;
|
|
25
24
|
liveviews;
|
|
26
25
|
logApiErrors;
|
|
27
26
|
log;
|
|
@@ -38,10 +37,9 @@ export class ProtectNvr {
|
|
|
38
37
|
this.api = platform.api;
|
|
39
38
|
this.config = nvrOptions;
|
|
40
39
|
this.configuredDevices = {};
|
|
40
|
+
this.deviceRemovalQueue = {};
|
|
41
41
|
this.isEnabled = false;
|
|
42
42
|
this.hap = this.api.hap;
|
|
43
|
-
this.lastMotion = {};
|
|
44
|
-
this.lastRing = {};
|
|
45
43
|
this.liveviews = null;
|
|
46
44
|
this.logApiErrors = true;
|
|
47
45
|
this.mqtt = null;
|
|
@@ -305,19 +303,19 @@ export class ProtectNvr {
|
|
|
305
303
|
if (!this.ufpApi.bootstrap) {
|
|
306
304
|
return false;
|
|
307
305
|
}
|
|
308
|
-
if (this.ufpApi.bootstrap.cameras && !this.discoverDevices(this.ufpApi.bootstrap
|
|
306
|
+
if (this.ufpApi.bootstrap.cameras && !this.discoverDevices(this.ufpApi.bootstrap.cameras)) {
|
|
309
307
|
this.log.error("Error discovering camera devices.");
|
|
310
308
|
}
|
|
311
|
-
if (this.ufpApi.bootstrap.chimes && !this.discoverDevices(this.ufpApi.bootstrap
|
|
309
|
+
if (this.ufpApi.bootstrap.chimes && !this.discoverDevices(this.ufpApi.bootstrap.chimes)) {
|
|
312
310
|
this.log.error("Error discovering chime devices.");
|
|
313
311
|
}
|
|
314
|
-
if (this.ufpApi.bootstrap.lights && !this.discoverDevices(this.ufpApi.bootstrap
|
|
312
|
+
if (this.ufpApi.bootstrap.lights && !this.discoverDevices(this.ufpApi.bootstrap.lights)) {
|
|
315
313
|
this.log.error("Error discovering light devices.");
|
|
316
314
|
}
|
|
317
|
-
if (this.ufpApi.bootstrap.sensors && !this.discoverDevices(this.ufpApi.bootstrap
|
|
315
|
+
if (this.ufpApi.bootstrap.sensors && !this.discoverDevices(this.ufpApi.bootstrap.sensors)) {
|
|
318
316
|
this.log.error("Error discovering sensor devices.");
|
|
319
317
|
}
|
|
320
|
-
if (this.ufpApi.bootstrap.viewers && !this.discoverDevices(this.ufpApi.bootstrap
|
|
318
|
+
if (this.ufpApi.bootstrap.viewers && !this.discoverDevices(this.ufpApi.bootstrap.viewers)) {
|
|
321
319
|
this.log.error("Error discovering viewer devices.");
|
|
322
320
|
}
|
|
323
321
|
// Remove Protect devices that are no longer found on this Protect NVR, but we still have in HomeKit.
|
|
@@ -325,18 +323,20 @@ export class ProtectNvr {
|
|
|
325
323
|
// Configure our liveview-based accessories.
|
|
326
324
|
this.liveviews?.configureLiveviews();
|
|
327
325
|
// Update our viewer accessories.
|
|
328
|
-
Object.keys(this.configuredDevices)
|
|
329
|
-
.filter(x => this.configuredDevices[x].ufp.modelKey === "viewer")
|
|
326
|
+
Object.keys(this.configuredDevices).filter(x => this.configuredDevices[x].ufp.modelKey === "viewer")
|
|
330
327
|
.map(x => this.configuredDevices[x].updateDevice());
|
|
328
|
+
// Sync our names.
|
|
329
|
+
Object.keys(this.configuredDevices).filter(x => ("hints" in this.configuredDevices[x]) && this.configuredDevices[x].hints.syncName)
|
|
330
|
+
.map(x => (this.configuredDevices[x].accessoryName = this.configuredDevices[x].ufp.name));
|
|
331
331
|
return true;
|
|
332
332
|
}
|
|
333
333
|
// Cleanup removed Protect devices from HomeKit.
|
|
334
334
|
cleanupDevices() {
|
|
335
335
|
for (const accessory of this.platform.accessories) {
|
|
336
336
|
const protectDevice = this.configuredDevices[accessory.UUID];
|
|
337
|
-
// Check to see if we have an orphan - where we haven't configured this in the plugin, but the accessory still exists in HomeKit. One example of
|
|
338
|
-
//
|
|
339
|
-
//
|
|
337
|
+
// Check to see if we have an orphan - where we haven't configured this in the plugin, but the accessory still exists in HomeKit. One example of when this might
|
|
338
|
+
// happen is when Homebridge might be shutdown and a camera is then removed. When we start back up, the camera still exists in HomeKit but not in Protect. We
|
|
339
|
+
// catch those orphan devices here.
|
|
340
340
|
if (!protectDevice) {
|
|
341
341
|
// We only remove devices if they're on the Protect controller we're interested in.
|
|
342
342
|
if (("nvr" in accessory.context) && (accessory.context.nvr !== this.ufp.mac)) {
|
|
@@ -357,6 +357,23 @@ export class ProtectNvr {
|
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
359
|
}
|
|
360
|
+
// For certain use cases, we may want to defer removal of a Protect device (e.g. in stacked NVR configurations) where Protect may lose track of devices for a
|
|
361
|
+
// brief period of time. This prevents a potential back-and-forth where devices are removed momentarily only to be readded later.
|
|
362
|
+
const delayInterval = this.getFeatureNumber("Nvr.DelayDeviceRemoval");
|
|
363
|
+
if ((delayInterval !== undefined) && (delayInterval > 0)) {
|
|
364
|
+
// Have we seen this device queued for removal previously? If not, let's add it to the queue and come back after our specified delay.
|
|
365
|
+
if (!this.deviceRemovalQueue[accessory.UUID]) {
|
|
366
|
+
this.deviceRemovalQueue[accessory.UUID] = Date.now();
|
|
367
|
+
this.log.info("%s: Delaying device removal for at least %s second%s.", accessory.displayName, delayInterval, delayInterval > 1 ? "s" : "");
|
|
368
|
+
continue;
|
|
369
|
+
}
|
|
370
|
+
// Is it time to process this device removal?
|
|
371
|
+
if ((delayInterval * 1000) > (Date.now() - this.deviceRemovalQueue[accessory.UUID])) {
|
|
372
|
+
continue;
|
|
373
|
+
}
|
|
374
|
+
// Cleanup after ourselves.
|
|
375
|
+
delete this.deviceRemovalQueue[accessory.UUID];
|
|
376
|
+
}
|
|
360
377
|
this.log.info("%s: Removing device from HomeKit.", accessory.displayName);
|
|
361
378
|
// Unregister the accessory and delete it's remnants from HomeKit.
|
|
362
379
|
this.api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
|
|
@@ -373,26 +390,36 @@ export class ProtectNvr {
|
|
|
373
390
|
switch (protectDevice.ufp.modelKey) {
|
|
374
391
|
case "camera":
|
|
375
392
|
if (this.ufpApi.bootstrap.cameras.some((x) => x.mac === protectDevice.ufp.mac) && protectDevice.hasFeature("Device")) {
|
|
393
|
+
// In case we have previously queued a device for deletion, let's remove it from the queue since it's reappeared.
|
|
394
|
+
delete this.deviceRemovalQueue[protectDevice.accessory.UUID];
|
|
376
395
|
continue;
|
|
377
396
|
}
|
|
378
397
|
break;
|
|
379
398
|
case "chime":
|
|
380
399
|
if (this.ufpApi.bootstrap.chimes.some((x) => x.mac === protectDevice.ufp.mac) && protectDevice.hasFeature("Device")) {
|
|
400
|
+
// In case we have previously queued a device for deletion, let's remove it from the queue since it's reappeared.
|
|
401
|
+
delete this.deviceRemovalQueue[protectDevice.accessory.UUID];
|
|
381
402
|
continue;
|
|
382
403
|
}
|
|
383
404
|
break;
|
|
384
405
|
case "light":
|
|
385
406
|
if (this.ufpApi.bootstrap.lights.some((x) => x.mac === protectDevice.ufp.mac) && protectDevice.hasFeature("Device")) {
|
|
407
|
+
// In case we have previously queued a device for deletion, let's remove it from the queue since it's reappeared.
|
|
408
|
+
delete this.deviceRemovalQueue[protectDevice.accessory.UUID];
|
|
386
409
|
continue;
|
|
387
410
|
}
|
|
388
411
|
break;
|
|
389
412
|
case "sensor":
|
|
390
413
|
if (this.ufpApi.bootstrap.sensors.some((x) => x.mac === protectDevice.ufp.mac) && protectDevice.hasFeature("Device")) {
|
|
414
|
+
// In case we have previously queued a device for deletion, let's remove it from the queue since it's reappeared.
|
|
415
|
+
delete this.deviceRemovalQueue[protectDevice.accessory.UUID];
|
|
391
416
|
continue;
|
|
392
417
|
}
|
|
393
418
|
break;
|
|
394
419
|
case "viewer":
|
|
395
420
|
if (this.ufpApi.bootstrap.viewers.some((x) => x.mac === protectDevice.ufp.mac) && protectDevice.hasFeature("Device")) {
|
|
421
|
+
// In case we have previously queued a device for deletion, let's remove it from the queue since it's reappeared.
|
|
422
|
+
delete this.deviceRemovalQueue[protectDevice.accessory.UUID];
|
|
396
423
|
continue;
|
|
397
424
|
}
|
|
398
425
|
break;
|
|
@@ -429,8 +456,25 @@ export class ProtectNvr {
|
|
|
429
456
|
if (("liveview" in protectDevice.accessory.context) || protectDevice.accessory.getService(this.hap.Service.SecuritySystem)) {
|
|
430
457
|
return;
|
|
431
458
|
}
|
|
459
|
+
// For certain use cases, we may want to defer removal of a Protect device (e.g. in stacked NVR configurations) where Protect may lose track of devices for a
|
|
460
|
+
// brief period of time. This prevents a potential back-and-forth where devices are removed momentarily only to be readded later.
|
|
461
|
+
const delayInterval = this.getFeatureNumber("Nvr.DelayDeviceRemoval");
|
|
462
|
+
if ((delayInterval !== undefined) && (delayInterval > 0)) {
|
|
463
|
+
// Have we seen this device queued for removal previously? If not, let's add it to the queue and come back after our specified delay.
|
|
464
|
+
if (!this.deviceRemovalQueue[protectDevice.accessory.UUID]) {
|
|
465
|
+
this.deviceRemovalQueue[protectDevice.accessory.UUID] = Date.now();
|
|
466
|
+
this.log.info("%s: Delaying device removal for %s second%s.", protectDevice.ufp.name ? this.ufpApi.getDeviceName(protectDevice.ufp) : protectDevice.accessoryName, delayInterval, delayInterval > 1 ? "s" : "");
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
// Is it time to process this device removal?
|
|
470
|
+
if ((delayInterval * 1000) > (Date.now() - this.deviceRemovalQueue[protectDevice.accessory.UUID])) {
|
|
471
|
+
return;
|
|
472
|
+
}
|
|
473
|
+
// Cleanup after ourselves.
|
|
474
|
+
delete this.deviceRemovalQueue[protectDevice.accessory.UUID];
|
|
475
|
+
}
|
|
432
476
|
// Remove this device.
|
|
433
|
-
this.log.info("%s: Removing %s from HomeKit.", protectDevice.ufp.name ? this.ufpApi.getDeviceName(protectDevice.ufp) : protectDevice.
|
|
477
|
+
this.log.info("%s: Removing %s from HomeKit.", protectDevice.ufp.name ? this.ufpApi.getDeviceName(protectDevice.ufp) : protectDevice.accessoryName, protectDevice.ufp.modelKey ? protectDevice.ufp.modelKey : "device");
|
|
434
478
|
const deletingAccessories = [protectDevice.accessory];
|
|
435
479
|
// Check to see if we're removing a camera device that has a package camera as well.
|
|
436
480
|
if (protectDevice.ufp.modelKey === "camera") {
|
|
@@ -558,19 +602,19 @@ export class ProtectNvr {
|
|
|
558
602
|
}
|
|
559
603
|
// Utility function to return a floating point configuration parameter on a device.
|
|
560
604
|
getFeatureFloat(option) {
|
|
561
|
-
return getOptionFloat(getOptionValue(this.platform.
|
|
605
|
+
return getOptionFloat(getOptionValue(this.platform.featureOptions, this.ufp, null, option));
|
|
562
606
|
}
|
|
563
607
|
// Utility function to return an integer configuration parameter on a device.
|
|
564
608
|
getFeatureNumber(option) {
|
|
565
|
-
return getOptionNumber(getOptionValue(this.platform.
|
|
609
|
+
return getOptionNumber(getOptionValue(this.platform.featureOptions, this.ufp, null, option));
|
|
566
610
|
}
|
|
567
611
|
// Utility for checking feature options on the NVR.
|
|
568
612
|
hasFeature(option) {
|
|
569
|
-
return isOptionEnabled(this.platform.
|
|
613
|
+
return isOptionEnabled(this.platform.featureOptions, this.ufp, null, option, this.platform.featureOptionDefault(option));
|
|
570
614
|
}
|
|
571
615
|
// Utility function to let us know if a device or feature should be enabled or not.
|
|
572
616
|
optionEnabled(device, option = "", defaultReturnValue = true) {
|
|
573
|
-
return isOptionEnabled(this.platform.
|
|
617
|
+
return isOptionEnabled(this.platform.featureOptions, this.ufp, device, option, defaultReturnValue);
|
|
574
618
|
}
|
|
575
619
|
// Emulate a sleep function.
|
|
576
620
|
sleep(sleepTimer) {
|
package/dist/protect-nvr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect-nvr.js","sourceRoot":"","sources":["../src/protect-nvr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"protect-nvr.js","sourceRoot":"","sources":["../src/protect-nvr.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ export interface ProtectOptions {
|
|
|
5
5
|
debugAll: boolean;
|
|
6
6
|
ffmpegOptions: string[];
|
|
7
7
|
options: string[];
|
|
8
|
-
|
|
8
|
+
ringDelay: number;
|
|
9
9
|
verboseFfmpeg: boolean;
|
|
10
10
|
videoEncoder: string;
|
|
11
11
|
videoProcessor: string;
|
|
@@ -26,19 +26,21 @@ export interface ProtectNvrOptions {
|
|
|
26
26
|
}
|
|
27
27
|
export declare const featureOptionCategories: {
|
|
28
28
|
description: string;
|
|
29
|
+
modelKey: string[];
|
|
29
30
|
name: string;
|
|
30
|
-
validFor: string[];
|
|
31
31
|
}[];
|
|
32
32
|
export declare const featureOptions: {
|
|
33
33
|
[index: string]: FeatureOption[];
|
|
34
34
|
};
|
|
35
35
|
export interface FeatureOption {
|
|
36
36
|
default: boolean;
|
|
37
|
-
defaultValue?: number;
|
|
37
|
+
defaultValue?: number | string;
|
|
38
38
|
description: string;
|
|
39
39
|
group?: string;
|
|
40
40
|
hasFeature?: string[];
|
|
41
41
|
hasProperty?: string[];
|
|
42
|
+
hasSmartObjectType?: string[];
|
|
43
|
+
modelKey?: string[];
|
|
42
44
|
name: string;
|
|
43
45
|
}
|
|
44
46
|
export declare function isOptionEnabled(configOptions: string[], nvrUfp: ProtectNvrConfig | null, device: ProtectDeviceConfigTypes | ProtectNvrConfig | null, option?: string, defaultReturnValue?: boolean): boolean;
|
package/dist/protect-options.js
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
*
|
|
3
3
|
* protect-options.ts: Feature option and type definitions for UniFi Protect.
|
|
4
4
|
*/
|
|
5
|
-
import { PROTECT_DOORBELL_CHIME_DURATION_DIGITAL, PROTECT_FFMPEG_AUDIO_FILTER_FFTNR, PROTECT_FFMPEG_AUDIO_FILTER_HIGHPASS, PROTECT_FFMPEG_AUDIO_FILTER_LOWPASS, PROTECT_M3U_PLAYLIST_PORT, PROTECT_MOTION_DURATION, PROTECT_OCCUPANCY_DURATION } from "./settings.js";
|
|
5
|
+
import { PROTECT_DEVICE_REMOVAL_DELAY_INTERVAL, PROTECT_DOORBELL_CHIME_DURATION_DIGITAL, PROTECT_FFMPEG_AUDIO_FILTER_FFTNR, PROTECT_FFMPEG_AUDIO_FILTER_HIGHPASS, PROTECT_FFMPEG_AUDIO_FILTER_LOWPASS, PROTECT_M3U_PLAYLIST_PORT, PROTECT_MOTION_DURATION, PROTECT_OCCUPANCY_DURATION } from "./settings.js";
|
|
6
6
|
// Feature option categories.
|
|
7
7
|
export const featureOptionCategories = [
|
|
8
|
-
{ description: "Audio feature options.",
|
|
9
|
-
{ description: "Device feature options.",
|
|
10
|
-
{ description: "Doorbell feature options.",
|
|
11
|
-
{ description: "Logging feature options.",
|
|
12
|
-
{ description: "Motion detection feature options.",
|
|
13
|
-
{ description: "NVR feature options.",
|
|
14
|
-
{ description: "Security system feature options.",
|
|
15
|
-
{ description: "Video feature options.",
|
|
16
|
-
{ description: "HomeKit Secure Video feature options.",
|
|
8
|
+
{ description: "Audio feature options.", modelKey: ["camera"], name: "Audio" },
|
|
9
|
+
{ description: "Device feature options.", modelKey: ["all"], name: "Device" },
|
|
10
|
+
{ description: "Doorbell feature options.", modelKey: ["camera"], name: "Doorbell" },
|
|
11
|
+
{ description: "Logging feature options.", modelKey: ["camera", "light", "sensor"], name: "Log" },
|
|
12
|
+
{ description: "Motion detection feature options.", modelKey: ["camera", "light", "sensor"], name: "Motion" },
|
|
13
|
+
{ description: "NVR feature options.", modelKey: ["camera", "nvr"], name: "Nvr" },
|
|
14
|
+
{ description: "Security system feature options.", modelKey: ["camera", "nvr"], name: "SecuritySystem" },
|
|
15
|
+
{ description: "Video feature options.", modelKey: ["camera"], name: "Video" },
|
|
16
|
+
{ description: "HomeKit Secure Video feature options.", modelKey: ["camera"], name: "Video.HKSV" }
|
|
17
17
|
];
|
|
18
18
|
/* eslint-disable max-len */
|
|
19
19
|
// Individual feature options, broken out by category.
|
|
@@ -30,6 +30,7 @@ export const featureOptions = {
|
|
|
30
30
|
// Device options.
|
|
31
31
|
"Device": [
|
|
32
32
|
{ default: true, description: "Make this device available in HomeKit.", name: "" },
|
|
33
|
+
{ default: false, description: "Synchronize the UniFi Protect name of this device with HomeKit. Synchronization is one-way only, syncing the device name from UniFi Protect to HomeKit.", name: "SyncName" },
|
|
33
34
|
{ default: false, description: "Enable the status LED for this device in HomeKit.", hasProperty: ["ledSettings"], name: "StatusLed" }
|
|
34
35
|
],
|
|
35
36
|
// Doorbell options.
|
|
@@ -55,15 +56,17 @@ export const featureOptions = {
|
|
|
55
56
|
{ default: false, description: "When using both the occupancy sensor and smart motion detection feature options, use UniFi Protect's vehicle detection to trigger occupancy.", group: "OccupancySensor", hasFeature: ["hasSmartDetect"], name: "OccupancySensor.Vehicle" },
|
|
56
57
|
{ default: false, description: "Use UniFi Protect smart motion detection for HomeKit motion events when on a supported device.", hasFeature: ["hasSmartDetect"], name: "SmartDetect" },
|
|
57
58
|
{ default: false, description: "Add contact sensor accessories for each smart motion object type that UniFi Protect supports.", group: "SmartDetect", hasFeature: ["hasSmartDetect"], name: "SmartDetect.ObjectSensors" },
|
|
59
|
+
{ default: false, defaultValue: "", description: "Add a contact sensor accessory that will match a specific license plate detected by UniFi Protect. You may specify multiple license plates by using hyphens to distinguish unique license plates (e.g. PLATE1-PLATE2-PLATE3).", group: "SmartDetect", hasSmartObjectType: ["licensePlate"], name: "SmartDetect.ObjectSensors.LicensePlate" },
|
|
58
60
|
{ default: false, description: "Add a switch accessory to activate or deactivate motion detection in HomeKit.", hasProperty: ["isMotionDetected", "isPirMotionDetected"], name: "Switch" },
|
|
59
61
|
{ default: false, description: "Add a switch accessory to manually trigger a motion detection event in HomeKit.", hasProperty: ["isMotionDetected", "isPirMotionDetected"], name: "Trigger" }
|
|
60
62
|
],
|
|
61
63
|
// NVR options.
|
|
62
64
|
"Nvr": [
|
|
63
|
-
{ default: false, defaultValue: PROTECT_M3U_PLAYLIST_PORT, description: "Publish an M3U playlist of Protect cameras on the specified port of this Homebridge server that is suitable for use in apps (e.g. Channels DVR) that can make camera livestreams available through them.", name: "Service.Playlist" },
|
|
64
|
-
{ default: false, description: "
|
|
65
|
-
{ default: false, description: "
|
|
66
|
-
{ default: false, description: "Add
|
|
65
|
+
{ default: false, defaultValue: PROTECT_M3U_PLAYLIST_PORT, description: "Publish an M3U playlist of Protect cameras on the specified port of this Homebridge server that is suitable for use in apps (e.g. Channels DVR) that can make camera livestreams available through them.", modelKey: ["nvr"], name: "Service.Playlist" },
|
|
66
|
+
{ default: false, defaultValue: PROTECT_DEVICE_REMOVAL_DELAY_INTERVAL, description: "Delay, in seconds, before removing devices that are no longer detected on the Protect controller. By default, devices are added and removed in real-time.", modelKey: ["nvr"], name: "DelayDeviceRemoval" },
|
|
67
|
+
{ default: false, description: "Publish all the realtime telemetry received from the Protect controller to MQTT.", modelKey: ["nvr"], name: "Publish.Telemetry" },
|
|
68
|
+
{ default: false, description: "Add switch accessories to control the native recording capabilities of the UniFi Protect NVR.", modelKey: ["camera"], name: "Recording.Switch" },
|
|
69
|
+
{ default: false, description: "Add sensor accessories to display the Protect controller system information (currently only the temperature).", modelKey: ["nvr"], name: "SystemInfo" }
|
|
67
70
|
],
|
|
68
71
|
// Security system options.
|
|
69
72
|
"SecuritySystem": [
|
|
@@ -147,7 +150,7 @@ export function getOptionValue(configOptions, nvrUfp, device, option) {
|
|
|
147
150
|
}
|
|
148
151
|
const getValue = (checkOption, checkMac = undefined) => {
|
|
149
152
|
// This regular expression is a bit more intricate than you might think it should be due to the need to ensure we capture values at the very end of the option.
|
|
150
|
-
const optionRegex = new RegExp("^Enable\\." + checkOption + (!checkMac ? "" : "\\." + checkMac) + "\\.(
|
|
153
|
+
const optionRegex = new RegExp("^Enable\\." + checkOption + (!checkMac ? "" : "\\." + checkMac) + "\\.(.+)$", "gi");
|
|
151
154
|
// Get the option value, if we have one.
|
|
152
155
|
for (const entry of configOptions) {
|
|
153
156
|
const regexMatch = optionRegex.exec(entry);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect-options.js","sourceRoot":"","sources":["../src/protect-options.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,uCAAuC,EAAE,iCAAiC,EAAE,oCAAoC,
|
|
1
|
+
{"version":3,"file":"protect-options.js","sourceRoot":"","sources":["../src/protect-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,9 @@ export declare class ProtectPlatform implements DynamicPlatformPlugin {
|
|
|
7
7
|
readonly api: API;
|
|
8
8
|
readonly codecSupport: FfmpegCodecs;
|
|
9
9
|
readonly config: ProtectOptions;
|
|
10
|
-
readonly configOptions: string[];
|
|
11
10
|
private readonly controllers;
|
|
12
11
|
private featureOptionDefaults;
|
|
12
|
+
readonly featureOptions: string[];
|
|
13
13
|
readonly log: Logging;
|
|
14
14
|
readonly rtpPorts: RtpPortAllocator;
|
|
15
15
|
private _hostSystem;
|
package/dist/protect-platform.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PROTECT_FFMPEG_OPTIONS, PROTECT_MQTT_TOPIC
|
|
1
|
+
import { PROTECT_FFMPEG_OPTIONS, PROTECT_MQTT_TOPIC } from "./settings.js";
|
|
2
2
|
import { featureOptionCategories, featureOptions } from "./protect-options.js";
|
|
3
3
|
import { FfmpegCodecs } from "./protect-ffmpeg-codecs.js";
|
|
4
4
|
import { ProtectNvr } from "./protect-nvr.js";
|
|
@@ -13,9 +13,9 @@ export class ProtectPlatform {
|
|
|
13
13
|
api;
|
|
14
14
|
codecSupport;
|
|
15
15
|
config;
|
|
16
|
-
configOptions;
|
|
17
16
|
controllers;
|
|
18
17
|
featureOptionDefaults;
|
|
18
|
+
featureOptions;
|
|
19
19
|
log;
|
|
20
20
|
rtpPorts;
|
|
21
21
|
_hostSystem;
|
|
@@ -24,9 +24,9 @@ export class ProtectPlatform {
|
|
|
24
24
|
this._hostSystem = "";
|
|
25
25
|
this.accessories = [];
|
|
26
26
|
this.api = api;
|
|
27
|
-
this.configOptions = [];
|
|
28
27
|
this.controllers = [];
|
|
29
28
|
this.featureOptionDefaults = {};
|
|
29
|
+
this.featureOptions = [];
|
|
30
30
|
this.log = log;
|
|
31
31
|
this.rtpPorts = new RtpPortAllocator();
|
|
32
32
|
this.verboseFfmpeg = false;
|
|
@@ -46,7 +46,7 @@ export class ProtectPlatform {
|
|
|
46
46
|
debugAll: config.debug === true,
|
|
47
47
|
ffmpegOptions: config.ffmpegOptions ?? PROTECT_FFMPEG_OPTIONS,
|
|
48
48
|
options: config.options,
|
|
49
|
-
|
|
49
|
+
ringDelay: config.ringDelay ?? 0,
|
|
50
50
|
verboseFfmpeg: config.verboseFfmpeg === true,
|
|
51
51
|
videoEncoder: config.videoEncoder,
|
|
52
52
|
videoProcessor: config.videoProcessor ?? ffmpegPath ?? "ffmpeg"
|
|
@@ -66,13 +66,9 @@ export class ProtectPlatform {
|
|
|
66
66
|
// If we have feature options, put them into their own array, lower-cased for future reference.
|
|
67
67
|
if (this.config.options) {
|
|
68
68
|
for (const featureOption of this.config.options) {
|
|
69
|
-
this.
|
|
69
|
+
this.featureOptions.push(featureOption.toLowerCase());
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
// Ring trigger duration. Make sure it's never less than 3 seconds so we can ensure automations work.
|
|
73
|
-
if (this.config.ringDuration < 3) {
|
|
74
|
-
this.config.ringDuration = 3;
|
|
75
|
-
}
|
|
76
72
|
// Loop through each configured NVR and instantiate it.
|
|
77
73
|
for (const controllerConfig of this.config.controllers) {
|
|
78
74
|
// We need an address, or there's nothing to do.
|
|
@@ -95,8 +91,8 @@ export class ProtectPlatform {
|
|
|
95
91
|
this.probeHwOs();
|
|
96
92
|
// Probe our FFmpeg capabilities.
|
|
97
93
|
this.codecSupport = new FfmpegCodecs(this);
|
|
98
|
-
// Avoid a prospective race condition by waiting to configure our controllers until Homebridge is done loading all the cached accessories it knows about,
|
|
99
|
-
//
|
|
94
|
+
// Avoid a prospective race condition by waiting to configure our controllers until Homebridge is done loading all the cached accessories it knows about, and calling
|
|
95
|
+
// configureAccessory() on each.
|
|
100
96
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
101
97
|
api.on("didFinishLaunching" /* APIEvent.DID_FINISH_LAUNCHING */, this.launchControllers.bind(this));
|
|
102
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect-platform.js","sourceRoot":"","sources":["../src/protect-platform.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"protect-platform.js","sourceRoot":"","sources":["../src/protect-platform.ts"],"names":[],"mappings":"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"}
|
package/dist/protect-record.js
CHANGED
|
@@ -66,9 +66,9 @@ export class ProtectRecordingDelegate {
|
|
|
66
66
|
// Inform the user of the state change, if needed.
|
|
67
67
|
if (!this.isInitialized) {
|
|
68
68
|
this.isInitialized = true;
|
|
69
|
-
this.log.info("HomeKit Secure Video %sevent recording enabled: %s, %s kbps
|
|
70
|
-
"
|
|
71
|
-
"no timeshift buffer. This will provide a suboptimal HKSV experience.");
|
|
69
|
+
this.log.info("HomeKit Secure Video %sevent recording enabled: %s, %s kbps %s", this.protectCamera.hints.hardwareTranscoding ? "hardware-accelerated " : "", this.rtspEntry?.name, this.recordingConfig?.videoCodec.parameters.bitRate.toLocaleString("en-US"), this.protectCamera.hints.timeshift ?
|
|
70
|
+
"(" + (this.timeshift.length / 1000).toString() + " second timeshift buffer)." :
|
|
71
|
+
"with no timeshift buffer. This will provide a suboptimal HKSV experience.");
|
|
72
72
|
// Inform the user if there's a maximum event recording duration set.
|
|
73
73
|
if (this.maxRecordingDuration) {
|
|
74
74
|
this.log.info("HomeKit Secure Video recordings will be no longer than ~%s seconds.", this.maxRecordingDuration);
|
|
@@ -186,7 +186,7 @@ export class ProtectRecordingDelegate {
|
|
|
186
186
|
}
|
|
187
187
|
// Fire up the timeshift buffer. If we've got multiple lenses, we use the first channel and explicitly request the lens we want.
|
|
188
188
|
if (!(await this.timeshift.start((this.rtspEntry.lens === undefined) ? this.rtspEntry.channel.id : 0, this.rtspEntry.lens))) {
|
|
189
|
-
this.log.error("%s.", timeshiftError);
|
|
189
|
+
this.log.error("%s: unable to connect to the livestream API on the Protect controller.", timeshiftError);
|
|
190
190
|
return false;
|
|
191
191
|
}
|
|
192
192
|
return true;
|