Öltank-Füllstandssensor

Hallo zusammen,

ich habe bereits die bestehenden Threads zu diesem Thema im Forum gelesen, bin aber nicht fündig geworden. Wie die Überschrift schon sagt, suche ich nach einer kostengünstigen Lösung, um meinen Heizöltank bzw. genauer: dessen Füllstand zu überwachen.

Jetzt gibt es ja schon Vorschläge HC-SR04 und einen esp8266 oder Tankinhaltsanzeiger - TECSON (letzterer nicht wirklich kostengünstig), aber inzwischen gibt es wohl (?) auch bezahlbare Alternativen bei AliExpress, z.B. dieses hier

Hat jemand damit Erfahrung? Es wird hier zumindest die Stromsteckervariante abgefragt (US AC, EU AC, UK AC etc.), aber nicht leider nicht die Gewindegröße. Bin für jeden Erfahrungsbericht dankbar…

Hei, ich lese meinen Ölstand mittels des HC SR04 und eines esp 32 ab. Hab das allerdings in Homeassistant noch nicht umgesetzt, da ich gerade von IO Broker umsteige und mich echt schwertue mit den Entitäten und den Geräten usw. Ich werd grad bekloppt mit der Cloudflare Integration. :smiley:

Ich hab den Oilfox. Nicht kostengünstig, funktioniert aber einwandfrei.

Kann ich bestätigen, meiner ist schon 6 Jahre alt, habe damals nur 80 Euro dafür Bezahlt, vor einem Jahr musste ich mal die Batterie auswechseln, sonst nichts.
Die Abweichung würde ich mit max. 2% Angeben.

Ich hab das Script mal probiert.
Es wird mir “Nicht verfügbar” angezeigt.

Kann mir jemand sagen warum? Und wo der Fehler sein kann?

template:
  - sensor:
      - name: "Ölstand T1"
        unique_id: "oelstand_t1"
        unit_of_measurement: "L"
        state: >
          {% set distance = states('sensor.tasmota_olstand_t1_sr04_distance') | float(999) %}

          {% set table = {
            0: 0,
            10: 42,
            20: 84,
            30: 140,
            40: 199,
            50: 260,
            60: 321,
            70: 384,
            80: 447,
            90: 510,
            100: 573,
            110: 634,
            120: 695,
            130: 748
          } %}

          {% set keys = table.keys() | list | sort %}

          {% set below = (keys | select('<=', distance) | list | max(default=keys[0])) %}
          {% set above = (keys | select('>=', distance) | list | min(default=keys[-1])) %}

          {% if above == below %}
            {{ table[above] }}
          {% else %}
            {% set liter_below = table[below] %}
            {% set liter_above = table[above] %}
            {% set interpolated = liter_below + (distance - below) * (liter_above - liter_below) / (above - below) %}
            {{ interpolated | round(1) }}
          {% endif %}

Hast du mit einer einfachen Messung (einfach Sensorwert abfragen) geschaut, ob es generell funktioniert?

Ja, die Ausgabe in cm funktioniert

Ich find’s nicht so nett, wenn ein Thread gekapert wird. Die ursprüngliche Frage ging um Hardware-Empfehlungen bzw. -Erfahrungen.

Wenn Ihr Fragen zu Euren Skripten habt, erstellt doch selbst einen neuen Thread, könnt auch gerne darauf verweisen, um Mitleser hier darauf aufmerksam zu machen, aber bitte nicht einfach das Thema kapern.

@Snipermae damit beschäftige ich mich gerade auch, Problem ist nur, daß der bisherige Füllstandsanzeiger schwimmerbasiert ist und das Loch dafür ca. 14 cm vom Tankrand entfernt ist. (Geschweißter Stahltank, rechteckig, 8500L).
Gibt es da nicht Fehlmessungen, wenn der Pegel zu tief fällt und dann Reflektionen von der Wand kommen?

@arne75 und @anon79384845 Vielen Dank, den Oilfox hatte ich auch gefunden, jedoch ab 200€ aufwärts. Das erscheint mir für einen (!) Meßwert dann doch etwas ambitioniert, zumal man sich das mit einem Arduino-Board für 30 € auch selbst zusammenbasteln kann.

Allein - für’s Basteln fehlt mir meist die Zeit, auch wenn es reizvoll ist. Daher ja die Frage nach Erfahrungen nach out-of-the-box Chinaware.

1 „Gefällt mir“

Ich hab noch ca. 500L in dem Tank (1500L) und bisher keine Fehlmessungen durch Wände.


Also nein, Erfahrung mit Chinaware nicht.
In den Rohren steckt ein ESP8266 mit JSN-SR04T.
Kosten waren ca. 40€, habe bei den Rohren darauf geachtet, dass es PVC-U ist (Ölfest).

Auf jeden fall, die 200 Euro würde ich auch nicht bezahlen, aber vor 6 Jahren habe ich den im Angebot für 80 Euro bekommen, das ging grade noch so :slight_smile:

Moin,
Nach meinen Recherchen müsste der Anschluß von dem Teil von Aliexpress M72 sein. Ich hab’ so ein Teil bestellt, ist aber noch nicht geliefert worden.
Wenn es da ist kann ich Bescheid geben, ob das stimmt.

Gruß
Ikke

Könntest Du mir hierzu mal das Yaml schicken?
Dann könnte ich es mit meinem vergleichen

Inzwischen funktioniert es bei mir auch (noch auf der grünen Spielwiese, eingebaut ist der Sensor noch nicht im Tank, aber Test-Meßwerte kommen schonmal korrekt).
Danke an alle für die Tips bzgl. der Hardware, letztlich ist es doch ein ESP32 Board geworden mit einem JSN-SR04T Ultraschall-Modul. Kostenpunkt für den ESP, das US-Modul, ein Breadboard und einen Plastikstopfen (der dann auf den Tank geschraubt wird, wo jetzt noch ein Füllstandsanzeiger mit Schwimmer ist) ca. 20 Euronen. Den Plastikstopfen muß ich noch durchbohren, da kommt dann der Sensor rein. Werd’s dann wohl mit Heißkleber oder Silikon abdichten.

Hier der Code:

esphome:
  name: heizoeltank-sensor
  friendly_name: Heizoeltank-Sensor

esp32:
  board: esp32dev
  framework:
    type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "######################"

ota:
  - platform: esphome
    password: "######################"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Heizoeltank-Sensor"
    password: "######################"

captive_portal:

sensor:
  - platform: ultrasonic
    name: "Heizölpegel <=> Sensorabstand"
    trigger_pin: GPIO26
    echo_pin: GPIO32   # Anderer GPIO statt 12
    update_interval: 5s
    accuracy_decimals: 2
    id: distance_sensor
    timeout: 4m
    pulse_time: 10us
    filters:
      - lambda: |-
          if (x > 400.0)
            return NAN;
          else
            return x;

  - platform: template
    name: "Heizöltank Füllhöhe"
    unit_of_measurement: "cm"
    icon: "mdi:arrow-up-down"
    accuracy_decimals: 1
    update_interval: 5s
    lambda: |-
      const float tank_height_m = 1.40;
      float distance = id(distance_sensor).state;
      if (distance < 0.01 || distance > tank_height_m) {
        return NAN;
      }
      float fill_height = tank_height_m - distance;
      return fill_height * 100.0;  // in Zentimeter

  - platform: template
    name: "Heizöltank Füllstand"
    id: fuel_level_liters
    unit_of_measurement: "L"
    icon: "mdi:oil"
    accuracy_decimals: 0
    update_interval: 5s
    lambda: |-
      const float tank_height_m = 1.40; # Hier Werte entspr. anpassen
      const float tank_volume_l = 8400.0; # Hier Werte entspr. anpassen
      float distance = id(distance_sensor).state;
      if (distance < 0.01 || distance > tank_height_m) {
        return NAN;
      }
      float fill_height = tank_height_m - distance;
      float fill_ratio = fill_height / tank_height_m;
      return tank_volume_l * fill_ratio;

  - platform: template
    name: "Heizöltank Füllstand (%)"
    unit_of_measurement: "%"
    icon: "mdi:oil"
    accuracy_decimals: 1
    update_interval: 5s
    lambda: |-
      const float tank_height_m = 1.40;
      float distance = id(distance_sensor).state;
      if (distance < 0.01 || distance > tank_height_m) {
        return NAN;
      }
      float fill_height = tank_height_m - distance;
      return (fill_height / tank_height_m) * 100.0;

Also ich hab auch den Oilfox und bin super zufrieden. Zum Preis: Ich und etliche Bekannten haben den für ca. 40-50 gekauft. 200€ ist der Listenpreis. Du hast doch sicher einen Öllieferanten, die verkaufen den normalerweise zu einem subventioniertem Preis :slight_smile:

Nun, ich habe wechselnde Lieferanten, da ich Vergleichsportale nutze, wenn’s mal wieder Zeit zum Nachfüllen ist. Ist aber auch egal, die selbstgebaute Lösung mit dem ESP funktioniert wunderbar, ich habe mal wieder was gelernt (frei nach Lothar Matthäus - “Again what learned!”) :slight_smile:
Jetzt ist also auch so ein ESP/Arduino kein Hexenwerk mehr für mich.

Inzwischen hab’ ich auch noch etwas daran herumgefeilt, weil die Meßwerte gelegentlich Ausreißer haben, das kann man mit HA ganz elegant glätten. Falls Interesse besteht, kann ich den Code dafür gerne teilen, inkl. eines Switches für die Lieferung (denn da will man ja normalerweise keine Glättung, sondern sehen, wie der Pegel kontinuierlich im Sekundentakt steigt).
Schönen Abend allerseits!

Das würde mich auf jeden Fall interessieren, da ich auch teils Ausreißer habe.

Sorry, ich hab nicht mitbekommen, dass du mich erwähnt hast. Ich hab 2 kleine Kunststofftanks, je 3000 L, da ist der Einfüllstutzen oben auch ca. 20 cm vom Rand entfernt und mit dem Plastikdeckel vom Stutzen war es kein Problem den HC einzubauen. Ich vermute aber auch so wie du, dass es mit dem Stahltank und dem HC durch die Reflektionen zu Problemen kommen wird.

Hallo @Unperson,

um zu der ursprünglichen Frage noch beizutragen: Ich verwende den MEX von heizoel24.de in der WLAN-Ausführung. Läuft schon seit über drei Jahren mit der ersten Batterie, lässt sich appgestützt gut kalibrieren. Eine HA-Integration gibts dazu auch, die ebenfalls komplett reibungslos läuft.

Einziger theoretischer Nachteil: läuft nicht lokal, sondern nur cloudbasiert. Das Verfahren nutzt die Heizoel24-API und man teilt deshalb seinen Ölstand mit dem Heizoel24-Portal.