Füllstand Zisterne

Moin zusammen!

Ich habe den Beitrag hier lange verfolgt und habe mithilfe eines SR04T eine Füllstandanzeige für mein Heizöltank gebaut. Eingebunden mit einem D1 mini über espHome.

Das ganze läuft nun seit 3 Wochen super stabil und zuverlässig. Das einzige Problem was ich noch habe ist das der Wert um 1 Liter schwankt:

Hat jemand eine Idee mit welchem Filter ich das lösen kann? Ich steige auf der espHome Seite da nicht ganz durch.

Ich habe noch 2 Anregungen zu dem Thema
einmal mit optischem Sensor.
Und einmal mit bereits erwähnten Drucksensor.

Ich würde das für mein Heizöltank gern nachrüsten und bin da noch auf der Suche nach einer guten Lösung.

Ich habe meine Zisterne mit einem Drucksensor versehen der über einen ESP läuft.

Dadurch habe ich auch erst festgestellt das meine Zisterne undicht war :see_no_evil:

Nach dem abdichten zeigt auch der Sensor an dass sie Dicht und voll ist :joy:

In diesem Artikel ist beschrieben wie er gebaut wird.

Eine visualisierung habe ich mit einfärben des Icons gelöst. (Grün gelb rot)

Und eine automation geschrieben die ab einem gewissen Wasserstand die Pumpe abschaltet und bei genügend Wasser wieder anschaltet. (Bei Interesse kann ich die noch posten).

Ich nutze tatsächlich diese Ultraschallsensoren hier ESP Ultraschall und das läuft bei mir perfekt! Bisher ohne Probleme. Den Füllstand und die Füllstandshöhe lasse ich mir dann grafisch auf dem Dashboard darstellen welche wiederrum in die Bewässerungsansicht vertieft.
1

Hallo,
für meinen Bedarf habe ich es mit den Pegel-Schaltern lösen können.
Ich benutze den AZ-Delivery NodeMCU_LUA_Amica_V2_und habe die Pins GPIO1, D5, D6 und D7 belegt. Mir reicht die grobe Einteilung, 25,50,75 und 100%. Nehme aber die Anregungen von Euch mit.

Hi Leute,

Ich finde Liter angenehmer zu ablesen.
Hier mal mein Beispiel.

Umsetzung mittels Shelly-UNI und Drucksensor

Zisterne: 8500 L

1 „Gefällt mir“

Hi - Ich würde gerne die Umsetzung mit dem Shelly-UNI sehen.
Kannst Du das Teilen?
Ich hoffe auf eine “einfachere” Umsetzung.
Danke

Hi, wie hast du das ganze umgesetzt? Mich interessiert die Umsetzung in der Shelly App und die Implementierung in HA.

Ich habe die Kombi mit dem Drucksensor / Shelly-UNI nach dieser Anleitung gebaut:

Hier ist der Schaltplan:

Dann habe ich einen Filter angelegt, um die Schwankungen bei der Messung auszugleichen.
sensor.regentonne_adc ist die Entität des Shelly UNI

sensor:
  # ------- Filter zur Glättung der Werte Regentonne -------  
  # https://www.home-assistant.io/integrations/filter/
  - platform: filter
    unique_id: regentonne_adc_filter
    name: "Regentonne adc gefiltert"
    entity_id: sensor.regentonne_adc
    filters:
    - filter: lowpass
      time_constant: 20
      precision: 2

image

Jetzt noch die Spannung in einen Füllstand umrechnen. Die entsprechenden Spannungswerte muss man einmal mit leerer und einmal mit voller Tonne ermitteln. Die Berechnung erfolgt über einen Helfer/Templatesensor:

{% set SPLEER = 1.92 %} {# Spannung Tonne leer #}
{% set SPVOLL = 8.34 - SPLEER %} {# Spannung Tonne voll #}
{% set SP     = states('sensor.regentonne_adc_gefiltert') | float %}
{% set FSNEU  = ((SP - SPLEER) * (100 / SPVOLL)) | round %}
{{ FSNEU }}

Hallo RKT 62,
ich habe ein Shelly Plus Uni als Voltmeter konfiguriert.
Schaltplan analog dem oben. Mit Drucksensor 4-20mA (2 Meter Sensor) und Widerstand 330 Ohm.
Bei 100% Zisterne habe ich 4,9V, leer 1,1V.

sensor:
  # ------- Filter zur Glättung der Werte Zisterne -------  
  # https://www.home-assistant.io/integrations/filter/
  - platform: filter
    unique_id: zisterne_adc_filter
    name: "zisterne adc gefiltert"
    entity_id: sensor.shellyplusuni_a0a3b3dc8900_voltmeter
    filters:
    - filter: lowpass
      time_constant: 20
      precision: 2
{% set SPLEER = 4.9 %} {# Spannung Zisterne leer #}
{% set SPVOLL = 1.1 - SPLEER %} {# Spannung Zisterne voll #}
{% set SP     = states('sensor.zisterne_adc_gefiltert') | float %}
{% set FSNEU  = ((SP - SPLEER) * (100 / SPVOLL)) | round %}
{{ FSNEU }}

In der Config.yaml kommt Fehler…

missed comma between flow collection entries (115:2)

 112 |     - filter: lowpass
 113 |       time_constant: 20
 114 |       precision: 2
 115 | {% set SPLEER = 4.9 %} {# Spannu ...
--------^
 116 | {% set SPVOLL = 1.1 - SPLEER %}  ...
 117 | {% set SP     = states('sensor.z ...

Gruß Guckmaster

:crayon:by HarryP: Codezeilen formatiert (bitte immer in </> einbinden)

Mach doch mal die “{” vor dem # weg:
image

dann sollte es passen.

1 „Gefällt mir“

Nur der obere Schnipsel kommt in die configuration.yaml.
Der untere Schnipsel gehört in einen Helfer Typ Template.
Abgesehen davon hast Du auch die Leer- und die Voll-Spannung verwechselt. Voll muss größer sein als Leer.

1 „Gefällt mir“

Danke,
die Leer- und die Voll-Spannung habe ich getauscht.
Den Helfer Typ Template muss ich noch erstellen.
Das ganze mache ich unter Einstellungen / Helfer / Helfer erstellen /
Es wird ein normaler Sensor, kein Binärer ?
Entitäts-ID: sensor.sensor_zisterne_adc

Ich bin mir unsicher, ob ich die korrekten ID´s vergeben habe…

Der Shelly Sesorname ist Füllstand Zisterne
Entitäts-ID: sensor.shellyplusuni_a0a3b3dc8900_voltmeter

Der Codeschnipsel in der config.yaml

sensor:

------- Filter zur Glättung der Werte Zisterne -------

Filter - Home Assistant

  • platform: filter
    unique_id: zisterne_adc_filter
    name: “zisterne adc gefiltert”
    entity_id: sensor.shellyplusuni_a0a3b3dc8900_voltmeter
    filters:
    • filter: lowpass
      time_constant: 20
      precision: 2

Der Codeschnipsel für den Helfer…
{% set SPLEER = 1.8 %} {# Spannung Zisterne leer #}
{% set SPVOLL = 6.6 - SPLEER %} {# Spannung Zisterne voll #}
{% set SP = states(‘sensor.zisterne_adc_gefiltert’) | float %}
{% set FSNEU = ((SP - SPLEER) * (100 / SPVOLL)) | round %}
{{ FSNEU }}

Gruß Guckmaster

Hi zusammen,

hier ist mal mein sensor…

sensor:
  - name: "Zisterne"
    unit_of_measurement: "L"
    state: >
      {% set voltage = states('sensor.zisterne_adc') | float(0) %}
      {{ ((voltage / 2.65) * 8000) | round(0) }}

Ich hab meine meiner Zisterne, 1,9V bei 0 L und 4,65V bei 8000 L, in der Uni hab ich den Offset von -1,9V gesetzt.

Hi

Ich hab das Ganze auch verbaut aber den Sensor in der 0-10V Variante genommen.

Gruß Thorsten

Bezüglich Glättung kann man auch den statistics sensor verwenden:

- platform: statistics
    name: "Zisterne_Liter"
    entity_id: sensor.zisterneliter
    state_characteristic: median
    max_age:
      minutes: 10
    precision: 2

Bei entity_id gibst du den namen deines adc Sensors an. ZBsp. sensor.zisterne_adc

zum glätten hab ich einen Filter verwendet

# Filter zum glätten der Zisternenmessung https://www.home-assistant.io/integrations/filter
sensor:
  - platform: filter
    name: "sensor.zisterne.mittelwert" #Name der ausgegebenen Entität
    entity_id: sensor.zisterne_shellyuni_adc #Name der Quell-Entität
    scan_interval: "00:00:01"  # Hier wird die Abfrage auf einmal pro Sekunde eingestellt
    filters:
      - filter: time_simple_moving_average # Art des Filter ,lowpass, outlier, range, und throttletime_throttletime_simple_moving_average
        window_size: "00:02:00"  #Zeitfenster, in dem Fall 2 min

An dem Video hätte ich auch Interesse :slight_smile:

Habt ihr diesen Betrag gesehen?

Ist bei mir schon seit ein paar Wochen in Betrieb und funktioniert bestens.