Alexa, Siri und Gemini müssen Sprachbefehle häufig in der Cloud verarbeiten. Mit Home Assistant lässt sich ein Sprachassistent dagegen komplett lokal betreiben. Dabei gehen neben den üblichen Befehlen zur Steuerung von Licht, Heizung, Timern und Wetter-Abfragen, auch spezifische Dialoge – etwa die Abfahrtszeiten der nächsten U-Bahn. Wir zeigen, welche Hardware nötig ist und wie gut das im Alltag funktioniert.
Weiterlesen nach der Anzeige
Transkript des Videos
(Hinweis: Dieses Transkript ist für Menschen gedacht, die das Video oben nicht schauen können oder wollen. Der Text gibt nicht alle Informationen der Bildspur wieder.)
Guckt mal hier, ich bin komplett offline und sage „Hey Mycroft, mach das Licht aus!“ Und das Licht geht aus. Und dabei verwende ich weder Alexa, Siri noch Google Gemini. Das läuft alles komplett lokal in meiner Wohnung, über meinen Home-Server und Home Assistant. Sprachbefehle und Steuerung kann Home Assistant nämlich mittlerweile auch wirklich gut. Und dabei eben voll Open Source und viel flexibler als die US-Anbieter. Ich habe hier einen alten Raspi zum Smart Speaker umgebaut, diese kleine schlüsselfertige Box direkt von den Home-Assistant-Machern, oder ich kann sogar diesen kleinen süßen Roboter benutzen. Und das Ganze dabei voll an meine Bedürfnisse anpassen, weil ich in Home Assistant nicht nur meine ganzen Smart-Home-Geräte drin habe, sondern auch die Abfahrtszeiten der nächsten U-Bahn, Kalendereinträge, Einkaufslisten, die Daten vom Deutschen Wetterdienst – so kann ich wirklich viele Infos per Sprachbefehl bekommen. Ich habe hier also meinen ganz persönlichen, lokal laufenden Sprachassistenten und gleichzeitig mache ich alte Lautsprecherboxen sogar zu Smart Speakern. Das ist also sogar für Leute interessant, die gar keine Smart-Home-Geräte haben, aber Timer, Wetter und Musik per Stimme in der Küche steuern wollen. Wie ihr das auch hinbekommt und ob das vielleicht sogar mit den großen Sprachassistenten mithalten kann: Bleibt dran.
Hey Mycroft, Video starten!
So, hier liegt jetzt also mein eigener Sprachassistent vor mir. Und warum habe ich da überhaupt Bock drauf? Na ja, Amazon hat 2025 die Funktion bei Echo-Geräten, Sprachbefehle direkt auf dem Gerät zu verarbeiten, gestrichen. Google Gemini ist aktuell auch keine besonders verführerische Alternative.
Und ich find’s eigentlich ganz gut, wenn nicht jedes Mal, wenn ich das Licht anschalten will, meine Stimme erst mal über US-Server transkribiert wird. Gerade weil diese Dinge ja in meiner Wohnung stehen und immer zuhören, während sie auf das Wakeword warten, wäre da ja eine lokale Lösung echt nice. Und genau das geht mit Home Assistant. Wir hatten hier auf dem Kanal ja schon mehrere Videos zu Home Assistant, also falls ihr bei null anfangt, gerne erst mal das Grundlagen-Video schauen. Wenn ihr aber schon eine fertige Home-Assistant-Installation habt und das Ganze gerne auch per Sprache steuern wollt, here you go: Bei mir läuft Home Assistant auf meinem NAS, in einer virtuellen Maschine, also Home Assistant OS. Das hier funktioniert aber auch, wenn ihr das auf einem kleinen Raspi habt oder Home Assistant als Docker-Container läuft. Und das Mikrofon müsst ihr natürlich auch nicht direkt an dem Raspi oder NAS anschließen, auf dem eure Home-Assistant-Instanz läuft. Der kann weiter im Serverschrank, Büro, Keller oder wo auch immer stehen. Und dann stellt ihr euch eben einen kleinen Raspi mit Mikrofon in eure Wohnung – Satelliten heißen diese kleinen Mikrofonempfänger im Home-Assistant-Sprech –, oder ihr benutzt euer Smartphone oder ihr holt euch schon eine schlüsselfertige Lösung direkt von den Leuten, die hinter Home Assistant stecken. Ich kann jetzt also zum Beispiel sagen: „Hey, stelle die Heizung im Büro auf 24 Grad“, und zack, geht das Thermostat an. Und das geht eben mit allen Geräten und Entitäten, die in Home Assistant integriert sind. Euer Gerät wartet die ganze Zeit auf das Aktivierungswort. Sobald es das hört, sendet es euren Befehl an Home Assistant. Und da läuft das dann über eine Pipeline, also drei Schritte hintereinander. Eine Spracherkennung macht aus eurem Satz einen Text, der Konversationsagent schaut, was ihr damit meint, also welches Licht soll angeschaltet werden, und eine Sprachsynthese macht aus der Antwort wieder gesprochenen Text, der dann von eurem Satelliten, also eurem Raspi im Wohnzimmer, abgespielt wird. Das passiert aber alles auf einmal, wenn ihr das erst einmal eingestellt habt.
So, aber wie installiert man das? Wir gehen das jetzt Schritt für Schritt durch: Erst erstellt ihr euch einen Sprachassistenten in Home Assistant und dann baut ihr euch die passende Hardware dafür, also als Erstes das Backend. Zuerst installiert ihr über Apps in den Einstellungen Speech-to-Phrase, Whisper und Piper. Danach geht’s direkt zum Punkt Sprachassistenten. Da könnt ihr Alexa oder Google Zugriff auf euren Home Assistant geben oder eben euren eigenen Assist konfigurieren. Bevor wir jetzt das erste Mal mit dem Assist sprechen, müssen wir erst mal festlegen, welche Entitäten er steuern darf. Ich würde da für den Anfang wirklich nur Lichter, Steckdosen, ein paar Szenen und Temperatursensoren freigeben. Alles, was Türen öffnet, bleibt erst mal draußen, dazu später noch mehr. Und dann schauen wir noch nach den Namen, weil wenn eure Lampe da KAJPLATS E14 CWS globe 806 lm heißt, dann wird das schwer mit der Sprachsteuerung. Falls ihr also nicht eh schon handliche Namen für eure Geräte habt, so was wie „Stehlampe Wohnzimmer“, dann solltet ihr das jetzt spätestens nachholen. Ihr könnt auch Aliasse dafür eingeben, also eure Lampe im Bad kann auch gleichzeitig den Rufnamen „Badezimmerlicht“, „Badezimmerdecke“, „Decke im Bad“ und so weiter haben. Das eigentliche Hinzufügen von dem Assistenten sind dann nur noch ein paar Klicks. Ihr gebt ihm einen Namen, wählt eine Sprache und einen Konversationsagenten. Standardmäßig nehmt ihr da Home Assistant selbst. Wenn ihr da aber mehr in Richtung Smart Speaker gehen wollt, dann könnt ihr auch LLMs per API anbinden, dazu später noch mehr. Bei Sprache-zu-Text und Text-zu-Sprache könnt ihr das lokal laufen lassen oder, wenn ihr ein Nabu-Casa-Abo habt, die Home Assistant Cloud verwenden. Das ist gerade bei kleinen Raspis mit wenig Leistung eine Option. Für lokale Verarbeitung wählt ihr aber Speech-to-Phrase oder faster-whisper aus. Als Stimme für Text-zu-Sprache würde ich euch Piper Thorsten (high) empfehlen. Um das Ganze jetzt erst mal auszuprobieren, könnt ihr in einem Dashboard auf das Assist-Symbol klicken und einen Text wie „Schalte die Lampen im Büro ein“ eingeben. Wenn irgendwas hier nicht funktioniert, liegt es am Namen, Bereich oder der fehlenden Freigabe. Unter Debug könnt ihr aber auch genau nachsehen, was bei jedem Durchlauf verstanden wurde, was Home Assistant daraus gemacht hat und wie lange jeder Schritt gedauert hat.
Weiterlesen nach der Anzeige
Jetzt kann ich den Sprachassistenten also schon über meinen Computer und mein Smartphone verwenden. Bei Android optional sogar als richtigen Ersatz für Gemini. Was ich aber möchte, ist einfach in meiner Wohnung stehen und in den Raum sprechen.
Home Assistant Voice Preview Edition
Und dafür habe ich mir hier direkt von den Machern hinter Home Assistant diese Voice Preview Edition geholt. Ich sag dazu ab jetzt nur noch Voice PE. Der kostet rund 60 Euro und darin steckt ein ESP32-S3 und ein eigener Audiochip von XMOS. Ah, es gibt auch noch eine Bastellösung mit einem Raspi, dazu komme ich später auch noch. Also, der Voice PE filtert Störgeräusche raus, regelt den Aufnahmepegel automatisch und hat eine Echo-Unterdrückung. Dadurch hört sich Home Assistant nicht selbst zu, wenn er redet. Und der hat zwar einen kleinen Lautsprecher eingebaut, ihr könnt aber auch per Klinke was Größeres anschließen. Und nicer Nebeneffekt: Darüber könnt ihr dann per Music Assistant eure Musik auf eine alte Stereoanlage oder nicht smarte Lautsprecher packen. Also ein über Home Assistant verwaltetes Multi-Room-Audio-Setup aufbauen und dabei lokale Dateien, verschiedenste Musik- und Podcast-Streamingdienste in einer Oberfläche verwalten. Und das spielt dann alle Geräte bei euch zu Hause an, also per AirPlay, Google Cast, Sonos oder eben auch direkt diese kleinen selbstgebauten Smart Speaker. Genauso wie die meisten Smart Speaker hat auch der Voice PE so einen Schalter, um das Mikrofon zu muten. Ansonsten hat er hier noch so ein Drehrad für Lautstärke und das ist super satisfying, wenn man daran dreht. Sehr clicky. Das Einrichten ist ziemlich simpel. Einfach per USB-C an die Steckdose und dann taucht der direkt in Home Assistant unter „Improv via BLE“ auf. Also dann nur noch WLAN eingeben und dann taucht das wirkliche Gerät hier auf und ich kann den Einrichtungsassistenten starten. Hier suche ich mir als Erstes ein Aktivierungswort raus. Ich hab mal für alles „Hey Mycroft“ genommen, dann den Raum, in dem der Voice PE stehen soll. Dadurch versteht er dann, wenn ich sage: „Mach XY“, und er macht das dann eben in dem Raum. Und dann sind wir durch, weil den eigentlichen Assistenten haben wir ja schon eingerichtet.
Wenn ihr damit wirklich nur so Basics steuern wollt, reicht Speech-to-Phrase aus. Das ist ziemlich schnell, hat aber Probleme, wenn ihr irgendwas sagt, was nicht dem Standard entspricht. Weil es ein kleines Modell mit allen Namen eurer Entitäten baut. Sobald ihr einem Timer aber zum Beispiel einen Namen geben wollt oder damit eure Einkaufsliste befüllen, dann macht es Sinn, Whisper zu benutzen. Das könnt ihr, wenn ihr nicht nur einen ganz kleinen Raspi habt, auch direkt in Home Assistant OS laufen lassen: Einstellungen, Apps, Whisper installieren, dann starten und unter Geräte den Whisper-Dienst hinzufügen. Und jetzt einen zweiten Assistenten anlegen. Und da Home Assistant bei Satelliten mittlerweile bis zu zwei Aktivierungswörter erlaubt, können wir „Okay Nabu“ für die schnelle Speech-to-Phrase-Variante nehmen und „Hey Mycroft“ für die neue mit Whisper.
Ihr könnt hier jetzt auch eigene Befehle anlegen, also so was wie eine Gute-Nacht-Szene. In der ganz normalen Automation legt ihr da einen Satz als Auslöser fest: „Ich gehe jetzt schlafen“ zum Beispiel. Und dann gehen alle Lichter aus, die Heizung runter und ihr könnt auch festlegen, was Home Assistant antworten soll. Zum Beispiel: „Schlaf gut.“ Und es geht auch andersrum, also wenn ihr so einen Satelliten bei euch stehen habt, dann könnt ihr den auch von sich aus was sagen lassen. Also meine Waschmaschinen-Automation, die mir eine Push-Benachrichtigung schickt, wenn die Maschine durchgelaufen ist, kann jetzt auch eine Durchsage bekommen: „Wäsche ist fertig.“
Eigenes LLM hinzufügen
So, und jetzt noch mal zurück zum Konversationsagenten. Ich hab ja vorhin schon gesagt, dass ihr da auch LLMs anbinden könnt. Hab ich natürlich auch ausprobiert, erst mal ganz klassisch mit der OpenAI-Integration, einfach nen API-Key rein und dann läuft das, aber halt wieder über US-Server und nicht lokal bei mir zu Hause. Und um mein Smart Home zu steuern, brauche ich halt auch kein LLM, das irgendwie Gedichte schreiben kann. Da gibt es kleine lokale Modelle, die extra für Home Assistant trainiert sind. Ich habe hier Home-FunctionGemma-270M, also 270 Millionen Parameter, ziemlich wenig, und deshalb ist die Datei auch nur 240 MB groß. Aber weil das eben so klein ist, läuft das auch vernünftig auf etwas größeren Raspis oder hier auf meinem NAS, direkt über die Erweiterung Home LLM. Ich hab das per HACS installiert, verlinke ich euch unten in der Beschreibung. Einfach auf der GitHub-Seite von acon96 auf „In Home Assistant öffnen“ klicken, die aktuelle Version herunterladen und Home Assistant einmal neu starten. Danach fügt ihr die Integration in den Einstellungen hinzu, indem ihr nach „Local LLM“ sucht und als Backend „llama.cpp“ nehmt. Dann wählt ihr das Modell aus und gebt bei Quantisierung „Q4_0“ an. Bei der API wählt ihr „Assist“ aus, dann kann das Modell genau auf die Dinge zugreifen, die ihr für Assist freigegeben habt. Und gerade bei so einem kleinen Modell gilt: Je weniger es auseinanderhalten muss, desto besser. Ich hab da 19 Lampen und 5 Thermostate drin und damit funktioniert das super. Um das zu aktivieren, geht ihr dann wieder zu den Sprachassistenten und wählt jetzt bei Konversationsagent statt Home Assistant eben das neue LLM. Der Vorteil gegenüber dem normalen Home-Assistant-Agenten: Ich muss nicht mehr so ganz genau den Satz treffen, den es erwartet. Bei so was wie „Mach das Wohnzimmer etwas dunkler“ sucht sich das Modell dann selbst die passenden Lampen raus und dreht die Helligkeit runter.
Raspberry Pi als Satellit
Ihr müsst aber natürlich nicht diese schlüsselfertige Lösung hier nehmen, ihr könnt auch jeden anderen Mini-Computer zu einem Satelliten für Home Assistant machen. Also ich sag’s euch ganz ehrlich: Wenn ihr eh neu kaufen müsst, dann dürften sich die 60 Euro für den Voice PE ziemlich sicher lohnen. Das zahlt ihr halt fast schon für einen günstigen Raspi, und dann braucht ihr noch ein Mikro und Lautsprecher, und der Voice PE hat eben diesen speziellen Audiochip. Solltet ihr aber eh noch einen alten Raspi rumliegen haben oder einen benutzen, der vielleicht ein Dashboard an der Wand befeuert, dann könnt ihr den relativ schnell zu einem Satelliten machen. Ich hab hier einen Raspi 4B und mein altes RØDE NT-USB-Mikrofon, das noch im Schrank steht. Auf den Raspi kommt jetzt aber kein zweites Home Assistant, sondern nur die Satelliten-Software. Die heißt Linux Voice Assistant und ist auch von der Open Home Foundation. Ihr flasht also auf den Pi Raspberry Pi OS Lite (64 Bit), Docker installieren und aus GitHub diese zwei Dateien runterladen. In der Konfiguration tragt ihr dann noch ein, welches Mikro ihr habt, und Lautsprecher schließt ihr über die Klinke vom Raspi an. In Home Assistant taucht der Raspi dann als ESPHome-Gerät auf und dann startet ihr den Raspi einmal neu und schaut, ob er dann immer noch zuhört, wenn ihr nicht mehr per SSH eingeloggt seid. Die Konfiguration geht dann auch im Backend: Ihr wählt ein Wakeword aus und welchen Assist das auslösen soll, und dann könnt ihr in das Mikro Befehle reinsprechen. Die Installationsschritte verlinke ich euch auch noch mal unten in der Beschreibung.
Musik, Timer und Wetter
Ich hab’s im Intro ja schon gesagt: Neben den ganzen Befehlen für eure Smart-Home-Geräte könnt ihr jetzt auch so andere klassische Smart-Speaker-Aufgaben machen. Also Musik abspielen geht ziemlich gut. Seit einem Jahr gibt es bei Home Assistant über die Erweiterung Music Assistant direkt die Möglichkeit, per Search and Play Musik zu suchen und wiederzugeben. Ich habe da zum einen meine lokale Musikbibliothek verknüpft. Der schickt die MP3s dann direkt auf die verfügbaren Lautsprecher, also auf meinen HomePod oder meine Sonos-Systeme, aber da geht wie gesagt auch ziemlich jeder Musik-Streaming-Dienst mit, nachdem man seinen Account da verknüpft hat. Timer dagegen sind bei den Assists schon direkt eingebaut, da muss gar nichts mehr konfiguriert werden. Ich sag einfach: „Hey Mycroft, stell nen Timer auf 5 Minuten“, und 5 Minuten später klingelt der Sprachassistent. Wetter dagegen ist wieder etwas komplizierter. Das aktuelle Wetter hat eigentlich jeder schon als Entität verfügbar. Der Befehl „Wie ist das Wetter gerade?“ sollte deshalb auch bei allen direkt out of the box funktionieren. Wenn ich aber bestimmte Infos haben möchte, das Wetter morgen zum Beispiel, dann muss ich mir da selbst einen Befehl anlegen, also eine Automation bauen, die auf einen Satz reagiert. Hier eben „Wie wird das Wetter morgen?“ Als Aktion gebe ich dann „Get Forecasts“ von meiner Wetterentität an und als Datentyp „Daily“. Und wichtig ist dann die Conversation Response. Hier kann ich dann genau festlegen, wie er mir später antworten soll. Also in YAML den genauen Text eingeben mit den einzelnen Variablen, die er abfragt: „Morgen wird es [Wetterlage]. Die Höchsttemperatur liegt bei [X] Grad und die Tiefstemperatur bei [Y] Grad.“ Und das geht halt nicht nur für Wetter, sondern für alles in Home Assistant. Also wenn ihr da euren Stromverbrauch messt, dann könnt ihr so eine Automation erstellen, die auf die Frage „Wie viel Strom habe ich gestern verbraucht?“ euch einen bestimmten Text mit allen für euch relevanten Daten liefert. Oder ihr habt die Stadtbahn als Entität, dann könnt ihr fragen, wann die nächste Bahn kommt und ob die Verspätung hat. Und das Ganze halt nicht so ein bisschen auf „gut Glück, ob Siri grad will“, sondern das funktioniert voll zuverlässig mit den richtigen Daten.
Ich hab bei mir zu Hause ja nicht nur meinen neuen Home-Assistant-Sprachassistenten stehen, ich hab noch nen HomePod mit Siri in der Küche und diese Sonos Arc, die Alexa und Google Home kann. Deswegen hier jetzt mal der Vergleich, wie schnell die einzelnen Systeme in meinen Tests waren und Lampen geschaltet haben. Ich frage die Systeme jetzt nacheinander, ob sie das Deckenlicht im Wohnzimmer anschalten, und lasse euch das mal in Originalgeschwindigkeit selbst anschauen. Hey Siri, schalte das Deckenlicht im Wohnzimmer an. Alexa, schalte das Deckenlicht im Wohnzimmer an. Okay. Okay Google, schalte das Deckenlicht im Wohnzimmer an. Hey Mycroft, schalte Decke Wohnzimmer an. Ja, also funktioniert alles ziemlich gleich schnell, vorausgesetzt, der Home Assistant Assist ist richtig konfiguriert und ich verwende die richtigen Sprachbefehle, die er erwartet. Aber das ist ganz ehrlich bei Siri und Co. auch nicht besser. Also, wenn ich meinem HomePod nen Befehl gebe, habe ich auch schon ganz oft das Problem gehabt, dass er mich nicht richtig verstanden haben will, und dann sind im Schlafzimmer alle Lampen ausgegangen statt nur der Stehlampe. Also Fazit nach einer Woche intensiver Nutzung: Die Befehle, die ich oft gebe, funktionieren mit Home Assistant in meinem Setup deutlich zuverlässiger.
So, und als kleiner süßer Bonus: dieser kleine Roboter. Reachy Mini heißt der, Keno hatte ja schon mal ein Video dazu gemacht. Und er kann auch Home Assistant steuern, ist also technisch gesehen ziemlich ähnlich zu den anderen Satelliten, aber halt hier als Roboter. Ich hab mir den mal von Keno geliehen und an meinen Home Assistant angeschlossen und, ja, funktioniert. Ich schalte das Licht im Büro an. Klar, ich schalte das Licht im Büro ein. Also technisch ist das auch ein Sprachsatellit, der eben im Home-Assistant-Backend genauso konfiguriert werden kann. Das ist fast schon identisch zum Raspberry von gerade, aber zeigt eben ziemlich gut, was da alles geht. Also ich bin eben nicht mehr auf bestimmte vorkonfigurierte Smart-Speaker-Boxen angewiesen, wenn ich Sprachbefehle geben will, sondern kann da einfach alles, was ein Mikro und einen Chip hat, als Sprachassistenten verwenden.
So, und jetzt noch was zum Thema Sicherheit. Ich hab’s ja vorhin schon gesagt: Türen und Schlösser würde ich da erst mal rauslassen. Und das hat auch einen guten Grund: Das Aktivierungswort ist kein Passwort. Und im Gegensatz zu meinem HomePod erkennt das auch nicht meine Stimme. Da ist also gar kein Sicherheitslayer drüber. Und wenn jemand von draußen schreit: „Hey Mycroft, mach die Tür auf!“ Ja, dann geht halt die Tür auf. Nicht so gut, ne? Deswegen würde ich da wirklich nur Dinge reinmachen, wo es jetzt kein absolutes Sicherheitsdrama wäre, wenn das mal jemand von außen einschaltet.
Was dieser Sprachassistent jetzt aber natürlich nicht kann: komplexe Fragen beantworten und so. Wer jetzt die KI à la Google Gemini vermisst: Man kann auch ein großes lokales Sprachmodell als Konversationsagent einbinden und sich dann einen wirklich smarten Sprachassistenten bauen. Also auch mit, ich habe dann Ergebnisse am Tablet an der Wand und so weiter. Das ist aber dann halt schon wieder ein Video für sich, auf das ich auch voll Bock hätte. Was ich nämlich auch wirklich intensiv mit KI gerade mache: Home Assistant warten und pflegen. Also ich kriege ein neues Smart-Home-Gerät ins Haus, dann lasse ich ein LLM die ganzen Szenen als YAML neu schreiben und sage der KI einfach: Passe mein Dashboard so und so an. KI macht Home Assistant wirklich deutlich einfacher, weil es halt YAML-Code schreiben kann. Also wenn ihr mal sehen wollt, wo und wie man überall sinnvoll KI in Home Assistant einsetzen kann, schreibt’s gern mal in die Kommentare, dann mach ich dazu noch ein extra Video.
Was ich aber auf jeden Fall schon mal sagen kann: Wenn ihr wirklich nur die Basics wollt – und ich glaube, dafür verwenden die meisten ja Sprachassistenten im Alltag –, dann ist es heute definitiv möglich, das komplett lokal über Home Assistant laufen zu lassen. Also das Wetter von morgen bekommen, Lichter und Heizung steuern, einen Timer stellen, das funktioniert lokal mit Home Assistant voll auf dem Niveau von Alexa, Google und Siri. Wie ist das bei euch? Habt ihr einen Sprachassistenten zu Hause? Ist euch das Lokale dabei wichtig und was macht ihr damit eigentlich? Schreibt’s gern mal in die Kommentare und klickt auch gern mal auf Abonnieren. Tschüss!
c’t 3003 ist der YouTube-Channel von c’t. Die Videos auf c’t 3003 sind eigenständige Inhalte und unabhängig von den Artikeln im c’t Magazin. Die Redakteure Jan-Keno Janssen, Lukas Rumpler, Sahin Erengil und Pascal Schewe veröffentlichen jede Woche ein Video.
(rum)