Home Assistant Frigate: Local AI Security That Puts Cloud Cameras to Shame

Tired of paying monthly fees for Ring or Nest just to get "person detected" notifications? Frigate is a free, open-source NVR that runs AI object detection right on your own hardware. It tells the difference between a person walking up your driveway and a cat crossing the yard. No cloud. No subscriptions. No one watching your footage except you. Here is everything you need to set it up with Home Assistant.

Check Your Devices Camera Guide

What Is Frigate and Why Should You Care?

Frigate is an open-source NVR (network video recorder) built from the ground up for Home Assistant. Created by Blake Blackshear, it takes RTSP camera streams and runs real-time AI object detection on them. That means it can identify people, cars, dogs, cats, packages, and more, all processed locally on your hardware.

The magic is in how it handles detection. Instead of analyzing every single frame (which would melt your CPU), Frigate uses motion detection as a first pass. When motion is spotted, it sends those frames to an AI model for classification. If a Google Coral TPU is plugged in, detection takes under 10 milliseconds per frame. That is fast enough to track someone walking across your entire yard without missing a beat.

๐Ÿง 

Local AI Detection

Runs object detection models on your hardware. Person, car, dog, cat, package. No cloud API calls, no latency, no privacy concerns.

๐Ÿ’ฐ

Zero Monthly Fees

No Ring Protect. No Nest Aware. Buy the hardware once and you are done. Frigate is completely free and open source.

๐Ÿ”’

Total Privacy

Every frame stays on your network. No footage uploaded to Amazon or Google servers. Your cameras, your data, your control.

โšก

Deep HA Integration

Native Home Assistant integration via HACS. Binary sensors, camera entities, event snapshots, and MQTT events. Automations work perfectly.

Hardware You Need for Frigate

Frigate runs as a Docker container, so you need a machine that can handle video decoding and (optionally) AI inference. Here is what to expect at different budget levels.

Google Coral TPU: The Single Best Upgrade

A Google Coral TPU offloads all AI detection from your CPU. It processes detections in under 10ms and uses almost no power. Without one, your CPU handles both video decoding and detection, which limits you to a handful of cameras. With a Coral, the CPU only decodes video while the Coral handles all the smart stuff.

Coral TypePriceConnectionBest For
USB Accelerator~$25-35USB 3.0Most setups. Easy to add to any machine.
M.2 A+E Key~$25-30M.2 slotMini PCs with a spare M.2 slot. Cleaner install.
M.2 B+M Key (Dual)~$40-60M.2 slot15+ cameras. Two TPUs on one card for double throughput.

Hardware Tiers

Budget Tier

Raspberry Pi 4/5 + Coral USB

~$100-130 total

  • 2-4 cameras comfortably
  • Good for starters
  • Limited video decoding power
  • No hardware video transcoding

โญ Sweet Spot

Intel N100 Mini PC + Coral USB

~$150-200 total

  • 6-10 cameras easily
  • Intel Quick Sync for hardware decoding
  • Runs Frigate + HA + other services
  • Low power (15-25W total)

Powerhouse

Intel i5/Ryzen + Dual Coral M.2

~$350-500 total

  • 15-20+ cameras
  • Dual TPU for redundancy + speed
  • Room for Proxmox, NAS, Plex, etc.
  • Future-proof for years

Storage Requirements

Frigate records continuously and keeps event clips. Expect roughly 10-15 GB per camera per day for continuous recording at standard quality. A 1 TB drive covers 4 cameras for about 2 weeks of continuous recording before it starts overwriting the oldest footage. For events only (just clips when something is detected), storage needs drop dramatically to about 1-2 GB per camera per day.

Best Cameras for Frigate

Frigate works with any camera that outputs an RTSP stream. That said, some cameras play nicer than others. You want good RTSP support, dual streams (high res for recording, low res for detection), and PoE if possible.

CameraPriceResolutionPoENotes
Reolink RLC-810A~$554K (8MP)โœ…Community favorite. Excellent RTSP, great image quality, dirt cheap.
Reolink RLC-520A~$405MPโœ…Budget pick. Dome style, great for under eaves.
Amcrest IP5M-T1179EW~$505MPโœ…Solid RTSP, good night vision, turret style.
Hikvision DS-2CD2x46G2~$80-1204MP-4Kโœ…Professional grade. AcuSense onboard. Excellent night vision.
UniFi G4 Bullet/Dome~$110-1804MPโœ…Premium build. Needs RTSP enabled in UniFi settings.
ESP32-CAM (DIY)~$82MPโŒFun project, poor image quality. Only for indoor experiments.

Pro Tip: Always Use PoE Cameras

Power over Ethernet means one cable handles both power and data. No hunting for outdoor outlets, no Wi-Fi dropouts during storms, and much more reliable streams for Frigate. A basic PoE switch costs $30-50 and is worth every cent.

Setting Up Frigate with Home Assistant

Frigate runs as a Docker container alongside Home Assistant (or as an add-on if you use HA OS). Here is the full walkthrough.

Step 1: Install Frigate

HA OS / Supervised: Add the Frigate add-on repository (https://github.com/blakeblackshear/frigate-hass-addons) in Settings > Add-ons > Add-on Store. Install "Frigate NVR" and start it.

Docker: Add Frigate to your Docker Compose file. You need to pass through your Coral device and mount a config file and storage directory.

version: "3.9"
services:
  frigate:
    container_name: frigate
    restart: unless-stopped
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "256mb"
    devices:
      - /dev/bus/usb:/dev/bus/usb  # Coral USB
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./frigate/config:/config
      - ./frigate/storage:/media/frigate
    ports:
      - "5000:5000"   # Web UI
      - "8554:8554"   # RTSP restream
      - "8555:8555"   # WebRTC
    environment:
      FRIGATE_RTSP_PASSWORD: "your_password"

Step 2: Configure Your Cameras

Create a config.yml file in your Frigate config directory. Here is a real-world example with a Reolink camera:

mqtt:
  enabled: true
  host: 192.168.1.100  # Your MQTT broker

detectors:
  coral:
    type: edgetpu
    device: usb

cameras:
  front_door:
    ffmpeg:
      inputs:
        - path: rtsp://admin:password@192.168.1.50:554/h264Preview_01_main
          roles: ["record"]
        - path: rtsp://admin:password@192.168.1.50:554/h264Preview_01_sub
          roles: ["detect"]
    detect:
      width: 640
      height: 480
      fps: 5
    objects:
      track: ["person", "car", "dog", "cat"]
    record:
      enabled: true
      retain:
        days: 14
      events:
        retain:
          default: 30

  backyard:
    ffmpeg:
      inputs:
        - path: rtsp://admin:password@192.168.1.51:554/h264Preview_01_main
          roles: ["record"]
        - path: rtsp://admin:password@192.168.1.51:554/h264Preview_01_sub
          roles: ["detect"]
    detect:
      width: 640
      height: 480
      fps: 5
    objects:
      track: ["person", "dog", "cat"]
    record:
      enabled: true
      retain:
        days: 7

Key Config Tips

  • Use the sub stream for detection (lower resolution = faster processing)
  • Use the main stream for recording (full quality saved to disk)
  • Set detection FPS to 5. Higher is wasteful and lower misses fast movement.
  • Detection resolution of 640x480 is ideal for the Coral. Bigger does not mean better here.

Step 3: Connect to Home Assistant

Install the Frigate integration via HACS (search "Frigate" in the HACS integration store). After installing, go to Settings > Integrations > Add Integration > Frigate. Point it to your Frigate instance URL (e.g., http://192.168.1.100:5000).

This creates camera entities, binary sensors for each object type, and event sensors. You will see entities like binary_sensor.front_door_person_occupancy that flip on when a person is detected.

Step 4: Set Up MQTT

Frigate communicates events to Home Assistant through MQTT. If you already have Mosquitto running (and you should), just point Frigate to it in the config. Every detection event fires an MQTT message with the object type, camera name, confidence score, and a snapshot URL.

AI Object Detection: How It Actually Works

Frigate uses a two-stage detection pipeline that is surprisingly efficient.

Stage 1

Motion Detection

Frigate compares consecutive frames to find regions where pixels changed. This is CPU-cheap and filters out 95%+ of frames where nothing is happening. Only frames with motion get sent to the AI model.

Stage 2

Object Classification

Motion regions get cropped and sent to a TensorFlow Lite model running on your Coral TPU (or CPU). The model identifies what the object is: person, car, dog, etc. This takes under 10ms on a Coral.

Stage 3

Object Tracking

Frigate tracks objects across frames so it knows "that is still the same person" as they move through the scene. This prevents duplicate alerts and gives you clean event clips with entry and exit points.

Supported Object Types

The default model detects: person, car, truck, bus, motorcycle, bicycle, dog, cat, horse, bear, bird. You can also use custom models for specific things like packages, license plates, or faces (though face recognition requires additional setup).

Zones: Get Specific About Where

Zones let you define regions within a camera's view. Instead of "person detected on front door camera," you get "person detected in the driveway zone" vs "person detected on the porch zone." This is incredibly useful for filtering alerts. You probably do not care about people walking on the sidewalk, but you definitely care about someone on your porch.

cameras:
  front_door:
    zones:
      porch:
        coordinates: 0.2,0.4,0.8,0.4,0.8,0.9,0.2,0.9
        objects: ["person", "dog", "cat"]
      driveway:
        coordinates: 0.0,0.3,0.3,0.3,0.3,1.0,0.0,1.0
        objects: ["person", "car"]
      sidewalk:
        coordinates: 0.0,0.0,1.0,0.0,1.0,0.3,0.0,0.3
        # No objects tracked here = ignored

5 Frigate Automations That Make Your Home Smarter

The real power of Frigate is what happens after detection. Here are five automations that go beyond basic "motion detected" alerts.

1. Person on Porch: Photo Notification

Get a push notification with a snapshot of the person when someone steps onto your porch. Way more useful than "motion detected."

automation:
  - alias: "Frigate: Person on porch notification"
    trigger:
      - platform: state
        entity_id: binary_sensor.front_door_person_occupancy
        to: "on"
    condition:
      - condition: state
        entity_id: group.family
        state: "not_home"
    action:
      - delay: "00:00:02"
      - service: notify.mobile_app_phone
        data:
          title: "Someone at the front door"
          message: "Person detected on the porch"
          data:
            image: /api/frigate/notifications/{{trigger.to_state.attributes.event_id}}/thumbnail.jpg
            actions:
              - action: "VIEW_CAMERA"
                title: "View Live"

2. Car in Driveway: Turn On Lights

When Frigate detects a car entering your driveway after dark, light up the driveway and porch lights automatically.

automation:
  - alias: "Frigate: Car in driveway lights"
    trigger:
      - platform: mqtt
        topic: frigate/events
    condition:
      - condition: template
        value_template: >-
          {{ trigger.payload_json.after.label == 'car'
             and trigger.payload_json.type == 'new'
             and 'driveway' in trigger.payload_json.after.entered_zones }}
      - condition: state
        entity_id: sun.sun
        state: "below_horizon"
    action:
      - service: light.turn_on
        target:
          entity_id:
            - light.driveway
            - light.porch
        data:
          brightness_pct: 100
      - delay: "00:05:00"
      - service: light.turn_off
        target:
          entity_id: light.driveway

3. Dog in the Garden: Alert If Gate Is Open

If Frigate spots your dog in the garden and the gate sensor shows open, get an urgent alert before your dog escapes.

automation:
  - alias: "Frigate: Dog near open gate"
    trigger:
      - platform: state
        entity_id: binary_sensor.backyard_dog_occupancy
        to: "on"
    condition:
      - condition: state
        entity_id: binary_sensor.garden_gate
        state: "on"
    action:
      - service: notify.mobile_app_phone
        data:
          title: "๐Ÿ• Dog alert!"
          message: "Dog detected in garden and the gate is open!"
          data:
            priority: high
            ttl: 0

4. Nobody Home for 30 Minutes: Arm Frigate Alerts

When everyone leaves, switch Frigate into "alert mode" by enabling notifications for all cameras after a grace period.

automation:
  - alias: "Frigate: Arm when away"
    trigger:
      - platform: state
        entity_id: group.family
        to: "not_home"
        for: "00:30:00"
    action:
      - service: input_boolean.turn_on
        target:
          entity_id: input_boolean.frigate_alerts_armed
      - service: notify.mobile_app_phone
        data:
          message: "Frigate alerts armed. All cameras monitoring."

5. Daily Detection Summary

Get a daily summary of all detections. Useful for tracking patterns like delivery times or stray animals.

automation:
  - alias: "Frigate: Daily summary"
    trigger:
      - platform: time
        at: "21:00:00"
    action:
      - service: notify.mobile_app_phone
        data:
          title: "Frigate Daily Summary"
          message: >-
            Today: {{ states('sensor.front_door_person_count') }} people,
            {{ states('sensor.driveway_car_count') }} cars,
            {{ states('sensor.backyard_dog_count') }} dogs detected.

Frigate vs Ring vs Nest vs Eufy: The Real Comparison

Cloud cameras lock you into monthly subscriptions and send your footage to corporate servers. Here is how Frigate stacks up.

FeatureFrigateRingNestEufy
Monthly cost$0$3-20/mo$8-15/mo$0-3/mo
AI detectionPerson, car, dog, cat, etc.Person, package (paid)Person, vehicle, animal (paid)Person, vehicle (on-device)
Privacy100% localAmazon serversGoogle serversMostly local (some cloud)
Recording retentionUnlimited (your storage)30-180 days (paid)30-60 days (paid)Local storage varies
HA integrationNative, deepLimitedLimitedHACS/RTSP
Camera choiceAny RTSP cameraRing cameras onlyNest cameras onlyEufy cameras only
ZonesUnlimited, per-objectBasic (paid)Yes (paid)Basic
Works offlineYes, fullyNoNoPartially
3-year cost (4 cams)~$350 one-time~$700+ (cams + sub)~$900+ (cams + sub)~$400-500

The Bottom Line

Frigate costs more upfront than a Ring starter kit, but pays for itself within 12 to 18 months through zero subscription fees. After that, you are saving $100-200 per year while getting better detection, more privacy, and deeper smart home integration. The only trade-off is the initial setup effort, which is a one-time weekend project.

Weekend Setup Plan

You can go from zero to a working Frigate setup in a single weekend. Here is the plan.

Saturday Morning

Hardware Setup

  • Mount cameras (start with 1-2)
  • Run Ethernet cables or set up PoE switch
  • Plug in Coral TPU
  • Verify camera RTSP streams work in VLC

Saturday Afternoon

Frigate Install + Config

  • Install Frigate (add-on or Docker)
  • Write config.yml with camera streams
  • Verify detection works in Frigate UI
  • Install Frigate HACS integration

Sunday

Zones + Automations

  • Define zones in Frigate config
  • Build notification automations
  • Add camera cards to your dashboard
  • Fine-tune detection confidence thresholds

Not Sure Which Cameras Work With Your Setup?

Run a free HomeShift scan to see which of your current smart home devices are compatible with Home Assistant and Frigate. Takes 2 minutes.

Start Free Scan

Frequently Asked Questions

What is Frigate and why use it with Home Assistant?

Frigate is a free, open-source network video recorder (NVR) designed specifically for Home Assistant. It runs AI object detection locally on your hardware, meaning it can tell the difference between a person, a car, a dog, and a blowing tree branch. Unlike Ring or Nest, there are no monthly cloud subscriptions. All video processing and storage happens on your own machine.

What hardware do I need for Frigate?

At minimum you need a machine running Docker (a mini PC or NAS works great) and an IP camera with an RTSP stream. For AI detection, a Google Coral TPU ($25 to $60) is highly recommended as it handles object detection with almost zero CPU usage. Without a Coral, you can use CPU detection but are limited to about 2 to 3 cameras on an Intel N100.

How many cameras can Frigate handle?

With a Google Coral TPU, Frigate can handle 10 to 20+ cameras easily because the Coral processes detections in under 10ms. Without a Coral, an Intel N100 can handle about 2 to 3 cameras using CPU detection. A beefier i5 or Ryzen can do 5 to 8 cameras on CPU alone. The bottleneck is usually CPU for video decoding, not detection.

Does Frigate work without internet?

Yes, 100%. Frigate runs entirely on your local network. Object detection uses a local AI model. Video recording and playback happen on local storage. Even if your internet goes down completely, Frigate keeps recording, detecting, and sending notifications through Home Assistant on your LAN.

Can Frigate replace a Ring or Nest subscription?

Absolutely. Frigate gives you continuous recording, AI person and vehicle detection, event clips, and live viewing, all for free after the initial hardware cost. You get better detection accuracy, no monthly fees, full privacy (nothing leaves your network), and deeper Home Assistant integration than any cloud camera system.

Can I use my existing Wi-Fi cameras with Frigate?

If your camera supports RTSP streams, yes. Many Wi-Fi cameras from Reolink, Amcrest, and Hikvision have RTSP built in. Ring and Nest cameras do not support RTSP and cannot be used directly with Frigate. Wyze cameras can work through the Docker Wyze Bridge project. For the best experience, PoE cameras are always recommended over Wi-Fi.

Is Frigate hard to set up?

It takes a weekend if you are starting from scratch. The trickiest part is getting your camera RTSP URLs right (every brand has a different format). Once the cameras are streaming into Frigate, the rest is straightforward YAML configuration. The Frigate documentation is excellent, and the community on Discord and Reddit is very active and helpful.