"0 Detections, Hundreds of Alerts": The Frigate Terminology Trap That Isn't a Bug
I opened my Frigate dashboard one morning and my stomach dropped: 0 detections, hundreds of alerts. My first read was the obvious one — the object detector had fallen over, and Frigate was now firing blind, alerting on raw motion instead of actual objects.
That read was completely wrong. Nothing had broken. The detector was healthy, running OpenVINO inference at ~10 ms per frame the entire time. What had actually happened is that I didn’t understand what the words “Alert” and “Detection” mean in modern Frigate — and once I did, the “outage” evaporated and turned into a five-minute config change.
This is a post about a debugging story with a satisfying anticlimax, and about a genuinely confusing bit of Frigate’s UI vocabulary that trips up a lot of people running 0.14 and later.
Backing Up a Homelab as Code: Docker Configs to a Private Git Repo, Without Leaking Secrets
If my main Docker host died tomorrow, how fast could I rebuild it? For a long time the honest answer was “slowly, and from memory.” The fix is to treat the box’s configuration as code: every docker-compose.yml, Dockerfile, and config file committed to a private git repo, so reimaging is a git clone and a handful of docker compose up commands.
The trap is that a live Docker tree is a minefield of secrets — .env files, TLS private keys, API tokens hardcoded into compose files — and pushing any of them to GitHub, even a private repo, is a bell you can’t fully un-ring. This post is the repeatable procedure I landed on: what to commit, what to never commit, and the automated checks that keep the second category out.
The Mail Truck Classifier Cried Wolf: Tuning Zero-Shot CLIP With Real Data
A while back I taught my house to announce the mail truck: Frigate spots a vehicle out front, a small service crops the snapshot and runs zero-shot CLIP against a list of text prompts, and if it decides “USPS truck” or “garbage truck,” Home Assistant says so out loud through Piper. That post ended on an optimistic note — a garbage truck scoring p_trash 0.995, and a line about how a labeled dataset for future tuning would “build itself from real events.”
This is the reckoning with that optimism.
Because the classifier worked, and then it would not shut up. 143 garbage-truck announcements in seven weeks, on a street where the garbage truck comes exactly once a week. The house had become the boy who cried wolf, and my family had — correctly — started ignoring it. This post is about actually fixing that: what 200 real detections showed, why the obvious fix is a trap, and the one idea worth stealing even if you never touch CLIP.