From 14c197ff6ca8d38c0c5457232c9ecbcf677afba2 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Tue, 26 Sep 2023 15:49:08 -0500 Subject: [PATCH] log an error if a ptz doesn't report a MoveStatus --- frigate/ptz/onvif.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frigate/ptz/onvif.py b/frigate/ptz/onvif.py index fea30f5e3..e8d792971 100644 --- a/frigate/ptz/onvif.py +++ b/frigate/ptz/onvif.py @@ -152,6 +152,8 @@ class OnvifController: status_request = ptz.create_type("GetStatus") status_request.ProfileToken = profile.token self.cams[camera_name]["status_request"] = status_request + status = ptz.GetStatus(status_request) + logger.debug(f"Onvif status config for {camera_name}: {status}") # setup existing presets try: @@ -461,6 +463,12 @@ class OnvifController: pan_tilt_status = getattr(status.MoveStatus, "PanTilt", None) zoom_status = getattr(status.MoveStatus, "Zoom", None) + if pan_tilt_status is None: + logger.error( + f"Camera {camera_name} does not support the ONVIF GetStatus method. Autotracking will not function correctly and must be disabled in your config." + ) + return + if pan_tilt_status == "IDLE" and (zoom_status is None or zoom_status == "IDLE"): self.cams[camera_name]["active"] = False if not self.ptz_metrics[camera_name]["ptz_stopped"].is_set():