En interaktiv energidashboard för Sverige som samlar elpriser, väderdata, solcellsproduktion och EV-laddningsoptimering i ett gränssnitt.

Problem

Svenska elpriser varierar mellan fyra elområden och uppdateras var 15:e minut. För elbilsägare innebär det att man måste manuellt följa priser, väderprognoser och nätavgifter för att veta när det är mest prisvärt att ladda — en tidskrävande process som få orkar göra dagligen.

Tillvägagångssätt

Jag byggde en fullstack-applikation med Python FastAPI på backend och Vue 3 + TypeScript på frontend. Backend aggregerar data från flera källor: Nord Pool-spotpriser via ENTSO-E, väderdata och solinstrålning från Open-Meteo, samt historisk priser för statistisk kalibrering. En EV-optimerare poängsätter varje tidslucka baserat på spotpris, solcellsproduktion, nätavgift och skatt för att hitta det billigaste laddningsfönstret. Frontend visar allt på en interaktiv MapLibre-karta med färgkodade elområden och Chart.js-diagram.

Funktioner

  • Prisdashboard: Levande Nord Pool-priser med 24-timmarskurvor och veckohistorik
  • Karta över Sverige: Interaktiv MapLibre-karta med zonbaserad prisfärgning (SE1–SE4)
  • EV-laddningsoptimerare: Beräknar billigaste laddningsschema baserat på batteri, laddare, solpaneler och nätavgift
  • Solkraftsestimat: Uppskattar solpanelsproduktion med Open-Meteo-strålningsdata
  • Prisprognos: Linjär regressionsmodell tränad på historiska priser och väder
  • Heuristik för morgondagen: Uppskattar om det är värt att vänta på kommande priser
  • Async datahämtning: SQLite-cachning med konfigurerbar TTL

Vad den erbjuder

Energiöversikt gör det enkelt att fatta informerade beslut om elförbrukning. För elbilsägare eliminerar optimeraren gissandet kring när det är billigast att ladda. För solcellsägare ger prognosen insikt i förväntad produktion. Dashboarden konsoliderar data från flera API:er som annars skulle kräva manuell kontroll, och den öppna arkitekturen gör det enkelt att lägga till nya datakällor.

Teknisk stack:

  • Backend: Python, FastAPI, SQLite
  • Frontend: Vue 3, TypeScript, MapLibre GL JS, Chart.js
  • Datakällor: Nord Polo (ENTSO-E), Open-Meteo
  • Drift: Docker, Linux

Repot: git.jimmy-b.se/JimBer110/SpotCharge