template:
- sensor
- name: Nordpool data
unique_id: nordpool_data
state: 'DATA'
availability: "{{state_attr('sensor.nordpool_kwh_fi_eur_3_10_0255', 'today') != []}}"
attributes:
import_cost_today: >
{%- set hours = namespace(value=[]) %}
{%- set output = namespace(value=[]) %}
{%- for value in state_attr("sensor.nordpool_kwh_fi_eur_3_10_0255","raw_today") | default([], true) %}
{%- set t = value.start | as_datetime | as_local %}
{%- if t.hour >= 7 and t.hour < 22 %}
{%- set x = states("input_number.electricity_day_transfer_tariff") | float %}
{%- else %}
{%- set x = states("input_number.electricity_night_transfer_tariff") | float %}
{%- endif %}
{%- set tax = 2.79372 | float %}
{%- set price = (value.value + x + tax) | float %}
{%- set new_data = dict(**{"start": as_timestamp(value.start) | timestamp_custom('%Y-%m-%dT%H:%M:%S%z'), "timestamp": t | as_timestamp, "total_with_transfer": price}) %}
{%- set hours.value = hours.value + [new_data] %}
{%- endfor %}
{%- set sorted = hours.value | sort(attribute="total_with_transfer") %}
{%- for hour in hours.value | default([], true) %}
{%- set new_data = dict(hour, **{"rank": sorted.index(hour)+1}) %}
{%- set output.value = output.value + [new_data] %}
{%- endfor %}
{{ output.value }}