Du har solceller på taket, ett batteri i garaget, en elbil och en värmepump. Varje dag dyker samma frågor upp. Ska batteriet laddas nu eller senare? Är bilen klar till sju? Lönar det sig att köra värmepumpen före kvällens pristopp? Och vem ska hålla reda på allt det?
Det gör FTW. FTW är Sourcefuls öppna EMS: ett energistyrsystem med öppen källkod som kör i ditt hus på en liten dator, med webbapp, öppna drivrutiner för hårdvara, prognoser, optimering och lokal säkerhetsstyrning. Det är den öppna programvaran bakom plattformen för elnätsanslutningen. Det här inlägget förklarar hur det tänker, varför det aldrig slutar justera, och hur vi kollar på ett riktigt hus att det faktiskt sparar pengar. FTW:s kärna, klienter och drivrutiner är öppen kod. Planeraren i den, Energyplan, är Sourcefuls egen proprietära programvara. Metoden är öppen: mät på ett riktigt hus, publicera siffrorna och rätta dem öppet när de var fel.
Två delar, två jobb
Tänk på en lång bilresa. Innan du åker planerar du vägen: vilka vägar, var du stannar, när du måste vara framme. Sedan kör du, och du bromsar för bilen framför och styr genom kurvan utan att göra om hela ruttplaneringen. FTW har båda de jobben, och de görs av två olika delar.
Planeraren tänker framåt. Den tittar på de kommande två dygnen: elpriserna, väderprognosen, hur mycket ditt hus brukar använda, hur fullt batteriet är, när bilen måste vara klar. Utifrån det räknar den ut det billigaste sättet att köra huset utan att bryta några regler: huvudsäkringen, batteriets gränser, din komfort. Den kan inte pröva varje kombination, de är alldeles för många. I stället räknar den baklänges från slutet av de två dygnen, frågar i varje steg vad det är värt att ha batteriet på varje nivå, och läser av bästa draget för just nu. På en liten dator som en Raspberry Pi tar det en bråkdel av en sekund.
Kontrollloopen agerar nu. Den bor alldeles intill hårdvaran och kör hela tiden. Den utför planerarens beslut och håller huset inom sina gränser, huvudsäkringen först av allt, och den gör det på millisekunder, utan att vänta på en ny plan. Om ugnen, billaddaren och värmepumpen drar samtidigt är det kontrollloopen som håller dig på rätt sida av säkringen.
Ingen av delarna kan göra den andras jobb. En kontrollloop ensam vet inte att elen blir billig klockan tre på natten. En planerare ensam kan inte reagera på millisekunder. Båda har sin roll i FTW.
Vill du ha den långa versionen av hur planeraren tänker spelade jag in en fördjupning för min podd Coordinated with Fredrik: Subject To. Den handlar om vad en optimerare egentligen gör, varför priset ramlar ut ur svaret som en biprodukt, och varför ett optimalt beslut så ofta känns fel i efterhand.
Varför den aldrig slutar justera
Många energisystem gör ett schema om dagen. Morgondagens priser publiceras runt klockan 13, en server räknar fram en plan, och planen gäller tills nästa. Din dag fungerar inte så. Molnen kommer in. Du kommer hem tidigt och pluggar in bilen. Någon sätter på bastun.
Så FTW behåller inte sin plan. Den gör en tvådygnsplan, utför bara nästa kvart, och kastar sedan planen och gör en ny. Som standard varje kvart, året runt. Och när huset använder mer eller mindre än prognosen sa, eller solen gör något annat, planerar planeraren om direkt i stället för att vänta. Eftersom en plan tar en bråkdel av en sekund kan den göra det så ofta som varje minut. Under tiden håller kontrollloopen huset säkert mellan planerna.
Det är hela poängen med en snabb planerare. Planen för i kväll är bara en gissning. Beslutet för nästa kvart är det som når batteriet, och det beslutet är alltid färskt. Du behöver inte röra någonting.
Allt kör i huset utan moln i styrkedjan. Ingenting väntar på att en server ska svara. Snabba beslut och säkerhetsgränser stannar i huset, även när internet ligger nere.
Hur vet vi att den faktiskt sparar pengar?
En rimlig fråga. Vilken app som helst kan visa en snygg graf. Det enda test som räknas är vad som faktiskt hände i ett riktigt hus.
Så vi spelar in varje situation huset går igenom: batterinivån, prognoserna, priserna, allt planeraren visste i det ögonblicket. Vilken som helst av dem kan spelas upp igen senare, så att två versioner av planeraren kan köras på samma situation och jämföras. När vi ändrar något fortsätter den gamla versionen att köra bredvid den nya ett tag. Den styr ingenting. Den loggar bara var de två är oense.
Det stränga testet är att ta en riktig vecka och spela upp den ordentligt: börja från det läge huset faktiskt var i, låt planeraren bara göra sitt första drag varje kvart, och debitera den för det draget mot solen, förbrukningen och priserna som de verkligen blev. En plan på papper kan se billig ut. Det här testet säger vad den hade kostat dig.
Vad en riktig vecka lärde oss
Vi lade en gång en månad på en liten men konsekvent skillnad mellan två versioner av planeraren, och hade fel om orsaken tre gånger. Varje gång dödade en mätning idén inom ett dygn. Sedan körde vi det stränga testet på en riktig vecka, 24 till 31 augusti, och det visade vad som faktiskt påverkar notan.
| Vad vi ändrade | Effekt på veckans kostnad | Hur ofta batteriet gjorde något annat |
|---|---|---|
| Hur energi kvar i batteriet vid planens slut värderas | 0 kronor | 0 av 550 |
| Gissningen om morgondagens priser | 0,23 kronor | 4 av 550 |
| Att veta sol, förbrukning och priser i förväg | 15,49 kronor billigare, 21 % | 316 av 550 |
Läs det så här. De två första raderna rubbar knappt notan, och vårt test kan inte skilja så små tal från brus: den simulerade kostnaden låg 13 % över vad mätaren faktiskt registrerade, så allt som är mindre än så ligger inom felmarginalen. Begränsningarna är också verkliga: ett hus, ett elområde, och tre användbara dygn, eftersom lådan låg nere 91 timmar den veckan.
En rad är annorlunda. Hade planeraren i förväg vetat exakt hur mycket sol som skulle komma, hur mycket huset skulle använda och vad priserna skulle bli, hade veckan kostat 21 % mindre, ungefär 5 kronor om dagen på det här huset. Ingen vet det i förväg. Men bättre prognoser tar en del av vägen dit, och det är där vi jobbar nu.
Två saker datan rättade på vägen
Att mäta hittar också sådant ingen letade efter.
Planeraren planerar på lite mindre sol än prognosen lovar, så att en mulen eftermiddag inte lämnar huset kort. Den gamla säkerhetsmarginalen drog av samma fasta mängd varje kvart, vilket raderade morgonens och kvällens sol helt. Den försiktigheten kostade 25 till 65 kronor per plan. Nu skalar marginalen med hur mycket sol som väntas.
Och en plan som låg exakt på säkringsgränsen underkändes för en avrundningsskillnad på ungefär en miljarddels watt. Huset föll tyst tillbaka på en reservplanerare och sa ingenting. En liten tolerans löste det. Inget av felen stod på någons lista. Båda fanns i datan.
Vad det betyder för dig
- Ditt batteri, din bil och din värmepump följer en plan som aldrig är mer än en kvart gammal, och ofta färskare. Du behöver inte röra någonting.
- Huvudsäkringen och batteriets gränser vaktas i huset, på millisekunder, och huset fortsätter köra när internet inte gör det.
- Systemet testas mot verkliga utfall, inte en demo, och det vi hittar publiceras, även de siffror vi fick rätta.
Öppen kod, öppen metod
Ett hemenergisystem tjänar sina pengar på att göra det förnuftiga varje kvart, året runt, i en låda ingen tittar på. Det enda sättet att veta att det är förnuftigt är att mäta det mot vad som faktiskt hände, inte mot vad vi trodde skulle hända. Så bygger vi FTW. Öppen kod tar inte bort ansvar: Sourceful driver den hostade plattformen, den krypterade relay-åtkomsten, de integrationer som stöds och avtalad drift, och publicerar det gemensamma lagret så att andra kan granska det, lägga till hårdvara och köra det. Själva planeraren, Energyplan, ingår inte i det öppna lagret. Den är Sourcefuls egen proprietära programvara, gratis för privata hushåll som kör FTW och separat licensierad för kommersiellt bruk.
Sammanfattning
- FTW har två delar. Planeraren tänker två dygn framåt och hittar det billigaste sättet att köra huset. Kontrollloopen sitter intill hårdvaran och håller huset säkert och på plan, på millisekunder.
- Planeraren utför bara nästa kvart och planerar sedan om: var 15:e minut som standard, och direkt när huset eller solen gör något annat än prognosen.
- Allt kör i huset, med säkerhetsgränserna vaktade lokalt, även utan internet.
- Vi testar det mot vad som faktiskt hände i ett riktigt hus och publicerar siffrorna, även dem vi fick rätta.
- Med en perfekt prognos hade det här huset betalat 21 % mindre den veckan. Bättre prognoser är dit arbetet går härnäst.
Läs mer på vår open source-sida, kör FTW själv med Home Assistant-tillägget (beta), eller följ projekten på GitHub. Vill du ha den långa versionen av hur en planerare tänker, lyssna på Subject To i Coordinated with Fredrik.