Füllstandsmessung

Jetzt kommen wir zu einem Bereich der am meisten Zeit gekostet hast, und der im Laufe der Projekte immer wieder Änderungen widerfahren hat, nämlich der Messung von Flüssigkeiten.

 

Es gibt vier verschiedene Möglichkeiten  zu messen wieviel Flüssigkeit in einem Tank ist.

 

Druckmessung

 

Beginnen wir mal mit der Möglichkeit, die ich noch nicht durch habe, nämlich der Druckmessung. Wie wir ja im Physik Unterricht gelernt haben hat eine 1 Meter hohe Wassersäule einen Druck von 0,1 Bar. Es gibt also Druckmesser, die dies Messen und in einen Füllstand umrechnen. Wie gesagt, ich habe bei meinen Nachforschungen davon gelesen, aber es noch nicht selber ausprobiert. Wer damit Erfahrungen gemacht hat freue ich mich auf Kommentare

 

Ultraschall

 

Eine oft genutzte Variante ist das Ultraschall. Das Messprinzip ist, dass ein Echo gesendet wird, welches auf einer Wasseroberfläche reflektiert wird. Das Rück Echo (ähnlich wie bei einer Fledermaus) wird gemessen und je länger das Echo braucht, desto weiter entfernt ist die Wasseroberfläche, desto leerer ist der Tank.

Soweit die Theorie nun zur Praxis.

begonnen hab ich mit den Dingern. (Kostenpunkt 50 Cent)

Erstes Anwendungsgebiet war eine Füllstandsmessung meines Filterteichs, der aufgrund der Umlauf Filterung (Verdunstung, Verlust) gerne mal leer lief.

Also begann ich erst mal mit einer Labor Umgebung um den Kram zu testen.

ein Problem ist die Reflektion des Signals an Wänden aber in meinem Rohr ging das.

 

Das Rohr deswegen, weil hereinwachsende Pflanzen das Echo verfälschen.

 

Die Formel berechnet, bei wieviel cm leer ist und bei wieviel voll

  - platform: ultrasonic
    id: wassserlevel_filterteich
    trigger_pin: D6
    echo_pin: D7
    name: "Wasserstand Teich"
    update_interval: 20s
    unit_of_measurement: "%"
    icon: "mdi:water-percent"
    accuracy_decimals: 2
    filters:
      - filter_out: nan
      - lambda: return (x-0.4)*(100/-0.33);

lineare Pegelmessung

 

Irgendwann war das Ding kaputt und lief auch instabil. Also weg mit dem neumodischen Kram und hin zum mechanischen Messen so wie ich es auf meinem Bötchen gewohnt bin.

Dort wird nämlich mittels dieser Pegelstangen gemessen. Der Widerstand ändert sich wenn der Schwimmer sich auf der Achse bewegt. Sie gibt es beispielsweise im Marine Bedarf (aber dann mit maritimer Kommaverschiebung) oder natürlich bei Aliexpress z.b. hier Je länger desto teuerer Kostenpunkt 10  € bis 30  €

 

Dieses Ding hab ich jetzt 2 Jahre ohne Probleme im Einsatz da absolut wasserdicht.

 

Wie man oben im Bild sehen kann hängt es an einem Wemos D1 mini mit externe Antenne. Hier die Konfiguration:

 


sensor:
  - platform: adc
    pin: A0
    name: "Filterteich Level"
    update_interval: 30s
    unit_of_measurement: "%"
    accuracy_decimals: 0
    icon: "mdi:water-percent"
    filters:
      - calibrate_linear:
         - 0.0 -> 0.0
         - 0.18 -> 100.0

 

ui-lovelance.yaml

 


      - type: gauge
        name: Wasserstand Filterteich      
        unit: '%'
        entity: sensor.filterteich_level
        severity:
          green: 80
          yellow: 50
          red: 20 

      - type: history-graph
        title: 'Wasserstand Filterteich'
        entities:
         - sensor.filterteich_level
         - entity: sensor.filterteich_level

Sinkt der Wasserstand wird aus der Regenwasser Zisterne automatisch nachgefüllt. Hier die Automatisierung dazu:

 

#Filterteich füllen
   - alias: "Regenwasserpumpe ein bei 67 Prozent"  
    trigger:
        platform: numeric_state
        entity_id: sensor.filterteich_level
        below: 67
    action:
      - service: switch.turn_on
        entity_id: switch.pumpe_filterteich

  - alias: "Regenwasserpumpe aus bei 94 Prozent"   
    trigger:
        platform: numeric_state
        entity_id: sensor.filterteich_level
        above: 94
    action:
      - service: switch.turn_off
        entity_id: switch.pumpe_filterteich

Da wie bei allen Regelungen immer ein Versatz (Delay) drin ist stoppe ich die Pumpe bereits bei 94 % 

 

Pegelschalter

 

Dann war da noch der Regenwassertank, Hier habe ich zwei IBC Container verbuddelt. Ultraschall hat nicht geklappt weil die Wände das Signal reflektiert haben und  lineare Pegelmesser in der Variante 1m waren mir zu teuer. Also kam eine weitere Variante dazu, die Pegelschalter.

Dazu kommen diese wasserdichten Pegelschalter zum Einsatz, die für ca 2€ pro Stück zu haben sind.

Der Schwimmer drückt einen Reed Kontakt nach oben und der Schalter schaltet.

 

Geschaltet wird PIN gegen Masse. (Pullup) Es liegt also keine Spannung an den Schaltern. Die Schalter selber sind wasserdicht, aber nicht die Zuleitung, die gerade bei den unteren Schaltern länger im Wasser liegen kann, daher auf gute Isolierung achten, sonst gibt es Fehlmessungen (Wasser ist nämlich auch Masse)

 

So sieht meine Pegelmessung in der Wasserzisterne aus. Hier benötige ich nicht den genauen Wert sondern mir reichen diese Schritte. Die Schalter sind an einem ESP angebunden:

 


binary_sensor:
  - platform: status
    name: "ESP-Tank System Status"
    id: esptankstatus
    
  - platform: gpio
    name: tank0
    pin:
      number: D5
      mode: INPUT_PULLUP   
      inverted: true

  - platform: gpio
    name: tank25
    pin:
      number: D6
      mode: INPUT_PULLUP  
      inverted: true
    
  - platform: gpio
    name: tank50
    pin:
      number: D7
      mode: INPUT_PULLUP   
      inverted: true

  - platform: gpio
    name: tank75
    pin:
      number: GPIO1
      mode: INPUT_PULLUP   
      inverted: true

  - platform: gpio
    name: tank100
    pin:
      number: GPIO3
      mode: INPUT_PULLUP    
      inverted: true

Damit wir einen Sensor bekommen müssen wir in der sensor.yaml ein wenig tricksen. Bitte beachtet auch, dass der 0% Sensor anders als alle anderen 0% hat, wenn er geöffnet ist (alle anderen erreichen ihren Wert, wenn sie geschlossen sind)

  - platform: template
    sensors:
      tank_level:
        friendly_name: Wassertank level
        value_template: >
          {% if is_state('binary_sensor.tank100' , 'on' ) %} 100
          {% elif is_state('binary_sensor.tank75' , 'on' ) %} 75
          {% elif is_state('binary_sensor.tank50' , 'on' ) %} 50
          {% elif is_state('binary_sensor.tank25' , 'on' ) %} 25
          {% elif is_state('binary_sensor.tank0' , 'on' ) %} 10
          {% else %} 0% {% endif %}

Sumpfpumpen Steuerung

 

es gibt noch eine weitere Anwendung, bei denen die Pegelschalter zum Einsatz kommen, nämlich die Sumpfpumpe. Unser Keller säuft bei Starkregen gerne mal ab, daher gibt es im tiefsten Schacht eine Tauchpumpe. Hier ist eine Hysterese gefragt. Also, die Pumpe soll anspringen wenn Max erreicht ist, und ausgehen wenn Min erreicht ist. Damit das klappt werden die Messwerte teils invertiert.

Diese Automation ist direkt auf dem ESP gespeichert denn es ist mir zu heiß dass die nicht funktioniert, wenn keine Verbindung zum HA Server besteht (auch hier wieder über den oben beschriebenen Port Extender)

 

binary_sensor:
  - platform: gpio
    name: "water_min"
    id: "water_min"
    pin:
      pcf8574: pcf8574_hub
      # Use pin number 0
      number: 0
      # One of INPUT, INPUT_PULLUP or OUTPUT
      mode: INPUT
      inverted: false
    on_state: 
       then:
        - switch.turn_off: keller_sumpfpumpe 

  - platform: gpio
    name: "water_max"
    id: "water_max"
    pin:
      pcf8574: pcf8574_hub
      # Use pin number 1
      number: 1
      # One of INPUT, INPUT_PULLUP or OUTPUT
      mode: INPUT
      inverted: true
    on_state: 
      then:
        - switch.turn_on: keller_sumpfpumpe 

 

 


Kommentare: 13
  • #13

    Dirk (Montag, 01 Januar 2024 19:21)

    Hallo Ingo, Kannst du kurz eine Skizze liefern, wie der Anschlussplan ist?
    VG Dirk

  • #12

    Alex (Mittwoch, 19 Juli 2023 23:51)

    Hallo Ingo,

    habe den D1 mittlerweile im HomeAssistant. Den linearen Pegelmesser muss ich dann an GPIO A0 und GND anschließen?

  • #11

    Ingo (Mittwoch, 05 Juli 2023 16:43)

    Hi Alex.
    Ha hat eigene Komponenten. Schau dir mal esphome an
    https://esphome.io/

  • #10

    Alex (Mittwoch, 05 Juli 2023 16:22)

    Hi,

    wie binde ich den WEMOS D1 Mini Pro in Home Assistant ein? Und wo schließe ich den Sensor für die lineare Pegelmessung am D1 an?

  • #9

    Patrick (Mittwoch, 02 November 2022 10:30)

    Da hat sich ein Fehler eingeschlichen;) 10 m ~ 1 bar // 1m ~0,1 bar

  • #8

    Tim (Dienstag, 23 August 2022 08:40)

    Hallo Ingo,
    wie hast du den Pegelmesser an den ESP angeschlossen? Hast du hiervon einen Schaltplan?
    Danke dir!

  • #7

    Ingo (Samstag, 22 Januar 2022 21:37)

    Den gibt's es so fertig.
    € 4,55 18%OFF | WEMOS D1 Mini Pro 4M 16M Bytes Externe Antenne Stecker NodeMCU Basierend ESP8266 ESP-8266EX CP2104 WIFI Entwicklung Bord micro
    https://a.aliexpress.com/_mstVbjm

  • #6

    WoWu (Samstag, 22 Januar 2022 21:01)

    Hi, Wie hast Du die externe Antenne mit dem D1mini verbunden und bringt es tatsächlichen Gewinn ?
    Wielen Dank, für eine kurze Antwort.
    Wolfgang

  • #5

    PM (Montag, 10 Mai 2021 11:51)

    Hallo Ingo, noch eine Frage zu den Pegelschaltern. "Die Schalter sind an einem ESP angebunden". Heißt das, du hast diese an z.B. einen D1 Mini angeschlossen, und diesen über ESP Home an home assistant angebunden?

  • #4

    Ingo (Montag, 12 April 2021 17:38)

    Das Problem ist weniger der Schalter als die Verlängerung der Zuleitung.
    Ich hab die mit Sikaflex eingegossen

  • #3

    Sebastian (Montag, 12 April 2021 17:20)

    Hallo Ingo,

    tolle Anleitung, vielen Dank fürs Teilen!

    Du schreibst: "Die Schalter selber sind wasserdicht, aber nicht die Zuleitung, die gerade bei den unteren Schaltern länger im Wasser liegen kann, daher auf gute Isolierung achten, sonst gibt es Fehlmessungen".

    Wie hast du das realisiert? An was hast du die Schalter befestigt und die Kabel nach oben geführt?

    Ich überlege mehrere Teile KG-Rohr zusammen zu setzen und an T-Stücken die Schalter horizontal anzubringen.

    Danke vorab und viele Grüße
    Sebastian

  • #2

    Ingo (Dienstag, 23 Februar 2021 11:54)

    ich hab meine von Aliexpress:
    https://www.aliexpress.com/item/33058665955.html?spm=a2g0s.9042311.0.0.27424c4dauBt5m

  • #1

    PM (Dienstag, 23 Februar 2021 08:59)

    Vielen Dank für den Beitrag!
    Ich werde es mal mit Pegelschaltern versuchen. Hättest du evtl. noch einen Link, wo du diese so günstig bekommen hast?