Merlin Schumachers privates Smart-Home: Ein Raspi als Steuerzentrale

Ein datenschutzfreundliches Smart Home ohne Cloud: Das war das Ziel für mein Projekt „c’t Smart Home“. In der Praxis kam ich aber schnell an Grenzen.

In Pocket speichern vorlesen Druckansicht 235 Kommentare lesen
Merlin Schumacher privates Smart-Home: Ein Raspi mit c’t Smart Home als Zentrale
Lesezeit: 9 Min.
Von
  • Merlin Schumacher
Inhaltsverzeichnis

Begonnen hat mein Interesse am intelligenten Haushalt, wie bei vielen, mit der Lichtsteuerung. Ikea hatte gerade seine Trådfri-Lampen mit ZigBee-Technik vorgestellt. Die Teile sind dimmbar und können in wechselnden Farben oder Lichttemperaturen leuchten. Der Einstieg gestaltete sich günstig. Ich benötigte nur ein paar Trådfri-Lampen; zum Ansteuern der Beleuchtung gab es noch allerhand ungenutzte Philips-Hue-­Bridges im Redaktionsfundus.

Aber auch wenn bei Beleuchtung Geräte von Hersteller A an der Bridge von Hersteller B funktioniert, klappt das bei vielen anderen Gerätetypen nicht. ZigBee-Geräte von chinesischen Herstellern sind sehr günstig und machen einen guten Job, aber laufen eben nicht mit Philips’ Infrastruktur. Meine Lösung: Zigbee­2mqtt und ein günstiger ZigBee-Adapter-Stick. Für 12 Euro kann man damit hunderte von Geräten unterschiedlichster Hersteller nutzen. Die Kommunikation mit dem Stick läuft per MQTT und ist daher mit fast jeder Smart-Home-Zentrale kom­patibel.

Mehr Infos

Die c’t BleibZuHaus-Abo-Aktion

4 Hefte lesen, 2 Hefte bezahlen

Zur Steuerung und Auswertung der Geräte musste natürlich eine Software-Zentrale her. Die Wahl fiel auf das grafische Entwicklungswerkzeug Node-Red, denn dafür gibt es zahllose Erweiterungen und mit dem Flow-Editor lassen sich problemlos komplexe Abläufe bauen, ohne dass man Skripte schreiben muss. Außerdem passt es gut in meine mit vielen Docker-Containern laufende Infrastruktur. Da einige Kollegen ebenfalls eine „Ver­smartung“ des eigenen Wohnraums planten und sich für Node-Red begeisterten, entstand das Projekt „c’t Smart Home“, als datenschutzfreundliche und flexible Basislösung für uns und für Sie.

Die Lampensteuerung per Node-Red klappte auch wunderbar – bis jemand den Lichtschalter drückt und den Strom abstellt. Alle Lichtschalter in der Wohnung gegen ZigBee-Modelle auszutauschen, war mir zu aufwendig und vor allem zu teuer. Zum Glück fand ich durch Zufall die Unterputzschalter der Firma Shelly. Deren Herz ist ein ESP8266-Mikrocontroller und die Schalter sprechen nicht nur mit der Hersteller-Cloud, sondern auch MQTT. Mit den richtigen Einstellungen melden Sie nur noch das Betätigen des angeschlossenen Schalters per MQTT, aber schalten nicht mehr das integrierte Relais. So bleibt die Lampe am Stromnetz und Node-Red kann sie auf den Schaltvorgang hin per Funk ein- oder ausschalten.

Die Reise meines Lichtwunsches vom Schalter über den Mikrocontroller per WLAN zum Raspi hin zu Node-Red und von dort weiter per ZigBee-Stick zur Lampe wirkt lang. In der Praxis ist aber kein Unterschied zum dummen Schalter zu spüren. In Bad und Küche arbeiten die Shellys übrigens als ganz normale Relais und schalten die vorhandenen dummen Lampen wirklich ab.

Das Flurlicht ist vollautomatisch, denn meist laufe ich dort eh nur kurz durch. Dort schaltet ein kleiner ZigBee-Bewegungs­melder die Flurlampe ein und aus. Das natürlich nur, wenn es wirklich dunkel ist. Damit ich beim spontanen, nächtlichen Weg zur Toilette nicht von einer kleinen Sonne im Flur geblendet werde, leuchtet die Lampe zwischen 23 und 8 Uhr nur noch mit 10 Prozent Leistung. Das reicht, um nicht auf die Nase zu fallen und ist dunkel genug für die verschlafenen Augen. Für gemütliches Licht im Wohnzimmer sorgt noch eine RGB-­Lampe von Ikea. Leider lässt deren Farbwiedergabe zu wünschen übrig.

Das erste proprietäre API kam mit der Tado-Heizungssteuerung ins System. Zuverlässige Open-Source-Alternativen zum Steuern von Heizungen über eBus scheint es nicht zu geben. Außerdem wollte ich weder mit meinem Leben spielen, noch meinem Vermieter eine Gastherme bezahlen, weil ich beim Löten oder Programmieren nicht aufgepasst habe. Die Bedienung der originalen Vaillant-Thermensteuerung war ein Krampf. Bis zum Kauf der Tado-Thermensteuerung musste ich immer genau planen, wann ich von Dienstreisen zurückkehre, damit ich nicht im Bett erfriere, denn bis der schlecht isolierte Altbau mit hohen Decken menschenwürdige Temperaturen erreicht, vergehen Stunden.

Am allerbesten: Wenn man mal vergisst, die Heizung abzuschalten, bevor man das Haus verlässt, ist die Lösung nur eine App entfernt. Das lernte ich zu schätzen, als ich das erste Mal am anderen Ende der Welt stand und die Heizung ausmachen konnte. Das fühlte sich wirklich ein bisschen nach Zukunft an. Glücklicherweise bietet Tado ein extrem detailliertes API an, mit dem sich praktisch alles steuern und auslesen lässt.

So kann man auch die von Tado selbst angebotene, kostenpflichtige Anwesenheitserkennung durch eine eigene Lösung ersetzen. Im Rahmen einer Shoppingtour durch chinesische Online-Portale fand ich noch sehr kleine und günstige ZigBee-Fenstersensoren. Meldet einer von ihnen ein geöffnetes Fenster, schaltet Node-Red den Kessel ab. Der Planet heizt sich ja schon genug auf.

Obwohl ich bis zu einem gewissen Punkt auf Datenschutz geachtet habe, wurde mir der Wunsch nach mehr Komfort im Smart Home wichtiger und gewann schließlich. Stein des Anstoßes war die Bedienung per Handy und per Sprache. Als Bedienoberfläche für mein Smart Home diente eine ganze Zeit das Node-Red-Dashboard. Das brauchte aber viel Pflege.

Inzwischen habe ich viele Geräte in Google Home integriert. Dabei half die Node-­Red-Erweiterung node-red-contrib-­google-smarthome. Sie ist noch lange nicht soweit­, dass man alles damit umsetzen kann, aber verschiedene Lampen­typen, Steckdosen, Thermostate und Fenster sind bereits kontrollierbar. Der Vorteil dabei ist, dass man die Geräte dann sowohl per Google Assistant als auch per Home-App steuern kann. Einziger Nachteil: Die Einrichtung ist echte Fleißarbeit. Wenn die Geräteunterstützung breiter wird, plane ich einen c’t-Praxisartikel zur Einrichtung. Im Bett liegen und per Sprach­kommando das vergessene Klolicht auszuschalten, ist aber eine ausreichende Belohnung für den Fleiß.

Das nächste Projekt steht bereits im Wohnzimmer. Ich habe den alten Billigfernseher durch ein zeit- und (wie ich finde) standesgemäßes 4K-OLED-Gerät von LG ersetzt. Das kann man auch bis in den letzten Winkel per API steuern – also prädestiniert dafür, es in Wohnzimmerszenen einzubauen, bei denen sich das Licht automatisch dimmt, wenn nach 20 Uhr die Netflix-App angeht.

Einziger Spielverderber ist mein treuer, aber sehr alter AV-Receiver. Der funktioniert zwar noch einwandfrei, ist technisch aber völlig überholt. Digitalton kennt er nur per SPDIF und da auch nur ganz normales PCM, DTS und Dolby Digital. Von den modernen Tonformaten oder gar APIs will er nichts wissen. Ihn kann man nur per Infrarot zur Mitarbeit überreden. Das macht die alte Logitech Harmony-Fernbedienung noch am besten, denn Sie behält selbst den Überblick über den Zustand der Geräte – auch wenn ich die Gerätefarm unterm Fernseher auch durch eine Infrarot-Box per MQTT schalten könnte.

Für die Hausarbeit habe ich mir noch einen Staubsaugerroboter von Xiaomi ins Haus geholt. Mit der richtigen Behandlung gehorcht auch der auf Kommandos von Node-Red und spricht nicht mehr mit seinen chinesischen Herren. Zudem saugt er viel lieber Staub, als ich das je täte. Auch er wird noch in Google Home integriert und dann kann die Xiaomi-App endlich auf den Müll.

In so einem Smart-Home fallen allerhand Daten an. Die kann man nach Herzenslust abschöpfen. Dafür kommt die Zeitreihendatenbank Influxdb zum Speichern und Grafana als Visualisierungswerkzeug zum Einsatz. Neben den Temperaturen in Wohnzimmer, Küche und Schlafzimmer landen dort auch die aktuelle DSL-Geschwindigkeit, die Batteriestände von Sensoren, die Sendeleistung von Zigbee-Geräten sowie die Heizleistung der Gastherme. Außerdem überwache ich dort den Energieverbrauch der Waschmaschine.

Leider ist das Ganze auch eine Quelle von Arbeit, da man die Daten von jedem Gerät so umformen muss, dass sie in der Datenbank auswertbar sind. Das beginnt mit Formatkonvertierung und endet mit ausführlichen Rechenoperationen zur Anpassung von Daten verschiedener Geräte. Bislang sind die Daten auch nur hübsch anzusehen, aber vielleicht deutet der Graph der Waschzeit meiner Waschmaschine mal darauf hin, dass sie langsam ihre irdische Existenz überstanden hat.

Eine Steuerung für die Waschmaschine wäre schön, damit die Wäsche nicht immer ein paar Stunden in der Trommel liegt und muffelt oder erst spätabends fertig ist. Ein angefangenes, möglicherweise zu ambitioniertes Lötprojekt für einen passenden Controller liegt noch auf meinem Schreibtisch. Meine Waschmaschine ist glücklicherweise dumm wie Brot und lässt sich gerade deshalb gut versmarten. Ein modernes Gerät mit WLAN-Funktion müsste man wieder langwierig zum Mitspielen überreden. Die Versuche, die Maschine zu starten und dann den Strom mittels einer WLAN-Steckdose abzuschalten, klappten zwar, doch sie hinterließen auch ein mulmiges Gefühl. Aber mir fällt da schon noch was ein.


Dieser Artikel stammt aus c't 8/2020. (mls)