A SpotLogic felhőszolgáltatás, amely a spot villamosenergia-piac alapján kiszámítja egy napelemes akkumulátor töltési és kisütési tervét. Számítási szolgáltatás, nem adatforrás: a vezérlőegység elküldi az akkumulátor telemetriáját a napenergia-hozam előrejelzéssel, a ház fogyasztásának előrejelzésével, valamint a vételi és visszatáplálási árakkal együtt, a SpotLogic pedig az aktuális időszeletre vonatkozó paranccsal válaszol. Ez a sablon egy Packet Parser HTTP modullal köti össze a TapHome-ot a SpotLogic API-val HTTPS-en keresztül (spotlogic.cz, 443-as port). A parancsot olvassa, a telemetriát feltölti; a napelem invertert nem vezérli — a parancsot a telepítő saját smart rule-jai kötik össze a napelem inverterrel.
Nincs mit bekötni. A szolgáltatás beállítása annyit jelent, hogy aktiválod a SpotLogicot a helyszínre, összegyűjtöd az akkumulátor és a hálózati csatlakozás paramétereit, kimenő internet-hozzáférést adsz a vezérlőegységnek, és előkészíted az előrejelzési és ár-idősorokat.
A SpotLogicnak minden telemetria-feltöltésben szüksége van az előrejelzési és ár-idősorokra (napenergia-hozam és a ház fogyasztása mára és holnapra, vételi és visszatáplálási árak). Ez a sablon önmagában nem tudja kitölteni őket — lásd Előrejelzési és ár-idősorok. Amíg nincsenek kitöltve, a SpotLogic HTTP 422-vel elutasítja a telemetriát, nem számít tervet, és a parancs No plan értéken marad.
Konfiguráció
1. A SpotLogic aktiválása és a hozzáférési adatok megőrzése
Az eszköz aktiválásakor a SpotLogic e-mailben küldi el a PLC ID-t és a hozzáférési tokent (access token). A token titkos, pontosan egy PLC ID-hoz kötött, és az előfizetési időszakra érvényes. Mindkettő kizárólag az egyes kérések lekérdezési karakterláncában (query string) utazik (?plc_id=…&token=…), ahogy a SpotLogic szerződése előírja — soha nem a kérés törzsében.
Ne tedd a tokent megosztott dokumentumokba és nyilvános repozitóriumokba. A hibás PLC ID–token pár, az érvénytelen token és a lejárt előfizetés egyaránt HTTP 401-gyel végződik, és a SpotLogic szándékosan nem árulja el, hogy a három közül melyikről van szó.
2. Az akkumulátor és a hálózati csatlakozás paramétereinek összegyűjtése
A SpotLogic csak azokkal a számokkal tervez, amelyeket a telemetriában megkap. Az importálás előtt keresd ki őket a napelem inverter és az akkumulátor dokumentációjából, valamint a hálózati csatlakozási szerződésből:
| Érték | Honnan származik | Mértékegység |
|---|---|---|
| Akkumulátor-kapacitás | az akkumulátor adatlapja; 0-nál nagyobbnak kell lennie | kWh |
| Az akkumulátor maximális teljesítménye | egyetlen érték a töltésre és a kisütésre | kW |
| Maximális vételi teljesítmény a hálózatból | a főbiztosíték mérete; 0 azt jelenti, hogy a helyszín soha nem vételez a hálózatból | kW |
| Maximális visszatáplálási teljesítmény a hálózatba | a hálózati csatlakozás visszatáplálási korlátja; 0 azt jelenti, hogy a helyszín soha nem táplál vissza | kW |
| Az akkumulátor abszolút alsó határa | a napelem inverter gyártója által megengedett legalacsonyabb töltöttségi szint, alapértelmezés 10 | % |
| Akkumulátor-tartalék | tartalék, amelyből a terv soha nem ad el a hálózatba (például az előre nem látható fogyasztásra), alapértelmezés 10 | % |
Az akkumulátor aktuális töltöttségi szintjének is elérhetőnek kell lennie a TapHome-ban, jellemzően a napelem inverter saját integrációjából, hogy egy smart rule beírhassa ebbe a sablonba (lásd lent a Telemetria feltöltése részt).
3. A vezérlőegység hálózata és órája
- A vezérlőegységnek kimenő internet-hozzáférésre van szüksége HTTPS-en a
spotlogic.czcímre, a 443-as porton. A SpotLogic nem kapcsolódik vissza a vezérlőegységhez — az előrejelzési és ár-idősorok a telemetria-feltöltés törzsében utaznak, így egyetlen bejövő portot sem kell megnyitni. - A telemetria a vezérlőegység órája szerinti küldési időt tartalmazza, és a SpotLogic ebből építi fel a terv időablakát. Néhány perc eltérés ártalmatlan; több órás eltérés az egész tervet rossz időszeletekre tolja. Tartsd pontosan a vezérlőegység óráját.
- Az időzóna (IANA-név, például
Europe/Prague) határozza meg, hol ér véget a „ma” és hol kezdődik a „holnap”. Add meg a helyszín időzónáját.
4. Importálási paraméterek
A sablont a TapHome alkalmazás Packet Parser interfészébe kell importálni, és importáláskor a következő paramétereket kell kitölteni:
| Paraméter | Jelentés | Mértékegység |
|---|---|---|
| PLC ID, access token | az aktiváló e-mailből | — |
| Time zone | IANA-név, alapértelmezés Europe/Prague; ebből adódnak a terv napjainak határai | — |
| Battery capacity | 0-nál nagyobbnak kell lennie | kWh |
| Battery max power | egyetlen érték a töltésre és a kisütésre | kW |
| Max grid import / export power | 0 azt jelenti, hogy a helyszín soha nem vételez / soha nem táplál vissza | kW |
| Max state of charge | csak a SpotLogic rögzíti, a jelenlegi tervező nem érvényesíti | % |
| Hard battery floor | a napelem inverter gyártójától származó alsó határ, alapértelmezés 10 | % |
A számokat tizedesponttal írd (a vessző átalakításra kerül). A PLC ID és a token a PlcId és Token modulváltozókban tárolódik. Minden érték utólag is szerkeszthető marad modulváltozóként.
5. A hozzáférési adatok ellenőrzése
A SpotLogic interaktív API-dokumentációjában (a spotlogic.cz oldalon, a /docs alatt) található egy Authorize párbeszédablak a PLC ID-hoz és a tokenhez, a benne lévő TapHome-telemetria példa pedig teljes: érvényes hozzáférési adatokkal a SpotLogic HTTP 202-vel elfogadja. Előtte frissítsd a küldési idejét (TimeStampUnix) az aktuális időre. Az elfogadott példaadatokat a SpotLogic a valódi telemetriához hasonlóan eltárolja a tervhez, ezért ez az ellenőrzés még azelőtt esedékes, hogy a parancsot összekötnéd a napelem inverterrel.
A hiányos előrejelzési horizontról szóló HTTP 422-es válasz is bizonyítja, hogy a PLC ID és a token helyes — hibás token esetén HTTP 401 érkezik.
Eszközfunkciók
A parancs olvasása (20 másodpercenként)
A modul 20 másodpercenként lekérdezi a GET /api/v1/dispatch végpontot, és az eszközök feldolgozzák a választ:
- SpotLogic command — a folyamatban lévő időszelet parancsa (
action_id):
| Érték | TapHome-érték | SpotLogic-név | Jelentés |
|---|---|---|---|
| 0 | No plan | no_plan | Nincs használható terv — tartsd a napelem invertert a saját biztonságos üzemmódjában |
| 1 | Self-use | self_use | Saját fogyasztás: töltés a napelemes többletből, kisütés a ház ellátására |
| 2 | Force charge | force_charge | Az akkumulátor töltése maximális teljesítménnyel |
| 3 | Force discharge to grid | force_discharge | Az akkumulátor kisütése a hálózatba maximális teljesítménnyel |
| 4 | Self-use, no discharging | self_use_ChargeOnly | Saját fogyasztás, a töltés engedélyezett, a kisütés tiltott |
| 5 | Self-use, no charging | self_use_DischargeOnly | Saját fogyasztás, a kisütés engedélyezett, a töltés tiltott |
| 6 | Stop PV (reserved) | stopPV | Fenntartva — a jelenlegi tervező nem adja ki |
| 7 | Grid charge without PV (reserved) | ChargeMaxNoPV | Fenntartva — a jelenlegi tervező nem adja ki |
A szervizattribútumok a parancs nevét és a parancs végének időpontját mutatják (helyi idő szerint).
- SpotLogic target state of charge — az a töltöttségi szint (%), amelyet a terv az időszelet végére vár. Állítsd le a kényszerített töltést vagy kisütést, amikor az akkumulátor eléri; saját fogyasztásnál ne tölts fölé. A SpotLogic hozzáteszi, hogy
self_use_DischargeOnlyesetén az akkumulátort nem szabad ez alá kisütni. Az érték a terv eredménye, nem kikényszerítendő alapjel, és átmenetileg alacsonyabb is lehet az akkumulátor-tartaléknál, miután a ház elfogyasztotta a tartalékot. - SpotLogic next command — a következő időszelet parancsa, a kezdési időpontjával szervizattribútumként.
- SpotLogic plan age — a kiszolgált terv kora másodpercben. Egy tartalék smart rule-t vezérelhet: ha jóval az újraszámítási intervallum fölé nő, a tervet nem számítják újra.
A HTTP 404 no_plan válasz nem hiba: a parancs 0, és az eszköz tájékoztató üzenetet jelenít meg. A SpotLogic ilyenkor azt kéri, hogy válts a napelem inverter saját biztonságos üzemmódjára, és soha ne ismételd meg emlékezetből az utolsó ismert parancsot. A HTTP 401 (hibás PLC ID vagy token, lejárt előfizetés) hibát állít be az eszközökön és a modulon; a SpotLogic azt kéri, hogy az ilyen hívásokat ne ismételd, ezért javítsd ki a hozzáférési adatokat.
Telemetria feltöltése (kb. 2 percenként)
A modul legfeljebb 2 percenként elküldi a POST /api/v1/optimize kérést PLCtype: "taphome" értékkel. Elküldi a küldési időt, az időzónát, az akkumulátor és a hálózati csatlakozás paramétereit, valamint két értéket eszközökből:
- Battery state of charge (input) — egy smart rule-lal írd be a napelem inverterből az aktuális töltöttségi szintet 0–100 % tartományban (ha a napelem inverter sablonja 0–1 értéket ad, szorozd meg 100-zal). Egész százalékra kerekítődik, mert a SpotLogic elutasítja a törtértékeket. Amíg nincs értéke, semmi sem kerül elküldésre, és a modul figyelmeztetést jelenít meg.
- Battery reserve for SpotLogic — a
SOCmintartalék, alapértelmezés 10 %: az a szint, amelyből a terv soha nem ad el a hálózatba.
A modul szervizattribútumai mutatják az utolsó feltöltés eredményét, a SpotLogic által jelzett újraszámítási intervallumot (alapértelmezés 900 s), a terv kiszámításának időpontját, a tervfuttatást és az API verzióját. Az elutasított feltöltés (HTTP 422) modulhiba, a SpotLogic által visszaadott üzenettel. A feltöltésre adott válasz soha nem tartalmazza a tervet — a SpotLogic a háttérben számítja ki, és a modul a parancs következő olvasásakor veszi át.
Előrejelzési és ár-idősorok
A SpotLogic hat idősort vár a törzsben, mindegyiket [unix_ts, value] párok formájában:
| Modulváltozó | Tartalom | Szerződés |
|---|---|---|
PvForecastTod, PvForecastTom | napenergia-hozam ma / holnap, kWh óránként | óránként, hézagok nélkül, az aktuális órától holnap végéig |
LoadForecastTod, LoadForecastTom | a ház fogyasztása ma / holnap, kWh óránként | ugyanaz |
PriceImp, PriceExp | vételi / visszatáplálási ár, CZK/kWh | állandó lépésköz (óránként vagy 15 percenként), elég a mai nap, negatív árak megengedettek |
A változók JSON-szövegként tárolják az idősorokat, például [[1788645600,0.0],[1788649200,0.42]], és változatlanul kerülnek a törzsbe; az alapértelmezett [] üres idősor. Maga az integráció működik; amire szüksége van, az az adat. A TapHome egyelőre nem tud egy JSON-szöveget megosztani a szkriptek között, és a smart rule szkriptje nem tud HTTP-kéréseket küldeni. A hat idősort — összesen körülbelül 500 értéket — ezért más szkriptekből (például előrejelző vagy spot áras sablonból) kell összegyűjteni, és több száz segédeszközön keresztül átadni ennek a modulnak, vagy magában a modul olvasó szkriptjében kell felépíteni. Az integráció akkor válik igazán praktikussá, amikor a TapHome bevezeti a szkriptek között megosztott szöveges változót — lásd az ötletet: Szöveges változó és HTTP a smart rule-ok szkriptjeiből. Addig töltsd ki a hat változót, és a sablon változtatás nélkül működik. A szkript ezt megjegyzésben elmagyarázza a tetején és azon a helyen, ahol az idősorok beillesztésre kerülnek.
Hogy az adatok honnan származnak, az a telepítőn múlik; a SpotLogic ezeket a jellemző forrásokat nevezi meg:
- Napenergia-hozam — napenergia-hozam előrejelző szolgáltatás, amely megkapja a helyszínt, a panelek tájolását és dőlésszögét, valamint a beépített teljesítményt, vagy a napelem inverter gyártójának felhője.
- A ház fogyasztása — a helyszín saját előzményei: kezdésnek elegendő az órás fogyasztás, átlagolva a nap órája és a nap típusa (munkanap, hétvége, ünnepnap) szerint.
- Árak — a spot ár, átszámítva az ellátási szerződés szerint (vétel, például spot ár plusz árrés) és a többletenergia eladására szóló szerződés szerint (visszatáplálás).
Az óraátállítás napja 23 vagy 25 órás, így egy teljes napenergia-hozam- vagy fogyasztási idősor 47, 48 vagy 49 értéket tartalmaz. Az aktuális óra előtti egy óránál régebbi mintákat a SpotLogic levágja, ahogy a holnap végén túli mintákat is; a holnap vége előtt végződő idősort elutasítja.
Hibaelhárítás
| Tünet | Ok és megoldás |
|---|---|
| A parancs No plan értéken marad | Még nem készült terv, vagy a telemetriát a SpotLogic elutasítja. Ellenőrizd a modul hibáját és a Last telemetry upload szervizattribútumot. A 60 percnél régebbi tervet sem szolgálja ki. Az első elfogadott feltöltés után a terv elkészülése eltarthat egy ideig — legalább egy újraszámítási intervallumig. |
| HTTP 422 modulhiba | A telemetria megsérti a SpotLogic adatszerződését; az üzenet megmondja, melyik részét. Leggyakrabban hiányoznak az előrejelzési vagy ár-idősorok, vagy nem fedik le az időszakot holnap végéig. |
| HTTP 401 hiba | A PLC ID és a token nem egyezik, vagy lejárt az előfizetés. Javítsd a PlcId és Token modulváltozókat. |
| „Telemetry not sent” figyelmeztetés | A töltöttségi szint még nincs beírva, vagy az akkumulátor vagy a hálózati csatlakozás valamelyik paramétere üres. |
| A terv kora folyamatosan nő | Az új telemetria nem jut el a SpotLogichoz, vagy a SpotLogic adatforrásai hibáznak; az utolsó érvényes terv addig marad érvényben, amíg el nem éri a 60 perces kort. |
| HTTP 500 vagy 502 hiba | Szerverhiba vagy hibás adatforrás a SpotLogic oldalán; az utolsó érvényes terv érvényben marad. A SpotLogic mindkét kérés növekvő késleltetésű ismétlését javasolja; a modul egyszerűen megismétli mindkét kérést a következő lekérdezéskor. |
| A terv rossz órákat vezérel | Hibás a vezérlőegység órája vagy az időzóna — a terv időablaka a küldési időből és a megadott időzónából épül fel. |