Meine Wohnung beherbergt inzwischen eine durchaus respektable Zahl elektrischer Verbraucher. Neben den üblichen Verdächtigen wie Kühlschrank, Waschmaschine, Fernseher und Computer stehen hier unter anderem ein NAS, ein 3D-Drucker und diverse andere Geräte herum. Bislang hatte ich einige davon mit günstigen WLAN-Steckdosen chinesischer Herkunft versehen. Das funktionierte grundsätzlich. Solange die Steckdosen gerade Lust darauf hatten.
Gelegentlich entwickelten sie nämlich eine bemerkenswerte Eigeninitiative. So schaltete sich schon einmal der Computer während des Zockens ab, der Fernseher beendete ungefragt einen Serienabend und auch der 3D-Drucker wurde mitten im Druck stromlos gemacht. Immerhin waren die Geräte damit zweifelsfrei smart, insofern, dass sie eigene Entscheidungen trafen. Es waren nur leider fast immer die falschen Entscheidungen…
Parallel dazu hatte ich seit geraumer Zeit mit smarten Heizkörperthermostaten geliebäugelt. Gerade in Zeiten hoher Heizkosten erscheint es wenig sinnvoll, die Wohnung tagsüber auf Wohlfühltemperatur zu halten, wenn niemand da ist. Umgekehrt möchte ich aber auch nicht jeden Abend erst mehrere Stunden in einer kalten Wohnung sitzen, während sich die Heizkörper langsam aufwärmen. Angeschafft hatte ich die Thermostate trotzdem nie. Der Grund war ausgesprochen technisch: Ich hatte Angst davor, die vorhandenen Thermostatköpfe abzuschrauben. In meiner Vorstellung endete der Wechsel mindestens mit einer Wasserfontäne und einem nassen Fußboden. Dass beim Tausch des Thermostatkopfes der Heizkreislauf gar nicht geöffnet wird, war mir theoretisch zwar bekannt. Praktisch blieb ein gewisses Misstrauen gegenüber der gesamten Angelegenheit.

Ein ohnehin schon länger gehegter Plan

Als mir schließlich eine der alten WLAN-Steckdosen einen laufenden 3D-Druck beendete, war die Entscheidungsfindung abgeschlossen. Wenn ich schon damit beginne, die problematischen Steckdosen zu ersetzen, kann ich auch gleich das lange aufgeschobene Thema Smart Home angehen. Wie so häufig bei meinen Projekten war der Übergang von „Ich tausche eine Steckdose aus“ zu „Ich brauche eine zentrale Gebäudeleittechnik für 65 Quadratmeter Mietwohnung“ erfreulich kurz.

Zigbee, weil Daten irgendwo hinmüssen

Nach einiger Recherche fiel die Wahl auf Zigbee. Im Gegensatz zu meinen bisherigen WLAN-Steckdosen müssen die Geräte nicht alle einzeln irgendeine Cloud auf der anderen Seite der Erde kontaktieren. Zigbee ist für Sensoren und Aktoren mit geringem Energiebedarf ausgelegt und, was ich besonders toll finde, jedes Netzgerät (wie Steckdosen) bilden ein Mesh aus Routern für andere Geräte.

Die erste Smart-Home-Anschaffung

Als Software kam für mich recht schnell Zigbee2MQTT in Kombination mit Home Assistant infrage, da es erfreulich viele Messwerte und Einstellungen  der Geräte zugänglich macht. Das kommt mir sehr entgegen, denn ich bin ein Freund des gepflegten Smart-Home-Micromanagements und Datenloggens. Wenn ein Temperatursensor neben Temperatur und Luftfeuchtigkeit auch Batteriespannung und Verbindungsqualität herausgibt, möchte ich selbstverständlich alles davon in irgendeinem Diagramm sehen. Unabhängig davon, ob daraus jemals eine praktisch relevante Erkenntnis entsteht. Bestellt habe ich die Geräte bei smartdomo.de. Als Zentrale dient ein Home Assistant Green. Der kleine Rechner ist vollständig auf Home Assistant zugeschnitten und erspart mir, noch einen weiteren Raspberry Pi oder Server dauerhaft administrieren zu müssen. Für das Zigbee-Netzwerk steckt daran ein SONOFF Dongle Plus MG24, der als Koordinator fungiert. Über Mosquitto als MQTT-Broker gelangen die Daten von Zigbee2MQTT schließlich zu Home Assistant. Dazu kamen SONOFF S60ZBTPF als schalt- und messbare Steckdosen, SONOFF TRVZB für die sechs Heizkörper, Temperatur- und Luftfeuchtigkeitssensoren vom Typ SNZB-02D sowie ein paar SenseGuard DW Gen2 für die Türen. Die Steckdosen messen nicht nur die aktuelle Leistung und den Energieverbrauch, sondern verbessern als Zigbee-Router zugleich die Abdeckung des Netzes. Die Raumfühler liefern den Thermostaten wiederum die tatsächliche Temperatur im Zimmer. Das ist deutlich sinnvoller als eine Messung direkt am heißen Heizkörper.

Erstaunlich wenig Drama bei der Installation

Die grundsätzliche Einrichtung von Home Assistant war ausgesprochen einfach: Home Assistant Green anschließen, starten, die Weboberfläche öffnen und den Einrichtungsassistenten durchlaufen. Auch Mosquitto und Zigbee2MQTT ließen sich ohne größeres Drama installieren. Danach wurden zunächst die Steckdosen angelernt, die das Grundgerüst des Mesh-Netzwerks bilden, und anschließend Sensoren, Türkontakte und Thermostate ergänzt.

Die eigentliche Hardwareinstallation dauerte insgesamt vielleicht ein bis zwei Stunden. Beim ersten Heizkörper war der Thermostatwechsel noch etwas hakelig. Ich hielt vorsichtshalber ein Handtuch bereit und beobachtete jeden Handgriff mit dem Misstrauen eines Menschen, der jederzeit mit austretendem Heizungswasser rechnet. Beim zweiten Heizkörper war das Prinzip verstanden, und die übrigen waren anschließend in wenigen Minuten erledigt. Meine jahrelange Sorge vor dem Thermostatwechsel erwies sich damit als weitgehend grundlos. Immerhin hatte sie den Vorteil, dass ich nun gleich sechs Thermostate auf einmal montieren durfte.

Nach dem Anlernen konnte Home Assistant bereits Temperaturen, Luftfeuchtigkeiten, Türzustände, Heizkörper, Leistungen und Energieverbräuche erfassen. Die Wohnung war damit funktional smart. Vernünftige Menschen hätten an dieser Stelle vermutlich ein paar übersichtliche Karten auf einem Dashboard angelegt und sich über das Ergebnis gefreut. Ich hatte allerdings bereits eine Kontrollzentrale vor meinem geistigen Auge. Zunächst hatte ich aber erstmal Firmware-Updates aller Geräte vorgenommen. Und ich kann berichten, dass diese Updates über MQTT laaaaaaaaaaaaange brauchen.

Vom alten Grundriss zum Home-Assistant-Floorplan

Glücklicherweise hatte ich die Wohnung schon einige Jahre zuvor, noch vor dem Einzug, in Sweet Home 3D nachgebaut und möbliert. Die damalige SH3D-Datei lag noch auf dem NAS und wartete offenbar nur darauf, für einen unnötig detaillierten Smart-Home-Grundriss wieder hervorgeholt zu werden.

Nachdem gefühlt 100 Jahre durch Firmware-Updates vergangen waren (OK, es war eine Nacht), entstanden aus dem alten Modell eine Übersicht der gesamten Wohnung und separate Ansichten der einzelnen Räume. In der Gesamtansicht sehe ich auf einen Blick Temperaturen, Luftfeuchtigkeiten, geöffnete Türen, aktive Verbraucher und Räume, in denen gerade geheizt wird. Ein Klick auf einen Raum öffnet dessen Detailansicht. Dort lassen sich dann beispielsweise Steckdosen und Heizkörper bedienen oder weitere Messwerte anzeigen. Die Übersicht selbst bleibt dagegen bewusst eher eine Statusanzeige. Schließlich soll man nicht versehentlich den 3D-Drucker ausschalten, nur weil man auf dem Handy mit dem Daumen etwas zu großzügig auf den Grundriss getippt hat. Für solche Dinge hatte ich bereits die alten Steckdosen.

Wohnungsübersicht mit Temperaturen, Luftfeuchtigkeiten, Türzuständen, Heizaktivität und den wichtigsten Verbrauchern

Für die Umsetzung nutze ich HACS, ha-floorplan und Floorplan Studio. Der aktuelle Stand von Floorplan Studio bot allerdings noch nicht ganz die Funktionalität, die ich für meine Vorstellung benötigte. Also habe ich das Projekt lokal geforkt und begonnen, den Export zu erweitern. Meine Variante erzeugt unter anderem dynamische Textanzeigen mit Einheiten, kann SVG-Elemente abhängig vom Zustand einer Entität gezielt ein- und ausblenden und unterstützt Regeln für zustandsabhängige Hervorhebungen. Hinzu kamen passende Standardaktionen für Detailinformationen und Navigation sowie einige Anpassungen für meine Dateistruktur und die bildschirmfüllende Darstellung. Damit lassen sich beispielsweise nur dann farbige Overlays einblenden, wenn ein Raum tatsächlich beheizt wird, Türgrafiken je nach Kontaktzustand wechseln oder aktuelle Temperatur- und Luftfeuchtigkeitswerte direkt an der richtigen Stelle im Raum anzeigen. In der Theorie ging es also nur darum, einen vorhandenen Grundriss mit ein paar Sensorwerten zu versehen. In der Praxis habe ich inzwischen einen eigenen Fork eines Floorplan-Editors. Der übliche Projektverlauf also. Man beachte, dass ich als gebürtiger Erzgebirger natürlich auch direkt schon die Schwibbogensteuerung vorbereitet hatte.

Die Detailansicht des Wohnzimmers. Hier darf der Grundriss dann nicht nur informieren, sondern auch schalten und regeln.

Eine USV, zwei Server und ein renitenter Benutzername

Zur technischen Grundversorgung gehört bei mir außerdem eine USV Eaton 3S 550 DIN. Sie hält Home Assistant, ONT, Fritzbox und NAS bei einem Stromausfall zumindest eine Weile am Leben. Bislang war die USV per USB direkt mit meiner UGREEN DXP4800 Plus verbunden. Die NAS fungierte dabei gleichzeitig als NUT-Server und konnte sich bei längeren Stromausfällen selbst kontrolliert herunterfahren. Das funktionierte, hatte aber einen kleinen konzeptionellen Schönheitsfehler: Die NAS läuft bei mir nicht dauerhaft, sondern wird nur bei Bedarf eingeschaltet. Damit verschwand zusammen mit der NAS auch der NUT-Server. Home Assistant Green läuft dagegen ohnehin rund um die Uhr und wäre deshalb eigentlich der wesentlich logischere Ort für die Überwachung der USV.

Also zog ich testweise das USB-Kabel von der NAS ab und steckte es an den Home Assistant Green. Dort wurde die USV vom Add-on Network UPS Tools praktisch sofort erkannt. Noch erfreulicher war, was danach in Home Assistant erschien: Status, Batterieladung, verbleibende Laufzeit, aktuelle Last und diverse weitere Diagnosewerte. Ein bislang weitgehend unbeachteter Kasten in meinem „Server-Rack“ (Billo-Sideboard aus dem Möbel-Discounter, in dem NAS, USV, ONT, etc. lieblos reingestopft sind) hatte sich damit innerhalb weniger Minuten in eine weitere ergiebige Quelle für Sensoren, Diagramme und Langzeitstatistiken verwandelt. Genau mein Ding. Die Aussicht, die USV anschließend wieder an die NAS zurückzugeben, war damit im Grunde erledigt.

Home Assistant sollte fortan nicht nur die Messwerte anzeigen, sondern selbst als NUT-Server arbeiten. Die NAS würde sich über das Netzwerk als Client verbinden und bei einem längeren Stromausfall weiterhin automatisch herunterfahren. In der Theorie war das recht einfach: Den NUT-Server im netserver-Modus betreiben, Port 3493 im lokalen Netzwerk freigeben und in UGOS die feste IP-Adresse von Home Assistant eintragen.

In der Praxis scheiterte die UGREEN-NAS zunächst an etwas furchtbar Banalem: Für Home Assistant war bereits ein eigener Benutzer namens „nut-monitor“ mit einem vernünftigen Passwort eingerichtet. UGOS wollte damit jedoch nichts zu tun haben und quittierte die Verbindung lediglich mit einer wenig hilfreichen Fehlermeldung. Einen frei konfigurierbaren Benutzernamen bietet UGOS nicht an. Offenbar erwartete die UGREEN-Implementierung stattdessen einen zusätzlichen Benutzer namens nut samt eines ganz bestimmten, ausgesprochen wenig kreativen Kennworts. Das NUT-Add-on wiederum hielt dieses Kennwort vollkommen zu Recht für eine schlechte Idee und verweigerte zunächst die Konfiguration. Dafür existiert tatsächlich die Option „i_like_to_be_pwned: true“, mit der man dem Add-on ausdrücklich mitteilen kann, dass man sich der Fragwürdigkeit seines Passworts bewusst ist und trotzdem fortfahren möchte. Nach dem Anlegen des zusätzlichen Kompatibilitätsbenutzers nut mit der Rolle secondary und der Freigabe von Port 3493 meldete UGOS schließlich „erfolgreich verbunden“.

Seitdem hängt die USV dauerhaft am Home Assistant Green. Home Assistant sammelt und visualisiert ihre Messwerte und stellt sie zugleich über NUT im Netzwerk bereit. Die UGREEN-NAS kann weiterhin automatisch und sauber herunterfahren, falls der Strom länger ausbleibt. Aus einer USV, die zuvor einfach nur unauffällig ihren Dienst verrichtete, ist damit ein weiteres vollständig überwachtes Gerät geworden. Ob ich ihre Restlaufzeit wirklich als Verlaufskurve benötige, ist eine andere Frage. Ich kann sie jetzt jedenfalls plotten, und darauf kommt es schließlich an. Gut, die Wirkleistung der USV als Diagnose-Sensorsignal ist tatsächlich hilfreich, da sie mir die Installation eines weiteren Smart Plugs als Leistungszähler gespart hat.

Vorläufiges Fazit

Das eigentliche Ziel ist erreicht: Die Wohnung kann im Winter zu den richtigen Zeiten aufgeheizt werden, ohne den ganzen Tag sinnlos Wärme nach draußen zu poltern. Die Thermostate nutzen die externen Raumfühler, die Steckdosen schalten bislang nur dann, wenn ich es tatsächlich möchte und Home Assistant führt alle Geräte lokal in einer Oberfläche zusammen, ohne dass ich 30 Apps benötige.

Auch mein Sensor- und Überwachungsfetisch wird umfassend bedient. Ich kann mir nun zu praktisch jeder Zeit ansehen, wie warm und feucht es in jedem Raum ist, welcher Heizkörper gerade arbeitet, wie viel Leistung einzelne Geräte aufnehmen und wann zuletzt eine Tür geöffnet wurde. Und wenn ich unterwegs bin, nutze ich die gewonnene Freiheit natürlich sinnvoll: Ich hänge in Home Assistant und schaue mir die Luftfeuchtigkeitskurve des Arbeitszimmers an.

Ob die Wohnung dadurch wirklich intelligenter geworden ist oder nur ihr Bewohner mehr Diagramme besitzt, muss sich noch zeigen. Immerhin hat sich seit der Umstellung kein Gerät mehr während des Betriebs aus eigenem Antrieb abgeschaltet. Für den Anfang genügt mir das.