Home Assistant · sähkön hinta ja CO₂
Sähkön hinta- ja CO₂-ennuste Home Assistantiin
Valitse käyttöliittymässä määritettävä HACS-integraatio tai tavallinen YAML-pohjainen REST-sensori. Molemmat tuovat Suomen tuntihinnat, CO₂-arvion ja valmiiksi lasketut halvimmat aikaikkunat automaatioihin.
- 48 tuntia maksuttaEi rekisteröitymistä eikä API-avainta
- Suomen hinta-alueValitse asennuksessa markkinaksi FI
- Hinta ja CO₂Halvin, vähäpäästöisin ja yhdistetty aikaikkuna
Asenna Home Assistantiin HACS:n kautta
- Avaa yllä oleva linkki tai lisää Energy Price Forecast EU HACS:ssa mukautetuksi repositorioksi, jonka tyyppi on Integration.
- Asenna integraatio ja käynnistä Home Assistant uudelleen HACS:n pyytäessä.
- Siirry kohtaan Asetukset → Laitteet ja palvelut, lisää integraatio ja valitse markkinaksi Suomi (FI).
- Käytä hinta-, CO₂- ja aikaikkunaentiteettejä koontinäytöissä ja automaatioissa.
Ilman avainta saat maksutta enintään 48 tunnin hintahorisontin. Private Pro laajentaa yksityisten automaatioiden hintaennusteen enintään 120 tuntiin.
Vertaa ennustetta julkaistuihin hintoihin
Vihreä näyttää julkaistut day-ahead-hinnat, oranssi nykyisen ennusteen ja sininen katkoviiva ensimmäisen tallennetun ennusteen. Aiempi ennuste pysyy näkyvissä virallisten hintojen ilmestyessä.
- Päivitä Energy Price Forecast EU HACS:ssa vähintään versioon 1.12.0 ja käynnistä Home Assistant uudelleen. Asenna myös ApexCharts Card 2.1.0 tai uudempi HACS:n kautta.
- Korvaa kaikki kolme
sensor.CHANGE_ME-kohtaa samalla hintasarjan entiteetillä kohdasta Kehittäjätyökalut → Tilat. Käytä nykyisen kuluttajahinnan entiteettiä, jos haluat määrittämäsi kokonaishinnan. Liitä YAML kohdassa Koontinäyttö → Muokkaa → Lisää kortti → Manuaalinen.
Tallennus alkaa päivityksen jälkeen ja säilyy uudelleenkäynnistyksissä. Arvot säilyvät kyseisen markkinapäivän loppuun; vanhoja ennusteita ei luoda jälkikäteen. captured_at on Home Assistantin vastaanottoaika, ei mallin ajoaika. Tämä ei ole kiinteän ennustepituuden laatumittaus eikä rajaton arkisto.
Varmista, että akselin yksikkö vastaa anturia, esimerkiksi EUR/kWh eikä snt/kWh. Laskettu kokonaishinta ei takaa sähkölaskun summaa. Ilman avainta API-horisontti on edelleen enintään 48 tuntia; käytä asianmukaista pääsyä ja graph_span: 6d enintään 120 tunnille. Kortti koskee HACS-integraatiota, ei alla olevaa REST-summary-esimerkkiä, eikä lisää API-kutsuja.
Kopioitava YAML
type: custom:apexcharts-card
header:
show: true
title: Energy Price Forecast EU
graph_span: 3d
span:
start: day
now:
show: true
label: Nyt
yaxis:
- id: price
decimals: 3
apex_config:
title:
text: EUR/kWh
all_series_config:
yaxis_id: price
type: line
curve: stepline
extend_to: false
stroke_width: 2
float_precision: 4
show:
legend_value: false
series:
# Replace ALL three placeholders with the SAME price or retail sensor.
- entity: sensor.CHANGE_ME
name: Virallinen (day-ahead)
color: "#43a047"
data_generator: |
const raw = [...(entity.attributes.raw_today ?? []),
...(entity.attributes.raw_tomorrow ?? [])];
const slots = raw.map(e => ({
start: Date.parse(e.start), end: Date.parse(e.end), value: e.value
})).filter(e => Number.isFinite(e.start) && Number.isFinite(e.end)
&& e.end > e.start && typeof e.value === 'number' && Number.isFinite(e.value))
.sort((a, b) => a.start - b.start);
const points = [];
let previousEnd = null;
for (const slot of slots) {
if (previousEnd !== null && slot.start > previousEnd) {
points.push([previousEnd, null], [slot.start - 1, null]);
}
points.push([slot.start, slot.value], [slot.end - 1, slot.value]);
previousEnd = slot.end;
}
return points;
- entity: sensor.CHANGE_ME
name: Nykyinen ennuste
color: "#fb8c00"
data_generator: |
const raw = entity.attributes.raw_forecast ?? [];
const slots = raw.map(e => ({
start: Date.parse(e.start), end: Date.parse(e.end), value: e.value
})).filter(e => Number.isFinite(e.start) && Number.isFinite(e.end)
&& e.end > e.start && typeof e.value === 'number' && Number.isFinite(e.value))
.sort((a, b) => a.start - b.start);
const points = [];
let previousEnd = null;
for (const slot of slots) {
if (previousEnd !== null && slot.start > previousEnd) {
points.push([previousEnd, null], [slot.start - 1, null]);
}
points.push([slot.start, slot.value], [slot.end - 1, slot.value]);
previousEnd = slot.end;
}
return points;
- entity: sensor.CHANGE_ME
name: Tallennettu ennuste (ensimmäinen vastaanotettu)
color: "#1e88e5"
stroke_dash: 5
data_generator: |
const raw = entity.attributes.raw_forecast_reference ?? [];
const slots = raw.map(e => ({
start: Date.parse(e.start), end: Date.parse(e.end), value: e.value
})).filter(e => Number.isFinite(e.start) && Number.isFinite(e.end)
&& e.end > e.start && typeof e.value === 'number' && Number.isFinite(e.value))
.sort((a, b) => a.start - b.start);
const points = [];
let previousEnd = null;
for (const slot of slots) {
if (previousEnd !== null && slot.start > previousEnd) {
points.push([previousEnd, null], [slot.start - 1, null]);
}
points.push([slot.start, slot.value], [slot.end - 1, slot.value]);
previousEnd = slot.end;
}
return points;
Vaihtoehto: REST-sensori YAML-määrityksellä
Tämä esimerkki käyttää Suomen hinta-aluetta, euroja ja neljän tunnin suunnitteluikkunaa.
https://api.energypriceforecast.eu/api/v1/home-assistant/summary?country=fi¤cy=EUR&hours=48&window_hours=4rest:
- resource: "https://api.energypriceforecast.eu/api/v1/home-assistant/summary?country=fi¤cy=EUR&hours=48&window_hours=4"
scan_interval: 900
sensor:
- name: "EnergyPriceForecast nykyinen hinta FI"
value_template: "{{ value_json.flat.current_price }}"
unit_of_measurement: "EUR/kWh"
- name: "EnergyPriceForecast nykyinen CO2 FI"
value_template: "{{ value_json.flat.current_co2_g_kwh }}"
unit_of_measurement: "gCO2/kWh"
- name: "EnergyPriceForecast halvin aikaikkuna FI"
value_template: "{{ value_json.flat.cheapest_window_start }}"
- name: "EnergyPriceForecast vähäpäästöisin aikaikkuna FI"
value_template: "{{ value_json.flat.greenest_window_start }}"
Mitä sähkön hintaennusteella voi automatisoida?
Miksi kyseessä on ennuste eikä vain spot-hinta?
Kun viralliset day-ahead-hinnat on julkaistu, niitä käytetään ensin. Malliennuste täydentää niitä seuraaville tunneille, joiden markkinahinta ei ole vielä tiedossa. API kertoo datalähteen, joten julkaistua hintaa ja ennustetta ei esitetä samana asiana.
Onko arvo lopullinen kuluttajahintani?
Ei. Oletusarvo on markkina- tai perushinta. Sähkönsiirto, verot ja myyjän marginaali eivät sisälly siihen automaattisesti.
HACS vai REST – kumpi kannattaa valita?
Valitse HACS helppoa asennusta ja valmiita entiteettejä varten. REST sopii, jos haluat hallita YAML-määrityksiä ja malleja itse.
Kuinka usein sensori kannattaa päivittää?
Esimerkin 900 sekuntia eli 15 minuuttia on tavalliseen kotiautomaatioon riittävä väli. Ennuste ei vaadi jatkuvaa sekuntitason kyselyä.