Sensor Templating verhindern summen wert wieder sinkt, wenn Sensor nicht mehr verfügbar

Hallo zusammen,
ich glaube mein Problem ist ein ziemlicher no brainer aber krieg es gerade nicht hin.

Aktuell summiere ich die totalen Erträge meiner PV einfach zusammen.

- platform: template
    sensors:
     overall_production_total:
       friendly_name: "Production total"
       unit_of_measurement: "kWh"
       device_class: energy
       value_template: "{{ ((states('sensor.overall_production_west')| float(0)) + (states('sensor.overall_production_ost')| float(0)  +states('sensor.bkw_production_total') |float(0) /1000 ) ) |round(2)}}"

Jetzt kommt es manchmal vor das zu das Werte einzelnen Sensoren nicht vorliegen und dann stimmt die Summe nicht mehr, bzw. fehlt dann ein Teil der Summe.

Das sieht dann so aus:

Was ich möchte ist, das die Summe nur gebildet wird wenn der neue Wert über dem aktuellen Wert liegt, ansonsten soll der aktuelle Wert gehalten werden.

Kann mir jemand sagen wie das IF in der value_template syntax aussehen muss?
Es muss ja sowas sein wir

If (summe > aktuelle summe) 
{ this.state = summe}

optional halt noch  
else 
{ this.state = aktulle summe) 

Gruß

Thema gelöst.
Hier der Code.

- platform: template
    sensors:
     overall_production_total_float:
       friendly_name: "Production total float"
       unit_of_measurement: "kWh"
       device_class: energy
       value_template: >
         {% set west = states('sensor.overall_production_west') %}
         {% set ost = states('sensor.overall_production_ost') %}
         {% set bkw = states('sensor.bkw_production_total') %}
         {% set last_value = states('sensor.overall_production_total') | float(0) %}
         {% if west is not none and west | float > 0 and 
               ost is not none and ost | float > 0 and 
               bkw is not none and (bkw | float / 1000) > 0 %}
           {{ (west | float + ost | float + (bkw | float / 1000)) | round(2) }}
         {% else %}
            {{ last_value | round(2) }} 
         {% endif %}