
Der montierte Abstandssensor im Deckel eines Tränkefasses (IBC Container). Bild erstellt von Dr. Armin Geisinger
Erforderlicher Wissensstand: Fortgeschrittenes Wissen
Wasserspeicher für Weidetränken oder Bewässerungsanlagen sollten mehrmals täglich auf Füllstand geprüft werden. Wie diese mittels digitaler Sensorik erfolgt, wird in diesem Praxisbeispiel erklärt.
Ein LoRaWAN-Abstandssensor wird beschafft, im The Things Network (TTN) registriert und anschließend an einer geeigneten Stelle am Wasserspeicher montiert.
Der Füllstand des Wasserspeichers wird digital überwacht und kann mittels HomeAssistant beobachtet, sowie für HomeAssistant Automatisierungen und Warnregeln verwendet werden.
| Je nach Größe des Wasserbehälters ist ein passender Abstandssensor zu bestellen. * Für einen Abstand zur Wasseroberfläche zwischen 15 und 150 cm ist der [[EGK-LW20W00]] einzusetzen. Dieser Wertebereich passt perfekt für den üblichen Wasser-Hub innerhalb eines IBC-Containers (Höhe: ca 1m) oder für klassische Weide-Tränkefässer. * Für höhere/tiefere Wasserbehälter wäre der [[EGK-LW20LT00]] mit einem Messbereich zwischen 35 und 700 cm einsetzbar. Es ist zu beachten, dass der Sensor nicht funktioniert, wenn der Abstand zwischen Sensor und Wasseroberfläche geringer ist als 35 cm. |
![]() Produktbild Enginko Abstandssensor von der Herstellerwebseite (Enginko) |
| Der Sensor wird ausgeschaltet ausgeliefert und muss vorher mit dem beiliegenden Magnet aktiviert werden wie auf folgender Abbildung dargestellt: |
![]() Aktivieren des Sensors (Handbuch des Sensors (Enginko)) |
Hierfür ist ein Android Smartphone und die App "LoRa Tool" notwendig. Nach Download der App aus dem PlayStore muss Bluetooth aktiviert und die App gestartet werden. Ist der Sensor aktiviert und in der Nähe wird der Sensor in der App angezeigt und kann ausgewählt werden. Bei der Sensorübersicht ist das mittlere Icon in der oberen Tableiste auszuwählen, wodurch die LoRaWAN Keys angezeigt werden. Für die Registrierung im The Things Network (TTN) sind folgende Informationen auszulesen und z.B. auf einem Zettel oder Passwortmanager zu notieren: DevEUI und AppKey |
| TODO |
Nach erfolgter Anmeldung bei der TTN Console (https://eu1.cloud.thethings.network/) auf Add -> Register end device in application oder auf Add end device klicken. Im nun erscheinenden Dialogfenster ist auszuwählen, zu welcher Anwendung ("Application") der Sensor hinzugefügt werden soll; ist keine Anwendung angelegt oder passend, muss diese unter Add->Application hinzugefügt und der Registrierungsprozess erneut gestartet werden. |
![]() Registrierung des Sensors im TTN Teil 1 (Screenshot erstellt von Dr. Armin Geisinger) |
Im nun erscheinenden Konfigurationsdialog ist folgendes auszuwählen:
Nach einem Klick auf Confirm erscheinen weitere Felder, die wie folgt befüllt werden müssen: DevEUI ist der in Schritt 3 ausgelesenene Wert der Sensor DevEUI. AppKey ist der in Schritt 3 ausgelesenen Wert für AppKey und End device ID ist ein selbst festgelegter, indeutiger Bezeichner für den Sensor, z.B. "enginko-sensor-1". Es sind lediglich Kleinbuchstaben, Ziffern und Bindestriche erlaubt (keine Leerzeichen!). Das Feld für Labels dient der Gruppierung von Sensoren in Sensorgruppen und kann leer bleiben bzw. auch später noch konfiguriert werden. Anschließend ist auf "Register end device" zu klicken, wodurch die Dateneingabe beendet wird. |
![]() Registrierung des Sensors im TTN Teil 2 (Screenshot erstellt von Dr. Armin Geisinger) |
| Anschließend sollte die Übersichtsseite des Sensors angezeigt werden. Hier kann einerseits die Konfiguration nachträglich angepasst und andererseits der Status, sowie empfangene Daten angezeigt werden. Dass Daten empfangen wurden kann aus einem der drei markierten Bereiche entnommen werden. |
![]() Registrierung des Sensors im TTN Teil 3 (Screenshot erstellt von Dr. Armin Geisinger) |
Wurde auch nach 30 Minuten kein Datenpaket empfangen (die markierten Bereiche bleiben unausgefüllt oder invalide), sollte mit der Fehlersuche begonnen werden:
- Ist ein LoRaWAN Gateway in Reichweite? Hierzu kann es auch sinnvoll sein, den Sensor in den Außenbereich zu legen, da der LoRaWAN Empfang durch Hauswände stark reduziert wird. Ist das Gebiet unterversorgt ist es ggf. sinnvoll, [[Ein eigenes LoRaWAN Gateway betreiben|ein eigenes LoRaWAN Gateway zu betreiben]]
- Ist der Sensor aktiviert bzw. eingeschaltet? Ggf. Prüfen durch Wiederholung von Schritt 2. Beim Aktivieren des Sensors muss die grüne LED kurz aufleuchten. Eventuell ist auch die Batterie leer und muss getauscht werden.
- Wurden die korrekten Registrierungsinformationen ausgelesen und eingetragen? Wenn z.B. mehrere Sensoren beschafft wurden kann es sein, dass die Informationen eines Sensors ausgelesen und registriert wurden, der gar nicht aktiv ist.
Hierfür ist es nötig, dass HomeAssistant installiert und eingerichtet ist, die Anbindung von HomeAssistant an das The Things Network eingerichtet ist und eine Internetverbindung zwischen der HomeAssistant Instanz und dem The Things Network (TTN besteht. Sofern für den Füllstandssensor eine neue Application im TTN angelegt wurde, müssen die Schritte der Anleitung [[HomeAssistant mit dem The Things Network über HTTP verbinden]] (noch nicht öffentlich) erneut durchgeführt werden. Wurde der Sensor in einer bereits angebundenen Application hinzugefügt, findet HomeAssistant den Sensor selbstständig und meldet den neuen Fund. Es werden jedoch nur Sensoren angezeigt, die mindestens einen Datensatz erfolgreich an das The Things Network (TTN) übermittelt haben. |
![]() HomeAssistant Anzeige der The Things Network Erweiterung (Screenshot erstellt von Dr. Armin Geisinger) |
| Sobald der Sensor zuverlässig Daten liefert kann er montiert werden. Hierzu ist in fast allen Fällen eine geeignete Befestigungsmöglichkeit an der Behälterdecke oder dem Behälterdeckel zu schaffen und den Sensor so anzubringen, dass der Sensor nicht ins Wasser eintaucht, der Sensor lotrecht nach Unten zeigt, der Sensor möglichst wenig signalschwächendes Material um sich hat und die maximale Distanz zwischen Wasseroberfläche und Sensor nicht außerhalb der Spezifikationen des Sensors liegt (1,5 m bzw. 7 m) |
![]() Montage des Abstandssensors am Deckel eines Tränkefasses (in diesem Fall ein IBC-Container) (Bild erstellt von Dr. Armin Geisinger) |
Die Sensorwerte werden von HomeAssistant als Text behandelt und nicht als Zahl, sodass keine schönen Grafiken gezeichnet werden. Die Konvertierung von Text zu Zahlenwerten erfolgt in HomeAssistant über ein Template. Dieses wird im Backend (HomeAssistant) unter Einstellungen->Geräte und Dienste -> Reiter "Helfer" -> Helfer erstellen angelegt. Im nun erscheinenden Dialog wird Template ausgewählt und anschließend Sensor-Template. |
![]() Ein leerer Template Sensor in HomeAssistant (Screenshot erstellt von Dr. Armin Geisinger) |
Der nun erscheinende Dialog ermöglicht die Programmierung von Datenverarbeitungsfunktionen für die eingehenden Daten und wird wie folgt befüllt:
Im Feld Zustand wird die Berechnungsformel eingetragen:
{% set Abstand_flt = states('sensor.egk_lw20w00_01_distance1') | float %}
{{Abstand_flt/10}}
Diese liest den Sensorwert des Sensors sensor.egk_lw20w00_01_distance1 (die interne Entitäts-ID (HomeAssistant) des Abstandssensors) und konvertiert den Wert in eine Fließkommazahl. Anschließend wird der Wert mit 10 Dividiert, um den Wert in cm zu erhalten.
Nach Schließen des Dialogs mittels OK legt HomeAssistant einen neuen (virtuellen) Sensor unter dem Abstandssensor an, der die gemessene Distanz zur Wasseroberfläche in Zentimeter als numerischen Wert beinhaltet. Dieser numerische Sensor zeigt die Werte-Historie auch als Liniendiagramm an und nicht als Zustandsdiagramm wie der vom The Things Network (TTN) übertragene Text-Wert. |
![]() Befüllter Template Sensor (Screenshot erstellt durch Dr. Armin Geisinger) |
Die letztendlich wichtige Information für einen Füllstandsensor ist die Bestimmung des in einem Behältnis vorhandenen Flüssigkeitsvolumens (in Liter) oder des relativen Füllstands (in Prozent). Für beide Werte ist es notwendig, die Distanz zwischen Wasseroberfläche bei komplett geleertem Behältnis ($Distanz_leer) und bei komplett gefülltem Behältnis ($Distanz_voll) zu kennen. Diese Werte können entweder mit einem Meterstab gemessen oder - bei bereits montiertem Sensor - aus den übermittelten Daten ausgelesen werden (Messung bei komplett geleertem Behälter und Messung bei komplett gefülltem Behälter). |
![]() Template Sensor für die Bestimmung des prozentualen Füllstands (Screenshot erstellt durch Dr. Armin Geisinger) |
Der Füllstand für einen aktuell gemessenen Abstand zur Wasseroberfläche (`$Distanz_IST) in Prozent berechnet sich dann aus:
$Füllstand_prozent = ( $Distanz_leer - $Distanz_IST ) / ( $Distanz_leer - $Distanz_voll ) * 100 [%]
Es ist folglich ein neues Sensor Template (siehe Schritt 8) anzulegen mit folgenden Inhalten:
Als Zustands-Template ist folgender Code einzutippen (unter Verwendung der korrekten Entitäts-ID):
{% set Abstand_flt = states('sensor.egk_lw20w00_01_distance1') | float / 10 %}
{{ ( 102 - Abstand_flt ) / ( 102 - 2 ) * 100 }}
Die Werte im praktischen Beispiel sind
$Distanz_leer = 102$Distanz_voll = 1$Distanz_IST wird vom Sensor-Status selbst abgeleitet (auch hier in Zentimeter angegeben)Durch Bestätigung mit OK wird ein neuer Sensor angelegt, der fortan den relativen Füllstand basierend auf der Abstandsmessung ausgibt
| Ist der prozentuale Füllstand bekannt, wird für die Bestimmung des absoluten Füllstands lediglich das Fassungsvermögen des Behälters benötigt. Ein IBC-Container hat einen Volumen von 1000 Liter, sodass sich der aktuelle Füllstand aus dem Produkt aus relativem Füllstand und Behältervolumen ergibt. |
![]() Template Sensor zur Bestimmung des absoluten Wasserfüllstands (Screenshot erstellt durch Dr. Armin Geisinger) |
Analog zu Schritt 8 und 9 ist ein neuer Template Sensor anzulegen mit folgenden Informationen:
Als Zustands-Template ist folgender Code einzutippen (unter Verwendung der korrekten Entitäts-ID):
{{ ( states('sensor.trankefass_fullstand_berechnet') | float ) / 100 * 1000 }}
Diese Formel verwendet den ohnehin bereits berechneten Füllstand in Prozent (daher muss die Zahl durch 100 geteilt werden) und multipliziert den relativen Füllstand mit dem Behältervolumen von 1000 Litern.
Nach Bestätigen mit OK erscheint ebenfalls ein neuer Sensor, der nun die absolute Menge an Wasser im Behälter ausgibt.
Der Füllstandsensor ist an die Heimautomatisierung angebunden und liefert fortwährend Informationen über den aktuellen Füllstand eines Behältnisses.

Messwerte des Sensors im zeitlichen Verlauf bei entleertem Wasserfass. Die Messwerte schwanken bei konstantem Pegel leicht im Tagesverlauf (ggf. Ausdehnung des IBC Containers) (Screenshot erstellt durch Dr. Armin Geisinger)
Dies erspart häufige Kontrollen, ermöglicht ein häufiges Prüfen des Füllstandes sowie die Programmierung von Alarmfunktionen, wenn der Füllstand einen kritischen Wert unterschreitet. Zudem erlaubt die permanente Überwachung auch das Ableiten von Verbrauchsprognosen und die Beobachtung der Wasserentnahmecharakteristik, sodass im Beispiel einer Weidetränke aus dem Füllstandverlauf der Wasserbedarf der Rinder in Abhängigkeit des aktuellen Wetters (Temperatur, Luftfeuchtigkeit, etc.) abgeschätzt und bei zu geringer Entnahme auf etwaige Probleme (Ventil zu, Tränke verstopft, Tränke hat Kontakt mit elektrischem Weidezaun etc.) geschlossen werden kann.
| Verbesserte Rechtssicherheit: | 📈 |
| Entbürokratisierung: | 📈📈 |
| Beitrag zur digitalen Transformation: | 📈📈📈 |
| Vereinfachtes Datenmanagement: | 📈📈📈 |
| Einsparung Betriebsmittel: | 📈 |
| Einsparung Arbeitszeit: | 📈📈📈 |
| Bessere betriebliche Planungssicherheit: | 📈📈📈 |
| Mehrertrag/ höhere Leistung: | 📈📈 |
| Entscheidungs-Unterstützung: | 📈📈📈 |
| Steigerung Ressourceneffizienz: | 📈 |
| Geringere Bodenverdichtung/ Positive Wirkung auf das Tierwohl: | 📈📈 |
| Steigerung Biodiversität: | kein Zusatznutzen |
| Emissionsminderung: | 📈 |
| Erhöhung Attraktivität des Arbeitsplatzes: | 📈📈 |
| Arbeitserleichterung: | 📈📈 |
| Beitrag zur Entwicklung des ländlichen Raumes: | 📈📈 |
| Verbesserung Arbeitssicherheit: | 📈📈 |
| Verbessertes Image: | 📈 |
Produktionsbereich:
Produktionsrichtung:
Arbeitsbereich:
Einsatzhäufigkeit:
Kompatibilität:
Kosten
Aufwand
Testumgebung:
| Name | Institution | e-Mail Adresse |
|---|---|---|
| Dr. Armin Geisinger | LTZ Augustenberg | digitalisierung@ltz.bwl.de |
| Dr. Martin Weis | LTZ Augustenberg | digitalisierung@ltz.bwl.de |