Dawid Toppa

Internetpräsenz mit dem kompletten Portfolio sowie einem Blog über Technik, Games und den Alltag

Vom Tasmota-Fossil zum Smarthome: Mein Umzug zu Home Assistant

Vom Tasmota-Fossil zum Smarthome: Mein Umzug zu Home Assistant

Mein Smarthome war jahrelang ein Flickenteppich. Die IKEA-Lampen hingen am alten IKEA-Hub. Alexa sprach über einen ganzen Haufen Skills mit IKEA, Yeelight und meinen Tasmota-Steckdosen. Die älteste dieser Steckdosen lief noch mit Tasmota 8.0.0.1. Automationen? Fehlanzeige. Dazu kamen Schimmel an der Außenwand im Büro und eine Wohnungsgenossenschaft, die nachts die Heizung abschaltet.

Also habe ich alles auf Home Assistant umgezogen. Lokal, ohne Cloud und ohne Fernzugriff, mit Geräten aus ganz verschiedenen Welten: IKEA, Sonoff, Tasmota, Yamaha und sogar Mercedes. Es funktioniert. Aber der Weg dahin war voller kleiner Fallen und genau um die geht es in diesem Beitrag. Er ist lang geworden, holt euch also besser einen Kaffee.

Die Basis: Home Assistant auf Unraid

Home Assistant läuft bei mir als virtuelle Maschine auf meinem Unraid-Server. Das ist ein sparsamer Pentium Silver J5040* mit 32 GB RAM. Ich habe Home Assistant OS aus dem offiziellen qcow2-Image als VM angelegt und ihr eine feste IP gegeben.

Die erste Überraschung kam sofort: Überall steht, dass Home Assistant unter Port 8123 erreichbar ist. Bei mir kam dort nichts. Meine Version lief direkt auf Port 80, also einfach die IP ohne Port im Browser eingeben.

In meinem Heimnetz haben die wichtigsten Geräte feste IPs, fortlaufend durchnummeriert: die FRITZ!Box 5690 Pro*, mein PC, mein Unraid-Server, Pi-hole, mein QNAP und jetzt eben Home Assistant. So weiß ich immer sofort, was hinter welcher Adresse steckt.

Mein wichtigster Grundsatz: kein Fernzugriff und keine Portfreigaben. Home Assistant ist von außen nicht erreichbar. Push-Nachrichten aufs Handy kommen trotzdem auch unterwegs an, weil die Verbindung dafür von innen nach außen aufgebaut wird, über den Benachrichtigungsdienst von Home Assistant und Google.

Zigbee: Stick flashen und Zigbee2MQTT

Sonoff ZBDongle-E Zigbee-Stick von unten mit Typenschild
Mein Zigbee-Koordinator: der Sonoff ZBDongle-E

Als Zigbee-Koordinator nutze ich einen Sonoff ZBDongle-E*. Er hängt an einer USB-Verlängerung und wird an die VM durchgereicht. Ab Werk lief er mit Firmware 6.10.3. Mit dem Silabs Firmware Flasher habe ich ihn auf EmberZNet 7.4.4 aktualisiert.

Darauf läuft Zigbee2MQTT mit Mosquitto als MQTT-Broker. Wichtig war die Kanalwahl: Zigbee und WLAN teilen sich das 2,4-GHz-Band. Mein WLAN funkt auf Kanal 1, die Nachbarn auf 6 und 11. Deshalb habe ich Zigbee auf Kanal 25 gelegt, der sich am wenigsten mit diesen WLAN-Kanälen überschneidet.

Silabs Firmware Flasher bietet Upgrade des Sonoff ZBDongle-E von 6.10.3 auf 7.4.4 an
Das Update von Firmware 6.10.3 auf 7.4.4
FRITZ!Box-Ansicht der belegten WLAN-Kanäle im 2,4-GHz-Band
Die Kanalbelegung laut FRITZ!Box: mein WLAN auf Kanal 1, die Nachbarn auf 6 und 11

Der IKEA-Umzug

Als Nächstes sind alle IKEA-Lampen, Fernbedienungen und der Bewegungsmelder vom alten Hub zu Zigbee2MQTT umgezogen. Den Hub habe ich danach abgeschafft.

Die Fernbedienungen habe ich direkt an die Lampen gebunden. Der Vorteil: Sie funktionieren auch dann, wenn der Server mal aus ist. Das Licht geht also immer an, egal was mit Home Assistant passiert.

Damit ich bei vielen Geräten nicht den Überblick verliere, benenne ich alle nach einem festen Schema: Raum, Ort, Typ und gegebenenfalls Person.

Zwei Dinge haben mich dabei Nerven gekostet:

  • Die Fernbedienungen ließen sich nicht anlernen. IKEA-Geräte gehen sofort wieder schlafen. Die Lösung: während des Anlernens immer wieder einen Knopf drücken, damit sie wach bleiben.
  • Das Küchenlicht reagierte nicht auf den Bewegungsmelder, obwohl ich ihn an die Lampengruppe gebunden hatte. Der IKEA-Bewegungsmelder E1745 sendet nur direkt an den Koordinator. Die Lösung ist eine kleine Automation in Home Assistant statt der Bindung.

Alexa über Matterbridge

Früher hatte ich für jeden Hersteller einen eigenen Alexa-Skill. Jetzt gibt es nur noch eine Brücke: Matterbridge stellt Alexa die Geräte aus Home Assistant per Matter zur Verfügung.

Welche Geräte Alexa sieht, steuere ich über ein Label „Alexa“ in Home Assistant. Anfangs war das Kraut und Rüben: Ein Label gibt ganze Geräte frei, also auch Sensoren und andere Dinge, die Alexa nichts angehen. Dazu tauchten Geräte doppelt auf, weil die alten Skills und die Hue-Emulation der Tasmota-Steckdosen noch aktiv waren. Die Lösung: zusätzlich ein Filter, der nur Lichter und Schalter durchlässt. Außerdem habe ich alle alten Skills und die Hue-Emulation entfernt.

Meldungen von Matterbridge zum Filtern nach dem Label Alexa
Matterbridge meldet, was das Label und die Filter aussortiert haben

Heizung: Thermostate und eine nächtliche Zwangspause

Im Bad hängt jetzt ein Sonoff TRVZB*, im Wohnzimmer das ganz neue Sonoff TRV-ZBT*. Das ist die zweite Generation mit farbigem Display. Sie laufen nach einem Heizplan mit Komfort- und Eco-Temperatur: Bad 26 °C, Wohnzimmer 23 °C und Eco 18 °C. Ob jemand zu Hause ist, erkennt Home Assistant nicht per GPS, sondern daran, ob unsere Handys mit dem heimischen WLAN verbunden sind. Damit die Thermostate nicht ständig neue Batterien brauchen, laufen sie mit Eneloop-Akkus*.

Jetzt zum spannenden Teil: Unsere Wohnungsgenossenschaft schaltet nachts die Heizung ab, ungefähr von 0 bis 4 Uhr. In dieser Zeit sind meine Ventile zu, bis 4:10 Uhr, denn ohne warmes Wasser in den Leitungen bringt Heizen ohnehin nichts. Nur wenn es draußen kälter als 2 °C ist, gilt nachts 20 °C. Ab dieser Temperatur findet die Nachtabschaltung ungefähr nicht mehr statt. Dann kommt auch nachts Wärme an und die Wohnung kühlt nicht zu stark aus.

Die zuständige Sachbearbeiterin rät mir, die klassischen Thermostate nachts einfach auf Stufe 5 zu drehen, also voll auf. Darüber habe ich schon so einige Diskussionen geführt, denn das löst das Problem nicht. Ein klassisches Thermostat regelt nach dem Unterschied zwischen Raumtemperatur und Sollwert. Stufe 5 entspricht ungefähr 28 °C. Das Ventil geht also noch weiter auf als bei Stufe 3. Solange die Heizung aus ist, kommt trotzdem keine Wärme an. Stattdessen rauscht das kalte Wasser nur noch lauter durch die Leitungen. Ab etwa 4:10 Uhr wird das Wasser langsam wieder warm und dann heizt der Heizkörper mit offenem Ventil voll durch. Zwischen 5 und 6 Uhr hätte die Wohnung rund 28 °C. Ich würde also die ganze Nacht frieren, denn wir haben mehrere Kältebrücken mit extrem fußkalten Stellen. Morgens würde ich dann völlig durchgeschwitzt aufwachen. Und gegen den Schimmel an der Außenwand hilft das auch nicht, der mag genau solche kalten Wände. Zur Nachtabschaltung selbst habe ich mich zur Rechtslage schlau gemacht: Eine gesetzliche Mindesttemperatur gibt es nicht. Gerichte haben für die Nacht aber meist 16 bis 18 °C als Untergrenze angesehen. Ich bin kein Anwalt, das ist also keine Rechtsberatung. Praktisch ist aber: Home Assistant protokolliert die Temperaturen in jedem Raum lückenlos und liefert mir damit einen Beleg, falls es mal ernst wird.

Abgebauter alter Thermostatkopf vor dem Karton des neuen Sonoff-Thermostats mit Adapterringen
Umbau am Heizkörper: Der alte Thermostatkopf ist ab, der Sonoff wartet schon

Büroklima gegen Schimmel

An der Außenwand im Büro hatten wir Schimmel. Jetzt hängt dort ein Hygrometer mit E-Ink-Display, ein Sonoff SNZB-02UL*. Steigt die Luftfeuchtigkeit über 60 %, bekomme ich eine Nachricht zum Lüften. Fällt die Temperatur unter 19 °C, kommt eine Nachricht zum Heizen.

Ein netter Bonus: Das Display zeigt zusätzlich ein Wettersymbol, das Home Assistant setzt. Anfangs blieb das Symbol manchmal einfach weg. Der Grund: Das Hygrometer schläft die meiste Zeit und verpasst den Befehl. Home Assistant hält den Wert trotzdem für gesetzt. Die Lösung: Das Symbol wird alle zwei Stunden erneut gesendet.

Ladesteuerung am Nachttisch

Dass ich meine Akkus möglichst nicht bis 100 % lade, habe ich schon in meinem Beitrag über Ladezyklen erklärt. Am Nachttisch hängen jetzt Zigbee-Steckdosen vom Typ Sonoff S60ZBTPF*, die Handys und Uhren nachts nur bis 85 bis 90 % laden.

Das hat einen Haken, den ich erst später bemerkt habe: Die Steckdose schaltete ständig nach, sobald der Akku von 85 auf 84 % fiel. Und jedes Mal ging nachts das Handy-Display an. Inzwischen bleibt die Steckdose nachts durchgehend an und das Handy begrenzt die Ladung selbst mit seinem Akkuschutz.

Geschirrspüler fertig

Die Steckdose am Geschirrspüler, ebenfalls eine Sonoff S60ZBTPF, misst den Stromverbrauch. Daran erkennt Home Assistant, wann das Programm wirklich fertig ist, inklusive der Trocknungsphase. Die Nachricht bekommt nur, wer gerade zu Hause ist.

Das Auto im Smarthome

Sogar mein Mercedes ist eingebunden, über die Integration MercedesME 2020 mit einem Zweitkonto. Home Assistant kennt den Kilometerstand und warnt mich, wenn der Reifendruck nicht stimmt.

Meine Tankhistorie aus Spritmonitor habe ich per CSV importiert: 13 Tankungen über rund 11.170 km, 733 Liter für insgesamt 1.421 €. Der echte Verbrauch liegt bei 6,09 l/100 km. Der Bordcomputer behauptet 5,75 l. Nur so viel zum Thema Bordcomputer.

Balkendiagramm Verbrauch in Liter pro 100 km, real und laut Bordcomputer
Verbrauch pro Monat in Home Assistant: real gegen Bordcomputer

Tasmota-Fossilien wiederbelebt

Meine Tasmota-Steckdosen sind teils Jahre alt. Wie ich sie damals geflasht habe, steht in meinen Beiträgen über die PowStro und die Sonoff S20. Jetzt sollten sie auf eine aktuelle Version und per MQTT in Home Assistant.

Das Update auf die neueste Version scheiterte mit „nicht genug Speicher“. Die Steckdosen haben nur 1 MB Flash und die neueste Version passt da nicht direkt drauf. Die Lösung: in Etappen über die minimal-Version, von 8.5.1 über 9.1 bis 12.5.0. Damit die Steckdose dabei nicht eigenmächtig eine falsche Version holt, habe ich die OtaUrl fest eingetragen.

Bei der MQTT-Anbindung gab es zwei weitere Stolperfallen:

  • Fehler „rc 5“: Das heißt schlicht, dass das Passwort falsch ist. Ich habe das Passwort in Home Assistant neu gesetzt und in alle Steckdosen eingetragen.
  • Eine Steckdose verlor nach dem Update die MQTT-Verbindung. Bei großen Versionssprüngen werden die Einstellungen umgezogen und dabei ging etwas verloren. Also neu eintragen und danach prüfen.

Die Hue-Emulation habe ich abgeschaltet, die braucht dank Matterbridge niemand mehr. Und die Steckdose, an der mein Server hängt, ist in Home Assistant gegen Ausschalten gesperrt. Sonst schaltet man sich den eigenen Server ab, auf dem Home Assistant läuft.

Weboberfläche einer Gosund-Steckdose mit Tasmota und Messwerten
Die Tasmota-Steckdose, an der mein Server hängt

Wohnzimmer: Yamaha-Receiver und Radio

Mein Lieblingsprojekt: „Alexa, Radio an“. Dahinter steckt ein Yamaha RX-V475*, eingebunden über die YNCA-Integration. Das Radio kommt über Music Assistant per AirPlay. Bis das zuverlässig lief, war es ein langer Weg:

  • Der Quellwechsel ging nicht. Ich hatte die Szenen-Knöpfe benutzt. Die sind beim RX-V475 aber gesperrt, im Debug-Log steht dann „@RESTRICTED“. Die Lösung: die Quelle direkt im Media-Player wählen und die Szenen ausblenden.
  • Radio per DLNA brachte „upnp error 600“. Der Receiver lehnt fremde Live-Streams über DLNA ab. Die Lösung: Music Assistant per AirPlay.
  • Bei „Radio an“ ging der Receiver nicht an. Nach einem Kaltstart nimmt er Befehle erst nach einigen Sekunden an, Home Assistant zeigt aber noch den alten Zustand. Die Lösung ist eine Schleife: neu verbinden und einschalten, bis er wirklich an ist. Aus dem Kaltstart dauert „Radio an“ jetzt rund 38 Sekunden, weil Switch und Receiver an derselben Steckdose hängen. Läuft die Anlage schon, geht es sofort.
  • Der Receiver startete nach Stromrückkehr von selbst. Er merkt sich den Zustand vor dem Stromausfall. Die Lösung: erst den Receiver ausschalten, dann die Steckdose. Zusätzlich passt eine Wächter-Automation auf.
  • „Alexa, Radio aus“ tat nichts. Alexa denkt dabei an ihr eigenes Radio. „Alexa, schalte Radio aus“ oder eine Routine funktioniert.
  • Der Schalter „Radio“ in Home Assistant hatte keine Wirkung. Beim Template-Schalter fehlten die Aktionen fürs Ein- und Ausschalten. Die Lösung: Skripte als Aktionen eintragen.

Das Radio startet übrigens immer leise bei −60 dB. Für die Umrechnung der Lautstärke gilt beim RX-V475 die Formel (dB + 80,5) ÷ 97.

Der Subwoofer hängt an einer eigenen Zigbee-Steckdose und läuft nur, wenn der Receiver an ist. Im Standby zog er rund 15 W rund um die Uhr. Das sind etwa 130 kWh oder rund 40 € im Jahr für nichts.

Gerätseite des Yamaha RX-V475 in Home Assistant mit Steuerung und Konfiguration
Der Yamaha RX-V475 in Home Assistant
Fehlermeldung upnp error 600 beim Abspielen per DLNA
So sah der Versuch per DLNA aus
Logbuch des Receivers mit wechselnden Zuständen
Das Logbuch beim Testen: Aus, nicht verfügbar, wieder aus

Energie und Dashboards

Insgesamt messen 8 Steckdosen den Verbrauch: Server, TV-Anlage, Subwoofer, Geschirrspüler, Büro, 3D-Drucker und zweimal der Nachttisch. Alles landet im Energie-Dashboard von Home Assistant.

Für mich gibt es außerdem ein eigenes Admin-Dashboard namens „Steuerung“. Ein zweites Dashboard namens „Zuhause“ ist für das Tablet an der Wand gedacht, dazu unten mehr.

Zigbee-Updates brauchen Geduld

Lange dachte ich, Firmware-Updates über Zigbee klappen nie. Der Grund war ich selbst: Ich habe zwischendurch neu gestartet und damit die Updates abgebrochen. Zigbee-Updates dauern lange. Einfach laufen lassen.

Das Notfall-Handbuch

Ein Smarthome, das nur einer versteht, ist ein Risiko. Deshalb liegt im Wohnungsordner ein Notfall-Handbuch auf zwei Seiten A4, falls ich mal ausfalle. Darin steht, was wo hängt und was man tun kann, wenn etwas nicht funktioniert.

Alle Stolperfallen auf einen Blick

ProblemUrsacheLösung
Home Assistant nicht unter Port 8123 erreichbarDiese Version lief auf Port 80IP ohne Port aufrufen
Küchenlicht reagiert nicht auf den BewegungsmelderIKEA E1745 sendet nur an den KoordinatorAutomation statt Bindung
Fernbedienungen lassen sich nicht anlernenIKEA-Geräte schlafen sofort wiederBeim Anlernen mehrfach Knopf drücken
Alexa sieht Geräte doppelt oder zu vieleLabel gibt ganze Geräte frei, alte Skills aktivFilter auf Lichter und Schalter, alte Skills und Hue-Emulation weg
Wettersymbol erscheint nichtHygrometer schläft und verpasst den BefehlSymbol alle 2 Stunden erneut senden
Tasmota-Update: nicht genug Speicher1 MB Flash, neueste Version zu großIn Etappen über die minimal-Version
Tasmota MQTT „rc 5“Falsches PasswortPasswort neu setzen und überall eintragen
Steckdose verliert MQTT beim UpdateEinstellungs-Umzug beim großen VersionssprungNeu eintragen und prüfen
Zigbee-Updates klappen nieAbgebrochen durch NeustartsLaufen lassen
Yamaha: Quellwechsel geht nichtSzenen sind beim RX-V475 gesperrtQuelle im Media-Player wählen
Radio per DLNA: upnp error 600Receiver lehnt fremde Live-Streams abMusic Assistant per AirPlay
Receiver geht bei „Radio an“ nicht anNimmt nach Kaltstart erst später Befehle anSchleife bis er wirklich an ist
Receiver startet nach Stromrückkehr selbstMerkt sich den Zustand vor dem StromausfallErst Receiver aus, dann Steckdose, plus Wächter
„Alexa, Radio aus“ tut nichtsAlexa meint ihr eigenes Radio„Schalte Radio aus“ oder Routine
Template-Schalter „Radio“ ohne WirkungAktionen fürs Ein- und Ausschalten fehltenSkripte als Aktionen eintragen
Handy-Display nachts anSteckdose schaltet ständig nachNachts durchgehend an, Handy begrenzt selbst

Was noch kommt

  • Wand-Tablet: Ein Galaxy Tab S3* mit LineageOS und FreeKiosk soll das Dashboard „Zuhause“ zeigen. Geladen wird es über eine umfunktionierte Tasmota-Steckdose zwischen 30 und 80 %. Die Halterung kommt aus dem 3D-Drucker.
  • Backups: Die Sicherungen von Home Assistant sollen zusätzlich auf eine Unraid-Freigabe, damit mein QNAP sie monatlich mitsichert.
  • Lokale Musik in Music Assistant über die Freigabe auf dem Server
  • Schimmel-Sensoren an der Außenwand mit Taupunkt-Warnung
  • Ein „Tschüss“-Modus, der Lichter ausschaltet und die Heizung auf Eco stellt, wenn alle weg sind
  • Ein Wochenbericht mit Batterieständen, Updates und nicht erreichbaren Geräten

Fazit

Ein lokales Smarthome ohne Cloud und ohne Fernzugriff funktioniert, auch mit Geräten aus ganz verschiedenen Welten. Inzwischen laufen bei mir 2 Thermostate, 5 IKEA-Lampen und Leuchten, eine IKEA-Steckdose, 3 Fernbedienungen, ein Bewegungsmelder, ein Hygrometer, 4 Sonoff-Steckdosen und 6 Tasmota-Steckdosen unter einem Dach.

Plug and Play ist das allerdings nicht. Fast jede Komponente hatte ihre eigene kleine Falle. Wer sich davon nicht abschrecken lässt, bekommt ein Smarthome, das genau das macht, was man will. Und es gehört niemandem sonst.

* Werbelink: Die mit Sternchen markierten Links sind Affiliate-Links zu Amazon. Wenn du darüber etwas kaufst, erhalte ich eine kleine Provision. Am Preis ändert sich für dich nichts.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert