AD110 Doorbell Push Event - Seems to be an Unsolved Mystery

I’ve searched, experimented, installed, etc. I’ve tried a range of home automation and security software, but I have had no luck in triggering an event based on an AD110 doorbell push. Seems like a simple function and what’s odd is that the most complex functions of the AD110 doorbell are supported by just about everyone, just not the doorbell push. Why? I would appreciate, and pay, for clear guidance on how to access the doorbell push event so I can trigger an automation? I’ve spent weeks searching and testing many solutions, to include the conversations in this blog, none worked. Video works great, motion detection fine, but doorbell press, no. Thanks in advance, Mike. p.s. I’m not really a blogger and I’m sure my category and tag are likely incorrect. It’s been a while, maybe years, since I’ve had to reach out to a dev community for tech support.

Did you see this? Fully Offline Video Doorbell for Home Assistant - Amcrest AD110

This article shows an entity for the doorbell button, that one could be used for the automation.

I used it for while… Maybe can be improved my some master coder.

#!/usr/bin/python3

import sys
import paho.mqtt.publish as publish
from datetime import datetime
from amcrest import Http



def lines(ret):
    line = ''
    for char in ret.iter_content(decode_unicode=True):
        line = line + char
        if line.endswith('\r\n'):
            yield line.strip()
            line = ''

def main():
    host = "DOOR BELL IP" # Put the doorbell IP here
    port = 80
    user = "admin"
    pswd = "YOUR PASSWORD" # Put the doorbell password here

    cam = Http(host, port, user, pswd, retries_connection=1, timeout_protocol=3.05)

    ret = cam.command(
        'eventManager.cgi?action=attach&codes=[_DoTalkAction_]',
        timeout_cmd=(3.05, None), stream=True)
    ret.encoding = 'utf-8'

    try:
        for line in lines(ret):
            if "Invite" in line:
                #print(datetime.now().replace(microsecond=0), ' - Doorbell Button Pressed')
                publish.single("doorbell/button", "Ring", hostname="192.168.0.10") # MQTT server IP
    except KeyboardInterrupt:
        ret.close()
        print(' Done!')

if __name__ == '__main__':
    main()

Weird, considering this is your first post.

After much troubleshooting, it was a firmware problem. Device indicates the firmware is up to date and there are no firmware downloads on the Amcrest website for AD110; however, while exchanging messages on another forum, a newer firmware version was posted, almost at random. That was the clue. I contacted Amcrest and surprisingly, they immediately responded with a download link and instructions.

With regard to the comment about “conversations on this blog,” I should have be clearer, I searched conversations on this blog, did engage in them. I was researching/searching for clues on troubleshooting and resolving to exhaust as many possibilities as possible before posting the question. It was pretty late and I’ve been at this for many days/late nights. I’m very happy it’s finally resolved!

I don’t see an option on this blog to attach a file; otherwise, I’d attach the firmware file. I did upload it to ipcamtalk in the Amcrest AD110 channel.

For those who need it, here’s the latest firmware version. Ask Amcrest and they’ll email a link for download or grab it from ipcamtalk.

Latest AD110 firmware: 1.000.00AC008.0.R.210422
Instructions for updating it: https://support.amcrest.com/hc/en-us/articles/4415484574349-How-to-Upgrade-Firmware-Using-the-Amcrest-IP-Config-Tool-ASH26-

So in the end, does it work via the amcrest integration, or by the amcrest2mqtt addon that @bouwew pointed to?