Hallo zusammen,
ich verzweifele seit Tagen an Berechnungen die ich mittels templates ausführe.
Aufgabe: Ich möchte den Anteil meiner selbst genutzten PV Leistung berechnen. Dazu habe ich mehrere Shellys verbaut. Ich messe den shellyproem_eg_total_active_energy und den shellyproem_eg_total_active_energy. Zusätzlich steht die PV Leistung zur Verfügung.
z.B. sensor:
Total used PV energy EG (manuelle Berechnung)
- name: (HE) Used PV energy EG
unique_id: "sensor.used_pv_energy_eg"
unit_of_measurement: 'kWh'
device_class: energy
state_class: total_increasing
state: >-
{{ (float(states('sensor.stp5_0_3av_40_842_daily_yield'))) + (float(states('sensor.pv_gartenhaus_akku_1_entladung'))) + (float(states('sensor.he_pv_akku_2_entladen_energiedashboard_2'))) - (float(states('sensor.shellyproem_eg_total_active_returned_energy'))) | round(2) }}
Theoretisch funktioniert das auch ganz gut. Nun ist mir aber aufgefallen, das der von mir dazu erstellte Verbrauchssensor unplausible Werte ausgibt. Ich habe herausgefunden, das es daran liegt, das je nach Zeitpunkt der Aktualisierung für einen sehr kurzen Moment zuerst der eine Werte steigt, dann schon gerechnet wird und einen Augenblick später der andere Wert zu Verfügung steht.
Als Beispiel:
Sekunde 1: PV generiert 5000 - returned 2000 = 3000 Eigenverbrauch
Sekunde 2: PV generiert 5001 - returned 2000 = 3001 Eigenverbrauch
Sekunde 3: PV generiert 5001 - returned 2001 = 3000 Eigenverbrauch
Das führt in Folge dazu, das der Verbrauchszähler +1 rechnet und das toggelt dann.
Frage: Gibt es eine Möglichkeit nur in bestimmten Momenten, also z.B, nur wenn entität A sich ändert die Berechnung auszuführen? Oder hat jemand eine andere Idee zur Lösung meines Problems?


