Meine SmartHome-Projekte
Als erstes möchte ich hier kurz klarstellen, dass ich weder Elektrotechnik noch Informatik studiert habe. Man möge es mir also nachsehen, dass ich eventuell manche Begrifflichkeit nicht richtig verwende und dass mancher Code nicht den Regeln der Kunst entspricht. Aber funktionieren tut es doch!
Meine ersten Projekte sind etwa 2014 gestartet. Aus dieser Zeit stammt auch Home Assistant, das war damals aber natürlich noch weit entfernt von der heutigen Genialität. ESPHome gab es noch nicht, also blieb mit nicht anderes übrig als Code selbst zu schreiben. Inzwischen verwendet ich natürlich auch hier und da diese tollen Hilfsmittel. Aber einen C-Code selbst zu schreiben, der am Ende dann hoffentlich auch funktioniert, ist schon ein schönes Erfolgserlebnis. Wenn also jemand C oder C++ lernen möchte, kann ich nur dringend empfehlen, mit einem ESP8266 zu starten!
Der Grund, mich mit dem Thema Heizungssteuerung näher zu befassen, ist unser sanierter Altbau (Baujahr 1957), den wir kernsaniert haben und seit 2014 bewohnen. Das Dach ist komplett neu aufgestellt worden und innen und außen isoliert. Ansonsten haben wir das Haus nicht isoliert. Die für mich zentrale Frage ist: Lohnt sich die Isolierung der Außenwände?
Um dieser Frage auf den Grund zu gehen kann man Energieberater fragen und deren Antwort glauben oder nicht. Fakt ist, dass besonders bei Altbauten eine Bewertung relativ schwierig ist und auf vielen Annahmen beruht. Das war mir zu unsicher!
Um unsere Heizung und den Wärmebedarf besser zu verstehen wollte ich eigentlich mit Arduinos die Temperatur und relative Feuchte in mehreren Räumen messen und loggen. Meine Idee, dazu ein ESP8266 zu verwenden, hat leider nicht geklappt. (Inzwischen weiß ich dass die Programmierung des ESP8266 mit der Arduino IDE wegen einem offensichtlich inkompatiblen FTDI USB to Serial Adapter FT232RL nicht funktioniert hat!).>
Nachdem ich bereits zwei Heizkreisläufe meiner Fußbodenheizung mit Homematic-Wandthermostaten geregelt hatte, ist mir aufgefallen, dass diese ja bereits Temperatur UND relative Feuchte messen. Also habe ich das ELV-Funkmodul für Raspberry Pi ausprobiert. Ich hatte zuvor nie die Homematic-CCU2 im Einsatz. Einen Raspberry Pi 2 B habe ich im November 2015 (das war damals wohl eine der ersten Versionen von RaspberryMatic) nach folgender Anleitung zum RaspberryMatic gemacht. Und oh Wunder: Es hat auf Anhieb geklappt! Ich konnte alle Wandthermostaten anlernen. Und das Anlernen der Aktoren über die Seriennummer ist echt einfacher als nach der Anleitung (Kontakte auf Phase legen!).
Die Homematic-Steuerung mit dem Raspberry Pi ist aus meiner Sicht echt genial. Einziges Mako aus meiner Sicht: Die Datenerfassung. Zwar gibt es beim Homematic-Web-Interface die ganz ordentliche Diagrammfunktion mit Möglichkeiten zum Export nach CVS, allerdings wird die Schaltposition der Aktoren nicht mit aufgezeichnet. Ich suchte daher nach einer anderen Lösung.
Dank des Zusatz-Programms XML-API (wird auf dem RaspberryMatic als Programm installiert) ist es möglich, ALLE Daten des Homematic-Systems abzufragen. Also habe ich einen zweiten Raspberry Pi (Anfang einen Pi 1 Model B+, inzwischen Pi 3 Model B) so installiert, dass diese alle 5 Minuten via http://[ip]/statelist.cgi den RaspberryMatic abfragt und alle Parameter in eine MySQL-Datenbank scheibt. Alle Parameter, also auch die Schaltzustände der Aktoren.
Mit dieser sehr günstigen Lösung kann ich jetzt die aktuelle Temperatur, die Soll-Temperatur sowie die relative Feuchte aller Homematic-Wandthermostate erfassen und speichern. Dazu habe ich noch einen Homematic-Außensensor eingebunden. Außerdem werden die Schaltzustände aller Aktoren meiner Heizkreisläufe mit aufgezeichnet. Nach und nach wurden in unserem renovierten Altbau alle kabelgebundenen Wand-Thermostaten für die Regelung der Fußbodenheizung durch Funkthermostaten zu ersetzen. Inzwischen sind weitere Homematic-Sensoren und -Aktoren hinzugekommen, unter anderem ein Außentemperaturfühler, Zwischensteckdosen mit und ohne Leistungs-Messung sowie Taster.
Nachdem mein Raspberry Pi 2 B nun als RaspberryMatic meine Heizung steuert, musste ein geeigneter Platz gesucht werden, damit die Kommunikation mit allen Einzelkomponenten (Wandthermostaten, Aktoren, etc.) fehlerfrei klappt. Die probeweise Installation unterm Dach und im Keller führte zu sehr vielen Fehlermeldungen und lückenhafter Datererfassung! Ein Platz in der Mitte des Hauses ist bei mir das Treppenhaus. Der WLAN-AP ist dort auch gut aufgehoben. Vom Keller aus konnte ich relativ einfach zwei Netzwerk-Kabel dort hin legen, allerdings fehlte eine Steckdose. Daher habe ich mein POE für den Raspberry Pi selbst gebaut. Der WLAN-AP lief ohnehin schon über POE.
Meine erste Idee war, die 5 VDC für den Raspi über einen POE-fähigem Switch und mit POE-Splitter bereit zu stellen erschien mit relativ teuer. Also habe ich zwei Cat6-Verbindungsmodule gekauft (je ca. 3,50 Euro), die mit einem LSA-Werkzeug belegt werden. Da der Raspi ohnehin lediglich 100MBit-Ethernet kann, sind vier der acht Kabel im Cat-Kabel unbelegt. Also habe ich nur die vier relevanten Leitungen aufgelegt und 5 VDC nach dem Router an der Cat6-Dose eingespeist. Die 5 VDC kamen zwar am Raspi an, allerdings war der Spannungsabfall über das Netzwerk-Kabel (ca. 15m) offensichtlich unter "Last" zu groß. Jedenfalls konnte der Raspi so nicht betrieben werden.
Damit die 5 VDC stabil am Raspi ankommen, nutze ich inzwischen einen DC/DC-Step-down-Wandler (z.B. SMD-Step-down-Wandler SDW 1, Komplettbausatz von ELV, 8 Euro). Dieser kleine Spannungswandler ist schnell aufgebaut und kann 500 mA bereitstellen (absolut genug für einen Raspi). Getestet mit einem 10 Ω-Widerstand (1 Watt!) ist die Ausgangsspannung (über Poti einstellbar!) bei eingestellten 5 VDC und 500 mA absolut stabil, sogar runter bis ca. 5,5 VDC Eingangsspannung! Nach dem Router speise ich jetzt 24 VDC aus einem Hutschinen-Netzteil via Passiv-POE-Injektor ins LAN-Kabel ein. Am Raspi stellt dann der DC/DC-Wandler die Spannungsversorgung für den Raspi bereit. Klappt prima, kostet nicht viel und spart eine Steckdose am Raspi!
Ich wollte die Daten, die in der Bedieneinheit meiner Heizung dargestellt werden, in mein SmartHome-Projekt mit einbinden. Auf dieser Seite ist beschrieben, wie ich das umgesetzt habe:
Mein SmartHome-Projekt EMS-Bus
Die Vor- und Rücklauftemperatur der Heizkreisläufe der Fußbodenheizung sowie der Warmwasser-Zirkulationsleitung werden über wasserdichte gekapselte 1-wire-Temperatursensoren DS18B20 erfasst (10 Stück ca.20 €)). Diese sind mit Wärmeleitpaste und Kabelbinder direkt von außen auf die jeweilige Wasserleitung gepresst und dann nach Umgebung isoliert. Ein Vorteil der 1-wire-Sensoren ist der, dass alle Sensoren über ein dreiadriges Kabel auch über eine längere Strecke (mehrere Meter) an den Raspberry Pi angeschlossen werden können.
Der Luftdruck wird über ein Temperatur-Druck-Modul BMP180 an einem Raspberry Pi gemessen. Außerdem hängen an manchen der installierten Raspberry Pi noch digitale Temperatur-Feuchte-Sensoren DHT22/AM2302, um zum Beispiel im Keller Temperatur und Feuchte zu messen.
Über mein selbst gebasteltes Temperaturdisplay können dann Außentemperatur, relativen Feuchte und Luftdruck angezeigt werden.
Ein Odroid HC4 mit SSD als sparsame Selbstbau-NAS.
Mit dieser Ausstattung werden folgende Parameter erfasst und in einer MySQL-Datenbank abgelegt:
Für die Visualisierung dieser Daten habe ich zuerst amCharts verwendet, damals noch in der Version 3. Inzwischen nutze ich zur Visualisierung der Daten eher Grafana oder Home Assistant.
Dennoch an dieser Stelle ein paar Punkte zu amCharts. Damit können Daten in diversen Diagrammen sehr schön visualisiert werden, wobei die Daten direkt aus der jeweiligen Datenbank bezogen werden. Das klappt über das amCharts-Pluging dataloader hervorragend (wenn man mal das Grundprinzip verstanden hat). Auf diese Weise kann man dann über HTML-Buttons auf verschiedene Daten zugreifen, indem dem PHP-Script im dataloader ein Parameter mit übergeben wird. Im Folgenden ein Beispiel für das PHP-Script data_RoomTRH.php
.
Das ist eine gute Frage! Zuerst einmal Spass und Freude am Basteln und Programmieren, vor allem wenn am Ende alles klappt (was bei mir nicht auf Anhieb der Fall war). Und dann ist es ganz einfach sehr beeindruckend zu sehen, was ein so kleiner Ein-Platinen-Comupter mit einem Leistungsbedarf von unter zwei Watt zu leisten vermag. Die im Vergleich zu kommerziellen Lösungen überschaubaren Kosten waren ein weiterer Anreiz.
Ich bin neugierig und wollte schon immer Mal wissen, wie denn die Heizung tatsächlich funktioniert. Wie träge ist die Regelung einer Fußbodenheizung? Wie lange dauert es, bis ein Raum warm wird? Sind meine Heizkreise im großen Wohnbereich richtig geregelt? Macht eine Nachtabsenkung bei einer Fußbodenheizung eigentlich Sinn? Funktioniert die Regelung der Vorlauftemperatur wie gewünscht in Abhängigkeit der Außentemperatur? Wieviel Strom braucht eigentlich ein Haushalt? Wie niedrig ist die Grundlast? Wie hoch sind die Spitzen?
Mit diesem Projekt kann ich nun folgende Antworten geben: