Das Problem lag zwar nicht ursächlich an der Zirkulationspumpe, hat aber dazu geführt, dass ich mich (erstmalig nach fast 18 Jahren) mit dem Ding hier befasst habe: | ![]() |
Die "Grundfos UP 15-13 B"-Zirkulationspumpe läuft 24x7. Dank
Schuko-Stecker-Anschluß ließ sich ihr Stromverbrauch leicht
ermitteln.
Ergebnis: knapp 25W.
Rund um die Uhr.
Also 219 kWh oder auch 60€ Stromkosten pro Jahr.
Alleine für den Strom. Dazu kommt dann noch das Heizöl für die
Erwärmung des Brauchwassers.
Daraufhin habe ich mir (von einem anderen Klempner) ein Angebot
zum Austausch der Pumpe erstellen lassen - schließlich soll es ja
bereits Modelle geben, die mit weniger als 5W auskommen.
Alles in Allem sollte das dann 417€ kosten.....ähh....nö.....das
würde ja weit über 10 Jahre dauern, bis sich der Austausch der
hervorragend funktionierenden Pumpe amortisiert hätte. Abgesehen
davon habe ich in die Haltbarkeit neuer Geräte
weit weniger Vertrauen, als in die, von Geräten, die schon seit
zig Jahren zuverlässig Dienst tun.
Im Angebot waren zwei Pumpen (alternativ) aufgeführt. Eine mit
einfacher Zeit- und Temperatursteuerung (228€), die andere mit
Temperatursteuerung und AutoAdapt-Funktion alias Nutzungserkennung
(225€).
Für eine der beiden Pumpen habe ich eine Angabe zur
Leistungsaufnahme der Pumpe gefunden: 22W
Trotzdem wird das Ding an anderer Stelle als "besonders moderne
und stromsparende Lösung" beworben.
Lächerliche drei Watt Unterschied zu meiner jetzigen Pumpe. Ein
Witz....!?
Das kann dann ja wohl nur so zu deuten sein, dass die
Stromeinsparung nur durch die vorgeschaltete Elektronik und somit
über die Zeit erreicht wird - die Pumpen an sich aber unverändert
mit dem Strom rumaasen.
Na denn...eine Zeitsteuerung lässt sich auch mit einer
20€-Wochen-Zeitschaltuhr erreichen. Damit hat man dann jedoch
mindestens 2x pro Jahr die Freude der Zeitumstellung - vielleicht
ist gelegentlich auch noch die Uhrzeit zu korrigieren. Echt
grauenvoll. Sowas will ich nicht. Eine DCF77-Funkuhr ist im Keller
auch keine Option, weil das Signal dort nicht zuverlässig ankommt.
Also selber bauen. Und dann kann auch gleich noch die
Wasser-Temperatur in den Rohren berücksichtigt werden. Somit
bietet sich eine Lösung mit einem ESP8266-12E (statt ATmega328)
an, weil der WLAN onboard hat.
Für beide Chips (ATmega328 und ESP8266-12E) habe ich bereits
fertigen Programmcode, mit dem Temperatur-Sensoren
abgefragt werden können. Ebenfalls ist schon alles für die
regelmäßige WLAN-Kommunikation mit einem Linux-System vorhanden
und stabil (zwecks Zeitsync und Nutzungszeiten-Korrektur).
Es bräuchte also nur noch die Ansteuerung eines Relais - was wohl
als maximal triviales Problem betrachtet werden kann.
Und natürlich etwas Programm-Logik.
Zur Einstimmung erstmal ein Video zum Thema (zwischen Minute 1 bis 4 reicht). Darin wird u.a. erklärt, wie die Warm-Wasser-Zirkulation erreicht wird.
Es braucht also einen ESP8266-12E,
der drei Temperatur-Sensoren
DS18B20 und ein Relais
bedient.
Ein Temperatur-Sensor soll die Temperatur im Heizungsraum messen,
ein weiterer die Rohrtemperatur vor oder hinter der Pumpe und der
dritte die Temperatur am Warmwasser-Rohr.
Weil die Relais immer mit mindestens 5V angesteuert werden wollen,
braucht es noch einen 3,3V-Regler
für den ESP8266-12E.
Die 5V Gleichspannung soll aus einem Schaltnetzteil
entnommen werden.
Eigentlich könnte ich dann auch gleich einen WeMos-D1-mini
nehmen. Davon habe ich noch mindestens zwei Stück ungenutzt
rumliegen.
Für ein Gehäuse,
das sowohl Schuko-Stecker wie auch Schuko-Buchse integriert
hat, will Reichelt über 20€ sehen.
Mal schauen...wäre zwar hübscher, aber ein simples
Standard-Gehäuse in passender Größe sollte es auch tun.
Da kämen dann eben zwei 230V-Leitungen raus - einmal mit Stecker
(ggf. abgewinkelt),
einmal mit Kupplung
am anderen Ende.
Das hätte auch den Vorteil, dass ich garantiert genug Platz im
Gehäuse haben werde.
Weiterhin sollten zwei LEDs im Gehäuse sein. Einmal für "Pumpe
eingeschaltet" und einmal für "WLAN-Sync aktiv".
Wie schon bei der Rollladen-Steuerung
und den Loggern
wird das WLAN mehrmals pro Tag jeweils nur kurz eingeschaltet.
Dabei wird dann die aktuelle Uhrzeit von einem Python-Script
empfangen. Danach werden die seit der letzten WLAN-Kommunikation
protokollierten Rohr-Temperatur-Werte samt jeweiligem Zeitstempel
gesendet, diese auf Python-Seite verarbeitet und das Ergebnis als
Liste von Ein/Aus-Zeiten empfangen.
Auf diese Weise bekomme ich einerseits eine
Warmwasser-Entnahme-Zeiten-Statistik, andererseits kann ich auch
schnell mal komplexere Schaltregeln implementieren, ohne
den ESP8266-12E dafür immer wieder neu flashen zu müssen.
Die Mindest-Einschaltdauer der Pumpe sollte so lang sein, um
einen vollen Umlauf sicherzustellen.
In der Doku
zur Heizung heißt es:
"Zur Entkeimung des Brauchwassers erfolgt wöchentlich einmal durch die Legionellenfunktion eine Aufheizung auf 65°C, um mögliche Legionellen-Erreger abzutöten."
Dieser Zeitpunkt muss erkannt werden und dazu führen, dass die
Zirkulationspumpe die Rohre hinreichend lange durchspühlt.
Um das erkennen zu können, auch wenn zu dieser Zeit gerade kein
Wasser entnommen wird, braucht es wahrscheinlich noch einen
weiteren Temperatur-Sensor am Rohr zwischen Heizung und "Aqua Unit
WAU 200".
Das Teil hat fünf Anschlüsse (von oben nach unten):
Als diesbezüglich relevant würde ich mal 2. und 5. annehmen.
Weil der obere Rücklauf (2.) weitaus leichter erreichbar ist und
nach meinem Verständnis dieses
Wikipedia-Artikels der vorherrschenden Temperatur in der
Aqua Unit entspricht, werde ich es wohl erstmal mit dem Rohr 2
probieren. Früher erkennen würde man die 65°C wohl am Vorlauf
(Rohr 5) - finge dann jedoch schon mit dem Pumpen an, wenn die 200
Liter in der Aqua Unit diese Temperatur noch gar nicht erreicht
haben. Außerdem wird das Rohr 5 wahrscheinlich auch bei jedem normalen
Heizvorgang deutlich über 65°C heiß werden.
Rohr |
Sensor- Name |
Funktion |
Information, die durch den Sensor
gewonnen wird |
1 |
E |
Warmwasser-Entnahme |
zu welcher Uhrzeit wird warmes Wasser
entnommen - obwohl die Zirkulationspumpe nicht läuft. |
2 |
L |
Legionellenfunktion | wann wird das Wasser auf 65°C erwärmt und
muss zwecks Entkeimung durch die Rohre 1 und 3 gepumpt
werden. |
3 |
Z |
Zirkulation |
ab wann kommt das Wasser hier mit [fast] der
selben Temperatur an, mit der es Rohr 1 verlassen hat -
steht also direkt warmes Wasser an den Hähnen zur Verfügung. |
--- |
R |
Raumtemperatur |
nur zur Info bzw. "für spätere Verwendung". |
discoverOneWireDevices()
die Adressen der DS18B20 immer in der selben Reihenfolge erkennt und
in ROMcode_g[]
ablegt. Jedoch....trotz mehrerer
Restarts in den vergangenen neun Monaten hat LoggerV1 noch nie
Innen- und Außen-Sensor verwechselt. Eine solche Verwechslung wäre
in LoggerView wohl kaum zu übersehen gewesen. Trotzdem gefällt mir das nicht wirklich. Ließe sich per Software
anhand der jeweils gemessenen Temperaturen erkennen, welcher
Sensor wo angebracht sein muss, wäre das natürlich die Lösung
erster Wahl.
Also...ist die Pumpe bereits längere Zeit abgeschaltet, müssten
die Sensoren R und Z ähnliche Werte liefern.
Sensor E liefert eine erhöhte Temperatur bei jeder Wasserentnahme
und immer dann, wenn die Pumpe an ist. In diesem Fall meldet
Sensor E früher eine erhöhte Temperatur, als Sensor Z. Sensor L
sollte immer derjenige mit der höchsten Temperatur sein. Und immer
der erste, bei dem höhere Temperaturen [zuerst] gemeldet werden.
Eine automatische Erkennung des Sensor-Installationsortes könnte
also klappen. Es wird sich zeigen.....
a) laufender ZirkulationspumpeIn Rohr 3 steigt die Temperatur bei
b) Wasserentnahme (nur warmes Wasser zählt hier natürlich)
c) laufender ZirkulationspumpeWenn also weder warmes Wasser entnommen wird noch die Zirkulationspumpe zufällig gerade eingeschaltet ist, kann das Zeitfenster der Legionellenfunktion nicht anhand der Rohr-Temperaturen erkannt werden.
Weiterhin liefert Google sogar zum Suchbegriff Zirkulationspumpen
Steuerung ESP8266 noch 230 Treffer....und ein kleiner Teil
davon befasst sich auch tatsächlich mit dem Thema "Bau bzw.
Vorstellung einer solchen Steuerung".
Beim Querlesen einiger dieser Seiten bin ich auf den Präsenz-Ansatz
gestoßen. Zwar war das eher für die Raumtemperatur gedacht, lässt
sich aber natürlich auch für die Entnahme von warmem Brauchwasser
einsetzen. So nach dem Prinzip eines Dash-Buttons,
mit dem eine Warmwasser-Anforderung auf den Weg gebracht wird. Das
hieße dann allerdings, dass die Zirkulationspumpen-Steuerung
dauerhaft mit dem WLAN verbunden sein müsste, um auf solche
ad-hoc-Anforderungen reagieren zu können.
Unter dieser URL wird etwas vorgestellt, bei dem eine Pumpe, die bereits mit Zeitsteuerung läuft, gepimpt wird. Das ist zwar begrenzt spannend für mich, aber zur Befestigung des Temperatur-Sensors am Rohr wird statt eines Plastik-Kabelbinders sowas hier verwendet. Und es wird einem Temperatur-Sensor sicher zugute kommen, wenn (wegen der Wärmeleitfähigkeit der Befestigungs-Materials) die Wärme von allen Seiten am Sensor ankommt.
Und der hier
hat sich mit einem ESP8266-12E eine reine Mess-Schaltung gebaut
und damit festgestellt, dass die AutoAdapt-Funktion seiner
"Grundfos UP15-14 BA PM" offenbar praktisch nix bewirkt. Sein
Diagramm mit den Messwerten ist für mich insofern nicht
uninteressant, als darauf ein sehr deutlicher
Temperatur-Unterschied zwischen Vorlauf und Rücklauf (also wohl E
und Z gemäß meiner Benennung) sichtbar wird. Da bin ich ja mal
gespannt, wie sich das bei mir darstellt....und hoffe mal, dass
seine Rohre vielleicht einfach nur sehr lang oder sehr schlecht
isoliert sind.
Es stellt sich noch die Frage, wie die Schaltung betrieben werden
soll, bevor die Firmware für den ESP8266-12E ihren finalen Stand
erreicht hat. Ich will dringend vermeiden, dass ich ständig im
Heizungsraum rumwerkeln muss. Da ist es eng, stinkig und
(abgesehen von der kuscheligen Temperatur) einfach nur
ungemütlich.
Dementsprechend braucht es eine einfache Firmware im ESP8266-12E,
die sich weitestgehend von Ferne bzw. über WLAN steuern lässt.
Ideal wäre eine rudimentäre Programmiersprache, die sowas kennt
wie:
- Schleifen
- bedingte Ausführung
- Sensor-Abfrage und Relais-Ansteuerung
- Wochentags- und Uhrzeit-Abfragen
Andererseits würde das viel zu komplex werden und somit den produktiven
Betrieb maximal hinauszögern.
Schließlich haben wir nur die eine Heizung. Sobald die
Zirkulationspumpe über das Relais der Schaltung gesteuert wird,
würde die ganze Familie (und die Wasser-Rechnung) unter einer zu
selten laufenden Pumpe leiden.
Leitungs-Auskühl-Tests sollten nur zwischen 22:00 und 05:00 Uhr
erfolgen. Die restliche Zeit über sollte die Schaltung vielleicht
erstmal dafür sorgen, dass die Sensoren E und Z allzeit ähnliche
Werte aufweisen - also stets warmes Wasser in den Rohren steht.
Die Heizung ist auf 52°C Brauchwasser-Temperatur eingestellt.
Solange der Sensor E eine Temperatur von mehr als etwa 45°C
meldet, würde das zum Duschen voraussichtlich auch reichen. Das
noch wärmere Wasser wird nur gelegtlich in der Küche benötigt.
Aber natürlich sind diese Werte bisher reine Theorie. Erstmal
brauchts die Sensoren an den Rohren. In dieser Phase sollten
wahrscheinlich zunächst primär Daten gesammelt werden, um damit
Abhängigkeiten prüfen bzw. überhaupt erstmal erkennen zu können.
Dazu könnte es nützlich sein, wenn die Schaltung per WLAN
dauerhaft mit dem Python-Script verbunden bliebe, um darüber
minütlich alle vier Temperatur-Werte sowie den Einschalt-Zustand
der Pumpe zu melden.
Die Systemzeit des ESP8266-12E sollte (abweichend zu LoggerV2)
mit Ortszeit
laufen. Aber weil ich wohl eh lieber einen eigenen Socket-Server
(selbe VM, anderer Port) für diese Schaltung baue, stellt das kein
Problem dar. Um auch nach der Zeitumstellung im März/Oktober
morgens um 06:00 Uhr direkt warmes Wasser in der Dusche zu haben,
ist täglich irgendwann zwischen 03:15 und 05:30 Uhr ein
Zeitsync via WLAN erforderlich. Andererseits erfolgt die
Zeitumstellung grundsätzlich an einem Sonntag. Somit bliebe auch
Zeit bis 07:00 Uhr ;-)
Übermorgen sollen fünf
Temperatur-Sensoren und fünf Relais-Module
kommen.
Die Bestellung bei Reichelt hat noch kein Lieferdatum, sollte aber
hoffentlich auch irgendwann im Laufe der nächsten Woche
eintrudeln. Von da kommt das oben bereits verlinkte
Schaltnetzteil, Schuko-Stecker/Kupplung sowie 10 dreipolige
Stecker samt zugehöriger
Kupplung für den Anschluss der Temperatur-Sensoren. Zur
Sicherheit auch noch zehn dieser einfachen Anreihklemmen.
Auf das es dann nächstes Wochenende mit ersten Tests
losgehen kann.