• No results found

Online port´al pro skladov´an´ı a anal´yzu dat PQ monitoru

N/A
N/A
Protected

Academic year: 2022

Share "Online port´al pro skladov´an´ı a anal´yzu dat PQ monitoru"

Copied!
49
0
0

Loading.... (view fulltext now)

Full text

(1)

Online port´ al pro skladov´ an´ı a anal´ yzu dat PQ monitoru

Bakal´ aˇ rsk´ a pr´ ace

Studijn´ı program: B2646 – Informaˇcn´ı technologie Studijn´ı obor: 1802T007 – Informaˇcn´ı technologie

Autor pr´ace: Mykhailo Kushchov Vedouc´ı pr´ace: Ing. Jan Kraus, Ph.D.

(2)

Online portal for storage and analysis of the PQ monitor data sets

Bachelor thesis

Study programme: B2646 – Information Technology Study branch: 1802T007 – Information technology

Author: Mykhailo Kushchov

Supervisor: Ing. Jan Kraus, Ph.D.

(3)

Zadání bakalářské práce

Online portál pro skladování a analý- zu dat PQ monitoru

Jméno a příjmení: Mykhailo Kushchov

Osobní číslo: M15000249

Studijní program: B2646 Informační technologie Studijní obor: Informační technologie

Zadávající katedra: Ústav mechatroniky a technické informatiky Akademický rok: 2018/2019

Zásady pro vypracování:

1. Seznamte se s typickými strukturami dat v archivu PQ monitoru a s dostupnými metodami jejich vzdáleného odečtu, přenosu a ukládání.

2. Navrhněte efektivní datové úložiště pro tato data a s využitím vhodné technologie pro vývoj webových služeb navrhněte a realizujte rozhraní s funkcemi pro analýzu a sdílení dat se vzdá- lenými klienty.

3. Implementujte rozhraní a jednoduchého klienta s funkcemi pro alespoň základní otestování por- tálu.

4. V závěru shrňte dosažené výsledky a diskutujte další možnosti rozvoje tématu.

(4)

Rozsah grafických prací: dle potřeby dokumentace Rozsah pracovní zprávy: 30–40 stran

Forma zpracování práce: tištěná/elektronická

Jazyk práce: Čeština

Seznam odborné literatury:

[1] CASCIARO, Mario; MAMMINO, Luciano. Node. js Design Patterns. Packt Publishing Ltd, 2016.

[2] POWERS, Shelley, 2016. Learning Node: moving to the server-side. Second edition. Boston:

O’Reilly. ISBN 1491943122.

[3] BERTOLI, Michele. React Design Patterns and Best Practices. Packt Publishing Ltd, 2017.

[4] BOJINOV, Valentin. RESTful Web API Design with Node. js. Packt Publishing Ltd, 2016.

Vedoucí práce: Ing. Jan Kraus, Ph.D.

Ústav mechatroniky a technické informatiky Datum zadání práce: 10. října 2018

Předpokládaný termín odevzdání: 30. dubna 2019

prof. Ing. Zdeněk Plíva, Ph.D.

děkan

L.S.

doc. Ing. Milan Kolář, CSc.

vedoucí ústavu

(5)

Prohlášení

Byl jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje zákon č. 121/2000 Sb., o právu autorském, zejména § 60 – školní dílo.

Beru na vědomí, že Technická univerzita v Liberci nezasahuje do mých au- torských práv užitím mé bakalářské práce pro vnitřní potřebu Technické univerzity v Liberci.

Užiji-li bakalářskou práci nebo poskytnu-li licenci k jejímu využití, jsem si vědom povinnosti informovat o této skutečnosti Technickou univerzi- tu v Liberci; v tomto případě má Technická univerzita v Liberci právo ode mne požadovat úhradu nákladů, které vynaložila na vytvoření díla, až do jejich skutečné výše.

Bakalářskou práci jsem vypracoval samostatně jako původní dílo s použi- tím uvedené literatury a na základě konzultací s vedoucím mé bakalářské práce a konzultantem.

Současně čestně prohlašuji, že texty tištěné verze práce a elektronické ver- ze práce vložené do IS/STAG se shodují.

23. srpna 2019 Mykhailo Kushchov

(6)

Podˇ ekov´ an´ı

Rad bych podˇekoval vˇedouc´ımu t´eto bakal´aˇrsk´e pr´ace panu Ing.

Janu Krausovi, Ph.D. za rady pˇri psan´ı t´eto pr´ace.

(7)

Abstrakt

Pr´ace je vˇenov´ana realizaci online port´alu, kter´y nab´ız´ı bˇeˇzn´emu uˇzivateli a spr´avci syst´emu pohodln´e rozhran´ı s funkcemi urˇcen´ymi k anal´yze a sd´ılen´ı dat namˇeˇren´ych Power Quality (PQ) monitorem se vzd´alen´ymi klienty. Reˇserˇse t´eto pr´ace se zab´yv´a definic´ı a pro- blematikou kvality elektrick´e energie, existuj´ıc´ımi metodami ˇreˇsen´ı dan´e problematiky a n´avrhu efektivn´ıho datov´eho ´uloˇziˇstˇe pro data z PQ monitor˚u. V z´avˇeru reˇserˇse je pˇredstaven n´avrh vlastn´ıho ˇreˇsen´ı, kter´ym je online port´al. V´yvoj online port´alu je pops´an v kapitole

”Online port´al“, jeˇz detailnˇe popisuje rozhran´ı pro bˇeˇzn´eho uˇzivatele a spr´avce syst´emu a tak´e pouˇzit´e technologie. Pro kli- entskou ˇc´ast je to programovac´ı jazyk TypeScript, JavaScriptov´a knihovna React a tak´e knihovna Material UI, na kter´e je posta- ven design port´alu. Server online port´alu je realizov´an v syst´emu Node.js; data z PQ monitor˚u jsou zparsov´ana na z´akladˇe vlastn´ıch algoritm˚u a jsou uloˇzena do nerelaˇcn´ıho modelu datab´aze Mon- goDB. Funkce anal´yzy dat z PQ monitor˚u je zprostˇredkov´ana for- mou graf˚u vytvoˇren´ych pˇres knihovnu ApexChart.js. Online port´al je implementovan´y a otestovan´y na datech re´alnˇe namˇeˇren´ych PQ monitorem. V z´avˇereˇcn´e ˇc´asti pr´ace je uvedeno shrnut´ı c´ıl˚u sta- noven´ych na zaˇc´atku pr´ace, vyhodnocen´ı dosaˇzen´ych c´ıl˚u, a tak´e moˇznosti rozˇs´ıˇren´ı online port´alu.

Kl´ıˇcov´a slova: PQ monitor, skladovan´ı a anal´yza dat PQ moni- toru, online port´al, Node.js, React, MongoDB, REST API.

(8)

Abstract

The aim of this thesis is to describe the development of an on- line portal which provides users and system administrators with a convenient interface with features developed to analyse and share data measured by Power Quality monitors. The chapter Research examines the electric power quality, existing methods for the solu- tion of problems related to electric power quality and the develo- pment of an effective data storage system for data obtained from PQ monitors. The last part of the chapter Research focuses on the development of an online portal which is described in detail in the chapter Online Portal. This chapter explores the development of an interface for an average user and system administrator, as well as the technology necessary for the development. The client part was programmed with the programming language TypeScript, React JavaScript library and library Material UI, which was used for por- tal development. Node.js was used to implement the backend part of the portal. Data obtained from PQ monitors were processed on the basis of algorithms and stored in the non-relational database MongoDB. Data were analysed in the form of graphs created in the library ApexChart.js. The online portal was implemented and tested on real data measured by a Power Quality monitor. The last chapter of the thesis summarises and evaluates the results achieved and discusses the possible expansion of the online portal.

Keywords: PQ Monitor, storing and analyzing PQ monitor data, online portal, Node.js, React, MongoDB, Rest API.

(9)

Obsah

Seznam zkratek . . . 14

1 Uvod´ 15 2 Reˇserˇse 16 2.1 Problematika . . . 16

2.2 Struktury dat v archivu PQ monitoru . . . 17

2.2.1 PQ monitor . . . 17

2.2.2 Struktury dat PQ monitoru . . . 17

2.2.3 Metody zpracov´an´ı dat PQ monitoru . . . 18

2.2.4 N´avrh efektivn´ıho datov´eho ´uloˇziˇstˇe pro data PQ monitoru . . 18

2.3 Anal´yza existuj´ıc´ıch ˇreˇsen´ı . . . 21

2.3.1 Wattics.com . . . 22

2.3.2 Izenda.com . . . 23

2.3.3 Energycloud . . . 24

2.4 N´avrh online port´alu a motivace k bakal´aˇrsk´e pr´aci . . . 26

3 Online port´al 29 3.1 Popis implementovan´ych rozhran´ı . . . 29

3.1.1 Dashboard . . . 29

3.1.2 Comparison . . . 30

3.1.3 Main . . . 30

3.1.4 PQ Main . . . 31

3.1.5 Electricity meter . . . 31

3.1.6 Energy cost . . . 32

3.1.7 Device manager . . . 32

3.1.8 Logs . . . 32

3.2 Klient . . . 33

(10)

3.2.1 React, Redux, StoryBook a TypeScript . . . 34

3.2.2 Material UI . . . 36

3.2.3 ApexChart . . . 37

3.3 Server . . . 37

3.3.1 Manipulace s daty PQ monitoru . . . 37

3.4 Testov´an´ı online port´alu . . . 42

4 Z´avˇer 44

Literatura 45

A V´ysledky testov´an´ı online port´alu 47

(11)

Seznam obr´ azk˚ u

2.1 Vzorek pro vyhodnocen´ı proudu, f´azov´eho a sdruˇzen´eho napˇet´ı . . . . 18

2.2 Wattics.com: funkce Trend Analytics . . . 22

2.3 Wattics.com: funkce exportu dat. . . 23

2.4 Izenda.com: pˇr´ıklad uˇzivatelsk´eho rozhran´ı . . . 24

2.5 Izenda.com: pˇr´ıklad uˇzivatelsk´eho rozhran´ı . . . 25

2.6 Funkce sledov´an´ı spotˇreby elektrick´e energie v re´aln´em ˇcase aplikace Energycloud . . . 25

2.7 Funkce sledov´an´ı spotˇreby elektrick´e energie za obdob´ı nˇekolika mˇes´ıc˚u aplikace Energycloud . . . 26

2.8 Funkce anal´yzy vˇsech spotˇrebiˇc˚u, kter´e uˇzivatel v dom´acnosti pouˇz´ıv´a aplikace Energycloud . . . 26

2.9 Sch´ema n´avrhu online port´alu . . . 27

3.1 Funkce Dashboard online port´alu . . . 30

3.2 Funkce Dashboard online port´alu . . . 31

3.3 Funkce ”Comparison“ online port´alu . . . 32

3.4 Funkce ”Main“ online port´alu . . . 33

3.5 Funkce ”PQ Main“ online port´alu . . . 34

3.6 Funkce ”Electricity meter“ online port´alu . . . 35

3.7 Funkce ”Energy cost“ online port´alu . . . 36

3.8 Funkce ”Device manager“ online port´alu . . . 37

3.9 Funkce ”Logs“ online port´alu . . . 38

3.10 Sch´ema pˇred´av´an´ı dat mezi komponentami React . . . 39

3.11 Lok´aln´ı ´uloˇziˇstˇe Redux . . . 40

3.12 Pˇr´ıklad pouˇzit´ı StoryBook . . . 41

3.13 Model datab´aze MongoDB . . . 42

(12)

A.1 Testov´an´ı PM2: 100 HTTP poˇzadavk˚u . . . 47

A.2 Testov´an´ı Artillery.io: 100 HTTP poˇzadavk˚u . . . 47

A.3 Testov´an´ı PM2: 500 HTTP poˇzadavk˚u . . . 47

A.4 Testov´an´ı Artillery.io: 500 HTTP poˇzadavk˚u . . . 48

A.5 Testov´an´ı PM2: 100 HTTP poˇzadavk˚u pˇri spuˇstˇen´ı v´ıce instalac´ı Node.js 48 A.6 Testov´an´ı Artillery.io: 100 HTTP poˇzadavk˚u pˇri spuˇstˇen´ı v´ıce insta- lac´ı Node.js . . . 48

A.7 Testov´an´ı PM2: 500 HTTP poˇzadavk˚u pˇri spuˇstˇen´ı v´ıce instalac´ı Node.js 49 A.8 Testov´an´ı Artillery.io: 500 HTTP poˇzadavk˚u pˇri spuˇstˇen´ı v´ıce insta- lac´ı Node.js . . . 49

(13)

Seznam tabulek

2.1 V´ysledky test˚u rychlosti pro datab´aze MongoDB a PostgreSQL . . . 21

(14)

Seznam zkratek

PQ (Power Quality) - kvalita elektrick´e energie popisuje parametry elek- trick´e energie, kter´e zabraˇnuj´ı kr´atk´e ˇzivotnosti a poruch´am elektrick´ych syst´em˚u

CSNˇ ˇcesk´e technick´e normy

PQ-A analyz´ator kvality elektrick´e energie tˇr´ıdy A

CSV (Comma-Separated Values) - souborov´y form´at pouˇz´ıvan´y pro manipulaci s tabulkov´ymi daty

USB (Universal Serial Bus) - s´eriov´a sbˇernice urˇcen´a k propojen´ı periferi´ı s poˇc´ıtaˇcem

UI (User interface) - rozhran´ı, pomoc´ı kter´eho lid´e ovlivˇnuj´ı chov´an´ı pro- gram˚u, softwar˚u apod.

RS-485 standard s´ıt’ov´e komunikace

REST (Representational State Transfer) - architektura komunikace mezi klien- tem a serverem

SQL (Structured Query Language) - programovac´ı jazyk pouˇz´ıvan´y v relaˇcn´ıch datab´az´ıch

NoSQL (not only SQL) - datov´y koncept, ve kter´em je struktura ´uloˇziˇstˇe a ma- nipulace s daty odliˇsn´a od modelu relaˇcn´ıch datab´az´ı

JSON (JavaScript Object Notation) - form´at urˇcen´y k pˇrenosu dat a pro lepˇs´ı pochopitelnost zaloˇzen´y na JavaScriptu

kWh (Kilowatt hour) - mezin´arodn´ı energetick´a jednotka, kter´a vyjadˇruje mnoˇzstv´ı dodan´e a spotˇrebovan´e energie

(15)

1 Uvod ´

Webov´ych sluˇzeb nab´ızej´ıc´ıch zjednoduˇsen´ı pˇr´ıstupu k informac´ım o spotˇrebovan´e nebo dodan´e elektrick´e energii je dnes pomˇernˇe hodnˇe. Jsou to aplikace urˇcen´e pro kontrolu tarifu spotˇreby elektrick´e energie, kontrolu ´uˇct˚u za dod´avky elektˇriny nebo pro anal´yzu kvality elektrick´e energie a komunikaci s odborn´ıky v t´eto oblasti.

Tato bakal´aˇrsk´a pr´ace si klade dva konkr´etn´ı c´ıle: prvn´ı - analytick´y a druh´y - praktick´y, oba vz´ajemnˇe propojen´e. Analytick´y c´ıl spoˇc´ıv´a v obezn´amen´ı se se souˇcasnou problematikou kvality elektrick´e energie a s jiˇz existuj´ıc´ımi zp˚usoby ˇreˇsen´ı zjiˇstˇen´ych probl´em˚u. Na z´akladˇe splnˇen´ı analytick´eho c´ıle vznik´a c´ıl praktick´y. T´ım je n´avrh a implementace vlastn´ıho efektivn´ıho ˇreˇsen´ı k eliminaci zjiˇstˇen´ych probl´em˚u.

Metoda ˇreˇsen´ı analytick´eho c´ıle je sezn´amen´ı se s definic´ı kvality elektrick´e ener- gie. Ta popisuje parametry elektrick´e energie, a pokud je nebudeme br´at v ´uvahu, m˚uˇzeme doj´ıt u elektrick´ych syst´em˚u ke zkreslen´ym v´ysledk˚um. Dalˇs´ı metodou ˇreˇsen´ı analytick´eho c´ıle je pr˚uzkum existuj´ıc´ıch ˇreˇsen´ı probl´em˚u s kvalitou elek- trick´e energie. Parametry elektrick´e energie je nutn´e zmˇeˇrit a zanalyzovat. K tomu lze vyuˇz´ıt speci´aln´ı zaˇr´ızen´ı na mˇeˇren´ı parametr˚u a tak´e desktopov´e nebo webov´e aplikace.

Pro realizaci praktick´eho c´ıle, tj. v´yvoj syst´emu, je potˇreba zvolit vhodn´e tech- nologie a navrhnout efektivn´ı datov´e ´uloˇziˇstˇe, protoˇze se jedn´a se o pr´aci s velk´ym mnoˇzstv´ım dat. Pˇri implementaci online port´alu je potˇreba se soustˇredit na funkci anal´yzy a sd´ılen´ı dat namˇeˇren´ych PQ monitorem se vzd´alen´ymi klienty. D˚uleˇzitou ˇc´ast´ı realizace online port´alu je tak´e implementace jednoduch´eho klienta za ´uˇcelem otestov´an´ı port´alu.

(16)

2 Reˇ serˇ se

Tato kapitola popisuje probl´emy, spojen´e s kvalitou elektrick´e energie, definuje pˇr´ıstroje, kter´e mˇeˇr´ı, vyhodnocuj´ı a ukl´adaj´ı hodnoty elektrick´ych veliˇcin, popisuje strukturu namˇeˇren´ych dat a metody jejich zpracov´an´ı a pˇrin´aˇs´ı tak´e n´avrh efektivn´ıho da- tov´eho ´uloˇziˇstˇe pro tyto data. D´ale tato kapitola analyzuje existuj´ıc´ı webov´e apli- kace pro ukl´ad´an´ı a zpracov´av´an´ı namˇeˇren´ych hodnot elektrick´ych veliˇcin. V z´avˇeru kapitoly je uveden n´avrh vlastn´ıho ˇreˇsen´ı. tj. n´avrh online port´alu pro kvalitativn´ı anal´yzu hodnot elektrick´e energie. Zm´ınˇena je tak´e moje motivace k naps´an´ı ba- kal´aˇrsk´e pr´ace na dan´e t´ema.

2.1 Problematika

Elektrick´e syst´emy se postupnˇe st´avaj´ı st´ale sloˇzitˇejˇs´ımi. S vyuˇzit´ım modern´ıch v´ykonn´ych elektronick´ych zaˇr´ızen´ı je v dneˇsn´ı dobˇe kontrola syst´emu efektivnˇejˇs´ı, pohodlnˇejˇs´ı a spolehlivˇejˇs´ı. Nicm´enˇe pouˇz´ıv´an´ı tˇechto zaˇr´ızen´ı dostalo energetick´y syst´em do v´aˇzn´ych probl´em˚u v souvislosti s kvalitou. Od t´e doby co pouˇz´ıv´an´ı inte- ligentn´ıch elektronick´ych zaˇr´ızen´ı vzrostlo v kaˇzd´e ˇzivotn´ı sf´eˇre ˇclovˇeka, poˇzadavky na kvalitu v´ykonu z d˚uvodu jejich dlouh´e ˇzivotnosti se staly pro uˇzivatele hlavn´ım krit´eriem. Pr´avˇe proto se kvalita elektrick´e energie stala pˇredmˇetem z´ajmu energe- tick´ych spoleˇcnost´ı, koneˇcn´ych uˇzivatel˚u i v´yrobc˚u. Kvalita elektrick´e energie po- pisuje parametry elektrick´e energie, kter´e zabr´an´ı zkr´acen´ı ˇzivotnosti a poruch´am elektrick´ych syst´em˚u.[1]

D˚uvodem n´ızk´e kvality elektrick´e energie jsou obvykle poruchy elektrick´eho ve- den´ı, jako jsou impulzy, stupnˇe, pokles napˇet´ı, nerovnov´aha proudu a napˇet´ı. The International Electro-technical Commission a Standard Institute of Electrical and Electronics Engineers zahrnuj´ı ztr´atu rovnov´ahy jako zdroj zhorˇsen´ı kvality elek- trick´e energie.[1] V ˇCesk´e republice podl´eh´a dod´avka elektrick´e energie normˇe ˇCSN EN 50160.

(17)

2.2 Struktury dat v archivu PQ monitoru

2.2.1 PQ monitor

Na trhu existuj´ı r˚uzn´e pˇr´ıstroje, kter´e zaznamen´avaj´ı, vyhodnocuj´ı a ukl´adaj´ı do vnitˇrn´ı pamˇeti hodnoty elektrick´ych veliˇcin. Takov´ymi pˇr´ıstroji jsou monitory PQ (Power Quality), kter´e ˇreˇs´ı problematiku spotˇreby a kvality elektrick´e energie. Moni- tory PQ jsou pˇr´ıstroje urˇcen´e pro zaznamen´av´an´ı, monitoring a taky pro uchov´av´an´ı dat o kvalitˇe elektrick´e energie do vnitˇrn´ı pamˇeti. V´ysledn´a data takov´ych pˇr´ıstroj˚u umoˇzˇnuj´ı sledovat dynamiku zlepˇsen´ı nebo zhorˇsen´ı kvality elektrick´e energie a tak´e minimalizovat poruchy a sn´ıˇzit ztr´aty.[1]

Pro anal´yzu struktury a metod zpracov´an´ı dat kvality elektrick´e energie v t´eto bakal´aˇrsk´e pr´aci byl zvolen analyz´ator kvality ARTIQ 144 PQ-A, kter´y nab´ız´ı velmi pˇresn´e mˇeˇren´ı hodnot elektrick´e energie a tak´e velk´y v´ybˇer rozhran´ı vzd´alen´e ko- munikace. Tento analyz´ator se pouˇz´ıv´a pro mˇeˇren´ı, hodnocen´ı a z´aznam spotˇreby a kvality elektrick´e energie.[2]

2.2.2 Struktury dat PQ monitoru

Analyz´ator ukl´ad´a do vnitˇrn´ı pamˇeti namˇeˇren´e hodnoty spotˇreby a kvality elektrick´e energie. To jsou hodnoty elektrick´ych veliˇcin frekvence, napˇet´ı, harmonick´ych a me- ziharmonick´ych proud˚u, flikru, nesymetrie, ˇcinn´ych a jalov´ych v´ykon˚u, energi´ı a uka- zatel˚u kvality elektrick´e energie. Analyz´ator tak´e sˇc´ıt´a minim´aln´ı, pr˚umˇern´e a ma- xim´aln´ı hodnoty a pravideln´e odeˇcty stavu elektromˇeru. Prostˇrednictv´ım webov´ych nebo desktopov´ych aplikac´ı se generuj´ı soubory tˇechto dat ve form´atu csv. Pˇr´ıklady takov´ych soubor˚u jsou soubor ElectricityMeter.csv, Main.csv, PQMain.csv a Log.csv.[2]

Soubor ElectricityMeter.csv obsahuje data ˇcinn´e a jalov´e energie. Do souboru se zapisuj´ı jednof´azov´e aˇz tˇr´ıf´azov´e, kladn´e a z´aporn´e hodnoty ˇcinn´e a jalov´e energie.

Kladn´e hodnoty popisuj´ı spotˇrebovanou energii, z´aporn´e naopak energii vyrobenou nebo dodanou. Do souboru PQMain.csv se d´ale zapisuj´ı informace pro vyhodnocen´ı kvality elektrick´e energie, to jsou hodnoty veliˇcin frekvence, napˇet´ı, proudu, ˇcinn´eho v´ykonu, jalov´eho v´ykonu, celkov´eho harmonick´eho zkreslen´ı, atd. Soubor Log.csv obsahuje z´aznam informac´ı o ˇcinnosti analyz´atoru.

Analyz´ator prov´ad´ı pˇrenos dat prostˇrednictv´ım USB, 2x RS-485 a prostˇrednictv´ım s´ıtˇe Ethernet. Pˇren´aˇs´ı data pro dalˇs´ı anal´yz do desktopov´ych aplikac´ı. ARTIQ 144

(18)

PQ-A podporuje standardn´ı zabudovan´y nativn´ı webserver. T´ım p´adem lze sledo- vat vˇsechny hodnoty a bˇeh ˇcinnosti ARTIQ 144 PQ-A online pomoc´ı webov´eho prohl´ıˇzeˇce. Pˇri zad´an´ı pˇr´ısluˇsn´e IP adresy do webov´eho prohl´ıˇzeˇce se zobraz´ı webov´a str´anka s informacemi z pˇr´ıstroje.[2]

2.2.3 Metody zpracov´ an´ı dat PQ monitoru

Zpracov´an´ı dat analyz´atorem zahrnuje mˇeˇren´ı, vyhodnocov´an´ı, ukl´ad´an´ı dat do vnitˇrn´ı pamˇeti analyz´atoru a n´asledn´y pˇrenos dat do poˇc´ıtaˇce. Mˇeˇren´ı dat ana- lyz´atorem prob´ıh´a prostˇrednictv´ım vyhodnocen´ı frekvence, vzorkov´an´ım proudov´ych a napˇet’ov´ych sign´al˚u a tak´e vyhodnocov´an´ım sebran´ych dat. Napˇr´ıklad pro vyhod- nocen´ı proudu, f´azov´eho a sdruˇzen´eho napˇet´ı se pouˇz´ıv´a vzorek na obr´azku 2.1, kter´y obsahuje i - index vzork˚u, n - poˇcet vzork˚u za periodu mˇeˇren´ı, U1i, U2i, I1i - jednotliv´e vzorky napˇet´ı a proudu.[2]

Obr´azek 2.1: Vzorek pro vyhodnocen´ı proudu, f´azov´eho a sdruˇzen´eho napˇet´ı

2.2.4 N´ avrh efektivn´ıho datov´ eho ´ uloˇ ziˇ stˇ e pro data PQ monitoru

C´ılem t´eto bakal´aˇrsk´e pr´ace je navrhnout a implementovat online port´al pro skla- dov´an´ı a anal´yzu dat PQ monitoru. Jednou z d˚uleˇzit´ych ˇc´ast´ı n´avrhu a implementace online port´alu je v´ybˇer a n´avrh efektivn´ıho datov´eho ´uloˇziˇstˇe pro tato data. Ve svˇetˇe datab´azov´ych technologi´ı existuj´ı dvˇe hlavn´ı oblasti - relaˇcn´ı a nerelaˇcn´ı datab´aze.

Rozd´ıl mez´ı SQL a NoSQL spoˇc´ıv´a v tom, jakou maj´ı strukturu, jak´e datov´e typy podporuj´ı a jak´ym zp˚usobem uchov´avaj´ı data.

Relaˇcn´ı datab´aze uchov´avaj´ı strukturovan´a data, kter´a reprezentuj´ı objekty re´aln´eho svˇeta, napˇr´ıklad informace o osobˇe nebo obsah n´akupn´ıho koˇs´ıku. Tato data jsou setˇr´ıdˇen´e do skupin tabulek, jejichˇz form´at je specifikov´an ve f´azi navrhov´an´ı da- tov´eho ´uloˇziˇstˇe. Relaˇcn´ı syst´emy ˇr´ızen´ı b´aze dat pouˇz´ıvaj´ı jako dotazovac´ı jazyk SQL. Pˇr´ıkladem takov´ych syst´em˚u je Oracle Database, MySQL, PostgreSQL, MS- SQL atp.[3]

(19)

NoSQL podporuj´ı nerelaˇcn´ı datov´y model, kter´y umoˇzˇnuje rychlou a efektivn´ı pr´aci s daty. Ukl´adaj´ı data ve formˇe kl´ıˇc/hodnota, a mohou tak´e reprezentovat data jako dokumentov´e nebo grafov´e datab´aze. Pˇr´ıkladem NoSQL syst´emu ˇr´ızen´ı b´aze dat jsou MongoDB, CouchDB, DocumentDB, apod.. Takov´e syst´emy se pouˇz´ıvaj´ı v pˇr´ıpadˇe, ˇze relaˇcn´ı syst´emy ˇr´ızen´ı b´aze dat nestaˇc´ı nebo projekt vyˇzaduje podm´ınky, kter´ym relaˇcn´ı syst´em ˇr´ızen´ı b´aze dat nevyhovuje.[4]

D˚uvodem k pouˇzit´ı relaˇcn´ıch syst´em˚u b´aze dat je realizace projektu kde struktura dat se bˇehem v´yvoje pˇr´ıliˇs nemˇen´ı a projekt vyˇzaduje technologie, na kter´e se lze spolehnout, coˇz znamen´a velk´e zkuˇsenosti v´yvoj´aˇr˚u a technickou podporu.[3]

D˚uvodem k pouˇzit´ı nerelaˇcn´ıch syst´em˚u b´aze dat je uchov´av´an´ı velk´eho mnoˇzstv´ı nestrukturovan´ych dat. NoSQL neomezuje uˇzivatele v pouˇzit´ı nˇekolika datov´ych typ˚u, nav´ıc v pˇr´ıpadˇe potˇreby m˚uˇze uˇzivatel v pr˚ubˇehu pr´ace datov´e typy pˇrid´avat.

Pokud poˇzadavky na data jsou nejist´e nebo se vyv´ıjej´ı spoleˇcnˇe s projektem a jednˇemi z hlavn´ıch poˇzadavk˚u na datab´azi je ˇsk´alovatelnost tak nerelaˇcn´ı syst´em b´aze dat je dobrou volbou.[4]

Na z´akladˇe anal´yzy relaˇcn´ı a nerelaˇcn´ı datab´aze a poˇzadavk˚u k t´eto bakal´aˇrsk´e pr´aci lze ˇr´ıct, ˇze nerelaˇcn´ı syst´emy ˇr´ızen´ı b´aze dat vyhovuj´ı l´epe, protoˇze poˇzadavky na funkce online port´alu nejsou jist´e, ˇsk´alovatelnost je takt´eˇz d˚uleˇzit´a jde o skla- dov´an´ı a pr´aci s velk´ym mnoˇzstv´ım nestrukturovan´ych dat PQ monitoru. Pro lepˇs´ı n´avrh efektivn´ıho datov´eho ´uloˇziˇstˇe d´ale porovn´av´am relaˇcn´ı a nerelaˇcn´ı syst´emy ˇr´ızen´ı b´aze dat na pˇr´ıkladu PostgreSQL a MongoDB.

PosrgeSQL je datab´azov´y syst´em s otevˇren´ym zdrojov´ym k´odem. PosrgeSQL ukl´ad´a data do tabulek a pro pˇr´ıstup k datab´azi pouˇz´ıv´a strukturovan´y dotazovac´ı jazyk (SQL). V PosrgeSQL je potˇreba na z´akladˇe poˇzadavk˚u uˇzivatel˚u jeˇstˇe pˇred implementac´ı datab´aze definovat jej´ı strukturu a nastavit pravidla pro ˇr´ızen´ı relace mezi daty v tabulk´ach. Vz´ajemnˇe souvisej´ıc´ı informace mohou byt uloˇzeny v sa- mostatn´ych tabulk´ach, ale mohou b´yt spojeny pomoc´ı relac´ı. Jak´ekoliv zmˇeny ve struktuˇre vˇsak m˚uˇzou vyˇradit datab´aze z provozu nebo sn´ıˇzit v´ykon aplikace. [5]

MongoDB patˇr´ı k NoSQL datab´az´ım a ukl´ad´a data jako jsou dokumenty. Ty umoˇzˇnuj´ı snadno reprezentovat hierarchii vztah˚u a jednoduˇse tak uchov´av´an´ı pole a dalˇs´ı sloˇzitˇejˇs´ı datov´e typy.[5]

Podle m´eho n´azoru jsou pro v´ybˇer vhodnˇejˇs´ıho syst´emu ˇr´ızen´ı b´aze dat v t´eto bakal´aˇrsk´e pr´aci d˚uleˇzit´a n´asleduj´ıc´ı krit´eria: ˇsk´alovatelnost, rychlost zpracov´an´ı dat, dostupnost, rychlost v´yvoje a flexibiln´ı zmˇena struktury. Proto podle tˇechto krit´eri´ı porovn´av´am MongoDB a PostgreSQL.

(20)

PosrgeSQL nenab´ız´ı ˇz´adn´e p˚uvodn´ı mechanismy, jak rozˇs´ıˇrit datab´azi na v´ıc neˇz jeden server nebo zp˚usob, jak zajistit jej´ı neust´alou dostupnost. Obˇe tato omezen´ı potlaˇcuj´ı v´yvoj modern´ıch, ˇsk´alovateln´ych a glob´alnˇe dostupn´ych aplikac´ı a tak´e omezuj´ı pouˇzit´ı cloudov´ych architektur.[5]

Aplikace, kter´e byly v minulosti navrˇzeny tak, aby slouˇzily koneˇcn´ym uˇzivatel˚um jsou nyn´ı dod´av´any jako webov´e a cloudov´e sluˇzby, kter´e mus´ı b´yt dostupn´e ne- ust´ale, z mnoha r˚uzn´ych zaˇr´ızen´ı na r˚uzn´ych kan´alech a glob´alnˇe pˇr´ıstupn´e mi- lion˚um uˇzivatel˚u na cel´em svˇetˇe. Aby byly splnˇeny tyto poˇzadavky, je MongoDB postavena na distribuovan´e architektuˇre, kterou lze provozovat v r´amci i napˇr´ıˇc geograficky rozpt´ylen´ych datov´ych center a cloudov´ych ´uloˇziˇst’, coˇz poskytuje do- stupnost a ˇsk´alovatelnost, kterou PosrgeSQL postr´ad´a.[5]

Pr´ace s daty jak´ymi jsou flexibiln´ı JSON dokumenty, avˇsak ne ve formˇe pevn´ych ˇr´adk˚u a sloupc˚u, pom´ah´a v´yvoj´aˇr˚um zrychlit v´yvoj softwaru. Do dokumentu JSON program´ator m˚uˇze pˇrid´avat nov´e atributy, aniˇz by musel mˇenit struktury datab´aze.

V horˇs´ım pˇr´ıpadˇe by to zp˚usobilo v´ypadek, v tom lepˇs´ım v´yrazn´e sn´ıˇzen´ı v´ykonnosti v relaˇcn´ıch datab´az´ıch. Pokud jsou vˇsechna data jedn´e entity uchov´ana v jednom dokumentu, nam´ısto ukl´ad´an´ı do nˇekolika relaˇcn´ıch tabulek, datab´aze ˇcte a zapi- suje data na jednom m´ıstˇe. Kdyˇz jsou vˇsechna data dan´e entity na jednom m´ıstˇe, usnadˇnuje to v´yvoj´aˇr˚um porozumˇet v´ykonu dotaz˚u a optimalizovat jej.[5]

Z tˇechto d˚uvod˚u PostgreSQL a dalˇs´ı relaˇcn´ı datab´aze zaˇcaly podporovat da- tov´y typ JSON. Nicm´enˇe pouh´e pˇrid´an´ı datov´eho typu JSON produktivitu v´yvoj´aˇr˚u nezlepˇs´ı. Dotazov´an´ı a manipulace s obsahem dokumentu JSON vyˇzaduje pouˇzit´ı specifick´ych SQL funkc´ı pro pˇr´ıstup k hodnot´am, kter´e nejsou vˇetˇsinˇe v´yvoj´aˇr˚u zn´am´e.[5]

Pro praktick´e ovˇeˇren´ı rychlosti zpracov´an´ı dat datab´aze PostgreSQL verze 11.5 a MongoDB verze 4.04 bylo provedeno testov´an´ı lok´alnˇe v syst´emu Node.js s pouˇzit´ım hardwaru: CPU Intel Core i5 2,3 GHz a RAM 8 GB LPDDR3 2133 MHz. Testov´an´ı probˇehlo na pˇr´ıkladu pˇrid´an´ı, hled´an´ı a maz´an´ı 100, 1000 a 10000 ˇr´adk˚u dat ve form´atu name: David Nov´ak, e-mail: david.novak@seznam.cz. V tabulce 2.1 jsou uvedeny zpr˚umˇerovan´e v´ysledky 10 test˚u pro datab´aze MongoDB a PostgreSQL.

V´ysledky test˚u ukazuj´ı, ˇze datab´aze PostgreSQL je rychlejˇs´ı, coˇz se nejv´ıc projevuje pˇri zpracov´an´ı velk´eho mnoˇzstv´ı dat.

(21)

Tabulka 2.1: V´ysledky test˚u rychlosti pro datab´aze MongoDB a PostgreSQL

MongoDB PostgreSQL

insert 100 rows[ms]: 19.55 5.84

select 100 rows[ms]: 6.42 3.36

delete 100 rows[ms]:

2.78 1.73

insert 1000 rows[ms]:

49.76 33.98

select 1000 rows[ms]:

33.68 20.85

delete 1000 rows[ms]:

14.09 3.82

insert 10000 rows[ms]:

152.77 188.91

select 10000 rows[ms]:

107.76 68.15

delete 10000 rows[ms]:

97.91 5.11

I kdyˇz datab´aze PostgreSQL zpracov´av´a data rychleji, MongoDB nab´ız´ı flexi- bilnˇejˇs´ı n´astroje pro rychlejˇs´ı v´yvoj a ˇsk´alovatelnost. Na z´akladˇe porovn´an´ı syst´em˚u ˇr´ızen´ı b´aze dat byl zvolen vhodnˇejˇs´ı syst´em, kter´ym se stal MongoDB. Lze ˇr´ıct, ˇze ne- relaˇcn´ı syst´emy ˇr´ızen´ı b´aze dat v t´eto bakal´aˇrsk´e pr´aci vyhovuj´ı l´epe, protoˇze zaprv´e na zaˇc´atku nejsou jist´e poˇzadavky na funkce online port´alu, zadruh´e je d˚uleˇzit´a ˇsk´alovatelnost, zatˇret´ı jde o skladov´an´ı a pr´aci s velk´ym mnoˇzstv´ım nestrukturo- van´ych dat PQ monitoru. Detailnˇejˇs´ı popis implementace datab´aze pro online port´al pop´ıˇsu v kapitole

”Online port´al“ t´eto bakal´aˇrsk´e pr´ace.

2.3 Anal´ yza existuj´ıc´ıch ˇ reˇ sen´ı

V dneˇsn´ı dobˇe existuje na trhu velk´e mnoˇzstv´ı aplikac´ı na skladov´an´ı a anal´yzu dat elektrick´e energie. ˇRada z nich jsou syst´emy, kter´e umoˇzˇnuj´ı prov´est komplexn´ı anal´yzu dat formou graf˚u nebo diagram˚u. Pro anal´yzu existuj´ıc´ıch webov´ych aplikac´ı jsem si vybral aplikace wattics.com, izenda.com a vphrase.com, kter´e podrobnˇeji

(22)

pop´ıˇsu v n´asleduj´ıc´ı podkapitole.

2.3.1 Wattics.com

Wattics.com um´ı vytvoˇrit progn´ozu moˇzn´ych ´uspor elektrick´e energie, analyzuje tarify plateb za elektrickou energii a hodnot´ı energetickou n´aroˇcnost, to vˇsechno prov´ad´ı online a na jednom m´ıstˇe. Aplikace slouˇz´ı jako n´astroj pro manaˇzery a podnikatele, kteˇr´ı dˇelaj´ı rozhodnut´ı v r´amci uˇsetˇren´ı n´aklad˚u na spotˇrebu energie uvnitˇr firmy. Wattics.com poskytuje celou ˇradu funkc´ı pro zlepˇsov´an´ı energetick´ych sluˇzeb. Jednou z takov´ych funkc´ı je Trend Analytics, kter´a uˇzivatel˚um umoˇzˇnuje porovn´avat spotˇrebu energie s oˇcek´avan´ymi hodnotami a upozorˇnuje je na moˇznou

´

usporu energie.[6]

Na obr´azku 2.2 je pˇr´ıklad dat o spotˇrebˇe elektrick´e energie ve formˇe grafu za obdob´ı 30 dn˚u. Zelen´a barva pˇredstavuje progn´ozu oˇcek´avan´ych hodnot spotˇreby elektrick´e energie a ˇcern´a barva pˇredstavuje jej´ı re´aln´e hodnoty. Pokud nen´ı re´aln´a hodnota v rozsahu oˇcek´avan´ych hodnot, znamen´a to, ˇze spotˇreba energie je neob- vykl´a a aplikace to sama nahl´as´ı uˇzivatel˚um prostˇrednictv´ım emailu nebo sms.[6]

Obr´azek 2.2: Wattics.com: funkce Trend Analytics

Dalˇs´ı uˇziteˇcnou funkc´ı pro uˇzivatele t´eto webov´e aplikace je anal´yza kvality elek- trick´e energie, kter´a uˇzivatel˚um nab´ız´ı export dat ve form´atu PNG, JPEG, PDF,

(23)

CSV a SVG z webov´e aplikace Wattics.com (obr´azek 2.3). Anal´yzu tˇechto dat apli- kace Wattics.com zobrazuje uˇzivatel˚um prostˇrednictv´ım graf˚u a sch´emat.[6]

Obr´azek 2.3: Wattics.com: funkce exportu dat

Podle m´eho n´azoru je konkurenˇcn´ı v´yhodou t´eto aplikace to, ˇze syst´em poskytuje synchronizaci dat sol´arn´ıch syst´em˚u pro zlepˇsen´ı viditelnosti a kontroly sluneˇcn´ı energie. Uˇzivatel´e t´eto aplikace se dˇel´ı na spr´avce syst´emu a bˇeˇzn´e uˇzivatele a kaˇzd´y z nich m´a urˇcit´e rozhran´ı a pravomoce. Tato funkce ˇreˇs´ı bezpeˇcnost pˇr´ıstupu uˇzivatel˚u k d˚uleˇzit´ym dat˚um.[6]

2.3.2 Izenda.com

Izenda.com je dalˇs´ım ˇreˇsen´ım pro anal´yzu spotˇreby elektrick´e energie na trhu webov´ych aplikac´ı. Tato aplikace mˇe zaujala pˇredevˇs´ım t´ım, ˇze nab´ız´ı moˇznost integrace sv´e webov´e aplikace do webov´ych aplikac´ı uˇzivatel˚u.

To znamen´a, ˇze vˇsechny funkce aplikace Izenda.com se vkl´adaj´ı pˇr´ımo do apli- kace uˇzivatel˚u a aplikace Izenda se pˇripojuje k server˚um SQL, Oracle a MySQL a k dalˇs´ım zdroj˚um dat aplikace uˇzivatel˚u. Uˇzivatel´e t´ım p´adem z´ısk´avaj´ı snadno pouˇziteln´y n´astroj, kter´y se pˇrizp˚usob´ı jejich poˇzadavk˚um. Tento n´astroj se dok´aˇze plnˇe pˇrizp˚usobit vzhledu, navigaci a zabezpeˇcen´ı dat uˇzivatelsk´e aplikace.[7]

Na obr´azc´ıch 2.4 a 2.5 jsou pˇr´ıklady r˚uzn´ych uˇzivatelsk´ych rozhran´ı webov´e apli- kace Izenda.

D˚uleˇzitou uˇzivatelskou funkc´ı tohoto syst´emu je moˇznost vytv´aˇret a pˇrizp˚usobovat

(24)

Obr´azek 2.4: Izenda.com: pˇr´ıklad uˇzivatelsk´eho rozhran´ı

uˇzivatelsk´e rozhran´ı webov´e aplikace pˇr´ımo v prohl´ıˇzeˇci a schopnost personalizo- vat, navrhovat a prohl´ıˇzet uˇzivatelsk´e rozhran´ı v re´aln´em ˇcase. Uˇzivatel si m˚uˇze zvolit vhodn´e komponenty na z´akladˇe sv´ych poˇzadavk˚u. Aplikace tak´e umoˇzˇnuje analyzovan´a data st´ahnout do form´atu PDF, Word nebo Excel. Pro lepˇs´ı pocho- pen´ı a anal´yzu zobrazuje aplikace Izenda uˇzivatelsk´a data ve formˇe graf˚u, tabulek a sch´emat.[7]

Izenda nab´ız´ı plnou verzi sv´e aplikace formou roˇcn´ıho pˇredplatn´eho, kter´e uˇzivatel plat´ı na mˇes´ıˇcn´ı b´azi. Tato verze obsahuje veˇsker´e funkce platformy a poskytuje li- cence pro neomezen´y poˇcet uˇzivatel˚u. Pokud si uˇzivatel chce Izendu pouze vyzkouˇset, m˚uˇze si bezplatnˇe st´ahnout jej´ı demoverzi, ve kter´e jsou vˇsak nˇekter´e funkce ome- zen´e. Hlavn´ı konkurenˇcn´ı v´yhodou t´eto aplikace je to, ˇze je flexibiln´ı a uˇzivatel´e ji mohou pouˇz´ıvat k vytv´aˇren´ı dynamick´ych vizu´aln´ıch anal´yz elektrick´e energie.

Kaˇzd´y uˇzivatel si tak m˚uˇze pomoc´ı t´eto aplikace vytvoˇrit vlastn´ı analytick´y n´astroj dle sv´ych poˇzadavk˚u. Podle m´eho n´azoru patˇr´ı Izenda k lepˇs´ım webov´ym ˇreˇsen´ım pro anal´yzu dat, kter´e jsou na trhu dostupn´e.[7]

2.3.3 Energycloud

Dalˇs´ı webovou aplikac´ı, kterou jsem se inspiroval je Energycloud.

Tato webov´a aplikace slouˇz´ı pro kontrolu a anal´yzu spotˇreby elektrick´e ener- gie v dom´acnosti. Hlavn´ım c´ılem Energycloudu je snaha uˇsetˇrit uˇzivatel˚um pen´ıze

(25)

Obr´azek 2.5: Izenda.com: pˇr´ıklad uˇzivatelsk´eho rozhran´ı

za spotˇrebu elektrick´e energie. Jednou z uˇziteˇcn´ych funkc´ı t´eto webov´e aplikace je funkce sledov´an´ı spotˇreby elektrick´e energie (obr´azek 2.6) v re´aln´em ˇcase v cel´em domˇe. Uˇzivatel˚um se hodnoty spotˇreby elektrick´e energie zobrazuj´ı v dolarech za hodinu na z´akladˇe aktu´aln´ıch tarif˚u nebo v kilowatthodin´ach.[8]

Obr´azek 2.6: Funkce sledov´an´ı spotˇreby elektrick´e energie v re´aln´em ˇcase aplikace Energycloud

Na dalˇs´ım obr´azku 2.7 je uk´azka hodnot spotˇreby elektrick´e energie za obdob´ı nˇekolika mˇes´ıc˚u a uˇzivatel zde m˚uˇze sledovat, jak´e byly jeho hodnoty spotˇreby v pr˚ubˇehu kaˇzd´eho mˇes´ıce.[8]

Hlavn´ı konkurenˇcn´ı v´yhodou Energycloudu je anal´yza vˇsech spotˇrebiˇc˚u, kter´e uˇzivatel v dom´acnosti pouˇz´ıv´a (obr´azek 2.8), jako jsou kuchyˇnsk´a zaˇr´ızen´ı, praˇcka,

(26)

Obr´azek 2.7: Funkce sledov´an´ı spotˇreby elektrick´e energie za obdob´ı nˇekolika mˇes´ıc˚u aplikace Energycloud

zobrazuj´ı v kilowatthodin´ach a v dolarech a uˇzivatel m´a moˇznost nastavit si urˇcit´y ˇcasov´y interval jako je den, t´yden nebo mˇes´ıc. Tato funkce tedy dok´aˇze zjistit jak´e zaˇr´ızen´ı m´a nejvˇetˇs´ı spotˇrebu a uˇzivatel tak v´ı, kde m˚uˇze uˇsetˇrit pen´ıze.[8]

Obr´azek 2.8: Funkce anal´yzy vˇsech spotˇrebiˇc˚u, kter´e uˇzivatel v dom´acnosti pouˇz´ıv´a aplikace Energycloud

2.4 N´ avrh online port´ alu a motivace k bakal´ aˇ rsk´ e pr´ aci

V dneˇsn´ı dobˇe, kdy se pouˇz´ıv´an´ı elektrick´ych pˇr´ıstroj˚u a inteligentn´ıch zaˇr´ızen´ı tˇeˇs´ı vysok´e popularitˇe, je z d˚uvodu udrˇzen´ı dlouh´e ˇzivotnosti pˇr´ıstroj˚u d˚uleˇzit´a anal´yza a kontrola kvality elektrick´e energie. Proto existuje hodnˇe tak zvan´ych Power Qua- lity monitor˚u, kter´e slouˇz´ı k mˇeˇren´ı, hodnocen´ı a ukl´ad´an´ı hodnot elektrick´e ener- gie. Existuje tak´e hodnˇe webov´ych aplikac´ı vyvinut´ych k analyzov´an´ı namˇeˇren´ych dat PQ monitor˚u. Na z´akladˇe anal´yzy problematiky elektrick´e energie, porovn´an´ı a

(27)

zkoum´an´ı funkc´ı nˇekolika existuj´ıc´ıch webov´ych aplikac´ı, a tak´e anal´yzy struktury dat PQ monitor˚u uk´azan´e na pˇr´ıkladu analyz´atoru ARTIQ 144 PQ-A, popisuje tato podkapitola n´avrh vlastn´ıho ˇreˇsen´ı online port´alu pro skladov´an´ı a anal´yzu dat PQ monitoru.

Podle sch´ematu na obr´azku 2.9 je online port´al prakticky pouˇziteln´y pro dva typy uˇzivatel˚u: pro spr´avce a bˇeˇzn´eho uˇzivatele. Kaˇzd´y z nich m´a moˇznost pouˇz´ıvat urˇcitou sadu funkc´ı dan´eho online port´alu.

ONLINE PORTÁL Informace o činnosti PQ DATA

monitoru

Data činné a jalové energie (jednorázové,třífázové,

kladné,záporné)

Vyhodnocení kvality elektrické energie (frekvence, napětí, proudu, činný výkon, jalový výkon, celkové harmonické zkreslení

atd)

UŽIVATELÉ

Běžný uživatel

Správce FUNKCE

Cena za kWh Analyza ve formě

grafů (podle časových intervalů,

data, tagů atd)

Import .csv Porovnání několika

přístrojů na jednom grafu

Správa uživatelů

Obr´azek 2.9: Sch´ema n´avrhu online port´alu

Na z´akladˇe anal´yzy struktury dat PQ monitoru bude online port´al analyzo- vat data ˇcinn´e a jalov´e energie, pak data vyhodnocen´ı kvality elektrick´e energie, napˇr´ıklad frekvence, napˇet´ı, proudu, ˇcinn´y v´ykon, jalov´y v´ykon, celkov´e harmonick´e zkreslen´ı, atp., a taky informace o ˇcinnosti PQ monitoru.

Online port´al bude umoˇzˇnovat anal´yzu dat ve formˇe graf˚u, kde si uˇzivatel m˚uˇze zvolit PQ monitor, tagy, data (od kdy a do kdy analyzovat), ˇcasov´y interval (napˇr´ıklad data za dobu 15 nebo 30 minut) atd. Dalˇs´ı funkce, kterou bude nab´ızet online port´al je porovn´an´ı dat nˇekolika PQ monitor˚u na jednom grafu. Pˇri zad´an´ı ceny za 1 kWh bude online port´al sˇc´ıtat n´aklady spotˇreby elektrick´e energie za urˇcit´y ˇcasov´y inter- val. Port´al bude nab´ızet import namˇeˇren´ych dat PQ monitoru ve form´atu csv.

(28)

Implementace a detailnˇejˇs´ı popis funkc´ı online port´alu jsou popsan´e v praktick´e ˇc´asti t´eto bakal´aˇrsk´e pr´ace. Moj´ı motivac´ı k naps´an´ı t´eto bakal´aˇrsk´e pr´ace bylo dok´azat na pˇr´ıkladu vlastn´ıho ˇreˇsen´ı moˇznost implementace jednoduch´eho, prak- tick´eho a snadno rozˇsiˇriteln´eho online port´alu. V souˇcasn´e dobˇe existuje hodnˇe fi- rem, kter´e se zab´yvaj´ı monitorov´an´ım kvality elektrick´e energie. Tyto firmy vˇetˇsinou pouˇz´ıvaj´ı pro anal´yzu spotˇreby elektrick´e energie desktopov´e programy. Takov´ym programem je napˇr´ıklad Envis, kter´y se mus´ı instalovat na kaˇzd´em poˇc´ıtaˇci ve firmˇe zvl´aˇst’ a pˇr´ıstup k analyzovan´ym dat˚um tak lid´e maj´ı pouze v kancel´aˇri, kde je program nainstalovan´y. Tento probl´em m˚uˇze pomoct vyˇreˇsit online port´al pro mo- nitorov´an´ı spotˇreb elektrick´e energie, ke kter´emu m´a uˇzivatel pˇr´ıstup odkudkoliv, pokud je pˇripojen´y k internetu.

(29)

3 Online port´ al

Tato kapitola detailnˇe popisuje implementovan´e rozhran´ı pro budouc´ı uˇzivatele on- line port´alu. Jak uˇz bylo zm´ınˇeno v n´avrhu funkc´ı online port´alu, syst´em vymezuje dva typy uˇzivatel˚u - bˇeˇzn´eho uˇzivatele a spr´avce syst´emu. Bˇeˇzn´y uˇzivatel m´a k dis- pozici

”Dashboard“ - ˇr´ıdic´ı panel, ve kter´em se na jednom m´ıstˇe integruj´ı d˚uleˇzit´e informace ze vˇsech str´anek online port´alu. D´ale online port´al nab´ız´ı rozhran´ı

”Com- parison“, ve kter´em doch´az´ı k porovn´an´ı a anal´yze namˇeˇren´ych hodnot dvou nebo v´ıce PQ monitor˚u. Dalˇs´ımi zaj´ımav´ymi funkcemi rozhran´ı, kter´e m´a k dispozici bˇeˇzn´y uˇzivatel, jsou

”Electricity meter“,

”PQ Main“,

”Main“ a

”Logs“, kter´e slouˇz´ı k anal´yze formou graf˚u a tabulek namˇeˇren´ych hodnot frekvence, napˇet´ı, proudu, ˇcinn´eho v´ykonu, jalov´eho v´ykonu, celkov´eho harmonick´eho zkreslen´ı a informac´ı o ˇcinnosti PQ monitoru. Rozhran´ı

”Energy cost“ nab´ız´ı bˇeˇzn´emu uˇzivateli kalkulaˇcku, pomoc´ı kter´e si m˚uˇze spoˇc´ıtat cenu spotˇrebovan´e elektrick´e energie. Spr´avce syst´emu m´a k dispozici stejn´e analytick´e rozhran´ı a nav´ıc tak´e n´astroj

”Device manager“ s funkc´ı importu csv souboru do online port´alu. D´ale popisuji podrobnˇe funkce tˇechto rozhran´ı a vysvˇetluji zp˚usoby a technologie jejich implementace.

3.1 Popis implementovan´ ych rozhran´ı

3.1.1 Dashboard

Bˇeˇzn´y uˇzivatel i spr´avce syst´emu m´a moˇznost si zvolit pomoc´ı ˇr´ıdic´ıho panelu lo- kaci PQ monitoru, zaˇr´ızen´ı a hodnoty elektrick´e energie, jeˇz PQ monitor mˇeˇr´ı. V ˇr´ıdic´ım panelu se pak zobraz´ı anal´yza zvolen´eho zaˇr´ızen´ı. Na obr´azc´ıch 3.1 a 3.2 je zn´azornˇen ˇr´ıdic´ı panel uˇzivatele, kter´y obsahuje kr´atkou informaci o nˇem, tj. jeho jm´eno, pˇr´ıjmen´ı a emailovou adresu, a tak´e anal´yzu namˇeˇren´ych hodnot elektrick´e energie zvolen´eho zaˇr´ızen´ı.

Po zvolen´ı lokace PQ monitoru a zaˇr´ızen´ı v ostatn´ıch rozhran´ıch online port´alu,

(30)

Obr´azek 3.1: Funkce Dashboard online port´alu

jako jsou

”Electricity meter“,

”PQ Main“,

”Main“,

”Energy cost“ a

”Logs“, se zob- raz´ı anal´yza namˇeˇren´ych hodnot zvolen´eho zaˇr´ızen´ı, coˇz poskytuje uˇzivateli poho- dlnˇejˇs´ı pr´aci s online port´alem a nemus´ı znovu vyb´ırat zaˇr´ızen´ı.

3.1.2 Comparison

Toto rozhran´ı online port´alu umoˇzˇnuje porovn´avat namˇeˇren´e hodnoty dvou a v´ıce PQ monitor˚u v jednom grafu.

Na obr´azku 3.3 je vidˇet implementovan´e rozhran´ı

”Comparison“, kde m´a bˇeˇzn´y uˇzivatel nebo spr´avce moˇznost porovnat namˇeˇren´e hodnoty dvou nebo v´ıce PQ mo- nitor˚u prostˇrednictv´ım volby ˇcasov´eho intervalu namˇeˇren´ych dat (odkdy dokdy), intervalu vykreslen´ı hodnot grafu, coˇz jsou intervaly 15 min., 30 min., 1 hodina a 1 den, a tagu hodnot, kter´y chce v grafu analyzovat. Uˇzivatel m˚uˇze do grafu pro anal´yzu pˇrid´avat libovoln´y poˇcet dalˇs´ıch zaˇr´ızen´ı stisknut´ım tlaˇc´ıtka

”+”.

3.1.3 Main

Pomoc´ı rozhran´ı

”Main“ (obr´azek 3.4) m˚uˇze uˇzivatel analyzovat stˇredn´ı, maxim´aln´ı a minim´aln´ı hodnoty veliˇcin frekvence, napˇet´ı, proudu, ˇcinn´eho v´ykonu, jalov´eho v´ykonu, celkov´eho harmonick´eho zkreslen´ı atd.

(31)

Obr´azek 3.2: Funkce Dashboard online port´alu

3.1.4 PQ Main

Pomoc´ı rozhran´ı

”PQ Main“ (obr´azek 3.5) m˚uˇze uˇzivatel analyzovat hodnoty napˇet´ı a frekvence z archivu PQ Main. Uˇzivatel si zvol´ı firmu, PQ monitor, tag, ˇcasov´y interval mˇeˇren´ı a vykreslen´ı hodnot (15 min., 30 min., 1 hod. nebo 1 den) a podle tˇechto hodnot se mu potom vykresl´ı graf.

3.1.5 Electricity meter

V rozhran´ı

”Electricity meter“ jsou nastaven´e defaultn´ı hodnoty lokace PQ monitoru a zaˇr´ızen´ı, kter´e uˇzivatel zvolil v

”Dashboardu“, lze tak´e vybrat hodnoty nov´e. Bˇeˇzn´y uˇzivatel nebo spr´avce syst´emu maj´ı moˇznost vybrat ˇcasov´y interval hodnot, kter´e chtˇej´ı zobrazit v grafu (namˇeˇren´e hodnoty odkdy dokdy), a d´ale interval hodnot pro vykreslen´ı grafu, tj. 15 min., 30 min., 1 hodina nebo 1 den. Na obr´azku 3.6 je uveden graf namˇeˇren´ych hodnot z archivu

”Electricity meter“, coˇz jsou data jednof´azov´e aˇz tˇr´ıf´azov´e, kladn´e i z´aporn´e hodnoty ˇcinn´e a jalov´e energie.

(32)

Obr´azek 3.3: Funkce

”Comparison“ online port´alu

3.1.6 Energy cost

Pomoc´ı

”Energy cost“ (obr´azek 3.7) m´a uˇzivatel moˇznost sledovat v grafu tendence zmˇen ceny spotˇrebovan´e elektrick´e energie. Uˇzivatel zad´av´a lokace, zaˇr´ızen´ı a ˇcasov´e intervaly a tak´e, coˇz je d˚uleˇzit´e, cenu za 1 kWh. Na z´akladˇe tˇechto dat spoˇc´ıt´a online port´al cenu za spotˇrebu elektrick´e energie a zobraz´ı ji v grafu.

3.1.7 Device manager

”Device manager“ (obr´azek 3.8) neboli spr´ava zaˇr´ızen´ı je rozhran´ı urˇcen´e pro spr´avce syst´emu a obsahuje funkce importu a maz´an´ı csv soubor˚u. Rozhran´ı umoˇzˇnuje nahr´at do datab´aze online port´alu urˇcit´e typy csv soubor˚u. Je pˇritom d˚uleˇzit´e vy- brat typ souboru: electricity meter, logs, pq main nebo main, a tak´e vybrat, zda-li m´a soubor header, tedy informaci obsaˇzenou v hlaviˇcce.

3.1.8 Logs

Rozhran´ı

”Logs“ je implementovan´e jak pro bˇeˇzn´eho uˇzivatele, tak i pro spr´avce syst´emu. Str´anka

”Logs“ seznamuje uˇzivatele s informacemi o ˇcinnosti PQ moni- tor˚u. Tabulka (obr´azek 3.9) obsahuje hl´aˇsen´ı chyb nebo varov´an´ı v souvislosti s ˇcinnost´ı PQ monitor˚u. Zvolen´ım lokace PQ monitoru, zaˇr´ızen´ı, ˇcasov´eho intervalu

(33)

Obr´azek 3.4: Funkce

”Main“ online port´alu

namˇeˇren´ych hodnot (odkdy dokdy) a tak´e intervalu vykreslen´ı hodnot – 15 min., 30 min., 1 hod. nebo 1 den – se v tabulce zobraz´ı datum, ˇcas, typ a ID hl´aˇsen´ı.

3.2 Klient

Klient online port´alu je implementov´an v programovac´ım jazyce TypeScript s vyuˇzit´ım JavaScriptov´e knihovny React, kter´a umoˇzˇnuje rozdˇelit UI na komponenty, kter´e lze do sebe skl´adat a pouˇz´ıvat je na r˚uzn´ych m´ıstech aplikace. Pro efektivnˇejˇs´ı pr´aci s komponenty React byly pouˇzity n´astroje Storybook a Redux. Design online port´alu je realizov´an prostˇrednictv´ım knihovny Material UI a anal´yza dat PQ monitoru se zobrazuje pomoc´ı knihovny ApexChart, kter´a je vyvinuta pro vytvoˇren´ı grafu a diagramu.

(34)

Obr´azek 3.5: Funkce

”PQ Main“ online port´alu

3.2.1 React, Redux, StoryBook a TypeScript

Pˇri realizaci online port´alu byly zvolen´e technologie TypeScript, React, StoryBook a Redux. TypeScript je skriptovac´ı programovac´ı jazyk, kter´y se kompiluje do Ja- vaScriptu a podporuje statick´e typov´an´ı. Statick´e typov´an´ı umoˇzˇnuje dopodrobna popsat vlastnosti a metody objekt˚u a tˇr´ıd, a t´ım vyluˇcuje potˇrebu kontroly vˇsech argument˚u metod nebo funkc´ı, coˇz ˇcin´ı k´od napsan´y v TypeScriptu jednoduˇsˇs´ım a ˇcitelnˇejˇs´ım. TypeScript je nadstavbou JavaScriptu, a to v praxi znamen´a, ˇze pod- poruje vˇsechny knihovny, frameworky a n´astroje pro JavaScript.[9]

React je JavaScriptovou knihovnou zaloˇzenou na komponent´ach, kter´e usnadˇnuj´ı realizaci UI. Jak uˇz jsem uv´adˇel, React komponenty lze skl´adat do sebe a pouˇz´ıvat na r˚uzn´ych m´ıstech aplikace nebo i v jin´ych aplikac´ıch. Pokud chce uˇzivatel bˇehem pouˇzit´ı aplikace prov´est nˇejakou zmˇenu, napˇr. nahr´at soubor nebo vygenerovat graf, knihovna React aktualizuje pouze tu ˇc´ast aplikace, kter´a byla zmˇenˇena a neprovede aktualizaci cel´e str´anky nebo aplikace.[10]

(35)

Obr´azek 3.6: Funkce

”Electricity meter“ online port´alu

Probl´em, kter´y se objevil bˇehem v´yvoje klientsk´e ˇc´asti online port´alu a ze kter´eho se nakonec stal hlavn´ı d˚uvod k pouˇzit´ı JavaScriptov´e knihovny Redux, je pr´ace s daty aktu´aln´ıho stavu aplikace. Napˇr´ıklad komponenta Electricity meter se skl´ad´a z dalˇs´ıch komponent menu, filtr˚u a grafu. Tyto komponenty maj´ı sv´a vlastn´ı izolovan´a data, kter´a je potˇreba navz´ajem pˇred´avat pro dalˇs´ı realizace funkc´ı (napˇr. funkce vykreslen´ı grafu podle zvolen´ych filtr˚u). Probl´em bych mohl vyˇreˇsit pˇrenosem vˇsech dat do hlavn´ı komponenty Electricity meter, to by ale vygenerovalo dalˇs´ı probl´emy.

React komponenty tvoˇr´ı stromovou strukturu, v n´ıˇz existuje komponenta rodiˇcovsk´a a komponenty potomk˚u. Pˇred´av´an´ı dat mezi komponentami React je zpravidla shora dol˚u (obr´azek 3.10), tedy od rodiˇcovsk´e komponenty ke komponentˇe potomka.

Probl´em ovˇsem spoˇc´ıv´a v tom, ˇze data mezi komponentami je potˇreba pˇred´avat pˇres vˇsechny ´urovnˇe stromu a zachovat pˇritom veˇskerou logiku v jedin´e hlavn´ı kompo- nentˇe. Tento probl´em vyˇreˇsila knihovna Redux, kter´a poskytuje mezivrstvu - tzv.

lok´aln´ı ´uloˇziˇstˇe pro data komponent (obr´azek 3.11) a z´aroveˇn poskytuje snadn´y zp˚usob pˇred´an´ı tˇechto dat do komponenty, kter´a je potˇrebuje a nedoch´az´ı k pˇred´an´ı

(36)

Obr´azek 3.7: Funkce

”Energy cost“ online port´alu dat zbyteˇcnˇe pˇres cel´y strom.[10]

Existuje mnoho r˚uzn´ych n´astroj˚u pro pohodlnˇejˇs´ı pr´aci s React komponentami, napˇr. StoryBook, kter´y jsem v t´eto pr´aci vyuˇzil. StoryBook je prostˇred´ı pro v´yvoj React komponent, kter´y umoˇzˇnuje vyv´ıjet organizovanˇe a efektivnˇe.[11]

StoryBook (obr´azek 3.12) bˇeˇz´ı mimo hlavn´ı aplikace, a proto jsem bˇehem v´yvoje mˇel moˇznost vytv´aˇret React komponenty izolovanˇe, coˇz eliminuje starosti spojen´e se specifick´ymi z´avislostmi a podm´ınkami v aplikaci.

3.2.2 Material UI

Pˇri n´avrhu designu online port´alu jsem zvolil knihovnu Material UI. Material UI je knihovnou s otevˇren´ym k´odem od spoleˇcnosti Google, kter´a poskytuje sadu kom- ponent uˇzivatelsk´eho rozhran´ı a kter´a pomohla vytv´aˇret React aplikace ve stylu Material Design.[12]

Pˇri implementaci online port´alu jsem vyuˇzil i dalˇs´ı Material UI rozhran´ı: navi- gaci, tabulky, tlaˇc´ıtka, rozhran´ı pro filtry apod. Pro realizaci designu Material UI byly komponenty online port´alu pˇrid´any do speci´aln´ı komponenty Material UI - CssBaseline. Po pˇrid´an´ı komponenty online port´alu zdˇedily od knihovny Material UI barvu pozad´ı Material Design, styl p´ısma Roboto a velikost p´ısma 16px - v´ychoz´ı velikost p´ısma prohl´ıˇzeˇce, apod.

(37)

Obr´azek 3.8: Funkce

”Device manager“ online port´alu

3.2.3 ApexChart

Z´akladn´ı funkc´ı online port´alu je anal´yza dat namˇeˇren´ych PQ monitorem. Tato funkce je implementov´ana pomoc´ı knihovny ApexChart. Knihovna nab´ız´ı interak- tivn´ı vizualizace webov´ych aplikac´ı s pouˇzit´ım r˚uzn´ych typ˚u graf˚u. Pouˇzit´ı Apex- Chart knihovny v online port´alu bylo jednoduch´e, hlavn´ımi d˚uvody pro volbu knihovny byly: snadnˇejˇs´ı zoomov´an´ı hodnot v grafu, moˇznost um´ıstˇen´ı informaˇcn´ıch pozn´amek do grafu, funkce panoramov´an´ı dat z grafu. To je pro tuto pr´aci d˚uleˇzit´e, nebot’ zpra- cov´av´a velk´y objem dat namˇeˇren´ych PQ monitorem.

3.3 Server

Server online port´alu bˇeˇz´ı v softwarov´em syst´emu Node.js s vyuˇzit´ım frameworku Express.js. Datov´e ´uloˇziˇstˇe pro data PQ monitoru je navrˇzeno a implementov´ano jako nerelaˇcn´ı model datab´aze MongoDB. Pro parsov´an´ı dat PQ monitoru byly uˇzity vlastn´ı algoritmy. Pouˇzit´ı tˇechto technologi´ı pro implementaci serveru online port´alu popisuji podrobnˇe v n´asleduj´ıc´ıch podkapitol´ach.

3.3.1 Manipulace s daty PQ monitoru

V reˇserˇsi k t´eto bakal´aˇrsk´e pr´aci byl zm´ınˇen n´avrh efektivn´ıho datov´eho ´uloˇziˇstˇe pro data namˇeˇren´a PQ monitorem. Na z´akladˇe porovn´an´ı relaˇcn´ıho a nerelaˇcn´ıho modelu datab´aze byl zvolen vhodnˇejˇs´ı syst´em - MongoDB - nebot’ na zaˇc´atku v´yvoje online

(38)

Obr´azek 3.9: Funkce

”Logs“ online port´alu

port´alu nebyly pevnˇe dan´e poˇzadavky na jeho funkce a nav´ıc se jedn´a o ukl´ad´an´ı a pr´aci s velk´ym mnoˇzstv´ım nestrukturovan´ych dat namˇeˇren´ych PQ monitorem.

Z´akladem datab´aze MongoDB je dokument, kter´y m´a unik´atn´ı id a skl´ad´a se z p´ar˚u kl´ıˇc - hodnota. Dokument tak´e m˚uˇze obsahovat odkaz na dokumenty z jin´ych kolekc´ı. Datab´aze MongoDB se skl´ad´a z kolekc´ı, kter´e maj´ı seznam vlastn´ıch doku- ment˚u a kaˇzd´y dokument je prvkem re´aln´eho svˇeta. Strukturu dokumentu popisuje zpravidla sch´ema kolekce.[13]

Na obr´azku 3.13 je implementov´an model datab´aze MongoDB, kter´y obsahuje pˇet kolekc´ı: archive, device, chartData, logs a user.

Sch´ema kolekce

”user“ se skl´ad´a z atribut˚u: id, jm´eno, pˇr´ıjmen´ı, emailov´a adresa, heslo a role. Kaˇzd´y dokument z t´eto kolekce

”user“ m´a sv˚uj unik´atn´ı kl´ıˇc, coˇz je id, podle kter´eho se d´a vyhledat urˇcit´y dokument. Kaˇzd´y dokument z t´eto kolekce m´a tak´e atribut

”role“, kter´y dˇel´ı uˇzivatele dle typu (bˇeˇzn´y uˇzivatel nebo spr´avce syst´emu).

Sch´ema kolekce

”archive“ obsahuje atributy title a tags, tedy n´azev archivu PQ monitoru a tag namˇeˇren´ych hodnot. V datab´azi se m˚uˇze uchov´avat napˇr. dokument s hodnotami archiv - PQMain a tag - f (f je frekvence).

Dalˇs´ı sch´ema kolekce

”device” je implementovan´e za ´uˇcelem uchov´av´an´ı informac´ı

(39)

Komponenta

Komponenta Komponenta

Komponenta Komponenta Komponenta

Komponenta Komponenta

Obr´azek 3.10: Sch´ema pˇred´av´an´ı dat mezi komponentami React

o zaˇr´ızen´ıch. Atribut kolekce title popisuje n´azev zaˇr´ızen´ı, model popisuje model zaˇr´ızen´ı a location popisuje m´ısto, kde se zaˇr´ızen´ı nach´az´ı.

Kolekce

”chartData“ byla implementov´ana za ´uˇcelem uchov´av´an´ı zparsovan´ych dat z PQ monitor˚u dle ˇcasov´eho intervalu (15 min., 30 min., 1 hod., 1 den) pro dalˇs´ı vykreslen´ı hodnot do grafu. Atributy t´eto kolekce jsou device, data, archive, recordTime a interval. Atribut recordTime uchov´av´a datum a ˇcas mˇeˇren´ı hodnot PQ monitorem. Atribut interval ukazuje, v jak´em intervalu byla data zparsov´ana – 15 min., 30 min., 1 hod. nebo 1 den.

Posledn´ım sch´ematem kolekce je

”logs“, kter´y byl implementovan´y, aby uchov´aval informace ze souboru Logs.csv. To jsou informace o ˇcinnosti PQ monitoru - hl´aˇsen´ı chyb a varov´an´ı. Sch´ema m´a n´asleduj´ıc´ı atributy: type - typ hl´aˇsen´ı, id - identifikaˇcn´ı kl´ıˇc hl´aˇsen´ı, device - zaˇr´ızen´ı, jehoˇz se hl´aˇsen´ı t´yk´a a recordTim - ˇcas hl´aˇsen´ı.

C´ılem t´eto bakal´aˇrsk´e pr´ace byla realizace online port´alu pro skladov´an´ı a anal´yzu dat namˇeˇren´ych PQ monitorem. Proto byla pouˇzita data re´alnˇe namˇeˇren´a PQ mo- nitorem. K dispozici jsem mˇel archivy dat z PQ monitoru: ElectricityMeter.csv, Main.csv, PQMain.csv a Log.csv, kter´e obsahuj´ı velmi vysok´y poˇcet hodnot a ne- bylo moˇzn´e vykreslovat vˇsechny namˇeˇren´e hodnoty z archiv˚u do graf˚u nebo tabulek.

Proto bylo hlavn´ım c´ılem parsov´an´ı tˇechto dat zpr˚umˇerovat namˇeˇren´e hodnoty do interval˚u 15 min., 30 min., 1 hod. a 1 dne. Parsov´an´ı archiv˚u jsem realizoval pomoc´ı vlastn´ıch algoritm˚u. Logika parsov´an´ı tˇechto dat je implementovan´a v souboru in- dex.ts, kter´y pos´ıl´a data v z´avislosti na jejich typu do dalˇs´ıch parser˚u, tj. do soubor˚u

(40)

Komponenta

Komponenta Komponenta

Komponenta Komponenta Komponenta

Komponenta Komponenta Redux

úložiště

Obr´azek 3.11: Lok´aln´ı ´uloˇziˇstˇe Redux

electricityMeterParser.ts, mainParser.ts, pqMainParser.ts a logsParser.ts. Soubor ElectricityMeter.csv obsahuje st´ale rostouc´ı hodnoty jednof´azov´e, tˇr´ıf´azov´e, kladn´e i z´aporn´e hodnoty ˇcinn´e a jalov´e energie, kde kladn´e hodnoty popisuj´ı spotˇrebovanou energii, z´aporn´e naopak energii vyrobenou nebo dodanou. Data bylo potˇreba jednak zparsovat podle tagu hodnot (to jsou tagy 3EP, 3EQ, EP1, EQ1, EP1+, EP1-, EP2, EQ2, EP2+, EP2-, EP3, EQ3, EP3+, EP3-) a tak´e zpr˚umˇerovat do interval˚u 15 min., 30 min., 1 hod. a 1 dne.

Funkce electricityMeterParser v souboru electricityMeterParser.ts je urˇcena pro parsov´an´ı dat podle tag˚u a podle interval˚u. Data v souboru electricityMeter.csv namˇeˇren´a v intervalu 15 min. ve form´atu: ´uter´y 22. ´unora 2018; 2:30:00 PM, ´uter´y 22. ´unora 2018; 2:45:00 PM, ´uter´y 22. ´unora 2018; 3:00:00 PM atd.

Pˇri parsov´an´ı dat v intervalu 15 min. funkce naˇc´ıt´a kaˇzdou hodnotu ze souboru.

Pˇri parsov´an´ı dat v intervalu 30 min. naˇc´ıt´a funkce ze souboru hodnoty namˇeˇren´e kaˇzd´ych 30 minut (2:30:00 PM, 3:00:00 PM, 3:30:00 PM atd.). Pˇri parsov´an´ı dat v intervalu 1 hod. funkce naˇc´ıt´a hodnoty namˇeˇren´e kaˇzdou hodinu (2:30:00 PM, 3:30:00 PM, 4:30:00 PM atd.) a pˇri parsov´an´ı dat v intervalu 1 den naˇc´ıt´a funkce hodnoty namˇeˇren´e kaˇzdou p˚ulnoc (´uter´y 22. ´unora 12:00:00 AM, stˇreda 23. ´unora 12:00:00 AM atd.). Vˇsechna zparsovan´a data se pak ukl´adaj´ı do kolekce chartData v datab´azi MongoDB.

Soubor PQMain.csv obsahuje rostouc´ı i klesaj´ıc´ı hodnoty namˇeˇren´e PQ monito- rem, kter´e poskytuj´ı informace pro vyhodnocen´ı kvality elektrick´e energie, tj. hod- noty veliˇcin frekvence, napˇet´ı, proudu, ˇcinn´eho v´ykonu, jalov´eho v´ykonu, celkov´eho

(41)

Obr´azek 3.12: Pˇr´ıklad pouˇzit´ı StoryBook

harmonick´eho zkreslen´ı atd.

Funkce pqMainParser v souboru pqMainParser.ts zpr˚umˇeruje vˇsechny hodnoty namˇeˇren´e za 15 min., 30 min., 1 hod., 1 den. Funkce m´a promˇenn´e minDate a maxDate, coˇz jsou hodnoty zaˇc´atku a konce kaˇzd´ych namˇeˇren´ych 15 min., 30 min., 1 hod. nebo 1 dne. Pomoc´ı tˇechto promˇenn´ych funkce od minDate do maxDate poskl´ad´a namˇeˇren´e hodnoty a souˇcet potom podˇel´ı jejich poˇctem. V´ysledkem funkce budou hodnoty zpr˚umˇerovan´e do interval˚u a tyto hodnoty se pak uloˇz´ı do kolekce datab´aze chartData.

Soubor Logs.csv obsahuje pouze hl´aˇsen´ı chyb a varov´an´ı t´ykaj´ıc´ı se ˇcinnosti PQ monitoru. Funkce logsParser zparsov´av´a informace podle data, typu a id hl´aˇsen´ı.

Tyto informace se pak uloˇz´ı do kolekce

”logs“ datab´aze MongoDB.

(42)

MongoDB ARCHIVEtitle: String;

tags: String

DEVICE

title: String;

model: String;

location: String

CHARTDATA

device: ObjectId;

data: Object;

archive: String;

recordTime: Date;

interval: intervalType

USER

id: ObjectId;

name: String;

surname: String;

email: String;

password: String;

role: String

LOGS

type: String;

id: Number;

device: ObjectId;

recordTime: Date

Obr´azek 3.13: Model datab´aze MongoDB

3.4 Testov´ an´ı online port´ alu

Jedn´ım z d˚uleˇzit´ych krok˚u v´yvoje kaˇzd´eho softwaru je testov´an´ı. To softwaru zjiˇst’uje informace o v´ykonnosti a rychlosti pr´ace syst´emu. Hlavn´ımi krit´erii pro testov´an´ı online port´alu jsou kolik dat je port´al schopn´y zpracovat najednou, kolik uˇzivatel˚u m˚uˇze souˇcasnˇe pouˇz´ıvat online port´al a jak dlouho trv´a zpracov´av´an´ı takov´ych in- formac´ı a kolik pamˇeti procesoru zab´ır´a.

Pro otestov´an´ı backendu online port´alu byl zvolen PM2. PM2 je manaˇzer mo- nitorov´an´ı operac´ı pro Node.js, kter´y umoˇzˇnuje sledovat v´ykonnost CPU a MEM bˇehem pos´ıl´an´ı velk´eho mnoˇzstv´ı poˇzadavk˚u na backend online port´alu.[14]

Dalˇs´ım n´astrojem, kter´y byl pouˇzit pro testov´an´ı v´ykonnosti online port´alu je Artillery.io. Tento n´astroj umoˇzˇnuje otestovat v´ykonnost aplikace pomoc´ı HTTP, coˇz znamen´a, ˇze bˇehem kaˇzd´ych 60. vteˇrin se pos´ılalo 100 nebo 500 poˇzadavk˚u do API serverov´e ˇc´asti online port´alu.[15]

Prostˇrednictv´ım Artillery.io lze sledovat poˇcet virtu´aln´ıch uˇzivatel˚u, kteˇr´ı byli vy- tvoˇreni bˇehem testov´an´ı -

”Scenarios launched“, poˇcet uˇzivatel˚u, kteˇr´ı splnili ´ulohu testov´an´ı -

”Scenarios completed“, poˇcet HTTP poˇzadavk˚u a odpovˇed´ı -

”Requests completed“, pr˚umˇern´y poˇcet HTTP poˇzadavk˚u, kter´e byly proveden´e za dobu tes- tov´an´ı -

”RPS sent“, hodnotu

”Request latency“, kter´a popisuje rychlost vˇsech od- povˇed´ı na poˇzadavky HTTP a hodnotu

”Codes“, kter´a popisuje stavov´e k´ody HTTP odpovˇed´ı.[15]

(43)

D´ale jsou uvedeny v´ysledky testov´an´ı backendu online port´alu prostˇrednictv´ım Artillery.io, kter´y pos´ıl´a kaˇzdou vteˇrinu 100 (obr´azky v pˇr´ıloze A.1, A.2, A.5, A.6) nebo 500 (obr´azeky v pˇr´ıloze A.3, A.4, A.7, A.8) HTTP poˇzadavk˚u do API port´alu.

Backend online port´alu je realizov´an v softwarov´em syst´emu Node.js, kde jsou vˇsechny poˇzadavky obsluhovan´e asynchronnˇe v jednom vl´aknu, aby nedoˇslo k blo- kaci po dobu zpracov´an´ı poˇzadavku. Testy na obr´azc´ıch v pˇr´ıloze A.1, A.2, A.3, A.4 byly proveden´e pr´avˇe v prostˇred´ı, kde Node.js zpracov´av´a poˇzadavky asynchronnˇe v jednom vl´aknˇe.

Pro vyuˇzit´ı v´ıce jader procesoru je potˇreba spustit v´ıce instalac´ı Node.js, z nichˇz kaˇzd´a mus´ı poslouchat na jin´em portu.[16]

Dalˇs´ı testy na obr´azc´ıch v pˇr´ıloze A.5, A.6, A.7, A.8 jsou realizovan´e pˇri spuˇstˇen´ı v´ıce instanc´ı Node.js, kter´e poslouchaj´ı na r˚uzn´ych portech. To vede k odliˇsn´ym v´ysledn´ym hodnot´am testu Node.js a je zˇrejm´e, ˇze zat´ıˇzen´ı MEM a CPU je menˇs´ı, protoˇze balancov´an´ı operac´ı je rozdˇeleno mezi nˇekolik instanc´ı.

Na obr´azc´ıch A.2 a A.4 je vidˇet, ˇze poˇcet vytvoˇren´ych uˇzivatel˚u a uˇzivatel˚u, kteˇr´ı splnili ´ulohu testov´an´ı pro 100 HTTP poˇzadavk˚u je stejn´y – 6000, ale pro 500 poˇzadavk˚u je poˇcet uˇzivatel˚u, kteˇr´ı dokonˇcili ´ulohu testov´an´ı menˇs´ı, neˇz poˇcet vˇsech vytvoˇren´ych uˇzivatel˚u. Bˇehem testov´an´ı 500 HTTP poˇzadavk˚u syst´em nahl´asil 23 chyby, ale pro testov´an´ı na 100 poˇzadavc´ıch syst´em pouze vypsal pro vˇsechny poˇzadavky stavov´y k´od 200 -

”OK“, coˇz je standardn´ı odpovˇed’ pro ´uspˇeˇsn´y HTTP poˇzadavek.

(44)

4 Z´ avˇ er

Na zaˇc´atku t´eto pr´ace byl stanoven analytick´y c´ıl, kter´ym je sezn´amen´ı se s pro- blematikou kvality elektrick´e energie, s typick´ymi strukturami dat v archivu PQ monitoru a s dostupn´ymi metodami jejich odeˇctu, pˇrenosu a ukl´ad´an´ı.

Pro realizaci analytick´eho c´ıle v reˇserˇsi k t´eto bakal´aˇrsk´e pr´aci v podkapitole 2.1 je uvedena definice a popis parametr˚u kvality elektrick´e energie, pak v podkapitole 2.2 je uvedena anal´yza struktury dat PQ monitoru, metod jejich odeˇctu, pˇrenosu a ukl´ad´an´ı. D´ale v podkapitole 2.3 je uvedena anal´yza webov´ych aplikac´ı Wattics.com, Izenda.com a Energycloud.

Praktick´ym c´ılem t´eto pr´ace bylo navrhnout a implementovat online port´al a vyuˇz´ıt vhodn´e technologie pro v´yvoj webov´ych sluˇzeb s funkcemi pro anal´yzu a sd´ılen´ı dat se vzd´alen´ymi klienty.

Realizace praktick´eho c´ıle je uvedena v kapitole 3. Zvolil jsem vhodn´e technologie pro v´yvoj port´alu tak, aby co nejl´epe odpov´ıdaly navrˇzen´ym funkc´ım. Pro anal´yzu dat PQ monitoru jsou implementov´ana rozhran´ı -

”Comparison“,

”Electricity me- ter“,

”PQ Main“,

”Main“,

”Energy cost“ a

”Logs“, kter´e jsou popsan´e v podkapitole 3.1. Online port´al obsahuje rozhran´ı pro dva typy uˇzivatel˚u - pro bˇeˇzn´eho uˇzivatele a pro spr´avce syst´emu, coˇz umoˇzˇnuje otestov´an´ı vˇsech funkc´ı syst´emu.

Dalˇs´ım krokem bude zlepˇsit online port´al a pˇridat funkci anal´yzy dat kvality elektrick´e energie a hl´aˇsen´ı vˇsech provozn´ıch ud´alost´ı v re´aln´em ˇcase.

(45)

Literatura

[1] S. Chattopadhyay, M. Mitra a S. Sengupta. Electric Power Quality. Springer Dordrecht Heidelberg London New York, 2011.

[2] KMB. ARTIQ 144 PQ-A. url: http : / / www . kmb . cz / index . php / cs / analyzatory-kvality/analyzator-kvality-50160-artiq-144. (cit. 2019- 20-08).

[3] B. Forta. Sams Teach Yourself SQL in 10 Minutes, Fourth Editiona. 2013.

isbn: 9780672336072.

[4] G. Harrison. Next Generation Databases NoSQL, NewSQL, and Big Data.

2015. isbn: 9781484213308.

[5] MongoDB. Comparing PostgreSQL and MongoDB. url:https://www.mongodb.

com/compare/mongodb-postgresql. (cit. 2019-20-08).

[6] Wattics. Energy management solutions aligned with your business. url:https:

//www.wattics.com/turnkey-solutions/. (cit. 2019-20-08).

[7] Izenda. Enhance your application with innovative reporting and analytics. url:

https://www.izenda.com/solutions/. (cit. 2019-20-08).

[8] BLUELINE. Energycloud for energy providers and their customers. url:https:

//www.bluelineinnovations.com/for- energy- providers. (cit. 2019-20- 08).

[9] N. Rozentals. Mastering TypeScript - Second Edition. Packt Publishing Ltd., 2017. isbn: 9781786468710.

[10] A. Mardan a J. Sonmez. React Quickly PAINLESS WEB APPS WITH RE- ACT, JSX, REDUX, AND GRAPHQL. Manning Publications Co., 2017.

isbn: 9781617293344.

[11] StoryBook. StoryBook Documentation. url: https://storybook.js.org/

(46)

[12] MaterialUI. Material UI. url:https://material-ui.com/. (cit. 2019-20-08).

[13] MongoDB. Documentation. url: https://docs.mongodb.com/. (cit. 2019- 20-08).

[14] PM2. PM2 Documentation. url: http://pm2.keymetrics.io/docs/usage/

pm2-doc-single-page/. (cit. 2019-20-08).

[15] Artillery.io. Artillery Docs. url: https://artillery.io/docs/. (cit. 2019- 20-08).

[16] A. Young, B. Meck, M. Cantelon, T. Oxley a M. Harter. Node.js in Action 1st. Manning Publications Co., 2013. isbn: 9781617290572.

(47)

A V´ ysledky testov´ an´ı online port´ alu

Obr´azek A.1: Testov´an´ı PM2: 100 HTTP poˇzadavk˚u

Obr´azek A.2: Testov´an´ı Artillery.io: 100 HTTP poˇzadavk˚u

Obr´azek A.3: Testov´an´ı PM2: 500 HTTP poˇzadavk˚u

(48)

Obr´azek A.4: Testov´an´ı Artillery.io: 500 HTTP poˇzadavk˚u

Obr´azek A.5: Testov´an´ı PM2: 100 HTTP poˇzadavk˚u pˇri spuˇstˇen´ı v´ıce instalac´ı Node.js

Obr´azek A.6: Testov´an´ı Artillery.io: 100 HTTP poˇzadavk˚u pˇri spuˇstˇen´ı v´ıce instalac´ı Node.js

(49)

Obr´azek A.7: Testov´an´ı PM2: 500 HTTP poˇzadavk˚u pˇri spuˇstˇen´ı v´ıce instalac´ı Node.js

Obr´azek A.8: Testov´an´ı Artillery.io: 500 HTTP poˇzadavk˚u pˇri spuˇstˇen´ı v´ıce instalac´ı Node.js

References

Related documents

Pr´ ace navazuj´ıc´ı na tuto by se mohly zab´ yvat vlivem r˚ uzn´ ych pˇredpomiˇ novaˇ c˚ u na ˇ casovou n´ aroˇ cnost ˇreˇsen´ı pˇri pouˇ zit´ı monolitick´

Pˇredloˇ zen´ a disertaˇ cn´ı pr´ ace se zab´ yv´ a adaptac´ı existuj´ıc´ıho syst´ emu automatick´ eho rozpozn´ av´ an´ı ˇreˇ ci (ASR) pro dalˇs´ı jazyky.. Zamˇ eˇruje

Seznámení s posudkem Reakce studenta na posudek odpovídala úrovni a odbornosti Diskuse komise a studenta k tematu BP. Student věcně a odborně odpovídal na dotazy jednotlivých

Které spotřební zvyklosti a módní trendy ovlivňují současnou poptávku po cestovním

Konkrétně studentka zjišťovala, jakou formou komunikují pedagogové mateřských škol s dětmi, jejichž úroveň verbální komunikace je na nedostatečné úrovni a jaké

Tato situace nast´ av´ a pˇri pˇredeps´ an´ı vˇ etˇs´ıho poˇ ctu dat, protoˇ ze interpolaˇ cn´ı polynom je pak vysok´ eho stupnˇ e.. Zd´ a se proto rozumn´ e

Bezprostˇrednˇ e po v´ ybˇ eru z´ akladov´ eho frameworku bylo nutn´ e vytvoˇrit koncept cel´ e architektury nov´ ych frameworkov´ ych souˇ c´ ast´ı, kter´ e umoˇ zn´ı

D´ ale byly definov´ any poˇ zadovan´ e vlastnosti jednotliv´ ych souˇ c´ ast´ı inteligentn´ıho domovn´ıho syst´ emu, kter´ ymi jsou domovn´ı syst´ em, desktopov´ a,