Egy körmendi családi ház napelemes rendszere kikerült a szaldó elszámolásból, amelyben a betáplált és a vételezett energia kiegyenlítette egymást. Azóta a tulajdonos a hálózatból vett áramért kilowattóránként nagyjából 75 forintot fizet, a betáplált áramért pedig nagyjából 5 forintot kap. A villanyszámlája havi néhány tízezer forintról havi több százezer forintra nőtt. A háztartásban egy Tesla Model S Long Range is töltődik, így a legkézenfekvőbb kérdés az lett, hogyan tölthetne az autó a saját termelésből.
Ilyen árarány mellett minden kilowattóra, amelyet az autó a napelemes többletből tölt, nagyjából tizenötször annyit ér, mint ha a hálózatba menne. A megrendelő kérése ezért egyszerű volt: az autó csak akkor töltsön, amikor a ház ténylegesen exportál. A megvalósítás viszont nem egyszerű, mert ezt sem a töltő, sem az inverter nem tudja magától. A többletet a hálózati csatlakozásnál, fázisonként kell mérni, a töltőáramot pedig az autón keresztül kell szabályozni.
Erre a kombinációra nem találtunk kész, működő megoldást, ezért az ESH Systems egyedi töltésvezérlést írt a Home Assistant (nyílt forrású otthonautomatizálási szoftver) és a Node-RED (vizuális programozási környezet) alapján. A megoldás három kérdésen állt vagy bukott: hol mérjünk, min keresztül vezéreljük az autót, és mit kezdjünk azzal, hogy egy 5 kW-os inverter ritkán termel annyi többletet, amennyiből egy háromfázisú autótöltés elindulhat.
Miért nem elég az inverter adata?
Az inverter azt tudja, mennyit termel a napelem, de azt nem, hogy ebből mennyit használ el közben a ház. Ha a töltésvezérlés csak a termelést nézné, egy mosás vagy a vízmelegítő bekapcsolása mellett is elindítaná az autót, és a töltés egy része a hálózatból jönne, ugyanazért a 75 forintért. A tisztán napelemes töltéshez ezért az kell, ami a ház és a hálózat határán történik.
A ház hálózati csatlakozásához ezért beépítettünk egy Shelly 3EM-63T Gen3 háromfázisú fogyasztásmérőt, amely fázisonként méri a teljesítményt és a feszültséget. Ha egy fázison a mért teljesítmény negatív, a ház azon a fázison éppen betáplál: ez a valódi, szabadon felhasználható többlet. A mérő beépítése a főáramkörbe villanyszerelői munka.
Az inverter adatait ettől függetlenül is bekötöttük a Home Assistantbe. A SolarEdge háromfázisú, 5 kW-os inverterén az előlap leszerelése után engedélyezni kellett a Modbus TCP-t, a gyártói helyi adatinterfészt. Ezután a Home Assistant a helyi hálózaton, a gyártói felhő nélkül olvassa a termelési adatokat. Ezek a vezérlőpulton és a visszakövetésnél hasznosak, a töltési döntés viszont a csatlakozási ponton mért értékre épül.
A töltőáramot nem a töltő, hanem az autó állítja
A Tesla Wall Connector töltő Wi-Fi-n csatlakozik, és könnyen beköthető a Home Assistantbe. A vezérlés számára fontos adatokat innen kapjuk: fázisonkénti feszültség és áram, valamint a csatlakoztatott jármű azonosítója. A töltőteljesítményt viszont ezen az úton nem lehet állítani. Ezt csak az autó engedi, vagyis a vezérlésnek az autóval kell beszélnie.
Az autó hivatalos távoli interfésze a Tesla Fleet API. A Home Assistantbe kötése körülményes, mert saját fejlesztői hozzáférést, kulcsokat és OAuth-alapú bejelentkezést kell hozzá létrehozni. A nagyobb korlát a díjazás. A Tesla fejlesztői dokumentációja szerint a Fleet API használatarányos díjazású, magánhasználatra fiókonként havi 10 dollár kedvezmény jár, és a keretet túllépő alkalmazás hozzáférését a rendszer automatikusan letiltja (2026. szeptember 30-i állapot). Egy töltésvezérlés, amely ötmásodpercenként dönt, ha minden döntést parancsként küldene az autónak, ezt a keretet gyorsan felélné, és a keret végén leállna.
Ezért az autó vezérlésének két útja van. Az elsődleges egy ESP32-alapú Bluetooth-híd az autó közelében: ezen keresztül a töltés indítása, leállítása, a töltőáram és a töltési korlát beállítása a házon belül, internet és API-költség nélkül történik. A Fleet API csak tartalék: akkor megy rajta a parancs, ha a Bluetooth-híd nem elérhető. A programot emellett úgy írtuk meg, hogy a lehető legkevesebb API-hívással dolgozzon.
A vezérlés felépítése is ezt a kettősséget szolgálja. A döntési algoritmus nem közvetlenül az autót kapcsolja, hanem egy belső töltéskapcsolót és egy belső áramértéket állít a Home Assistantben. Ezeket egy külön réteg adja tovább a Bluetooth vagy a Fleet API felé. Ha az autó vezérlési útja később megváltozik, csak ezt a réteget kell módosítani, a döntési logikát nem.
Három fázis: mindig a leggyengébb dönt
A háromfázisú autótöltés mindhárom fázison közel azonos áramot vesz fel, ezért a töltőáramot nem a három fázis összesített többletéből számoljuk, hanem abból a fázisból, amelyiken a legkevesebb a többlet. Ha az egyik fázison épp a mosógép vagy a vízmelegítő fut, az korlátozza a teljes töltést. Ez szándékosan óvatos megközelítés: nem enged olyan töltőáramot, amelyet valamelyik fázison nem fedez a napelem.
A második csapda az, hogy töltés közben a csatlakozási ponton mért érték már az autó fogyasztását is tartalmazza. Ha a vezérlés ezt nem venné figyelembe, a töltés indulása után azt látná, hogy eltűnt a többlet, és leállítaná a töltést. A leállás után megint többletet látna, és újraindítaná. A program ezért a Wall Connector fázisonkénti feszültség- és árammérésből kiszámolja az autótöltés pillanatnyi teljesítményét, és kivonja a ház mért teljesítményéből. Ami marad, az a ház autó nélküli exportja; ezt a fázisfeszültséggel elosztva kapjuk meg, hány amper jutna fázisonként az autónak.
A számok itt szigorúak. A vezérlés 6 és 16 A között állítja a töltőáramot. Fázisonként 6 A 230 V-on nagyjából 1,4 kW, három fázison együtt körülbelül 4,1 kW. Az 5 kW-os inverter teljes terhelésen fázisonként nagyjából 7 A-t ad le: a vezérlőpult egyik pillanatképén 4979 W-os termelés mellett fázisonként 7,14 A-t mutatott. Az autó legkisebb töltőárama tehát az inverter csúcsteljesítményének több mint 80%-át igényli, és ebből még a ház saját fogyasztását is fedezni kell. A tisztán napelemes töltés ezért csak erős termelésű órákban, alacsony házi fogyasztás mellett indulhat el. Napelemes üzemben a töltőáramot 8 A-ben maximáltuk, mert ennél többet az inverter fázisonként nem tud adni.

Négy üzemmód, mert a tiszta napelemes töltés ritkán indulna
A megrendelő a Home Assistant vezérlőpultján négy töltési mód közül választhat. A módok abban különböznek, mennyi hálózati vételezést engednek meg a gyorsabb vagy gyakoribb töltésért cserébe.
| Mód | Mikor tölt | Töltőáram | Hálózatból vett áram |
|---|---|---|---|
| Napelem | ha mindhárom fázison legalább 1350 W a többlet | a leggyengébb fázis többletéből, 6–8 A | elvben nincs; a minimális bekapcsolási idő alatt átmenetileg lehet |
| Optimalizált | ha mindhárom fázison legalább 600 W a többlet | legalább 6 A, a többlettel együtt nő, legfeljebb 8 A | a küszöb közelében a töltés nagyobbik része |
| Maximális | amíg el nem éri a töltöttségi célt | fixen 16 A | a termeléstől függetlenül annyi, amennyi hiányzik |
| Ki | nem tölt | – | – |
A napelem mód küszöbe azért fázisonként 1350 W, mert nagyjából ennyi kell a 6 A-es legkisebb töltőáramhoz. Ez a mód felel meg pontosan a megrendelő eredeti kérésének, de a fenti számok miatt ritkán indul el.
Az optimalizált mód ezért tudatos kompromisszum. Már fázisonként 600 W többletnél elindítja a töltést 6 A-rel, és a hiányzó részt a hálózatból veszi. A küszöbön a 6 A-es töltés fázisonként nagyjából 1,4 kW-ot vesz fel: ebből 600 W jön a napelemből, körülbelül 800 W a hálózatból. A küszöb közelében tehát a töltőteljesítmény több mint fele még vásárolt áram, és ez az arány a többlet növekedésével csökken. Cserébe az autó jóval több napos órában tölt, és a többlet kevesebb része megy 5 forintért a hálózatba. Hogy melyik mód éri meg jobban, az a napi termelésen, a ház fogyasztásán és azon múlik, mennyi töltés kell az autónak.
A maximális mód gyorstöltésre való, amikor az autónak másnap reggelre kell. Minden módban érvényes a Home Assistantben beállított töltöttségi cél: ha az akkumulátor elérte, a töltés leáll, akkor is, ha lenne még napelemes többlet. A célértéket a vezérlés az autó saját töltési korlátjába is átírja, így a két beállítás nem kerülhet ellentmondásba.

Ami a vezérlést kiszámíthatóvá teszi
Egy átvonuló felhő percek alatt eltüntetheti a többletet, majd visszahozza. Ha a vezérlés erre azonnal reagálna, a töltés percenként ki-be kapcsolna, ami az autó és a kommunikáció szempontjából is kedvezőtlen, és minden kapcsolás egy újabb parancs. Ezért a napelem és az optimalizált módban a töltés indulás után legalább 240 másodpercig fut; ha közben elfogy a többlet, nem áll le azonnal, hanem 6 A-re csökken. Leállás után pedig legalább 120 másodpercig nem indul újra.
A hibás mérés ugyanilyen fontos kérdés. A program minden ciklusban ellenőrzi, hogy a döntéshez szükséges értékek érvényesek-e. Ha egy mérés elérhetetlen vagy nem értelmezhető, a töltés 60 másodpercig 6 A-en fut tovább, és ha a hiba ennél tovább tart, leáll. Ha valamelyik mért fázisfeszültség 50 V alá esik, azt is hibás mérésnek veszi, mert egy hibás feszültségértékkel osztva irreálisan nagy áram jönne ki.
A vezérlés csak akkor dolgozik, ha a Wall Connectorhoz a megrendelő autója csatlakozik; ezt a töltő által jelentett járműazonosító alapján ellenőrzi. Minden döntéshez szöveges állapotüzenet tartozik, amely azt is megmondja, miért történt: melyik mód aktív, mennyi a többlet fázisonként, melyik fázis korlátoz, és hol tart az akkumulátor a célhoz képest. Egy ilyen üzenet formája például: „Napelem mód: töltés engedélyezve, céláram 6 A. L2 limitál. Akku: 62/80%.” Ebből a megrendelő és a karbantartó is látja, mi miért történik.
A ház főbiztosítékát egy ettől független védelem óvja. A töltőhöz külön teljesítménymérőt építettünk be, amely Cat6 UTP kábelen, RS485-ös kapcsolaton közvetlenül a Wall Connectorral kommunikál. A töltő így maga is tudja, mennyi áram fut a ház betáplálásán, és ennek a védelemnek nem kell hozzá sem a Home Assistant, sem a hálózat.
Vízmelegítő, háztartási gépek, garázskapu, kaputelefon
A napelemes többletet az autó mellett a használati melegvíz-tartály fűtőbetétje is használja. A betét egyfázisú, ezért egy okos dugalj kapcsolja, amelynek terhelhetőségét a betét áramfelvételéhez mértük. A mosógépre és a szárítógépre fogyasztásmérős okosmodulok kerültek: ezekkel a gépek áramtalaníthatók, látszik a fogyasztásuk, és a teljesítményfelvétel alapján a rendszer értesít, amikor egy program lejárt. A meglévő robotporszívó is bekerült a rendszerbe, és szól, ha a szűrői élettartamuk végéhez közelednek.
A munka közben két további kérés jött. A garázskapuhoz csak egy távirányító volt, ezért a kaput most telefonról is lehet nyitni: egy ESPHome-mal (nyílt forrású eszközszoftverrel) futó Shelly relé vezérli, és a relében bekapcsoltuk a Bluetooth-proxy funkciót. Így a garázsajtóra ragasztott Bluetooth-os Shelly nyitásérzékelő jelét ez a relé továbbítja a Home Assistantnek, és a kapu állapota is látszik.
A régi kaputelefon tönkrement, a helyére egy Wi-Fi-s Reolink videós kapucsengő került a kerítésre. Ennek nincs relékimenete a mágneszár nyitásához, ezért ide is egy ESPHome-os Shelly 1 Gen3 került: a bemenetére a helyszíni nyomógomb, a relére a mágneszár csatlakozik. Az ESPHome-os megoldás azért jobb itt, mert a Home Assistantben két külön beállítás jött létre: egy kapcsoló, amely a fizikai nyomógombot engedélyezi vagy tiltja, és egy számérték, amely megadja, hány másodpercig legyen nyitva a zár egy nyitási parancs után. Ha a család nincs otthon, a nyomógomb tiltva van, így a kerítésen átnyúlva sem lehet kinyitni a kaput. A zár és a kapucsengő tápegységét is cserélni kellett. Csengetéskor a megrendelő telefonja csörög, beszélni tud a csengetővel, és kameraképes értesítést kap, amelyből egy gombnyomással nyithatja a kaput. A csengő kültéri és beltéri egységének beállításai is a Home Assistantből érhetők el.

Hálózat és szerver: amire az egész épül
A rendszer egy i5-ös processzorral és 8 GB memóriával szerelt mini PC-n fut, amelyen Proxmox virtualizációs környezet alatt külön fut a Home Assistant OS és egy Debian rendszer a további szolgáltatásoknak. Egy ilyen vezérlés sok hálózati eszközre támaszkodik (inverter, töltő, mérők, relék, kamera), és ezeknek állandó címen kell elérhetőnek lenniük, különben a Home Assistant egy újraindítás után elveszítheti őket.
A szolgáltatói routerben legfeljebb 10 fix IP-címet lehetett kiosztani, és ezek munka közben elfogytak. A routert ezért egy MikroTik L009UiGS-RM eszközre cseréltük. A házban már voltak UniFi hozzáférési pontok, de vezérlőszoftver nélkül; ezeket alaphelyzetbe állítottuk, és a vezérlőjüket a Home Assistant OS alá telepítettük, így a Wi-Fi-hálózat is egy helyről kezelhető. A megrendelő az otthoni hálózatát kívülről az ESH Systems által biztosított, titkosított VPN-kapcsolaton keresztül éri el.
Az autóhoz, a házhoz és az inverterhez külön energia-vezérlőpultok készültek. Ezeken a pillanatnyi állapot mellett visszakövethető, mikor mennyi volt a termelés, a fogyasztás és a betáplálás, és innen állítható a töltési mód és a töltöttségi cél is.
Ha neked is napelemed és elektromos autód van
Ha a napelemes rendszered már nem szaldóban számol, és elektromos autót töltesz otthon, három kérdést érdemes feltenni, mielőtt bármilyen töltésvezérlést választasz vagy rendelsz.
Az első: hol méri a rendszer a többletet? Ha csak az inverter termeléséből dolgozik, nem tudja, mennyit fogyaszt közben a ház, és a töltés egy része a hálózatból jön. Megbízható döntést csak a hálózati csatlakozásnál, fázisonként mért érték ad.
A második: mekkora az inverter a töltés legkisebb teljesítményéhez képest? Háromfázisú töltésnél a 6 A-es minimum is nagyjából 4,1 kW. Ha az inverter ennél nem sokkal nagyobb, a tisztán napelemes töltés ritkán indul el, és el kell dönteni, mennyi hálózati vételezést fogadsz el cserébe a gyakoribb töltésért.
A harmadik: min keresztül állítható a töltőáram? Ha csak egy díjköteles felhős interfészen, akkor a vezérlés gyakoriságát a díjkeret is korlátozza, és a felhő kiesésekor a vezérlés is leáll. Érdemes megnézni, van-e helyi vezérlési út a töltőhöz vagy az autóhoz.
Ha meglévő napelemes rendszert és töltőt egészítenél ki ilyen vezérléssel, és nem tudod, a mostani eszközeid mit tesznek lehetővé, egy átvilágítással érdemes kezdeni. Erről a tanácsadás oldalon olvashatsz.
Szerző: Török Balázs, ESH Systems