Include config publisher in api

This commit is contained in:
Nicolas Mowen 2025-05-22 13:31:17 -06:00
parent 559af44682
commit 101f2fbf04
2 changed files with 10 additions and 1 deletions

View File

@ -385,8 +385,14 @@ def config_set(request: Request, body: AppConfigSetBody):
status_code=500, status_code=500,
) )
if body.requires_restart == 0: if body.requires_restart == 0 or body.update_topic:
request.app.frigate_config = config request.app.frigate_config = config
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]
return JSONResponse( return JSONResponse(
content=( content=(
{ {

View File

@ -26,6 +26,7 @@ from frigate.comms.event_metadata_updater import (
EventMetadataPublisher, EventMetadataPublisher,
) )
from frigate.config import FrigateConfig from frigate.config import FrigateConfig
from frigate.config.camera.updater import CameraConfigUpdatePublisher
from frigate.embeddings import EmbeddingsContext from frigate.embeddings import EmbeddingsContext
from frigate.ptz.onvif import OnvifController from frigate.ptz.onvif import OnvifController
from frigate.stats.emitter import StatsEmitter from frigate.stats.emitter import StatsEmitter
@ -57,6 +58,7 @@ def create_fastapi_app(
onvif: OnvifController, onvif: OnvifController,
stats_emitter: StatsEmitter, stats_emitter: StatsEmitter,
event_metadata_updater: EventMetadataPublisher, event_metadata_updater: EventMetadataPublisher,
config_publisher: CameraConfigUpdatePublisher,
): ):
logger.info("Starting FastAPI app") logger.info("Starting FastAPI app")
app = FastAPI( app = FastAPI(
@ -127,6 +129,7 @@ def create_fastapi_app(
app.onvif = onvif app.onvif = onvif
app.stats_emitter = stats_emitter app.stats_emitter = stats_emitter
app.event_metadata_updater = event_metadata_updater app.event_metadata_updater = event_metadata_updater
app.config_publisher = config_publisher
app.jwt_token = get_jwt_secret() if frigate_config.auth.enabled else None app.jwt_token = get_jwt_secret() if frigate_config.auth.enabled else None
return app return app