Frigate Home Assistant AI Notification Blueprint
Rewritten and improved version of the original by @zacharyd3.
Frigate AI Notification is a clean, low-noise blueprint for smart multi-camera alerts powered by Frigate and (optionally) LLMVision. It focuses on fast, relevant notifications with the right links and the right amount of detail - no spam.
➤ Import the Blueprint
Under very active development, report bugs & view code on the GitHub page.
Highlights
- Multi-camera: monitor one or many Frigate cameras from a single automation.
- Multi-device notifications: send to any number of mobile devices.
- iOS-optimized playback: uses HLS (.m3u8) for live/clip viewing on iOS when enabled.
- Action buttons:
- View Clip opens the event clip
- View Live deep-links to the camera in HA
- Open Frigate jumps to Frigate’s review page
- Silence mute per-camera for X minutes, or globally if you don’t set a table
- Per-camera silence (optional, recommended): provide an
input_texthelper to store a tiny JSON map of{camera_slug: muted_until_epoch}. - Thoughtful update loop: sends updates on meaningful changes (new snapshot, sub-label change, clip becomes ready) - not for every tiny motion.
- Zone filtering with wildcards:
- Include / Exclude lists
- Match by entered, current, or either
- Require any or all zones to match
- Noise controls:
- Minimum detection score
- Require “clip ready” (optional)
- Ignore likely false positives (optional)
- LLMVision summaries (optional): short, readable descriptions of what happened.
- Auto URL detection: uses your HA internal/external URL if set; you can override the Frigate UI URL.
- Friendly titles & camera names: quick options to expand “Cam → Camera” or append “Camera”.
- Debug mode: safe, verbose logging to validate logic while you fine-tune.
Requirements
- Frigate set up with MQTT events
- Home Assistant 2024.6+
- Home Assistant Companion App on your phone (for notifications)
Optional:
- LLMVision provider (leave blank to disable AI entirely)
- Input helpers create in the same automation edit screen:
input_datetimefor a global cooldown (optional, NOT recommended)input_textfor the per-camera silence table (optional, recommended)input_booleanas a simple LLM “busy” gate when several cameras run in parallel (optional)
Quick Start
- Import the blueprint and create an automation from it.
- Pick your cameras and notification devices.
- (Optional) Turn on iOS Notification if you send to iPhones/iPads — this enables the HLS stream path.
- (Optional) Add zones to include/exclude and set match type/logic.
- (Optional) Enable LLMVision by selecting a provider/model.
- (Optional) Add Global cooldown helper: choose an
input_datetimeso back-to-back alerts are throttled. - (Recommended) Add Per-camera silence table helper: select an
input_text. The blueprint initializes it automatically. - Save and test.
How the Notification Behaves
Every send uses the same tag: {{ id }} - the Frigate event id. On both Android and iOS the HA app treats a repeated tag as a replacement of the existing notification rather than a new one. We also set alert_once: true, so the updated notification won’t ping/vibrate again.
The update loop only fires on meaningful changes (clip becomes ready, sub-label changes, zones list changes, or a truly new snapshot). It’s not sending on every MQTT tick.
- Initial alert on new Frigate event (if it passes your filters).
- Update alerts on important changes:
- Clip becomes ready
- Sub-label recognition changes
- Zone match list changes - entered/current
- New snapshot timestamp
- End alert when the event finishes (optional, depending on your filters).
Buttons you’ll see:
- View Clip → opens the Frigate clip (or HLS on iOS if enabled)
- View Live → deep-links to the camera entity in HA
- Open Frigate → opens
/review?camera=...&id=... - Silence → mutes just this camera for X minutes (type a number);
if you didn’t provide a silence table, it falls back to global mute (temporarily turns off this whole automation - all cameras!).
Zones & Labels — The Simple Version
- Include list supports
*and?, blank = include all. - Exclude list: use to carve out small “privacy” areas inside larger includes. If an event matches both an include and an exclude, the exclude overrides and the notification for that step is suppressed.
Example: include=front_yard_*, exclude=porch_privacy → activity in front_yard_driveway not blocked; stepping into porch_privacy suppresses that tick.
-
Zone Match Type: which zone list to check from Frigate:
entered→ onlyafter.entered_zones(crossings)current→ onlyafter.current_zones(currently inside)either→ union of entered + current
-
Zone Logic: when include zones are set, require
anyorallof the listed zones to match.- Example:
include=driveway, porch+logic=all→ object must be in both zones.
- Example:
Silence, Cooldowns & Noise Controls
- Silence button: per-camera mute for X minutes (requires the optional
input_texttable). - Global cooldown: prevents rapid repeat notifications across the board (optional
input_datetime). - Signal quality filters:
- Minimum score (default 0.6)
- Require clip ready
- Ignore likely false positives
LLMVision (Optional)
Enable the provider/model to get a short, readable summary of what happened.
You can tweak:
- Number of frames analyzed
- Target width (token/size trade-off)
- Max tokens & temperature
- Whether to expose images (for richer notifications)
Leave the Provider blank to turn AI off.
Links the Blueprint Builds for You
clip_url— the event MP4 (or HLS for iOS if toggled)clip_url_signed— signed clip (used on iOS when available)snapshot_url/thumbnail_url— still imagesfrigate_review_url— jumps to Frigate’s review UIlive_deeplink— opens your camera entity in HA
All URLs are auto-derived from your HA internal/external URL when possible. You can override the Frigate UI URL if it lives elsewhere (e.g., different host/port).