A motion sensor knows something moved. A camera can know what it was: you or a stranger, your car or the courier's van, a person or the cat. That is a much better trigger for a smart home than "motion in the hall".
Agent DVR does the recognizing on your own computer and passes the result on. Your cameras show up in Home Assistant through its own Agent DVR integration, with no YAML to write, a recognized face or number plate can publish an MQTT message or call a URL, and everything Agent DVR can do is available through an HTTP API. It runs on your own network, with no cloud in between.
It knows who has arrived
Face recognition and number plate recognition are built in and run locally. Enrol the faces and plates that matter, and each one becomes a trigger: an action runs when that person or that car is seen, and it can tell them apart from everyone else. People use it to:
It plugs into what you already run
Home Assistant has an Agent DVR integration in its own list: add it with your server's address and you get every camera, an alarm panel to arm and disarm, and actions to record, take a photo and switch alerts. Turn on MQTT discovery as well and each camera adds motion, alert, recording and online sensors. It also works with:
It hears the house too
Audio recognition listens to a microphone or a camera's audio and names what it hears, from a list of more than 500 sounds. Any of them can trigger an automation, including ones no other sensor in the house would notice:
Home, Away and Night
Profiles switch the whole system between set-ups in one step: which cameras record, which alert, how sensitive they are. Change profile however suits the moment:
What it looks like
Five recordings on the driveway and front door cameras today. Looking at the frames and at what was recognized:
- 08:05 - your car left. Plate recognized.
- 11:20 - a courier's van stopped for a minute. Plate not on your list.
- 15:40 - Sam at the front door. Face recognized, and the hall light rule ran.
- 17:55 - your car came back. Plate recognized, and the garage door rule ran.
The fifth was the cat on the doorstep. Nothing unexpected.
Things to ask
- Who came to the front door today?
- Arm the system with the Away profile.
- Is the garage door open? Look at the garage camera.
- What time did the car come back?
- Which faces do you recognize?
Rules to set up by asking
- When the driveway camera sees my number plate, call my garage door webhook.
- When Sam is at the front door, turn on the hall light.
- If there is a person at the door after dark who is not one of us, tell me.
- Arm the system at 11pm every night.
Rules run on your own server with no assistant connected. They need Agent DVR 8.0.7 or later, and questions about what is in the picture need an AI provider set up in Server Settings - AI Settings. More rule examples
Why build it this way
A better trigger than motion
Automations that fire on "a person", "this face" or "this plate" do the right thing far more often than ones that fire on movement, and they do not run for the cat.
Home Assistant, the official way
The Agent DVR integration ships with Home Assistant: add it from the integrations list, enter the server address, and your cameras and the alarm panel are there, with no YAML to write. A camera you add later appears too.
Voice, when your hands are full
With the Alexa skill you can say "Alexa, arm Agent in home mode" or "Alexa, show Agent camera" on an Echo Show. Or ask an AI assistant in your own words.
Local first
Recognition, recording, MQTT, Home Assistant and the API all run on your own network. Nothing has to leave the house for the gate to open.
What you need
A camera
Almost any IP, ONVIF, RTSP or USB camera works, including a spare webcam. You do not need a special bird, pet or doorbell camera. Look yours up in the camera database.
Agent DVR on a computer
Install it on Windows, macOS, Linux, Docker or a Raspberry Pi. It records to your own disk and is free for private use on your own network. Download.
An AI assistant
Connect Claude, ChatGPT, Gemini CLI or any other MCP client and start asking. Free on your own network. From your phone or the cloud it is part of an iSpyConnect subscription from $7.95 a month. How it works.
Set it up
Connect Home Assistant
Add the Agent DVR integration in Home Assistant and enter the server address. For the extra sensors, turn on MQTT discovery too.
Teach it who is who
Turn on face recognition or number plate recognition on the cameras that see the door and the drive, and enrol the faces and plates that matter.
Wire up the result
Add an action on Face Recognized or License Plate Recognized that publishes to MQTT or calls a Home Assistant webhook, or ask an assistant to set it up.
Frequently asked questions
Does Agent DVR work with Home Assistant?
Yes, in two ways that work together. The Agent DVR integration that ships with Home Assistant adds your cameras, an alarm panel to arm and disarm the system, and actions to start and stop recording, take a photo and switch alerts on and off. MQTT discovery adds motion, alert, recording and online sensors for each camera and microphone. Neither needs any YAML, and you can also embed the Agent DVR view in a dashboard. See Home Assistant in the user guide.
Can a recognized face or number plate trigger an automation?
Yes. Add an action on Face Recognized or License Plate Recognized, set the name or the plate it should match, and choose what it does: publish an MQTT message, call a URL such as a Home Assistant webhook, speak through a camera, or run several tasks in turn. An AI assistant can set the same thing up from a sentence.
Can I control it by voice?
Yes. The Alexa skill arms and disarms Agent DVR in its Home, Away and Night profiles and shows a camera on an Echo Show. Any AI assistant with a voice mode, such as the Claude or ChatGPT app, can do more: ask what happened, look at a camera, arm the system or set up a rule.
Is there an API?
Yes. Everything in Agent DVR can be driven over a local HTTP API, and commands can also be sent over MQTT. Actions can call out to any URL with the event's details in the request. See the API documentation.
What does it cost?
Agent DVR is free for private use on your own network, including Home Assistant, MQTT and the API. Alexa, IFTTT, the mobile apps and access away from home are part of an iSpyConnect subscription from $7.95 a month, one flat price for all your cameras. The AI provider you use for the assistant may have its own costs.
Running Frigate with Home Assistant today? See Agent DVR vs Frigate, or Agent DVR vs Blue Iris.
More things your cameras can do
Security analytics
Loitering, left bags, covered cameras and line crossing on any camera, with PTZ tracking, speed and sound alerts, and tools to pull the evidence together afterwards.
See how it worksPackage delivery alerts
Find out when a package is delivered, who came to the door while you were out, and whether the package is still on the step.
See how it worksAI pet camera
Ask what the dog did while you were out, look in live from your phone, and get told when the cat is on the kitchen counter.
See how it worksAI bird feeder camera
Point any camera at the feeder and ask which birds visited, when the feeder is busiest and whether the squirrel is back.
See how it worksChecking in on a relative
See that Mum or Dad is up and about, find out whether the carer came, and get told when something needs a look, without phoning every hour.
See how it worksMachine monitoring
Get told when an alarm sounds, a warning light comes on, or a machine that should be running goes quiet or still, and ask what happened on the night shift.
See how it worksGhost hunting cameras
Record every camera and microphone on an investigation, get flagged when it hears whispering, footsteps or a knock, and let an AI assistant find the moments worth a second look.
See how it worksRetail footfall
Count shoppers in and out, see where they stop and how long they queue, and set your takings against the footfall for a conversion rate.
See how it worksOccupancy and capacity
A live count of how many are inside across every door, a capacity limit, a screen for the entrance and an alert when it is nearly full.
See how it works