Echo enables the offsite shipment of Frigate alerts.
Echo provide a recourse in the event that a burglary results in damage or theft of the equipment running Frigate.
Because Frigate stores video footage using it's own internal schema, there isn't an easy nor efficient way to sync internal Frigate data with an offsite store. To help enable offsite syncing, Echo does the following:
- Watches for Frigate alerts via MQTT.
- (Optionally) ignore the alert if anyone is home according to Home Assistant.
- Export video of the event from Frigate and move it to a synced or remotely mounted folder.
Echo does not include the mechanism to send date offsite. Instead, it moves it to a designated folder that can then be tied to a service like Syncthing, Dropbox, or a remote mount.
An MQTT broker, like Mosquitto, is required if you are not already running one.
Once the broker is up and running, you can configure Frigate to send alert information to it by adding the following to the Frigate configuration:
mqtt:
host: 192.168.0.10
port: 1883
topic_prefix: frigate
client_id: frigate
user: ''
password: ''You may also need to go under Settings > Notifications in the Frigate UI and confirm that notifications are enabled for cameras.
services:
frigate-echo:
image: tboyk/frigate-echo:latest
restart: unless-stopped
container_name: frigate-echo
environment:
- TZ=America/Los_Angeles
volumes:
- /usr/local/frigate-echo:/echo/config
- /usr/local/frigate/exports:/mnt/frigate_exports
- /usr/local/syncthing:/mnt/echo_storage
Specifically:
- Set the timezone so that the exported filenames show timestamps for your region.
- Set the three volumes.
- Mount the folder with
config.ymlthat you create below to/echo/config - The first should map the Frigate exports folder to
/mnt/frigate_exports. - The second should map your offsite synced folder to
/mnt/echo_storage.
- Mount the folder with
retention_days: 7
mqtt:
server: "192.168.0.10"
topic: "frigate/reviews"
home_assistant:
url: "http://192.168.0.10:8123"
token: "<long-lived-access-token>"
frigate:
url: "http://192.168.0.10:5000"
api_key: null
A few notes:
-
home_assistant: Optionally prevent exporting of alerts when home assistant shows that someone is home. Thetokensub-key can be generated from within the Home Assistant UI by clicking on your name in the lower left corner, selecting the security tab, and then scrolling to the "Long-lived access tokens" section. Otherwise, comment or remove this section. -
retention_days: Optionally remove exports from the synced folder once they are the defined number of days old. Otherwise, comment or remove this key.
Create and run the docker image by executing the following from within the project folder:
docker compose up -d
You can check for issues by running:
docker logs frigate-echo