Allt du behöver ändra för att köra den här dashboarden med din egen installation. Kod och infrastruktur är generisk — värdena nedan är specifika för den ursprungliga installationen och måste anpassas till din.
.py-filer under api/ utan att ta bort en befintlig.
Sätt dessa under Vercel → Project → Settings → Environment Variables. De är aldrig synliga i frontend-koden.
| Variabel | Värde | Beskrivning |
|---|---|---|
| GROWATT_USER | "ditt@email.com" | Ditt Growatt-kontos inloggningsemail krävs |
| GROWATT_PASS | "ditt-lösenord" | Growatt-lösenord (MD5-hashat av appen automatiskt) krävs |
| SUPABASE_URL | "https://xxx.supabase.co" | Din Supabase-projektets URL krävs |
| SUPABASE_ANON_KEY | "eyJ..." | Supabase anon/public key — används av serverless functions krävs |
index.html (rad ~1576) för direkta
frontend-läsningar. Anon key är publik per design — den kan läsa data men skriver
inget utan RLS-policy. Byt ut SUPABASE_URL och SUPABASE_KEY-konstanterna
i index.html till dina egna.
Dessa värden finns direkt i källkoden och måste ändras med en texteditor.
api/solar_model.py, api/growatt_tou.py
och api/weather.py — ändra i alla tre.
| Konstant | Ursprungsvärde | Vad du ändrar till |
|---|---|---|
| LAT | 59.28 | Din latitud (WGS84). Hitta via maps.google.com → högerklick → "Vad finns här?" |
| LON | 18.00 | Din longitud (WGS84). |
| PANEL_TILT | 45 | Panelernas lutning i grader (0° = horisontellt, 90° = vertikalt). |
| PANEL_AZ | −68 | Azimut från söder i grader. 0° = rakt söderut, −90° = öster, +90° = väster. Negativt = öst om syd. |
api/growatt_tou.py (rad ~684–693)| Konstant | Ursprungsvärde | Vad du ändrar till |
|---|---|---|
| BATT_KWH | 20.0 | Batteriets användbara kapacitet i kWh. Originalinstallation: 4 × 5 kWh APX. |
| AREA | "SE3" | Elprisområde. Sverige: SE1–SE4. SE1=Luleå, SE2=Sundsvall, SE3=Stockholm, SE4=Malmö. |
| NATAVG_IN_ORE | 26.0 | Nätavgift inmatning öre/kWh — hämta från din nätoperatörs prislista. |
| ENERGISKATT_ORE | 54.25 | Energiskatt öre/kWh — fastställs av riksdagen varje år. |
| FORTUM_ORE | 4.9 | Elhandelns rörliga påslag öre/kWh — beror på din elleverantör. |
_growatt.py (rad ~317–319)| Konstant | Ursprungsvärde | Hitta ditt värde |
|---|---|---|
| plant_id fallback | "10119069" | Hittas i URL:en på server.growatt.com när du är inloggad och tittar på din anläggning. |
| mix_serial fallback | "KJN6EXV00L" | Inverterns serienummer — finns på en etikett på inverterns sida, och i Growatt-appen. |
Dessa inställningar finns i dashboardens ⚙️ Inställningar-panel och sparas i
localStorage. Du kan ändra dem direkt i webbläsaren utan att ändra kod.
Standardvärdena i källkoden (index.html) bör ändå uppdateras för att
vara korrekta vid första laddning på en ny enhet.
| Fält | Ursprungsvärde | Beskrivning |
|---|---|---|
| Prisområde | SE3 | SE1–SE4 beroende på din ort. UI |
| Solkapacitet (kWp) | 11.0 | Installerad toppeffekt i kilowatt-peak. UI |
| Batterikapacitet (kWh) | 20.0 | Användbar batterikapacitet kWh. Måste matcha BATT_KWH i backend. UI |
| Fast avgift (Ellevio) | 390 kr/mån | Nätabonnemangets fasta månadsavgift. Ändrades till 590 kr 2026-06-01 i ursprungsinstallationen. UI |
| Nätavgift import (öre/kWh) | 26.0 | Rörlig nätavgift per förbrukad kWh. Hämta från din nätoperatör. UI |
| Nätnytta hög/låg (öre/kWh) | 5.50 / 4.12 | Nätoperatörens exportkompensation — beror på din operatör och avtal. UI |
| Energiskatt (öre/kWh) | 54.875 | Statlig energiskatt — ändras 1 januari varje år. UI |
| Elhandel påslag (öre/kWh) | 6.96 | Elleverantörens rörliga påslag. Beror på ditt avtal. UI |
| Elhandel fast (kr/mån) | 55.20 | Elleverantörens fasta månadsavgift. UI |
| Panellutning (°) | 45 | Används i solmodellen för GTI-beräkning. Måste matcha backend PANEL_TILT. UI |
| Panelazimut (°) | −68 | 0=söder, −90=öster, +90=väster. Negativt = öst om syd. Måste matcha PANEL_AZ. UI |
| Batteriverkningsgrad (%) | 95 | Round-trip-effektivitet. LiFePO4 ≈ 95 %. UI |
| Start-SoC (%) | 50 | Startantagande i SoC-simulering för dagar utan historik. UI |
Dessa är inbyggda i index.html och speglar specifika vanor och rutiner
i ursprungshushållet. De kräver en kodredigering för att ändras, men är tydligt
markerade med kommentarer.
isStaddag() (rad ~2165)Detekterar varannan-torsdag som städdag baserat på ISO-veckonummer. Ankarveckan är 2025-W24 (12 juni 2025) = jämna veckor. Ändra ankaret om din städdag infaller på udda veckor, annan veckodag, eller annan frekvens.
// Ändra dessa rader i isStaddag(): if (dt.getDay() !== 4) return false; // 4 = torsdag (0=sön … 6=lör) return isoWeek % 2 === 0; // 0=jämna, 1=udda veckor
TARIFF_SCHEDULE (rad ~1484)Anger när fast avgift och nätavgift ändrades. Används för att auto-fylla rätt värden i inställningspanelen beroende på vilket datum du tittar på. Lägg till en ny rad när din nätoperatör ändrar taxan.
const TARIFF_SCHEDULE = [ { from: '2026-06-01', fastAvgift: 590, natavgIn: 26.0 }, { from: '2000-01-01', fastAvgift: 390, natavgIn: 26.0 }, // baseline ];
APPLIANCES (rad ~2209)Varje apparat har förbrukningsprofil och tillåtna tidsfönster per dagtyp (vardag / helg / helgdag). Anpassa till dina vanor — t.ex. när du diskar, tvättar, lagar mat.
| Apparat | kWh/cykel | Timmar/cykel | Vardag: fönster |
|---|---|---|---|
| Diskmaskin | 1.2 | 3.5 | 07–11 (frukost) eller 19–23 (middag) |
| Tvättmaskin | 0.8 | 3.0 | 07–21 |
| Torktumlare | 2.5 | 1.0 | 07–22 |
| Ugn | 1.5 | 1.0 | 11–21 (lunch eller middag) |
| Dammsugare | 0.3 | 0.5 | 08–20 |
Förbrukningsvärdena är avrundade typvärden — se din apparats etiketter eller Energimyndighetens databas för exakta mätvärden.
Samtliga cron-jobb körs i UTC. Justera om du befinner dig utanför CET/CEST-zonen.
| Schema (UTC) | Endpoint | Syfte |
|---|---|---|
| 0 1 * * * | /api/collect?action=autofill&days=3 | Nattlig bakåtfyllning av chartdata |
| 0 3 * * * | /api/weather | Daglig vädercache-uppdatering |
| 0 4 * * * | /api/solar_model?action=build | Bygg om solmodellen (90 dagars data) |
| 0 6 * * * | /api/save_prices?area=SE3 | Hämta dagens spotpriser |
| 0 8 * * * | /api/grid?action=fetch | Hämta nationell elproduktionsmix |
| 0 13 * * * | /api/save_prices?area=SE3&date=tomorrow | Hämta morgondagens spotpriser (efter Nordpool) |
| 0 20 * * * | /api/growatt_tou?action=notify_reset | Återställ TOU-notifieringstillstånd |
| 10 22 * * * | /api/growatt_tou?action=build_suggest | Bygg TOU-förslag för morgondagen |
area=SE3 till ditt prisområde i de två save_prices-cronerna och
i konstanten AREA i api/growatt_tou.py.
build_suggest, save_prices, autofill) bör triggas
via cron-job.org istället.
Det externa insamlingsjobbet (/api/collect) körs redan där var 5:e minut.
README.md.SUPABASE_URL och SUPABASE_KEY i index.html (~rad 1576) till dina egna.LAT, LON, PANEL_TILT, PANEL_AZ i tre Python-filer: solar_model.py, growatt_tou.py, weather.py.BATT_KWH och tariffkonstanterna i growatt_tou.py.area=SE3 till ditt elprisområde i vercel.json.index.html (~rad 1093–1110).TARIFF_SCHEDULE (~rad 1484) och APPLIANCES (~rad 2209) till dina egna tariffer och vanor.GET /api/status — kontrollera att logged_in: true och att env_ok: true returneras.GET /api/collect manuellt för att fylla in de första datapunkterna.