Any good ideas are welcome. Nordpool Energy Price per hour

I’ve started to work on something not exactly that but it could be built further I believe. Work and family consumes a lot of time… So far its three sensors, past 72h mean, past72h median and today median. In my head it should be easy to add past and today and use it as a value.
Anyway im not sure witch of the three is the best approach for the level calculation any input on that would be nice

    region: "SE3"
  - platform: statistics
    name: "Elpris_medel_past72"
    unique_id: 50371632
    entity_id: sensor.nordpool_kwh_se3_sek_3_10_025
    state_characteristic: mean
    precision: 4
    sampling_size: 144
    max_age:
      hours: 72
  - platform: template
    sensors:
      pricelevel_medel_past72:
        unique_id: 76937444
        friendly_name: "Elprisnivå_medel_past72"
        unit_of_measurement: 'Level'
        value_template: >-
            {% if states('sensor.nordpool_kwh_se3_sek_3_10_025')|float(0.5) >= states('sensor.elpris_medel_past72')|float(0.5) *0.9
                and states('sensor.nordpool_kwh_se3_sek_3_10_025')|float(0.5) < states('sensor.elpris_medel_past72')|float(0.5) *1.15 %}
                {{3}}
            {% elif states('sensor.nordpool_kwh_se3_sek_3_10_025')|float >= states('sensor.elpris_medel_past72')|float *0.6
                and states('sensor.nordpool_kwh_se3_sek_3_10_025')|float < states('sensor.elpris_medel_past72')|float *0.9 %}
                {{2}}
            {% elif states('sensor.nordpool_kwh_se3_sek_3_10_025')|float < states('sensor.elpris_medel_past72')|float *0.6 %}
                {{1}}
            {% elif states('sensor.nordpool_kwh_se3_sek_3_10_025')|float >= states('sensor.elpris_medel_past72')|float *1.15
                and states('sensor.nordpool_kwh_se3_sek_3_10_025')|float < states('sensor.elpris_medel_past72')|float *1.4 %}
                {{4}}
            {% elif states('sensor.nordpool_kwh_se3_sek_3_10_025')|float >= states('sensor.elpris_medel_past72')|float *1.4 %}
                {{5}}
            {% endif %}
  - platform: statistics
    name: "Elpris_median_past72"
    unique_id: 70542100
    entity_id: sensor.nordpool_kwh_se3_sek_3_10_025
    state_characteristic: median
    precision: 4
    sampling_size: 144
    max_age:
      hours: 72
  - platform: template
    sensors:
      pricelevel_median_past72:
        unique_id: 33469883
        friendly_name: "Elprisnivå_median_past72"
        unit_of_measurement: 'Level'
        value_template: >-
            {% if states('sensor.nordpool_kwh_se3_sek_3_10_025')|float(0.5) >= states('sensor.Elpris_median_past72')|float(0.5) *0.9
                and states('sensor.nordpool_kwh_se3_sek_3_10_025')|float(0.5) < states('sensor.Elpris_median_past72')|float(0.5) *1.15 %}
                {{3}}
            {% elif states('sensor.nordpool_kwh_se3_sek_3_10_025')|float >= states('sensor.Elpris_median_past72')|float *0.6
                and states('sensor.nordpool_kwh_se3_sek_3_10_025')|float < states('sensor.Elpris_median_past72')|float *0.9 %}
                {{2}}
            {% elif states('sensor.nordpool_kwh_se3_sek_3_10_025')|float < states('sensor.Elpris_median_past72')|float *0.6 %}
                {{1}}
            {% elif states('sensor.nordpool_kwh_se3_sek_3_10_025')|float >= states('sensor.Elpris_median_past72')|float *1.15
                and states('sensor.nordpool_kwh_se3_sek_3_10_025')|float < states('sensor.Elpris_median_past72')|float *1.4 %}
                {{4}}
            {% elif states('sensor.nordpool_kwh_se3_sek_3_10_025')|float >= states('sensor.Elpris_median_past72')|float *1.4 %}
                {{5}}
            {% endif %}
  - platform: template
    sensors:
      pricelevel_median_today:
        friendly_name: "Elprisnivå_median_today"
        unique_id: 95789542
        unit_of_measurement: 'Level'
        value_template: >-
            {% set today=states.sensor.nordpool_kwh_se3_sek_3_10_025.attributes.raw_today| sort(attribute='value')-%}
            {%set median= (today[11].value+today[12].value)/2%}
            {% if states('sensor.nordpool_kwh_se3_sek_3_10_025')|float(0.5) >= median|float(0.5) *0.9
                and states('sensor.nordpool_kwh_se3_sek_3_10_025')|float(0.5) < median|float(0.5) *1.15 %}
                {{3}}
            {% elif states('sensor.nordpool_kwh_se3_sek_3_10_025')|float >= median|float *0.6
                and states('sensor.nordpool_kwh_se3_sek_3_10_025')|float < median|float *0.9 %}
                {{2}}
            {% elif states('sensor.nordpool_kwh_se3_sek_3_10_025')|float < median|float *0.6 %}
                {{1}}
            {% elif states('sensor.nordpool_kwh_se3_sek_3_10_025')|float >= median|float *1.15
                and states('sensor.nordpool_kwh_se3_sek_3_10_025')|float < median|float *1.4 %}
                {{4}}
            {% elif states('sensor.nordpool_kwh_se3_sek_3_10_025')|float >= median|float *1.4 %}
                {{5}}
            {% endif %}
  - platform: template
    sensors:
      elpris_median_today:
        friendly_name: "Elpris_median_today"
        unique_id: 89574231
        unit_of_measurement: 'SEK/kWh'
        value_template: >-
            {% set today=states.sensor.nordpool_kwh_se3_sek_3_10_025.attributes.raw_today| sort(attribute='value')-%}
            {%set median= (today[11].value+today[12].value)/2%}
            {{median}}
1 Like