Add autotracking enable/disable button to live view (#11396)

This commit is contained in:
Josh Hawkins
2024-05-16 09:32:39 -05:00
committed by GitHub
parent 16ead917ea
commit 525de1a467
3 changed files with 48 additions and 3 deletions

View File

@@ -42,13 +42,17 @@ function useValue(): useValueReturn {
const cameraStates: WsState = {};
Object.keys(config.cameras).forEach((camera) => {
const { name, record, detect, snapshots, audio } = config.cameras[camera];
const { name, record, detect, snapshots, audio, onvif } =
config.cameras[camera];
cameraStates[`${name}/recordings/state`] = record.enabled ? "ON" : "OFF";
cameraStates[`${name}/detect/state`] = detect.enabled ? "ON" : "OFF";
cameraStates[`${name}/snapshots/state`] = snapshots.enabled
? "ON"
: "OFF";
cameraStates[`${name}/audio/state`] = audio.enabled ? "ON" : "OFF";
cameraStates[`${name}/ptz_autotracker/state`] = onvif.autotracking.enabled
? "ON"
: "OFF";
});
setWsState({ ...wsState, ...cameraStates });
@@ -161,6 +165,17 @@ export function useAudioState(camera: string): {
return { payload: payload as ToggleableSetting, send };
}
export function useAutotrackingState(camera: string): {
payload: ToggleableSetting;
send: (payload: ToggleableSetting, retain?: boolean) => void;
} {
const {
value: { payload },
send,
} = useWs(`${camera}/ptz_autotracker/state`, `${camera}/ptz_autotracker/set`);
return { payload: payload as ToggleableSetting, send };
}
export function usePtzCommand(camera: string): {
payload: string;
send: (payload: string, retain?: boolean) => void;