Slim omgaan met TTS in Home Assistant
Slim omgaan met TTS in Home Assistant: één script voor al je speakers
Wie met Home Assistant werkt, weet dat apparaten soms van naam veranderen. Zeker wanneer je Music Assistant gebruikt, kunnen media‑players regelmatig wisselen of opnieuw worden aangemaakt. Het gevolg: automations die ineens niet meer werken omdat een entity niet meer bestaat.
Gelukkig is er een elegante oplossing: gebruik één centraal script voor je TTS‑berichten. Daarmee hoef je nooit meer tientallen automations na te lopen wanneer een speaker verandert. Je past het alleen in het script aan en alles werkt weer.
In deze blog leg ik uit hoe je dat doet.
Waarom een script gebruiken voor TTS?
Veel mensen zetten TTS‑acties rechtstreeks in hun automations. Dat werkt prima, totdat:
- een speaker een andere entity‑naam krijgt
- je overstapt op een andere TTS‑engine
- je een nieuwe speaker wilt gebruiken
- Music Assistant een device opnieuw aanmaakt
Met een centraal script voorkom je dat probleem. Je automations verwijzen alleen naar het script, en het script bepaalt welke speaker en welke TTS‑engine gebruikt worden.
Stap 1: Maak een helper voor je standaard speaker (optioneel maar handig)
Ga naar:
Instellingen → Apparaten & Services → Helpers → Input Text
Maak een nieuwe helper:
- Naam:
default_tts_player - Waarde: bijvoorbeeld
media_player.home_mini_groep
Deze helper kun je later eenvoudig aanpassen via de UI, zonder YAML.
Stap 2: Maak het TTS‑script
Dit script bevat een invoerveld voor de tekst die uitgesproken moet worden. Daardoor verschijnt er in de automation‑editor automatisch een tekstveld.
script:
tts_to_default_speaker:
alias: "TTS naar standaard speaker"
fields:
message:
name: Bericht
description: De tekst die uitgesproken moet worden
required: true
selector:
text:
sequence:
- service: tts.speak
data:
cache: true
media_player_entity_id: "{{ states('input_text.default_tts_player') }}"
message: "{{ message }}"
target:
entity_id: tts.google_nl_com
Je kunt hier later zonder problemen aanpassen:
- welke speaker gebruikt wordt
- welke TTS‑engine je wilt gebruiken
- extra functies zoals volume instellen of muziek pauzeren
Zolang de scriptnaam hetzelfde blijft, blijven al je automations werken.
Stap 3: Gebruik het script in je automations
In je automation kies je simpelweg:
service: script.tts_to_default_speaker
En je krijgt automatisch een veld Bericht, waarin je bijvoorbeeld kunt zetten:
{{ generated_text.data }}
Of gewoon een vaste tekst.
Waarom dit zoveel fijner werkt
- Je hoeft nooit meer automations te openen als een speaker verandert
- Je kunt eenvoudig wisselen tussen TTS‑engines
- Je kunt het script uitbreiden zonder automations te breken
- Alles blijft overzichtelijk en centraal beheerd
Voor iedereen die regelmatig met TTS werkt in Home Assistant is dit een enorme kwaliteitsverbetering.
Uitbreiden? Dat kan altijd
Later kun je dit script eenvoudig uitbreiden met:
- meerdere speakers
- automatische selectie van beschikbare speakers
- volumeregeling
- pauzeren en hervatten van muziek
- fallback‑speakers
Maar de basis blijft hetzelfde: één script, alle automations blij.
Heb je ideeën voor een vervolgblog, zoals TTS naar meerdere speakers of dynamische volumeregeling? Laat het me weten.
![]()