Podporovaná zařízení: NETIO 4All, NETIO PowerPDU 4C, NETIO 4, PowerCable REST, PowerBOX 3Px, PowerPDU 4PS, PowerDIN 4Pz, PowerBOX 4Kx, PowerPDU 8QS
NETIO Node-RED skript (flow) demonstruje ovládání výstupu 1 z Dashboardu, který běží v prostředí Node-RED. Pět tlačítek zobrazených na Dashboadru volá všechny možné akce výstupu (zapni, vypni, krátké vypnutí (restart), krátké zapnutí, přepnutí (reakce na tlačítko)).
Prostředí Node-RED lze spustit na lokálním PC, na Raspberry Pi, v cloudu (MS Azure, IBM) a podobně.
Ovládání chytrých zásuvek NETIO 4x přes URL API umožňuje pouze zápis do zařízení, není možné číst stav výstupu nebo proudovou spotřebu na výstupu. K tomu je potřeba použít jiný M2M protokol.
AN29 lze použít jako driver nejen pro NETIO 4x zásuvky, ale také na produkty PowerCable REST, které podporují rozhraní URL API.
NETIO příklady práce s Node-RED:
- 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 REST XML komunikace s NETIO 4x
- AN32: Node-RED příklad Modbus/TCP komunikace s NETIO 4x / PowerCable
Flow (Node-RED skript) pro AN29:
Jak funguje URL API
Řetězec znaků, který NETIO přijme v URL se rozloží na jednotlivé příkazy a zásuvka poté nastaví výstupy do požadovaných stavů podle čísla Akce.
Akce výstupu:
- 0 = Vypnutí výstupu (Off)
- 1 = Zapnutí výstupu (On)
- 2 = Vypnutí výstupu na krátkou dobu (short Off)
- 3 = Zapnutí výstupu na krátkou dobu (short On)
- 4 = Přepnutí výstupu z jednoho stavu do druhého (toggle)
- 5 = Ponechání stavu výstupu (no change)
URL API příklad (přepne stav na výstupu 1):
http: //192.168.1.30/netio.cgi?pass=netio-psw&output1=4
- Podrobné informace k používání URL API a sestavení ovládacího řetězce naleznete v AN19: URL API (http GET) ovládání NETIO elektrických zásuvek.
- M2M – URL API specification
Nastavení NETIO 4x chytrých zásuvek
Ve webovém rozhraní NETIO 4x v sekci M2M API Protocols - URL M2M API , je třeba povolit URL M2M API.
Nastavte Passphrase (ověřovací řetězec – něco jako heslo) a uložte kliknutím na tlačítko Save Changes. Po uložení dojde k restartu zařízení (cca 1 minuta).
NETIO 4All Online demo
Online demo je fyzické zařízení NETIO, připojené na internetu na veřejné IP adrese. Výrobce poskytuje Online demo zařízení pro každý model. Online dema mají různou konfiguraci a lze tak otestovat chování aniž byste měli zařízení fyzicky v ruce.
Online dema nelze překonfigurovat.
Na Online demo každého produktu se dostanete z ikony „TRY ON-LINE DEMO“ na stránce každého produktu.
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.
Node-RED je rozšířená platforma pro IoT (Internet of Things) aplikace. Flow (jeden skript nebo projekt) lze snadno přenést jako konfigurační json soubor.
AN29 flow (skript)
Konfigurace pro NETIO Node-RED AN29 se přenáší jako json struktura a lze ji vložit přes clipboard.
[{"id":"53632275.7d628c","type":"tab","label":" NETIO AN29 (URL API)","disabled":false,"info":""},{"id":"bf404b4d.c9abf8","type":"http request","z":"53632275.7d628c","name":"HTTP Request (GET)","method":"GET","ret":"txt","url":"http://netio-4all.netio-products.com:8080/netio.cgi?pass=&{{msg.payload}}","tls":"","x":600,"y":160,"wires":[["2277782e.54d148","3c4f1015.9d8298"]]},{"id":"8a190541.5e1018","type":"function","z":"53632275.7d628c","name":"Action Selector","func":"switch(msg.payload)\n{\n case 0:\n return {payload : \"output1=0\"};\n case 1: \n return {payload : \"output1=1\"};\n case 2: \n return {payload : \"output1=2\"};\n case 3: \n return {payload : \"output1=3\"};\n case 4:\n return {payload : \"output1=4\"};\n}","outputs":1,"noerr":0,"x":400,"y":160,"wires":[["bf404b4d.c9abf8"]]},{"id":"2277782e.54d148","type":"debug","z":"53632275.7d628c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":810,"y":120,"wires":[]},{"id":"3c4f1015.9d8298","type":"ui_text","z":"53632275.7d628c","group":"e4da58a6.64a3d8","order":5,"width":"6","height":"3","name":"","label":"Response from server: ","format":"{{msg.payload}}","layout":"col-center","x":840,"y":200,"wires":[]},{"id":"24ae69d.9d70496","type":"ui_button","z":"53632275.7d628c","name":"Output 1 = ON","group":"a380c23b.f3499","order":1,"width":0,"height":0,"passthru":false,"label":"Output 1 = ON","tooltip":"","color":"","bgcolor":"","icon":"","payload":"1","payloadType":"num","topic":"","x":120,"y":80,"wires":[["8a190541.5e1018"]]},{"id":"bbd4e78b.886a18","type":"ui_button","z":"53632275.7d628c","name":"Output 1 = OFF","group":"a380c23b.f3499","order":2,"width":0,"height":0,"passthru":false,"label":"Output 1 = OFF","tooltip":"","color":"","bgcolor":"","icon":"","payload":"0","payloadType":"num","topic":"","x":120,"y":120,"wires":[["8a190541.5e1018"]]},{"id":"e75f5457.45d01","type":"ui_button","z":"53632275.7d628c","name":"Output 1 = Short ON","group":"a380c23b.f3499","order":3,"width":0,"height":0,"passthru":false,"label":"Output 1 = Short ON","tooltip":"","color":"","bgcolor":"","icon":"","payload":"2","payloadType":"num","topic":"","x":140,"y":160,"wires":[["8a190541.5e1018"]]},{"id":"77f6af6b.abc61","type":"ui_button","z":"53632275.7d628c","name":"Output 1 = Short OFF","group":"a380c23b.f3499","order":4,"width":0,"height":0,"passthru":false,"label":"Output 1 = Short OFF (Restart)","tooltip":"","color":"","bgcolor":"","icon":"","payload":"3","payloadType":"num","topic":"","x":140,"y":200,"wires":[["8a190541.5e1018"]]},{"id":"645a9bee.f96f5c","type":"ui_button","z":"53632275.7d628c","name":"Output 1 = Toggle","group":"a380c23b.f3499","order":5,"width":0,"height":0,"passthru":false,"label":"Output 1 = Toggle","tooltip":"","color":"","bgcolor":"","icon":"","payload":"4","payloadType":"num","topic":"","x":130,"y":240,"wires":[["8a190541.5e1018"]]},{"id":"e4da58a6.64a3d8","type":"ui_group","z":"","name":"Response from server","tab":"1bb571ba.89b2ce","order":2,"disp":true,"width":"6","collapse":false},{"id":"a380c23b.f3499","type":"ui_group","z":"","name":"Control Output 1","tab":"1bb571ba.89b2ce","order":1,"disp":true,"width":"6","collapse":false},{"id":"1bb571ba.89b2ce","type":"ui_tab","z":"","name":" NETIO AN29 (URL API)","icon":"dashboard","order":1,"disabled":false,"hidden":false}]
Instalace chybějících bloků.
Nodes 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 nodes v menu vyberte Manage palette.
- Pět tlačítek vytvořených ve Flow se zobrazuje na Dashboardu.
- Po zmáčknutí tlačítka Output 1 = ON v Dashboardu, se nastaví payload na hodnotu 1 (definováno v každém tlačítku, podle akcí výstupu).
- Blok Action Selector vybere odpovídající string pro požadovanou akci (vstupní payload) a vytvoří výsledný string pro ovládání přes URL jako výsledný payload.
- Blok HTTP Request (GET) složí dohromady IP adresu + akci z příchozí payload hodnoty a odešle na výsledný řetězec pomocí HTTP GET Request. Odpověď od serveru (stav odeslání) vrátí jako výstup.
- Blok Msg.payload zobrazí odpověď od HTTP serveru v zařízení NETIO 4x.
- Blok Response from server zobrazí odpověď od serveru v Dashboardu
Popis použitých bloků
Button node
Přidá Button do Dashboardu.
Kliknutí na Button node generuje zprávu obsahující msg.payload.
Jako payload je nastaveno číslo indikující URL API operaci.
Možnosti akce výstupu:
- 0 = Vypnutí výstupu (Off)
- 1 = Zapnutí výstupu (On)
- 2 = Vypnutí výstupu na krátkou dobu (short Off)
- 3 = Zapnutí výstupu na krátkou dobu (short On)
- 4 = Přepnutí výstupu z jednoho stavu do druhého (toggle)
- 5 = Ponechání stavu výstupu (no change)
Function node
Function node je speciální node, který umožňuje napsat si vlastní JavaScript funkci.
V AN29 je vložený jednoduchý JavaScript použitý pro funkci Switch. Switch sestaví URL řetězec za základě vstupní hodnoty (0 - 4) msg.payload. (Button nodes posílají hodnoty
0 – 4 podle požadované akce).
return {payload : "output1=0"}; znamená, že function node pošle dál payload, který obsahuje string "output1=0". Zde je možné změnit například číslo ovládaného výstupu přepsáním "output1=0" na "output2=0".
HTTP Request node
Tento node odešle HTTP Request a vrátí odpověď o stavu doručení.
V tomto node je uložena IP adresa na které je zařízení NETIO 4x.
Předvyplněná adresa je online demo, kde můžete vyzkoušet spojení, aniž byste měli NETIO zařízení na stole.
http://netio-4all.netio-products.com
Jako odpověď na HTTP GET požadavek je možné obdržet:
- 200 OK - Vše proběhlo v pořádku
- 400 Bad request - Ovládací řetězec byl špatně naformátován
- 401 Unauthorized - Špatná Passphrase
- 403 Forbidden - URL M2M API není na zařízení NETIO povolena (viz sekce Nastavení NETIO 4x)
URL string nastavený v http Request node
http:// netio-4c.netio-products.com/netio.cgi?pass=netio-psw&{{{payload}}}
IP adresu lze změnit, ale na konci je třeba ponechat {{{payload}}}, který obsahuje v minulém node připravený string s číslem výstupu a zvolenou akcí.
Text node
Zobrazí textové pole v Dashboardu. V AN29 zobrazuje odpověď od http serveru z chytré zásuvky.
Label určuje název, který se zobrazuje v dashboardu a Name určuje jméno bloku, které se zobrazuje ve Flow v node-REDu.
Debug node
Zobrazuje vybrané vlastnosti msg objektu. Defaultně je nastaven na msg.payload a tudíž v tomto případě zobrazuje v node-RED odpověď od serveru.
Node-RED Dashboard
Dashboard je grafickým zobrazením dashboard prvků.
Dashboard lze otevřít kliknutím na označený symbol, nebo na adrese vašeho node-RED serveru s přidáním ui na konci adresy. například 127.0.0.1:1880/ui.
FAQ
1) Je možné použít jinou IP adresu než předvyplněnou?
Ano, IP adresu lze nastavit v HTTP Request nodu. Lze použít číselné i textové vyjádření.
Příklad: https:// 192.168.101.118/netio.cgi?pass=netio-psw&{{{payload}}}
Defaultně je například nastavena DNS Online Dema pro NETIO 4All, tudíž si můžete AN29 vyzkoušet a ani nemusíte mít zařízení na stole.
Online demo: http://netio-4all.netio-products.com
2) Je možné ovládat jiný output než output 1?
Ano, má-li zařízení více outputů, tak číslo outputu lze změnit ve Function nodu.
Příklad: "output2=1".
3) 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 všech Flow je nutné dát v node-RED v pravo nahoře Deploy.
4) Program fungoval správně, ale teď už nefunguje.
Je možné, že jste změnil/a string s akcí ve Function nodu nebo string s IP adresou v HTTP Request nodu. String musí být přesný.
5) Lze nějak přes volání URL M2M API zjistit stav výstupů?
Ne, doporučujeme použít JSON nebo XML protokoly z M2M API (AN30 a AN31).
6) Jak mohu nainstalovat Node-RED na PC?
Na oficiálních stránkách node-RED je podrobný návod + free installer.
Website: https://nodered.org/docs/getting-started/
7) Lze nainstoval Node-RED i na jiná zařízení než PC ?
Node-RED je obecná platforma pro IoT aplikace, může být spustěn např. Raspberry Pi, Arduino nebo Microsoft Azure.
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)
Podporovaná zařízení
- NETIO 4
- NETIO 4All
- PowerPDU 4C
- PowerPDU 4PS
- PowerBOX 3Px
- PowerDIN 4Pz
- PowerCable REST 101x