From aacb8c84e00e860333fd299f503e3236588a6e4b Mon Sep 17 00:00:00 2001 From: stephendb Date: Tue, 9 Jul 2024 14:00:47 -0500 Subject: [PATCH] Bug fix for ONVIF cameras, adjust_time parameter added (#12352) * adds adjust_time which allows users to fix an issue with onvif authentication where time is not syncrhonized * updated adjust_time to ignore_time_mismatch to make it clearer what this option does * adds ignore_time_mismatch to the reference.md and adds a line about the security risk this can introduce as well as the recommendation to setup NTP for both ends. * fix format error * happy now linter? * white space * Update docs/docs/configuration/reference.md Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> --------- Co-authored-by: Stephen Butler Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> --- docs/docs/configuration/reference.md | 3 +++ frigate/config.py | 4 ++++ frigate/ptz/onvif.py | 1 + 3 files changed, 8 insertions(+) diff --git a/docs/docs/configuration/reference.md b/docs/docs/configuration/reference.md index 8b51de148..93313d6c0 100644 --- a/docs/docs/configuration/reference.md +++ b/docs/docs/configuration/reference.md @@ -613,6 +613,9 @@ cameras: user: admin # Optional: password for login. password: admin + # Optional: Ignores time synchronization mismatches between the camera and the server during authentication. + # Using NTP on both ends is recommended and this should only be set to True in a "safe" environment due to the security risk it represents. + ignore_time_mismatch: False # Optional: PTZ camera object autotracking. Keeps a moving object in # the center of the frame by automatically moving the PTZ camera. autotracking: diff --git a/frigate/config.py b/frigate/config.py index 0e2d2b6cd..bfa00f601 100644 --- a/frigate/config.py +++ b/frigate/config.py @@ -279,6 +279,10 @@ class OnvifConfig(FrigateBaseModel): default_factory=PtzAutotrackConfig, title="PTZ auto tracking config.", ) + ignore_time_mismatch: bool = Field( + default=False, + title="Onvif Ignore Time Synchronization Mismatch Between Camera and Server", + ) class RetainModeEnum(str, Enum): diff --git a/frigate/ptz/onvif.py b/frigate/ptz/onvif.py index 2b9f00b74..39bdd6978 100644 --- a/frigate/ptz/onvif.py +++ b/frigate/ptz/onvif.py @@ -54,6 +54,7 @@ class OnvifController: wsdl_dir=str( Path(find_spec("onvif").origin).parent / "wsdl" ).replace("dist-packages/onvif", "site-packages"), + adjust_time=cam.onvif.ignore_time_mismatch, ), "init": False, "active": False,