From 839819ad568170b0af0ebe4b3323e43d976dd2e0 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Sat, 9 Mar 2024 08:38:25 -0600 Subject: [PATCH] try/except around GetServiceCapabilities call --- frigate/ptz/onvif.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/frigate/ptz/onvif.py b/frigate/ptz/onvif.py index 251e4158e..38b61c2f9 100644 --- a/frigate/ptz/onvif.py +++ b/frigate/ptz/onvif.py @@ -569,16 +569,22 @@ class OnvifController: service_capabilities_request = self.cams[camera_name][ "service_capabilities_request" ] - service_capabilities = onvif.get_service("ptz").GetServiceCapabilities( - service_capabilities_request - ) + try: + service_capabilities = onvif.get_service("ptz").GetServiceCapabilities( + service_capabilities_request + ) - logger.debug( - f"Onvif service capabilities for {camera_name}: {service_capabilities}" - ) + logger.debug( + f"Onvif service capabilities for {camera_name}: {service_capabilities}" + ) - # MoveStatus is required for autotracking - should return "true" if supported - return find_by_key(vars(service_capabilities), "MoveStatus") + # MoveStatus is required for autotracking - should return "true" if supported + return find_by_key(vars(service_capabilities), "MoveStatus") + except Exception: + logger.warning( + f"Camera {camera_name} does not support the ONVIF GetServiceCapabilities method. Autotracking will not function correctly and must be disabled in your config." + ) + return False def get_camera_status(self, camera_name: str) -> None: if camera_name not in self.cams.keys():