{"id":307,"date":"2026-05-17T19:55:19","date_gmt":"2026-05-17T17:55:19","guid":{"rendered":"https:\/\/www.coremind.ch\/wordpress\/?p=307"},"modified":"2026-05-17T20:24:54","modified_gmt":"2026-05-17T18:24:54","slug":"voice-satellit-ohne-cloud-ha-voice-raspiaudio-muse","status":"publish","type":"post","link":"https:\/\/www.coremind.ch\/wordpress\/voice-satellit-ohne-cloud-ha-voice-raspiaudio-muse\/","title":{"rendered":"Voice-Satellit ohne Cloud: HA Voice &#038; RaspiAudio Muse"},"content":{"rendered":"<p>Ein Sprachbefehl im Wohnzimmer, ein Licht geht an, eine Antwort kommt \u2013 und nichts davon hat das eigene Heimnetz verlassen. Genau diese Vision verkauft Home Assistant Voice seit dem ersten offiziellen Hardware-Release. Was vor zwei Jahren noch ein Bastlerprojekt mit Wyoming-Protokoll und drei Raspberry Pis war, ist 2026 ein produktives Setup: Der <strong>Home Assistant Voice Preview Edition<\/strong> liegt als kompakte Box auf dem Sideboard, ein RaspiAudio Muse Luxe erg\u00e4nzt das Schlafzimmer, und beide funktionieren als Assist-Satelliten. Wer schon viele Entit\u00e4ten in HA pflegt, hat die halbe Arbeit hinter sich. Dieser Artikel zeigt, wie sich das Setup sinnvoll aufbaut, was wirklich offline l\u00e4uft und wo es Sinn macht, doch noch einen Cloud-LLM dranzuh\u00e4ngen.<\/p>\n<h2>Was ein Assist-Satellit eigentlich macht<\/h2>\n<p>Ein Assist-Satellit ist Mikrofon, Lautsprecher und Wake-Word-Engine in einem \u2013 die eigentliche Intelligenz l\u00e4uft auf dem Home-Assistant-Server. Wenn das Wake-Word erkannt wird, streamt der Satellit Audio an HA, die Speech-to-Text-Engine wandelt es in Text, die Intent-Engine interpretiert ihn und gibt eine Antwort zur\u00fcck, die der Text-to-Speech-Dienst wieder h\u00f6rbar macht. Das gesamte Audio bleibt im LAN, wenn man lokale Engines wie <strong>Whisper<\/strong> und <strong>Piper<\/strong> einsetzt. Die Latenz liegt auf moderner Hardware (Mini-PC mit i5 oder besser) bei rund einer Sekunde \u2013 schnell genug f\u00fcr den Alltag.<\/p>\n<p>Im typischen Haushalt 2026 sieht eine Aufstellung so aus: Ein <strong>HA Voice 0a204b<\/strong> im Wohnzimmer, ein <strong>RaspiAudio Muse Luxe<\/strong> im Schlafzimmer oder B\u00fcro, dazu der HA-Server (idealerweise auf einem Mini-PC mit AMD Ryzen 5 oder Intel N100 mit acht Gigabyte RAM). Wer kleinere Satelliten will, baut sich einen ESP32-S3 Box-3 f\u00fcrs Schlafzimmer.<\/p>\n<h2>Schritt 1: Die Voice-Pipeline einrichten<\/h2>\n<p>In der HA-Oberfl\u00e4che unter <code>Einstellungen \u2192 Sprachassistenten<\/code> legt man eine Pipeline an. Sie definiert, welche Engine f\u00fcr welchen Schritt zust\u00e4ndig ist. Eine vollst\u00e4ndig lokale Pipeline sieht so aus: STT mit Whisper (Modell <code>large-v3-turbo<\/code>), Intent-Engine <code>Home Assistant<\/code>, TTS mit Piper (Stimme <code>thorsten-medium<\/code> f\u00fcr Deutsch). Wer das HA Voice Add-on installiert hat, findet die Engines bereits in den Auswahlfeldern.<\/p>\n<p>Damit Befehle wie <em>\u201eSchalte das Wohnzimmerlicht ein&#8220;<\/em> funktionieren, m\u00fcssen die betroffenen Entit\u00e4ten in HA freigegeben sein. Unter <code>Einstellungen \u2192 Sprachassistenten \u2192 Assist freigeben<\/code> lassen sich Ger\u00e4te ein- und ausschliessen. Wichtig: Aliase pflegen. Eine Lampe mit der entity_id <code>light.hue_white_lamp_1<\/code> ist im Sprachbefehl nicht eing\u00e4ngig. Im UI l\u00e4sst sich der Anzeigename auf <em>\u201eStehleuchte Wohnzimmer&#8220;<\/em> setzen und ein Alias <em>\u201eStehleuchte&#8220;<\/em> erg\u00e4nzen. Erst dann reagiert die Pipeline auf nat\u00fcrliche Sprache.<\/p>\n<h2>Schritt 2: Wann ein Cloud-LLM trotzdem sinnvoll ist<\/h2>\n<p>Die lokale Intent-Engine versteht strukturierte Befehle: Ger\u00e4te einschalten, Wetter abfragen, Szenen aktivieren. Sie scheitert an offenen Fragen wie <em>\u201eErinnere mich heute Abend daran, den M\u00fcll rauszustellen&#8220;<\/em> oder <em>\u201eWie war meine Stromproduktion gestern?&#8220;<\/em>. Hier hilft eine zweite Pipeline mit OpenAI Conversation oder Anthropic Claude als Fallback. In HA seit der Version 2025.4 unterst\u00fctzt die Pipeline einen Fallback-Modus: Wenn die lokale Intent-Engine keinen Treffer hat, geht die Anfrage an den Cloud-Provider.<\/p>\n<p>Wer Datenschutz priorisiert, beh\u00e4lt die lokale Pipeline und nimmt den Funktionsverlust in Kauf. Wer maximale Flexibilit\u00e4t will, h\u00e4ngt einen LLM dran. Eine Hybrid-L\u00f6sung ist die <code>ai_task<\/code>-Entit\u00e4t, die seit dem Release 2025.12 in HA verf\u00fcgbar ist und Aufgaben gezielt an konfigurierte KI-Modelle weiterleitet \u2013 nur dann, wenn man sie explizit triggert.<\/p>\n<h2>Schritt 3: Wake-Word und Ger\u00e4usch-Tuning<\/h2>\n<p>Das HA-Voice-Ger\u00e4t kommt mit dem Wake-Word <em>\u201eOK Nabu&#8220;<\/em>. Das funktioniert, h\u00f6rt sich aber ungewohnt an. Die Wake-Word-Engine <code>openWakeWord<\/code> erlaubt eigene Modelle. Hannes Heyne und andere haben Modelle f\u00fcr <em>\u201eHey Jarvis&#8220;<\/em>, <em>\u201eHey Mycroft&#8220;<\/em>, <em>\u201eComputer&#8220;<\/em> trainiert, die fertig zum Download bereitstehen. Eigene Wake-Words sind m\u00f6glich, brauchen aber 200 bis 500 Sprachsamples.<\/p>\n<p>Wichtiger ist das Ger\u00e4usch-Tuning. Das HA Voice hat einen Hardware-Mute-Switch und gut platzierte Mikrofone, der RaspiAudio kommt mit einem einfacheren Setup. Eine Beispielautomation, die das Wake-Word bei laufendem Fernseher tempor\u00e4r deaktiviert:<\/p>\n<pre><code>\nautomation:\n  - alias: \"Mute Voice Satellite while TV is loud\"\n    trigger:\n      - platform: numeric_state\n        entity_id: sensor.living_room_sound_pressure\n        above: 65\n    action:\n      - service: assist_satellite.set_wake_word\n        target:\n          entity_id: assist_satellite.home_assistant_voice_0a204b_assist_satellit\n        data:\n          wake_word: \"\"\n<\/code><\/pre>\n<h2>Schritt 4: Mehrere R\u00e4ume sauber abgrenzen<\/h2>\n<p>Wenn zwei oder mehr Satelliten in unterschiedlichen R\u00e4umen stehen, soll der richtige Befehl im richtigen Raum landen. HA l\u00f6st das \u00fcber das <code>Area<\/code>-Konzept. Jeder Satellit ist einem Bereich zugeordnet. Sagt jemand <em>\u201eLicht aus&#8220;<\/em> im Wohnzimmer, schaltet HA die Lichter im Bereich \u201eWohnzimmer&#8220; aus. Voraussetzung: Jedes Licht ist einem Bereich zugewiesen.<\/p>\n<p>Ein kleines YAML-Snippet, das die Lichter im Bereich des aktiven Satelliten gezielt steuert:<\/p>\n<pre><code>\nscript:\n  raum_licht_aus:\n    sequence:\n      - service: light.turn_off\n        target:\n          area_id: \"{{ trigger.area_id }}\"\n<\/code><\/pre>\n<p>Das <code>trigger.area_id<\/code> wird von der Pipeline automatisch gesetzt, wenn der Satellit einer Area zugeordnet ist. Mit dieser einen Zeile spart man sich raumspezifische Skripte \u2013 ein zentraler Vorteil gegen\u00fcber Alexa und Google Assistant.<\/p>\n<h2>Schritt 5: Antworten anpassen und Pers\u00f6nlichkeit geben<\/h2>\n<p>Standardantworten klingen technisch. Wer den Voice-Assistenten als zug\u00e4ngliche Stimme im Haushalt etablieren will, passt die Antworten an. In <code>configuration.yaml<\/code> lassen sich Antwort-Templates definieren:<\/p>\n<pre><code>\nintent_script:\n  HassTurnOn:\n    speech:\n      text: >\n        {% set name = state_attr(slots.name, 'friendly_name') or slots.name %}\n        Alles klar, ich schalte die {{ name }} ein.\n<\/code><\/pre>\n<p>Mit kleinen Variationen klingt der Assistent weniger nach Roboter. Wer Lust hat, l\u00e4sst zuf\u00e4llige Best\u00e4tigungen rotieren \u2013 <em>\u201eErledigt&#8220;, \u201eMache ich&#8220;, \u201eBereits passiert&#8220;<\/em>.<\/p>\n<h2>Fazit und Verlinkung<\/h2>\n<p>Ein lokales Voice-Setup ist 2026 keine Bastelei mehr, sondern ein erwachsenes Produkt. Wer in HA bereits viele Entit\u00e4ten gepflegt hat \u2013 inklusive Aliasen und Areas \u2013 ist in zwei Stunden produktiv. Datenschutz bleibt, Antwortqualit\u00e4t ist auf dem Niveau einer guten Cloud-L\u00f6sung, und die Kosten halten sich in Grenzen: zwei bis drei Ger\u00e4te zwischen 50 und 200 Franken pro St\u00fcck. Wer Wert auf Cloud-Backup oder einen LLM-Fallback legt, kombiniert das Setup mit einer zweiten Pipeline. Wie man die <a href=\"https:\/\/www.coremind.ch\/wordpress\/\">Energie-Auswertungen aus HA mit InfluxDB und Grafana<\/a> langfristig sichert, wurde im letzten Beitrag gezeigt \u2013 ein guter Folge-Schritt, sobald die Voice-Steuerung produktiv l\u00e4uft.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ein Sprachbefehl im Wohnzimmer, ein Licht geht an, eine Antwort kommt \u2013 und nichts davon hat das eigene Heimnetz verlassen. Genau diese Vision verkauft Home Assistant Voice seit dem ersten offiziellen Hardware-Release. Was vor zwei Jahren noch ein Bastlerprojekt mit Wyoming-Protokoll und drei Raspberry Pis war, ist 2026 ein produktives Setup: Der Home Assistant Voice &#8230; <a title=\"Voice-Satellit ohne Cloud: HA Voice &#038; RaspiAudio Muse\" class=\"read-more\" href=\"https:\/\/www.coremind.ch\/wordpress\/voice-satellit-ohne-cloud-ha-voice-raspiaudio-muse\/\" aria-label=\"Mehr Informationen \u00fcber Voice-Satellit ohne Cloud: HA Voice &#038; RaspiAudio Muse\">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-307","post","type-post","status-publish","format-standard","hentry","category-ha"],"_links":{"self":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/307","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=307"}],"version-history":[{"count":1,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/307\/revisions"}],"predecessor-version":[{"id":311,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/307\/revisions\/311"}],"wp:attachment":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/media?parent=307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/categories?post=307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/tags?post=307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}