diff --git a/frigate/comms/dispatcher.py b/frigate/comms/dispatcher.py index 23f2045e0..5df0532b1 100644 --- a/frigate/comms/dispatcher.py +++ b/frigate/comms/dispatcher.py @@ -80,8 +80,8 @@ class Dispatcher: "snapshots": self._on_snapshots_command, "birdseye": self._on_birdseye_command, "birdseye_mode": self._on_birdseye_mode_command, - "alerts": self._on_alerts_command, - "detections": self._on_detections_command, + "review_alerts": self._on_alerts_command, + "review_detections": self._on_detections_command, } self._global_settings_handlers: dict[str, Callable] = { "notifications": self._on_notification_command, @@ -515,7 +515,7 @@ class Dispatcher: review_settings.alerts.enabled = False self.config_updater.publish(f"config/review/{camera_name}", review_settings) - self.publish(f"{camera_name}/review/alerts/state", payload, retain=True) + self.publish(f"{camera_name}/review_alerts/state", payload, retain=True) def _on_detections_command(self, camera_name: str, payload: str) -> None: """Callback for detections topic.""" @@ -537,4 +537,4 @@ class Dispatcher: review_settings.detections.enabled = False self.config_updater.publish(f"config/review/{camera_name}", review_settings) - self.publish(f"{camera_name}/review/detections/state", payload, retain=True) + self.publish(f"{camera_name}/review_detections/state", payload, retain=True) diff --git a/frigate/config/config.py b/frigate/config/config.py index 770588b93..ac5872986 100644 --- a/frigate/config/config.py +++ b/frigate/config/config.py @@ -505,6 +505,12 @@ class FrigateConfig(FrigateBaseModel): camera_config.onvif.autotracking.enabled_in_config = ( camera_config.onvif.autotracking.enabled ) + camera_config.review.alerts.enabled_in_config = ( + camera_config.review.alerts.enabled + ) + camera_config.review.detections.enabled_in_config = ( + camera_config.review.detections.enabled + ) # Add default filters object_keys = camera_config.objects.track diff --git a/web/src/api/ws.tsx b/web/src/api/ws.tsx index 1174d35f3..0e392ba99 100644 --- a/web/src/api/ws.tsx +++ b/web/src/api/ws.tsx @@ -53,7 +53,15 @@ function useValue(): useValueReturn { const cameraStates: WsState = {}; Object.entries(cameraActivity).forEach(([name, state]) => { - const { record, detect, snapshots, audio, autotracking } = + const { + record, + detect, + snapshots, + audio, + autotracking, + alerts, + detections, + } = // @ts-expect-error we know this is correct state["config"]; cameraStates[`${name}/recordings/state`] = record ? "ON" : "OFF"; @@ -63,6 +71,10 @@ function useValue(): useValueReturn { cameraStates[`${name}/ptz_autotracker/state`] = autotracking ? "ON" : "OFF"; + cameraStates[`${name}/review_alerts/state`] = alerts ? "ON" : "OFF"; + cameraStates[`${name}/review_detections/state`] = detections + ? "ON" + : "OFF"; }); setWsState((prevState) => ({ @@ -207,7 +219,7 @@ export function useAlertsState(camera: string): { const { value: { payload }, send, - } = useWs(`${camera}/review/alerts/state`, `${camera}/review/alerts/set`); + } = useWs(`${camera}/review_alerts/state`, `${camera}/review_alerts/set`); return { payload: payload as ToggleableSetting, send }; } @@ -219,8 +231,8 @@ export function useDetectionsState(camera: string): { value: { payload }, send, } = useWs( - `${camera}/review/detections/state`, - `${camera}/review/detections/set`, + `${camera}/review_detections/state`, + `${camera}/review_detections/set`, ); return { payload: payload as ToggleableSetting, send }; } diff --git a/web/src/views/settings/CameraSettingsView.tsx b/web/src/views/settings/CameraSettingsView.tsx index 2f97cc1f4..fa9d0ba58 100644 --- a/web/src/views/settings/CameraSettingsView.tsx +++ b/web/src/views/settings/CameraSettingsView.tsx @@ -261,10 +261,9 @@ export default function CameraSettingsView({ { - sendAlerts(isChecked ? "OFF" : "ON"); + sendAlerts(isChecked ? "ON" : "OFF"); }} />
@@ -276,10 +275,9 @@ export default function CameraSettingsView({ { - sendDetections(isChecked ? "OFF" : "ON"); + sendDetections(isChecked ? "ON" : "OFF"); }} />