ESPHome Custom Sensor: Pumpenzyklen des Hauswasserwerks überwachen
Wer ein Hauswasserwerk mit Brunnenpumpe und Druckkessel betreibt, kennt das Problem früher oder später: Die Pumpe springt viel zu oft an, läuft nur wenige Sekunden, schaltet wieder ab, springt wieder an. Der Motor verschleißt dadurch deutlich schneller als normal, und der Kessel verliert nach und nach seine Luftvorspannung. Mit einem ESPHome Custom Sensor lässt sich dieses Zyklusverhalten der Pumpe sauber überwachen, in Echtzeit, komplett lokal, ohne Cloud, und direkt eingebunden in Home Assistant. Wie so ein Sensor aufgebaut wird, welche Hardware dafür nötig ist und wie man die gesammelten Daten tatsächlich sinnvoll nutzt, zeige ich im Folgenden.
Warum Pumpenzyklen überwachen?
Das Prinzip eines Hauswasserwerks ist eigentlich simpel: Der Druckkessel speichert Wasser unter Luftdruck, die Pumpe springt bei einem unteren Grenzwert an (häufig irgendwo bei 1,8 bar) und schaltet beim oberen Grenzwert wieder ab (etwa bei 3,2 bar). Läuft dieser Zyklus viel zu schnell ab, spricht man vom sogenannten Kurztakten. Und das ist meistens ein Symptom für eines dieser Probleme:
- Druckverlust durch eine defekte Blase oder Membran im Kessel
- zu geringe Luftvorspannung im Kessel
- ein Leck irgendwo in der Leitung
- ein zu klein dimensionierter Kessel für den tatsächlichen Wasserbedarf
Das Tückische daran: Ohne Monitoring merkt man meistens gar nichts, bis die Pumpe eines Tages durchbrennt, oft mitten im Sommer, wenn der Garten bewässert werden muss. Ein ESPHome-Sensor protokolliert dagegen jeden einzelnen Schaltzyklus automatisch mit und schlägt Alarm, sobald etwas aus dem Ruder läuft.
Welche Hardware wird benötigt?
Zwei Ansätze haben sich in der Praxis bewährt, und beide lassen sich auch kombinieren.
1. Stromverbrauch messen (indirekt)
Ein Shelly Plug S oder ein ESP32 mit ACS712- bzw. SCT-013-Stromwandler erkennt zuverlässig, wann die Pumpe tatsächlich Strom zieht. Der große Vorteil: Es muss kein einziges Mal in die Wasserleitung eingegriffen werden, kein Risiko für Leckagen, keine Garantieprobleme. Für viele ist das deshalb der naheliegendste Einstieg.
2. Drucksensor direkt am Kessel (direkt)
Ein analoger Drucksensor, zum Beispiel mit Messbereich 0 bis 5 bar und 0,5 bis 4,5 V Ausgangsspannung, wird über ein T-Stück an die Druckleitung angeschlossen. Über einen ADC-Pin am ESP32 liefert er anschließend ein kontinuierliches Drucksignal, nicht nur Ein/Aus, sondern den tatsächlichen Verlauf.
Mein Tipp: Beide Methoden kombinieren. Der Stromsensor erkennt zuverlässig, ob die Pumpe läuft oder steht, der Drucksensor liefert gleichzeitig die exakten Druckwerte. Zusammen ergibt das ein ziemlich vollständiges Bild.
ESPHome-Konfiguration für den Custom Sensor
Ein typisches YAML-Setup mit ADC-Drucksensor sieht etwa so aus:
sensor:
-
platform: adc pin: GPIO34 name: “Druckkessel Druck Roh” id: raw_pressure update_interval: 2s filters:
-
calibrate_linear:
-
0.5 -> 0.0
-
4.5 -> 5.0
-
platform: template name: “Druckkessel Druck bar” unit_of_measurement: “bar” lambda: |- return id(raw_pressure).state; update_interval: 2s
Für die eigentliche Zykluserkennung braucht es einen binary_sensor mit Schwellenwert-Lambda. Der unterscheidet zwischen “Pumpe läuft” und “Pumpe steht”, ganz ohne Zusatzhardware, allein über den Stromwert:
binary_sensor:
- platform: template name: “Pumpe läuft” id: pump_running lambda: |- return id(current_sensor).state > 0.3; filters:
- delayed_on: 500ms
- delayed_off: 500ms
Die Verzögerungen von 500 ms sind übrigens kein Zufallswert, sie verhindern, dass kurze Spannungsspitzen beim Anlaufen der Pumpe fälschlicherweise als eigener Zyklus gezählt werden.
Zyklenzähler einbauen
Um zu erfassen, wie oft die Pumpe pro Stunde schaltet, reicht entweder ein pulse_counter oder eine einfache Lambda-Zählung der steigenden Flanken des binary_sensor:
sensor:
- platform: template name: “Pumpenzyklen pro Stunde” id: cycles_per_hour accuracy_decimals: 0
In Home Assistant lässt sich daraus ganz einfach über eine Statistik-Karte oder eine Automatisierung ein Alarm bauen, der auslöst, sobald die Zyklenzahl einen kritischen Wert überschreitet, etwa mehr als 10 Zyklen pro Stunde. Zum Vergleich: Ein gesundes Hauswasserwerk schaltet bei normaler Nutzung eher 2 bis 4 Mal pro Stunde.
Automatisierung und Benachrichtigung
Ein paar Automatisierungen, die sich in der Praxis wirklich auszahlen:
- Push-Benachrichtigung bei Kurztakten, etwa wenn 3 Starts innerhalb von 60 Sekunden auftreten
- Trendwarnung, wenn der Abstand zwischen den Zyklen über mehrere Tage hinweg kontinuierlich kürzer wird (ein klassisches Frühwarnzeichen für eine sterbende Kesselmembran)
- Druckabfall-Alarm, falls der Minimaldruck irgendwann einfach nicht mehr erreicht wird
Praxistipps
- Lieber gleich zum ESP32 greifen statt zum ESP8266, mehr ADC-Pins, stabilere WLAN-Verbindung, weniger Ärger im Dauerbetrieb.
- Den Drucksensor möglichst nah am Kessel montieren, nicht direkt am Pumpenausgang, sonst verfälschen Strömungseffekte die Messung.
- Den
calibrate_linear-Filter unbedingt mit einem echten Manometer gegenkalibrieren, sonst stimmen die bar-Werte hinten und vorne nicht. - ESPHomes
web_server-Komponente nutzen, um auch ohne Home Assistant schnell mal nachzuschauen, was der Sensor gerade misst.
Fazit
Ein ESPHome Custom Sensor zur Überwachung der Pumpenzyklen eines Hauswasserwerks lässt sich mit überschaubarem Aufwand umsetzen, ein Wochenendprojekt mit Lötkolben, ein paar Metern Kabel und etwas YAML. Der Nutzen steht dazu in keinem Verhältnis: Frühwarnung vor Pumpenschäden, echte Transparenz über den Zustand des Druckkessels und die Möglichkeit, Wartung datenbasiert zu planen statt nach Bauchgefühl, oder schlimmer, erst wenn es schon zu spät ist. Wer ohnehin schon mit Home Assistant arbeitet, bekommt obendrein flexible Automatisierungen und eine langfristige Trendanalyse quasi geschenkt dazu.