Sensor value does not persist after restart

I am obtaining the value from a multiscrape for propane_percentage and want to compare yesterdays percent to todays percent at 23:59:59 so I can calculate the percent used for the day. It appears to be working however the yesterdays_propane _percent reset to the current value instead of the value from the prior day at 23:59:59 upon restart.

The calculation at 23:59:50 is to see if the tank was filled that day and if so there was no utilization.

Any help would be appreciated…

    sensors:
      tank_gallons:
        value_template: "{{(((states('sensor.tank_percentage')) | int)*4) }}"
        unit_of_measurement: "gal"
        
      todays_propane_percent:
        value_template: "{{((states('sensor.tank_percentage')) | int) }} "
        unit_of_measurement: "%"
        
######
      temporary_propane_used_today:
        value_template: >-
          {% set y = states('sensor.yesterdays_propane_percent') | float %}
          {% set t = states('sensor.todays_propane_percent') | float %}
          {{ (y-t)}}
        unit_of_measurement: "%"
        
# calculate propane BTUs - my tank each percentage change is 4 gals, thus 453577/% for 5 gallons = therefore 0.8 for 4 gal
# 1 BTU = 0.00029307107017 kWh  = 106.344237436     
      
      todays_propane_kwh:
        value_template: "{{ (((states('sensor.propane_used_percent') | int) * 106.344237436)) }}"
        unit_of_measurement: kWh

# trigger template daily propane usage
# sensor.tank.percentage is the current tank percent full from website

template:
  - trigger:
    - platform: time
      at: "23:59:50"
    - platform: event
      event_type: event_template_reloaded
    - platform: homeassistant
      event: start
    sensor:
      - name: "Propane Used Percent"
        unit_of_measurement: "%"
        unique_id: "propane_used_percent"
        state: >-
         {% if (states('sensor.temporary_propane_used_today') | float) < 0 %} 
           0
           {% set propane_filled_percent = states('sensor.temporary_propane_used') | float %}
         {% else %} 
           {{ states('sensor.temporary_propane_percent_used') | float }}
         {% endif %}
         
# reset yesterdays propanne percent
  - trigger:
      - platform: time
        at: "23:59:59"  
      - platform: event
        event_type: event_template_reloaded
      - platform: homeassistant
        event: start
    sensor:
      - name: "Yesterdays Propane Percent"
        unit_of_measurement: "%"
        unique_id: "yesterdays_propane_percent"
        state: >-
          {{ (states('sensor.tank_percentage')) }}
        
utility_meter:
  daily_energy_propane:
    source: sensor.todays_propane_kwh
    name: 'Propane Used Last 24h'
    cycle: daily
    net_consumption: true

I’m having the same problem with a different approach: I like to increment a sensor value based on the last measured value. But after HA restarts, the value resets to 0 and it starts from the beginning.

Here is my code:

  - sensor:
    - name: Netzbezug
      unique_id: netzbezug
      unit_of_measurement: 'kWh'
      state: >
        {% set phases_current = states("sensor.shelly3main_channel_a_energy") | float(0) | round(2) + states("sensor.shelly3main_channel_b_energy") | float(0) | round(2) + states("sensor.shelly3main_channel_c_energy") | float(0) | round(2) %}
        {% set phases_old = states("sensor.phasenbezug") | float(0) %}
        {% set phases_diff = phases_current - phases_old %}
        {% set phases_returned_current = states("sensor.shelly3main_channel_a_energy_returned") | float(0) | round(2) + states("sensor.shelly3main_channel_b_energy_returned") | float(0) | round(2) + states("sensor.shelly3main_channel_c_energy_returned") | float(0) | round(2) %}
        {% set phases_returned_old = states("sensor.phaseneinspeisung") | float(0) %}
        {% set phases_returned_diff = phases_returned_current - phases_returned_old %}
        {% set phases_sum = phases_diff - phases_returned_diff %}
        {% if phases_old == 0 %}
            {{ states("sensor.netzbezug") | float(0) | round(2) }}
        {% elif phases_returned_old == 0 %}
            {{ states("sensor.netzbezug") | float(0) | round(2) }}
        {% elif phases_sum > 0 %}
            {{ states("sensor.netzbezug") | float(0) | round(2) + phases_sum | round(2) | abs }}
        {% else %}
            {{ states("sensor.netzbezug") | float(0) | round(2) }}
        {% endif %}
      device_class: energy
      state_class: total_increasing
  - sensor:
    - name: Netzeinspeisung
      unique_id: netzeinspeisung
      unit_of_measurement: 'kWh'
      state: >
        {% set phases_current = states("sensor.shelly3main_channel_a_energy") | float(0) | round(2) + states("sensor.shelly3main_channel_b_energy") | float(0) | round(2) + states("sensor.shelly3main_channel_c_energy") | float(0) | round(2) %}
        {% set phases_old = states("sensor.phasenbezug") | float(0) %}
        {% set phases_diff = phases_current - phases_old %}
        {% set phases_returned_current = states("sensor.shelly3main_channel_a_energy_returned") | float(0) | round(2) + states("sensor.shelly3main_channel_b_energy_returned") | float(0) | round(2) + states("sensor.shelly3main_channel_c_energy_returned") | float(0) | round(2) %}
        {% set phases_returned_old = states("sensor.phaseneinspeisung") | float(0) %}
        {% set phases_returned_diff = phases_returned_current - phases_returned_old %}
        {% set phases_sum = phases_diff - phases_returned_diff %}
        {% if phases_old == 0 %}
            {{ states("sensor.netzeinspeisung") | float(0) | round(2) }}
        {% elif phases_returned_old == 0 %}
            {{ states("sensor.netzeinspeisung") | float(0) | round(2) }}
        {% elif phases_sum >= 0 %}
            {{ states("sensor.netzeinspeisung") | float(0) | round(2) }}
        {% else %}
            {{ states("sensor.netzeinspeisung") | float(0) | round(2) + phases_sum | round(2) | abs }}
        {% endif %}
      device_class: energy
      state_class: total_increasing
  - sensor:
    - name: Phasenbezug
      unique_id: phasenbezug
      unit_of_measurement: 'kWh'
      state: '{{ states("sensor.shelly3main_channel_a_energy") | float(0) | round(2)
             + states("sensor.shelly3main_channel_b_energy") | float(0) | round(2) 
             + states("sensor.shelly3main_channel_c_energy") | float(0) | round(2) }}'
      device_class: energy
      state_class: total_increasing
  - sensor:
    - name: Phaseneinspeisung
      unique_id: phaseneinspeisung
      unit_of_measurement: 'kWh'
      state: '{{ states("sensor.shelly3main_channel_a_energy_returned") | float(0) | round(2)
             + states("sensor.shelly3main_channel_b_energy_returned") | float(0) | round(2) 
             + states("sensor.shelly3main_channel_c_energy_returned") | float(0) | round(2) }}'
      device_class: energy
      state_class: total_increasing

The main problem is this line, which calculates “0 + phases_sum” after HA is rebooted:

{{ states("sensor.netzbezug") | float(0) | round(2) + phases_sum | round(2) | abs }}

I need this as my Shelly 3EM measures all three house phases, but only one returns a negative value from my solar panels, while the others return positive values of devices only connected to those phases. In Germany the house electricity meter then calculates the sum of all three phases and depending on the positive or negative result it counts only the energy purchased OR returned to the grid. So I’m trying to do the same with the given values of the Shelly 3EM. More details here.