Probleme mit Heizöl Verbrauchsberechnung

Moin Zusammen,
ich habe wie im Titel schon erwähnt ein Problem mit Heizöl Verbrauchsberechnung.
HAOS läuft auf einem Proxmox Server in einer VM, die MariaDB läuft in einem LXC.
So weit so gut.
Ich habe mir mit Hilfe von ChatGPT und einem Tread von hier eine Heizölberechnung erstellt. Ich lasse mir den Täglichen Verbrauch (läuft ohne Problem) und den jährlichen Verbrauch (macht ärger) anzeigen.
Ich habe mir einen Helfer erstellt, der mir Anzeigt wann die Heizung läuft (über den Stromverbrauch).
Die Zeiten werden auf addiert und damit dann über den stündlichen Verbrauch der Heizung den Ölverbrauch berechnet.
Das Problem ist, jedes mal wenn ich HA neu Starte, ändert sich die jährlich Laufzeit auf ungefähr 65 Std und damit der Ölverbrauch auf unter 100L
Vielleicht hat ja jemand ne Idee, wäre echt schön.

    # Brenner
- platform: history_stats
  name: Heizung Brenner Laufzeit heute
  entity_id: input_boolean.heizung_lauft
  state: "on"
  start: "{{ now().replace(hour=0, minute=0, second=0).isoformat() }}"
  end: "{{ now().isoformat() }}"
 
- platform: history_stats
  name: Heizung Brenner Laufzeit gesamt
  entity_id: input_boolean.heizung_lauft
  state: "on"
  start: "{{ now().year | string ~ '-01-01T00:00:00' }}"
  end: "{{ now() }}"

# Ölverbrauch

- sensor:
  - name: "Ölverbrauch heute"
    unique_id: "olverbrauch_heute"
    unit_of_measurement: "l"
    device_class: "volume"
    state_class: "measurement"
    state: >
       {{ (float(states('sensor.heizung_brenner_laufzeit_heute'))) * 1.5141 | round(1) }}

  - name: "Ölverbrauch gesamt"
    unique_id: "olverbrauch_gesamt"
    unit_of_measurement: "l"
    device_class: "volume"
    state_class: "measurement"
    state: >
      {{ (float(states('sensor.heizung_brenner_laufzeit_gesamt'))) * 1.5141 | round(1) }}

Brenner Laufzeit Januar

Ölverbrauch Januar

Schau mal hier rein, mit der vorliegenden YAML Konfiguration läuft meine Heizung problemlos und liefert auch nach einem Neustart keine falschen Werte. Am Ende steht eine sehr gute YAML, die ich jetzt übernommen und an meine Sensoren angepasst habe.

https://community.simon42.com/t/aw-heizoelstand-in-home-assistant/34661/13

DAnke für deine Antwort, aber irgendwas stimmt mit deinem Link nicht,
ich lande hier :worried:

Neuer Versuch, habe es grad noch ausprobiert und sollte funktionieren.

https://community.simon42.com/t/aw-heizoelstand-in-home-assistant/34661/13

Falls das wieder nicht korrekt funktioniert, suche am besten nach " Heizölstand in Home Assistant" Am Ende des Beitrags ist die YAML, die ich übernommen habe.

1 „Gefällt mir“

Das mit dem link funktioniert irgendwie nicht.
Habe den Tread aber gefunden.
Du hast da ja einiges geschrieben.
Ist nur keine Yaml im Tread.
Jetzt bin ich verwirt.

Vlt. hilft ein Refresh der Seite, zur Sicherheit habe ich das File hier einmal reinkopiert.

################################################################################
# HEIZUNG ######################################################################
################################################################################

# Sensor Brenner einschalten für weitere Berechnungen
- platform: template
  sensors:
    oelheizung_brenner_status:
      unique_id: oelheizung_brenner_status
      friendly_name: Ölheizung Brenner-Status
      value_template: >-
        {% if float(states("sensor.heizung_power"), 0) == 0 %}
          AUS
        {% elif float(states("sensor.heizung_power"), 0) <= 30 %}
          Pumpenbetrieb
        {% elif float(states("sensor.heizung_power"),0) >= 100 %}
          AN
        {% else %}
          Pumpenbetrieb
        {% endif %}

- platform: template
  sensors:
    oelheizung_brenneraktiv:
      unique_id: oelheizung_brenneraktiv
      friendly_name: Ölheizung Brenner-Aktiv
      value_template: "{{ states('sensor.oelheizung_brenner_status') }}"

# Brennerlaufzeit pro Tag
- platform: history_stats
  name: oelheizung_brennerlaufzeit
  unique_id: oelheizung_brennerlaufzeit
  entity_id: sensor.oelheizung_brenner_status
  state: AN
  type: time
  start: "{{ now().replace(hour=0, minute=0, second=0) }}"
  end: "{{ now() }}"

################################################################################
# Sensoren Ölverbrauch##########################################################
################################################################################

- platform: template
  sensors:
    oelheizung_oeljahresverbrauch:
      unique_id: oelheizung_oeljahresverbrauch
      friendly_name: Ölheizung Öl-Jahresverbrauch
      unit_of_measurement: l
      value_template: >-
        {% set brennerlaufzeit = states('sensor.oelheizung_brennerlaufzeit_jahr') | float(0) %}
        {% set brennerdurchsatz = states('input_number.olheizung_brennerdurchsatz') | float(1.74) %}
        {{ (brennerlaufzeit * brennerdurchsatz) | round(2) }}

- platform: template
  sensors:
    oelheizung_oelmonatsverbrauch:
      unique_id: oelheizung_oelmonatsverbrauch
      friendly_name: Ölheizung Öl-Monatsverbrauch
      unit_of_measurement: l
      value_template: >-
        {% set brennerlaufzeit = states('sensor.oelheizung_brennerlaufzeit_monat') | float(0) %}
        {{ (brennerlaufzeit * 1.74) | round(2) }}

- platform: template
  sensors:
    oelheizung_oeltagesverbrauch:
      unique_id: oelheizung_oeltagesverbrauch
      friendly_name: Ölheizung Öl-Tagesverbrauch
      unit_of_measurement: l
      value_template: "{{ (float(states('sensor.oelheizung_brennerlaufzeit'), 0)*1.74) | round (2) }}"

- platform: template
  sensors:
    oelheizung_restlicher_oelvorrat:
      unique_id: oelheizung_restlicher_oelvorrat
      friendly_name: Ölheizung Restlicher Ölvorrat
      unit_of_measurement: l
      value_template: >-
        {% set aktueller_tankstand = states('input_number.oeltankinhalt') | float(0) %}
        {% set verbrauch = states('sensor.oelheizung_oeljahresverbrauch') | float(0) %}
        {{ (aktueller_tankstand - verbrauch) | round(2) }}

# Brennerstarts pro Tag
- platform: history_stats
  name: oelheizung_brennerstarts
  unique_id: oelheizung_brennerstarts
  entity_id: sensor.oelheizung_brenner_status
  state: AN
  type: count
  start: "{{ now().replace(hour=0, minute=0, second=0) }}"
  end: "{{ now() }}"

# Brennerlaufzeit pro Monat
- platform: history_stats
  name: oelheizung_brennerlaufzeit_monat
  unique_id: oelheizung_brennerlaufzeit_monat
  entity_id: sensor.oelheizung_brenner_status
  state: AN
  type: time
  start: "{{ now().replace(day=1, hour=0, minute=0, second=0) }}"
  end: "{{ now() }}"

# Brennerlaufzeit pro Jahr
- platform: history_stats
  name: oelheizung_brennerlaufzeit_jahr
  unique_id: oelheizung_brennerlaufzeit_jahr
  entity_id: sensor.oelheizung_brenner_status
  state: AN
  type: time
  start: "{{ now().replace(month=1, day=1, hour=0, minute=0, second=0) }}"
  end: "{{ now() }}"

Du musst nur die entsprechenden Namen der Sensoren auf deine anpassen. Melde dich gerne, wenn du weitere Hilfe benötigst.

1 „Gefällt mir“

Vielen Dank für deine Hilfe.
Werde mir das die Tage ansehen.
Wenn ich noch Fragen habe werde bestimmt auf dein Angebot zurück kommen.
Gibt es auch eine möglichkeit einen Startwert zu setzen?

Ja, im Tempate direkt unter “Sensoren Ölverbrauch” werden zwei Eingabemöglichkeiten definiert, die man als Entität dann ins Dashboard einbinden kann. Bei mir sieht das so aus

image

Da stelle ich den Startwert für den aktuellen Tankinhalt ein, den ich über eine Pegelstandsmessung und einer Vergleichstabelle vom Tankhersteller generiere und regelmäßig (so alle 3 Monate) kontrolliere. Der zweite Wert ergibt die Basis für den Ölverbrauch unter Berücksichtigung der Durchflussmenge der Düse in Verbindung mit der Brennerlaufzeit her. Diesen Wert findest du hoffentlich in der Beschreibung bzw. Dokumentation des Brennerherstellers.

1 „Gefällt mir“

Super Danke Schön.
Schönen Nabend noch.

Noch eine Info.

Wenn du weist, was für eine Düse eingebaut ist, kannst du den Verbrauch pro Stunde bestimmen.

z.B. Düse ist eine 0,45 und der Pumpendruck beträgt 10 bar, ist der Verbrauch.

0,45 US Galonen pro Stunde.
Eine Gallone sind 3,78541 Liter.

Wenn du die Werte nicht hast, frag deinen Heizungsbauer.

1 „Gefällt mir“

Danke für den Hinweis, ich weiß schon das ich eine 0,4er Düse habe.

Guten Morgen, den Wert habe ich aus der Dokumentation zu meinem Brenner von Viessmann. Da sind die Durchflussmengen in Liter/h bei x Düsengröße angegeben. Bitte beachte, dass die Toleranzen bei dieser Art der Berechnung relativ hoch sind. Ich verfolge die Werte schon seit 2 Jahren und habe mich in dieser Zeit an eine Abweichung des Verbrauchs von etwa 20 Liter in 3 Monaten angenähert. Genaue Werte bekommst du nur durch einen Durchflussmesser in der Heizölleitung oder einen Tankspion.