From fc1a69c51e51f6898698978bfa9c92b74faae59c Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Mon, 16 Dec 2024 09:27:52 -0600 Subject: [PATCH] don't apply max severity when alerts/detections are disabled --- frigate/events/maintainer.py | 6 ++++-- frigate/track/tracked_object.py | 25 +++++++++++++++++-------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/frigate/events/maintainer.py b/frigate/events/maintainer.py index 68e7432ab..4ea2e5f4f 100644 --- a/frigate/events/maintainer.py +++ b/frigate/events/maintainer.py @@ -184,7 +184,7 @@ class EventProcessor(threading.Thread): ) # keep these from being set back to false because the event - # may have started while recordings and snapshots were enabled + # may have started while recordings/snapshots/alerts/detections were enabled # this would be an issue for long running events if self.events_in_process[event_data["id"]]["has_clip"]: event_data["has_clip"] = True @@ -199,7 +199,9 @@ class EventProcessor(threading.Thread): Event.end_time: end_time, Event.zones: list(event_data["entered_zones"]), Event.thumbnail: event_data["thumbnail"], - Event.has_clip: event_data["has_clip"], + Event.has_clip: event_data["has_clip"] + if event_data.get("max_severity") + else False, Event.has_snapshot: event_data["has_snapshot"], Event.model_hash: first_detector.model.model_hash, Event.model_type: first_detector.model.model_type, diff --git a/frigate/track/tracked_object.py b/frigate/track/tracked_object.py index 3280965da..f717d2722 100644 --- a/frigate/track/tracked_object.py +++ b/frigate/track/tracked_object.py @@ -64,18 +64,27 @@ class TrackedObject: def max_severity(self) -> Optional[str]: review_config = self.camera_config.review - if self.obj_data["label"] in review_config.alerts.labels and ( - not review_config.alerts.required_zones - or set(self.entered_zones) & set(review_config.alerts.required_zones) + if ( + self.camera_config.review.alerts.enabled + and self.obj_data["label"] in review_config.alerts.labels + and ( + not review_config.alerts.required_zones + or set(self.entered_zones) & set(review_config.alerts.required_zones) + ) ): return SeverityEnum.alert if ( - not review_config.detections.labels - or self.obj_data["label"] in review_config.detections.labels - ) and ( - not review_config.detections.required_zones - or set(self.entered_zones) & set(review_config.detections.required_zones) + self.camera_config.review.detections.enabled + and ( + not review_config.detections.labels + or self.obj_data["label"] in review_config.detections.labels + ) + and ( + not review_config.detections.required_zones + or set(self.entered_zones) + & set(review_config.detections.required_zones) + ) ): return SeverityEnum.detection