Slim omgaan met TTS in Home Assistant

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.

Loading


Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie gegevens worden verwerkt.