Tasnádi István-Norbert

Sapientia.ro Sapientia.ro
Neptun  Moodle  ISSUU  Könyvtár 
Tasnádi István-Norbert

Az idei szakmai gyakorlatomat Budapesten, a NEON Multimédia Kft. cégnél valósítottam meg 2021.07.05 és 2021.09.06 közötti időszakban, ami idő alatt számos új ismerettel, tudással és tapasztalattal gyarapodtam.

A szakmai gyakorlat eleje egy kis túrával indult, ahol a budapesti ügyvezető, Csipai Norbert bemutatta nekem a céget, megmutatta, hogy milyen termékeket forgalmaznak/árusítanak, ugyanakkor elmondta, hogy mivel is foglalkoznak pontosabban. Ez a cég Smart Home és otthonok automatizálásával foglalkozik, és állítása szerint ennek egy nagy jövője van, ugyanis már egyre több gyártó/cég ezt az ötletet, irányt támogatja, aminek fényében egyre több okos eszközt dobnak piacra, amellyel okosabbá tehetjük otthonainkat, ugyanakkor egyre több ember elkezdte az otthonát ez irány szerint tervezni.

A túra után megismerkedtem a cég további 2 fontos emberével, Bodó Péterrel és Dániel Czibolyával, akikkel együtt megvalósítottam számos okos otthon projektet, az ügyfeleink elvárásai alapján.

Az első két hétben leginkább elméleti résszel és maga a programkörnyezettel ismerkedtem meg. Az elméleti kurzusokon, amelyet Bodó Péter tartott, bevezette nekem és más számos partnernek a fontosabb elméleteket, szakkifejezéseket, technológiákat, amely az okos otthon megvalósításához szükséges. Ezeken a kurzusokon szó volt elsősorban, hogy milyen fajta kommunikációs technológiák léteznek, amelyek megtalálhatóak ezeken az okos eszközökön, a legismertebbek: Z-Wave (ez a legelterjedtebb technológia és a legtöbben ezt használják, én is személyesen leginkább ezekkel a típusú eszközökkel dolgoztam), KNX, Modbus stb., ugyanakkor szó esett arról is, hogy a NEON a Comfort Click nevezetű cégnek a termékeit használja, nevezetesen ennek a központi egység eszközeit (Colibri Z-Wave). Ezen központi egységek feladata elsősorban, hogy tartsák a kapcsolatot a lakásban lévő okos eszközökkel, amelyek a Z-Wave kommunikációs technologiát támogatják és párosítva vannak a Colibri Z-Wave központi egységgel, másrészt ez küld jelzéseket a párosított eszközöknek, amikor egy megadott feladatot végre kell hajtsanak, illetve egy állapot jelzést is kiküld ezen eszközöknek, adatok kiolvasása céljából. Ugyanakkor a kurzusokon szó esett az API és HTTP protokollok fogalmáról és azon részletes bemutatásáról.

A gyakorlati órákat Dániel Czibolya tartotta, ahol bemutatta nekünk, hogy a cég mely programokat használja az okos otthonok automatizálásának megvalósításához, nevezetesen a bOS Config és bOS Client: bOS Client programot gyakorlatilag a felhasználok szokták használni, itt fogják tudni az adott eszközeiket kezelni és beállítani kedvük szerint akár gépről, tabletről vagy telefonról. bOS Config programon keresztül történik az egész automatizálás megvalósítása, ezen program keretein belül tudjuk párosítani az eszközöket a központi egységgel, másrészt itt tudjuk megírni a programokat az adott eszközöknek, illetve itt tudjuk megvalósítani a bOS Client UI részét is, amelyet a felhasználó fog látni és használni. Ezeken az órákon gyakorlatokat kaptunk leginkább, amelyek segítettek megismerni maga a bOS Configot és hogy ezen programon belül hogyan valósítunk meg ezt azt.

A szakmai gyakorlat során az elején demó lakásokat csináltam, számos virtuális eszközöknek csináltam UI-t és programokat, majd később bevontak komolyabb projektekbe is, ahol már bizonyos ügyfelek elvárásai alapján kellett megtervezni és kivitelezni az okos otthonokat, az elvárások alapján kellett felprogramozni az eszközöket is.

Az első munkám egy demó lakás volt, ahol megkaptam egy lakásnak a tervrajzát és elmondták nekem, hogy ezen a lakáson milyen fajta eszközök legyenek és hogy ezek az eszközök miket csináljanak mikor bekövetkeznek bizonyos események. Mindezt virtuálisan kellett megvalósítsam, virtuális eszközöket kellett létrehozzak a bOS Configen belül és azokat felprogramozni. Számos virtuális eszköznek megterveztem a kezelő felületét és azon programjait megírni, ezek az eszközök a következőek voltak: termosztát, víz érzékelő, riasztó, villanykörték, TV, zenelejátszó, füstérzékelő, radiátor, csap és sötétítők. Minden eszközt egyesével vettem, megterveztem azoknak a UI részét, az eszközöket kihúztam a felületre a lakás tervrajzának egy bizonyos helyére (a felület háttere maga a lakás tervrajza volt), majd elkezdtem az elvárásoknak megfelelően megírni azoknak a programjait. Időközönként Dániel Czibolya és Bodó Péter megnézték, hogy hol tartok és hogy miket valósítottam meg, a visszajelzéseik alapján módosítottam, továbbfejlesztettem a dolgokat, míg megszületett a végső változata a lakásnak.

Miután a demó lakást befejeztem azt átnézte Csipai Norbert is, és látván, hogy mennyire jóra sikerült a projektem elhatározta, hogy bevon komolyabb projektekbe is, ahol már valódi lakásoknak az automatizálását kellett megtervezni és megvalósítani az ügyfelek elvárásai szerint.

Az első komolyabb projekt egy 1 emeletes lakás volt, ahol nagyjából ugyanazok az eszközök voltak találhatóak, mint amit én a demó lakásban megvalósítottam, de persze az elvárások mások voltak. Ezen projekt különlegesége az volt, hogy a lakásban 5 darab termosztát volt található, mindegyik elhelyezve egy-egy szobában és a fő feladat az volt, hogy létre kellett hozni egy olyan központi rendszert, amely kezelni tudja mind az 5 termosztátot egyidőben, illetve kezelni tudja azt is, hogy mikor melyik szobában indítsa el a fűtést vagy hűtést. Ezen felül voltak egyéb elvárások is, amit az ügyfelünk kért tőlünk pl: legyen egy kapcsoló, amit, ha felkapcsolunk akkor a központ fűtés állapotba kerüljön és csak azokat a szobákat fűtse, ahol szükséges, illetve, ha lekapcsolja azt, akkor a központ hűtés állapotba kerüljön és azokat a szobákat hűtse, ahol szükséges.

Az elején megbeszéltük, hogy hogyan is fogjuk megvalósítani mindezt, milyen eszközöket fogunk használni ahhoz, hogy megvalósítsuk ezt a központi rendszert, amely befolyásolni fogja több termosztátnak a viselkedését. Ez végül egy ZDIN 616 nevezetű eszköz volt, ami egy több kapukból álló kapcsoló volt, amely által már lehetőségünk adodott, hogy egy adott szóbában elindítsuk vagy leállítsuk a fűtés/hűtés folyamatot.

Miután megbeszéltük, hogy hogyan fogjuk megvalósítani ezt a központot, akkor azután elkezdtük megtervezni a bOS Client felületét is, amit majd a felhasználó használni fog, minden egyes eszköznek egy külön menüpontot/panelt hoztunk létre, ahol könnyebben elérhetővé váljanak ezek az eszközök (csoportositást végeztünk gyakorlatilag), majd ezután elkezdtük felmérni, hogy milyen fajta feladatokat kell elvégezzen minden egyes eszköz, betartva az ügyfél elvárásait, majd ezen programok megírása is elkezdődhetett.

Mindenkinek fel volt osztva a saját feladata, Dániel Czibolya és Bodó Péter az eszközök beszerzésével foglalkozott, ezen eszközök párosítása, illetve a kezelő felületek végső vázlatának megcsinálása a Colibri Z-Wave-el, az én feladatom pedig ezen felületek/panelek megvalósítása volt, illetve ezen eszközök felprogramozása, beleértve az 5 termosztátos központi egység működtetése is.

Az elején elkezdtem a demó lakásomból azon eszközöknek a programjait és UI elemeit beimportálni, amelyek szükségesek voltak ezen projekt megvalósításához. A következő eszközök voltak: vízérzékelő, sötétítő, világításért felelős eszközök és riasztó. Persze ezen eszközök programjait kellett módosítsam olyan szinten, ami megfelelt az elvárásoknak. Miután ez megvolt elkezdtem a több termosztátnak a UI elemeit megvalósítani.

Végére maradt a legnehezebb része a projektnek és ez az 5 termosztát és az adott ZDIN központi egység programozása volt. Mindent szépen lassan egyesével vettem, minden egyes eszköznek elkezdtem megírni a programját és azokat tesztelni virtuálisan, majd miután minden jól működött elkezdtem a programomat igazítani maga az eszközökre, mindegyiket külön egyesével letesztelni, hogy minden jól működik-e vagy sem, és miután a hibákat kijavítottam, azután összeraktam a teljes rendszert és a teljes rendszert elkezdtem tesztelni és a hibákat kijavítani. Persze e folyamat során a fiúk kisegítettek engem, amikor valahol elakadtam, illetve visszajelzést adtak, hogy hol tudnék javítani, hogy a programok is és az egész rendszer is optimálisabban müködjön. Végül 2,5-3 hét hosszadalmas munka után sikerült ezt a projektet is megvalósítani.

Miután a projektet befejeztük, Dániel Czibolya elkezdte nekem részletesebben tanítani az API és HTTP protokollok használatát és 3 darab projektet hagyott fel nekem, amit meg kellett valósítsak. Lényegében annyit kell tudni, hogy nem minden egyes eszköz támogatja a Z-Wave kommunikációt, se egyéb olyan fajta kommunikációs technologiát, amelyek kompatibilisek lennének a Comfort Click termékeivel, ezért rengeteg cég elkezdett fejleszteni az eszközeiknek bizonyos API-kat, amelyek HTTP (GET, POST) műveletek által lehetőségünk nyílik, hogy ezeknek az eszközöknek lekérdezzük az adatait, illetve bizonyos műveleteket elvégezni szintúgy HTTP műveletek által.

Az első ilyen API és HTTP protokoll projektem az egy Netatmo Weather Station eszköz volt, és a feladatom elsősorban az volt, hogy csináljak neki egy UI-t, másrészt kérdezzem le e eszköz adatait és jelenítsem meg ezeket a felületen.

Az első dolgom az volt, hogy keressem meg a gyártó oldalán az adott eszköznek az API dokumentációját és átlapozni, áttanulmányozni, hogy hogyan tudom élesíteni a kapcsolatot az eszköz és a bOS Config között, ebben pedig nagy hasznát vettem a Postman programnak, ahol lényegében le lehet tesztelni bizonyos API-kat és a hozzájuk tartozó HTTP műveleteket is. Ezeknek a műveleteknek (legyen az GET vagy POST) a visszatérített eredmény JSON formátumban vagy text típusként volt megjelenítve. Ahhoz, hogy ezekkel dolgozni is lehessen elsősorban kell kapni egy oAuth2 kódot, azután egy GET művelettel lekérni egy Access Token keyt, amelyet felhasználva már le tudunk kérdezni az eszközről bizonyos adatokat, illetve ennek segítségével akár olyan kéréseket is elindítani, amely által az eszköz elkezd végezni egy taskot. Ezek a HTTP lekérdezések általában az eszközök dokumentációiban cURL formátumban van megadva, ahol meg kell adni az oAuth2 kódot, az Access Token keyt, a Content type-ot, ahol itt megadjuk, hogy a visszatérített eredmény JSON formátumú legyen vagy sima text típusú, végezetül pedig jött maga a GET/POST lekérdezés.

Miután megértettem mindezt, elkezdtem ezeket a cURL parancsokat módosítani úgy, hogy azok működjenek a bOS Configon belül is. Ezután a visszatérített JSON-ből elkezdtem kiszedni az adatokat és eltárolni változókba úgy, hogy egy Token-t kellett megadjak a változóknak (vagyis egy útvonalat, hogy hol található a kívánt adat, hasonlóan, mint ahogy azt MongoDB-ben csináljuk). Az adatokat elkezdtem aztán megjeleníteni a felületen, végezetül pedig kellett írjak egy olyan programot, amely egy bizonyos idő után elkezdett kérni egy új Access Token keyt ahhoz, hogy tovább lehessen HTTP műveleteket elvégezni. Ez azért volt szükséges megírni, mert mikor lekérsz egy Access Token keyt, akkor a key mellett kapsz egy lejárási időt is, szekundumban, ami elmondja, hogy mennyi idő múlva jár le a key, és ha az lejár, akkor kell kérni egy másik keyt ahhoz, hogy tovább végezhessük HTTP műveleteinket.

A következő API/HTTP projekt egy IEAST WifiAudio zenelejátszó Comfort Clicken belüli működtetésének megvalósítása volt. Ez a projekt már egy fokkal könnyebben ment, mivelhogy ez már nem kért se oAuth2 kódot, se Acces Token keyt ahhoz, hogy lekérdezhessem az eszközről bizonyos adatokat és műveleteket indítsak el, ezért a legtöbb munka inkább a UI tervezéssel, illetve számos funkció implementálása volt. Az alapvető utasítások, mint például a Play, Resume, Stop, Next stb. egyszerű HTTP lekérdezésekkel ment (amelyek meg voltak adva az eszköz dokumentációjában), míg a Playlist megjelenítése és annak navigálása, zeneszámok címeinek megjelenítése (amelyek hexa adatként voltak visszatérítve és azokat stringé kellett átalakítani) stb. HTTP műveletekkel, illetve általam irt programok által lettek megvalósítva.

Az utolsó API/HTTP projektem egy eDRV elektromos autó töltőállomás megvalósítása volt, ahol úgyszintén először meg kellett keressem ennek API leírását, Postmanben ezeket a lekérdezéseket letesztelni, majd a bOS Configon belül ezeket a cURL utasításokat lefuttatva (ahol úgyszintén szükség volt megadni az oAuth2 kódot, Content typeot, illetve egy Access Token keyt) kinyerni azon adatokat és lementeni ezeket változókba, amelyek szükségesek voltak. Ezután megterveztem és megvalósítottam ennek kezelő felületét, végezetül pedig programokat írtam ennek az szerint, ahogy azt Dániel Czibolya kérte tőlem.

Végezetül az utolsó projektem, amit megvalósítottam a cégnél, az egy újabb otthon automatizálás volt. Lényegében meg volt adva 6 darab padló termosztát, amelyek el voltak helyezve 1-1 szobában és ezek csakis a padlókat fűtötték (ezek is úgyszintén egy központi rendszer gondoskodott volna, hasonlóan, mint a ZDIN eszköz esetén), 1 termosztát, amely egy egész lakást fűtött, illetve 3 darab kapcsoló, amelyeknek annyi volt a szerepe, hogy felkapcsolják a villanyt. Ezeket az eszközöket beszereztük, elkezdtük ezeket egyesével párosítani a Colibri Z-Wave-el, ezután az eszközöknek a grafikus felületeit megtervezni és megvalósítani, végezetül pedig az eszközöket felprogramozni. Mivelhogy ez a projekt nagyon hasonlított az 5 termosztát-ZDIN-es projekthez, ezért rengeteg assetet, UI elemeket, programokat tudtunk átemelni és ebbe a projektbe beilleszteni, persze módosítani a már létező programokat úgy, hogy azok működjenek ezekkel a padló termosztátokkal vagy újakkal is kiegészíteni az szerint, ahogy azt az ügyfelünk kérte.

Összeségében a NEON Multimédia Kft. cégnél eltöltött időm teljesen pozitívnak vélhető, ugyanis nem voltak olyan negatív tényezők, melyek rontották volna az ott szerzett élményeket, számos új ismerettel és tudással gazdagodtam, ami következtében hálás tudok lenni, hogy mindezt megvalósíthattam az Erasmus+ program keretein belül.

Sapientia.ro

Sapientia - Erdélyi Magyar Tudományegyetem

Sapientia EMTE

A Sapientia Erdélyi Magyar Tudományegyetem a romániai magyarság önálló egyeteme Európában, melynek célja nemzeti közösségünk oktatásának és tudományos életének elismert szakmai színvonalon való művelése.

Kapcsolat

Marosvásárhelyi Kar

Marosvásárhely/Koronka,  Calea Sighișoarei nr. 2.
Postacím: 540485 Târgu-Mureş, O.p. 9, C.p. 4


Tel: +40 265 206 210, fax: +40 265 206 211
E-mail: office@ms.sapientia.ro

btz webdesign