How to Set Up Frigate NVR With Home Assistant: Step-by-Step Guide

Frigate is a locally-hosted network video recorder (NVR) with real-time AI object detection. It runs entirely on your hardware, stores footage on your own drives, and integrates seamlessly with Home Assistant — no subscriptions, no cloud, no monthly fees. This guide takes you from zero to a working Frigate setup.

What Frigate Gives You

  • 24/7 recording from multiple IP cameras
  • AI detection of people, vehicles, animals, and more
  • Motion-triggered clips saved locally
  • Home Assistant integration for automations based on detections
  • Live view and recorded footage accessible from anywhere via the Home Assistant app

Hardware Requirements

  • Minimum (2–4 cameras, no AI): Raspberry Pi 4 with 4GB RAM
  • Recommended (4–8 cameras with AI detection): Mini PC with Intel N100 or better, 8GB+ RAM
  • GPU acceleration: A Google Coral USB Accelerator (~$60) dramatically reduces CPU usage for AI inference

Step 1: Install Frigate as a Home Assistant Add-on

In Home Assistant, go to Settings → Add-ons → Add-on Store. Frigate is not in the default store — add the Frigate repository first.

  1. Click the three-dot menu → Repositories
  2. Add: https://github.com/blakeblackshear/frigate-hass-addons
  3. Find “Frigate NVR” in the store and click Install
  4. Do not start it yet — configuration comes first

Step 2: Configure Your Cameras

Edit the Frigate configuration with a minimal example for one camera:

mqtt:
  host: 192.168.1.x

cameras:
  front_door:
    ffmpeg:
      inputs:
        - path: rtsp://admin:[email protected]:554/stream1
          roles:
            - detect
            - record
    detect:
      width: 1920
      height: 1080
      fps: 5
    record:
      enabled: true
      retain:
        days: 7

Step 3: Find Your Camera RTSP URL

  • Reolink: rtsp://admin:password@IP/h264Preview_01_main
  • Amcrest/Dahua: rtsp://admin:password@IP/cam/realmonitor?channel=1&subtype=0
  • Hikvision: rtsp://admin:password@IP/Streaming/Channels/101

Step 4: Set Up Object Detection

Add detection configuration to enable AI detection:

objects:
  track:
    - person
    - car
    - dog

For better performance with Intel hardware, add the OpenVINO detector:

detectors:
  ov:
    type: openvino
    device: AUTO

Step 5: Integrate Frigate with Home Assistant

Install the Frigate integration: Settings → Integrations → Add Integration → Frigate. This creates entities for each camera — motion binary sensors, person detection sensors, and camera entities for live view.

Step 6: Create a Person Detection Automation

Trigger on binary_sensor.front_door_person_occupancy state change to On, then send a notification with a camera snapshot from frigate/front_door/latest.jpg.

Storage Planning

24/7 recording at 1080p typically uses 1–3GB per camera per day. A 1TB drive stores about 1 month of footage for 2–3 cameras. Adjust Frigate retention settings to match your storage capacity.

Configuring hardware acceleration correctly

Frigate’s detectors config block is where the performance difference actually happens. On Intel-based hardware (a mini PC), set type: openvino with device: AUTO to offload detection to the integrated GPU. On a Raspberry Pi, a Google Coral USB accelerator (~$60) is the equivalent — set type: edgetpu. Skipping hardware acceleration entirely and relying on raw CPU inference works for 1–2 cameras but is the single most common cause of a Frigate setup feeling sluggish once you add a third or fourth.

Zones and masks cut false alerts dramatically

Out of the box, Frigate alerts on any detected person anywhere in frame — including someone walking past on the sidewalk. Defining a zone (a polygon drawn over your driveway or porch in the config) lets you alert only when a person enters that specific area, not just the camera’s whole field of view. A motion mask over a busy street or a tree that sways in the wind eliminates a large share of false triggers before they ever reach the detection stage, saving CPU as well as your attention.

Structuring a multi-camera config

As you add cameras, keep each one’s settings (resolution, detect/record roles, zones) under its own clearly-named block in config.yaml rather than relying on global defaults for everything — a front door camera and a backyard camera usually want different zone shapes and sensitivity, and a flat, per-camera structure makes it far easier to tune one camera without accidentally affecting the others.

Free guide — no signup

Trying to cut the cloud out of your smart home? This is the whole map in one place.

☁️➡️🏠Cloud → Local: replace every cloud service What replaces Ring, Nest, Alexa, August & more — hardware, offline status, difficulty.