Trockenlaufschutz für die Gartenpumpe mit Senvolon Füllstandmesser & Home Assistant

Trockenlaufschutz für die Gartenpumpe mit Senvolon Füllstandmesser & Home Assistant

Zisterne per LiDAR-Sensor in Home Assistant absichern

Eine Pumpe, die nicht weiß, wann sie aufhören soll

Eine Gartenpumpe ohne Trockenlaufschutz ist eine Zeitbombe. Läuft sie ohne Wasser, überhitzt die Gleitringdichtung in Sekunden. Das Lager folgt. Im besten Fall ein teurer Reparaturfall, im schlechtesten Fall ein Totalschaden und ein vertrocknetes Beet.

Die vermeintlich einfache Lösung ist ein einfacher Schwimmschalter. Das funktioniert solange, bis der Schwimmer sich verhakt, der Schalter korrodiert oder man schlicht vergisst, dass die Zisterne nach einem trockenen August nur noch zu fünf Prozent gefüllt ist.

Eine automatische Pumpensteuerung auf Basis eines Füllstandssensors klingt zunächst unkompliziert: Sensor installieren, Werte in Home Assistant einbinden, Schwellwerte definieren – fertig. In der Praxis entscheidet jedoch nicht die Automation über die Zuverlässigkeit des Systems, sondern die Qualität und Eignung der eingesetzten Sensorik.

Detail eins: Günstige Ultraschallsensoren verlieren in feuchten Umgebungen an Messgenauigkeit. Nach ein bis zwei Jahren Betrieb in einer Zisterne zeigen sich Kondensatschäden, veränderte Resonanzfrequenzen und nachlassende Reflexionsempfindlichkeit. Dazu kommt ein physikalisches Grundproblem: Ultraschall misst Schallgeschwindigkeit, und die ist temperaturabhängig. Eine Erdkeller-Zisterne schwankt zwischen 5 °C im Winter und 15 °C im Sommer. Ohne Temperaturkompensation entstehen systematische Messfehler von mehreren Prozentpunkten. Ein Trockenlaufschutz auf Basis solcher Werte ist unzuverlässig.

Detail zwei: Viele preiswerte Sensoren funken über Herstellerserver. Fällt der Cloud-Dienst aus, liefert Home Assistant `unavailable`. Eine naive Automation tut dann nichts. Die Pumpe läuft weiter.

Detail drei: Ein Schwellenwert ohne Hysterese lässt die Pumpe bei bewegter Wasseroberfläche im Kurzrhythmus schalten. Das ist mechanischer Stress, der die Pumpe schneller kaputt macht als ein einzelner Trockenlauf-Vorfall.

Dieser Guide zeigt, wie man das richtig löst: mit einem LiDAR-Sensor, der lokal per MQTT kommuniziert, mit einer Automation, die Sensor-Ausfall explizit als Fehlerzustand behandelt, und mit einer Hysterese-Logik, die Pump-Cycling verhindert.

 

Hardware & Stückliste (BOM)

Pos.

Komponente

Zweck / Hinweis

1

Senvolon Füllstandsmesser LD WLAN

LiDAR-Präzision, temperaturunabhängig, lokales MQTT.

2

optional:
Senvolon Füllstandsmesser LD Bundle: LiDAR-Sensor mit externem Antennenanschluss & externer 2,4 GHz WLAN-Antenne

Pflicht bei vergrabenen Betonzisternen für stabilen Empfang.

3

WLAN-Schaltaktor (z. B. Shelly)

Schaltet die Pumpe basierend auf den Sensorwerten.

4

Home Assistant Hub

Die Schaltzentrale (Raspberry Pi, HA Green o.ä.).

5

Wasserwaage

Essenziell für die exakt waagerechte Sensormontage.

 

 

Die technische Umsetzung


Du schaust lieber Videos als zu lesen? In diesem Youtube Video werden die Schritte 1 bis 3 erklärt.

Installationsvideo Füllstandmesser


 

Schritt 1: Sensor montieren

Bevor Software angefasst wird, muss die Montage sitzen. Fehler hier sind später schwer zu debuggen, und ein schräg montierter Sensor produziert systematische Messfehler, die sich nicht weg kalibrieren lassen.

 

Montagepunkt vorbereiten: Nutzen Sie eine Winkelkonsole oder eine Querstrebe, die stabil im Schachtzugang sitzt. Der Sensor muss waagerecht und gerade über der Wasseroberfläche hängen. Wasserwaage anlegen. Schon eine leichte Schrägstellung kann das Messergebnis verfälschen. Der Sensor misst dann eine längere Strecke als tatsächlich nötig, wodurch ein dauerhafter Messfehler entsteht.

Mindestabstand zur Wasseroberfläche: 10 cm absolut. Bei klarem Regenwasser mindestens 20 cm einplanen. Klares Wasser transmittiert Licht teilweise, statt es vollständig zu reflektieren, was Mehrfachreflexionen wahrscheinlicher macht. Wer zu nah montiert, bekommt keine validen Messwerte. Der Sensorkopf außerhalb des Gehäuses lässt sich um 180° drehen (zwei Schrauben lösen, auf der anderen Seite befestigen), falls die Einbausituation das erfordert.

WLAN-Check vor der Endmontage: Bevor der Sensor fest verbaut wird, Verbindung herstellen und den RSSI-Wert im Sensor-Webinterface auslesen. Unter -70 dBm gelten Verbindungsabbrüche als wahrscheinlich. Ein nachträglicher Antennen-Umbau ist aufwändig. Deshalb: erst messen, dann abdichten.

Lichtkegel-Check vor der Endmontage: Der ToF-Sensor hat keinen punktförmigen Strahl. Der Lichtkegel weitet sich mit zunehmender Distanz auf: bei 1 m Abstand beträgt der Durchmesser 6 cm, bei 2 m bereits 12 cm, bei 6 m 36 cm. Alles, was in diesen Kegel ragt, Rohre, Schwimmkörper, Befüllungsschläuche, Tauchleitungen, wird mitgemessen und verfälscht das Ergebnis. Sichtlinie vor der Endmontage prüfen und Hindernisse konsequent aus dem Kegel entfernen.

Erdtank mit Beton- oder Stahldeckel: Ein entsprechender Deckel dämpft WLAN-Signale erheblich. Das RP-SMA-Antennen-Bundle ist für dieses Szenario keine Spielerei. Das Antennenkabel durch den Zisternenzugang nach oben führen, Antenne außen montieren.

 

Schritt 2: Sensor ins Heimnetz einbinden

Nach dem Einschalten öffnet der Sensor einen eigenen Access Point.

  1. Mit dem WLAN „Level Sensor-[ID]" verbinden (Passwort: „12345678“). Auf dem Smartphone mobile Daten vorher deaktivieren.
  2. Im Browser http://192.168.4.1/wifi aufrufen.
  3. SSID auswählen und Passwort des Heimnetzes eintragen, Hostnamen vergeben (z. B. „zisterne“), speichern.
  4. Der Sensor verbindet sich ins Heimnetz. Die zugewiesene IP wird nach erfolgreicher Verbindung unten links angezeigt.
  5. Sensor-Webinterface aufrufen: http://[IP-Adresse]. Kein App-Download, keine Plattform-Registrierung.

 

Fallback: Verliert der Sensor die WLAN-Verbindung, baut er automatisch seinen eigenen Access Point wieder auf und ist immer unter 192.168.4.1 erreichbar. Der Sensor verschwindet nicht ohne Diagnosemöglichkeit.

Abbildung 1

 

Schritt 3: Tankparameter im Webinterface konfigurieren

Alle Kerneigenschaften des Sensors werden über das browserbasierte Frontend konfiguriert. Das ist der primäre Konfigurationsweg. Im Browser http://[IP-Adresse] aufrufen, dann Tank auswählen:

 

 Geometrie: Passende Form wählen (Quader, vertikaler Zylinder, horizontaler Zylinder, Kugel). Für individuelle Behälterformen steht die Option einer Ausliterungstabelle oder eine freie Formel-Engine zur Verfügung.

 Distanz zur Oberfläche: Abstand vom Sensor bis zur Wasseroberfläche bei Vollfüllung in cm. Bei klarem Wasser mindestens 20 eintragen. Diesen Wert mit einem Zollstock messen, nicht schätzen.

 Distanz zum Boden: Abstand vom Sensor bis zum Tankboden in cm.

Minimum: Alarmschwelle Minimum, z. B. 10 für 10 %. Das ist die Trockenlaufschutz-Schwelle.

HYST min: Hysterese in Prozentpunkten, z. B. 5. Der Alarm erlischt erst, wenn der Füllstand wieder auf 15 % gestiegen ist. Verhindert das Flattern bei grenzwertiger Füllung.

 

Anschließend Konfiguration > MQTT:

Broker IP: IP-Adresse des Home Assistant Servers

Port: 1883

Benutzername: z.B. mqtt_user

Passwort: entsprechend

Sensor Name: zisterne (bestimmt alle MQTT-Topics)

Speichern. Der Sensor verbindet sich danach mit dem Broker.

 

Schritt 4: Mosquitto MQTT Broker in Home Assistant installieren, sofern nicht vorhanden

  1. Gehe zu Einstellungen > Add-ons > Add-on Store.
  2. Suche nach "Mosquitto Broker", klicke auf Installieren und dann auf Starten.
  3. Aktiviere "Beim Start ausführen".
  4. Lege einen dedizierten MQTT-Benutzer an: Einstellungen > Personen > Benutzer > Benutzer hinzufügen.
    1. Name und Benutzername: mqtt_user
    2. Vergib ein sicheres Passwort und aktiviere "Nur lokaler Benutzer".

Nachdem die Einrichtung abgeschlossen ist, erscheint der Füllstandssensor in der Übersicht unter "Geräte & Dienste". Dort werden Ihnen unmittelbar die aktuellen Messwerte präsentiert. Besonders hilfreich ist die "Alert"-Entität: Diese leitet ihren Status automatisiert aus den von Ihnen definierten MIN- und HYST_MIN-Parametern ab.

 

Abbildung 2

 

Schritt 6: Automation: Pumpe bei Trockenlaufgefahr abschalten

Kernstück der Automation ist die „Alert“-Entität, die ihren Zustand basierend auf den von Ihnen konfigurierten MIN- und HYST_MIN-Werten berechnet. Sobald diese Entität den Status „MIN“ ausgibt, schaltet das System die Pumpe sofort ab und sendet eine Benachrichtigung an Ihr Smartphone sowie an das Home Assistant Dashboard.

alias: Zisterne fast leer
description: >
  Schaltet die Gartenpumpe ab, wenn der Füllstand der Zisterne unter den
  konfigurierten Schwellenwert fällt. Verhindert Trockenlauf.
triggers:
  - trigger: state
    entity_id:
      - sensor.level_sensor_alert
    to:
      - MIN
      - unavailable
      - unknown
conditions: []
actions:
  - data:
      title: ⚠️ Trockenlaufschutz ausgelöst
      message: >
        Zisterne bei {{ states('sensor.level_sensor_level') | int }}% (aktuell:
        {{ states('sensor.level_sensor_level') | int }}%). Pumpe wurde
        automatisch abgeschaltet.
      notification_id: trockenlaufschutz
    action: persistent_notification.create
  - action: notify.mobile_app_pixel_8_pro
    data:
      message: >
        Zisterne bei {{ states('sensor.level_sensor_level') | int }}% (aktuell:
        {{ states('sensor.level_sensor_level') | int }}%). Pumpe wurde
        automatisch abgeschaltet.
      title: ⚠️ Trockenlaufschutz ausgelöst
  - type: turn_off
    device_id: 77d6941f98b5c5bfa363c29b6d1207fb
    entity_id: 267c76857b99807442895b3dcb5fa9d2
    domain: switch
mode: single

Abbildung 3

 

Schritt 7: Automation für die Reaktivierung der Pumpe

Damit der Betrieb nach einer Trockenlauf-Abschaltung wieder aufgenommen werden kann, nutzt das System erneut die „Alert“-Entität als zentrales Steuerelement. Die Logik basiert hierbei auf den von Ihnen festgelegten MIN- und HYST_MIN-Parametern.

Der Status „MIN“ bleibt so lange aktiv, bis der Füllstand den durch HYST_MIN definierten Schwellenwert überschreitet. Diese Hysterese stellt sicher, dass die Pumpe nicht durch minimale Wellenbewegungen an der Wasseroberfläche verfrüht oder in zu kurzen Intervallen ein- und ausgeschaltet wird, was die Hardware schont.


alias: Zisternenpumpe kann wieder eingeschaltet werden
description: >
  Informiert wenn der Füllstand der Zisterne wieder über den konfigurierten
  Schwellenwert steigt. Schaltet die Pumpe wieder ein
triggers:
  - trigger: state
    entity_id:
      - sensor.level_sensor_alert
conditions:
  - condition: template
    value_template: "{{ states('sensor.level_sensor_alert') not in ['MIN', 'MAX'] }}"
actions:
  - data:
      title: ⚠️ Trockenlaufschutz deaktiviert
      message: >
        Zisterne wieder bei {{ states('sensor.level_sensor_level') | int }}%
        (aktuell: {{ states('sensor.level_sensor_level') | int }}%). Pumpe wurde
        automatisch eingeschaltet.
      notification_id: trockenlaufschutz
    action: persistent_notification.create
  - action: notify.mobile_app_pixel_8_pro
    data:
      message: >
        Zisterne wieder bei {{ states('sensor.level_sensor_level') | int }}%
        (aktuell: {{ states('sensor.level_sensor_level') | int }}%). Pumpe wurde
        automatisch eingeschaltet.
      title: ⚠️ Trockenlaufschutz deaktiviert
  - type: turn_on
    device_id: 77d6941f98b5c5bfa363c29b6d1207fb
    entity_id: 267c76857b99807442895b3dcb5fa9d2
    domain: switch
mode: single

Falls Sie eine präzisere Steuerung bevorzugen, lässt sich die Automatik so anpassen, dass die Pumpe nicht eigenständig anläuft, sondern lediglich eine Benachrichtigung erfolgt. Die manuelle Reaktivierung der Bewässerung kann anschließend bequem über das im nächsten Abschnitt vorgestellte Dashboard durchgeführt werden.

 

Schritt 8: Dashboard

Dieses Dashboard bietet eine zentrale Kontrolleinheit: Es bildet nicht nur den aktuellen Füllstand und den Status der Pumpe inklusive Steuermöglichkeit ab, sondern integriert auch den kommenden Wetterbericht sowie relevante WLAN-Verbindungsparameter.


views:
  - type: sections
    max_columns: 4
    title: Zisterne
    path: zisterne
    icon: mdi:watering-can
    sections:
      - type: grid
        cards:
          - type: heading
            icon: mdi:car-coolant-level
            heading: Füllstand
            heading_style: title
            grid_options:
              columns: 12
              rows: 1
          - type: gauge
            entity: sensor.level_sensor_level
            name: Füllstand
            needle: true
            segments:
              - from: 0
                color: '#EA4335'
              - from: 10
                color: yellow
              - from: 15
                color: '#34A853'
              - from: 85
                color: yellow
              - from: 90
                color: '#EA4335'
            unit: '%'
          - show_name: true
            show_icon: true
            type: button
            icon: mdi:pump
            show_state: true
            name: Wasserpumpe
            icon_height: 50px
            entity: switch.shellypstripg4_e8f60a62ec54_output_2
          - type: tile
            entity: sensor.level_sensor_fluid
            grid_options:
              rows: 1
          - type: vertical-stack
            cards:
              - type: conditional
                conditions:
                  - condition: state
                    entity: sensor.level_sensor_alert
                    state: MIN
                card:
                  type: tile
                  entity: sensor.level_sensor_alert
                  name: 'Alarm-Status:'
                  icon: mdi:water-minus
                  color: red
              - type: conditional
                conditions:
                  - condition: state
                    entity: sensor.level_sensor_alert
                    state: MAX
                card:
                  type: tile
                  entity: sensor.level_sensor_alert
                  name: 'Alarm-Status:'
                  icon: mdi:water-plus
                  color: red
              - type: conditional
                conditions:
                  - condition: state
                    entity: sensor.level_sensor_alert
                    state: ''
                card:
                  type: tile
                  entity: sensor.level_sensor_alert
                  name: 'Alarm-Status: OK'
                  icon: mdi:water-check
                  color: green
            grid_options:
              columns: 6
              rows: auto
          - type: history-graph
            entities:
              - entity: sensor.level_sensor_level
            logarithmic_scale: false
          - type: heading
            icon: mdi:weather-lightning-rainy
            heading: Wettervorhersage
            heading_style: title
            grid_options:
              columns: 12
              rows: 1
          - show_current: false
            show_forecast: true
            type: weather-forecast
            entity: weather.forecast_home
            forecast_type: daily
            forecast_slots: 5
            secondary_info_attribute: precipitation_unit
            round_temperature: true
            name: Wettervorhersage
          - type: heading
            icon: mdi:wifi
            heading_style: title
            grid_options:
              columns: 12
              rows: 1
            heading: WLAN Verbindung
          - type: tile
            entity: sensor.level_sensor_ip
          - type: tile
            entity: sensor.level_sensor_rssi
    cards: []
Anwendungsbeispiel Regenwasserzisterne

Abbildung 4

 

Physikalische Grenzen und Fallstricke

Mindestabstand: Ist eine harte physikalische Grenze. Unter 10 cm zur Wasseroberfläche liefert der Sensor keine validen Werte. Bei klarem Regenwasser sind 20 cm der sichere Wert.

Lichtkegel-Durchmesser: Wächst mit der Tiefe. Bei 2 m Abstand beträgt der Kegeldurchmesser 12 cm, bei 6 m sind es 36 cm. Rohre, Schwimmkörper, Überlaufventile und Tauchleitungen, die in diesen Kegel ragen, werden mit gemessen. Sensorposition entsprechend planen.

Waagerechte Ausrichtung: Schräge Montage verlängert den Lichtweg und ändert den Reflexionswinkel, was systematische Messfehler ergibt. Die Firmware-Kalibrierungstabelle kann dies nur abmildern, nicht ersetzen.

Nicht für brennbare Flüssigkeiten: Kein Einsatz für Heizöl, Diesel oder Benzin.

Nur für drucklose Behälter: Druckbehälter, Warmwasserspeicher unter Druck und pneumatische Tanks sind kein valider Anwendungsfall.

 

Troubleshooting: Die häufigsten Symptome

 

Symptom

Wahrscheinliche Ursache

Fix

Sensor zeigt unavailable in HA

WLAN-Verbindung unterbrochen oder RSSI zu schwach

RSSI im Sensor-Webinterface prüfen. Unter -70 dBm: externe Antenne nachrüsten. Fallback-AP Level Sensor erscheint wenn WLAN-Verbindung verloren ist.

Messwerte springen ±10 cm

Objekt im Lichtkegel, unruhige Wasseroberfläche

Taschenlampen-Test: Sichtlinie prüfen. Median-Fenster im Webinterface vergrößern. READ_INTERVAL erhöhen.

Automation schaltet Pumpe nicht ab

Entity-IDs stimmen nicht überein

Entwicklerwerkzeuge > Zustände: korrekte Entity-ID der Steckdose verifizieren. delay_on im Binary Sensor für Tests auf 5 Sekunden reduzieren.

Pumpe schaltet im Kurzrhythmus

Hysterese nicht konfiguriert

MINI 10 und HYST_MIN 5 im Sensor setzen. Automation schaltet die Pumpe bewusst nicht automatisch wieder ein.

HA erkennt Sensor nicht nach MQTT-Setup

MQTT Discovery deaktiviert

Einstellungen Geräte & Dienste > MQTT > Konfigurieren > Discovery aktiviert? prüfen.

Sensor zeigt dauerhaft maximale Distanz

Lichtkegel trifft Tankwand statt Wasseroberfläche

Sensor zentrieren, Hindernisse aus Lichtkegel entfernen.

Entity bleibt nach Start auf unknown

Gleitender Median braucht mehrere Samples zum Konvergieren

2–3 Minuten warten. Ist normal beim ersten Start.


Warum lokales MQTT hier kein Nice-to-have ist

Der LWT-Mechanismus (Last Will & Testament) ist die technische Basis für den Sensor-Watchdog in der Automation. Geht der Sensor offline, hinterlässt er beim Broker eine vordefinierte Offline-Nachricht. Home Assistant erkennt das sofort über das availability_topic in den Sensor-Definitionen. Bei Cloud-vermittelten Systemen ist dieses Signal häufig verzögert oder gar nicht verfügbar. Der Senvolon LD WLAN publiziert direkt auf den lokalen Broker. Es gibt keine externe Abhängigkeit und keine Routing-Verzögerung. Wer weltweiten Zugriff auf die Messwerte möchte, kann remote.senvolon.de als Opt-in nutzen. Wer komplett lokal bleibt, verliert dabei kein Feature des Sensors.

 

Fazit

Dieses Setup ist kein Bastelprojekt mit Ablaufdatum. Ein Senvolon Füllstands-Sensor ist gegenüber Ultraschall langlebiger in feuchten Umgebungen, temperaturunabhängig und nicht auf Schall als Medium angewiesen. Kombiniert mit einem lokalen Broker, einer Automationslogik mit Hysterese und einem expliziten Fail-Safe bei Sensor-Ausfall entsteht ein Trockenlaufschutz, der unbeaufsichtigt funktioniert. Wer die Montage sorgfältig durchführt, den WLAN-RSSI vor der Endmontage prüft und die Tankparameter einmal sauber einstellt, hat danach einen Schutz, der im Hintergrund arbeitet und nicht weiter gepflegt werden muss.

Weiterführende Links

Senvolon Füllstandsmesser LD WLAN im Shop

Produktdokumentation & Bedienungsanleitung (im Shop verlinkt)

Fragen, Erfahrungen, alternative Konfigurationen? In der Home Assistant Community teilen oder direkt beim Senvolon Support melden.