Template, encja pośrednicząca do utility meter

Witam

Próbuje wymodzić encje która będzie liczyła energię z inwertera off-gird ,odliczając straty ,wiem ile średnio mam strat dziennie i chciałbym w template odjąć te 1,5kWh i wysłać do utility meter co 1min żeby ładnie liczyło na bieżąco.

Stworzyłem coś takiego :

 - trigger:
       - platform: time_pattern
         minutes: "/1"
     sensor:
       - name: miesiac_cala_produkcja3
         state: "{{ (states('sensor.miesiac_cala_produkcja1')|float - 0.0010 |float)  |round(3) }}"
         unit_of_measurement: kWh
         icon: mdi:solar-power

Działa ładnie jak jest produkcja ,w momencie gdy jej nie ma niestety odejmuje co minutę ta wartość od encji ,która się nie zmienia czyli wynik jest cały czas ten sam i utility meter nie rejestruje żadnych zmian.
Może ktoś podsunie jakiś pomysł?

Nie rozumiem :thinking: skoro produkcja nie zmienia się (brak produkcji) to co chcesz aby ta encja liczyła ?

a jakie zmiany są skoro produkcji nie ma ?

Chcę osiągnąć taka wirtualna encje ,która co minutę ma odejmowane 0.0010 kWh ,
czyli jeśli się nie zmienia to ma odjąć zapamiętać wynik i za minutę odjąć od tego poprzedniego zapamiętanego wyniku … czyli jest encja co ma 1kWh za minutę ma 0,999kWh ,po kolejnej 0,998,itd.

możesz to zrobić w nodered, poprzez kalibrację utilitymeter

Musisz pomyśleć nad warunkiem, ale spróbuj coś podobnego:

   - trigger:
       - platform: time_pattern
         minutes: "/1"
     sensor:
       - name: miesiac_cala_produkcja3
         unit_of_measurement: kWh
         icon: mdi:solar-power    
         state: >-
           {% set a = states('sensor.miesiac_cala_produkcja3') | float(0) %}
           {% set b = states('sensor.miesiac_cala_produkcja1') | float(0) %}
           {% set delta = a - b %}
           {% if delta  <= 0 %}
              {{ (a - 0.001 ) | round(4) }}
           {% else %}
              {{ (b- 0.010) | round(4) }}
           {% endif %}