ERK'2022, Portorož, 86-89 86 Testiranje uporabniˇ skega vmesnika naprav IoT Tijana Krutil 1 , Andrej Kos 1 1 Laboratorij za telekomunikacije, Fakulteta za elektrotehniko, Univerza v Ljubljani, Trˇ zaˇ ska 25, Ljubljana E-poˇ sta: tijana.krutil@gmail.com IoT User Interface Testing Abstract. In this paper we first present the five-layer architecture of Internet of Things which consists of perception, net- work, processing, application, and business layer. Then we briefly describe the most important testing areas in IoT and explain why its testing is becoming significantly more and more important. We mainly focus on user inter- face testing and also describe it on a real-world example from the field of energy IoT and smart grid. 1 Uvod V zadnjih dveh desetletjih je internet stvari (angl. Inter- net of Things - IoT) revolucionaliziral veˇ cino podroˇ cij naˇ sega ˇ zivljenja. Gre za fuzijo resniˇ cnega in digitalnega sveta, ki nam omogoˇ ca komunikacijo ne le med ljudmi, paˇ c pa tudi med samimi napravami in procesi. IoT je olajˇ sal vsakdan posameznika s pametnimi napravami, ki prevzemajo opravila, ki jih je prej moral opraviti ˇ clovek sam, na primer sesanje in koˇ snja, omogoˇ ca tudi upravlja- nje doma in gospodinjskih aparatov prek aplikacij tudi na daljavo. Poleg vsakodnevne uporabe pa tehnologija IoT pomaga tudi bolj generalno in ponuja reˇ sitve na druˇ zbeni ravni – pomaga pri optimizaciji procesov v bolniˇ snicah, proizvodnih linijah, kmetijstvu, turizmu in na drugih po- droˇ cjih. Na praktiˇ cno vseh teh podroˇ cjih prispeva k veˇ cji uˇ cinkovitosti procesov, zmanjˇ sa delovne obremenitve in hitro ter zanesljivo zbira, obdeluje in analizira podatke. IoT pa je tudi gonilo razvoja pametnih mest, katerih glavni cilji so med drugim poveˇ canje uˇ cinkovitosti rabe elek- triˇ cne energije in s tem minimizacija energijskih izgub, optimizacija prometa, zmanjˇ sanje onesnaˇ zevanja, tudi var- nost v mestu. [1][2] S takˇ sno rastjo IoT pa smo postavljeni pred velik iz- ziv, in sicer testiranje naprav IoT. Zaradi razprˇ senosti in veˇ cplastne arhitekture je sistem IoT potencialno podvrˇ zen veliko napakam, zato je testiranje teh naprav zelo po- membno. Ker se IoT razˇ sirja na ˇ cedalje veˇ c podroˇ cij, po- leg tega pa upravlja z obˇ cutljivimi podatki, na pomemb- nosti pridobiva varnostni vidik testiranja naprav IoT. Ta pravzaprav postaja nujen in zahteva stroˇ zjo standardiza- cijo na tem podroˇ cju. [4] 2 Arhitektura IoT Internet stvari je orodje, ki napravam iz vsakodnevne rabe omogoˇ ca brezˇ ziˇ cno povezovanje v omreˇ zje, zbiranje in medsebojno izmenjavo ter analizo podatkov, na podlagi teh pa sprejema odloˇ citve. S tem zagotavlja kakovostnejˇ se delovanje naprav in boljˇ so uporabniˇ sko izkuˇ snjo. Za naprave interneta stvari so najbolj znaˇ cilni sen- zorji, ki iz okolja pridobivajo podatke in aktuatorji za in- terakcijo z okoljem. Osnova sistema (arhitekture) inter- neta stvari so podatki, ki se izmenjujejo med razliˇ cnimi napravami.[3][5] Ker pa arhitektura IoT ni enotna, ob- staja veliko razliˇ cnih oblik arhitekture. V tem ˇ clanku bomo opisali petslojno arhitekturo, ker je tudi v literaturi najpogosteje uporabljena. 2.1 Zaznavna plast Zaznavna plast oziroma tudi plast senzorskih naprav je sestavljena iz fiziˇ cnih naprav in predstavlja najniˇ zji sloj v petslojni arhitekturi IoT. Senzorji so lahko RFID (angl. Radio Frequency Identity), infrardeˇ ci senzorji, 2D ˇ crtne kode, QR (angl. Quick Response) kode, senzorji za za- znavanje lokacije, temperature, vlage v zraku, gibanja, vibracij, pospeˇ ska, kemiˇ cnih sprememb v vodi ali zraku. Zaznavna plast je namenjena identifikaciji predmetov ali zaznavi fizikalnih pojavov, kar poˇ cne s pomoˇ cjo senzor- jev. Zbrani podatki se nato pretvorijo v digitalne signale in se posredujejo v omreˇ zno plast. [6][8] 2.2 Omreˇ zna plast in API-ji Omreˇ zna ali prenosna plast je zadolˇ zena za varno prenaˇ sanje podatkov iz senzorskih naprav do aplikacij prek vmesni- kov, prehodov (angl. gateway) med razliˇ cnimi omreˇ zji ter z uporabo razliˇ cnih komunikacijskih tehnologij in proto- kolov. Pri tem sodelujejo tehnologije, kot so 3G, 4G, 5G, Wi-Fi, Bluetooth, ZigBee ali druge. [6][9] Mehanizmi, ki omogoˇ cajo komunikacijo med dvema komponentama programske opreme z uporabo niza razliˇ cnih protokolov, se imenujejo aplikacijski programski vme- sniki (angl. Application Programming Interface - API). 2.2.1 HTTP protokol HTTP (angl. Hypertext Transfer Protocol) je komunika- cijski protokol aplikacijskega sloja za prenos hipermedij- skih dokumentov, na primer HTML (angl. HyperText Markup Language). Zasnovan je za komunikacijo med 87 spletnimi brskalniki in spletnimi streˇ zniki, lahko pa se uporablja tudi v druge namene, na primer za IoT. HTTP sledi klasiˇ cnemu modelu odjemalec-streˇ znik. Povezava deluje le v to eno smer, prav tako se lahko obdeluje le ena zahteva naenkrat. HTTP je protokol brez stanja, kar po- meni, da streˇ znik ne hrani nobenih podatkov (stanja) med dvema zahtevama. [11] 2.2.2 MQTT MQTT (angl. Message Queue Telemetry Transport) je komunikacijski protokol, ki je bil zasnovan posebej za IoT. Ko je povezava MQTT vzpostavljena, je mogoˇ ce preko nje poslati poljubno ˇ stevilo sporoˇ cil v obe smeri - torej od senzorja v zaledje (angl. back-end) in obra- tno. Za razliko od HTTP-ja se pri MQTT-ju lahko shrani zadnji dober podatek. Omogoˇ ceno je tudi preprosto do- dajanje veˇ c porabnikov in proizvajalcev podatkov. 2.3 Procesna plast Procesna plast je odgovorna za shranjevanje, analizira- nje in obdelavo podatkov, ki jih je prejela iz omreˇ zne plasti. Primarna in najpomembnejˇ sa tehnologija te pla- sti je raˇ cunalniˇ stvo v oblaku. Raˇ cunamo na to, da se bodo v prihodnosti pojavile nove raˇ cunalniˇ ske tehnolo- gije, ki bodo primernejˇ se za IoT in zato so raziskave in razvoj na procesni plasti zelo pomembni za razvoj inter- neta stvari. [6][7] V to plast spadata tudi umetna inteli- genca in strojno uˇ cenje. 2.4 Aplikacijska plast Aplikacijska plast od procesne plasti prejme podatke, ki jih potem uporabi za zagotavljanje zahtevanih storitev. Aplikacijska plast predstavlja tudi most med IoT in upo- rabnikom, odgovorna je za to, da uporabniku na prija- zen in uˇ cinkovit naˇ cin zagotavlja storitve, specifiˇ cne za to aplikacijo. Doloˇ ca razliˇ cne uporabe IoT, na primer pame- tne domove, pametna mesta in pametno zdravstvo.[6][13] V tej plasti je zelo pomembno zagotavljanje ˇ cloveku pri- jazne interakcije. 2.5 Poslovna plast Poslovni sloj se nahaja nad aplikacijskim slojem in je najviˇ sji sloj v petslojni arhitekturi. Ta sloj je odgovoren za upravljanje celotnega sistema IoT, vkljuˇ cno z aplika- cijami in storitvami. Na podlagi podatkov, ki jih prejme iz aplikacijskega sloja, gradi poslovne modele, grafe in diagrame poteka. Na podlagi analize rezultatov ta plast pomaga doloˇ citi prihodnje poslovne strategije. [6] 3 Testiranje IoT naprav S strmim naraˇ sˇ canjem ˇ stevila naprav IoT je tudi potreba po varnosti in uˇ cinkovitosti ˇ cedalje pomembnejˇ sa. Zato testiranje naprav IoT postaja zelo velik in pomemben del pri sami razvoju naprav reˇ sitev IoT. Testiranje naprav IoT pa se razlikuje od tradicionalnega testiranja programske opreme, saj predstavlja kombinacijo tako programske kot strojne opreme. To se je pred IoT testiralo vsako posebej, zdaj pa je treba testirati cel ekosistem IoT, kar je velik izziv. [14][16] IoT je sistem, ki velikokrat komunicira v realnem ˇ casu, kar pomeni, da lahko teˇ zave z zmogljivostjo ali z varno- stjo v katerem koli njegovem delu povzroˇ ci teˇ zave z de- lovanjem drugih delov omreˇ zja. Testiranje IoT je nabor testov, s katerimi se preverjajo funkcionalnost, varnost in zmogljivost. Pri tem obstajajo izzivi zaradi razdrobljeno- sti sistema IoT, kar pa je mogoˇ ce odpraviti z uvedbo veˇ c testnih skupin, ki preverjajo zanesljivost vseh komponent na veˇ c platformah in napravah. [14][16] 3.1 Testiranje zdruˇ zljivosti Pri testiranju zdruˇ zljivosti je vkljuˇ cenih veˇ c naprav, br- skalnikov, operacijskih sistemov in naˇ cinov komunika- cije. Bistvo tega testiranja je izpostavljanje sistema razliˇ cnim okoljem in preverjanje, ali se v vseh obnaˇ sa enako. Pre- den izide nova razliˇ cica, mora ta biti popolnoma zdruˇ zljiva z vsemi razliˇ cicami drugih naprav in ostalih delov sis- tema. Enako velja tudi za posodobitve programske opreme, Pomembno je torej zagotoviti, da po posodobitvi vse kom- ponente ˇ se delujejo tako, kot morajo. [4] 3.2 Testiranje zmogljivosti V tej fazi testiranja se preverja zmogljivost pri najveˇ cji obremenitvi, testiranje sistema za veˇ c naprav hkrati, spre- mlja se tudi poraba baterije. Naprave se tudi testirajo pri razliˇ cnih omreˇ znih pogojih, pri aplikacijah pa je treba te- stirati hitrost pri velikih koliˇ cinah podatkov. [4] 3.3 Testiranje povezljivosti Pri testiranju povezljivosti se preverja, kako zanesljivo so komponente sistema IoT povezane med sabo. Zagoto- viti je treba, da je sistem ves ˇ cas odziven, poleg tega pa je treba poskrbeti za ustrezna opozorila v primeru izgube povezave. Ob kratkotrajnih izgubah povezave mora sis- tem sam poskusiti nazaj vzpostaviti povezavo. [15] 3.4 Testiranje uporabniˇ skega vmesnika Testiranje uporabniˇ skega vmesnika zagotavlja, da ima ko- nˇ cni uporabnik intuitivno programsko opremo, ˇ cim pre- prostejˇ so za uporabo. Uporabniˇ ski vmesnik mora biti tudi ˇ cim bolj pregleden in estetsko zadovoljiv. Sem spada pre- verjanje prikaza zaslona, menijev, gumbov, ikon in osta- lih stvari, s katerimi rokuje uporabnik. [4] 3.5 Testiranje varnosti Testiranje varnosti je zagotovo ena najpomembnejˇ sih faz testiranja. Gre za iskanje in odpravljanje pomanjkljivo- sti, ki bi jih hekerji lahko izkoristili za dostop do spre- minjanja ali krajo podatkov. Z razˇ siritvijo naprav IoT in s ˇ cedalje veˇ cjo priljubljenostjo in aplikativnostjo se veˇ ca tudi ˇ stevilo vstopnih toˇ ck in moˇ znih vektorjev napada ki- bernetskih napadalcev . Naprave IoT uporabljamo za na- men nadzora nad svojimi domovi, avtomobili, banˇ cniˇ st- vom, pa tudi za avtomatizacijo kompleksnih naprav in takˇ sne stvari so zelo ranljive za kibernetske napade, v primeru teh pa je ˇ skoda neodpravljiva. Ne gre namreˇ c le za finanˇ cno ˇ skodo, paˇ c pa tudi za krajo identitete, krajo podatkov itd. [4][17] Ker so od IoT odvisni tudi mnogi drugi sistemi, to lahko pomeni tudi zaustavitev drugih sis- temov, na primer finanˇ cnih, elektroenergetskih in mnogih 88 drugih sistemov, od katerih jih veliko spada v kritiˇ cno in- frastrukturo z vidika varnosti. 3.6 Testiranje interoperabilnosti Interoperabilnost je sposobnost sistemov in naprav, da med sabo komunicirajo kljub razliˇ cnim implementacijam. Veˇ c kot je povezanih naprav, veˇ c je prostora za napake tako s strani strojne kot tudi programske opreme. Testira- nje interoperabilnosti je preizkuˇ sanje programske opreme in tehnologij, ˇ ce so zdruˇ zljive z ostalimi. To je treba te- stirati, da se prepriˇ camo, da se bodo razliˇ cne tehnologije sposobne vkljuˇ citi v arhitekturo z veliko razliˇ cnimi ele- menti, pri ˇ cemer je kljuˇ cna brezhibna integracija in uskla- jeno delovanje vseh naprav, ki so del sistema. [16][18][19] 3.7 Testiranje skladnosti Testiranje skladnosti doloˇ ca, v kolikˇ sni meri je imple- mentacija doloˇ cenega standarda v skladu s posameznimi zahtevami tega standarda. V zadnjih letih je bilo predsta- vljenih veliko standardov na podroˇ cju povezljivosti v in- ternet, razliˇ cnih protokolov komunikacije in na vseh osta- lih podroˇ cjih, ki so prav tako del arhitekture IoT. Takˇ sni standardi so na primer IPv6 (angl. Internet Protocol ver- sion 6), Bluetooth Low Energy, ZigBee. Vse tehnologije, ki so del nekega sistema IoT, morajo biti v skladu s temi ˇ ze obstojeˇ cimi standardi. [5][19] 4 Testiranje uporabniˇ skega vmesnika na kon- kretnem primeru 4.1 eIoT IoT zajema ogromno podroˇ cij in s tem veliko razliˇ cnih aplikacij. Eno izmed najpomembnejˇ sih podroˇ cij je ele- ktroenergetika, uporaba IoT na tem podroˇ cju pa se ime- nuje energetski IoT (angl. energy IoT - eIoT). Cilj eIoT je avtomatizacija in nadgradnja elektroenergetske infra- strukture, s ˇ cimer bi se izboljˇ sala uˇ cinkovitost. Prav tako naj bi pomagal zmanjˇ sati ogljiˇ cni odtis. [22][23][24] V eIoT spadajo pametna omreˇ zja (angl. Smart Grid - SG), ta tehnologija je pomembno orodje za zagotavljanje trajnostne in varne energetske prihodnosti. Smart Grid je nadgradnja tradicionalnega elektroenergetskega omreˇ zja in omogoˇ ca prilagodljivo upravljanje energetskih virov, optimizacijo energetskih virov, izboljˇ sanje vpogleda v de- lovanje, boljˇ se napovedovanje vzdrˇ zevanja in dodatno var- nost. [20] Elektroenergetskim podjetjem eIoT omogoˇ ca, da oce- nijo stanje sistema bistveno bolje, kot je bilo to mogoˇ ce prej. Na primer, s pametnimi ˇ stevci lahko elektroenerget- ska druˇ zba odkrije potrebe po energiji v realnem ˇ casu z veliko natanˇ cnostjo.[21] 4.2 Testiranje DC Testirali smo uporabniˇ ski vmesnik, ki je del podatkov- nega koncentratorja (angl. Data Concentrator - DC) sis- tema eIoT na sliki 1. Podatkovni koncentrator je pro- gramska in strojna reˇ sitev, ki povezuje veˇ c podatkovnih kanalov. [25] Podatkovni kanali so v naˇ sem primeru ˇ stevci, ki preko protokola COSEM (angl. Companion Specifica- tion for Energy Metering) poˇ siljajo podatke v podatkovni Slika 1: Arhitektura obravnavanega sistema koncentrator. Z druge strani je povezan na glavni sis- tem (ang. Head End System - HES), v naˇ sem primeru preko protokola ethernet. HES je zadolˇ zen za sprejema- nje podatkov iz ˇ stevcev preko podatkovnega koncentra- torja brez posredovanja ˇ cloveka. Testirali smo uporabniˇ sko izkuˇ snjo (angl. User Expe- rience - UX) za uporabnika DC in upravjalca elektroener- getskega omreˇ zja. Zaradi velike koliˇ cine podatkov, ki se prenaˇ sajo po sistemu, je bilo treba uporabniˇ ski vmesnik temeljito testirati, saj mora biti za uˇ cinkovito uporabo hi- ter in intuitiven. 4.2.1 Testiranje gumbov Pri testiranju moramo biti pozorni na vsako malenkost. Zaˇ celi smo s testiranjem gumbov, preverili smo, kaj se zgodi ob razliˇ cnih klikih in iskali kakˇ sne napake, ki bi lahko vplivale na funkcionalnost ali na uporabniˇ sko izkuˇ snjo. 4.2.2 Testiranje vnaˇ sanja podatkov Naslednja stvar, ki smo jo testirali, je bilo vnaˇ sanje podat- kov. Preverjali smo, kako aplikacija uporabniku sporoˇ ci oziroma pokaˇ ze, da je podatke vnesel pravilno in kako se obnaˇ sa, kadar jih vnese narobe, torej ali ga opozori, ali pa preprosto ne uboga ukaza uporabnika. Na primer v kole- dar, kamor se mora vnesti interval, smo vnaˇ sali nesmisle. Vnaˇ sali smo datume v prihodnosti, preverili smo, kaj se zgodi, ˇ ce je zaˇ cetni datum kasneje od konˇ cnega ali pa ˇ ce sta sluˇ cajno enaka. Preverjali smo tudi zelo dolge inter- vale in iskali mejo, pri kateri funkcija ni veˇ c delovala, kot bi morala. Ta del testiranja uporabniˇ skega vmesnika je zelo pomemben, namreˇ c ˇ ce aplikacija dovoli vnesti ne- smisle, se lahko sistem poslediˇ cno obnaˇ sa nepredvidljivo, takˇ sne napake pa je teˇ zko odkriti. Predlagali smo reˇ sitev, kjer sistem preveri vneˇ sene podatke in tudi avtomatsko dopolne vnos podatkov, ki so ˇ ze bili uporabljeni. Predlagali smo tudi izboljˇ sanje naˇ cina vnosa podatkov, da bi bila uporabniˇ ska izkuˇ snja ˇ cim laˇ zja in hitrejˇ sa. 4.2.3 Testiranje dostopa do uporabniˇ skega vmesnika V nadaljevanju smo testirali tudi vstop v aplikacijo z razliˇ cnimi funkcijami in preverjali moˇ zne scenarije pri prijavi upo- rabnikov. To smo potem ponovili ˇ se v drugih brskalnikih in v anonimnih zavihkih, da bi videli, ˇ ce pride do kakˇ snih sprememb v delovanju. 89 Aplikacijo smo testirali ˇ se na raznih drugih formatih – na manjˇ sem raˇ cunalniku, na veliko veˇ cjem zaslonu in na tabliˇ cnem zaslonu. Pri tem smo ugotovili, da se delovanje aplikacije spremeni odvisno od velikosti zaslona, kar se sicer ne bi smelo zgoditi, zato bo to napako tudi treba odpraviti. 4.3 Testiranje uporabniˇ ske izkuˇ snje Pri vsem tem smo bili pozorni na kakˇ sne zoprne malenko- sti, ki bi jih lahko izboljˇ sali in bi uporabniku s tem olajˇ sali uporabo te aplikacije. Predlagali smo natanˇ cnejˇ sa opozo- rila pri napaˇ cnem vnosu, da uporabnik toˇ cno ve, kaj se na tistem mestu od njega priˇ cakuje. 5 Zakljuˇ cek Natanˇ cno in vseobsegajoˇ ce testiranje delovanja naprav IoT je zelo pomembno. Ko naprave IoT niso dovolj do- bro testirane, preden gredo na trg, to povzroˇ cili veliko teˇ zav - nepredvidljivo obnaˇ sanje v situacijah, ki jih testi- ranje ni predvidelo, nedelovanje, ker je naprava nekom- patibilna z nekaterimi komunikacijskimi protokoli in ˇ ce bi bila aplikacija slabo testiranega IoT sistema avtono- mna na kakˇ snem bolj obˇ cutljivem podroˇ cju, so lahko po- sledice zelo hude. Testirali smo UX za uporabnika naprave IoT. Pri tem smo ugotovili, da je najveˇ c manjˇ sih napak pri postavi- tvi gumbov. Bolj problematiˇ cno pa je bilo nepredvidljivo obnaˇ sanje aplikacije pri narobe vneˇ senih podatkih. Pri takˇ snih napravah kot je ta, ki smo jo testirali, pa je ˇ se posebej pomembno testiranje varnosti. Takˇ sne na- prave so namreˇ c do zdaj bile naˇ crtovane za uporabo v zasebnih omreˇ zjih in zato se varnosti ni posveˇ calo toliko pozornosti. S potencialnim odpiranjem teh sistemov v javna omreˇ zja pa te naprave IoT postajajo zelo ranljive, kar pomeni, da je varnosti treba posvetiti veliko veˇ c po- zornosti. Zato priˇ cakujemo, da bosta razvoj in testiranje varnostnih mehanizmov naprav IoT eden kljuˇ cnih izziviv v prihodnosti IoT. Zahvala Raziskava je nadgradnja projektnega sodelovanja s pod- jetjem Iskraemeco. Delo je podprla Agencija za razisko- valno dejavnost Republike Slovenije v okviru raziskoval- nega programa≫ Decentralizirane reˇ sitve za digitalizacijo industrije ter pametnih mest in skupnosti≪ . Literatura [1] Why is IoT important?, https://www.techtarget.com/iotagenda/definition/Internet- of-Things-IoT [2] What is the internet of things (IoT)?, https://www.techtarget.com/iotagenda/definition/Internet- of-Things-IoT [3] What is IoT?, https://www.oracle.com/internet-of- things/what-is-iot [4] Internet of Things (IoT) Testing: Why Is It So Important?, https://relevant.software/blog/iot-testing-importance/ [5] Internet stvari in analiza dodane vrednosti pa- metne naprave za konˇ cnega uporabnika, ht- tps://dk.um.si/Dokument.php?id=86036&lang=slv [6] Future Internet: The Internet of Things Architec- ture, Possible Applications and Key Challenges, ht- tps://ieeexplore.ieee.org/abstract/document/6424332 [7] Internet of Things: Architectu- res, Protocols, and Applications, ht- tps://www.hindawi.com/journals/jece/2017/9324035/ [8] A Survey on Internet of Things: Architecture, Enabling Technologies, Security and Privacy, and Applications, ht- tps://ieeexplore.ieee.org/abstract/document/7879243 [9] Research on the architecture of Internet of Things, ht- tps://ieeexplore.ieee.org/abstract/document/7879243 [10] What is an API?, https://aws.amazon.com/what-is/api/ [11] HTTP, https://developer.mozilla.org/en- US/docs/Web/HTTP [12] MQTT Vs. HTTP for IoT, https://www.hivemq.com/blog/mqtt-vs-http-protocols- in-iot-iiot/ [13] Common application layer protocols in IoT explained, https://www.techtarget.com/iotagenda/feature/Common- application-layer-protocols-in-IoT-explained [14] IOT Testing Framework, https://www.clariontech.com/blog/iot-testing-framework [15] Internet Of Things (IoT) Testing: Chal- lenges, Tools And Testing Approach, https://www.softwaretestinghelp.com/internet-of-things- iot-testing/ [16] Towards an open framework of online interoperability and performance tests for the Internet of Things, ht- tps://ieeexplore.ieee.org/document/8016248 [17] A Comprehensive Guide to IoT Security Testing, https://www.getastra.com/blog/security-audit/iot-security- testing [18] Understanding IoT Interoperability Testing, https://www.einfochips.com/blog/understanding-iot- interoperability-testing/ [19] IoT-TaaS: Towards a Prospective IoT Testing Framework, https://ieeexplore.ieee.org/document/8281514 [20] How IoT Enables the Smart Grid - Applications, Benefits, and Use Cases, https://www.particle.io/iot-guides-and- resources/iot-smart-grid-applications-benefits-and-use- cases/ [21] What Is the Smart Grid and How Is It Enabled by IoT?, https://www.digi.com/blog/post/what-is-the-smart-grid- and-how-enabled-by-iot [22] What Is The Internet Of Energy?, https://www.nesfircroft.com/blog/2019/05/what-is-the- internet-of-energy?source=google.com [23] The Internet of Energy: Challenges and Purpose, https://justenergy.com/blog/internet-of-energy-what-is-it- why-important/ [24] Internet of Energy (IoE), https://www.investopedia.com/terms/i/internet-energy- ioe.asp [25] Data Concentrator, http://www.subnet.com/resources/dictionary/data- concentrator.aspx