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: |
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.
- Mit dem WLAN „Level Sensor-[ID]" verbinden (Passwort: „12345678“). Auf dem Smartphone mobile Daten vorher deaktivieren.
- Im Browser http://192.168.4.1/wifi aufrufen.
- SSID auswählen und Passwort des Heimnetzes eintragen, Hostnamen vergeben (z. B. „zisterne“), speichern.
- Der Sensor verbindet sich ins Heimnetz. Die zugewiesene IP wird nach erfolgreicher Verbindung unten links angezeigt.
- 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
- Gehe zu Einstellungen > Add-ons > Add-on Store.
- Suche nach "Mosquitto Broker", klicke auf Installieren und dann auf Starten.
- Aktiviere "Beim Start ausführen".
- Lege einen dedizierten MQTT-Benutzer an: Einstellungen > Personen > Benutzer > Benutzer hinzufügen.
- Name und Benutzername: mqtt_user
- 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: []
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.