Leistung aus Delta berechnen

Hallo,
ich bin noch relativ neu in HA und habe vor ca. zwei Wochen von FHEM migriert.
Aktuell versuche ich, alle Automatisierungen von FHEM ans Laufen zu bekommen. Bei einem Problem komme ich irgendwie nicht weiter.
Ich lese meinen Stromzähler mittels Tasmota aus. Die Daten werden per MQTT alle 5 Minten übertragen (ich habe die Updaterate runter geschraubt, ich brauche die Zählerwerte nicht jede Sekunde).
In FHEM habe ich die aktuelle Leistung in W über den Bezugszähler und den Einspeisezähler bei jedem MQTT-Update berechnet. Also so:

((Bezug_neu - Bezug_alt) - (Einspeisung_neu - Einspeisung_alt))*12

Durch die Auslösung der Zählerwerte bin ich hinreichend genau.
Ich habe jetzt mehrere Versuche unternommen. Unter anderem einen Helfer-Ableitungssensor. Das hat erst gut funktioniert, aber dann habe ich festgestellt dass sich dieser nicht mathematisch richtig verhält - bei keiner Änderung wurde der letzte Wert weiterverwendet (siehe Derivative integration gives incorrect values when source does not change · Issue #83496 · home-assistant/core · GitHub).
Dann habe ich dies hier im Forum gefunden:

template:
  - trigger:
      - platform: state
        entity_id: 
            - sensor.tm_smartmeter_sm_1_8_0
    sensor:
      - name: Test_test
        state: >-
          {% set alt = trigger.from_state.state | float(0) %}
          {% set neu = trigger.to_state.state | float(0) %}
          {{(neu - alt)*12}}
        unit_of_measurement: "W"
        device_class: energy
        state_class: total

Aber wie bekomme ich hier noch die Einspeisung rein?
Eine andere Idee wäre über eine Automation beim MQTT Update den Wert zu berechnen und dann in einem Helfer abzuspeichern. Aber wie kann ich auf einen vorherigen Wert von einer Entität zugreifen?

Danke für Eure Hilfe!

Ein Weg könnte sein, aufzuspalten:

((Bezug_neu - Bezug_alt) - (Einspeisung_neu - Einspeisung_alt))*12

2 Trigger und 2 Sensoren und dann legst Du einen dritten an, der beide Trigger subtrahiert.

In diesem Fall würde ich die Statistik für die beiden ersten Sensoren deaktivieren weil Du nur die des 3. Sensors benötigst und Deine Datenbank Größe wird Dir danken.

Danke für deine Antwort. Das mit den zwei Triggern habe ich schon versucht. Das Problem ist, dass der State Trigger nicht kommt wenn der Wert sich nicht ändert. Deshalb wird der Bezug_neu - Bezug_alt niemals null (ich vermute auch, dass das der Grund für den Bug im Ableitungssensor ist).
Ich habe jetzt alles mögliche versucht und es (erstmal) so gelöst:

template:
  - trigger:
      - platform: state
        entity_id: 
            - sensor.tm_smartmeter_sm_1_8_0
    sensor:
      - name: Leistung_avg
        state: |
          {{ ((float(states.sensor.calchelp_2.state) - float(states.sensor.tm_smartmeter_sm_2_8_0.state) + float(states.sensor.tm_smartmeter_sm_1_8_0.state)) * 12)|round(2) }}
        unit_of_measurement: "W"
        state_class: total
        unique_id: leistung_avg
        
  - trigger:
      - platform: mqtt
        topic: "tele/tasmota_B5AEEF/SENSOR"
    sensor:
      - name: Calchelp
        state: |
          {{ float(states.sensor.tm_smartmeter_sm_2_8_0.state) - float(states.sensor.tm_smartmeter_sm_1_8_0.state) }}
        unit_of_measurement: "W"
        state_class: total
        unique_id: calchelp

Also bei einer neue MQTT Message speichere ich Bezug_alt und Einspeisung_alt in einer “Hilfsvariable” Calchelp (HA hat die ID in calchelp_2) umbenannt. Wenn dann Bezug geändert wird, berechne ich Leistung_avg neu.
Hier ist aber immer noch ein Bug drin, da wenn ich einspeise der State Trigger nicht kommt. Kann ich sowas machen wie:

template:
  - trigger:
      - platform: state
        entity_id: 
            - sensor.tm_smartmeter_sm_1_8_0
            - sensor.tm_smartmeter_sm_2_8_0

Also auf Updates von zwei Werten triggern?

Das kenne ich nur wenn ein alter Testsensor doch noch da war.

Ja, das ist wirklich ein Versuch wert. Bei jeder Änderung der Einspeisung oder des Bezugs wird die Leistung neu berechnet.