Histereza w ESPHome na esp8266/32

Witajcie potrzebuję pomocy osób które zajmują się C++ lub ogarniają dobrze ESP Home. opis poniżej skryptu.

- platform: template
    name: "Temp_Max"
    id: Temp_Max
    lambda: |-
      if (id(PC_W).state > 500) {        
      return id(WP).state;
      } else {
        return id(Temp_Max).state;
      }
    unit_of_measurement: "°C"
    update_interval: 60s
    filters:
      - delta: 1.0

script:
    id: reset_temp_max_if_wp_colder
    mode: queued
    then:
      -  if:
          condition:
            lambda: |-
               return (id(Temp_Max).state - id(WP).state >= 1);
          then:
            - switch.turn_on: relay0
            - lambda: |-
                id(Temp_Max).publish_state(id(WP).state);

działanie jego ma być następujące.
po przekroczeniu przez czujnik PC_W (pzem licznik pradu) >500
zwracana jest aktualna temperatura czujnika WP
Jeśli nie to ostatnia najwyższa temperatura czujnika Temp_Max ale zawsze nie mniejsza niż ostatnia najwyższa.
Skrypt ma badać różnicę między Temp_Max a WP i jeśli jest większa od 1 to ma włączyć przekaźnik . Niestety nie działa to dobrze czasami zapamiętuje Temp_Max a czasami nie ( rzadziej nie). Ostatnia linijka to taki jak by reset gdy wszystko zostanie spełnione i wykonane to Temp_Max startuje od nowa zgodnie z temperaturą czujnika WP