From d5e1e023287ac5d35f572a20b0b6f84d99f63714 Mon Sep 17 00:00:00 2001 From: Dermot Duffy Date: Sun, 22 Feb 2026 19:39:55 -0800 Subject: [PATCH] fix: Add editor support for go2rtc metadata fetch timeout (#2372) --- src/config/schema/cameras.ts | 3 +-- src/const.ts | 2 ++ src/editor.ts | 12 ++++++++++++ src/localize/languages/en.json | 1 + 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/config/schema/cameras.ts b/src/config/schema/cameras.ts index a952ae96..5aa21671 100644 --- a/src/config/schema/cameras.ts +++ b/src/config/schema/cameras.ts @@ -41,13 +41,12 @@ const go2rtcConfigSchema = z.object({ .string() .transform((input) => input.replace(/\/+$/, '')) .optional(), - host: z.string().optional(), modes: z.enum(['webrtc', 'mse', 'mp4', 'mjpeg']).array().optional(), stream: z.string().optional(), metadata_fetch_timeout_seconds: z .number() .int() - .positive() + .nonnegative() .default(go2rtcConfigDefault.metadata_fetch_timeout_seconds), }); diff --git a/src/const.ts b/src/const.ts index b09ebbad..b763f909 100644 --- a/src/const.ts +++ b/src/const.ts @@ -38,6 +38,8 @@ export const CONF_CAMERAS_ARRAY_FRIGATE_LABELS = export const CONF_CAMERAS_ARRAY_FRIGATE_URL = `${CONF_CAMERAS}.#.frigate.url` as const; export const CONF_CAMERAS_ARRAY_FRIGATE_ZONES = `${CONF_CAMERAS}.#.frigate.zones` as const; +export const CONF_CAMERAS_ARRAY_GO2RTC_METADATA_FETCH_TIMEOUT_SECONDS = + `${CONF_CAMERAS}.#.go2rtc.metadata_fetch_timeout_seconds` as const; export const CONF_CAMERAS_ARRAY_GO2RTC_MODES = `${CONF_CAMERAS}.#.go2rtc.modes` as const; export const CONF_CAMERAS_ARRAY_GO2RTC_STREAM = `${CONF_CAMERAS}.#.go2rtc.stream` as const; diff --git a/src/editor.ts b/src/editor.ts index be3cbd13..e96019d4 100644 --- a/src/editor.ts +++ b/src/editor.ts @@ -61,6 +61,7 @@ import { CONF_CAMERAS_ARRAY_FRIGATE_LABELS, CONF_CAMERAS_ARRAY_FRIGATE_URL, CONF_CAMERAS_ARRAY_FRIGATE_ZONES, + CONF_CAMERAS_ARRAY_GO2RTC_METADATA_FETCH_TIMEOUT_SECONDS, CONF_CAMERAS_ARRAY_GO2RTC_MODES, CONF_CAMERAS_ARRAY_GO2RTC_STREAM, CONF_CAMERAS_ARRAY_GO2RTC_URL, @@ -2518,6 +2519,17 @@ export class AdvancedCameraCardEditor extends LitElement implements LovelaceCard )} ${this._renderStringInput( getArrayConfigPath(CONF_CAMERAS_ARRAY_GO2RTC_URL, cameraIndex), + )} + ${this._renderNumberInput( + getArrayConfigPath( + CONF_CAMERAS_ARRAY_GO2RTC_METADATA_FETCH_TIMEOUT_SECONDS, + cameraIndex, + ), + { + min: 0, + default: + this._defaults.cameras.go2rtc.metadata_fetch_timeout_seconds, + }, )} `, )} ${this._putInSubmenu( diff --git a/src/localize/languages/en.json b/src/localize/languages/en.json index 7ee9978b..4d40c565 100644 --- a/src/localize/languages/en.json +++ b/src/localize/languages/en.json @@ -117,6 +117,7 @@ }, "go2rtc": { "editor_label": "go2rtc Options", + "metadata_fetch_timeout_seconds": "Metadata fetch timeout in seconds", "modes": { "editor_label": "go2rtc Modes", "mjpeg": "Motion JPEG (MJPEG)",