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 notificationtitle- optional on the notificationchime_tune- name of the chime if suppliedchime_duration- where passed in action data or defined in chime aliaschime_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.