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 in a single notification call, and combine them with mobile_push, e-mail etc.

The range of tunes from modern devices gives a good alternative to being bothered with lots of push notifications. For example, if a PIR detects motion and the alarm panel is disarmed you could have a ping sound from Amazon Echos and chime devices.

Aliases

While you can construct an action call with a list of switches, device_ids, scripts etc and the names of tunes for them, it is much easier to configure this in one place using the alias definition.

So rather than remembering that the doorbell sound you like is called amzn_sfx_doorbell_chime_02 on Alexa, you can simply pass chime_tune: doorbell on each of your automations. This also means if you get bored with that doorbell sound, you can quickly change it one place for all automations that use it.

A doorbell notification can be sent to multiple devices just by selecting a tune ( see the Example Configuration below for how this can work.)

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

Another good reason is that when using multiple types of device, you can map their different terms 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.

In this example, a 433Mhz doorbell will go 'ding dong' and Alexa will play a doorbell noise when the chime_tune: doorbell is set on a notification, and if red_alert is set, it will use Alexa and a siren device.

Config Snippet
 chime_aliases:
    doorbell:
      alexa_devices:
        tune: amzn_sfx_doorbell_chime_02
      switch:
        target: switch.chime_ding_dong
    red_alert:
      alexa_devices: amzn_sfx_scifi_alarm_04
      siren:
        tune: emergency
        volume: 1.0
        duration: 30
      rest_command:
        alias: Use the custom sound on the camera, defined in rest_command section
        target: rest_command.camera_alarm_tune
        data:
          alarm_id: 12

For Alexa Devices, there's an additional benefit of using the aliases - it will automatically select all the Alexa device IDs ( those ugly 32 character hexadecimal ones ) if device discovery is left on, as is default. For everything else, you need to pass the list of target entity IDs in the notification action call.

The formal schema is published as Chime Aliases Definition. Validation of the config happens at start up by the chime transport, with errors sent to log with usually an explanation of which part of the config triggered the problem.

Device Types

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, by default Supernotify automatically register all Alexa devices - if you don't want this, switch off device_discovery at the transport or delivery level.

Sometimes you may end up with odd devices like headphones or firesticks that Alexa knows about but don't make sense for HomeAssistant usage, and also may have duplication if a group has been created inside the Alexa app ( which then appears to Home Assistant as another Alexa device even though its really a group of them. The weird devices can be disabled from the Alexa Devices integration config. Within Supernotify, you can use device_model_select and device_manufacturer_select to control the list - these take a single value, list of values, or include and exclude mappings, where values are plain strings or regular expressions. Chime transport has a default exclusion for Alexa Groups, specifying either an include or exclude list will switch off defaulting for both values.

Example

transports:
  chime:
    delivery_defaults:
      target:
        - media_player.kitchen_echo
        - media_player.bedroom
        - ffff0000eeee1111dddd2222cccc3333 # Alexa Devices device_id
      options:
          device_discovery: True
          device_model_select:
            exclude: Speaker Group
          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 # domain inferred from target
                  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:
                      alias: Short and quiet burst for just the bedroom siren
                      domain: siren
                      tune: bleep
                      target: siren.bedroom
                      volume: 0.1
                      duration: 5
                  script:
                      alias: Run a Home Assistant script defined elsewhere in config
                      target: script.pull_bell_cord
                      data:
                        duration: 25
                  rest_command:
                      alias: call a rest api passing data to the templated URL
                      target: rest_command.api_call_to_camera_alarm
                      data:
                        alarm_tone: 14

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

Rest Commands

Assuming this command is set up in the Home Assistant configuration:

CCTV Camera Siren
rest_commands:
  camera_siren:
      url: "http://10.111.10.202/ISAPI/Event/triggers/notifications/AudioAlarm/{{hik_alarm_code|default('11')}}/test?format=json"
      method: put
      username: !secret hik_user
      password: !secret hik_password
      authentication: digest

This chime alias in the transport definition will make it available as chime_tune: siren in notifications.

Supernotify Config Snippet
```yaml
transports:
  chime:
    delivery_defaults:
      options:
          chime_aliases:
            siren:
              rest_command:
                  target: rest_command.camera_siren
                  data:
                    alarm_code: 11

The same tune could also define MQTT sirens, or Amazon Echo devices making siren noises, so one call with chime_tune: siren and the whole house erupts.

Scenarios

Chimes work well with scenarios, you can easily add a chime for all critical notifications without having to change any of the automations. See Scenarios and Recipes for more details.

References

Home Assistant Core

Vendor