From abba6d25731afba8ab97acbbfbe9929649e73284 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Mon, 16 Dec 2024 10:24:45 -0600 Subject: [PATCH] add notification config at camera level --- frigate/config/__init__.py | 1 - frigate/config/camera/camera.py | 4 ++++ frigate/config/{ => camera}/notification.py | 2 +- frigate/config/config.py | 8 ++++++-- 4 files changed, 11 insertions(+), 4 deletions(-) rename frigate/config/{ => camera}/notification.py (92%) diff --git a/frigate/config/__init__.py b/frigate/config/__init__.py index 1af2f08fe..f84039997 100644 --- a/frigate/config/__init__.py +++ b/frigate/config/__init__.py @@ -7,7 +7,6 @@ from .config import * # noqa: F403 from .database import * # noqa: F403 from .logger import * # noqa: F403 from .mqtt import * # noqa: F403 -from .notification import * # noqa: F403 from .proxy import * # noqa: F403 from .semantic_search import * # noqa: F403 from .telemetry import * # noqa: F403 diff --git a/frigate/config/camera/camera.py b/frigate/config/camera/camera.py index 37e5f408e..77ef0b9ec 100644 --- a/frigate/config/camera/camera.py +++ b/frigate/config/camera/camera.py @@ -25,6 +25,7 @@ from .genai import GenAICameraConfig from .live import CameraLiveConfig from .motion import MotionConfig from .mqtt import CameraMqttConfig +from .notification import NotificationConfig from .objects import ObjectConfig from .onvif import OnvifConfig from .record import RecordConfig @@ -85,6 +86,9 @@ class CameraConfig(FrigateBaseModel): mqtt: CameraMqttConfig = Field( default_factory=CameraMqttConfig, title="MQTT configuration." ) + notifications: NotificationConfig = Field( + default_factory=NotificationConfig, title="Notifications configuration." + ) onvif: OnvifConfig = Field( default_factory=OnvifConfig, title="Camera Onvif Configuration." ) diff --git a/frigate/config/notification.py b/frigate/config/camera/notification.py similarity index 92% rename from frigate/config/notification.py rename to frigate/config/camera/notification.py index 0ffebff3c..79355b8ae 100644 --- a/frigate/config/notification.py +++ b/frigate/config/camera/notification.py @@ -2,7 +2,7 @@ from typing import Optional from pydantic import Field -from .base import FrigateBaseModel +from ..base import FrigateBaseModel __all__ = ["NotificationConfig"] diff --git a/frigate/config/config.py b/frigate/config/config.py index 770588b93..1055a1489 100644 --- a/frigate/config/config.py +++ b/frigate/config/config.py @@ -45,6 +45,7 @@ from .camera.detect import DetectConfig from .camera.ffmpeg import FfmpegConfig from .camera.genai import GenAIConfig from .camera.motion import MotionConfig +from .camera.notification import NotificationConfig from .camera.objects import FilterConfig, ObjectConfig from .camera.record import RecordConfig, RetainModeEnum from .camera.review import ReviewConfig @@ -55,7 +56,6 @@ from .database import DatabaseConfig from .env import EnvVars from .logger import LoggerConfig from .mqtt import MqttConfig -from .notification import NotificationConfig from .proxy import ProxyConfig from .semantic_search import SemanticSearchConfig from .telemetry import TelemetryConfig @@ -308,7 +308,7 @@ class FrigateConfig(FrigateBaseModel): ) mqtt: MqttConfig = Field(title="MQTT configuration.") notifications: NotificationConfig = Field( - default_factory=NotificationConfig, title="Notification configuration." + default_factory=NotificationConfig, title="Global notification configuration." ) proxy: ProxyConfig = Field( default_factory=ProxyConfig, title="Proxy configuration." @@ -418,6 +418,7 @@ class FrigateConfig(FrigateBaseModel): "review": ..., "genai": ..., "motion": ..., + "notifications": ..., "detect": ..., "ffmpeg": ..., "timestamp_style": ..., @@ -502,6 +503,9 @@ class FrigateConfig(FrigateBaseModel): # set config pre-value camera_config.audio.enabled_in_config = camera_config.audio.enabled camera_config.record.enabled_in_config = camera_config.record.enabled + camera_config.notifications.enabled_in_config = ( + camera_config.notifications.enabled + ) camera_config.onvif.autotracking.enabled_in_config = ( camera_config.onvif.autotracking.enabled )