Files
frigate-smtp/README.md
2024-12-07 13:44:36 +13:00

2.0 KiB

Frigate SMTP Notifications

Sends email notifications when Frigate NVR detects an object. pip install paho-mqtt smtplib requests

Setup

This guide assumes you have Home Assistant and Frigate already set up. If you don't, you can follow this tutorial: https://www.youtube.com/watch?v=XWNquH3tNxc (not my video). This guide also assumes you have access to your Home Assistant integration from outside your local network.

Setup Gmail SMTP server:

  1. Go to https://myaccount.google.com/apppasswords
  2. Create a new password with a memorable name like "python" or "smtp"
  3. Copy and paste your password into config.json - "password": "app password goes here",
  4. Change your-email@gmail.com in config.json to your email.

Snapshots:

Modify config.json: "frigate_url": "https://your.homeassistantdomain.com",

Setup MQTT:

Modify config.json: Change the IP, username, and password to match the user you have made for Home Assistant (or you can make a separate user for this script)

Configure the script to run on startup (DEBIAN/LINUX ONLY)

  1. Install tmux
  2. Create a script that starts the tmux session and runs python: /home/user/startup.sh:
#!/bin/bash

# Start a new tmux session named 'emails'
tmux new-session -d -s emails

# Send commands to the 'emails' session
tmux send-keys -t emails 'cd /opt/Frigate-SMTP' C-m
tmux send-keys -t emails 'python3 main.py' C-m

sudo chmod +x /home/user/startup.sh

  1. Create a systemctl service:

/etc/systemd/system/frigate-smtp.service:

[Unit]
Description=Frigate SMTP Service
After=network.target

[Service]
Type=forking
ExecStart=/opt/Frigate-SMTP/startup.sh
WorkingDirectory=/opt/Frigate-SMTP
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload sudo systemctl enable frigate-smtp.service sudo systemctl start frigate-smtp.service

  1. Verify it works: sudo systemctl status frigate-smtp.service OR tmux attach -t emails (remember to exit safely by pressing CTRL+B then D)