Wassertanks sind in Campern oft fest eingebaut und nur schwer zugänglich. Eine zuverlässige Messung des Füllstands, egal ob Frisch-, Grau- oder Abwasser ist deshalb wichtig.
Bisherige Lösungen erfodern oft einen Kontakt zum Wasser und sind gleichzeitig beschränkt auf eine olle analoge Anzeige. In 2025 geht das wirklich besser.
Ganz nach meinem Anspruch, alle Sensoren etc. in einer Oberfläche in Home Assistant abzulesen, war ich auf der Suche nach einer guten Lösung.
Die verschiedenen Arten der Füllstandsmessung
Diese modernen Sensoren habe ich getestet und war leider mit allen unzufrieden:
Ultraschallsensor
Dieser Sensor sendet Schallwellen aus, die von der Wasseroberfläche reflektiert werden. Die Zeit, die die Wellen benötigen, um zurückzukehren, ermöglicht eine genaue Berechnung des Füllstands.
Der klassische HC-SR04 Ultraschallsensor kam hier nicht in Frage. Er ist zwar sehr günstig, hat jedoch kein Gehäuse und würde beim Kontakt mit Wasser früher oder später korrodieren.
- ✅ Ultraschall Entfernungsmessung von 2 cm bis zu 3 m auf ca. 3 mm genau
Besser geeignet: Der A02YYUW als wasserdichter Ultraschallsensor. Recht teuer, gab mir aber zumindest recht zuverlässige Messwerte.
- Präzise Entfernungsmessung: Mit einer Reichweite von 3 cm bis 450 cm liefert dieser Ultraschall-Abstandssensor genaue und zuverlässige Messungen, die nicht von der Umgebung beeinflusst werden. Es gewährleistet eine präzise Abstandserkennung für verschiedene Anwendungen.
Das grundsätzliche Problem: Der Sensor brauch eine klare Sicht auf die Wasseroberfläche, wodurch sich schnell Kondenswasser am Sensor bildet und dadurch nur noch unzuverlässige Werte angezeigt werden. Ein weiteres Problem: Durch das recht schmale Format meines Wassertanks wurden die Schallwellen gelgentlicht von den Seitenwänden refkletiert, wodurch sich Fehlmessungen ergaben.
TOF-Sensoren (Time-of-Flight)
Diese Sensoren arbeiten ähnlich zum Ultraschallsensor, nutzen aber Licht statt Schall. Hier habe ich den TOF10120 Sensor getestet. Er wird offiziell von ESPHome unterstützt und lässt sich damit ebenfalls leicht auslesen.

Er ist günstiger als der Ultraschallsensor, hatte aber letztlich ähnliche Probleme. Die Messwerte waren gut, solange kein Wasser an den Sensor kam. Letztlich habe ich auch diese Idee schnell verworfen.
- 【Eigenschaften】: Einzelnes Netzteil; UART I2C-Schnittstelle zur Gerätesteuerung und Datenübertragung; Bleifrei, RoHS-konform.
Weitere Möglichkeiten zur Messung
Drucksensoren messen den hydrostatischen Druck am Tankboden. Durch die Messung des Drucks an der Unterseite des Tanks kann der Füllstand berechnet werden. Diese Methode ist wohl sehr genau, erfordert aber auch eine Tanksonde die dauerhaft im Tank verbleibt und somit ebenfalls mit dem Trinkwasser in Kontakt kommt. Das wollte ich vermeiden. Zusätzlich schien mir das die teuerste Lösung, da ich nur einen Sensor finden konnte, der für die Konfiguration mit ESPHome in Frage kam.
- Hohe Präzision: Eingangspegelgeber, hochpräzise Diffusion von Silizium, genauere Überwachung des Wasserstandes.
Auch spannend: Eine neuere Lösung von VOTRONIC mit einer Tanksonde. Ob sich diese mit ESPHome auslesen lassen würde, weiß ich nicht. Vielleicht teste ich die aber auch mal in Zukunft.
- zulässige Betriebsspannung: 12V und 24V DC (für Dauerbetrieb geeignet) — für Montage an Tank-Oberseite oder Seitenwand — geeignet für Frisch- und Abwassertanks-Tanks
Meine Erfahrungen mit den verschiedenen Systemen
In der Praxis haben sich besonders bei Ultraschall- und TOF-Sensoren einige Herausforderungen gezeigt:
- Kondenswasserbildung verfälscht früher oder später die Messwerte.
- Die bewegte Wasseroberfläche beim Fahren macht präzise Messungen nahezu unmöglich.
- Eingriff in den Tank notwendig. Ohne wenigstens ein kleines Loch an der Oberseite des Tanks war keine Messung möglich.
Die smarte Eigenbau-Lösung: XKC-Y25-NPN Kapazitive Sensoren an der Außenwand des Tanks
Nach vielen Experimenten habe ich die perfekte Lösung gefunden: XKC-Y25-NPN kapazitive Sensoren in Kombination mit einem ESP zum Auslesen und Übermitteln an Home Assistant. Diese Kombination läuft bei mir seit über drei Jahren sehr zuverlässig. Und da es keinen Kontakt zum Wasser gibt auch absolut verschleißfrei.
- 【Der langlebige】 Flüssigkeitsspiegelsensor ist für die äußere Wand nicht-metallischer Rohre ohne direkten Kontakt mit Flüssigkeiten geeignet und wird nicht durch ätzende Flüssigkeiten wie starke Säure und Alkali korrodiert und wird nicht von Skalierungen oder anderen Trümmern beeinflusst.
So funktioniert die kapazitive Messung
Die Sensoren arbeiten durch die Tankwand hindurch und können Flüssigkeiten in Behältern aus Kunststoff, Glas oder Keramik bis zu 20mm Dicke erkennen. Das Messprinzip basiert auf der Änderung der elektrischen Kapazität. Erreicht der Wasserstand die Höhe des Sensors, ändert sich die Kapazität – der Sensor schaltet. Jeder Sensor kann also signalisieren: „Ja, hinter der Wand befindet sich auf meiner Höhe gerade Wasser – oder eben auch nicht“.
Durch die Kombination mehrerer Sensoren lässt sich so sagen: Der Tank ist z.B. min. zu 75 % gefüllt.
Ich habe mich für 5 Sensoren entschieden, die ich bei 10%, 25%, 50%, 75% und 100% des Füllstands von außen auf den Tank geklebt habe. Für mich persönlich reicht diese Präzision aus, theoretisch könnte man aber auch 10 Sensoren verwenden und so in 10%-Schritten messen.

In der Praxis wird es vor Allem interessant, wenn der Füllstand kritisch, also bei Frischwasser niedrig und bei Grauwasser hoch ausfällt. Aus diesem Grund werden bei mir die Abstände in den niedrigen %-Stellen auch kleiner.
Die Vorteile meiner Lösung
- Berührungslose Messung: Die Sensoren werden außen am Tank angebracht
- Keine Verunreinigung: Kein Kontakt mit dem Trinkwasser
- Wartungsfrei: Keine beweglichen Teile, keine Korrosion
- Smart-Home-Integration: Volle Einbindung in Home Assistant
Ein großer Nachteil
- Messung nur in Etappen: Durch die Anzahl der Sensoren bestimmt sich wie präzise gemessen werden kann.
Auslesen der Werte
Die Sensoren habe ich anschließend alle mit einem D1 Mini verbunden:
- Sichern Sie sich jetzt ein D1 Mini NodeMcu mit ESP8266-12F zum Vorteilspreis mit Mengenrabatt. Das D1 Mini ist ein Allroundtalent und eines unserer meistverkauften Produkte. Das D1Mini zeichnet sich vor allem durch seine technischen Daten aus.
Stromversorgung
Um die im Camper üblichen 12V auf die vom D1 benötigten 5V zu bringen habe ich einen Step-Down-Converter verwendet, wie z.B. den von Bauer Electronics:
- Einsatzgebiet | Die Module finden breite Anwendung in den Bereichen KFZ, Photovoltaik, Industrieanlagen, LKW, Boot, Landmachinen, Camping, mobile Einrichtungen, Hobby und Heimwerken sowie Haus und Garten.
So wirds installiert
Sensoren am Tank positionieren
Die richtige Platzierung ist entscheidend für aussagekräftige Messwerte. Zum Beispiel so:
- 0% (Leer): Ca. 5 cm über dem Tankboden
- 20%: Bei 1/5 der Tankhöhe
- 40%: Bei 2/5 der Tankhöhe
- 60%: Bei 3/5 der Tankhöhe
- 80%: Bei 4/5 der Tankhöhe
- 100% (Voll): Ca. 5 cm unter der Oberkante
Tipp: Ich habe die Position zunächst mit Kreppband getestet. Wenn alles passt, kann man dann einfach doppelseitiges Klebeband zur Montage verwenden.
Verkabelung
Jeder XKC-Y25-NPN Sensor hat drei Anschlüsse:
- Braun: VCC (+5V Versorgungsspannung)
- Blau: GND (Masse)
- Schwarz: Signal (zum GPIO des ESP32)
Mehr Infos finden sich im Datenblatt.
Kalibrierung bei speziellen Tankformen
Wichtiger Tipp: Falls dein Wassertank eine spezielle Form hat (z.B. Tanks über dem Radkasten mit schrägen Wänden), empfehle ich folgende Kalibrierungsmethode:
- Tank komplett entleeren
- Schrittweise befüllen – verwende einen Messbecher oder Kanister, damit du genau weißt, wieviel Liter bereits im Tank sind
- Montieren – Klebe bei z.B. 10% den ersten Sensor auf die Tankwand, usw.
Das schien aus meiner Sicht die einfachste und praktikabelste Lösung zur Berechnung des Füllstands zu sein.
Integration in Home Assistant
Nachdem alle Sensoren montiert und mit dem D1 Mini verkabelt sind, geht’s an die Software. Ich verwende ESPHome und folgenden Code zur Konfiguration:
esphome:
name: waterlevel-d1
friendly_name: waterlevel_d1
esp8266:
board: d1_mini
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: ENCRYPTION_KEY
# Enable Over-The-Air updates
ota:
- platform: esphome
password: OTA_PASSWORD
wifi:
ssid: !secret wifi_ywbab_ssid
password: !secret wifi_ywbab_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Waterlevel-D1 Fallback Hotspot"
password: AP_PASSWORD
captive_portal:
binary_sensor:
- platform: gpio
pin:
number: GPIO5
inverted: false
mode: INPUT_PULLUP
name: waterlevel_10
id: waterlevel_10
filters:
delayed_on_off: 20ms
- platform: gpio
pin:
number: GPIO4
inverted: false
mode: INPUT_PULLUP
name: waterlevel_25
id: waterlevel_25
filters:
delayed_on_off: 20ms
- platform: gpio
pin:
number: GPIO12
inverted: false
mode: INPUT_PULLUP
name: waterlevel_50
id: waterlevel_50
filters:
delayed_on_off: 20ms
- platform: gpio
pin:
number: GPIO14
inverted: false
mode: INPUT_PULLUP
name: waterlevel_75
id: waterlevel_75
filters:
delayed_on_off: 20ms
- platform: gpio
pin:
number: GPIO13
inverted: false
mode: INPUT_PULLUP
name: waterlevel_100
id: waterlevel_100
# Example configuration entry
sensor:
- platform: template
name: "waterlevel_0_to_100"
unit_of_measurement: "%"
accuracy_decimals: 0
update_interval: 5s
lambda: |-
std::array<bool, 5> states = {
id(waterlevel_10).state,
id(waterlevel_25).state,
id(waterlevel_50).state,
id(waterlevel_75).state,
id(waterlevel_100).state
};
// Count active sensors from highest to lowest
for (int i = 4; i >= 0; i--) {
if (states[i]) {
switch (i) {
case 4: return 100;
case 3: return 75;
case 2: return 50;
case 1: return 25;
case 0: return 10;
}
}
}
return 0; // No sensors active
Wenn dein angezeigter Füllstand zu häufig hin und her springt, kann folgende Einstellung in ESPHome helfen:
delayed_on: 100ms
– Sensor muss mindestens 100ms durchgehend Wasser erkennendelayed_off: 3s
– Sensor muss 3 Sekunden kein Wasser mehr erkennen, bevor er umschaltet
Darstellung auf dem Dashboard

Zu Darstellung der Messerwerte habe ich die Fluid-Level-Background-Card in Kombination mit der Big-Number-Card verwendet
- type: custom:fluid-level-background-card
entity: sensor.waterlevel_d1_waterlevel_0_to_100
card:
type: custom:bignumber-card
title: Water
entity: sensor.waterlevel_d1_waterlevel_0_to_100
scale: 30px
from: bottom
level_color:
- 48
- 30
- 138
Automatisierungen
Da gibt’s natürlich vielfältige Ideen. Hier ein Beispiel zum automatischen Abschalten der Pumpe bei niedrigem Füllstand:
alias: Pumpe aus bei leerem Tank
trigger:
- platform: state
entity_id: binary_sensor.tank_leer
to: 'off'
condition: []
action:
- service: switch.turn_off
target:
entity_id: switch.wasserpumpe
- service: notify.dein_smartphone
data:
title: "🚰 Wasserpumpe abgeschaltet"
message: "Tank ist leer - Pumpe wurde zum Schutz ausgeschaltet."
Weitere Möglichkeit: Durchflussmessung
Was ich bisher noch nicht getestet habe, ist eine Anzeige per Durchflussmessung. Diese, wahrscheinlich sehr präzise, Möglichkeit finde ich sehr spannend. Aber auch hier bleibt die Problematik: Der Durchflussmesser ist nicht wirklich lebensmittelecht und wird mit der Zeit verkeimen.
- Geeignet für Wasserkocher, automatische Wasserspender, etc.
Fazit: Smart, günstig und zuverlässig
Mit einem Gesamtbudget von unter 100 Euro hast du ein Füllstandsmesssystem, welches kontaktlos auskommt. Mir sind bisher keine kommerziellen Lösungen bekannt, die diese Möglichkeit bieten.
Nach über drei Jahren Dauereinsatz kann ich sagen: Das System funktioniert absolut zuverlässig und ermöglicht durch zusätzliche Automatisierungen auch einen echten Mehrwert gegenüber herkömmlichen Lösungen.