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!


Übersicht über meine (teils selbst gebastelten) SmartHome- bzw. DIY-Projekte

  • Raspberry Pi (meine Zentrale): Erfassung aller Parameter in einer MariaDB-Datenbank, Webserver zur Visualisierung, Scripte zur intelligenten Ansteueurng diverser Homematic-Komponenten.
  • Mein Lieblings-Projekte Grafana und Home Assistant
  • einige allgemeine Infos zum ESP8266 inklusive Kommunikation z.B. mit einem Raspberry Pi via MQTT etc.
  • ESP8266-ESP01 zur Erfassung Gaszählerstand
  • Raspberry Pi zum Auslesen des Stromzählers (SmartMeter)
  • ESP8266-ESP01 zum Auslesen der Wasseruhr
  • ESP8266-ESP12 an Warmwasser-Zirkulationspumpe
  • ESP8266-ESP01 als WLAN-Temperatursensor
  • zwei weitere ESP8266-ESP01 zur Erfassung diverser Temperaturen. Unter anderem Vor- und Rücklauf-Temperatur diverser Heizkreise, aber auch die diversen Temperauturen unter meiner Fassaden-Isolierung.
  • ESP8266-ESP12 zur Erfassung von Luftdruck, relativer Feuchte im Heizungskeller, und weiterer Vor- und Rücklauf-Temperatur diverser Heizkreise
  • Raspberry Pi zum Auslesen des EMS-plus-Bus vom Gas-Brennwert-Gerät
  • Temperaturdisplay: ein kleines selbst gebasteltes Gerät zum Anzeigen der Außentemperatur, relativen Feuchte und Luftdruck (aktuelle Werte aus der MySQL-Datenbank)
  • WLAN-Türklingel: Rückmelde-Funksendeplatine für eine Türstation
  • Jalousie-Steuerung mit ESP8266 NodeMCU und 8-Kanal-Relaisplatine
  • Windsensor-Projekt mit ESP8266 ESP-01
  • Wie präzise ist eigentlich eine Wettervorhersage? Benchmark Wettervorhersage
  • Solar-USV: Eine mit PV-Strom geladene Solar-Batterie zur Versorgung der SmartHome-Geräte.
  • Leistungsindikator einer PV-Anlage
  • Ein Odroid HC4 mit SSD als Odroid-NAS
  • ACHTUNG - Kurzschluss bei minderwertigen Hohlsteckern
  • Ein einfacher Batterie-Tester für die Kapazitätsmessung von Batterien.
  • Abfrage der Daten von einem Sunny Home Manager via Python, PHP oder ESP8266
  • Elektrisches Energiespeichersystem oder PV-Batteriespeicher ESS
  • Problem nicht sauber schließender Heizkreis-Ventile bei einer Fußbodenheizung: Problem mit HK-Ventil


Übersicht meiner Homematic-Komponenten

  • Homematic-Funkmodul für Raspberry Pi, Steckplatine HM-MOD-RPl-PCB, Komplett-Bausatz (Hersteller-Link). Über diese Schnittstelle können alle Parameter sämtlicher angelernter Homematic-Komponenten abgefragt und eingestellt werden. Das ist genial! In Verwendung von 2014 bis Januar 2021.
  • seit Januar 2021 besteht meine HomeMatic-Zentrale aus dem ELV Bausatz Smart Home Funk-Modulplatine für Raspberry Pi 3 B, RPI-RF-MOD (Hersteller-Link) in Kombination mit einem Raspberry Pi 3 B und dem jeweils aktuellen RaspberryMatic.
  • Funk-Wandthermostate, Aufputzmontage, für alle Räume (Hersteller-Link)
  • mehrere Funk-Schaltaktoren 1-fach und 2-fach, Unterputzmontage (Hersteller-Link) für Ansteuerung Heizkreis-Ventile, Steckdosen, etc.
  • Funk-Schaltaktor 2-fach, Unterputzmontage (Hersteller-Link) für Ansteuerung Außensteckdosen
  • Funk-Schaltaktor 4fach, Hutschienenmontage (Hersteller-Link) für Ansteuerung Heizkreis-Ventile
  • Funk-Temperatur-/ Luftfeuchtesensor, außen (Hersteller-Link)
  • Funk-Schaltaktor 1-fach mit Leistungsmessung, Zwischenstecker Typ F (Hersteller-Link)
  • mehrere Funk-Schaltaktor 1-fach, Zwischenstecker Typ F, ARR-Bausatz (Hersteller-Link) zur Ansteuerung von Lampen
  • Funk-Tasterschnittstelle 4-fach, Unterputzmontage (Hersteller-Link)


Heizungssteuerung mit Homematic und RaspberryMatic

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.


POE für Raspberry Pi im Eigenbau

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!


Projekt Leistungsindikator PV-Anlage

PV-Leistungsindikator von vorne PV-Leistungsindikator von hinten

 

hier entlang


Projekt Gaszähler/Gasuhr

Gasuhr mit Reed-Sensor Reed-Sensor

 

hier entlang


Projekt Wasseruhr

Wasseruhr mit Impuls-Ausgang ESP8266-ESP01 an der Wasseruhr

 

hier entlang


Projekt Warmwasser-Zirkulationspumpe

Messgerät Warmwasser-Zirkulationspumpe

hier entlang


Stromzähler mit Raspberry Pi auslesen

SmartMeter

hier entlang


Heizungskommunikation via EMS-Bus

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:

Pegelwandler am Raspberry Pi

Mein SmartHome-Projekt EMS-Bus


Temperatur, Luftdruck, etc.

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.


ESP8266

Mehr dazu hier!


Odroid-NAS

Ein Odroid HC4 mit SSD als sparsame Selbstbau-NAS.

Odroid HC4 mit SSD

Mein Odroid-NAS-Projekt


Erfasste Parameter

Mit dieser Ausstattung werden folgende Parameter erfasst und in einer MySQL-Datenbank abgelegt:

  • Soll- und Ist-Temperatur und relative Feuchte in jedem Raum und Zimmer, inklusive Keller
  • Außentemperatur und -Feuchte, Luftdruck (kPaabs)
  • Vor- und Rücklauf-Temperatur sämtlicher Fußboden-Heizkreise (°C)
  • Temperatur unter der Fassaden-Isolierung und zwischen der hinterlüfteten Fassade (°C)
  • Schaltzustand der Heizkreis-Ventile (an/aus)
  • Vor- und Rücklauftemperatur sowie Schaltzustand (ein/aus) der Warmwasser-Zirkulationsleitung (°C)
  • Netzspannung und Netzfrequenz, bei Bedarf elektrischer Verbrauch eines speziellen Verbrauchers (z.B. Waschmaschine, Trockner, Warmwasser-Zirkluationspumpe etc.)
  • Gaszähler (m³) und Wasserzähler (m³)
  • Stromverbrauch (kWh) und aktuelle Leistung (in Watt als 15-Minuten-Statistik)
  • ziemlich alle Parameter vom Gas-Brennwert-Geräte (via EMS-plus-Bus) wie Vorlauf-Soll-/Ist-Temperatur (Außentemperaturgesteuert), Warmwasser-Soll-/Ist-Temperatur, Betriebstundenzähler, Anzahl Brennerstarts, Pumpenleistung, Brennerleistung, etc.
  • Schaltzustand diverser Funk-Steckdosen für Beleuchtung
  • Schaltzustand Badventilator
  • Regenmenge (mm)


Visualisierung

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.


Für dieses Beispiel sieht beginnt dann das Script für amCharts wie folgt:


Was bringt das Ganze?

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:

  • Macht eine Nachtabsenktung bei Fußbodenheizung Sinn oder nicht?
    Bei unserem Haus (kernsanierter Altbau) macht eine Nachtabsenkung der Heizung keinen Sinn. Die Trägheit großer Räume (Wohnzimmer und offene Küche) ist so groß, dass es je nach Außentemperatur mehrere Stunden dauert, bis große Räume aufgeheizt werden. Ich fahre ohne Nachtabsenkung mit Außentemperatur geregelter Vorlauftemperatur (linear, Fußpunkt bei außen +20°C ist VL=25°C, Endpunkt bei -15°C ist VL=40°C).
  • Wie verteilt sich die elektrische Leistung auf den Verbrauch?
    Der elektrische Verbrauch ist sehr stark schwankend. Bei angenommenen 3500 kWh Jahresverbrauch ist der mittlere Verbrauch rechnerisch bei ca. 400 Watt (3500 kWh / 8760 Stunden pro Jahr). Das bedeutet aber bei nichtem, dass ständig ca. 400 W verbraucht werden.
    Im Sommer liegen ca. 50% meiner Bezüge unter 200 W und ca. 70% unter 300 W. Der minimale Leistungs-Bezug beträgt ca. 75 W. Im Winter wegen der fast immer laufenden Heizungspumpe etwas höher.
  • Wie gut funktioniert eigentlich die Fassade-Dämmung?
    Ich wollte schon immer mal wissen, welche Temperatur eigentlich hinter der hinterlüfteten Fassade und zwischen Dämmung und (alter) Außenwand herrscht.
  • Wie funktioniert die automatische Reglegung meiner Warmwasser-Zirkulationspumpe?
    Das ist ein längeres Thema und wird daher hier beschrieben.