self-hosting

AI doorbell detection, stored locally, no monthly bill

How I replaced a failing subscription camera setup with a Reolink doorbell, Frigate, and a Google Coral, and ended up with better AI detection than I ever had paying monthly.

I had been paying for a subscription based cloud camera system for five years. By year five, the cameras were failing from weather damage, the annual bill had risen to over £100 just for recording, and a separate AI features package had appeared wanting an additional monthly fee. The hardware was already capable of detection. I was just being charged to unlock it.

The moment that finished it was a security incident. The gate at the side of the house opened on its own. I went to pull up the footage. The cameras had not been recording because the subscription had lapsed. All I had was live view. That was enough.

I cancelled, put the renewal money toward hardware, and decided to build something I actually owned.

The camera

The first requirement was a camera that streams over an open protocol so that self hosted software can pull its feed directly. I settled on the Reolink 2K+ Video Doorbell: 5MP, 180-degree field of view, local storage to a 64GB microSD card, and no subscription required for any of it to work.

Frigate and the Coral

I deployed Frigate as a Docker container on my Raspberry Pi 5 and pointed it at the Reolink's stream. It started detecting immediately. The problem was performance: running AI inference on the Pi's CPU while also running my other containers caused noticeable throttling across the whole machine.

The fix was the Google Coral USB Accelerator. It offloads all AI inference from the Pi to its own dedicated chip, dropping detection time to around 10 milliseconds per frame and freeing the Pi entirely. I should have added it before setting Frigate up rather than after. That is the one thing I would do differently. For more on what the Coral is doing and why it matters, see AI on the Edge.

Home Assistant

With Frigate running cleanly I connected it to Home Assistant via MQTT. Frigate publishes every detection event to a message broker. Home Assistant subscribes to it and fires automations. I created a driveway zone in Frigate and built automations around it: person detected while the alarm is set sends a critical push notification with a snapshot. Package detected notifies regardless. The alerts arrive in seconds.

What went wrong

The Frigate configuration took longer than expected to get right. I overwrote my config more than once while learning the zone and filter settings, which meant rebuilding from scratch each time. Keep a backup after every meaningful change.

False positives were also an issue early on. A potted plant on top of my bin was repeatedly flagged as a person. Frigate Plus resolved it: you log misidentified snapshots, label them correctly, and receive a rebuilt custom model trained on your specific camera. You pay once and download the result. Since then, no meaningful false positives.

The result

The system does more than the subscription cameras ever did. Instant notifications with snapshots the moment someone enters the driveway. Package detection before the driver reaches the door. Counters tracking activity throughout the day just for curiosity. All of it running locally, with no footage leaving the network and no monthly bill to keep it working.

I will document licence plate recognition and facial recognition automations in future projects. Both are within what is already running.