Artikeln innehåller annonslänkar för Kjell & Company.
Dags för lite tekniknördigt fredagsmys. Numera finns det i Home Assistant Core en Nord Pool-integration istället för den externa ostödda. Det krävs dock lite handviftande för att få fram timdata så man kan plotta prisgrafer, vilket jag utlovat att redovisa.

Den nya integrationen ökar möjligheterna att stödja de i juni kommande 15-minuterspriserna är min bedömning och oavsett är det alltid säkrast att använda en integration som stöds officiellt av Home Assistant i sin Core-distribution, så jag gick härom veckan över till denna i en paus i bokarbetet.
Jag kör sedan ett och ett halvt år tillbaka Home Assistant Green (annonslänk) med ett externt extra SSD-minne för överloggning av allt data istället för en energislukande (nåja) MacMini, vilket i övrigt ökat reservkraftstiderna vid strömavbrott en del. På tal om det så finns det nu den mycket prisvärda Ecoflow River 3 UPS (annonslänk) om du är ute efter en UPS till dina system. Sett till hur länge batterierna räcker (typ 3 000 cykler) och hur mycket de klarar är detta en mycket bra produkt istället för blybatteribaserade UPS:ar. Till skillnad mot tidigiare produkter från Ecoflow så slår denna om på under 10 ms istället för 20 ms och kan därmed driva datorutrustning oavbrutet. Kommer byta mina bly-UPS:ar i takt med att deras batterier dör, vilket brukar ske efter något år. Har dock redan Ecoflow som reservkraft, se tidigare skarpa test av systemet från strömavbrottet i december, men de behöver alltså bly-UPS:ar för att inte nätverk osv ska gå ner. Jag kör Eaton som UPS, då APC är skit, om nu någon undrade.
Även den stora (och med det följer priset) Ecoflow Delta 3 Plus (annonslänk) har nu 10 ms UPS-funktion. Viktigt att notera att det måste vara Delta 3 Plus och inte Delta 3. Men en fånigt bra större UPS-lösning som kan driva rätt mycket av ett hem ett antal timmar, t ex belysning, Internet och kyl/frys. Övriga Ecoflow fungerar som UPS för vanlig hemutrustning, men inte för datorer och nätverksutrustning.

Den gamla integrationen för Nord Pool till Home Assistant levererade innevarande och nästa dygns timpriser, medan den nya levererar även upp till tre månaders historiska priser. Man måste dock göra lite teknisk handpåläggning för att få fram dessa timpriser, då det inte finns någon sensor där dessa ligger som attribut.
Koden nedan är justeringar och tillägg till denna diskussionstråd i Home Assistants forum där nederländaren PatrickR skrivit lösningen.
Här är således koden som behöver in i configuration.yaml:
template:
- trigger:
- trigger: time_pattern
minutes: "/15"
- trigger: homeassistant
event: start
action:
- action: nordpool.get_prices_for_date
data:
config_entry: 01JSW7GZ9SRPKKCK26238SVY61
date: "{{ now().date() }}"
areas: SE3
currency: SEK
response_variable: today_price
- action: nordpool.get_prices_for_date
data:
config_entry: 01JSW7GZ9SRPKKCK26238SVY61
date: "{{ now().date() + timedelta(days=1) }}"
areas: SE3
currency: SEK
response_variable: tomorrow_price
sensor:
- name: Nord Pool SE3 Prices
unique_id: nordpool_se3_prices
icon: mdi:cash
state: >
{% if today_price is mapping %}
{% set data = namespace(prices=[]) %}
{% for state in today_price['SE3'] %}
{% set data.prices = data.prices + [((state.price/1000 )) | round(3, default=0)] %}
{% endfor %}
{{min(data.prices)}}
{% else %}
unavailable
{% endif %}
attributes:
data: >
{% if today_price is mapping %}
{% set data = namespace(prices=[]) %}
{% for state in today_price['SE3'] %}
{% set data.prices = data.prices + [{'start':state.start, 'end':state.end, 'price': ((state.price/1000 )) | round(3, default=0)}] %}
{% endfor %}
{% if tomorrow_price is mapping %}
{% for state in tomorrow_price['SE3'] %}
{% set data.prices = data.prices + [{'start':state.start, 'end':state.end, 'price': ((state.price/1000 )) | round(3, default=0)}] %}
{% endfor %}
{% endif %}
{{data.prices}}
{% else %}
[]
{% endif %}
Detta gör att innevarande dags priser läggs upp som en tidsserie och om nästa dygns priser finns läggs även de till, vilket är mitt eget tillägg.
Det hela uppdateras var femtonde minut för övrigt, för att fånga när uppdateringen för nästa dygn kommer vid 13-tiden. Man kan förstås lägga till ytterligare historiska datum genom fler actions och date:-attribubt, men det lämnas som en övning åt den som bryr sig.
Därmed finns iaf tidsserierna, som också kan behövas för att planera batteriladdning, när man ska köra på batteri istället för nätel, eller när elbilar ska laddas, vilket integrationen i sig saknade. Integrationens egna sensorer kan bara rapportera högsta, lägsta, medelpriser, medelpriser och högsta/lägsta dagtid, morgon, kväll och nuvarande pris.
Har man väl denna tidsserie så använder jag sedan följande graf i ApexCharts-tillägget som skapar en sensor som heter sensor.nord_pool_se3_prices som innehåller tidsserien.
type: custom:apexcharts-card
experimental:
color_threshold: true
graph_span: 48h
header:
title: Electricity Prices Today SE3
show: false
span:
start: day
now:
show: true
label: Now
series:
- entity: sensor.nord_pool_se3_prices
type: column
show:
extremas: true
float_precision: 3
data_generator: |
return entity.attributes.data.map((start, index) => {
return [new Date(start["start"]).getTime() + 1800000, entity.attributes.data[index]["price"]];
});
color_threshold:
- value: -2
color: deepskyblue
- value: 0
color: darkgreen
- value: 0.25
color: green
- value: 0.5
color: limegreen
- value: 1
color: gold
- value: 1.5
color: orange
- value: 2
color: orangered
- value: 2.5
color: red
- value: 3
color: firebrick
- value: 4
color: darkred
yaxis:
- id: "1"
align_to: 0.1
min: -0.2
decimals: 2
apex_config:
title:
text: SEK/kWh
tickAmount: 4
apex_config:
xaxis:
type: datetime
tooltip:
enabled: false
tooltip:
enabled: true
x:
show: true
fixed:
enabled: true
position: topLeft
chart:
height: 240px
grid:
show: true
borderColor: rgba(255,255,255,0.1)
Här skulle jag vilja ordnat att grafen börjar från noll, om det inte finns negativa prisvärden i tidsserien, då den börjar från underliggande negativa tiondelar. Om någon kan leverera sådan kod vore det kul, men jag har helt enkelt hårdkodat -0:20 SEK som start på grafen. Extremt ovanligt att priserna går under -20 öre.
Jag har även ändrat färgerna utifrån mina önskemål och intervaller.
Så var det med den saken. Vill någon dela med sig av sin programmering för tidsstyrning av optimerad batteribruk och elbilsladdning, posta gärna kommentarer.
Med det önskas ett fortatt härligt fredagsmys.






