Podporovaná zařízení: PowerCable REST 101x, PowerPDU 4C, PowerPDU 8QS
Cílem analýzy v příkladu AN49 je počítat akce dle nastavených parametrů spotřeby Wh a následně vypisovat počet započítaných akcí a čas poslední akce v prostředí Node-RED. AN49 ukazuje praktické využití měření spotřeby chytrými NETIO zásuvkami a Node-RED.
Příklad je rozdělen na několik částí, podle výstupu:
- AN49a - vypisuje zprávu ve vnitřním bloku Node-RED. Verze A nemá žádné rozhraní.
- AN49b - Dashboard verze (lze upravovat parametry a ukazuje vyčítané hodnoty)
- AN49c - Display verze podporuje výpis na displeji 16x2 znaků
- AN49d - XML API místo JSON API
- AN49e - Kontinuální vypisování počítadla káv a posledního času kávy
Co to je PAB (Power Analyzer Block)
Analyzovat chování zařízení podle napájení vyžaduje různé přístupy a algoritmy. V NETIO jsme začali tyto algoritmy označovat jako PAB (Power Analyzer Block) podle aplikací, na které se tento přístup hodí.
Jak funguje počítání opakujících se akcí ze spotřeby
Hlavní myšlenka NETIO AN49 je počítání opakujících se akcí (např. uvaření jedné kávy v kávovaru) v reálném čase podle parametrů spotřeby elektrické energie (Wh) v čase. Podle spotřeby energie tak lze vyhodnotit, zda došlo nebo nedošlo k specifické akci. PAB AN49 se hodí na mechanické stroje a detekci akcí jako jsou:
- Počítání šálků kávy z kávovaru
- Počítání cyklů otevření / zavření garážových vrat
- Počítání jízd výtahu
- Počítání cyklů obecného mechanického stroje
Jak může vypadat akce
Následující graf ukazuje hodnoty výkonu a energie při vaření jedné kávy z kávovaru.
Graf Energy Counter [Wh] ukazuje nárůst hodnoty čítače spotřeby energie a graf Load [W] ukazuje nárůst hodnoty výkonu [W] (proudu [A]) při běhu elektrického kompresoru ohřevu v automatu na kávu během jednoho cyklu přípravy kávy.
Algoritmus PAB AN49 nepoužívá okamžitou hodnotu proudu v čase, ale právě jen stav počítadla, protože tak omezí chyby měření proudových špiček. Na grafu Load [W] je jasně vidět příprava jedné kávy, ale z grafu průběhu Energy Counter [Wh] už to není vidět na první pohled, ale algoritmus si s tím poradí stejně dobře.
Jedna káva (počítaná akce) spotřebuje 9 Wh zhruba za 25 sekund, takže detekované akce trvá 25 sekund a rozdíl energie je 9 Wh a podle toho lze nastavit parametry.
Jak funguje počítání akcí – PAB (Power Analyzer Block) pro AN49
Na grafu níže je zobrazeno rozmezí, které algoritmus započítá jako jednu akci, pokud hodnoty energie narůstají v daném rozmezí (rozdíl mezi poslední a první naměřenou hodnotou v měřeném segmentu).
Z horního grafu vyplývá, že akce (káva) spotřebuje 9 Wh zhruba za 25 sekund. Z toho lze odhadnout spodní ((3) - Minimální spotřeba v měřeném segmentu) a horní hranici ((4) - Maximální spotřeba v měřeném segmentu). Spodní hranice = 7Wh a horní hranici = 11Wh.
Na grafu níže jsou graficky zobrazeny parametry, které jsme podle příkladu nastavili.
Aplikační poznámka AN49 funguje s pěti parametry.
- Perioda čtení dat z NETIO chytré zásuvky
- Délka měřeného segmentu
- Minimální spotřeba v měřeném segmentu
- Maximální spotřeba v měřeném segmentu
- Ochranná zóna
Na obrázku níže jsou graficky zobrazeny průběhy příkladů akcí (a) až (d) v měřeném segmentu z obrázku výše.
- Tato akce se nezapočítá, protože narůstá příliš rychle. Pro započítání této akce by bylo třeba zkrátit měřený segment ((2) - Délka měřeného segmentu) a zvýšit parametry (3) - Minimální spotřeba v měřeném segmentu a (4) - Maximální spotřeba v měřeném segmentu, protože spotřeba akce je výrazně vyšší, než na jakou je nastaven tento segment.
- Tato akce se započítá, protože rozdíl mezi poslední a první hodnotou v měřeném segmentu je viditelně mezi (3) - Minimální spotřeba v měřeném segmentu a (4) - Maximální spotřeba v měřeném segmentu, a tudíž splní podmínku započítání akce.
- Toto je chyták. Takto nemůže nikdy vypadat průběh akce, protože hodnoty jsou vyčítány z elektroměru z vašeho NETIO zařízení, jehož hodnota se jenom zvyšuje, protože spotřeba se pouze přičítá, a tudíž každá vyčtená hodnota může být jenom stejná nebo vyšší než předchozí hodnota.
- Tato akce se nezapočítá, protože rozdíl mezi poslední a první hodnotou v měřeném segmentu je viditelně pod (3) - Minimální spotřeba v měřeném segmentu, a tudíž nesplní podmínku započítání akce. Pro započítání této akce by bylo třeba snížit parametry (3) - Minimální spotřeba v měřeném segmentu a (4) - Maximální spotřeba v měřeném segmentu.
Poznámka: Všechny hodnoty lze analyzovat pomocí NETIO Power Analyzer utility, kterou naleznete v NETIO AN42.
Struktura AN49
- První spuštění NETIO AN49a
- Parametry
- Přizpůsobení a možnosti úprav
- FAQ
1) První spuštění NETIO AN49a
Při prvním spuštění NETIO AN49a je nutné nastavit JSON API protokol na vaší NETIO chytré zásuvce, naimportovat skript (flow) NETIO Power Analyzer a nastavit http request bloky.
Nastavení NETIO chytrých zásuvek
Ve webovém rozhraní zařízení v sekci M2M API Protocols - JSON API, je třeba povolit JSON API.
Nastavte Username a Password pro READ-WRITE.
READ-WRITE přihlašovací údaje fungují pro čtení i zápis. Ve obou HTTP Request blocích (POST i GET) lze použít tytéž READ-WRITE přihlašovací údaje.
Pro uložení stiskněte tlačítko Save Changes. Po uložení dojde k restartu zařízení (cca 1 minuta).
Node-RED
Node-RED je programovací nástroj pro spojení hardwarových zařízení, API a online služeb v novém a zajímavém způsobu. Node-RED nabízí flow editor v browseru a veliký výběr bloků a možností. Navíc je postavený na Node.JS, což mu umožnuje běžet na nízkorozpočtových zařízeních jako Raspberry Pi a dokonce i v cloudu.
Poznámka: Pokud nevíte, jak nainstalovat node-RED, co je to Dashboard, případně jak naistalovat chybějící bloky, tak všechny tyto informace, a ještě mnohem víc naleznete v Aplikační Poznámce AN29: Node-RED příklad URL API komunikace s NETIO 4x
AN49a flow (skript)
Konfigurace pro node-RED se přenáší jako json struktura a lze ji vložit přes clipboard.
Import AN49a skriptu (flow) do node-RED
V menu vyberte Import -> Clipboard.
Následně zkopírujte text do označeného pole a dejte import.
Instalace chybějících bloků.
Bloky se vám nahrají do vybrané flow. Je možné, že se vypíše chybová hláška se seznamem bloků, které se snažíte naimportovat, ale nemáte je ještě nainstalované v Node-RED. V takovémto případě si musíte dané bloky doinstalovat.
V případě chybějících bloků (nodes) v menu vyberte Manage palette -> klikněte na Install a vyhledejte bloky, které vám chybí.
Podrobný návod, jak naistalovat chybějící bloky a jak naimportovat skript naleznete v AN29: Node-RED příklad URL API komunikace s NETIO 4x
NETIO AN49a flow
Pokud jste postupovali správně, tak byste nyní měli mít naimportovaný script (flow) a vaše flow by měla vypadat takto:
Do http request bloku vložte adresu vašeho NETIO chytrého zařízení a pokud jste si nastavili přihlašovací údaje u READ-WRITE, tak ty následně také zkopírujte.
Node-RED
Prostředí Node-RED lze spustit na lokálním PC, na Raspberry Pi, v cloudu (MS Azure, IBM) a podobně. Díky popularitě Node-RED jsme pro Vás připravili víc příkladů:
- AN29: Node-RED příklad URL API komunikace s NETIO 4x
- AN30: Node-RED příklad REST JSON komunikace s NETIO 4x
- AN31: Node-RED příklad XML komunikace s NETIO 4x
- AN32: Node-RED příklad Modbus/TCP komunikace s NETIO 4x / PowerCable
V této chvíli byste měli mít naimportovaný AN49a skript (flow) a nastavený http request blok. Nyní už zbývá jenom nastavit parametry programu, což vám ukážeme v následující části.
2) Parametry PAB
Poznámka: V AN49 budeme používat jako příklad měřené akce jednu kávu.
PAB (Power Analyzer Block) AN49 vyžaduje nastavení 5 parametrů pro správnou funkčnost:
- Perioda čtení dat z NETIO chytré zásuvky – Defaultně je nastavena 1 sekunda. Tento parametr doporučujeme neměnit, ale je tu ta možnost.
- Délka měřeného segmentu (total_duration) [s]– Tento parametr určuje, jak dlouhý má být měřený segment (kolik hodnot má měřený segment obsahovat).
- Minimální spotřeba v měřeném segmentu (min_difference) [Wh] – Spodní hranice spotřeby v měřeném segmentu. Rozdíl mezi poslední a první naměřenou hodnotou v měřeném segmentu musí stejný nebo vyšší než tento parametr, aby se akce započítala. Doporučujeme nastavit hodnotu o 10% – 30% níže než kolik Wh spotřebuje akce.
- Maximální spotřeba v měřeném segmentu (max_difference) [Wh] – Horní hranice spotřeby v měřeném segmentu. Rozdíl mezi poslední a první naměřenou hodnotou v měřeném segmentu musí stejný nebo nižší než tento parametr, aby se akce započítala. Doporučujeme nastavit hodnotu o 10% – 30% výše než kolik Wh spotřebuje akce.
- Ochranná zóna (post_trigger_waiting) [s] – Tento parametr slouží k oddělení jednotlivých akcí v případě, že jdou rychle za sebou nebo je měřené zařízení hodně volatilní a hrozí, že by se započítávalo více akcí jako jedna. Hodnota parametru určuje kolikrát za sebou se musí nesplnit podmínka (Minimální spotřeba v měřeném segmentu), než bude možné započítat další akci.
Příklad pro ujasnění parametrů: Chceme měřit kolik můj kávovar udělá káv za den. Vím, že káva (akce) trvá 25 sekund a spotřebuje 7 Wh. Parametr Perioda čtení dat z NETIO chytré zásuvky necháme na 1s. Víme, že Délka měřeného segmentu bude 25 sekund a vzhledem k tomu, že jedna káva spotřebuje 7 Wh, tak Minimální spotřebu v měřeném segmentu nastavíme na 6 Wh a Maximální spotřebu v měřeném segmentu nastavíme na 8 Wh. Parametr Ochranná zóna nastavíme na 5 sekund, protože víme, že u kávovaru se mění kapsle a výměna kapsle nebude rychlejší než 5 sekund.
Jak zjistit parametry?
Pro zjištění parametrů doporučujeme použít NETIO Power Analyzer z AN42.
Poznámka: Detailní popis, jak stáhnout, nastavit a používat NETIO Power Analyzer neleznete v NETIO AN42.
- Krok 1) Spusťte NETIO Power Analyzer
- Krok 2) Vyplňte umístění (pathname) csv souboru pro logování hodnot do csv (Detailně popsáno v AN42)
- Krok 3) Spusťte měření
- Krok 4) Proveďte akci, kterou chcete počítat
- Krok 5) Ukončete měření (Pro přehlednost dat, doporučujeme počkat pár sekund před provedením akce a ukončením měření)
Nyní byste měli mít vytvořený csv soubor, který vypadá nějak takto:
Hodnoty, které nás zajímají jsou ve sloupcích C (napětí), D (energie) a E (proud). Podle výrazně zvýšeného napětí, nárůstu energie a zvýšeného proudu by mělo být jasně vidět, kde proběhla měřená akce.
Odsud lze jasně určit délka segmentu [s]. Z rozdílu poslední hodnoty energie od první hodnoty lze určit spotřeba [Wh] a z této hodnoty určíme minimální a maximální spotřebu.
Názorná ukázka: Ze zvýrazněné části csv spočítáme, že délka segmentu je 27 sekund. Z rozdílu první a poslední hodnoty energie v segmentu určíme spotřebu 33136 – 33127 = 9 Wh. Jak jsme již zmínili dříve, tak pro určení minimální a maximální spotřeby doporučujeme použít určenou spotřebu s odchylkou 10% – 30%, tedy min = 7 Wh a max = 11 Wh. U určování minimální, maximální spotřeby a času mezi jednotlivými akcemi záleží na vlastnostech vaší měřené akce.
Nastavení parametrů
- Perioda čtení dat z NETIO chytré zásuvky – tento parametr doporučujeme neměnit
- Délka měřeného segmentu
- Minimální spotřeba v měřeném segmentu
- Maximální spotřeba v měřeném segmentu
- Ochranná zóna
Parametry je třeba nastavit pouze v main logic function bloku.
Poznámka:
Pokud se rozhodnete změnit parametr Perioda čtení dat z NETIO chytré zásuvky, je nutné se změnou počítat i u parametru Délka měřeného segmentu. Například jsem si nastavil Perioda čtení dat z NETIO chytré zásuvky na 2s, protože nepotřebuji vyčítat data ze zásuvky tak často (např. moje akce trvá 2 minuty a díky tomu, je lehké ji zachytit), ale díky tomu, je nutné zkrátit parametr Délka měřeného segmentu na polovinu (3s – třetina, 4s – čtvrtina, atd..), protože AN42 NETIO Power Analyzer vyčítá data každou sekundu (tudíž i csv je po sekundách), ale u AN49 jsme nastavili čtení na 2s.
Pokud jste se drželi postupu, tak byste nyní měli mít kompletně nastaven program.
3) Přizpůsobení a možnosti úprav
V této sekci naleznete různé možnosti, jak upravit NETIO AN49 flow, aby lépe vyhovovala vaším potřebám. Tyto upravené flow slouží pouze jako ukázka možností, jakým směrem při úpravě směřovat.
AN49b - Dashboard verze
Tato verze umožňuje upravovat parametry z dashboardu a navíc ukazuje hodnoty vyčítané z NETIO chytré zásuvky v reálném čase.
Poznámka: Parametry se v AN49b nastavují v dashboardu
AN49c - Display verze
Tato verze NETIO AN49 ukazuje, jak implementovat flow s displejem (např. pokud máte displej připojený k Raspberry Pi). V naší verzi jsme použili displej Serial Enabled 16x2 LCD. Váš display bude pravděpodobně jiný, takže doporučujeme pročíst technické specifikace displeje.
AN49d - XML API místo JSON API
V této ukázce je ve flow použito XML místo JSON, tudíž pokud na vaší chytré NETIO zásuvce potřebuje mít zapnuté XML API místo JSON API, tak tato ukázka je pro vás.
Poznámka: Detailní popis, jak nastavit XML API na vaší chytré zásuvce nebo v Node-RED je ukázán v aplikační poznámce AN31: Node-RED příklad XML komunikace s NETIO 4x.
AN49e - Kontinuální vypisování počítadla káv a posledního času kávy
V AN49a se vypisuje stav počítadla pouze po úspěšně započítané akci kvůli přehlednosti.
Pokud chcete, aby váš program vypisoval stav počítadla kontinuálně, tak naimportuje skript níže.
Skript je identický k AN49a s tím rozdílem, že vypisuje stav počítadla každou sekundu (neboli podle parametru (1) Perioda čtení dat z NETIO chytré zásuvky)
Čtení dat z jiného výstupu než 1
Některé NETIO produkty mají víc výstupů a analýzu je tak třeba dělat například na výstupu 3. Ve function bloku pojmenovaném main logic je třeba změnit číslo výstupu. Výstupy jsou zde číslovány od nuly. Tudíž první výstup je 0 a čtvrtý výstup je 3.
Např. var energy = msg.payload.Outputs[0].Energy;
Takto děláme analýzu spotřeby v kanceláři:
4) FAQ
1) Je možné použít jinou IP adresu než předvyplněnou?
Ano, použijte IP adresu vašeho zařízení. IP adresu lze nastavit v HTTP Request bloku.
2) Kde můžu najít, jak si mám nainstalovat node-RED?
Podrobný návod, jak nainstalovat node-RED je možné najít v AN29: Node-RED příklad URL API komunikace s NETIO 4x.
3) Je možné si vyzkoušet NETIO AN49 na NETIO online demu?
Ano, NETIO AN49 lze vyzkoušet na NETIO online demech.
Na NETIO online dema se lze přihlásit pomocí demo / demo na těchto adresách:
- http://netio-4all.netio-products.com/
- https://netio-4c.netio-products.com/
- http://pc-rest.netio-products.com/
4) Při použití NETIO Power Analyzer se mi nevytvořil csv log soubor?
Pravděpodobně je špatně cesta k souboru. Cesta s názvem souboru by měla vypadat například takto: C:/Users/John/Desktop/log.csv
5) Kde můžu najít, jak doinstalovat chybějící bloky?
Jak doinstalovat chybějící bloky z importované flow je podrobně vysvětleno v AN29: Node-RED příklad URL API komunikace s NETIO 4x.
6) V node-RED v debug sekci se mi vypisuje Error: connect ETIMEDOUT.
Pravděpodobně máte špatně zadanou IP adresu v http request bloku.
7) V node-RED v debug sekci se mi vypisuje {"Result":{"Error":{"Code":401,"Message":"Unauthorized"}}}.
Jsou špatně přihlašovací údaje zadané v http request bloku.
8) Provedl/a jsem změny ve Flow v node-RED, ale v dashboardu se změny neprojevily.
Pro zobrazení a uložení změn ve Flow je nutné dát v node-RED vpravo nahoře Deploy.
9) Moje akce se započítává vícekrát.
Pravděpodobně máte nastavený parametr Ochranná zóna (post_trigger_waiting) na příliš krátkou dobu.
10) Moje akce se nezapočítává.
Máte nastaveny špatně parametry. Pravděpodobně špatně nastaveno rozmezí rozdílu nárustu energie (Minimální spotřeba v měřeném segmentu (min_difference) a Maximální spotřeba v měřeném segmentu (max_difference))
Podporované verze FW pro NETIO 4x:
3.1.0 a vyšší (Archiv firmware)
Podporované verze FW pro PowerCable xxx:
2.0.2 a vyšší (Archiv firmware)