homebridge-unifi-protect 6.4.4 → 6.5.1

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.
@@ -44,8 +44,8 @@ export declare class ProtectCamera extends ProtectDevice {
44
44
  getBitrate(channelId: number): number;
45
45
  setBitrate(channelId: number, value: number): Promise<boolean>;
46
46
  private findRtspEntry;
47
- findRtsp(width: number, height: number, camera?: ProtectCameraConfig | null, address?: string, rtspEntries?: RtspEntry[]): RtspEntry | null;
48
- findRecordingRtsp(width: number, height: number, camera?: ProtectCameraConfig | null, rtspEntries?: RtspEntry[]): RtspEntry | null;
47
+ findRtsp(width: number, height: number, address?: string, rtspEntries?: RtspEntry[]): RtspEntry | null;
48
+ findRecordingRtsp(width: number, height: number, rtspEntries?: RtspEntry[]): RtspEntry | null;
49
49
  private sortByResolutions;
50
50
  private getResolution;
51
51
  }
@@ -24,17 +24,17 @@ export class ProtectCamera extends ProtectDevice {
24
24
  // Configure our parent's hints.
25
25
  super.configureHints();
26
26
  // Configure our device-class specific hints.
27
- this.hints.hardwareDecoding = this.nvr.optionEnabled(this.ufp, "Video.Decode.Hardware");
28
- this.hints.hardwareTranscoding = this.nvr.optionEnabled(this.ufp, "Video.Transcode.Hardware", false);
29
- this.hints.ledStatus = this.ufp.featureFlags.hasLedStatus && this.nvr.optionEnabled(this.ufp, "Device.StatusLed", false);
30
- this.hints.logDoorbell = this.nvr.optionEnabled(this.ufp, "Log.Doorbell", false);
31
- this.hints.logHksv = this.nvr.optionEnabled(this.ufp, "Log.HKSV");
27
+ this.hints.hardwareDecoding = this.hasFeature("Video.Decode.Hardware");
28
+ this.hints.hardwareTranscoding = this.hasFeature("Video.Transcode.Hardware");
29
+ this.hints.ledStatus = this.ufp.featureFlags.hasLedStatus && this.hasFeature("Device.StatusLed");
30
+ this.hints.logDoorbell = this.hasFeature("Log.Doorbell");
31
+ this.hints.logHksv = this.hasFeature("Log.HKSV");
32
32
  this.hints.probesize = 16384;
33
- this.hints.smartDetect = this.nvr.optionEnabled(this.ufp, "Motion.SmartDetect", false);
34
- this.hints.timeshift = this.nvr.optionEnabled(this.ufp, "Video.HKSV.TimeshiftBuffer");
35
- this.hints.transcode = this.nvr.optionEnabled(this.ufp, "Video.Transcode", false);
36
- this.hints.transcodeHighLatency = this.nvr.optionEnabled(this.ufp, "Video.Transcode.HighLatency");
37
- this.hints.twoWayAudio = this.ufp.hasSpeaker && this.nvr.optionEnabled(this.ufp, "Audio") && this.nvr.optionEnabled(this.ufp, "Audio.TwoWay");
33
+ this.hints.smartDetect = this.hasFeature("Motion.SmartDetect");
34
+ this.hints.timeshift = this.hasFeature("Video.HKSV.TimeshiftBuffer");
35
+ this.hints.transcode = this.hasFeature("Video.Transcode");
36
+ this.hints.transcodeHighLatency = this.hasFeature("Video.Transcode.HighLatency");
37
+ this.hints.twoWayAudio = this.ufp.hasSpeaker && this.hasFeature("Audio") && this.hasFeature("Audio.TwoWay");
38
38
  return true;
39
39
  }
40
40
  // Configure a camera accessory for HomeKit.
@@ -65,7 +65,7 @@ export class ProtectCamera extends ProtectDevice {
65
65
  this.accessory.context.mac = this.ufp.mac;
66
66
  this.accessory.context.nvr = this.nvr.ufp.mac;
67
67
  // Inform the user if we have enabled the dynamic bitrate setting.
68
- if (this.nvr.optionEnabled(this.ufp, "Video.DynamicBitrate", false)) {
68
+ if (this.hasFeature("Video.DynamicBitrate")) {
69
69
  this.log.info("Dynamic streaming bitrate adjustment on the UniFi Protect controller enabled.");
70
70
  }
71
71
  // If the camera supports it, check to see if we have smart motion events enabled.
@@ -166,7 +166,7 @@ export class ProtectCamera extends ProtectDevice {
166
166
  // Check for object-centric contact sensors that are no longer enabled and remove them.
167
167
  for (const objectService of this.accessory.services.filter(x => x.subtype?.startsWith(ProtectReservedNames.CONTACT_MOTION_SMARTDETECT + "."))) {
168
168
  // If we have motion sensors as well as object contact sensors enabled, and we have this object type enabled on this camera, we're good here.
169
- if (this.nvr.optionEnabled(this.ufp, "Motion.SmartDetect.ObjectSensors", false)) {
169
+ if (this.hasFeature("Motion.SmartDetect.ObjectSensors")) {
170
170
  continue;
171
171
  }
172
172
  // We don't have this contact sensor enabled, remove it.
@@ -174,16 +174,17 @@ export class ProtectCamera extends ProtectDevice {
174
174
  this.log.info("Disabling smart motion contact sensor: %s.", objectService.subtype?.slice(objectService.subtype?.indexOf(".") + 1));
175
175
  }
176
176
  // Have we enabled discrete contact sensors for specific object types? If not, we're done here.
177
- if (!this.nvr.optionEnabled(this.ufp, "Motion.SmartDetect.ObjectSensors", false)) {
177
+ if (!this.hasFeature("Motion.SmartDetect.ObjectSensors")) {
178
178
  return false;
179
179
  }
180
180
  // Add individual contact sensors for each object detection type, if needed.
181
181
  for (const smartDetectType of this.ufp.featureFlags.smartDetectTypes) {
182
+ const contactName = this.accessory.displayName + " " + smartDetectType.charAt(0).toUpperCase() + smartDetectType.slice(1);
182
183
  // See if we already have this contact sensor configured.
183
184
  let contactService = this.accessory.getServiceById(this.hap.Service.ContactSensor, ProtectReservedNames.CONTACT_MOTION_SMARTDETECT + "." + smartDetectType);
184
185
  // If not, let's add it.
185
186
  if (!contactService) {
186
- contactService = new this.hap.Service.ContactSensor(this.accessory.displayName + " " + smartDetectType.charAt(0).toUpperCase() + smartDetectType.slice(1), ProtectReservedNames.CONTACT_MOTION_SMARTDETECT + "." + smartDetectType);
187
+ contactService = new this.hap.Service.ContactSensor(contactName, ProtectReservedNames.CONTACT_MOTION_SMARTDETECT + "." + smartDetectType);
187
188
  // Something went wrong, we're done here.
188
189
  if (!contactService) {
189
190
  this.log.error("Unable to add smart motion contact sensor for %s detection.", smartDetectType);
@@ -193,6 +194,8 @@ export class ProtectCamera extends ProtectDevice {
193
194
  this.accessory.addService(contactService);
194
195
  }
195
196
  // Initialize the sensor.
197
+ contactService.addOptionalCharacteristic(this.hap.Characteristic.ConfiguredName);
198
+ contactService.updateCharacteristic(this.hap.Characteristic.ConfiguredName, contactName);
196
199
  contactService.updateCharacteristic(this.hap.Characteristic.ContactSensorState, false);
197
200
  }
198
201
  this.log.info("Smart motion contact sensor%s enabled: %s.", this.ufp.featureFlags.smartDetectTypes.length > 1 ? "s" : "", this.ufp.featureFlags.smartDetectTypes.join(", "));
@@ -205,7 +208,7 @@ export class ProtectCamera extends ProtectDevice {
205
208
  // See if we have a doorbell service configured.
206
209
  let doorbellService = this.accessory.getService(this.hap.Service.Doorbell);
207
210
  // Doorbell switches are disabled by default and primarily exist for automation purposes.
208
- if (!this.nvr.optionEnabled(this.ufp, "Doorbell.Trigger", false)) {
211
+ if (!this.hasFeature("Doorbell.Trigger")) {
209
212
  if (triggerService) {
210
213
  this.accessory.removeService(triggerService);
211
214
  }
@@ -229,9 +232,10 @@ export class ProtectCamera extends ProtectDevice {
229
232
  return false;
230
233
  }
231
234
  }
235
+ const triggerName = this.accessory.displayName + " Doorbell Trigger";
232
236
  // Add the switch to the camera, if needed.
233
237
  if (!triggerService) {
234
- triggerService = new this.hap.Service.Switch(this.accessory.displayName + " Doorbell Trigger", ProtectReservedNames.SWITCH_DOORBELL_TRIGGER);
238
+ triggerService = new this.hap.Service.Switch(triggerName, ProtectReservedNames.SWITCH_DOORBELL_TRIGGER);
235
239
  if (!triggerService) {
236
240
  this.log.error("Unable to add the doorbell trigger.");
237
241
  return false;
@@ -260,6 +264,8 @@ export class ProtectCamera extends ProtectDevice {
260
264
  }
261
265
  });
262
266
  // Initialize the switch.
267
+ triggerService.addOptionalCharacteristic(this.hap.Characteristic.ConfiguredName);
268
+ triggerService.updateCharacteristic(this.hap.Characteristic.ConfiguredName, triggerName);
263
269
  triggerService.updateCharacteristic(this.hap.Characteristic.On, false);
264
270
  this.log.info("Enabling doorbell automation trigger.");
265
271
  return true;
@@ -330,7 +336,7 @@ export class ProtectCamera extends ProtectDevice {
330
336
  // Enable RTSP on the camera if needed and get the list of RTSP streams we have ultimately configured.
331
337
  this.ufp = await this.nvr.ufpApi.enableRtsp(this.ufp) ?? this.ufp;
332
338
  // Figure out which camera channels are RTSP-enabled, and user-enabled.
333
- const cameraChannels = this.ufp.channels.filter(x => x.isRtspEnabled && this.nvr.optionEnabled(this.ufp, "Video.Stream." + x.name));
339
+ const cameraChannels = this.ufp.channels.filter(x => x.isRtspEnabled && this.hasFeature("Video.Stream." + x.name));
334
340
  // Make sure we've got a HomeKit compatible IDR frame interval. If not, let's take care of that.
335
341
  let idrChannels = cameraChannels.filter(x => x.idrInterval !== PROTECT_HOMEKIT_IDR_INTERVAL);
336
342
  if (idrChannels.length) {
@@ -380,7 +386,7 @@ export class ProtectCamera extends ProtectDevice {
380
386
  continue;
381
387
  }
382
388
  // Find the closest RTSP match for this resolution.
383
- const foundRtsp = this.findRtsp(entry[0], entry[1], undefined, undefined, rtspEntries);
389
+ const foundRtsp = this.findRtsp(entry[0], entry[1], undefined, rtspEntries);
384
390
  if (!foundRtsp) {
385
391
  continue;
386
392
  }
@@ -401,15 +407,46 @@ export class ProtectCamera extends ProtectDevice {
401
407
  this.log.info("Mapping resolution: %s.", this.getResolution(entry.resolution) + " => " + entry.name);
402
408
  }
403
409
  }
404
- // Check for explicit RTSP profile preferences.
410
+ // Canary to ensure we stop once we find.
411
+ let onlyStreamFound = false;
412
+ let onlyRecordFound = false;
413
+ // Check for explicit RTSP profile preferences at the device level.
405
414
  for (const rtspProfile of ["LOW", "MEDIUM", "HIGH"]) {
406
415
  // Check to see if the user has requested a specific streaming profile for this camera.
407
- if (this.nvr.optionEnabled(this.ufp, "Video.Stream.Only." + rtspProfile, false)) {
416
+ if (this.nvr.optionEnabled(this.ufp, "Video.Stream.Only." + rtspProfile + "." + this.ufp.mac, false)) {
408
417
  this.rtspQuality.StreamingDefault = rtspProfile;
418
+ onlyStreamFound = true;
409
419
  }
410
420
  // Check to see if the user has requested a specific recording profile for this camera.
411
- if (this.nvr.optionEnabled(this.ufp, "Video.HKSV.Record.Only." + rtspProfile, false)) {
421
+ if (this.nvr.optionEnabled(this.ufp, "Video.HKSV.Record.Only." + rtspProfile + "." + this.ufp.mac, false)) {
412
422
  this.rtspQuality.RecordingDefault = rtspProfile;
423
+ onlyRecordFound = true;
424
+ }
425
+ }
426
+ // Check for explicit RTSP profile preferences at the controller level.
427
+ for (const rtspProfile of ["LOW", "MEDIUM", "HIGH"]) {
428
+ // Check to see if the user has requested a specific streaming profile for this camera.
429
+ if (!onlyStreamFound && this.nvr.optionEnabled(this.ufp, "Video.Stream.Only." + rtspProfile + "." + this.nvr.ufp.mac, false)) {
430
+ this.rtspQuality.StreamingDefault = rtspProfile;
431
+ onlyStreamFound = true;
432
+ }
433
+ // Check to see if the user has requested a specific recording profile for this camera.
434
+ if (!onlyRecordFound && this.nvr.optionEnabled(this.ufp, "Video.HKSV.Record.Only." + rtspProfile + "." + this.nvr.ufp.mac, false)) {
435
+ this.rtspQuality.RecordingDefault = rtspProfile;
436
+ onlyRecordFound = true;
437
+ }
438
+ }
439
+ // Check for explicit RTSP profile preferences globally.
440
+ for (const rtspProfile of ["LOW", "MEDIUM", "HIGH"]) {
441
+ // Check to see if the user has requested a specific streaming profile for this camera.
442
+ if (!onlyStreamFound && this.hasFeature("Video.Stream.Only." + rtspProfile)) {
443
+ this.rtspQuality.StreamingDefault = rtspProfile;
444
+ onlyStreamFound = true;
445
+ }
446
+ // Check to see if the user has requested a specific recording profile for this camera.
447
+ if (!onlyRecordFound && this.hasFeature("Video.HKSV.Record.Only." + rtspProfile)) {
448
+ this.rtspQuality.RecordingDefault = rtspProfile;
449
+ onlyRecordFound = true;
413
450
  }
414
451
  }
415
452
  // Inform the user if we've set a streaming default.
@@ -480,8 +517,7 @@ export class ProtectCamera extends ProtectDevice {
480
517
  if (this.ufp.featureFlags.hasSmartDetect && this.hints.smartDetect) {
481
518
  this.log.info("WARNING: Smart motion detection and HomeKit Secure Video provide overlapping functionality. " +
482
519
  "Only HomeKit Secure Video, when event recording is enabled in the Home app, will be used to trigger motion event notifications for this camera." +
483
- (this.nvr.optionEnabled(this.ufp, "Motion.SmartDetect.ObjectSensors", false) ?
484
- " Smart motion contact sensors will continue to function using telemetry from UniFi Protect." : ""));
520
+ (this.hasFeature("Motion.SmartDetect.ObjectSensors") ? " Smart motion contact sensors will continue to function using telemetry from UniFi Protect." : ""));
485
521
  }
486
522
  return true;
487
523
  }
@@ -490,7 +526,7 @@ export class ProtectCamera extends ProtectDevice {
490
526
  // Find the switch service, if it exists.
491
527
  let switchService = this.accessory.getServiceById(this.hap.Service.Switch, ProtectReservedNames.SWITCH_HKSV_RECORDING);
492
528
  // If we don't have HKSV or the HKSV recording switch enabled, disable it and we're done.
493
- if (!this.nvr.optionEnabled(this.ufp, "Video.HKSV.Recording.Switch", false)) {
529
+ if (!this.hasFeature("Video.HKSV.Recording.Switch")) {
494
530
  if (switchService) {
495
531
  this.accessory.removeService(switchService);
496
532
  }
@@ -498,9 +534,10 @@ export class ProtectCamera extends ProtectDevice {
498
534
  this.accessory.context.hksvRecording = true;
499
535
  return false;
500
536
  }
537
+ const switchName = this.accessory.displayName + " HKSV Recording";
501
538
  // Add the switch to the camera, if needed.
502
539
  if (!switchService) {
503
- switchService = new this.hap.Service.Switch(this.accessory.displayName + " HKSV Recording", ProtectReservedNames.SWITCH_HKSV_RECORDING);
540
+ switchService = new this.hap.Service.Switch(switchName, ProtectReservedNames.SWITCH_HKSV_RECORDING);
504
541
  if (!switchService) {
505
542
  this.log.error("Unable to add the HomeKit Secure Video recording switch.");
506
543
  return false;
@@ -520,6 +557,8 @@ export class ProtectCamera extends ProtectDevice {
520
557
  this.accessory.context.hksvRecording = value === true;
521
558
  });
522
559
  // Initialize the switch.
560
+ switchService.addOptionalCharacteristic(this.hap.Characteristic.ConfiguredName);
561
+ switchService.updateCharacteristic(this.hap.Characteristic.ConfiguredName, switchName);
523
562
  switchService.updateCharacteristic(this.hap.Characteristic.On, this.accessory.context.hksvRecording);
524
563
  this.log.info("Enabling HomeKit Secure Video recording switch.");
525
564
  return true;
@@ -529,7 +568,7 @@ export class ProtectCamera extends ProtectDevice {
529
568
  // Find the switch service, if it exists.
530
569
  let switchService = this.accessory.getServiceById(this.hap.Service.Switch, ProtectReservedNames.SWITCH_DYNAMIC_BITRATE);
531
570
  // If we don't want a dynamic bitrate switch, disable it and we're done.
532
- if (!this.nvr.optionEnabled(this.ufp, "Video.DynamicBitrate.Switch", false)) {
571
+ if (!this.hasFeature("Video.DynamicBitrate.Switch")) {
533
572
  if (switchService) {
534
573
  this.accessory.removeService(switchService);
535
574
  }
@@ -537,9 +576,10 @@ export class ProtectCamera extends ProtectDevice {
537
576
  this.accessory.context.dynamicBitrate = false;
538
577
  return false;
539
578
  }
579
+ const switchName = this.accessory.displayName + " Dynamic Bitrate";
540
580
  // Add the switch to the camera, if needed.
541
581
  if (!switchService) {
542
- switchService = new this.hap.Service.Switch(this.accessory.displayName + " Dynamic Bitrate", ProtectReservedNames.SWITCH_DYNAMIC_BITRATE);
582
+ switchService = new this.hap.Service.Switch(switchName, ProtectReservedNames.SWITCH_DYNAMIC_BITRATE);
543
583
  if (!switchService) {
544
584
  this.log.error("Unable to add the dynamic bitrate switch.");
545
585
  return false;
@@ -581,6 +621,8 @@ export class ProtectCamera extends ProtectDevice {
581
621
  this.log.info("Dynamic streaming bitrate adjustment on the UniFi Protect controller disabled.");
582
622
  });
583
623
  // Initialize the switch.
624
+ switchService.addOptionalCharacteristic(this.hap.Characteristic.ConfiguredName);
625
+ switchService.updateCharacteristic(this.hap.Characteristic.ConfiguredName, switchName);
584
626
  switchService.updateCharacteristic(this.hap.Characteristic.On, this.accessory.context.dynamicBitrate);
585
627
  this.log.info("Enabling the dynamic streaming bitrate adjustment switch.");
586
628
  return true;
@@ -594,15 +636,16 @@ export class ProtectCamera extends ProtectDevice {
594
636
  // Find the switch service, if it exists.
595
637
  let switchService = this.accessory.getServiceById(this.hap.Service.Switch, ufpRecordingSwitchType);
596
638
  // If we don't have the feature option enabled, disable the switch and we're done.
597
- if (!this.nvr.optionEnabled(this.ufp, "Nvr.Recording.Switch", false)) {
639
+ if (!this.hasFeature("Nvr.Recording.Switch")) {
598
640
  if (switchService) {
599
641
  this.accessory.removeService(switchService);
600
642
  }
601
643
  continue;
602
644
  }
645
+ const switchName = this.accessory.displayName + " UFP Recording " + ufpRecordingSetting.charAt(0).toUpperCase() + ufpRecordingSetting.slice(1);
603
646
  // Add the switch to the camera, if needed.
604
647
  if (!switchService) {
605
- switchService = new this.hap.Service.Switch(this.accessory.displayName + " UFP Recording " + ufpRecordingSetting.charAt(0).toUpperCase() + ufpRecordingSetting.slice(1), ufpRecordingSwitchType);
648
+ switchService = new this.hap.Service.Switch(switchName, ufpRecordingSwitchType);
606
649
  if (!switchService) {
607
650
  this.log.error("Unable to add the UniFi Protect recording switches.");
608
651
  continue;
@@ -648,6 +691,8 @@ export class ProtectCamera extends ProtectDevice {
648
691
  this.log.info("UniFi Protect recording mode set to %s.", ufpRecordingSetting);
649
692
  });
650
693
  // Initialize the recording switch state.
694
+ switchService.addOptionalCharacteristic(this.hap.Characteristic.ConfiguredName);
695
+ switchService.updateCharacteristic(this.hap.Characteristic.ConfiguredName, switchName);
651
696
  switchService.updateCharacteristic(this.hap.Characteristic.On, this.ufp.recordingSettings.mode === ufpRecordingSetting);
652
697
  switchesEnabled.push(ufpRecordingSetting);
653
698
  }
@@ -698,7 +743,7 @@ export class ProtectCamera extends ProtectDevice {
698
743
  updateCharacteristic(this.hap.Characteristic.CameraOperatingModeIndicator, this.ufp.ledSettings.isEnabled === true);
699
744
  }
700
745
  // Check for updates to the recording state, if we have the switches configured.
701
- if (this.nvr.optionEnabled(this.ufp, "Nvr.Recording.Switch", false)) {
746
+ if (this.hasFeature("Nvr.Recording.Switch")) {
702
747
  // Update all the switch states.
703
748
  for (const ufpRecordingSwitchType of [ProtectReservedNames.SWITCH_UFP_RECORDING_ALWAYS, ProtectReservedNames.SWITCH_UFP_RECORDING_DETECTIONS, ProtectReservedNames.SWITCH_UFP_RECORDING_NEVER]) {
704
749
  const ufpRecordingSetting = ufpRecordingSwitchType.slice(ufpRecordingSwitchType.lastIndexOf(".") + 1);
@@ -720,9 +765,8 @@ export class ProtectCamera extends ProtectDevice {
720
765
  // If we've disabled the ability to set the bitrate dynamically, silently fail. We prioritize switches over the global
721
766
  // setting here, in case the user enabled both, using the principle that the most specific setting always wins. If the
722
767
  // user has both the global setting and the switch enabled, the switch setting will take precedence.
723
- if ((!this.accessory.context.dynamicBitrate && !this.nvr.optionEnabled(this.ufp, "Video.DynamicBitrate", false)) ||
724
- (!this.accessory.context.dynamicBitrate && this.nvr.optionEnabled(this.ufp, "Video.DynamicBitrate", false) &&
725
- this.nvr.optionEnabled(this.ufp, "Video.DynamicBitrate.Switch", false))) {
768
+ if ((!this.accessory.context.dynamicBitrate && !this.hasFeature("Video.DynamicBitrate")) ||
769
+ (!this.accessory.context.dynamicBitrate && this.hasFeature("Video.DynamicBitrate") && this.hasFeature("Video.DynamicBitrate.Switch"))) {
726
770
  return true;
727
771
  }
728
772
  // Find the right channel.
@@ -748,23 +792,23 @@ export class ProtectCamera extends ProtectDevice {
748
792
  return true;
749
793
  }
750
794
  // Find an RTSP configuration for a given target resolution.
751
- findRtspEntry(width, height, camera, address, rtspEntries, defaultStream = this.rtspQuality.StreamingDefault) {
795
+ findRtspEntry(width, height, address, rtspEntries, defaultStream = this.rtspQuality.StreamingDefault) {
752
796
  // No RTSP entries to choose from, we're done.
753
797
  if (!rtspEntries || !rtspEntries.length) {
754
798
  return null;
755
799
  }
756
800
  // First, we check to see if we've set an explicit preference for the target address.
757
- if (camera && address) {
801
+ if (address) {
758
802
  // If we don't have this address cached, look it up and cache it.
759
803
  if (!this.rtspQuality[address]) {
760
804
  // Check to see if there's an explicit preference set and cache the result.
761
- if (this.nvr.optionEnabled(camera, "Video.Stream.Only.Low", false, address, true)) {
805
+ if (this.hasFeature("Video.Stream.Only.Low", address, true)) {
762
806
  this.rtspQuality[address] = "LOW";
763
807
  }
764
- else if (this.nvr.optionEnabled(camera, "Video.Stream.Only.Medium", false, address, true)) {
808
+ else if (this.hasFeature("Video.Stream.Only.Medium", address, true)) {
765
809
  this.rtspQuality[address] = "MEDIUM";
766
810
  }
767
- else if (this.nvr.optionEnabled(camera, "Video.Stream.Only.High", false, address, true)) {
811
+ else if (this.hasFeature("Video.Stream.Only.High", address, true)) {
768
812
  this.rtspQuality[address] = "HIGH";
769
813
  }
770
814
  else {
@@ -790,32 +834,22 @@ export class ProtectCamera extends ProtectDevice {
790
834
  // stream - if it's an HD quality stream request (720p+), we want to try to return something that's HD quality
791
835
  // before looking for something lower resolution.
792
836
  if ((width >= 1280) && (height >= 720)) {
793
- for (const entry of rtspEntries) {
794
- // Make sure we're looking at an HD resolution.
795
- if (entry.resolution[0] < 1280) {
796
- continue;
797
- }
798
- // Return the first one we find.
799
- return entry;
800
- }
801
- }
802
- // If we didn't request an HD resolution, or we couldn't find anything HD to use, we try to find whatever we
803
- // can find that's close.
804
- for (const entry of rtspEntries) {
805
- if (width >= entry.resolution[0]) {
837
+ const entry = rtspEntries.find(x => x.resolution[0] >= 1280);
838
+ if (entry) {
806
839
  return entry;
807
840
  }
808
841
  }
809
- // We couldn't find a close match, return the lowest resolution we found.
810
- return rtspEntries[rtspEntries.length - 1];
842
+ // If we didn't request an HD resolution, or we couldn't find anything HD to use, we try to find the highest resolution we can find
843
+ // that's at least our requested width or larger. If we can't find anything that matches, we return the lowest resolution we have available.
844
+ return rtspEntries.find(x => width >= x.resolution[0]) ?? rtspEntries[rtspEntries.length - 1];
811
845
  }
812
846
  // Find a streaming RTSP configuration for a given target resolution.
813
- findRtsp(width, height, camera = null, address = "", rtspEntries = this.rtspEntries) {
814
- return this.findRtspEntry(width, height, camera, address, rtspEntries);
847
+ findRtsp(width, height, address = "", rtspEntries = this.rtspEntries) {
848
+ return this.findRtspEntry(width, height, address, rtspEntries);
815
849
  }
816
850
  // Find a recording RTSP configuration for a given target resolution.
817
- findRecordingRtsp(width, height, camera = null, rtspEntries = this.rtspEntries) {
818
- return this.findRtspEntry(width, height, camera, "", rtspEntries, this.rtspQuality.RecordingDefault);
851
+ findRecordingRtsp(width, height, rtspEntries = this.rtspEntries) {
852
+ return this.findRtspEntry(width, height, "", rtspEntries, this.rtspQuality.RecordingDefault);
819
853
  }
820
854
  // Utility function for sorting by resolution.
821
855
  sortByResolutions(a, b) {
@@ -1 +1 @@
1
- {"version":3,"file":"protect-camera.js","sourceRoot":"","sources":["../src/protect-camera.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protect-camera.js","sourceRoot":"","sources":["../src/protect-camera.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ export declare abstract class ProtectDevice extends ProtectBase {
45
45
  private configureMotionSwitch;
46
46
  private configureMotionTrigger;
47
47
  private configureMqttMotionTrigger;
48
- isOptionEnabled(option: string, defaultReturnValue?: boolean, address?: string, addressOnly?: boolean): boolean;
48
+ hasFeature(option: string, address?: string, addressOnly?: boolean): boolean;
49
49
  isReservedName(name: string | undefined): boolean;
50
50
  get name(): string;
51
51
  }