Automatizált energiafelügyelet egyszerűen

Képzeljünk el egy apró eszközt, ami 10 másodpercenként figyeli otthonunk villanyórájának adatait, és ezek alapján automatikusan képes eszközöket ki- vagy bekapcsolni. Az ADA P1 Server pontosan ezt nyújtja számunkra – méghozzá úgy, hogy különösebb programozói tudásra sincs szükség!

Automatizált energiafelügyelet egyszerűen

Mi az ADA P1 Server és az ADAScript?

Az ADA P1 Server egy kisméretű adatszerver, amelyet kifejezetten okosvillanyórák P1 portjáról származó adatok kezelésére terveztek. Lényegében ez az eszköz 10 másodpercenként lekéri a villanyóra aktuális fogyasztási és termelési értékeit a helyi hálózaton keresztül. Egy modern okos mérőóra akár ~45 különböző adatpontot is szolgáltat – ide tartoznak például a pillanatnyi fogyasztás, a hálózatba visszatáplált teljesítmény, a tarifák szerinti fogyasztás és a különálló fázisok adatai​. Az ADA P1 Server ezeket az adatokat automatikusan globális változóként rendelkezésre bocsátja az úgynevezett ADAScript rendszerben. De mit is jelent ez?

ADAScript az ADA P1 Server beépített szkriptnyelvi környezete, amelyben a felhasználó egyszerű logikákat (kis “programokat”) hozhat létre. A “globális változók” azt jelentik, hogy az ADA P1 Server által gyűjtött összes fontos érték – legyen az összfogyasztás, feszültség az egyes fázisokon, pillanatnyi teljesítmény stb. – automatikusan elérhető egy-egy név alatt a szkripten belül. Nem kell ezeket nekünk lekérdezni vagy kiszámolni; a rendszer előkészíti és frissíti őket. Például létezhet egy változó a teljes aktuális fogyasztási teljesítményre, egy másik a visszatáplált teljesítményre, és külön változók az L1, L2, L3 fázisok feszültségére és áramerősségére. Ezeket a változókat úgy használhatjuk a scriptben, mintha egyszerű számok lennének, amelyek mindig a legutóbbi (utolsó 10 mp-ben mért) értéket tartalmazzák.

if (active_import_energy_total) {
   console.log("Enegy IMPORT: " + instantaneous_power_import); 
}

if (instantaneous_power_import > 0.5 && instantaneous_power_import < 1) { 
   data = getShelly("192.168.31.66", "ON"); 
} 
if (instantaneous_power_import > 1) {
   data = getShelly("192.168.31.66", "OFF"); 
}

function getShelly(ip, status) {
  var get_status = "http://" + ip + "/rpc/Switch.GetStatus?id=0";
  var set_ON = "http://" + ip + "/rpc/Switch.Set?id=0&on=true";
  var set_OFF = "http://" + ip + "/rpc/Switch.Set?id=0&on=false";
  
  if (status == "status") { var response = httpGet(get_status); }
  if (status == "ON") { var response = httpGet(set_ON); }
  if (status == "OFF") { var response = httpGet(set_OFF); }

  return response;
}

Valós idejű adatok és a fázisok szerepe

Mivel az ADA P1 Server a P1 interfészen keresztül sokféle adatot gyűjt, minden fontos energiafogyasztási jellemző valós időben rendelkezésre áll. A rendszer támogatja az alapvető OBIS kódok szerinti adatokat (ez a szabványos módja a villanyóra adatainak azonosítására) – így a leggyakoribb mérőinformációk azonnal használhatók, és szükség esetén országonként vagy mérőtípusonként eltérő extra adatok is hozzáadhatók a konfigurációhoz​. Az ADA P1 Server az összegyűjtött adatokat nem csak a memóriában tartja: microSD kártyára is naplózza őket CSV formátumban, napi bontású fájlokban​. Ez remek lehetőséget ad arra, hogy utólag is elemezhessük a fogyasztásunkat, de a valódi varázslat az automatizmusokban rejlik.

Miért fontosak a fázisadatok? Sok háztartásban – különösen ahol 3 fázisú az elektromos csatlakozás – egyenletesen kell elosztani a terhelést a fázisok között. Az ADA P1 Server külön-külön látja az egyes fázisok (L1, L2, L3) feszültségét, áramerősségét és teljesítményét. Ez lehetővé teszi, hogy egyedi feltételeket hozzunk létre például egy adott fázis túlterhelésének megelőzésére. Képzeljük el, hogy a ház egyik fázisán hirtelen nagyon megugrik a terhelés (mondjuk bekapcsol egy nagy teljesítményű gép); a rendszer ezt észlelheti, és reagálhat rá – például lekapcsolhat bizonyos ugyanazon a fázison lévő nem létfontosságú fogyasztókat egy okos dugalj segítségével. Ugyanígy külön szabályt hozhatunk létre minden fázisra: így finomhangolhatjuk az energiagazdálkodást, és elkerülhetjük, hogy bármelyik fázison túl nagy áram terhelje a hálózatunkat. A fázisadatok is globális változóként érhetők el az ADAScriptben, tehát könnyedén megfogalmazhatunk olyan feltételt, hogy például ha az L1 fázis árama nagyobb mint 20 A, akkor kapcsolj le egy terhelést azon a fázison. Mindezt automatikusan, emberi beavatkozás nélkül.

Automatizált műveletek ADAScript segítségével

Az ADAScript igazi ereje abban rejlik, hogy bárki által érthető logikával automatizálhatjuk otthonunk energiafogyasztását. A rendszer webes felületén beállíthatunk különféle feltételeket és riasztásokat, és ezekhez a feltételekhez saját ADAScript kódot rendelhetünk​. Amikor a meghatározott esemény bekövetkezik (például egy érték átlép egy küszöböt, vagy egy fázison történik valami), a hozzá tartozó script automatikusan lefut. Az ADAScript nyelvezetét úgy alakították ki, hogy egyszerű feltétel-következmény (IF-THEN jellegű) szabályokat könnyen ki lehessen fejezni.

Különösebb programozói tudás nélkül is összeállíthatunk ilyen szabályokat. A webes felületen tipikusan megadható, hogy milyen feltétel teljesülésekor fusson le egy script, és magát a műveletet is egyszerűen leírhatjuk. Például ha a “teljesítmény-felvétel” nevű változó egy adott határ fölé nő, akkor egy sorban kiadunk egy parancsot egy másik eszköz felé (erről a következő részben bővebben). A script kód sok esetben alig komplexebb, mint egy mondat: az ADAScript szintaxisa egyszerű és a globális változók használata miatt nem kell bonyolult programokat írni, csak a feltétel logikáját és a végrehajtandó parancsot meghatározni. Ez azt jelenti, hogy akár laikus felhasználók is pár kattintással létrehozhatnak működő automatizmusokat a saját igényeikre szabva.

Eszközök vezérlése HTTP hívásokkal (példa: Shelly okos dugalj)

Az ADA P1 Server egyik legerősebb funkciója, hogy a scriptjei külső eszközöket is vezérelhetnek a helyi hálózaton. Ezt jellemzően HTTP GET vagy POST hívásokkal éri el a rendszer – ezek lényegében olyan internetes kérések, amelyekkel parancsot küldhetünk egy másik eszköznek. Számos okosotthon eszköz (okos kapcsolók, konnektorok, termosztátok, stb.) támogatja az egyszerű HTTP-alapú vezérlést. Például egy Shelly Plug S okos dugalj esetében egy meghatározott URL hívásával ki- és bekapcsolhatjuk a konnektorba dugott eszközt.

Hogyan néz ki mindez a gyakorlatban? Tegyük fel, hogy szeretnénk az elektromos fűtésünket automatikusan lekapcsolni, ha a fogyasztásunk túllépi a 10 kW-ot, és visszakapcsolni, ha az alá csökken. A Shelly Plug S a fűtés áramellátását kapcsolja, és tudjuk a Shelly API dokumentációjából, hogy egy egyszerű HTTP hívással vezérelhető. ADAScriptben ilyesmit könnyedén megvalósíthatunk: a script figyeli a teljesítmény változót (ami az aktuális terhelést mutatja wattban), és ha az >10000, akkor egy HTTP.GET("http:///relay/0?turn=off") hívással kikapcsoljuk a dugaljat; ha pedig <10000, akkor ...turn=on hívással visszakapcsoljuk. A pontos szintaxis nem is lényeges – a lényeg, hogy egyetlen sorral utasítást adhatunk egy másik eszköznek, mintha csak a böngészőnkből nyitnánk meg egy URL-t. Természetesen a felület segít ebben: nem kell fejből tudnunk a parancs formátumát, elég beilleszteni a megfelelő URL-t a scriptbe.

Milyen eszközök vezérelhetők? Gyakorlatilag bármi, ami nyitott API-val rendelkezik a hálózaton. A Shelly eszközök tipikus példák, de vezérelhetünk Sonoff kapcsolókat, okos termosztátokat, sőt akár számítógépen futó szolgáltatásokat is (például egy saját okosotthon szervert) egy megfelelően kialakított HTTP végponttal. Így az ADA P1 Server nem áll meg az adatok megjelenítésénél, hanem aktív beavatkozó eszközzé válik az otthonunkban.

Ötletek és gyakorlati felhasználási lehetőségek

A lehetőségek tárháza szinte végtelen – lássunk néhány kreatív ötletet, mire használható az ADA P1 Server és ADAScript alapú automatizálás:

  • Napelem-termelés hasznosítása: Ha a napelemek termelése meghaladja a pillanatnyi fogyasztást, a rendszer automatikusan bekapcsolhat extra fogyasztókat, hogy a többlet energia ne vesszen kárba​. Például elindíthatja az elektromos autó töltését, bekapcsolhat egy villanybojlert vagy akkumulátoros tárolót kezdhet tölteni. Így a megtermelt energia házon belül marad, és nem ingyen tápláljuk vissza a hálózatba.

  • Túlterhelés megelőzése: Beállíthatunk egy felső küszöböt a teljes fogyasztásra vagy akár fázisonként. Ha ezt meghaladná az igény, az ADA P1 Server lekapcsolhat bizonyos, előre meghatározott eszközöket (pl. klímaberendezés, medence fűtés, autótöltés) átmenetileg. Ezzel elkerülhetjük a főbiztosíték leoldását vagy a szolgáltató által megszabott teljesítménykeret túllépését. Amint normalizálódik a terhelés, a rendszer visszakapcsolhatja ezeket a fogyasztókat is.

  • Időzített és tarifa alapú vezérlés: Mivel a rendszer ismeri a különböző tarifák szerinti mérőállásokat is, kombinálhatjuk az időalapú szabályokat a tarifákkal. Például ha éjszakai (olcsóbb) áram időszaka van, és épp nincs napelem termelés, bekapcsolhatjuk az elektromos fűtést vagy a bojler felfűtését, míg nappali (drágább) áramnál vagy csúcsidőben inkább kikapcsolva tartjuk ezeket, ha lehet. Mindez automatikusan történhet a mérőóra jelzései nyomán.

  • Értesítések küldése: Az ADAScript nem csak eszközöket kapcsolgathat, de akár értesítéseket is küldhet. Például integrálhatunk egy SMS vagy e-mail küldő szolgáltatást: ha valamilyen rendkívüli esemény történik (mondjuk áramszünet volt és visszajött az áram, vagy szokatlanul magas fogyasztást észlel a rendszer egy időszakban), a szerver automatikusan küldhet egy üzenetet nekünk. Így mindig képben lehetünk fontos eseményekről akkor is, ha nem vagyunk otthon.

  • Egyedi szituációk kezelése: Az ADA P1 Server rugalmasságát kihasználva bármilyen speciális feltételt lekezelhetünk. Például biztonsági okokból figyelhetjük, hogy egy kritikus berendezés (mint egy fagyasztó vagy akvárium fűtése) fogyaszt-e áramot; ha a fogyasztás lecsökken (azaz kikapcsolt az eszköz, vagy meghibásodott), riasztást kapunk, vagy backup rendszert kapcsolunk be. Vagy gondolhatunk az energiahatékonyságra: mérhetjük a készenléti (stand-by) fogyasztást éjjel, és ha túl magas, automatikusan áramtalaníthatunk bizonyos aljzatokat az éjszakai órákra. Az ADAScript lehetővé teszi, hogy ezeket az ötleteket könnyedén megvalósítsuk anélkül, hogy mélyen bele kellene nyúlnunk a programozásba.

Összefoglalás

Az ADA P1 Server és az ADAScript kombinációja barátságos módon hozza el az automatizált energiafelügyeletet az otthonunkba. A rendszer folyamatosan, valós időben figyel közel 40-féle mérési adatot, és ezeket az értékeket könnyen használható formában bocsátja a rendelkezésünkre a saját kis “programjainkban”. A globális változók, az egyszerű feltételrendszer és a HTTP-alapú vezérlési lehetőség révén szinte bármit megtehetünk: optimalizálhatjuk az energiafogyasztásunkat, pénzt spórolhatunk, megelőzhetjük a bajt, vagy egyszerűen kényelmesebbé tehetjük mindennapjainkat. Mindezt különösebb programozói ismeret nélkül, hiszen a rendszer úgy lett kialakítva, hogy laikusok számára is érthető és kezelhető legyen. Az ADA P1 Server inspirációt adhat ahhoz, hogy jobban odafigyeljünk energiahasználatunkra, és kiaknázzuk az okos mérőóra adataiban rejlő lehetőségeket – legyen szó akár nagyobb biztonságról, hatékonyságról vagy kényelemről a saját otthonunkban.