PurrView: A Self-Hosted NVR That Tells Your Cats Apart, With Training Built In

PurrView: A Self-Hosted NVR That Tells Your Cats Apart, With Training Built In. AutoMatter

A new project called PurrView turned up in the Home Assistant community forum on October 14. It is a self-hosted NVR that detects when one tracked object meets another, and it is the successor to the creator’s earlier Yolo2Mqtt. The goal is not security. It is answering questions like “which cat just used the litter box?”

What was announced

The creator, posting as chris8, says Yolo2Mqtt ran unattended for years, but never solved the real problem: keeping the model accurate as the house changes. Cats leave, new ones arrive, bowls get replaced, and the old model keeps answering confidently about a house that no longer exists. Fixing it meant collecting and hand-labelling images in other tools with a pile of shell scripts.

PurrView puts that whole loop in one browser app on your own hardware: watch, collect, label, train, deploy, watch again. While the cameras run, a collector keeps a capped queue of the frames worth labelling, such as ones the model was unsure about or nearly confused for another cat.

How it works

  • Inputs: RTSP, ring-mqtt, snapshot URLs, MQTT image topics and video files.
  • Rules are a sentence: subject, relation, target, duration. The example given is “Cat overlaps Litter Box for 5 seconds.” The target can be a zone you draw or another tracked object, so bowls can move around.
  • Events can cut a clip including the seconds before the trigger, save snapshots, publish to MQTT and expose an annotated live frame as a camera entity.
  • Training data management: you confirm both which tags are present and which are not. Datasets only use images fully verified for the classes in that model, so adding a new class (a trash can, say) does not poison thousands of old images. You can run stacks of models and start a new class in its own model until it can auto-annotate the history.

The Home Assistant side

MQTT discovery creates entities per rule, per camera and optionally per cat, for example binary_sensor.kitty_cam_laundry and sensor.kitty_cat_using_litter_box. The counts are total_increasing, so Home Assistant keeps long-term statistics that survive the recorder purge. One Statistics Graph card can then show litter box visits per day, per cat, over a month. The creator says that turned out to matter more than anything else they built.

There is also a custom integration, installed through HACS as a custom repository, with an events browser, media proxied through Home Assistant and Lovelace cards. Marking an event’s labels wrong in Home Assistant flags it in PurrView for fixing.

What to check before you try it

  • You must train your own model. A stock detector knows what a cat is, not which cat. Recognizing a new object takes images in the tens, but telling four similar cats apart takes a lot more, and the creator says the first model will not be very good.
  • You need a GPU for training. The creator calls a 12 GB card more than comfortable and thinks half that could work. Training can run on a different machine from the NVR box, and a desktop will be much faster.
  • It is not a polished NVR. The creator says plainly to run Frigate if that is what you want, and that PurrView is not meant as a security system.
  • Read the README. Setup, topologies, entity tiers and the graph YAML are there, and the author calls it long but honest about costs.

Our take

For a client who just wants cameras that record and alert, this is not the tool, and the author agrees. It fits a narrower job: pet health tracking, or any case where “which one” matters more than “something is there.” The useful idea for anyone running detection is the maintenance loop. Models drift as a home changes, and a tool that makes relabelling cheap addresses that. Because it publishes over MQTT and is a custom HACS integration, it sits alongside your existing setup instead of replacing it. We have not run it, so treat the above as the creator’s description rather than our test results, and start with one camera and one rule before committing hardware.

Sources