Skip to content

Chime Transport Adaptor

Transport ID Source Requirements Optional
chime chime.py - Alexa Devices Integration, Alexa Media Player Integration, RFLink, MQTT Siren etc.

Notify using a sound of your choosing - for example a doorbell, barking dog, siren or recording. This works with a variety of devices, from cheap 433Mhz doorbell units to Amazon Echo devices.

You can mix and match any of these devices, and also map their different implementations to the same logical sound using simple alias names, for example doorbell. Then within notifications, you can ask for a doorbell sound and it will generated by each device in its own way. Even if you don't have a variety of devices, this also keeps complicated chime names (like Amazon tune paths ) out of your automation code. See the Example code at the bottom of this section.

Switch and Siren

Provide a list of switch, siren entities to use for chimes and it will call the switch.turn_on or siren.turn_on calls as appropriate.

Switches are simple binary affairs, however some sirens can also have a choice of tones, volume level and durations. The following generic chime tunings are passed to the siren.

Chime Option Siren Data Field
chime_tune tone
chime_volume volume
chime_duration duration

Supernotify passes on the data structure exactly as it is on the regular Home Assistant actions, see the documentation for those integrations below:

Switches are a little special, in that though they are binary on/off in Home Assistant, in practice even some of the cheap 433Mhz ones can take an additional melody code, its common to have different melodies represented by separate switch entities for the same underlying devices as in this example Byron device using the RFLink integration.

- platform: rflink
  devices:
    byron_0000_01:
      name: Chime Tubular
    byron_0000_02:
      name: Chime Morning Dew
    byron_0000_03:
      name: Chime Big Ben

Scripts

Provide one or more script entity IDs, for example, script.call_bell_api.

Each script will be called with:

  • message - from the notification
  • title - optional on the notification
  • chime_tune - name of the chime if supplied
  • chime_duration - where passed in action data or defined in chime alias
  • chime_volume - where passed in action data or defined in chime alias

Additional variables can be configured when defining an alias using the variables attribute in data.

See also Script in HomeAssistant documentation.

Alexa Media Player

NOTE: Requires the Alexa Media Player integration to be installed on Home Assistant.

Supply media_player entities as targets and this transport will make appropriate media_player.play_media action calls to them, passing the sound name provided in tune field.

See https://github.com/alandtse/alexa_media_player/wiki#known-available-sounds for a list of known tunes that work with Alexa devices.

Alexa Devices

This supports the newer built-in Alexa Devices integration introduced in 2025.

The list of sounds can be found on the Alexa API, after authenticating, or on the Home Assistant source code. It includes a generous helping of Halloween specific sounds.

One oddity of this integration is that although it generates traditional entity IDs for notifying Alexa devices, sending a sound ( or command ) requires a long and obscure device_id (a 32 character random hexadecimal pseudo-UUID). While you can find these from the Devices section of the Alexa Devices integration config, or using the Action feature of Developer Tools and switching to yaml mode, the easiest way is to automatically register all Alexa devices by using device_discovery: True on the transport configuration. (Sometimes you may end up with odd devices like headphones or firesticks that Alexa knows about but don't make sense for HomeAssistant usage - these can be disabled from the Alexa Devices integration config).

Example

transports:
  chime:
    device_discovery: True
    target:
      - media_player.kitchen_echo
      - media_player.bedroom
      - ffff0000eeee1111dddd2222cccc3333 # Alexa Devices device_id
    options:
        chime_aliases:
              doorbell: #alias
                alexa_devices: # integration domain or label ( if label then domain must be a key in the config )
                    tune: amzn_sfx_cat_meow_1x_01
                media_player:
                    # resolves to media_player/play_media with sound configured for this path
                    tune: home/amzn_sfx_doorbell_chime_02
                    # entity_id list defaults to `target` of transport default or action call
                    # this entry can also be shortcut as `media_player: home/amzn_sfx_doorbell_chime_02`
                media_player_alt:
                    # Not all the media players are Amazon Alexa based, so override for other flavours
                    tune: raindrops_and_roses.mp4
                    target:
                        - media_player.hall_custom
                switch:
                    # resolves to switch/turn_on with entity id switch.ding_dong
                    target: switch.chime_ding_dong
                siren_except_bedroom:
                    # resolves to siren/turn_on with tune bleep and default volume/duration
                    tune: bleep
                    domain: siren # domain must be explicit since key is label not domain and no explicit targets
                siren_bedroom:
                    # short and quiet burst for just the bedroom siren
                    domain: siren
                    tune: bleep
                    target: siren.bedroom
                    volume: 0.1
                    duration: 5
                script:
                    target: script.pull_bell_cord
                    data:
                      variables:
                        duration: 25

              red_alert:
                # non-dict defaults to a dict with a single key `tune`
                alexa_devices: scifi/amzn_sfx_scifi_alarm_04
                siren: emergency

With this chime config, a doorbell notification can be sent to multiple devices just by selecting a tune.

    - action: notify.supernotify
      data:
        message: ""
        delivery:
            chimes:
                data:
                    chime_tune: doorbell