Heizungsoptimierung Teil 1: Monitoring

Die immer weiter steigenden Gaspreise führen bei einigen zu leichter Panik bis hin zu irrationalen Handlungen, was die Wärmeversorgung der eigenen vier Wände angeht. Dabei muss man seine Gas-Heizung nicht gleich raus reißen. Wenn man sie genauer kennenlernt und weiß an welchem Rädchen man drehen muss, kann auch der Energieverbrauch sinken. Da ich meine Heizung in den letzten drei Jahren sehr genau kennenlernen konnte, ist jetzt ein guter Zeitpunkt dies in einer kleinen Serie zur Heizungsoptimierung zusammenzufassen.

Im ersten Teil der Serie geht es erstmal ums Kennenlernen: Wir werden ein paar kostengünstige Sensoren installieren und dafür sorgen, dass die Sensordaten kontinuierlich gespeichert werden.

Der Heizungsmonitor

Das Herzstück des Monitoringsystems ist ein Microcontroller, der die Daten der angeschlossenen Sensoren ausliest und mittels MQTT-Protokoll im Netzwerk bereitstellt. Zum Einsatz kommt hier der bekannte ESP8266 mit WiFi-Schnittstelle. Zur einfachen Konfiguration setzten wir ESPeasy ein. Dieses Programm ermöglicht es, verschiedene Sensoren am Microcontroller auszulesen und bietet zur Konfiguration ein Webinterface an.

Die Temperaturen der Heizungsrohre werden wir mit 1-wire Sensoren messen. Je nach hydraulischer Ausgestaltung des Heizsystems sind hierfür 6 Sensoren notwendig. Zusätzlich erfassen wir Außentemperatur und Heizungsraumtemperatur.

Die wohl wichtigste Messgröße ist der Gasverbrauch. Den Gaszähler können wir in den meisten Fällen mittels einfachem Reed-Kontakt auslesen, da viele Gaszähler über einen eingebauten Magneten an der letzten Zählerrolle verfügen.

Optional wäre noch ein Stromzähler mit Impulsausgang, um den Stromverbrauch der Heizung zu messen. Je nach eingesetzter Pumpen kann diese auch einen nicht unerheblichen Anteil an den Energiekosten haben. Der Zähler ermöglicht uns später aber auch eine bessere Analyse der verschiedenen Betriebszustände der Heizung.

AnzahlBauteilPreis
1ESP8266 Development Board, NodeMCU, WeMos o.ä.7 EUR
81-wire Temperatur Sensor DS18B20 in Fühlerhülse (wasserdicht) mit Kabel15 EUR
1Reed-Kontakt2 EUR
diverse Kabel, Klemmen, Kabelbinder und Widerstände5 EUR
1Gehäuse z.B. große Abzweigdose5 EUR
15V Netzteil5 EUR
39 EUR
EInkaufsliste

Installation der Temperatursensoren

Zunächst kümmern wir uns um die Temperaturfühler. Jede Heizungsanlage ist unterschiedlich aufgebaut, sodass es hier keine allgemeingültige Lösung gibt. An Hand eines einfachen Systems mit Wärmeerzeuger und Trinkwarmwasserspeicher, wie es in vielen Einfamilienhäusern vorkommt, habe ich in der Abbildung die Platzierung der Sensoren markiert. Wichtig ist, dass die Vor- und Rücklauftemperaturen für Raumwärme und Trinkwarmwasserbereitung getrennt erfasst werden. Außerdem ist die Außentemperatur eine wichtige Größe, die für die spätere Analyse der Daten eine entscheidende Rolle spielt.

Die Fühler sollten mit direktem Kontakt zum Rohr angebracht werden. Am besten mit Schellen oder Kabelbindern fixieren. Danach die Rohrdämmung wieder schließen – oder falls keine Rohrdämmung vorhanden war: gleich vom Baumarkt Rohrisolierung besorgen und alle Rohre in unbeheizten Räumen dämmen.

Platzierung der Temperaturfühler in einer Heizungsanlage mit Trinkwarmwasserspeicher

Gaszähler auslesen

Gaszähler mit Reed-Kontakt

Der Energieverbrauch der Heizung ist wohl die wichtigste Größe, die es zu erfassen gibt. Bei einer Gasheizung lässt sich dieser relativ einfach über den vorhandenen Gaszähler ermitteln. Üblicherweise befindet sich auf einer der letzten Ziffern-Rollen des Zählwerks ein Magnet. Ein Hinweis darauf ist, dass auf dem Zähler eine Angabe zu Impulsen gemacht wird (z.B. 1 imp. = 0.01m³). Wir können nun einen Reed-Kontakt in der Nähe des Magnets anbringen – häufig befindet sich am Zähler dafür eine vorgesehene Einbuchtung). Jedes mal, wenn der Magnet nun am Reed-Kontakt vorbei läuft, schließt sich dieser und wir können den Impuls zählen. Wie der Reed-Kontakt mit dem Microcontroller verbunden wird, zeige ich euch unten.

Sensoren anschließen

Schematische Verdrahtung

Alle Zähler und Sensoren müssen nun noch wie im Schaltplan gezeigt mit dem Microcontroller verbunden werden. Hierfür verwende ich die digitalen Eingänge D5 – D7 (es können auch andere gewählt werden, dies muss nur bei der nachfolgenden Einrichtung berücksichtig werden). Bei allen Eingängen sorgen wir mit Pull-Up Widerständen mit etwa 2 kOhm dafür, dass an den Eingängen eine definierte Spannung (HIGH) anliegt. Alle Temperatursensoren werden an einem gemeinsamen Eingang (D6) angeschlossen, da 1-wire ein Bus ist, an dem mehrere Sensoren betrieben werden können. Es ist hier ratsam nur einen Sensor nach dem anderen anzuschließen und gleich zu konfigurieren, damit die 1-wire Sensoren einfacher zugeordnet werden können. Zuletzt wird alles noch ein Gehäuse verpackt und der Microcontroller mit Spannung versorgt.

Schaltplan für den Anschluss der Sensoren an den ESP8266

Einrichtung des Microcontrollers

Nun geht es an die Software des Microcontrollers. Hierzu verwenden wir ESPeasy, das es ermöglicht verschiedene Sensoren auszulesen und Daten per MQTT weiterzusenden. Wie man ESPeasy installiert kann man sich z.B. hier ansehen. Sobald die Installation in WiFi-Einrichtung abgeschlossen ist, können wir über die IP des Microcontrollers das Webinterface aufrufen. Im Device Tab können wir nun die Sensoren und Zähler einzeln Anlegen und konfigurieren.

Übersicht aller Sensoren und Zähler im Webinterface von ESPeasy

Impulszähler einrichten

Konfiguration des Gaszählers

Für Gas- und Stromzähler verwenden wir den Typ Pulse counter (Dokumentation). Die genaue Konfiguration kann im Screenshot abgelesen werden, hier nur ein paar Hinweise: Wir triggern auf ein fallendes Signal, da wir mit den Pull-Up Widerständen den jeweiligen Eingang des µC auf High ziehen. Schließt sich der Reed-Kontakt bzw. die S0-Schnittstelle, liegt der Eingang auf Ground und ein Impuls wird gezählt. Schalter wie auch Reed-Kontakte neigen zum Prellen, d.h. der Wechsel von High auf Low tritt mehrfach auf, obwohl es nur einen Impuls gab. Hierzu kann eine Entprellzeit (debounce time) eingestellt werden, die üblicherweise im Bereich von wenigen 100 ms liegt. Beim Gaszähler habe ich jedoch beobachtet, dass die Zeit für den Vorbeilauf des Magneten bei geringen Gasverbrauch auch mal mehrere Sekunden dauern kann. Eigentlich sollte dies kein Problem sein, da wir nur auf eine fallende Flanke triggern. Wenn der Magnet dann wieder außer Reichweite des Reed-Kontakt ist, sollten wir eine steigende Flanke messen. Ich vermute jedoch, dass es auch hier wieder zum Prellen kommt, sodass dennoch steigende und fallende Flanken auftreten. Ich habe daher die Entprellzeit mit 20 Sekunden sehr lang gewählt, aber nur so lang, dass bei maximaler Leistung des Gasbrenners und entsprechend schnellerem Umlauf der Rollen, noch alle Impulse erfasst werden können. Beispiel: Die maximale Leistung der Heizung beträgt 15 kW. Der Gaszähler zählt je Impuls 0.01m³ = 0.1 kWh. Läuft die Heizung mit maximaler Leistung ergibt sich also eine minimale Umlaufdauer des Magneten auf der letzten Rolle von 0.1kWh * 3600 s/h / 15 kW = 24s. Die gewählte Entprellzeit sollte also unter 24s liegen.

Temperatursensoren einrichten (DS18B20)

Konfiguration der DS18B20 Temperatursensoren

Nun muss noch für jeden Temperaturfühler ein neues Gerät angelegt und als Typ DS18B20 (Dokumentation) ausgewählt werden. Als GPIO wählen wir den Eingang aus, an dem 1-wire Bus angeschlossen haben (hier D6). Nach kurzer Zeit findet der ESP8266 dann die angeschlossenen Sensoren, die über das Dropdown Feld unter Device Address ausgewählt werden können. Hier bietet es sich an, nur einen Sensor nach dem anderen anzuschließen, damit man die Adresse dem jeweiligen Sensor zuordnen kann. Als Auflösung habe ich 10 Bit unter Device Resolution gewählt. Diese Auflösung ist für die nachfolgende Verarbeitung der Daten ausreichend, bei höherer Auflösung kommt es eher zum Rauschen der Messwerte, da diese schon über der eigentlichen Genauigkeit des Sensors liegt.

Datenversand mittels MQTT einrichten

Controller und MQTT Konfiguration

Sind die Sensoren eingerichtet, liest der ESP8266 diese im eingestellten Intervall aus und zeigt die aktuellen Werte im Webinterface an. Da wir die Daten über einen längeren Zeitraum aufzeichnen wollen, müssen wir diese nun noch an eine Datenbank oder sonstige Verarbeitungssoftware senden. Unter dem Tab Controller gibt es die Möglichkeit verschiedene Ziele und Protokolle zu konfigurieren. Wir verwenden das MQTT Protokoll und senden die Daten an eine Symbox, auf der die Hausautomatisierungssoftware IP-Symcon läuft. Alternativ kann hier auch z.B. HomeAssistant, OpenHab etc. verwendet werden. Die Konfiguration ist im Screenshot gezeigt.

Zuletzt müssen wir noch bei jedem Sensor im Device Tab unter dem Abschnitt Data Acquisition den soeben angelegten Controller aktivieren (Send to Controller). Damit haben wir die Einrichtung abgeschlossen und die Messdaten sollten nun immer aktuell in unserer Datenbank ankommen.

Was wir damit anstellen können, zeige ich in den nächsten Teilen dieser Serie.

1 Gedanke zu „Heizungsoptimierung Teil 1: Monitoring“

  1. Hallo Tobias,
    ich glaube deine Anleitung ist genau das, was ich gesucht habe. Meine Heizung läuft aktuell nicht wirklich rund und daher habe ich etwas gesucht, womit ich die Temperaturen der einzelnen Stränge über einen längeren Zeitraum aufzeichnen kann.
    Ich werde mir die einzelnen Komponenten mal kaufen und versuchen zusammen zubauen. Wobei mir das spätere Auslesen der Daten noch nicht ganz klar ist. Ich habe da keine Ahnung von, werde mich aber weiter schlau machen.
    Danke für die Anleitung.

    Gruß Marco

Kommentare sind geschlossen.