Call update topic for passed topics

This commit is contained in:
Nicolas Mowen 2025-05-22 13:33:15 -06:00
parent 101f2fbf04
commit f5d6cdab74
3 changed files with 13 additions and 2 deletions

View File

@ -28,6 +28,10 @@ from frigate.api.defs.query.app_query_parameters import AppTimelineHourlyQueryPa
from frigate.api.defs.request.app_body import AppConfigSetBody
from frigate.api.defs.tags import Tags
from frigate.config import FrigateConfig
from frigate.config.camera.updater import (
CameraConfigUpdateEnum,
CameraConfigUpdateTopic,
)
from frigate.models import Event, Timeline
from frigate.stats.prometheus import get_metrics, update_metrics
from frigate.util.builtin import (
@ -390,8 +394,13 @@ def config_set(request: Request, body: AppConfigSetBody):
if body.update_topic and body.update_topic.startswith("config/cameras/"):
_, _, camera, field = body.update_topic.split("/")
settings = config.model_dump(mode="json", warnings="none", exclude_none=True)["cameras"][camera][field]
settings = config.model_dump(
mode="json", warnings="none", exclude_none=True
)["cameras"][camera][field]
request.config_updater.publish_update(
CameraConfigUpdateTopic(CameraConfigUpdateEnum[field], camera),
settings,
)
return JSONResponse(
content=(

View File

@ -5,6 +5,7 @@ from pydantic import BaseModel
class AppConfigSetBody(BaseModel):
requires_restart: int = 1
update_topic: str | None = None
class AppPutPasswordBody(BaseModel):

View File

@ -673,6 +673,7 @@ class FrigateApp:
self.onvif_controller,
self.stats_emitter,
self.event_metadata_updater,
self.inter_config_updater,
),
host="127.0.0.1",
port=5001,