Miksi kaikki rakennettiin uudelleen

Tämä sarja ei ala automaatioista. Se alkaa siitä, miksi automaatiot eivät enää riittäneet.
Keväällä 2026 minulla oli toimiva järjestelmä.
Maalämpöpumppu ohjautui pörssisähkön mukaan. Sähköauto latautui halvimmilla tunneilla. Aurinkotuotanto näkyi kojelaudalla. LED-nauha seinällä kertoi energiatilanteen yhdellä vilkaisulla.
Sitten aloin suunnitella tätä sarjaa. Tavoitteeni oli yksinkertainen: dokumentoida miten järjestelmä toimii.
Törmäsin ongelmaan jo ensimmäisellä sivulla.
Järjestelmä ei ollut rikki. Se oli kasvanut.
Yhdessä vaiheessa sähköauton latausta ohjasi käytännössä kolme eri logiikkaa samaan aikaan. Yksi automaatio halusi ladata halvimmilla tunneilla. Toinen reagoi aurinkoylijäämään. Kolmas valvoi pääsulakkeita ja pudotti kuormaa tarvittaessa.
Kaikki toimivat yksinään oikein. Ongelma oli, ettei kukaan enää varsinaisesti omistanut latauksen ohjausta.
Kun järjestelmään lisättiin vielä uusia ehtoja, aloin huomata jotain epämukavaa: en enää pystynyt varmasti sanomaan, mikä logiikka kulloinkin päätti mitä tapahtuu. Järjestelmä ei ollut varsinaisesti rikki. Mutta se ei ollut enää hallittu.
Toinen ongelma tuli aurinkosähkön hyödyntämisessä. Data oli selkeä: vuoden mittausjaksolla yli 60 prosenttia aurinkotuotannosta meni verkkoon myyntihintaan, joka oli noin neljäsosa ostosähkön hinnasta. Oman käytön kasvattaminen olisi taloudellisesti merkittävää. Mutta kun mietin, miten lisäisin älykkäämmän kuormansiirron aurinkotunneille, törmäsin seinään.
En uskaltanut enää laajentaa olemassa olevaan järjestelmään.
Jokainen uusi ominaisuus kasvatti samalla riskiä siitä, että jokin vanha logiikka käyttäytyisi odottamattomasti. En tiennyt mihin uusi ohjaus kuuluisi — enkä pystynyt varmistamaan mitä sivuvaikutuksia sillä olisi.
Tämä oli tärkeä havainto. En ollut enää rakentamassa järjestelmää — olin ylläpitämässä kasvua jota en täysin ymmärtänyt.
Kasvu ilman rakennetta
Vuosien varrella oli syntynyt kymmeniä YAML-automaatioita ilman pakettirakenetta. Hintalogiikka, EV-ohjaus, lämpöpumppu, aurinkotuotanto ja LED-visualisointi olivat kehittyneet omina projekteina omaan tahtiinsa. Jossain vaiheessa ne alkoivat vaikuttaa toisiinsa tavoilla, joita ei ollut suunniteltu.
Dashboard oli täynnä kokeiluja, joista osa oli käytössä, osa ei. Sulakevahdin logiikka oli kirjoitettu yhteen paikkaan mutta siihen viitattiin kolmesta eri kohdasta eri tavoin. Kun halusin lisätä uuden ohjauksen, en tiennyt mihin se kuuluu — enkä uskaltanut ottaa riskiä.
Sama ongelma näkyi myöhemmin myös HEOMF-työssä, jossa kotitalouden energiajärjestelmää analysoitiin laajemmin: optimointi ei ensisijaisesti hajoa automaatioihin, vaan arkkitehtuuriin niiden alla. Jos ohjausvastuu ei ole selkeä, järjestelmä on hauras riippumatta siitä kuinka hyvin yksittäiset osat toimivat.
Siinä oli ongelma. Ja sen nimi oli:
Ohjausvastuu ei ollut selkeä.
Päätös
Päätin rakentaa uuden EnergyHub-pohjan.
Ei siksi, että Home Assistant olisi lakannut toimimasta. Vaan siksi, että vanha järjestelmä oli kokeiluympäristö — ja se oli saavuttanut rajansa. En voinut enää luotettavasti laajentaa, auditoida tai selittää sitä. Ja jos en pysty selittämään järjestelmää, en pysty myöskään luottamaan siihen.
Uusi alusta rakennettiin Lenovo ThinkCentre mini-PC:lle Debian-käyttöjärjestelmän päälle Docker Compose -rakenteella. Home Assistant toimii integraatiokerroksena — ei optimointimoottorina. Node-RED ottaa vastuun päätöksenteosta. MQTT on järjestelmien välinen selkäranka.
Mutta tekninen pino on toissijainen asia. Tärkeämpää on se, mitä arkkitehtuurilla tavoitellaan:
Siirrytään kokeiluympäristöstä hallittuun energiainfrastruktuuriin.
Tämä tarkoittaa käytännössä, että jokaisella järjestelmän osalla on selkeä rooli — ja vain yksi rooli. Mittaus on mittausta. Päätöksenteko on päätöksentekoa. Ohjaus on ohjausta. Turvalogiikka toimii itsenäisesti riippumatta siitä, onko optimointikerros pystyssä vai ei.
Tähän liittyy yksi suunnitteluperiaate, joka ohjaa koko EnergyHub-rakennetta:
Järjestelmän pitää toimia taustalla ilman päivittäistä seurantaa tai säätöä.
Ihminen puuttuu kuvaan kahdessa tilanteessa: kun muuttaa talon tilaa — lähtee lomalle, kutsuu vieraita, haluaa saunan tiettyyn aikaan — tai kun haluaa tehdä manuaalisen ohituksen. Muuten järjestelmä hoitaa itse. Se priorisoi, toipuu häiriöistä ja tunnistaa hiljaiset viat — ilman että kukaan katsoo.
Autonomia ei synny yksittäisistä automaatioista. Se syntyy rakenteesta.
Se kuulostaa yksinkertaiselta. Mutta se vaatii rakenteen, ei vain hyvää tarkoitusta.
Mitä tämä sarja näyttää
Tämä ei ole tutoriaali eikä valmis ratkaisu.
Se on dokumentaatio oikeasta toteutuksesta, oikeassa talossa, oikeine ongelmineen — mukaan lukien ne päätökset joita katuu ja ne joita ei. Mukana on myös kustannukset, sekä eurot että aika.
Sarja etenee rakentamisen logiikassa. Ensin katsotaan lähtötilanne rehellisesti: mitä vuoden data kertoo ennen kuin uusi järjestelmä on pystyssä. Sitten käydään läpi arkkitehtuuripäätökset — valinnat jotka tehtiin ennen koodia. Sen jälkeen rakennetaan kerros kerrokselta: integraatiokerros, optimointikerros, kenttäohjaukset laitteittain. Lopuksi katsotaan operointi — miten järjestelmä pidetään toiminnassa vuosien ajan, ei vain käyttöönottopäivänä.
Jokaiseen tekniseen toteutukseen on linkki erilliseen ohjeartikkeliin. Pääsarjan voi lukea ilman niitä.
Ennen kuin mennään eteenpäin
Yksi asia kannattaa sanoa suoraan.
Tässä talossa on 13,2 kWp aurinkovoimala, maalämpöpumppu, sähköauto ja nyt uusi EnergyHub-alusta. Järjestelmä on lähtökohtaisesti enemmän kuin mitä useimmissa kotitalouksissa on.
Mutta sarjan ydinajatus ei ole tämän talon kopioiminen.
Se on sen osoittaminen, miten energiajärjestelmää kannattaa ajatella. Sama kerrosarkkitehtuuri, sama vastuunjako, sama ajattelu ohjausvastuusta toimii pienemmässä talossa, yksinkertaisemmalla laitteistolla, matalammalla kypsyystasolla.
Mittakaava muuttuu, rakenne ei.
Seuraavassa osassa: mitä vuoden data kertoo ennen optimointia — kulutuksen anatomia, tehopiikit ja aurinkosähkön todellinen arvo tässä taloudessa.
HEOMF-arkkitehtuurisarjan löydät täältä. White paper HEOMF-kypsyysmallista löytyy täältä.