Warmwasser-Zirkulationspumpe auslesen

Zum besseren Verständnis der Funktionsweise meiner Warmwasser-Zirkulationspumpe (Grundfos UP15-14 BA PM mit Autoadapt) erfasse ich die Vor- und Rücklauftemperatur des Warmwasser-Zirkulationskreislaufs und den Schaltzustand der Zirkulationspumpe (ein oder aus). Die beiden Temperaturen werden über DS18B20-Temperatursensoren erfasst. Der Ein-Aus-Zustand der Pumpe wird über eine Stromzange erfasst. Die Sensoren sind an einen ESP8266 ESP-12 angeschlossen und werden dort eingelesen.

Die elektrische Leistung der Zirkulationspumpe im Betrieb ist mit ca. 6 Watt angegeben. Der zu messende elektrische Strom liegt damit bei ca. 25mA. Ich verwende dazu die Stromzange SCT-013-005, die 5A in eine Spannung von 1V wandelt. Um den relativ niedrigen Strom richtig erfassen zu können führe ich die Phase der elektrischen Zuleitung zur Zirkulationspumpe zehn Mal durch die Stromzange. Die 25mA entsprechen damit 250mA, die demnach in 50mV umgewandelt werden. Bei Wechselstrom erhält man eine Wechselspannung. Es gilt also, maximal ca. 50mVAC am Analogeingang des ESP8266 ESP-12 zuverlässig zu erfassen.


Programm für den ESP8266 ESP-12

Um nun den Schaltzustand der Zirkulationspumpe zu erfassen wird im folgenden Code ESP8266_Zirkulationspumpe.ino am Analogeingang des ESP8266 ESP-12 anliegende Wechselspannung ausgewertet.

 

Den Verlauf dieses Signals bei eingeschalteter Pumpe habe ich vorher mit einem Oszilloskop angeschaut. Da das Signal ziemlich verrauscht ist, habe ich einen Tiefpassfilter über ein RC-Glied dem Analogeingang vorausgeschaltet. In einer Schleife wird der Analogeingang des ESP8266 ESP-12 500 Mal eingelesen. Aus diesem Messwerten wird der minimale und maximale Messwert berechnet. Aus der Differenz dieser beiden Werte wird ein Parameter erzeugt, der mein eigentlicher Messwert ist. Wenn dieser Messwert einen bestimmten Grenzwert überschreitet gehe ich davon aus dass die Pumpe eingeschaltet ist. Wenn der Code an einem ESP8266 NudeMCU entwickelt wird, werden die einzelnen Messwerte im seriellen Monitor dargestellt. Der für die jeweilige Pumpe gültige Grenzwert ermittelt werden. Bei meiner Pumpe habe ich den Grenzwert bei 100 festgelegt.

Der ESP8266 ESP-12 erfasst also alle ca. 2 Sekunden den Schaltzustand der Zirkulationspumpe. Die aktuellen Werte (Vor- und Rücklauftemperatur, Pumpenzustand und Messparameter) werden an ein PHP-Skript geschickt, das auf einem Server liegt. Dieser Server ist bei mir ein Raspberry Pi, der die aktuellen Werte mittels PHP-Script empfängt, mit einem Zeitstempelversieht, und in eine MySQL-Datenbanktabelle einträgt. Wenn die Pumpe ausgeschaltet ist, werden die Werte ca. alle 5 Minuten übertragen. Wenn die Pumpe eingeschaltet ist ca. alle 10 Sekunden.

Die Daten der Zirkulationspumpe werden mit amcharts in einem Diagramm direkt aus der MySQL-Datenbank visualisiert. Weiter unten ist ein Beispiel dargestellt.


Aufbau des Geräts

Das folgende Bild zeigt den Aufbau von innen. Links wird die Stromzange angeschlossen und man erkennt das RC-Glied. In der Mitte sitzt der ESP8266 ESP-12. Rechts auf der Platine werden die DS18B20-Temperatursensoren angeschlossen. Ganz rechts sitzt ein Spannungswandler AMS1117-3.3, der die Versorgungsspannung für den ESP-12 von 3.3VDC aus 5 bis 12VDC bereitstellt:

Gehäuse


Das fertige Gehäuse sieht vor außen so aus. Links ist die Stromzange angeschlossen. Die LED signalisiert durch Blinken (alle ca. 2 sec) dass der ESP8266 ESP-12 läuft und leuchtet dauerhaft, wenn die Zirkulationspumpe eingeschaltet ist. Rechts sind die DS18B20-Temperatursensoren angeklemmt. Und ganz rechts an der Seite ist noch die Spannungsversorgung (5 bis 12VDC) über eine Hohlbuchse zu erkennen:

Gehäuse


Ergebnis aus Diagrammdarstellung

Mit diesem selbst gebauten Messgerät kann ich jetzt Diagramme wie in diesem Beispiel erstellen. Dargestellt ist die Vorlauftemperatur in rot, die Rücklauftemperatur in blau, und der Schaltzustand der Zirkulationspumpe in grün:

Gehäuse


Fazit

Mit diesem Aufbau habe ich herausgefunden, dass die bei mir eingebaute Warmwasser-Zirkulationspumpe bei mir nicht so wie vom Hersteller beschrieben funktioniert. Die Autoadapt-Funktionsweise soll laut Herstellerangaben verbrauchsabhängig nach einem bestimmten Algorithmus die Pumpe ein- und ausschalten. Auch eine Urlaubs- oder Abwesenheitsfunktion soll eingebaut sein. In meinem Fall läuft die Pumpe allerdings Tag und Nacht nach demselben Muster durch. Auch während einem 10-tägigen Urlaub hat sich daran nichts geändert. Der Gasverbrauch war trotz ausgeschalteter Heizung (Sommerurlaub) und keinem Warmwasserbezug deutlich messbar. Aus meiner Sicht ein Ergebnis der nicht funktionierenden Abwesenheitsfunktion.

Inzwischen habe ich die dritte Pumpe eingebaut bekommen und schau mir gerade die Daten an um zu sehen, ob diese Pumpe wie beschrieben funktioniert oder nicht. Besonders lustig sind die Erklärungsversuche der Service-Mitarbeiter des Herstellers auf meine zahlreichen Nachfragen, wie denn die Autoadapt-Funktion eigentlich funktionieren sollte. Auf meine wohl etwas zu detailierteren telefonischen Nachfragen waren die Service-Mitarbeiter ganz offensichtlich nicht vorbereitet. Das ganze Thema zieht sich nun schon zwei Jahre und ich bin gespannt wie es ausgeht. Per Email habe ich dem Hersteller mitgeteilt, dass ich vermute, dass die Autoadapt-Funktion der bei mir eingebauten mittlerweise drei Pumpen nicht funktioniert. Bis auf eine Eingangsbestätigung habe ich leider noch keine Antwort erhalten.