From aeddab46ff1209b34f403646f13194e461d264f9 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Fri, 5 Apr 2024 20:20:26 -0500 Subject: [PATCH] env/prod: Add values for Frigate Imported as-is from *nvr1.pyrocufflink.blue*. --- env/prod/frigate.cue | 284 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 284 insertions(+) create mode 100644 env/prod/frigate.cue diff --git a/env/prod/frigate.cue b/env/prod/frigate.cue new file mode 100644 index 0000000..001f7d2 --- /dev/null +++ b/env/prod/frigate.cue @@ -0,0 +1,284 @@ +package prod + +import "encoding/yaml" + +import "du5t1n.me/cfg/app/frigate/schema" + +_frigate: schema.#Frigate + +_frigate: env: { + FRIGATE_AMCREST_RTSP_PASSWORD: """ + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCSC9ib3NiOHArdzB1R2Jt + bmdJbldtNzA5dUxIR0VKRCtmamFVTE85M2c4Ck5zN01lNHRoYUZhclc3RlViNml5 + UU1ZTWJiOFNHcERGOGpjeWcyNXdmTU0KLS0tICtEZk1hMFM3WlB6ZTZkM1hId0E2 + YzVxaTVqSkMxM0JXcEgzZldLaVY5ZFkKBIQevANW2+cH26MxXujwJpB14F6MoPY0 + uJ62u1YTUpMdIxwZgAQb0TJJu9+/wvZG0hEfTaN5h0U= + -----END AGE ENCRYPTED FILE----- + """ + FRIGATE_MQTT_PASSWORD: """ + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1VUZ1NzZBbzRWU290UHFn + d1VuaTVUd3Z6elJ3Z25YRFEvdlVtZ1JXdG1BClp6clkvd1c1cnY2U1JWNTRvNFNS + OWk4WHJZS0JCSmN0MnBJUVpIQ2RJSWcKLS0tIG9ERFp3VUNKR20ydlNZSEdYTVJN + cjUzWFVpQkN1N0lsZmtxTGJZWmd2cnMKGDE10HN61g/VTNyCxVkf2jeM8CdgthKd + QGr2G0t3Ua3H5NIH89Y6Zrf8G1CPhmTbguZbyNvgdMOpT1GF+BfbJrEz4s7T5mNi + megRUOjTT54/rg== + -----END AGE ENCRYPTED FILE----- + """ + PLUS_API_KEY: """ + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjbEhPeGJPTVNhWGRxSVRZ + dFVQM3JEYlltd2V3Q0haa1l2NTA3RnJjR1Q4CnJyakJCc2VOakVtSFFXZ2FtVUs5 + bVpaaXc3TGVKNFdLK3EyT0VSUmpCTlUKLS0tIFh3dUorTUp6MXdra01RQnhaTXRN + YnVvZVZNa2lTNUIxb2Z6M0NXUVdtN1EKnFUU9yU0mnXJQ8vUHWvsM80Le2FPax+3 + eTeyStyF1uYvTWHLZHs8ATAe6SsNYOpW/uX9p3ff414ncMda4sLFNqPx+BRqi/jm + SErfC7lprII0iQ6GCyNNBMSv6nOjNYUC96gEDhuMAPt+Z4Grfw== + -----END AGE ENCRYPTED FILE----- + """ +} + +_frigate: config: mqtt: { + host: "mqtt.pyrocufflink.blue" + port: 8883 + password: "{FRIGATE_MQTT_PASSWORD}" + tls_ca_certs: "/etc/ssl/certs/ca-certificates.crt" + user: "frigate" +} + +_frigate: config: ffmpeg: hwaccel_args: "preset-vaapi" + +_rtsp: { + front_porch: "rtsp://frigate:{FRIGATE_AMCREST_RTSP_PASSWORD}@172.30.0.213/cam/realmonitor?channel=1&subtype=0" + driveway: "rtsp://frigate:{FRIGATE_AMCREST_RTSP_PASSWORD}@172.30.0.212/cam/realmonitor?channel=1&subtype=0" + back_yard: "rtsp://frigate:{FRIGATE_AMCREST_RTSP_PASSWORD}@172.30.0.215/cam/realmonitor?channel=1&subtype=0" +} + +_frigate: config: go2rtc: streams: { + front_porch: [_rtsp.front_porch] + driveway: [_rtsp.driveway] + back_hard: [_rtsp.back_yard] +} + +_frigate: config: detectors: coral: { + device: "pci:0" + type: "edgetpu" +} + +_frigate: config: birdseye: restream: true + +_frigate: config: cameras: { + front_porch: { + detect: { + height: 1080 + width: 1920 + } + ffmpeg: { + inputs: [ + { + path: "rtsp://127.0.0.1:8554/front_porch" + input_args: "preset-rtsp-restream" + roles: [ + "detect", + ] + }, + { + path: _rtsp.front_porch + roles: [ + "record", + ] + }, + ] + } + objects: { + track: [ + "person", + "cat", + "dog", + "bird", + ] + filters: { + dog: { + threshold: 0.8 + } + bird: { + threshold: 0.8 + } + } + } + record: { + enabled: true + events: { + retain: { + default: 365 + } + } + retain: { + days: 17 + } + } + rtmp: { + enabled: false + } + snapshots: { + enabled: true + retain: { + default: 365 + } + } + zones: { + front_door: { + coordinates: "1920,1080,1920,0,1770,0,1366,657,1533,1080" + } + front_porch_window: { + coordinates: "1168,337,1026,75,1040,0,1300,0,1257,231" + } + front_steps: { + coordinates: "0,1080,1533,1080,1366,595,925,672,531,529,216,587" + } + } + motion: { + mask: [ + "189,0,0,0,0,175", + ] + } + } + + driveway: { + detect: { + height: 1080 + width: 1920 + } + ffmpeg: { + inputs: [ + { + path: "rtsp://127.0.0.1:8554/driveway" + input_args: "preset-rtsp-restream" + roles: [ + "detect", + ] + }, + { + path: _rtsp.driveway + roles: [ + "record", + ] + }, + ] + } + objects: { + track: [ + "person", + "cat", + "dog", + "car", + ] + filters: { + person: { + threshold: 0.8 + } + dog: { + threshold: 0.8 + } + bird: { + threshold: 0.8 + } + } + } + record: { + enabled: true + events: { + retain: { + default: 365 + } + required_zones: [ + "driveway_entry_zone", + "garage_pad_zone", + ] + } + retain: { + days: 17 + } + } + rtmp: { + enabled: false + } + snapshots: { + enabled: true + retain: { + default: 365 + } + required_zones: [ + "driveway_entry_zone", + "garage_pad_zone", + ] + } + zones: { + neighbor_zone: { + coordinates: "1920,0,1920,317,1644,179,1382,89,1030,0" + objects: [] + } + driveway_entry_zone: { + coordinates: "624,0,148,0,0,107,0,251,111,328" + } + garage_pad_zone: { + coordinates: "0,507,0,431,616,23,834,51,1180,119,1545,243,1475,583,1285,1080,404,1080,239,843" + } + } + motion: { + mask: [ + "157,0,0,0,0,119", + "1419,89,1058,0,1920,0,1920,324,1823,267", + ] + } + } + + back_yard: { + detect: { + height: 1080 + width: 1920 + } + ffmpeg: inputs: [ + { + path: "rtsp://127.0.0.1:8554/back_yard" + input_args: "preset-rtsp-restream" + roles: [ + "detect", + ] + }, + { + path: _rtsp.back_yard + roles: [ + "record", + ] + }, + ] + objects: track: [ + "person", + "cat", + "dog", + ] + record: { + enabled: true + events: retain: default: 365 + retain: days: 17 + } + rtmp: enabled: false + snapshots: { + enabled: true + retain: default: 365 + } + zones: { + pool_zone: coordinates: "894,169,1333,136,1403,173,1265,278,1069,290,931,301,814,358,744,435,571,414,538,330" + } + } +} + +let Marshal = yaml.Marshal + +frigate: { + env: _frigate.env + config: _frigate.config + + yaml: Marshal(config) +}