Die Poolpumpe war ja schon öfters Thema hier im Blog. In der neuen Saison wurde nun endlich die Integration ins Hausnetz vorgenommen. Home Assistant und ESPHome haben sich hier ausgezeichnet.

Projekt: Smarte Poolpumpe
Kontakt: Boris Dirnfeldner

Ein wichtiger Schritt in praktisch jeder Automation ist die Integration von Sensoren und Aktoren in die Steuerung. Je nach Umfeld ist das dann mehr oder weniger einfach und mächtig.

Die Umwälzpumpe des Rundpools war bisher durch eine einfache Zeitschaltuhr gesteuert worden, die auf der Klemmschiene mit den Sicherungen am Pool in die Stromversorgung der Pumpe eingeschliffen war. Das Ganze mit wasserdichtem Gehäuse und einem Not-Aus Knopf zum vollständigen Abtrennen der Stromversorgung war das schon in Ordnung. Einfach mal kleine Anpassungen zu machen oder eine komplexere Logik waren aber so nicht drin. Daher war der Wunsch da, die Anbindung an die Haussteuerung zu bekommen.

Man hätte jetzt einfach ein fertiges Modul für ein Paar Euro reinschleifen können und das in den Home Assistant über die Automation anbinden. Allerdings zeigen die bisherigen Erfahrungen, dass die Wifi-Anbindungen zuweilen unzuverlässig sind und (wenn man nicht einfach einen Steckeradapter nehmen kann) auch preislich relevant.

Mit den guten Erfahrungen der letzten Zeit (und mit Blick auf meine Lagerbestände) wurde daher etwas Material einer sinnvollen Anwendung zugeführt. Konkret brauchte es einen ESP32 Controller, ein Relaismodul und ein Netzteil. Für die Montage noch ein Hutschienengehäuse und Kabel.

Die Logik ist mit ESPHome schnell erstellt. Nach den Problemen zuletzt mit Windows ist nun Linux als Entwicklungsumgebung in Anwendung. ESPHome kann auch als Docker-Instanz verwendet werden, da geht es dann schnell eine lauffähige Umgebung zu gestalten (nur Ubuntu und Docker müssen vorhanden sein).

Die Konfiguration in YAML ist trivial und sieht so aus:

esphome:
  name: poolpumpcontrol

esp32:
  board: wemos_d1_mini32
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: "XXX"

ota:
  - platform: esphome
    password: "XXX"

wifi:
  ssid: "XXX"
  password: "XXX"
  domain: ".fritz.box"

# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
  ssid: "Poolpumpcontrol Fallback Hotspot"
  password: "XXX"

captive_portal:

switch:
  - platform: gpio
    pin: GPIO12
    id: "pool_pump"
    name: "Pool Pump"
    icon: "mdi:pump"
    restore_mode: ALWAYS_ON

Um das Ganze auf den ESP32 zu bekommen, braucht es nur den folgenden Befehl:

sudo docker run --rm -v "${PWD}":/config --device=/dev/ttyUSB0 -it ghcr.io/esphome/esphome run poolpumpcontrol.yaml

Danach war der Controller bereit für den Einsatz. Beim Zusammenbau das übliche gefrickel, bis alles zusammenpasst und miteinander arbeitet. Zum Testen wurde erstmal alles offen aufgebaut, bis das System richtig funktioniert hat.


Im Detail war scheinbar das Relais-Modul defekt und wollte keinem Steuerkommando folgen. Nach Austausch war das aber ok. Dabei habe ich noch einen defekten Mikrocontroller gefunden (Wifi wollte da nicht hochkommen). Zumindest reduziert sich so der Elektroschrott im Bestand.


Das Hutschienengehäuse wollte nicht richtig in das Elektrogehäuse passen, da war auch etwas (mechanische) Nacharbeit erforderlich.

Im Home Assistant war das Gerät sofort sichtbar und steht nun für jeden Unsinn offen.

Und dann noch eine entsprechende Visualisierung für den geneigten Benutzer zu bekommen, war dann nur noch eine Fingerübung.

Damit steht ab sofort die Option offen, damit auch wesentlich intelligentere Logik zu nutzen. In nächster Zeit wird wohl die Logik des ESP aufgebohrt, damit er auch gut mit Offline-Zuständen und dem Aus- und Einschalten per Not-Aus umgehen kann. Die Benachrichtigung über Telegram ist schon drin, auch kann ich nun über OTA die Firmware jederzeit per Wifi aktualisieren und die Debug-Meldungen auslesen.

In Summe wieder ein kleiner Schritt vorwärts. Nicht zwingend nötig, aber nett und ohne großen Aufwand.

Wir benutzen Cookies und Logs mit personenbezogenen Daten ausschließlich für essentielle Funktionen wie z.B. bei der Benutzeranmeldung oder der Fehlersuche. Für Videos werden weitere Cookies von Drittanbietern benötigt. Details finden sie unter dem Link "Weitere Informationen".