homebridge-unifi-protect 5.5.4 → 6.0.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.
Files changed (79) hide show
  1. package/README.md +3 -3
  2. package/config.schema.json +17 -16
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.js +6 -6
  5. package/dist/index.js.map +1 -1
  6. package/dist/protect-camera.d.ts +58 -0
  7. package/dist/protect-camera.js +367 -246
  8. package/dist/protect-camera.js.map +1 -1
  9. package/dist/protect-device.d.ts +48 -0
  10. package/dist/protect-device.js +189 -0
  11. package/dist/protect-device.js.map +1 -0
  12. package/dist/protect-doorbell.d.ts +22 -0
  13. package/dist/protect-doorbell.js +75 -64
  14. package/dist/protect-doorbell.js.map +1 -1
  15. package/dist/protect-ffmpeg-record.d.ts +15 -0
  16. package/dist/protect-ffmpeg-record.js +48 -34
  17. package/dist/protect-ffmpeg-record.js.map +1 -1
  18. package/dist/protect-ffmpeg-stream.d.ts +15 -0
  19. package/dist/protect-ffmpeg-stream.js +22 -12
  20. package/dist/protect-ffmpeg-stream.js.map +1 -1
  21. package/dist/protect-ffmpeg.d.ts +42 -0
  22. package/dist/protect-ffmpeg.js +49 -58
  23. package/dist/protect-ffmpeg.js.map +1 -1
  24. package/dist/protect-light.d.ts +13 -0
  25. package/dist/protect-light.js +63 -40
  26. package/dist/protect-light.js.map +1 -1
  27. package/dist/protect-liveviews.d.ts +17 -0
  28. package/dist/protect-liveviews.js +117 -101
  29. package/dist/protect-liveviews.js.map +1 -1
  30. package/dist/protect-mqtt.d.ts +19 -0
  31. package/dist/protect-mqtt.js +26 -35
  32. package/dist/protect-mqtt.js.map +1 -1
  33. package/dist/protect-nvr-events.d.ts +30 -0
  34. package/dist/protect-nvr-events.js +168 -431
  35. package/dist/protect-nvr-events.js.map +1 -1
  36. package/dist/protect-nvr-systeminfo.d.ts +15 -0
  37. package/dist/protect-nvr-systeminfo.js +43 -49
  38. package/dist/protect-nvr-systeminfo.js.map +1 -1
  39. package/dist/protect-nvr.d.ts +48 -0
  40. package/dist/protect-nvr.js +327 -359
  41. package/dist/protect-nvr.js.map +1 -1
  42. package/dist/protect-options.d.ts +39 -0
  43. package/dist/protect-options.js +172 -6
  44. package/dist/protect-options.js.map +1 -1
  45. package/dist/protect-platform.d.ts +17 -0
  46. package/dist/protect-platform.js +17 -30
  47. package/dist/protect-platform.js.map +1 -1
  48. package/dist/protect-record.d.ts +33 -0
  49. package/dist/protect-record.js +130 -126
  50. package/dist/protect-record.js.map +1 -1
  51. package/dist/protect-rtp.d.ts +29 -0
  52. package/dist/protect-rtp.js +133 -16
  53. package/dist/protect-rtp.js.map +1 -1
  54. package/dist/protect-securitysystem.d.ts +18 -0
  55. package/dist/protect-securitysystem.js +105 -109
  56. package/dist/protect-securitysystem.js.map +1 -1
  57. package/dist/protect-sensor.d.ts +28 -0
  58. package/dist/protect-sensor.js +79 -97
  59. package/dist/protect-sensor.js.map +1 -1
  60. package/dist/protect-stream.d.ts +41 -0
  61. package/dist/protect-stream.js +298 -156
  62. package/dist/protect-stream.js.map +1 -1
  63. package/dist/protect-timeshift.d.ts +30 -0
  64. package/dist/protect-timeshift.js +65 -48
  65. package/dist/protect-timeshift.js.map +1 -1
  66. package/dist/protect-types.d.ts +50 -0
  67. package/dist/protect-types.js +22 -0
  68. package/dist/protect-types.js.map +1 -0
  69. package/dist/protect-viewer.d.ts +17 -0
  70. package/dist/protect-viewer.js +41 -47
  71. package/dist/protect-viewer.js.map +1 -1
  72. package/dist/settings.d.ts +22 -0
  73. package/dist/settings.js +30 -35
  74. package/dist/settings.js.map +1 -1
  75. package/homebridge-ui/public/index.html +715 -0
  76. package/homebridge-ui/server.js +156 -0
  77. package/package.json +14 -15
  78. package/dist/protect-accessory.js +0 -184
  79. package/dist/protect-accessory.js.map +0 -1
@@ -1,17 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProtectViewer = void 0;
4
- const protect_accessory_1 = require("./protect-accessory");
5
- class ProtectViewer extends protect_accessory_1.ProtectAccessory {
1
+ import { ProtectDevice } from "./protect-device.js";
2
+ export class ProtectViewer extends ProtectDevice {
3
+ // Create an instance.
4
+ constructor(nvr, device, accessory) {
5
+ super(nvr, accessory);
6
+ this.ufp = device;
7
+ this.configureHints();
8
+ this.configureDevice();
9
+ }
6
10
  // Initialize and configure the viewer accessory for HomeKit.
7
- async configureDevice() {
8
- var _a;
9
- // Save the device object before we wipeout the context.
10
- const device = this.accessory.context.device;
11
+ configureDevice() {
11
12
  // Clean out the context object in case it's been polluted somehow.
12
13
  this.accessory.context = {};
13
- this.accessory.context.device = device;
14
- this.accessory.context.nvr = (_a = this.nvr.nvrApi.bootstrap) === null || _a === void 0 ? void 0 : _a.nvr.mac;
14
+ this.accessory.context.mac = this.ufp.mac;
15
+ this.accessory.context.nvr = this.nvr.ufp.mac;
15
16
  // Configure accessory information.
16
17
  this.configureInfo();
17
18
  // Configure accessory services.
@@ -20,24 +21,23 @@ class ProtectViewer extends protect_accessory_1.ProtectAccessory {
20
21
  this.configureMqtt();
21
22
  // Inform the user what we're enabling on startup.
22
23
  if (enabledLiveviews.length) {
23
- this.log.info("%s: Configured liveview%s: %s.", this.name(), enabledLiveviews.length > 1 ? "s" : "", enabledLiveviews.join(", "));
24
+ this.log.info("Configured liveview%s: %s.", enabledLiveviews.length > 1 ? "s" : "", enabledLiveviews.join(", "));
24
25
  }
25
26
  else {
26
- this.log.info("%s: No liveviews configured.", this.name());
27
+ this.log.info("No liveviews configured.");
27
28
  }
28
- return Promise.resolve(true);
29
+ return true;
29
30
  }
30
31
  // Update accessory services and characteristics.
31
32
  updateDevice(configureHandlers = false) {
32
- var _a, _b, _c, _d;
33
33
  // Grab the current list of liveview switches we know about.
34
34
  const currentLiveviewSwitches = this.accessory.services.filter(x => (x.UUID === this.hap.Service.Switch.UUID) && x.subtype);
35
35
  // Grab the current list of liveview identifiers from Protect.
36
- const nvrLiveviewIds = (_c = (_b = (_a = this.nvrApi) === null || _a === void 0 ? void 0 : _a.bootstrap) === null || _b === void 0 ? void 0 : _b.liveviews) === null || _c === void 0 ? void 0 : _c.map(x => x.id);
36
+ const nvrLiveviewIds = this.ufpApi.bootstrap?.liveviews?.map(x => x.id);
37
37
  // Identify what's been removed on the NVR and remove it from the accessory as well.
38
- currentLiveviewSwitches.filter(x => { var _a; return !(nvrLiveviewIds === null || nvrLiveviewIds === void 0 ? void 0 : nvrLiveviewIds.includes((_a = x.subtype) !== null && _a !== void 0 ? _a : "")); }).map(x => this.accessory.removeService(x));
38
+ currentLiveviewSwitches.filter(x => !nvrLiveviewIds?.includes(x.subtype ?? "")).map(x => this.accessory.removeService(x));
39
39
  // Identify what needs to be added to HomeKit that isn't already there, and add them.
40
- this.addLiveviewSwitch((_d = nvrLiveviewIds === null || nvrLiveviewIds === void 0 ? void 0 : nvrLiveviewIds.filter(x => !currentLiveviewSwitches.filter(liveviewSwitch => liveviewSwitch.subtype === x).length)) !== null && _d !== void 0 ? _d : []);
40
+ this.addLiveviewSwitch(nvrLiveviewIds?.filter(x => !currentLiveviewSwitches.filter(liveviewSwitch => liveviewSwitch.subtype === x).length) ?? []);
41
41
  // Finally, reflect the state of the liveview that's currently enabled.
42
42
  // Loop through the list of services on our viewer accessory and sync the liveview switches.
43
43
  this.updateLiveviewSwitchState(configureHandlers);
@@ -62,24 +62,24 @@ class ProtectViewer extends protect_accessory_1.ProtectAccessory {
62
62
  }
63
63
  // Configure the state and handlers of a liveview switch.
64
64
  configureLiveviewSwitch(switchService, configureHandlers = true) {
65
- var _a;
66
65
  // If we're configuring a switch for the first time, we add our respective handlers.
67
66
  if (configureHandlers) {
68
67
  // Turn the liveview switch on or off.
69
- (_a = switchService.getCharacteristic(this.hap.Characteristic.On)) === null || _a === void 0 ? void 0 : _a.onGet(() => {
68
+ switchService.getCharacteristic(this.hap.Characteristic.On)
69
+ ?.onGet(() => {
70
70
  return this.getLiveviewSwitchState(switchService);
71
- }).onSet((value) => {
71
+ })
72
+ .onSet((value) => {
72
73
  return this.setLiveviewSwitchState(switchService, value);
73
74
  });
74
75
  }
75
76
  // Set the state to reflect Protect.
76
- switchService.updateCharacteristic(this.hap.Characteristic.On, switchService.subtype === this.accessory.context.device.liveview);
77
+ switchService.updateCharacteristic(this.hap.Characteristic.On, switchService.subtype === this.ufp.liveview);
77
78
  return true;
78
79
  }
79
80
  // Return the current state of the liveview switch.
80
81
  getLiveviewSwitchState(switchService) {
81
- return (this.accessory.context.device.liveview !== null) &&
82
- (this.accessory.context.device.liveview === switchService.subtype);
82
+ return (this.ufp.liveview !== null) && (this.ufp.liveview === switchService.subtype);
83
83
  }
84
84
  // Set the current state of the liveview switch.
85
85
  async setLiveviewSwitchState(switchService, value) {
@@ -87,21 +87,20 @@ class ProtectViewer extends protect_accessory_1.ProtectAccessory {
87
87
  const newDevice = await this.setViewer(viewState);
88
88
  if (!newDevice) {
89
89
  if (viewState) {
90
- this.log.error("%s: Unable to set the liveview to: %s.", this.name(), switchService.displayName);
90
+ this.log.error("Unable to set the liveview to: %s.", switchService.displayName);
91
91
  }
92
92
  else {
93
- this.log.error("%s: Unable to clear the liveview.", this.name());
93
+ this.log.error("Unable to clear the liveview.");
94
94
  }
95
95
  return;
96
96
  }
97
97
  // Set the context to our updated device configuration.
98
- this.accessory.context.device = newDevice;
98
+ this.ufp = newDevice;
99
99
  // Update all the other liveview switches.
100
100
  this.updateLiveviewSwitchState();
101
101
  }
102
102
  // Add liveview switches to HomeKit for viewer devices.
103
103
  addLiveviewSwitch(newLiveviewIds) {
104
- var _a, _b, _c, _d;
105
104
  // Loop through the list of liveview identifiers and add them to HomeKit as switches.
106
105
  for (const liveviewId of newLiveviewIds) {
107
106
  // Empty or invalid liveview identifier.
@@ -109,11 +108,11 @@ class ProtectViewer extends protect_accessory_1.ProtectAccessory {
109
108
  continue;
110
109
  }
111
110
  // Retrieve the name assigned to this liveview.
112
- const liveviewName = (_d = (_c = (_b = (_a = this.nvrApi) === null || _a === void 0 ? void 0 : _a.bootstrap) === null || _b === void 0 ? void 0 : _b.liveviews) === null || _c === void 0 ? void 0 : _c.find(x => x.id === liveviewId)) === null || _d === void 0 ? void 0 : _d.name;
111
+ const liveviewName = this.ufpApi.bootstrap?.liveviews?.find(x => x.id === liveviewId)?.name;
113
112
  // Grab the switch service associated with this liveview.
114
113
  const switchService = new this.hap.Service.Switch(liveviewName, liveviewId);
115
114
  if (!switchService) {
116
- this.log.error("%s: Unable to add liveview switch for %s.", this.name(), liveviewName);
115
+ this.log.error("Unable to add liveview switch for %s.", liveviewName);
117
116
  continue;
118
117
  }
119
118
  this.accessory.addService(switchService);
@@ -123,48 +122,43 @@ class ProtectViewer extends protect_accessory_1.ProtectAccessory {
123
122
  }
124
123
  // Set the liveview on a viewer device in UniFi Protect.
125
124
  async setViewer(newLiveview) {
126
- var _a, _b, _c, _d;
127
125
  // Set the liveview.
128
- const newDevice = (await this.nvr.nvrApi.updateViewer(this.accessory.context.device, { liveview: newLiveview }));
126
+ const newDevice = (await this.nvr.ufpApi.updateDevice(this.ufp, { liveview: newLiveview }));
129
127
  // Find the liveview name for MQTT.
130
- const liveview = (_c = (_b = (_a = this.nvrApi) === null || _a === void 0 ? void 0 : _a.bootstrap) === null || _b === void 0 ? void 0 : _b.liveviews) === null || _c === void 0 ? void 0 : _c.find(x => x.id === newLiveview);
128
+ const liveview = this.ufpApi.bootstrap?.liveviews?.find(x => x.id === newLiveview);
131
129
  // Publish an MQTT event.
132
130
  if (liveview) {
133
- (_d = this.nvr.mqtt) === null || _d === void 0 ? void 0 : _d.publish(this.accessory, "liveview", liveview.name);
131
+ this.nvr.mqtt?.publish(this.accessory, "liveview", liveview.name);
134
132
  }
135
133
  return newDevice;
136
134
  }
137
135
  // Configure MQTT capabilities of this viewer.
138
136
  configureMqtt() {
139
- var _a, _b;
140
137
  // Trigger a motion event in MQTT, if requested to do so.
141
- (_a = this.nvr.mqtt) === null || _a === void 0 ? void 0 : _a.subscribe(this.accessory, "liveview/set", (message) => {
142
- var _a, _b, _c;
138
+ this.nvr.mqtt?.subscribe(this.accessory, "liveview/set", (message) => {
143
139
  const value = message.toString().toLowerCase();
144
- const liveview = (_c = (_b = (_a = this.nvrApi) === null || _a === void 0 ? void 0 : _a.bootstrap) === null || _b === void 0 ? void 0 : _b.liveviews) === null || _c === void 0 ? void 0 : _c.find(x => x.name.toLowerCase() === value);
140
+ const liveview = this.ufpApi.bootstrap?.liveviews?.find(x => x.name.toLowerCase() === value);
145
141
  if (!liveview) {
146
- this.log.error("%s: Unable to locate a liveview named %s.", this.name(), message.toString());
142
+ this.log.error("Unable to locate a liveview named %s.", message.toString());
147
143
  return;
148
144
  }
149
145
  (async () => {
150
146
  const newDevice = await this.setViewer(liveview.id);
151
147
  if (newDevice) {
152
- this.accessory.context.device = newDevice;
153
- this.log.info("%s: Liveview set via MQTT to %s.", this.name(), liveview.name);
148
+ this.ufp = newDevice;
149
+ this.log.info("Liveview set via MQTT to %s.", liveview.name);
154
150
  }
155
151
  else {
156
- this.log.error("%s: Unable to set liveview via MQTT to %s.", this.name(), message.toString());
152
+ this.log.error("Unable to set liveview via MQTT to %s.", message.toString());
157
153
  }
158
154
  })();
159
155
  });
160
156
  // Trigger a motion event in MQTT, if requested to do so.
161
- (_b = this.nvr.mqtt) === null || _b === void 0 ? void 0 : _b.subscribeGet(this.accessory, this.name(), "liveview", "Liveview", () => {
162
- var _a, _b, _c, _d;
163
- const liveview = (_c = (_b = (_a = this.nvrApi) === null || _a === void 0 ? void 0 : _a.bootstrap) === null || _b === void 0 ? void 0 : _b.liveviews) === null || _c === void 0 ? void 0 : _c.find(x => x.id === this.accessory.context.device.liveview);
164
- return (_d = liveview === null || liveview === void 0 ? void 0 : liveview.name) !== null && _d !== void 0 ? _d : "None";
157
+ this.nvr.mqtt?.subscribeGet(this.accessory, this.name, "liveview", "Liveview", () => {
158
+ const liveview = this.ufpApi.bootstrap?.liveviews?.find(x => x.id === this.ufp.liveview);
159
+ return liveview?.name ?? "None";
165
160
  });
166
161
  return true;
167
162
  }
168
163
  }
169
- exports.ProtectViewer = ProtectViewer;
170
164
  //# sourceMappingURL=protect-viewer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protect-viewer.js","sourceRoot":"","sources":["../src/protect-viewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protect-viewer.js","sourceRoot":"","sources":["../src/protect-viewer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export declare const PLUGIN_NAME = "homebridge-unifi-protect";
2
+ export declare const PLATFORM_NAME = "UniFi Protect";
3
+ export declare const PROTECT_API_ERROR_LIMIT = 10;
4
+ export declare const PROTECT_API_RETRY_INTERVAL = 300;
5
+ export declare const PROTECT_API_TIMEOUT = 3.5;
6
+ export declare const PROTECT_CONTROLLER_REFRESH_INTERVAL = 120;
7
+ export declare const PROTECT_FFMPEG_AUDIO_FILTER_FFTNR = 90;
8
+ export declare const PROTECT_FFMPEG_AUDIO_FILTER_HIGHPASS = 200;
9
+ export declare const PROTECT_FFMPEG_AUDIO_FILTER_LOWPASS = 1000;
10
+ export declare const PROTECT_FFMPEG_OPTIONS: never[];
11
+ export declare const PROTECT_HOMEKIT_IDR_INTERVAL = 4;
12
+ export declare const PROTECT_HKSV_SEGMENT_LENGTH = 4000;
13
+ export declare const PROTECT_HKSV_TIMESHIFT_BUFFER_MAXLENGTH: number;
14
+ export declare const PROTECT_HKSV_SEGMENT_RESOLUTION = 100;
15
+ export declare const PROTECT_LOGIN_REFRESH_INTERVAL = 1800;
16
+ export declare const PROTECT_MOTION_DURATION = 10;
17
+ export declare const PROTECT_MQTT_RECONNECT_INTERVAL = 60;
18
+ export declare const PROTECT_MQTT_TOPIC = "unifi/protect";
19
+ export declare const PROTECT_RING_DURATION = 3;
20
+ export declare const PROTECT_SNAPSHOT_CACHE_MAXAGE = 90;
21
+ export declare const PROTECT_SNAPSHOT_CACHE_REFRESH_INTERVAL = 59;
22
+ export declare const PROTECT_TWOWAY_HEARTBEAT_INTERVAL = 3;
package/dist/settings.js CHANGED
@@ -1,54 +1,49 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PROTECT_HKSV_BUFFER_LENGTH = exports.PROTECT_HKSV_SEGMENT_LENGTH = exports.PROTECT_HKSV_SEGMENT_RESOLUTION = exports.PROTECT_TWOWAY_HEARTBEAT_INTERVAL = exports.PROTECT_RING_DURATION = exports.PROTECT_NVR_UNIFIOS_REFRESH_INTERVAL = exports.PROTECT_MQTT_TOPIC = exports.PROTECT_MQTT_RECONNECT_INTERVAL = exports.PROTECT_MOTION_DURATION = exports.PROTECT_LOGIN_REFRESH_INTERVAL = exports.PROTECT_HOMEKIT_IDR_INTERVAL = exports.PROTECT_FFMPEG_OPTIONS = exports.PROTECT_FFMPEG_AUDIO_FILTER_LOWPASS = exports.PROTECT_FFMPEG_AUDIO_FILTER_HIGHPASS = exports.PROTECT_FFMPEG_AUDIO_FILTER_FFTNR = exports.PROTECT_EVENTS_HEARTBEAT_INTERVAL = exports.PROTECT_API_TIMEOUT = exports.PROTECT_API_RETRY_INTERVAL = exports.PROTECT_API_ERROR_LIMIT = exports.PLATFORM_NAME = exports.PLUGIN_NAME = void 0;
4
- /* Copyright(C) 2017-2022, HJD (https://github.com/hjdhjd). All rights reserved.
1
+ /* Copyright(C) 2022-2023, HJD (https://github.com/hjdhjd). All rights reserved.
5
2
  *
6
3
  * settings.ts: Settings and constants for homebridge-unifi-protect.
7
4
  */
8
5
  // The name of our plugin.
9
- exports.PLUGIN_NAME = "homebridge-unifi-protect";
6
+ export const PLUGIN_NAME = "homebridge-unifi-protect";
10
7
  // The platform the plugin creates.
11
- exports.PLATFORM_NAME = "UniFi Protect";
8
+ export const PLATFORM_NAME = "UniFi Protect";
12
9
  // Number of API errors to accept before we implement backoff so we don't slam a Protect controller.
13
- exports.PROTECT_API_ERROR_LIMIT = 10;
10
+ export const PROTECT_API_ERROR_LIMIT = 10;
14
11
  // Interval, in seconds, to wait before trying to access the API again once we've hit the PROTECT_API_ERROR_LIMIT threshold.
15
- exports.PROTECT_API_RETRY_INTERVAL = 300;
12
+ export const PROTECT_API_RETRY_INTERVAL = 300;
16
13
  // Protect API response timeout, in seconds. This should never be greater than 5 seconds.
17
- exports.PROTECT_API_TIMEOUT = 3.5;
18
- // Heartbeat interval, in seconds, for the realtime Protect API on UniFI OS devices.
19
- // UniFi OS expects to hear from us every 15 seconds.
20
- exports.PROTECT_EVENTS_HEARTBEAT_INTERVAL = 10;
14
+ export const PROTECT_API_TIMEOUT = 3.5;
15
+ // How often, in seconds, should we check Protect controllers for new or removed devices.
16
+ export const PROTECT_CONTROLLER_REFRESH_INTERVAL = 120;
21
17
  // FFmpeg afftdn audio filter defaults - this setting uses FFTs to reduce noise in an audio signal by the number of decibels below.
22
- exports.PROTECT_FFMPEG_AUDIO_FILTER_FFTNR = 90;
18
+ export const PROTECT_FFMPEG_AUDIO_FILTER_FFTNR = 90;
23
19
  // FFmpeg highpass audio filter defaults - this setting attenuates (eliminates) frequencies below the value.
24
- exports.PROTECT_FFMPEG_AUDIO_FILTER_HIGHPASS = 200;
20
+ export const PROTECT_FFMPEG_AUDIO_FILTER_HIGHPASS = 200;
25
21
  // FFmpeg lowpass audio filter defaults - this setting attenuates (eliminates) frequencies above the value.
26
- exports.PROTECT_FFMPEG_AUDIO_FILTER_LOWPASS = 1000;
22
+ export const PROTECT_FFMPEG_AUDIO_FILTER_LOWPASS = 1000;
27
23
  // Magic incantantion to further streamline FFmpeg for Protect.
28
- exports.PROTECT_FFMPEG_OPTIONS = [];
24
+ export const PROTECT_FFMPEG_OPTIONS = [];
29
25
  // HomeKit prefers a video streaming I-frame interval of 4 seconds.
30
- exports.PROTECT_HOMEKIT_IDR_INTERVAL = 4;
26
+ export const PROTECT_HOMEKIT_IDR_INTERVAL = 4;
27
+ // HomeKit Secure Video segment length, in milliseconds. HomeKit only supports this value currently.
28
+ export const PROTECT_HKSV_SEGMENT_LENGTH = 4000;
29
+ // HomeKit Secure Video timeshift buffer default length, in milliseconds. This defines how far back in time we can look when we see a motion event.
30
+ export const PROTECT_HKSV_TIMESHIFT_BUFFER_MAXLENGTH = PROTECT_HKSV_SEGMENT_LENGTH * 2;
31
+ // HomeKit Secure Video segment resolution, in milliseconds. This defines the resolution of our buffer. It should never be less than 100ms or greater than 1500ms.
32
+ export const PROTECT_HKSV_SEGMENT_RESOLUTION = 100;
31
33
  // How often, in seconds, should we refresh our Protect login credentials.
32
- exports.PROTECT_LOGIN_REFRESH_INTERVAL = 1800;
34
+ export const PROTECT_LOGIN_REFRESH_INTERVAL = 1800;
33
35
  // Default duration, in seconds, of motion events. Setting this too low will potentially cause a lot of notification spam.
34
- exports.PROTECT_MOTION_DURATION = 10;
36
+ export const PROTECT_MOTION_DURATION = 10;
35
37
  // How often, in seconds, should we try to reconnect with an MQTT broker, if we have one configured.
36
- exports.PROTECT_MQTT_RECONNECT_INTERVAL = 60;
38
+ export const PROTECT_MQTT_RECONNECT_INTERVAL = 60;
37
39
  // Default MQTT topic to use when publishing events. This is in the form of: unifi/protect/camera/event
38
- exports.PROTECT_MQTT_TOPIC = "unifi/protect";
39
- // How often, in seconds, should we check Protect controllers for new or removed devices.
40
- // This will NOT impact motion or doorbell event detection on UniFi OS devices.
41
- exports.PROTECT_NVR_UNIFIOS_REFRESH_INTERVAL = 10;
40
+ export const PROTECT_MQTT_TOPIC = "unifi/protect";
42
41
  // Default duration, in seconds, of ring events.
43
- exports.PROTECT_RING_DURATION = 3;
44
- // How often, in seconds, should we heartbeat FFmpeg in two-way audio sessions. This should be less than 5 seconds, which is
45
- // FFmpeg's input timeout interval.
46
- exports.PROTECT_TWOWAY_HEARTBEAT_INTERVAL = 3;
47
- // HomeKit Secure Video segment resolution, in milliseconds. This defines the resolution of our buffer. It should never be
48
- // less than 100ms or greater than 1500ms.
49
- exports.PROTECT_HKSV_SEGMENT_RESOLUTION = 200;
50
- // HomeKit Secure Video segment length, in milliseconds. HomeKit only supports this value currently.
51
- exports.PROTECT_HKSV_SEGMENT_LENGTH = 4000;
52
- // HomeKit Secure Video buffer length, in milliseconds. This defines how far back in time we can look when we see a motion event.
53
- exports.PROTECT_HKSV_BUFFER_LENGTH = exports.PROTECT_HKSV_SEGMENT_LENGTH * 2;
42
+ export const PROTECT_RING_DURATION = 3;
43
+ // Maximum age of a snapshot in seconds.
44
+ export const PROTECT_SNAPSHOT_CACHE_MAXAGE = 90;
45
+ // Snapshot cache refresh interval in seconds.
46
+ export const PROTECT_SNAPSHOT_CACHE_REFRESH_INTERVAL = 59;
47
+ // How often, in seconds, should we heartbeat FFmpeg in two-way audio sessions. This should be less than 5 seconds, which is FFmpeg's input timeout interval.
48
+ export const PROTECT_TWOWAY_HEARTBEAT_INTERVAL = 3;
54
49
  //# sourceMappingURL=settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,0BAA0B;AACb,QAAA,WAAW,GAAG,0BAA0B,CAAC;AAEtD,mCAAmC;AACtB,QAAA,aAAa,GAAG,eAAe,CAAC;AAE7C,oGAAoG;AACvF,QAAA,uBAAuB,GAAG,EAAE,CAAC;AAE1C,4HAA4H;AAC/G,QAAA,0BAA0B,GAAG,GAAG,CAAC;AAE9C,yFAAyF;AAC5E,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAEvC,oFAAoF;AACpF,qDAAqD;AACxC,QAAA,iCAAiC,GAAG,EAAE,CAAC;AAEpD,mIAAmI;AACtH,QAAA,iCAAiC,GAAG,EAAE,CAAC;AAEpD,4GAA4G;AAC/F,QAAA,oCAAoC,GAAG,GAAG,CAAC;AAExD,2GAA2G;AAC9F,QAAA,mCAAmC,GAAG,IAAI,CAAC;AAExD,+DAA+D;AAClD,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAEzC,mEAAmE;AACtD,QAAA,4BAA4B,GAAG,CAAC,CAAC;AAE9C,0EAA0E;AAC7D,QAAA,8BAA8B,GAAG,IAAI,CAAC;AAEnD,0HAA0H;AAC7G,QAAA,uBAAuB,GAAG,EAAE,CAAC;AAE1C,oGAAoG;AACvF,QAAA,+BAA+B,GAAG,EAAE,CAAC;AAElD,uGAAuG;AAC1F,QAAA,kBAAkB,GAAG,eAAe,CAAC;AAElD,yFAAyF;AACzF,+EAA+E;AAClE,QAAA,oCAAoC,GAAG,EAAE,CAAC;AAEvD,gDAAgD;AACnC,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAEvC,4HAA4H;AAC5H,mCAAmC;AACtB,QAAA,iCAAiC,GAAG,CAAC,CAAC;AAEnD,0HAA0H;AAC1H,0CAA0C;AAC7B,QAAA,+BAA+B,GAAG,GAAG,CAAC;AAEnD,oGAAoG;AACvF,QAAA,2BAA2B,GAAG,IAAI,CAAC;AAEhD,iIAAiI;AACpH,QAAA,0BAA0B,GAAG,mCAA2B,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,0BAA0B;AAC1B,MAAM,CAAC,MAAM,WAAW,GAAG,0BAA0B,CAAC;AAEtD,mCAAmC;AACnC,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAE7C,oGAAoG;AACpG,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,4HAA4H;AAC5H,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C,yFAAyF;AACzF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,yFAAyF;AACzF,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAG,CAAC;AAEvD,mIAAmI;AACnI,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,CAAC;AAEpD,4GAA4G;AAC5G,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AAExD,2GAA2G;AAC3G,MAAM,CAAC,MAAM,mCAAmC,GAAG,IAAI,CAAC;AAExD,+DAA+D;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,mEAAmE;AACnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAE9C,oGAAoG;AACpG,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEhD,mJAAmJ;AACnJ,MAAM,CAAC,MAAM,uCAAuC,GAAG,2BAA2B,GAAG,CAAC,CAAC;AAEvF,kKAAkK;AAClK,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAEnD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAEnD,0HAA0H;AAC1H,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,oGAAoG;AACpG,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAElD,uGAAuG;AACvG,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEvC,wCAAwC;AACxC,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,uCAAuC,GAAG,EAAE,CAAC;AAE1D,6JAA6J;AAC7J,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC"}