Custom Component: ENTSO-e Day Ahead Energy Prices

I do not have any blueprint I can share, but you can make a template with Tibbers “PriceLevel” using the Entsoe price sensors.

template:
  - sensor:
      - name: "Prisnivå"
        unique_id: "pricelevel"
        state: >-
          {% if states('sensor.current_electricity_market_price')|float(0.5) >= states('sensor.average_electricity_price_today')|float(0.5) *0.9
              and states('sensor.current_electricity_market_price')|float(0.5) < states('sensor.average_electricity_price_today')|float(0.5) *1.15 %}
              NORMAL
          {% elif states('sensor.current_electricity_market_price')|float(0) >= states('sensor.average_electricity_price_today')|float(0) *0.6
              and states('sensor.current_electricity_market_price')|float(0) < states('sensor.average_electricity_price_today')|float(0) *0.9 %}
              CHEAP
          {% elif states('sensor.current_electricity_market_price')|float(0) < states('sensor.average_electricity_price_today')|float(0) *0.6 %}
              VERY_CHEAP
          {% elif states('sensor.current_electricity_market_price')|float(0) >= states('sensor.average_electricity_price_today')|float(0) *1.15
              and states('sensor.current_electricity_market_price')|float(0) < states('sensor.average_electricity_price_today')|float(0) *1.4 %}
              EXPENSIVE
          {% elif states('sensor.current_electricity_market_price')|float(0) >= states('sensor.average_electricity_price_today')|float(0) *1.4
              and states('sensor.current_electricity_market_price')|float(0) < states('sensor.average_electricity_price_today')|float(0) *2.0 %}
              VERY_EXPENSIVE
          {% elif states('sensor.current_electricity_market_price')|float(0) >= states('sensor.average_electricity_price_today')|float(0) *2.0 %}
              EXTREMELY_EXPENSIVE
          {% endif %}

Then you can make a template binary sensor which is ON when the price is expensive and OFF when price is normal or cheap. With this you can make a automation which use the binary sensor to heat when it is off and lower the temperature when it is on.

  - binary_sensor:
      - name: "Dyr strom"
        state: "{{ states('sensor.prisniva') == 'EXPENSIVE' or states('sensor.prisniva') == 'VERY_EXPENSIVE' or states('sensor.prisniva') == 'EXTREMELY_EXPENSIVE' }}"

You can also modify this blueprint which use Tibber price data to use Entsoe price data.

This code for finding the cheapest 1-2 hours and 1-3 hours with Entsoe is from @stigvi from this norwegian forum: https://www.hjemmeautomasjon.no/forums/topic/11102-strømpriser/?do=findComment&comment=106063

    - unique_id: billigste_timer_1_2
      name: billigste_timer_1_2
      state: >-
        {% set l=state_attr('sensor.average_electricity_price_today', 'prices')[14:]|sort(attribute='price') %}
        {% set t = now() %}
        {{ (t >= as_datetime(l[0].time) and t <= as_datetime(l[0].time) + timedelta(hours = 1))
          or (t >= as_datetime(l[1].time) and t <= as_datetime(l[1].time) + timedelta(hours = 1)) }}
    - unique_id: billigste_timer_1_3
      name: billigste_timer_1_3
      state: >-
        {% set l=state_attr('sensor.average_electricity_price_today', 'prices')[14:]|sort(attribute='price') %}
        {% set t = now() %}
        {{ (t >= as_datetime(l[0].time) and t <= as_datetime(l[0].time) + timedelta(hours = 1))
          or (t >= as_datetime(l[1].time) and t <= as_datetime(l[1].time) + timedelta(hours = 1))
          or (t >= as_datetime(l[2].time) and t <= as_datetime(l[2].time) + timedelta(hours = 1)) }}
3 Likes