After spending years as a software engineer at eBay, I thought I understood security systems. Then I looked at quotes for professional home security setups – $3,000+ for basic monitoring, plus monthly fees that never end. That’s when I decided to build my own using Home Assistant and Frigate NVR.
Two years later, I’m running a security system that rivals (and in some ways beats) those expensive commercial options. Total cost? Under $500. Monthly fees? Zero. And here’s the thing – it’s not just cheaper, it’s actually more capable than most commercial systems.
Let me walk you through exactly how I built it, what mistakes I made (so you don’t have to), and why this approach gives you more control and better features than any monthly subscription service.
Table of Contents
- Why I Chose Frigate Over Other Solutions
- My Complete Hardware Setup and Costs
- Choosing the Right Cameras
- Installing and Configuring Frigate
- Adding AI Detection with Coral TPU
- Home Assistant Integration
- Real Troubleshooting: Problems I’ve Solved
- Advanced Features You Won’t Get Elsewhere
- Lessons Learned After 2 Years
Why I Chose Frigate Over Other Solutions
Before settling on Frigate, I evaluated pretty much every option: BlueIris, Milestone, even cloud services like Ring and Nest. Here’s why Frigate won:
It’s designed for Home Assistant. Since I was already running HA for my lighting automation and vehicle tracking, having everything in one ecosystem was huge. No more juggling multiple apps or trying to integrate disparate systems.
Real AI detection, not motion blur nonsense. I was tired of getting alerts every time a tree moved or a car drove by. Frigate uses actual computer vision models to distinguish between people, vehicles, and animals. After tuning it, I only get alerts when someone actually walks onto my property.
No cloud dependency. Everything runs locally on my network. No monthly fees, no privacy concerns about footage being stored on someone else’s servers, and no outages when the vendor’s cloud goes down.
It’s fast. With proper hardware (more on that below), Frigate processes video in real-time. I get alerts within 2-3 seconds of detection, not the 30+ seconds I was seeing with cloud-based systems.
My Complete Hardware Setup and Costs
Here’s exactly what I’m running, with real prices I paid (not inflated MSRP):
Core Hardware
- Intel NUC 11th Gen – $280 (runs Home Assistant OS and Frigate)
- Google Coral TPU USB – $75 Amazon Link
- TP-Link 8-Port PoE+ Switch – $89 Amazon Link
- Western Digital Purple 4TB – $98 (surveillance-rated storage) Amazon Link
Cameras (4 total)
- Reolink RLC-410 (x3) – $45 each = $135 Amazon Link
- Amcrest IP4M-1041B – $79 (front door camera)
Total Hardware Cost: $756
Yeah, I went a bit over my initial $500 target, but that’s with four cameras covering my entire property. You could easily start with 2 cameras and add more later – that’s actually what I did.
Compare that to the $3,200 quote I got from ADT for a similar setup, plus $50/month monitoring fees. My system paid for itself in about 5 months of avoided subscription costs.
Choosing the Right Cameras: What Actually Matters
Here’s something the marketing material won’t tell you: megapixel count is mostly irrelevant for security cameras. I learned this the hard way after buying a 8MP camera that produced massive files but couldn’t see faces clearly at night.
What Actually Matters
Low-light performance. Most break-ins happen at night. The Reolink RLC-410 cameras I use have decent night vision for the price, though they’re not amazing. If budget allows, spend more on front-door cameras where you need to clearly identify faces.
RTSP support. This is non-negotiable for Frigate. Avoid cameras that only work with proprietary apps or cloud services. Both Reolink and Amcrest provide clean RTSP streams that work perfectly with Frigate.
PoE capability. Power over Ethernet is a game-changer. One cable provides both power and network connection. No hunting for power outlets near camera locations, no WiFi reliability issues. I can’t stress this enough – go PoE if at all possible.
Fixed focal length, not varifocal. Counter-intuitive, but varifocal cameras often have worse low-light performance. Pick your camera placement carefully and buy the right focal length for each location.
Cameras I’d Avoid
Skip the ultra-cheap Amazon cameras with names like “ZUMIMALL” or “SOVMIKU”. I tried a few early on and they’re just frustrating. Poor night vision, unreliable streams, and support that doesn’t exist. Stick with known brands like Reolink, Amcrest, Hikvision, or Dahua.
Installing and Configuring Frigate
If you’re running Home Assistant OS (which you should be), installing Frigate is straightforward through the Community Add-ons store. But the configuration? That’s where things get interesting.
My Core Frigate Configuration
Here’s a simplified version of my config that covers the essentials:
mqtt:
enabled: True
host: core-mosquitto
detectors:
coral:
type: edgetpu
device: usb
ffmpeg:
hwaccel_args: preset-vaapi
cameras:
front_door:
ffmpeg:
inputs:
- path: rtsp://admin:[email protected]/h264Preview_01_main
roles:
- detect
- record
detect:
width: 1280
height: 720
fps: 5
record:
enabled: True
retain:
days: 30
mode: motion
objects:
track:
- person
- car
filters:
person:
min_area: 5000
max_area: 100000
min_score: 0.5
Configuration Gotchas I Learned the Hard Way
Don’t use full resolution for detection. I initially configured Frigate to detect on full 4MP streams from my cameras. The Coral TPU couldn’t keep up, and I was getting 2-3 FPS processing rates. Dropping to 720p for detection (while keeping 4MP for recording) solved this immediately.
Tune your fps settings. Higher isn’t always better. 5 FPS for detection is plenty for most scenarios. I was running 15 FPS initially and just burning CPU cycles for no benefit.
Zone configuration is crucial. My backyard camera was triggering on every car that drove down the street until I configured zones properly. Now it only alerts on activity in my actual yard, not the public road beyond.
Adding AI Detection with Coral TPU: Night and Day Difference
Running Frigate without a Coral TPU is like buying a sports car and driving it in first gear. The USB Coral TPU was the single best $75 I spent on this whole setup.
Before and After Coral TPU
Before (CPU-only detection):
- Detection taking 800ms per frame
- Could only run 1-2 cameras reliably
- CPU constantly pegged at 90%+
- Frequent missed detections
After (with Coral TPU):
- Detection taking 30-50ms per frame
- Running 4 cameras simultaneously
- CPU usage down to 20-30%
- Nearly instantaneous detection
Coral TPU Installation
The USB version is plug-and-play with Home Assistant OS. Just plug it into your NUC or Pi, update your Frigate config to use the edgetpu detector, and restart. Frigate will automatically download the required TensorFlow Lite models.
Pro tip: If you’re running this on a Raspberry Pi 4, get the USB Accelerator, not the M.2 version. The Pi doesn’t have an M.2 slot anyway, and USB gives you more flexibility if you upgrade hardware later.
Home Assistant Integration: Where the Magic Happens
This is where Frigate really shines compared to standalone NVR solutions. The integration with Home Assistant opens up automation possibilities that commercial systems can’t touch.
Automations I’m Actually Using
Arrival Detection: When Frigate detects my car in the driveway, it automatically disarms the security system, turns on the porch light, and unlocks the front door. No more fumbling for keys or remembering to disarm the alarm.
Package Delivery Alerts: When a person is detected at the front door during delivery hours (9 AM – 6 PM weekdays), I get an instant notification with a snapshot. The system also announces “Package delivery detected” through my smart speakers if I’m home.
Nighttime Security: Any person detection after 11 PM triggers emergency lighting (floods the property with light) and sends high-priority notifications to both my phone and my wife’s. We’ve never had a break-in, but it gives us peace of mind.
False Alarm Filtering: The system ignores car detections during normal commute hours (7-9 AM, 5-7 PM) since that’s just neighbors coming and going. But car detection at 2 AM? That gets my attention immediately.
Integration Setup
The Frigate integration is available through HACS (Home Assistant Community Store). Once installed, all your cameras appear as entities in Home Assistant, along with binary sensors for each object type you’re tracking.
Setting up the automations requires some YAML knowledge, but it’s not too complex if you’re already comfortable with Home Assistant. I’m happy to share my full automation configs if you’re interested – just reach out in the comments.
Real Troubleshooting: Problems I’ve Solved (So You Don’t Have To)
After two years of running this system, I’ve hit pretty much every possible issue. Here are the big ones and how to fix them:
“Coral TPU Not Detected” Error
This one stumped me for hours when I first set up the system. Frigate would start fine, but the logs showed it wasn’t using the Coral TPU. The fix? USB 3.0 ports don’t always work reliably with the Coral. Move it to a USB 2.0 port, or add this to your configuration:
detectors:
coral:
type: edgetpu
device: usb:0
The “:0” explicitly tells it which USB device to use, which solved the detection issues for me.
“RTSP Stream Timeouts” Plaguing Your Setup
My Reolink cameras would randomly drop their RTSP streams, causing Frigate to throw errors and miss recordings. After diving into the logs, I found the cameras were getting overwhelmed by multiple concurrent connections.
The solution was tuning the camera’s network settings. In the Reolink interface, I had to:
- Reduce the main stream to 2048 kbps (was 8192)
- Set the sub stream to 512 kbps
- Use the sub stream for detection, main stream for recording
Stream stability improved dramatically after these changes.
“Storage Filling Up Too Fast” Crisis
My first month, Frigate filled up 2TB of storage. I was recording everything at full quality 24/7. Big mistake.
The fix was implementing proper retention policies and using motion-triggered recording instead of continuous. My current config retains:
- 30 days of motion-triggered recordings
- 7 days of continuous recording for front door camera only
- Snapshots retained for 60 days
This dropped my storage usage to about 300GB per month, which is totally manageable.
“False Alerts Driving Me Crazy” Problem
Early on, I was getting 50+ alerts per day. Trees moving, shadows changing, cars on the street – everything triggered notifications. Here’s how I solved it:
Proper zone configuration: Drew zones around areas I actually care about, not the entire camera view.
Minimum object size filtering: Adjusted min_area to filter out distant objects that aren’t relevant.
Time-based filtering: Different sensitivity during the day vs. night.
Stationary object timeout: If a person stands still for 30+ seconds, the system stops alerting (prevents alerts when I’m working in the yard).
Advanced Features You Won’t Get Elsewhere
This is where the DIY approach really pays off. Try getting these features from ADT or Ring:
License Plate Recognition
Using the Plate Recognizer add-on, my system automatically reads and logs license plates of vehicles entering the driveway. It maintains a database of known vehicles (family, friends, delivery drivers) and alerts me when unknown plates are detected.
Setup cost? $8/month for the Plate Recognizer API if you want cloud recognition, or free if you run the models locally (which I do).
Facial Recognition for Trusted Persons
I’ve configured the system to recognize family members and close friends. When a known person is detected, the notifications are different (“John arrived” instead of “Unknown person detected”). This reduces alert fatigue while maintaining security.
Privacy note: All facial recognition runs locally. No photos leave my network.
Smart Doorbell Integration
When someone approaches the front door, the system automatically enables two-way audio through my existing cameras (which have built-in speakers). I can see who’s there and communicate with them through the Home Assistant app, whether I’m home or across the country.
Behavioral Analysis
The system tracks patterns and alerts me to anomalies. If someone hangs around the front door for more than 2 minutes without ringing the bell, that’s suspicious behavior and triggers a high-priority alert. If a car sits in my driveway for more than 30 minutes without anyone getting out, same thing.
Lessons Learned After 2 Years
What I’d Do Differently
Start with fewer, better cameras. My initial approach was “more cameras = more security.” Wrong. Better camera placement and higher-quality cameras in key locations is more effective than many cheap cameras everywhere.
Plan for storage expansion early. That 2TB drive filled up faster than expected. Plan for at least 4TB if you want 30+ days of retention with multiple cameras.
Network infrastructure matters. Don’t cheap out on the PoE switch or network cables. Poor network infrastructure will cause more headaches than any other component.
What I Got Right
Going with Home Assistant from day one. The ecosystem integration is incredible. Every other component of my smart home can interact with the security system seamlessly.
Investing in the Coral TPU early. This single component transformed the system from “interesting project” to “professional security solution.”
Taking time to tune the configuration. I spent probably 10 hours over the first month tweaking zones, sensitivity, and object filters. That investment in tuning pays dividends every single day.
Performance Comparison: My System vs. Commercial Solutions
After two years, here’s how my DIY setup compares to the commercial systems I evaluated:
Speed
- My system: 2-3 second notification delay
- Ring: 15-30 second delay
- Nest: 10-20 second delay
- ADT: 30+ second delay
Accuracy
- My system: ~95% accuracy after tuning (5% false positives)
- Ring: ~70% accuracy in my testing
- Nest: ~80% accuracy
- ADT: Motion-only detection, no AI
Features
- My system: License plates, facial recognition, behavioral analysis, unlimited automation
- Commercial systems: Basic person/package detection, limited automation
Cost (5-year total)
- My system: $756 initial + $0 monthly = $756
- Ring: $200 devices + $100/year monitoring = $700
- Nest: $600 devices + $120/year monitoring = $1,200
- ADT: $800 installation + $600/year monitoring = $3,800
Getting Started: Your Next Steps
Ready to ditch those monthly monitoring fees and build something better? Here’s how I’d approach it if I were starting over:
Phase 1: Foundation ($200-300)
- Get Home Assistant running (on a Pi 4 or NUC)
- Buy one good camera for your most important area Reolink RLC-410
- Install Frigate and get basic detection working
- Order a Coral TPU Google Coral USB Accelerator
Phase 2: Expansion ($300-400)
- Add 2-3 more cameras in key locations
- Invest in proper storage WD Purple 4TB
- Set up PoE switch for clean cable runs TP-Link PoE+ Switch
- Fine-tune zones and automation
Phase 3: Advanced Features ($100-200)
- Add license plate recognition
- Implement facial recognition for family members
- Set up behavioral analysis and smart alerts
- Integrate with other smart home devices
The beauty of this approach is you can stop at any phase and still have a fully functional system. Unlike commercial solutions where you’re locked into their ecosystem and feature set, you have complete control over every aspect.
Final Thoughts: Why This Approach Works
After two years of running this setup, I can’t imagine going back to a commercial security system. The combination of cost savings, feature flexibility, and performance is just too compelling.
But here’s the thing – this isn’t a “set it and forget it” solution like Ring or Nest. You’ll spend time tweaking configurations, troubleshooting issues, and learning how everything works. For me, that’s part of the appeal. I understand every component of my security system, and I can modify or upgrade any part of it whenever I want.
If you’re the type of person who just wants to buy something that works out of the box with minimal setup, this probably isn’t for you. Stick with Ring or Nest.
But if you’re comfortable with technology, enjoy learning new systems, and want complete control over your home security – this approach will give you capabilities that commercial systems simply can’t match, at a fraction of the cost.
And the best part? Every dollar you spend goes toward hardware you own, not monthly fees that disappear forever. Five years from now, you’ll still have a cutting-edge security system while your neighbors are still paying $50/month for basic motion detection.
What’s your experience with DIY security systems? Running into any specific challenges with Frigate or Home Assistant? Drop a comment below – I’m happy to help troubleshoot or share configuration examples.
Ready to get started? Check out my complete Home Assistant setup guide if you haven’t got HA running yet, or dive into my essential automations guide to see what else you can do with this platform.
Don’t forget to subscribe to my newsletter for more DIY smart home projects and money-saving tips that actually work.