Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ***************Template sensorer, skall ligga under template: **********
- - trigger:
- - trigger: time_pattern
- minutes: /10
- - trigger: homeassistant
- event: start
- action:
- - action: nordpool.get_prices_for_date
- data:
- config_entry: 01K6BFF0TVKT3M3RDYTQWVM38D #byt till din config entry!
- date: "{{ now().date() + timedelta(days=1) }}"
- areas: SE3
- currency: SEK
- response_variable: tomorrow_price
- sensor:
- - name: Tomorrow lowest price
- unique_id: se3_tomorrow_low_price
- state: >
- {% set data = namespace(prices=[]) %}
- {% for state in tomorrow_price['SE3'] %}
- {% set data.prices = data.prices + [(state.price / 1000)] %}
- {% endfor %}
- {{min(data.prices)}}
- attributes:
- data: >
- {% set data = namespace(prices=[]) %}
- {% for state in tomorrow_price['SE3'] %}
- {# Denna rad är den enda som är ändrad #}
- {% set data.prices = data.prices + [{'start': (state.start | as_datetime | as_local).isoformat(), 'end': (state.end | as_datetime | as_local).isoformat(), 'price': state.price/1000}] %}
- {% endfor %}
- {{data.prices}}
- - trigger:
- - trigger: time_pattern
- minutes: /10
- - trigger: homeassistant
- event: start
- action:
- - action: nordpool.get_prices_for_date
- data:
- config_entry: 01K6BFF0TVKT3M3RDYTQWVM38D #byt till din config entry!
- date: "{{ now().date() }}"
- areas: SE3
- currency: SEK
- response_variable: today_price
- sensor:
- - name: Today lowest price
- unique_id: se3_today_low_price
- state: >
- {% set data = namespace(prices=[]) %}
- {% for state in today_price['SE3'] %}
- {% set data.prices = data.prices + [(state.price / 1000)] %}
- {% endfor %}
- {{min(data.prices)}}
- attributes:
- data: >
- {% set data = namespace(prices=[]) %}
- {% for state in today_price['SE3'] %}
- {# Denna rad är den enda som är ändrad #}
- {% set data.prices = data.prices + [{'start': (state.start | as_datetime | as_local).isoformat(), 'end': (state.end | as_datetime | as_local).isoformat(), 'price': state.price/1000}] %}
- {% endfor %}
- {{data.prices}}
- ************* Apex kort*****************
- type: custom:apexcharts-card
- now:
- show: true
- label: Nu
- graph_span: 24h
- span:
- start: day
- experimental:
- color_threshold: true
- header:
- title: Elpriser (spotpris per kWh)
- show: true
- show_states: true
- colorize_states: true
- apex_config:
- chart:
- height: 332px
- legend:
- showForSingleSeries: true
- yaxis:
- min: -0.2
- decimalsInFloat: 2
- tickAmount: 10
- forceNiceScale: true
- xaxis:
- labels:
- datetimeFormatter:
- hour: HH
- hours_12: false
- stacked: false
- all_series_config:
- show:
- datalabels: false
- extremas: true
- float_precision: 2
- type: area
- series:
- - entity: sensor.today_lowest_price
- type: column
- name: Idag
- unit: SEK/kWh
- show:
- in_header: false
- legend_value: false
- data_generator: |
- const data = entity.attributes.data;
- if (!data || !Array.isArray(data)) { return []; }
- return data.map(d => {
- return [new Date(d.start).getTime(), d.price];
- });
- color_threshold:
- - value: -1
- color: "#00FFFF"
- - value: 0.1
- color: "#ADD8E6"
- - value: 0.2
- color: "#90EE90"
- - value: 0.4
- color: "#008000"
- - value: 0.6
- color: "#FFFF00"
- - value: 0.8
- color: "#FFA07A"
- - value: 1
- color: "#FFA500"
- - value: 1.2
- color: "#FF8C00"
- - value: 1.4
- color: "#FF6347"
- - value: 1.6
- color: "#FF4500"
- - value: 1.8
- color: "#FF0000"
- - value: 2
- color: "#B22222"
- - value: 2.4
- color: "#8B0000"
- - value: 2.8
- color: "#000000"
- - entity: sensor.tomorrow_lowest_price
- type: area
- color: lightblue
- name: Imorgon
- unit: SEK/kWh
- opacity: 0.4
- stroke_width: 2
- show:
- in_header: false
- legend_value: false
- data_generator: |
- const data = entity.attributes.data;
- if (!data || !Array.isArray(data)) { return []; }
- return data.map(d => {
- const tomorrowDate = new Date(d.start);
- const hour = tomorrowDate.getHours();
- const minute = tomorrowDate.getMinutes();
- const todayTimestamp = new Date().setHours(hour, minute, 0, 0);
- return [todayTimestamp, d.price];
- });
- - entity: sensor.today_lowest_price
- name: Nu
- unit: SEK/kWh
- show:
- in_chart: false
- data_generator: |
- const data = entity.attributes.data;
- if (!data || !Array.isArray(data)) { return []; }
- const now = new Date();
- const currentPriceData = data.find(d => {
- const startTime = new Date(d.start);
- const endTime = new Date(d.end);
- return now >= startTime && now < endTime;
- });
- return currentPriceData ? [[now, currentPriceData.price]] : [];
- - entity: sensor.today_lowest_price
- name: Min idag
- unit: SEK/kWh
- show:
- in_chart: false
- data_generator: |
- const data = entity.attributes.data;
- if (!data || !Array.isArray(data) || data.length === 0) { return []; }
- const prices = data.map(d => d.price);
- return [[new Date(), Math.min(...prices)]];
- - entity: sensor.today_lowest_price
- name: Max idag
- unit: SEK/kWh
- show:
- in_chart: false
- data_generator: |
- const data = entity.attributes.data;
- if (!data || !Array.isArray(data) || data.length === 0) { return []; }
- const prices = data.map(d => d.price);
- return [[new Date(), Math.max(...prices)]];
- - entity: sensor.today_lowest_price
- name: Medel idag
- unit: SEK/kWh
- show:
- in_chart: false
- data_generator: |
- const data = entity.attributes.data;
- if (!data || !Array.isArray(data) || data.length === 0) { return []; }
- const prices = data.map(d => d.price);
- const sum = prices.reduce((a, b) => a + b, 0);
- return [[new Date(), sum / prices.length]];
Advertisement
Add Comment
Please, Sign In to add comment