History_stats-Tagessensor: Reset erst kurz nach Mitternacht und Folgen

Hallo zusammen,

Ich habe meine Ölheizung in HA integriert und berechne mir über die Brennerlaufzeit (ausgelesen via BSB-LAN und übermittelt an HA via MQTT) den täglichen Ölverbrauch in Liter und daraus wiederum den täglichen Verbrauch in kWh, um es als Gas-Sensor ins Energie-Dashboard zu bekommen. Dort ist mir aufgefallen, dass nach Mitternacht immer negative Werte angezeigt werden (aber nicht der Vortagesverbrauch als negativer Wert - das würde ich ja noch verstehen). Schon bei den zugrundeliegenden history_stats-Sensoren der Brennerlaufzeit scheint es zu diesen negativen Werten zu kommen. Anbei Screenshots der Werte auf dem Verlauf um Mitternacht herum. Und hier noch meine Definitionen der entsprechenden Entitäten:

sensor:
  - platform: history_stats
    name: Brennerbetriebszeit 1 Heute
    unique_id: brennerbetriebszeit1_heute
    entity_id: binary_sensor.heizung_brennerstufe_1
    state: "on"
    type: time
    start: "{{ today_at() }}"
    end: "{{ now() }}"
  - platform: history_stats
    name: Brennerbetriebszeit 2 Heute
    unique_id: brennerbetriebszeit2_heute
    entity_id: binary_sensor.heizung_brennerstufe_2
    state: "on"
    type: time
    start: "{{ today_at() }}"
    end: "{{ now() }}"
template:
  - sensor:
      - name: Tagesölverbrauch
        unique_id: "tagesolverbrauch"
        unit_of_measurement: "L"
        device_class: "volume"
        state_class: "total_increasing"
        state: >
          {{ ((float(states('sensor.brennerbetriebszeit_1_heute'))-float(states('sensor.brennerbetriebszeit_2_heute')))*1.55/0.84+float(states('sensor.brennerbetriebszeit_2_heute'))*2.05/0.84) | round(2) }}
      - name: Heizwert Ölverbrauch
        unique_id: "HeizwertOelverbrauch"
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        state: >
          {{ (10.84*0.95*float(states('sensor.tagesolverbrauch'))) | round(1) }}

Hat jemand eine Idee, was da schief läuft bzw. wie ich das vermeiden kann?

VG Thomas

Screenshot (4)




Zum einem würde ich nicht den täglichen Verbrauch im Energy Dashboard verwenden, sondern den Gesamt.
Und wenn Du schon den täglichen Verbrauch verwenden tust, dann muss dieser die state_class: "total" haben und nicht state_class: "total_increasing" Da dieser ja nicht stetig steigt, sondern zu Tagesbeginn auf 0 sinkt. Hat also nichts mit dem Zeitpunkt des resets zu tun.

Grup
Osorkon

Danke für den Tipp. Der ursprüngliche Plan war auch, einen Gesamtverbrauchsensor zu basteln und dafür zu verwenden. Ich habe leider keine einfache Möglichkeit gefunden, aus einem Binärsensor (über den den “on”-Status) eine Gesamtlaufzeit zu berechnen - falls jemand einen Tipp hat, immer gerne. :slightly_smiling_face:

Bei den State-Classes hast du mich jetzt aber verwirrt, da ich mich davor mit genau dieser Frage beschäftigt hatte. In der Doku steht, dass für diesen Anwendungsfall aber total_increasing genau richtig ist, also ein Sensor, dessen Wert (von einem Reset abgesehen) nur ansteigen kann. Genau so ist das ja in dem Beispiel auch beschrieben: https://developers.home-assistant.io/blog/2021/09/20/state_class_total/#state-classes

VG

Je länger ich die Werte beobachte und darüber nachdenke, desto mehr bin ich der Überzeugung, dass es sich um einen Bug der history_stats-Integration handelt. Wie kann ein Sensor, der die Zeitdauer des Status “on” misst (brennerbetriebszeit1_heute von obigem Bsp.), einen negativen Wert auswerfen, wie z.B. anhand folgender Historie ersichtlich (erster Wert vom 27.3.)??

entity_id state last_changed
sensor,test_brennerbetriebszeit_1_heute 0,0996249819464154 2024-03-27T07:01:14,998Z
sensor,test_brennerbetriebszeit_1_heute 0,0829583152797487 2024-03-27T07:00:14,998Z
sensor,test_brennerbetriebszeit_1_heute 0,0662916486130820 2024-03-27T06:59:14,998Z
sensor,test_brennerbetriebszeit_1_heute 0,0496249819464154 2024-03-27T06:58:14,998Z
sensor,test_brennerbetriebszeit_1_heute 0,0329583152797487 2024-03-27T06:57:14,998Z
sensor,test_brennerbetriebszeit_1_heute 0,0162916486130820 2024-03-27T06:56:15,000Z
sensor,test_brennerbetriebszeit_1_heute -0,0000972402758069 2024-03-27T06:55:15,352Z
sensor,test_brennerbetriebszeit_1_heute 0,0000000000000000 2024-03-26T23:00:07,004Z
sensor,test_brennerbetriebszeit_1_heute 1,3670247707764300 2024-03-26T21:00:15,969Z
sensor,test_brennerbetriebszeit_1_heute 1,3503679691420700 2024-03-26T20:59:16,148Z
sensor,test_brennerbetriebszeit_1_heute 1,3337013024754000 2024-03-26T20:58:16,148Z
sensor,test_brennerbetriebszeit_1_heute 1,3170346358087300 2024-03-26T20:57:16,148Z
sensor,test_brennerbetriebszeit_1_heute 1,3003679691420700 2024-03-26T20:56:16,009Z
sensor,test_brennerbetriebszeit_1_heute 1,3003696433040800 2024-03-26T20:01:16,305Z
sensor,test_brennerbetriebszeit_1_heute 1,3002858310937900 2024-03-26T20:01:16,148Z