My take on Zoneminder object detection with Home Assistant

A few months ago I wrote a series of blog posts describing how I set up object detection (i.e. detection of people) using the excellent zmEventNotification to enhance ZoneMinder.

I then tied the notifications in to HA using boolean inputs to control which cameras sent notifications. The state of those boolean inputs are tied to the HA alarm panel so that I don’t get lots of unnecessary alerts when I’m home, for example.

Finally, I used AppDaemon to add a throttling mechanism to suppress multiple alerts.

I now get nice little picture alerts when - and only when - I need them.

The write up is here on my blog - that’s the AppDaemon post, but it has links to the rest of the write up.

I just thought I’d post it on here as well for anyone who’s interested.

1 Like

what kind of camera do you need?

Any camera that works with Zoneminder will be fine. I’ve got a Hikvision and two cheap IP cameras, as described in my Zoneminder setup post.

Just a heads up that as of the latest version of Home Assistant (0.106), sending URLs directly in Pushover notifications doesn’t work. I’ve updated the blog post with the workaround, which is to use the downloader component to grab the file first and then send it.

Quick update - on further testing, just sticking in the download before the notification doesn’t always work. The downloader is asynchronous, so there’s no guarantee that it will have downloaded the file before the notification is sent.

The solution is to listen for the download complete event and send the notification from there. It also means setting the message title and detail to object level variables so they’re visible in the callback. I’ve also added a step to delete the temporary file.

Has anyone tried using opencv with the google coral accelerator? I’ve read it should work well with the yolo models but can’t find the documentation to connect the dots… is it just a recompile of opencv or do the scripts used by zmnotification need updating too?