HOWTO: Alexa Doorbell Announcements

I’ve noticed there are a few posts on how to create an Alexa Doorbell that will announce when the bell is rung and they are using the Alexa Media Player Add On. However the Alexa can support this natively if you don’t need to customise the announcement.

First check doorbell announcements are supported for your Alexa’s language: List of Alexa Interfaces and Supported Languages | Alexa Skills Kit
Look for DoorbellEventSource

Instructions…

  1. Create a binary_sensor - you need this to go ‘on’ when you want the Alexa announcement to happen. I’m using a template here that is backed by an input_boolean that is set when I think someone is at the front door. Don’t forget to turn this back off so that future events are received.
binary_sensor: 
  - platform: template
    sensors:
      front_doorbell:
        friendly_name: "Front Doorbell"
        value_template: >-
          {{
            is_state('input_boolean.front_doorbell', 'on')
          }}
  1. Expose the binary sensor to Alexa in your alexa configuration. The name you give it will be announced as follows on your Alexa(s): "There is somebody at the " (you can’t change the structure of this message if you want something different you will need to use one of the ways that uses TTS / Alexa Media Player)

NOTE. I explicitly include entities for Alexa hence the filter - check the docs for the way you configure your own setup: Amazon Alexa Smart Home Skill - Home Assistant

alexa:
  smart_home:
  # ....
    filter:
      include_entities:
        - binary_sensor.front_doorbell
        # ... 
    entity_config:
      binary_sensor.front_doorbell:
        name: "Front Door"
        display_categories: DOORBELL

  1. Restart and discover devices in Alexa in the normal way (“Alexa Discover Devices”).

  2. Open the Amazon Alexa app on your phone and select “Devices” → “All Devices” and find the newly added device and click it.

In the window that appears turn on “Doorbell Press Announcements” and then select “Announcement Devices” to chose which Alexa(s) will make the announcement.

  1. Press your doorbell and see if it worked.
4 Likes

This is excellent thank you!

Worth noting you will need to set up endpoint, client_id and client_secret as explained here: Amazon Alexa Smart Home Skill - Home Assistant

Once added to the configuration and the permission has been granted in the Developer Console, restart HA, disable the Alexa Dev skill, enable the Alexa dev skill, and then restart HA. It should now be listening to your binary_sensor!

1 Like

Hi,
I’ve set up such a sensor, conected it to may Alexa but in the configuration ist shows only that it’s a doorbell sensor, but no announcements are made. There is also no such switch in Alexa to configure the annoucements. Any ideas?

It needs to be a binary_sensor not a sensor.

Thanks a lot - that is no solved, doorbell is no available in Alexa.
But nothing happens when I trigger that sensor from Home Assistant. Is there any log / any idea to
look into??
Thanks - JJ

Have you made sure that you have done this as well?

The logging is done as part of the alexa integration. You can increase the logging of that integration by adding the following to the configuration.yaml:

logger:
  default: info
  logs:
    homeassistant.components.alexa: debug

I’m a newbie to Home Assistant. I am trying to trigger with a Zigbee push button switch. I’ve got the doorbell press announcements toggle in the Alexa app, and proactive events on.

I am struggling with creating an action to turn binary_sensor.front_doorbell to “on”. The following does not work.

alias: Front doorbell action
description: ""
trigger:
  - device_id: (redacted)
    domain: zha
    platform: device
    type: remote_button_short_press
    subtype: remote_button_short_press
condition: []
action:
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: binary_sensor.front_doorbell
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: binary_sensor.front_doorbell