Custom tones
A custom tone is a sound of up to 30 seconds stored on the device. Once uploaded, it shows up in every sound picker: the device chime, message chimes, timer sound, alarms, intercom rings, the wake word tone and the mute sounds.
With the EchoLocal integration
Section titled “With the EchoLocal integration”The EchoLocal integration’s Tones tab is the easy way.
-
Open the EchoLocal dashboard and the Tones tab.
-
Upload a sound file. Trim silence and Even out loudness tidy it up first.
-
Pick the devices to send it to. It’s converted and uploaded to each.
-
Choose it in any sound picker, on the device or in Home Assistant.
The tab also renames, replaces and deletes tones, and shows which devices have each one. The
actions echolocal.assign_tone and echolocal.unassign_tone do the same from automations.
With the device’s actions
Section titled “With the device’s actions”The device has three actions:
| Action | Fields |
|---|---|
tone_write |
key, name, page, pages, data |
tone_rename |
key, name |
tone_remove |
key |
- key: lowercase letters, digits,
-and_, up to 64 characters, starting with a letter or digit. Writing an existing key replaces that tone. - name: what the pickers show.
- data: the sound as raw 16-bit little-endian mono PCM at 48 kHz, base64 encoded, sent in
pages of 32 KB (before encoding).
pagecounts from 0;pagesis the total.
To make the raw sound from any file:
ffmpeg -i doorbell.mp3 -ac 1 -ar 48000 -f s16le doorbell.rawThen split it into 32 KB pieces and call tone_write once per piece, with the same key, name
and pages, or let the integration do it.