tl;dr
I have Amcrest doorbell snapshots working via ffmpeg camera
as well as playing back MP4 clip of last activity.
Hi @JTPublic
Very nice summary in your OP - thanks for that. I have been using a Skybell Doorbell for a few years and got fed up with not being able to see live views or snapshots in HA, but only through their app. The Amcrest Doorbell solves that - including real-time snapshots!
I’ve been working with it for a few weeks now, and have it integrated with HA with pretty much all the capability I was needing. Via a Picture Entity Card, I have a snapshot (camera view “Auto”) that changes every 10 seconds, and when clicking on it, a live view streams.
I also have a second Webpage Card which shows the recorded MP4 of the most recent motion/doorbell push. (This was a feature the Skybell integration had that I didn’t want to lose). There is a play button on this card to replay the motion, otherwise it stops on the last frame.
I have HA sending Telegram notifications of doorbell button/motion events within seconds, with the option to send the snapshot, MP4, or just a text. You really don’t need to open the SmartHome app except to talk to the visitor or play back archived images from the sdcard .
The Amcrest Doorbell also records to my Dahua NVR just fine. You just have to be careful to not configure anything on the Amcrest Doorbell with any other software other than SmartHome, else you will most likely have to factory reset it, or worse, brick it.
I advise against using the Amcrest integration at this time because it currently has no way to obtain snapshots. This is because the Amcrest API and associated python library has no provision for accessing a snapshot through any known URL. Otherwise, the Amcrest integration will work fine for live streams and responsive motion events, but not doorbell events, and will spew a lot of attempted snapshot errors in the log.
However, I have discovered that the FFMPEG camera integration works great, and has the major benefit of being able to automatically create a snapshot from the rtsp stream. Be aware that the live view can have some substantial lag of several seconds. Calling the snapshot service works, but it too will capture the moment with the same lag, so snapshots tend to capture package deliverers back ends walking away. I think it’s preferable to just use the camera.record MP4 video (with lookback matching the lag) instead of the snapshot. YMMV on the lag time depending on your processor speed. For my RasPi4, it is about 7-10 seconds.
For instant button press/motion alerts, I have an old Android phone dedicated to running Tasker which receives Amcrest SmartHome notifications then activates events via HA’s Rest API. (I had been using this same technique for Skybell alerts, with great reliability).
Here’s the camera config I use:
- platform: ffmpeg #Amcrest AD110 Doorbell Camera
input: !secret rtsp
extra_arguments: '-filter:v crop=1280:720:474:360'
name: "Amcrest Doorbell"
In secrets.yaml, add: rtsp: rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0
The crop filter isn’t necessary, but I use it to reduce the size of the snapshot from FHD to HD and crop out edges that are just brick walls. The live video is still the full FHD stream.
For those of you that have fast processors running HA, this may be all you need along with the hacks to capture doorbell/motion events. That is, I am assuming a faster processor will reduce the lag considerably so that snapshots are closer to real time than rear-end time
EDITS: Previously I was trying to use a second FFMPEG camera with MP4 as input but found that STREAM does not support that. Using the webpage lovelace card referencing the local recorded MP4 works nicely.