{"id":398,"date":"2026-05-19T20:27:12","date_gmt":"2026-05-19T18:27:12","guid":{"rendered":"https:\/\/www.coremind.ch\/wordpress\/?p=398"},"modified":"2026-05-19T20:27:12","modified_gmt":"2026-05-19T18:27:12","slug":"ha-voice-zwei-wake-words-zwei-assistenten-parallel","status":"publish","type":"post","link":"https:\/\/www.coremind.ch\/wordpress\/ha-voice-zwei-wake-words-zwei-assistenten-parallel\/","title":{"rendered":"HA Voice: Zwei Wake-Words, zwei Assistenten parallel"},"content":{"rendered":"<p>Mit Home Assistant 2026.4 ist eine Funktion stabil geworden, auf die viele Voice-Bastler seit Jahren warten: Ein einziger Voice-Satellit \u2013 etwa ein Home Assistant Voice Preview Edition oder ein RaspiAudio Muse \u2013 kann gleichzeitig auf zwei verschiedene Wake-Words reagieren und je nach erkanntem Wort einen anderen Assistenten ansprechen. \u00abOkay Nabu\u00bb schickt die Anfrage an einen lokalen Whisper-Assistenten, \u00abHey Jarvis\u00bb an einen Cloud-Assistenten mit OpenAI- oder Claude-Backend. Ein Ger\u00e4t, zwei Verhaltensmuster \u2013 ohne komplizierte Automation, ohne Doppelhardware.<\/p>\n<p>In der Praxis ver\u00e4ndert das den Umgang mit Voice-Steuerung erheblich. Die langsamen, aber datensparsamen lokalen Anfragen (\u00abLicht im B\u00fcro aus\u00bb) landen beim On-Premise-Modell, die offenen, komplexeren Fragen (\u00abWas steht heute im Kalender, und sollte ich die Heizung anpassen?\u00bb) laufen \u00fcber die Cloud. Das ist die seit Jahren angestrebte Trennung zwischen Routine und Intelligenz \u2013 jetzt sauber konfigurierbar.<\/p>\n<h2>So wird der Dual-Modus aktiviert<\/h2>\n<p>In der HA-Konfiguration des Voice-Satelliten finden sich seit 2026.4 die beiden Slots \u00abAktivierungswort\u00bb und \u00abAktivierungswort 2\u00bb, jeweils mit zugeordnetem \u00abAssistent\u00bb und \u00abAssistent 2\u00bb. Die Konfiguration \u00fcber die UI ist trivial, der Pferdefuss steckt in der Auswahl der Wake-Words: Sie sollten phonetisch genug auseinander liegen, damit der lokale openWakeWord-Detektor sie nicht verwechselt. \u00abOkay Nabu\u00bb und \u00abHey Jarvis\u00bb funktionieren gut; \u00abHey Mycroft\u00bb und \u00abHey Jarvis\u00bb dagegen f\u00fchren zu Fehlerkennungen.<\/p>\n<pre><code>\r\n# configuration.yaml \u2013 Auszug f\u00fcr den Voice-Satelliten\r\nwyoming:\r\n  - platform: assist_satellite\r\n    name: home_assistant_voice_0a204b\r\n    wake_words:\r\n      - id: okay_nabu\r\n        pipeline: assist_de_local\r\n      - id: hey_jarvis\r\n        pipeline: assist_chatgpt_cloud\r\n    vad:\r\n      mode: default\r\n<\/code><\/pre>\n<p>Wer es bevorzugt, die Pipeline \u00fcber die UI zu konfigurieren, findet die beiden Slots direkt im Ger\u00e4te-Detail des Satelliten unter \u00abKonfiguration\u00bb \u2192 \u00abAktivierungsw\u00f6rter\u00bb. In der Praxis ist die YAML-Variante aber empfehlenswert, weil sie sich versionieren und replizieren l\u00e4sst \u2013 sinnvoll, sobald man mehr als einen Satelliten im Haus betreibt.<\/p>\n<h2>Pipelines klug aufteilen<\/h2>\n<p>Die spannende Frage ist nicht \u00abwie aktiviere ich beide Wake-Words\u00bb, sondern \u00abwelche Pipeline geh\u00f6rt zu welchem Befehl\u00bb. Bew\u00e4hrt hat sich folgende Aufteilung: Pipeline 1 mit lokalem Whisper und einer kleinen Sprachintenterkennung ist f\u00fcr die kurzen Hausautomations-Befehle zust\u00e4ndig. Sie ist offline-f\u00e4hig, schnell und unterst\u00fctzt zuverl\u00e4ssig alle Ger\u00e4te, die in HA als Conversation-Entit\u00e4t sichtbar sind.<\/p>\n<p>Pipeline 2 l\u00e4uft \u00fcber einen Cloud-LLM-Adapter \u2013 sei es OpenAI, Anthropic oder ein selbst gehostetes Modell auf einem GPU-Server. Hier kann der Assistent komplexere Anfragen verstehen, mehrstufige Pl\u00e4ne formulieren und Antworten in Klartext zur\u00fcckgeben. \u00dcber die \u00abAI Task\u00bb-Integration aus 2026.5 lassen sich sogar strukturierte LLM-Antworten erzwingen, sodass die Cloud-Pipeline nicht nur quatscht, sondern auch Aktionen ausf\u00fchrt.<\/p>\n<pre><code>\r\n# Beispiel: Service-Skript f\u00fcr eine kombinierte Anfrage\r\nscript:\r\n  voice_kombi_check:\r\n    sequence:\r\n      - service: conversation.process\r\n        data:\r\n          text: \"Fasse die wichtigsten Sensorwerte der letzten Stunde zusammen.\"\r\n          agent_id: !secret claude_agent_id\r\n      - service: notify.mobile_app_iphone\r\n        data:\r\n          message: \"{{ states('input_text.last_summary') }}\"\r\n<\/code><\/pre>\n<h2>Datenschutz und Latenz: was sich verbessert hat<\/h2>\n<p>Der grosse Vorteil des Dual-Setups ist nicht die Eleganz, sondern die Trennung der Datenfl\u00fcsse. Wer \u00abOkay Nabu, mach das Licht aus\u00bb sagt, hat die Anfrage komplett offline verarbeitet \u2013 kein Audio verl\u00e4sst das Haus. Wer \u00abHey Jarvis, was sagst du zur Wettervorhersage?\u00bb fragt, schickt die Frage bewusst in die Cloud. Diese Trennung war fr\u00fcher nur mit Tricks und Vorschalt-Automationen erreichbar, jetzt ist sie nativ.<\/p>\n<p>Latenztests an einem RaspiAudio Muse Luxe zeigen: Die lokale Pipeline antwortet typischerweise nach 700 bis 1&#8217;100 Millisekunden, die Cloud-Pipeline je nach Anbieter und Tageszeit zwischen 1.5 und 3 Sekunden. F\u00fcr Hausautomation ist die lokale Variante damit deutlich angenehmer, f\u00fcr gehaltvolle Antworten lohnt sich das Warten.<\/p>\n<h2>Stolpersteine in der Praxis<\/h2>\n<p>Zwei Probleme tauchen immer wieder auf. Erstens: Wer beide Wake-Words zu \u00e4hnlich w\u00e4hlt, kassiert Fehl-Aktivierungen. Die Sensibilit\u00e4t l\u00e4sst sich \u00fcber \u00abWake word sensitivity\u00bb justieren (\u00abModerately sensitive\u00bb ist meist ein guter Kompromiss), aber das richtige Wake-Word-Paar zu finden braucht eine Woche Geduld. Zweitens: Die Cloud-Pipeline kann fehlschlagen, wenn die Internet-Verbindung wackelt \u2013 ein Fallback auf die lokale Pipeline l\u00e4sst sich derzeit nicht automatisch konfigurieren. Wer Ausfallsicherheit will, sollte auch die Cloud-Variante auf einem lokalen LLM laufen lassen (zum Beispiel Ollama mit Llama 3.3 auf einem Mini-PC mit GPU).<\/p>\n<h2>Fazit<\/h2>\n<p>Die Dual-Wake-Word-Funktion ist ein kleines Feature mit grosser Wirkung. Sie macht aus einem einfachen Voice-Satelliten ein Werkzeug, das gleichzeitig schnelle Hausbefehle und intelligente Konversation beherrscht \u2013 ohne dass man sich zwischen Offline-Disziplin und Cloud-Komfort entscheiden muss. Wer einen HA Voice oder RaspiAudio Muse betreibt, sollte den Schritt zur Doppelkonfiguration auf jeden Fall machen, schon allein wegen der Trennung der Datenfl\u00fcsse.<\/p>\n<p>Wer mehr \u00fcber die zugrundeliegende Voice-Architektur erfahren m\u00f6chte, findet in unserem Beitrag zu <a href=\"https:\/\/www.coremind.ch\/wordpress\/\">Voice-Satellit ohne Cloud mit HA Voice und RaspiAudio Muse<\/a> auf coremind.ch die n\u00f6tige Grundlage. Dual-Wake-Word ist die nat\u00fcrliche Weiterentwicklung dieses Setups.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit Home Assistant 2026.4 ist eine Funktion stabil geworden, auf die viele Voice-Bastler seit Jahren warten: Ein einziger Voice-Satellit \u2013 etwa ein Home Assistant Voice Preview Edition oder ein RaspiAudio Muse \u2013 kann gleichzeitig auf zwei verschiedene Wake-Words reagieren und je nach erkanntem Wort einen anderen Assistenten ansprechen. \u00abOkay Nabu\u00bb schickt die Anfrage an einen &#8230; <a title=\"HA Voice: Zwei Wake-Words, zwei Assistenten parallel\" class=\"read-more\" href=\"https:\/\/www.coremind.ch\/wordpress\/ha-voice-zwei-wake-words-zwei-assistenten-parallel\/\" aria-label=\"Mehr Informationen \u00fcber HA Voice: Zwei Wake-Words, zwei Assistenten parallel\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-398","post","type-post","status-publish","format-standard","hentry","category-ha"],"_links":{"self":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/comments?post=398"}],"version-history":[{"count":1,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/398\/revisions"}],"predecessor-version":[{"id":401,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/398\/revisions\/401"}],"wp:attachment":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/media?parent=398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/categories?post=398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/tags?post=398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}