Zähler wird beim Neustart von HA auf einen älteren Wert gesetzt

Ja, das solltest Du immer tun aber hier ein Vorschlag. Ob das der optimale Ansatz ist, muß ich noch mal durchdenken aber es ist ein funktionierender erster Wurf.

Du brauchst

  • Einen Helfer 1 input_number: zählt die Stunden und kannst den Verlauf per Diagramm anzeigen lassen. Er wird nie genullt außer Du machst es manuell oder erweiterst die Automatisation. Ach, beimn Anlegen mußt Du eine Maximalgrenze angeben. Nimm genügend Puffer.
  • Einen Helfer 2 input_datetime: speichert den Zeitpunkt des Starts des Verdichters (Aus → AN)
  • Eine Automatisation, die bei AN-AUS die Zeitdifferenz in Sekunden von Jetzt zu Helfer 2 in Helfer 1 speichert.

In der Automatisation zähle/speichere ich die Zeit, wo die Sofalampe an war. Das mußt Du für den Verdichter noch anpassen und auch den Helfern solltest Du richtige Namen geben.

alias: 1 test forum zaehler
description: ""
triggers:
  - entity_id:
      - light.sofateufel_lichtfarbe
    from: "off"
    to: "on"
    id: LichtANgeschaltet
    trigger: state
  - entity_id:
      - light.sofateufel_lichtfarbe
    from: "on"
    to: "off"
    id: LichtAUSgeschaltet
    trigger: state
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - LichtANgeschaltet
        sequence:
          - data:
              datetime: "{{ now().isoformat() }}"
            action: input_datetime.set_datetime
            target:
              entity_id: input_datetime.1_forum_test_stundenzaehler
      - conditions:
          - condition: trigger
            id:
              - LichtAUSgeschaltet
        sequence:
          - variables:
              dauer_neu: >
                {% set start =
                as_datetime(states('input_datetime.1_forum_test_stundenzaehler'))
                %} {% set jetzt = now().replace(tzinfo=None, microsecond=0) %}
                {{ ((jetzt-start).total_seconds() / 3600) | round(4) }}
              dauer_alt: >
                {{ states('input_number.1_forum_test_stundenzaehler') | float(0)
                }}
          - target:
              entity_id: input_number.1_forum_test_stundenzaehler
            data:
              value: "{{ (dauer_alt + dauer_neu) | round(4) }}"
            action: input_number.set_value
mode: single

Versuche das einmal nachzubauen, zu verstehen und beobachte das Verhalten eine Woche…und dann schauen wir einmal

Helfer 1 wird im Gegensatz zum früheren Verbrauchszähler nie historische Werte vergessen, es sei denn Du setzt ihn zurück.

1 „Gefällt mir“