Täglichen Ölverbrauch von Ölfox anzeigen lassen

Hallo

Ich bräuchte mal wieder Hilfe. Ich komm nicht drauf.

Ich habe einen Öltank und in dem steckt ein Ölfox Sensor.

Der misst jeden Tag um 15 Uhr den Ölstand.

Z.b. war gestern der Ölstand um 15 Uhr 5610 Liter

Heute um 15 Uhr waren es 5599

Ich habe also 11 Liter verbraucht innerhalb 24h.

Soweit so gut.

Nun möchte ich aber eine Kachel haben auf der mir jeden Tag die verbrauchten Liter angezeigt werden.

Also in diesem fall 11 Liter. Bis sich wieder was ändert. Also morgen um 15 Uhr. Dann soll wieder da stehen was verbraucht wurde

Wie kann ich das machen?

Noch besser wäre eine statistische Anzeige über einen Monat z.b. wo jeder Tag mit den verbrauchten Litern angezeigt wird.

Ich hab es mit der Riemann Integral links versucht aber es will nicht klappen. Könnt ihr mir helfen?

Nimm die Statistikdiagramm Karte. Statistik → Änderung.

Gruß Osorkon

Hab ich auch schon versucht. Aber dann zeigt er mir auch nur die gesamtliterzahl im Tank an.

Änderung kann ich bei der Entität nicht ankreuzen

Mit Anzuzeigende Statistiken → Änderung?

Zeige mal den Verlauf des Sensors.

Gruß Osorkon

Änderung kann ich nicht auswählen bei diesem Sensor. Auf Facebook wurde mir link Riemann empfohlen aber das klappt auch nicht.

Weil der Sensor die falsche State class hat. Diese musst auf total ändern.

Hast du den Sensor selbst erstellt? Dann eben die richtige State Class definieren

Kommt der Sensor fertig von einer Integration, dann über customize.

Wie das geht, sehe mal hier:

Gruß Osorkon

Ohje . Da bin ich raus. da kenn ich mich gar nicht aus.

Der Sensor kommt so von dem Ölfox Gerät. Dank dir trotzdem. Dann muss ich es halt so lassen.

Gib mir mal die Entität des Sensors in text form.

Also sensor.xyz dann erstelle ich Dir die Einträge die in die configuration.yaml rein gehören.

Und den Inhalt Deiner configuration.yaml als code formatiert.

Gruß Osorkon

danke das ist sehr nett von dir. ich versuch das mal

hier meine configuration yaml
noch nie angeschaut die datei

 # Loads default set of integrations. Do not remove.

 default_config:
 # Load frontend themes from the themes folder
 frontend:
 themes: !include_dir_merge_named themes
 automation: !include automations.yaml
 script: !include scripts.yaml
 scene: !include scenes.yaml

ich weiß nicht wie man das sonst hier angeben kann
es gibt zwei entitäten.
eine zählt die gesamtliter zahl im tank runter
also 5699, am nächsten tag 5692 usw

OilFox-ON1171495151-fillLevelQuantity

die andere zählt täglich den verbauch nach oben .
also 360liter. nächster tag 367liter usw

OilFox-ON1171495151-usageCounterQuantity

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)

Füge die letzen zwei Zeilen in der configuration.yaml ein

# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
homeassistant:
  customize: !include customize.yaml

Erstelle im gleichen Ordner, wo sich auch die configuration.yaml befindet die Datei

customize.yaml

Und füge folgenden Inhalt ein:

sensor.meine_sensor_entity:
  state_class: total

Bei OilFox-ON1171495151-fillLevelQuantity bzw. OilFox-ON1171495151-usageCounterQuantity handelt es sich nicht um die Sensor Entity-ID, es ist der Sonsor Name!

Ersetze also sensor.meine_sensor_entity durch die Sensor Entity des Sensors für den aktuellen Füllstand.

Wenn du die Änderung in der configuration.yaml sowie in der customize.yaml durchgeführt hast. Prüfe zuerst die Konfiguration.

Entwicklungswerkzeuge → YAML → Konfiguration prüfen.

Wenn die Prüfung keinen Fehler hat, kannst Du Home Assistant Neustarten.

Gruß Osorkon

vielen vielen dank. sorry für die späte antwort. ich bin eben erst nach hause gekommen.

ich werde das die tage mal in ruhe angehen.

wäre schade, wenn ich etwas zerstöre

Wenn ich das so ändere dann zeigt mir der Sensor aber nicht mehr die absteigende literzahl an? Also ich seh dann nicht mehr wieviel Öl noch im Tank ist?

Mach mal die Änderung Rückgängig.

Und Poste mal aus den Entwicklungswerkzeugen → Zustände

Die Details des Sensors

BSP:

Wichtig sind die Zustands-Attribute

Wahrscheinlich ist die State Class “total” nicht mit der vorhandenen Device Class kompatibel, so das die Device Class ebenfalls geändert werden muss.

Gruß Osorkon

ich hab die änderung noch nicht gemacht. hab nur im vorein gefragt, ob ich dann noch die literzahl im tank sehe, wenn ich das ändere.

ich glaub das ist alles ne nummer zu groß für mich. ich rechne halt weiter im kopf was ich am tag brauch.

Ich habe auch einen Oilfox und habe mich in den letzten Wochen mit derselben Aufgabe beschäftigt. Mit Hilfe von ChatGPT habe ich eine Lösung entwickelt, die bei mir gut funktioniert.

Dafür nutze ich zwei Helfer vom Typ Zahlenwert-Eingabe (input_number). Diese dienen dazu die Messwerte zu einem bestimmten Zeitpunkt auszulesen und zu speichern.

Zusätzlich habe ich eine Automatisierung, die täglich um 9:00 Uhr läuft:

  • Sie speichert den letzten Füllstand des Heizöltanks (sensor.oilfox_filllevelquantity),

  • liest den aktuellen Messwert aus

  • und berechnet dann die Differenz.

Hier ist die YAML dazu:

helper/input_numbers.yaml

oil_consumption_yesterday:
  name: Öllverbrauch gestern
  min: 0
  max: 3000
  step: 1
  mode: box
  unit_of_measurement: L
  
oil_filllevel_last:
  name: Füllstand Heizöl bei letzter Oilfox-Messung
  min: 0
  max: 3000
  step: 1
  mode: box
  unit_of_measurement: L

automations/automations_heating.yaml

- id: 'automation_heating_0001'
  alias: 'Heizölverbrauch berechnen'
  description: Berechnet den Heizölverbrauch seit der letzten Messung und speichert den vorherigen Füllstand.
  mode: single

  trigger:

    platform: time
    at: "09:00:00"

  condition:

  - condition: template
    value_template: >
      {{ states('sensor.oilfox_filllevelquantity') not in ['unknown','unavailable',''] and
         states('input_number.oil_filllevel_last') not in ['unknown','unavailable',''] }}

  actions:

    - variables:
        today: "{{ states('sensor.oilfox_filllevelquantity') | float }}"
        yesterday: "{{ states('input_number.oil_filllevel_last') | float }}"

    - service: input_number.set_value
      target:
        entity_id: input_number.oil_consumption_yesterday
      data:
        value: >
          {% if yesterday > 0 and today > 0 and today <= yesterday %}
            {{ (yesterday - today) | round(1) }}
          {% else %}
            0
          {% endif %}
          
    - service: input_number.set_value
      target:
        entity_id: input_number.oil_filllevel_last
      data:
        value: "{{ today }}"

Auf meinem Dashboard habe ich dann input_number.oil_consumption_yesterday grafisch so eingebunden:

1 „Gefällt mir“