Break out triggers into their own config section.

This commit is contained in:
Dermot Duffy
2022-06-10 10:07:40 -07:00
parent a295cbd870
commit b8f1fb2aa3
7 changed files with 187 additions and 83 deletions
+13 -9
View File
@@ -372,13 +372,15 @@ const customSchema = z
export const cameraConfigDefault = {
client_id: 'frigate' as const,
live_provider: 'auto' as const,
trigger_by_motion: false,
trigger_by_occupancy: true,
trigger_by_entities: [],
dependencies: {
all_cameras: false,
cameras: [],
},
triggers: {
motion: false,
occupancy: true,
entities: [],
},
};
const webrtcCardCameraConfigSchema = z.object({
entity: z.string().optional(),
@@ -414,12 +416,14 @@ const cameraConfigSchema = z
})
.default(cameraConfigDefault.dependencies),
trigger_by_motion: z.boolean().default(cameraConfigDefault.trigger_by_motion),
trigger_by_occupancy: z.boolean().default(cameraConfigDefault.trigger_by_occupancy),
trigger_by_entities: z
.string()
.array()
.default(cameraConfigDefault.trigger_by_entities),
triggers: z.object({
motion: z.boolean().default(cameraConfigDefault.triggers.motion),
occupancy: z.boolean().default(cameraConfigDefault.triggers.occupancy),
entities: z
.string()
.array()
.default(cameraConfigDefault.triggers.entities),
}).default(cameraConfigDefault.triggers),
})
.default(cameraConfigDefault);
export type CameraConfig = z.infer<typeof cameraConfigSchema>;