From 012aa63571ef59f7c0e4b147388dd9c507b52998 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Mon, 1 Jul 2024 16:08:14 -0600 Subject: [PATCH] Enforce minimum value for mqtt stats update (#12253) --- frigate/config.py | 5 ++++- frigate/const.py | 4 ++++ frigate/stats/emitter.py | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/frigate/config.py b/frigate/config.py index 5331d311a..301aeeb95 100644 --- a/frigate/config.py +++ b/frigate/config.py @@ -26,6 +26,7 @@ from frigate.const import ( CACHE_DIR, CACHE_SEGMENT_FORMAT, DEFAULT_DB_PATH, + FREQUENCY_STATS_POINTS, MAX_PRE_CAPTURE, REGEX_CAMERA_NAME, YAML_EXT, @@ -193,7 +194,9 @@ class MqttConfig(FrigateBaseModel): port: int = Field(default=1883, title="MQTT Port") topic_prefix: str = Field(default="frigate", title="MQTT Topic Prefix") client_id: str = Field(default="frigate", title="MQTT Client ID") - stats_interval: int = Field(default=60, title="MQTT Camera Stats Interval") + stats_interval: int = Field( + default=60, ge=FREQUENCY_STATS_POINTS, title="MQTT Camera Stats Interval" + ) user: Optional[str] = Field(None, title="MQTT Username") password: Optional[str] = Field(None, title="MQTT Password", validate_default=True) tls_ca_certs: Optional[str] = Field(None, title="MQTT TLS CA Certificates") diff --git a/frigate/const.py b/frigate/const.py index 0ba8d6f64..b55187744 100644 --- a/frigate/const.py +++ b/frigate/const.py @@ -82,6 +82,10 @@ UPSERT_REVIEW_SEGMENT = "upsert_review_segment" CLEAR_ONGOING_REVIEW_SEGMENTS = "clear_ongoing_review_segments" UPDATE_CAMERA_ACTIVITY = "update_camera_activity" +# Stats Values + +FREQUENCY_STATS_POINTS = 15 + # Autotracking AUTOTRACKING_MAX_AREA_RATIO = 0.6 diff --git a/frigate/stats/emitter.py b/frigate/stats/emitter.py index a90be5271..1683935e2 100644 --- a/frigate/stats/emitter.py +++ b/frigate/stats/emitter.py @@ -10,6 +10,7 @@ from typing import Optional from frigate.comms.inter_process import InterProcessRequestor from frigate.config import FrigateConfig +from frigate.const import FREQUENCY_STATS_POINTS from frigate.stats.util import stats_snapshot from frigate.types import StatsTrackingTypes @@ -17,7 +18,6 @@ logger = logging.getLogger(__name__) MAX_STATS_POINTS = 80 -FREQUENCY_STATS_POINTS = 15 class StatsEmitter(threading.Thread):