Home Assistant Custom Sentences: Eigene Sprachbefehle in configuration.yaml erstellen und anpassen
Home Assistant bietet mit seiner Voice Control Integration zahlreiche Möglichkeiten zur Sprachsteuerung deiner Smart Home Geräte. Besonders leistungsstark wird es, wenn du eigene Sätze (Home Assistant Custom Sentences) und Intents definierst, um Sprachbefehle genau an deine Bedürfnisse anzupassen. Dieses Tutorial richtet sich an technisch versierte Anwender und zeigt dir detailliert, wie du in der configuration.yaml eigene Sprachbefehle einrichtest, Antworten individualisierst und Aktionen realisierst.

Inhaltsverzeichnis

1. Grundlagen: Sprachsteuerung in Home Assistant verstehen1.1 Was sind Intents und wie werden sie verwendet?
1.2 Eigene Intents anlegen mit intent_script
2. Custom Sentences im Config Directory anlegen2.1 Aufbau der Custom Sentences DateienErläuterungen:
2.2 Aktion und Antwort für den Intent definierenFunktionsweise:
3. Bestehende Antworten anpassen (Customizing Responses)3.1 Beispiel: Antwort für den Intent HassTurnOnDetails:
4. Praktischer Einsatz: Anwendungsfälle und Erweiterungen4.1 Sprachbefehle mit Parametern
4.2 Integration in Automatisierungen
4.3 KI-gesteuerte Personalisierung
5. Fazit

1. Grundlagen: Sprachsteuerung in Home Assistant verstehen

Die Sprachsteuerung in Home Assistant basiert auf Intents – vordefinierte Aufgaben, die durch bestimmte Sätze ausgelöst werden. Standardmäßig sind Intents mit festen Befehlen verknüpft, etwa HassTurnOn für „Licht einschalten“. Durch Custom Sentences kannst du diese Befehle erweitern oder komplett neue Intents definieren.

1.1 Was sind Intents und wie werden sie verwendet?

Ein Intent ist eine Absichtserklärung, z. B. „Licht anmachen“. Er verbindet einen oder mehrere Satzmuster mit einer Aktion oder Antwort. Intents werden in der conversation-Integration definiert:

conversation:
intents:
HassTurnOn:
- "turn on {name}"
- "activate {name}"

Im Beispiel wird der bereits vorhandene Intend HassTurnOn um den Satz „activate {name}“ ergänzt. So wird der Befehl „activate the kitchen lights“ genauso verstanden wie „turn on the kitchen lights“.

1.2 Eigene Intents anlegen mit intent_script

Neben der Erweiterung vorhandener Intents kannst du komplett neue Intents mit zugehörigen Aktionen und Antworten definieren, indem du die intent_script-Integration nutzt. Das folgende Beispiel zeigt, wie ein neuer Intent definiert wird, der eine Antwort zurückgibt:

conversation:
intents:
YearOfVoice:
- "how is the year of voice going"

intent_script:
YearOfVoice:
speech:
text: "Great! We're at over 40 languages and counting."

Du kannst in intent_script aber auch Home Assistant Services aufrufen oder Events auslösen – so automatisierst du beliebige Vorgänge per Sprachbefehl.

2. Custom Sentences im Config Directory anlegen

Für erweiterte Anpassungen bietet Home Assistant die Möglichkeit, Satzdefinitionen in separaten YAML-Dateien im Verzeichnis config/custom_sentences// abzulegen. Dies schafft Übersichtlichkeit, eine bessere Wartbarkeit und mehr Flexibilität.

2.1 Aufbau der Custom Sentences Dateien

Als Beispiel definieren wir einen neuen Intent SetVolume, der die Lautstärke eines bestimmten Media-Players setzt.

Datei: config/custom_sentences/en/media.yaml

language: "en"
intents:
SetVolume:
data:
- sentences:
- "(set|change) {media_player} volume to {volume} "
- "(set|change) volume for {media_player} to {volume} "
lists:
media_player:
values:
- in: "living room"
out: "media_player.living_room"
- in: "bedroom"
out: "media_player.bedroom"
volume:
range:
from: 0
to: 100

Erläuterungen:

- language: Sprachcode, hier „en“ für Englisch.

- intents: Definiert den Intent SetVolume.

- data.sentences: Enthält mögliche Satzmuster mit Platzhaltern ({media_player}, {volume}).

- lists: Definiert mögliche Werte für die Platzhalter, z. B. welche media_player angesprochen werden können und welcher Bereich für volume gültig ist.

2.2 Aktion und Antwort für den Intent definieren

Um die Verständlichkeit und Automatisierung abzuschließen, definierst du im intent_script den Ablauf, wenn der Intent ausgelöst wird:

intent_script:
SetVolume:
action:
service: "media_player.volume_set"
data:
entity_id: "{{ media_player }}"
volume_level: "{{ volume / 100.0 }}"
speech:
text: "Volume changed to {{ volume }}"

Funktionsweise:

- Die Lautstärke wird im Dienstaufruf (media_player.volume_set) skaliert (0 bis 1).

- Die Antwort spricht die Änderung zurück, z.B. „Volume changed to 25“.

3. Bestehende Antworten anpassen (Customizing Responses)

Home Assistant erlaubt es, auch die Antworten bei bestehenden Intents anzupassen, um eine persönlichere Interaktion zu gestalten.

3.1 Beispiel: Antwort für den Intent HassTurnOn

Datei: config/custom_sentences/en/responses.yaml

language: "en"
responses:
intents:
HassTurnOn:
default: "I have turned on the {{ slots.name }}"

Details:

- Die Standardantwort für den Intent wird überschrieben.

- Template-Variablen aus den Slots können für dynamische Antworten genutzt werden.

4. Praktischer Einsatz: Anwendungsfälle und Erweiterungen

Du kannst Custom Sentences in vielfältiger Weise nutzen:

4.1 Sprachbefehle mit Parametern

Ermögliche es, Geräte nach Raum, Namen oder anderen Attributen zu steuern, wie in „Set volume for bedroom to 50 percent“.

4.2 Integration in Automatisierungen

Nutze Intents als Trigger in Automatisierungen oder kombiniere sie mit komplexen Workflows, um ganz individuelle Steuerungen umzusetzen.

4.3 KI-gesteuerte Personalisierung

Kombiniere Custom Sentences mit AI-Personality Integrationen, um deine Sprachassistenz lebendiger und persönlicher zu machen.

5. Fazit

Mit der intelligenten Nutzung von Custom Sentences und Intents in Home Assistant baust du dir eine maßgeschneiderte, flexible und leistungsstarke Sprachsteuerung. Durch die Trennung von Satzdefinitionen in eigene Dateien und die Verbindung mit intent_script kannst du komplexe Aktionen und Rückmeldungen in natürlicher Sprache einrichten. Dieses Tutorial liefert dir die technische Grundlage, um eigene Sprachbefehle umzusetzen und dein Smart Home damit auf das nächste Level zu heben.

Nutze die Möglichkeiten, eigene Intents einzuführen, existierende zu erweitern und die Antworten zu personalisieren, um die Interaktion mit deinem Home Assistant so intuitiv wie möglich zu gestalten.

Dieses Tutorial basiert auf der folgenden Webseite: https://www.home-assistant.io/integrations/intent_script/ https://smarthome-assistant.info/?p=2395

Kommentare

Beliebte Posts aus diesem Blog

10. Arduino - Spannungsmessung am Fotowiderstand