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.