Amcrest video doorbell AD110 initial impressions

Tried now the sonoff camera and rtsp feed.
Also the same error :

2020-03-17 21:06:55 INFO (MainThread) [homeassistant.components.stream] Started stream: rtsp://rtsp:[email protected]:554/av_stream/ch0
Exception in thread stream_worker:
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/src/homeassistant/homeassistant/components/stream/worker.py", line 49, in stream_worker
    container = av.open(stream.source, options=stream.options)
  File "av/container/core.pyx", line 275, in av.container.core.open
  File "av/container/core.pyx", line 227, in av.container.core.Container.__cinit__
  File "av/container/core.pyx", line 129, in av.container.core.ContainerProxy.__init__
  File "av/container/core.pyx", line 195, in av.container.core.ContainerProxy.err_check
  File "av/utils.pyx", line 105, in av.utils.err_check
av.AVError: [Errno 22] Invalid argument: 'rtsp://rtsp:[email protected]:554/av_stream/ch0' (16: tcp)

@huuub I would suggest fixing the issue with docker/rtsp first before adding amcrest integration to the mix. I would be happy to help with the doorbell integration when rtsp is working for you.

I finally fixed it. After messing up a lot of things I finally tried to remove the “?” out of the password.
Stupid of me!!!
But thanks a lot for trying to help me out.

Has anybody been able to get snapshots working in HA for this doorbell camera? I’ve installed it and love it so far, but it’d be nice to have a snapshot instead of an empty space in the Lovelace UI.

If you are talking about calling camera.snapshot service on this doorbell camera through the HA Amcrest integration, then no, I get an error when doing that. (Other cameras work fine)

image
Keep in mind this camera is not official supported by this integration yet.
BTW, I tried the Amcrest HTTP API to get snapshot, doesn’t work either.

If you are talking about cards like picture-glance in lovelace, this works for me:

                - type: picture-glance
                  title: Front Door
                  entities: []
                  camera_image: camera.doorbell_camera
                  camera_view: live

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 :wink:

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.

Hi, i am very interested on buy this doorbell, but have a question the ding dong event xD, can be captured by a sensor on ha to trigger some automation?? or is just with motion detection ?, i really want to trigger a automation when somebody knock the door, like pause the tv

AFAIK, there is no access to the doorbell event from this yet. I have the old-fashion electromagnetic doorbell which had a door sensor I added and integrated in HA. We’ll need real integration of this doorbell for HA.

Fantastic work - I purchased this doorbell (arrived this morning) and it took me around an hour to get it installed and in home assistant (while having dinner tonight)

one issue is that I can’t seem to get the ‘last motion’ stream working - can you confirm your settings for this part?

Welcome to the community.
Not quite sure what ‘last motion’ stream is, would you please describe?

If he means streaming the recorded activity from the doorbell camera SD-Card (or NVR) - no can do.

If he means playing back ‘camera.record’ mp4 recordings from motion detection, lovelace webpage/iframe card can do that.

If you don’t have an old Android phone that you can dedicate to this, an Android emulator for Linux should work to run a Tasker/SmatHome app instance, but I’ve never tried that. Many to choose from - Andro, Genymotion…

See this post for Tasker configuration to call Home Assistant services. There is also a Home Assistant plugin for Tasker that is optional, and might simplify the config a bit.

@GaryOkie, good tasker idea for the button event workaround.

In my original post/edit, I did test to directly play the ‘last motion’ recording on the doorbell’s SD card:

Found a way to view sd card recording in VLC:
rtsp://[user]:[password]@[cameraIP]:[port]/cam/playback?channel=1&startTime=YEAR_MM_DD_HH_MM_SS&endTime=YEAR_MM_DD_HH_MM_SS, for example, startTime=2020_02_16_00_00_00 &endTime=2020_02_16_23_59_59 will play the last recorded video on 2020-02-16 from 00:00:00 to 23:59:59, ....

Haven’t done much since.
I’ll try setting up the rtsp stream as generic camera and tie that in with my button press sensor to test 'last motion" streaming, maybe even archiving those streams.

Be careful @JTPublic with that playback command. I’m not 100% certain, but it was right after I tried that command my live display went dark, but everything else worked. I had to factory reset it. You mentioned you had to factory reset yours as well after your display blanked out.

I knew better than to attempt any HTTP CGI command that changes settings, which are well known to mess up that doorbell. A playback from SD-Card command shouldn’t harm it, but I don’t know what else I did that would have corrupted it.

Yes, that’s a concern and why I did not do much with that since.
For playback testings, sometimes the doorbell will lose wifi connection (restarted?) and back online later. I suspected bad parameter values crashing and rebooting the doorbell.

@jtpublic - A more complete caution is do not attempt to configure the AD110 via ANY software other than Amcrest SmartHome. This includes Amcrest’s HTTP API, their ipconfig tool and Amcrest/Dahua NVR’s, as well as BlueIris. Especially do not attempt to change motion detection options except via SmartHome. The RTSP cam/playback command to retrieve SD-Card images must be avoided too.

However, I have tried many HTTP API “GET” commands, and most worked fine to retrieve info. Some failed with error messages indicating that they weren’t supported (such as get a snapshot). Please avoid issuing any API commands that will change configurations as the AD110 will very likely need to be factory reset (or worse - bricked).

To dump the entire AD110 configuration to a file (some quite interesting stuff in it):
http://<ip_address>/cgi-bin/Config.backup?action=All

Video/Audio formats:
http://<ip_address>/cgi-bin/configManager.cgi?action=getConfig&name=Encode

Motion Detect current settings:
http://<ip_address>/cgi-bin/configManager.cgi?action=getConfig&name=MotionDetect

HTTP API Version:
http://<ip_address>/cgi-bin/IntervideoManager.cgi?action=getVersion&Name=CGI

SYSTEM Info:
http://<ip_address>/cgi-bin/magicBox.cgi?action=getSystemInfo

Doorbell Name
http://<ip_address>/cgi-bin/magicBox.cgi?action=getMachineName

…and quite a few others of lesser interest.

Agree, updated warning in OP.

To add to the list,
Getting rtsp stream:
http://<ip_address:port>/cam/realmonitor?channel=1&subtype=<0 or 1>
where 0=1920x1080, 1=640x480

Hey,
Cheers for the welcome (although this is actually my 2nd account - I made a new Github because I lost my old one - started it pre-password manager and it never got imported :man_facepalming:)

Yeah, it was the snapshot URL, it doesn’t freeze it for me (that happened on Mjpeg for me) - has anyone looked at one of the dumped configs?

There are a couple of interesting things:

  • DVRIP
  • T2UServer
  • Push message config

I’ll not be able to more probing till either tonight or the weekend, but there might be something in there

Yep, quite a few interesting nuggets of info to be found in the config.backup dump.

The “DVRIP” info in the config does not reflect anything related to my current Dahua NVR (DVR) connection, so I assume this is possibly a placeholder for future DVR support. This would be especially welcome in the app to allow retrieving motion clips from the DVR instead of SD-Card or Cloud.

The T2UServer info does appear to be an active configuration for the app to talk to a cloud service to provide 2-way talk to the doorbell remotely.

Is anyone else having loads of unwanted motion alerts? It keeps picking up cars driving by on a street that is 60’-70’ away from doorbell. Funny, since the PIR motion maximum range is documented at 10 meters (~33’). I have the AD110 range set to 1 (lowest sensitivity) and the red block out zone completely covering the street and half the front yard.

I am wondering if the Amcrest Motion Detection documentation is wrong. In other Amcrest cameras, the zone you highlight in color is the area you want to enable motion detection in.

This AD110 doc says the exact opposite: "Use you finger to highlight the area(s) on the screen that you would like to block motion detection events. " What’s also weird is their example highlights the entire view in red. So the example blocks everything?

In any case, I’ve tried reversing the block out zone and not seeing an improvement. Now trying turning off the zone completely. I may have to resort to completely disabling motion sensing in this doorbell and adding my own PIR sensor on the porch ceiling pointing down.

EDIT: right after I made this change, 2 cars went by. No alerts. (Range=1). WTF is going on with that red block (or detect?) zone I wonder? It’s also very windy and all sorts of movement from plants, trees, shadows. Not sure PIR sensor should be reacting to that though.