Assistance silencing my doorbell

Hello
I am hoping you can help me here.

I have recently upgraded from using a Ring doorbell using a battery with just notifications on our phones to an Amcrest doorbell hardwired with a mechanical chime with the app on our phones.

We have a 20 month old toddler who naps during the day and sods says that all deliveries happen while he naps. The door bell has woken him a couple of times and therefore has made my wife very angry.

I thought i could hook up a node mcu to listen for when we have white noise playing in his room to then cut the power somehow to the mechanical chime. I then realised that the doorbell using 24v and the nodemcu uses 5v.

I could put a sonoff in before the transformer but that would then cut power completely to the doorbell. I would still like to get the notifications on our phones when someone presses the doorbell.

Do any of you clever people know how i could achieve disabling the mechanical doorbell while retaining the amcrest app notifications? as i would like to avoid aggravating the wife any further :slight_smile:

Thank you

I had in wall speakers in old home.
For doorbell I played sound in speakers

I now have announcement on Echos in my home w/ phone notification. I can better control where, when, how loud notification will be. It was much easier than doorbell. My dogs are my backup for HA down :smile:

Stick something between the hammer and the gong to muffle the sound. The app is now your new ‘chime’.

have you hooked up the the little Amcrest doorbell box in your chime? Does disabling the chime in the Amcrest smart home app prevent it from chiming?
If so… there is probably a line in the api that controls that setting… I did some digging when I got mine to try to find the button press and I feel like I found the setting for the chime, I will look when I get back in the house… it’s possible @GaryOkie remembers because I know he did a lot of snooping around as well…
but in the meantime I would go to Amcrest Chimes and and see if no chime does in fact prevent it from chiming

EDIT:
ok… so here is the part for the chime:

   },
   "ExternalDoorBell" : {
      "Enable" : true,
      "Time" : 3,
      "Type" : 1
   },

now just a matter of figuring out how to change it … usually something like /cgi-bin/SetConfig …
Amcrest no longer releases documentation for their API so it really is just trial and error… but Many have warned that changing things outside of Amcrest app can result in needing to factory reset the doorbell, or brick it altogether…

Edit Again:
ok this is the command that will turn it on and off… I use curl in shell commands for stuff like this…

http://<your.doorbell.ip>/cgi-bin/configManager.cgi?action=setConfig&ExternalDoorBell.Enable=false

and to turn back on:

http://<your.doorbell.ip>/cgi-bin/configManager.cgi?action=setConfig&ExternalDoorBell.Enable=true

I would test it in a browser first to make sure it works…

So your shell_commands would look like this:

amcrest_doorbell_enable: 'curl -s --digest -u admin:<password> "http://<your.doorbell.ip>/cgi-bin/configManager.cgi?action=setConfig&ExternalDoorBell.Enable=true"'

amcrest_doorbell_disable: 'curl -s --digest -u admin:<password> "http://<your.doorbell.ip>/cgi-bin/configManager.cgi?action=setConfig&ExternalDoorBell.Enable=false"'
3 Likes

@Bartem Wow wow wow

Thank you so much, I keep hearing on the podcast that the community is so helpful and wow it is. Thank you

I do have the little white box in the chimer and can confirm the setting in the app stopped the chime.

I will give it a go and let you know what happens. Thank you again

2 Likes

This solution is working very well. Thank you

1 Like

Scripts works for me, i will check if it is also works on the chime if i am hearing the bell or not. I am so happy if this works then i can make some button on HA so i can disable/enable, this is so beautiful thanks for that.

Another question: i need to get a notification in HA when someone pushed the button, so with that notification in HA i will send notification to email or maybe something like that, but how can i easly do that and is that also possible?

It works like a charm thank you so much!!! @Bartem

How about the push button notification, do you maybe have some idea how we can implement that also?

I wanted to chime in here because I had the same exact need: to silence my interior chime during nap times. I’ve opened a request to have the functionality added to the official Python module that Home Assistant uses. However, in the meantime, here’s a super simple way to bundle all this up into one super switch.

- platform: command_line
  switches:
    doorbell_chime:
      unique_id: doorbell_chime
      friendly_name: Doorbell Chime
      command_on: 'curl -s --digest -u admin:password "http://192.168.1.xxx/cgi-bin/configManager.cgi?action=setConfig&ExternalDoorBell.Enable=true"'
      command_off: 'curl -s --digest -u admin:password "http://192.168.1.xxx/cgi-bin/configManager.cgi?action=setConfig&ExternalDoorBell.Enable=false"'
      command_state: 'curl -s --digest -u admin:password "http://192.168.1.xxx/cgi-bin/configManager.cgi?action=getConfig&name=ExternalDoorBell.Enable"'
      value_template: '{{ value.split("=")[1] == "true" }}'
      icon_template: >
        {% if value.split("=")[1] == "true" %} mdi:bell-ring
        {% else %} mdi:bell-off
        {% endif %}

This will give you a switch with an accurate state and allow you to toggle the chime, all in one go. Use it and build your automations!

3 Likes

Thanks for posting but this doesn’t seem to work for the AD410. Is it possible to disable the mechanical chime for the AD410?

edit: For anyone who comes across this in the future, I figured this out on my own. This works for the AD410

    doorbell_chime:
      unique_id: doorbell_chime
      friendly_name: Doorbell Chime
      command_on: 'curl -s --digest -u username:password "http://192.168.xx.xx/cgi-bin/configManager.cgi?action=setConfig&ExternalDoorBell.Type=1" && curl -s --digest -u username:password "http://192.168.xx.xx/cgi-bin/configManager.cgi?action=setConfig&ExternalDoorBell.Enable=true"'
      command_off: 'curl -s --digest -u username:password "http://192.168.xx.xx/cgi-bin/configManager.cgi?action=setConfig&ExternalDoorBell.Type=0" && curl -s --digest -u username:password "http://192.168.xx.xx/cgi-bin/configManager.cgi?action=setConfig&ExternalDoorBell.Enable=false"'
      command_state: 'curl -s --digest -u username:password "http://192.168.xx.xx/cgi-bin/configManager.cgi?action=getConfig&name=ExternalDoorBell.Enable"'
      value_template: '{{ value.split("=")[1] == "true" }}'
      icon_template: >
        {% if value.split("=")[1] == "true" %} mdi:bell-ring
        {% else %} mdi:bell-off
        {% endif %}

Hi.

If I understand correctly, you managed witht he curl commands to shut down your mechanical chime on the AD410, correct?

I tried to run the 2 commands from a browser, which sucessfully shuts down my mechanical chime but interestingly, if the doorbell is rang during the time it’s off, when it comes back on (type=1), it will ring right away, as if it remembered it had to ring but didnt have the chance to. Did you encounter the same behaviour and/or have an idea to “flush” those rings before re-activating?

Thanks

I have the same issue you are having. Works great to turn off and turn on the chime, it’s just that if there are any doorbell presses when it is disabled, those will chime when the chime is enabled.

I did find that this value changes when the doorbell is pressed with the chime off
Before button press:
table.All.CallInfo.CallID=3
After button press:
table.All.CallInfo.CallID=7

But doing a call to manually change that value throws an error (possibly because I am doing it wrong)

Let me know if you find something on your front.

In the meantime I found a “workaround” to avoid the ring upon re-enabling.
Before resetting Type=1 and Enable=True, I reboot the doorbell (http://xxx.xxx.xxx.xxx/cgi-bin/magicBox.cgi?action=reboot). This seems to erase missed calls. Of course it’s not optimal because that means the doorbell is not available for ~1m. After it’s back online then I send it type=1 and enable=true and it works.

I’m guessing you used the full table.All.CallInfo.CallID as the command?

You can set it by calling http://DOORBELL_IP/cgi-bin/configManager.cgi?action=setConfig&CallInfo.CallID=X. However, resetting the value doesn’t stop it from ringing when you re-enable the doorbell.

I ran a quick script to pull all config values before disabling the doorbell, after ringing it while disabled, and after re-enabling it. Unfortunately, the only values that changed were CallInfo.CallID, ExternalDoorBell.Type, and ExternalDoorBell.Enable

It’s possible that setting PhoneCallDetectAlarm[0].EventHandler.LogEnable=false when you disable the chime or right before re-enabling could fix it, but I haven’t tested it.

@GaryOkie might know more? He seems to have a pretty good handle on the API for these doorbells… At least, I always see his handle when I’m searching on here or on the Amcrest forums.

Hi.

Thanks for the idea of eventhandler.
I have tried to set it to false before pushing the doorbell and after pushing the doorbell but in both cases, it doesnt seem to work. Upon re-activating the doorbell, it will still ring.

That’s a bummer.

If you don’t already know, you can view all the config by going to http://DOORBELL_IP/cgi-bin/configManager.cgi?action=getConfig&name=all

I will usually just view it in my browser instead of over the CLI. There’s a crazy amount of config, too much for it to be useful over the command line.