Skip to content

Commit

Permalink
handle onvif connection failure in autotrack init (blakeblackshear#8838)
Browse files Browse the repository at this point in the history
* handle onvif connection failure in autotrack init

* remove whitespace and add consistency

* error message consistency

* more consistency
  • Loading branch information
hawkeye217 committed Dec 3, 2023
1 parent f27025a commit cc5297f
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions frigate/ptz/autotrack.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,32 +238,40 @@ def _autotracker_setup(self, camera_config, camera):
self.move_queues[camera] = queue.Queue()
self.move_queue_locks[camera] = threading.Lock()

# handle onvif constructor failing due to no connection
if camera not in self.onvif.cams:
logger.warning(
f"Disabling autotracking for {camera}: onvif connection failed"
)
camera_config.onvif.autotracking.enabled = False
self.ptz_metrics[camera]["ptz_autotracker_enabled"].value = False
return

if not self.onvif.cams[camera]["init"]:
if not self.onvif._init_onvif(camera):
logger.warning(f"Unable to initialize onvif for {camera}")
logger.warning(
f"Disabling autotracking for {camera}: Unable to initialize onvif"
)
camera_config.onvif.autotracking.enabled = False
self.ptz_metrics[camera]["ptz_autotracker_enabled"].value = False

return

if "pt-r-fov" not in self.onvif.cams[camera]["features"]:
camera_config.onvif.autotracking.enabled = False
self.ptz_metrics[camera]["ptz_autotracker_enabled"].value = False
logger.warning(
f"Disabling autotracking for {camera}: FOV relative movement not supported"
)

camera_config.onvif.autotracking.enabled = False
self.ptz_metrics[camera]["ptz_autotracker_enabled"].value = False
return

movestatus_supported = self.onvif.get_service_capabilities(camera)

if movestatus_supported is None or movestatus_supported.lower() != "true":
camera_config.onvif.autotracking.enabled = False
self.ptz_metrics[camera]["ptz_autotracker_enabled"].value = False
logger.warning(
f"Disabling autotracking for {camera}: ONVIF MoveStatus not supported"
)

camera_config.onvif.autotracking.enabled = False
self.ptz_metrics[camera]["ptz_autotracker_enabled"].value = False
return

if self.onvif.cams[camera]["init"]:
Expand Down

0 comments on commit cc5297f

Please sign in to comment.