From 421392c66124ce269750ba31829410738aaacaa3 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Wed, 14 Feb 2024 22:16:16 -0600 Subject: [PATCH] better handle cases when zooming is disabled --- frigate/ptz/onvif.py | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/frigate/ptz/onvif.py b/frigate/ptz/onvif.py index 94e80d550..c4f0fbc01 100644 --- a/frigate/ptz/onvif.py +++ b/frigate/ptz/onvif.py @@ -191,17 +191,15 @@ class OnvifController: move_request.Translation.Zoom.space = ptz_config["Spaces"][ "RelativeZoomTranslationSpace" ][zoom_space_id]["URI"] + else: + move_request.Translation.Zoom = [] except Exception: - if ( - self.config.cameras[camera_name].onvif.autotracking.zooming - == ZoomingModeEnum.relative - ): - self.config.cameras[ - camera_name - ].onvif.autotracking.zooming = ZoomingModeEnum.disabled - logger.warning( - f"Disabling autotracking zooming for {camera_name}: Relative zoom not supported" - ) + self.config.cameras[ + camera_name + ].onvif.autotracking.zooming = ZoomingModeEnum.disabled + logger.warning( + f"Disabling autotracking zooming for {camera_name}: Relative zoom not supported" + ) if move_request.Speed is None: move_request.Speed = configs.DefaultPTZSpeed if configs else None @@ -390,7 +388,11 @@ class OnvifController: move_request.Translation.PanTilt.x = pan move_request.Translation.PanTilt.y = tilt - if "zoom-r" in self.cams[camera_name]["features"]: + if ( + "zoom-r" in self.cams[camera_name]["features"] + and self.config.cameras[camera_name].onvif.autotracking.zooming + == ZoomingModeEnum.relative + ): move_request.Speed = { "PanTilt": { "x": speed, @@ -406,7 +408,11 @@ class OnvifController: move_request.Translation.PanTilt.x = 0 move_request.Translation.PanTilt.y = 0 - if "zoom-r" in self.cams[camera_name]["features"]: + if ( + "zoom-r" in self.cams[camera_name]["features"] + and self.config.cameras[camera_name].onvif.autotracking.zooming + == ZoomingModeEnum.relative + ): move_request.Translation.Zoom.x = 0 self.cams[camera_name]["active"] = False