AN29: Node-RED příklad URL API komunikace s NETIO 4x | Chytré zásuvky NETIO ovládané pomocí WiFi a LAN
Tagy: 
User library

Node-RED je programovací nástroj pro propojení hardwarových zařízení, API a online služeb. Aplikační poznámka AN29 představuje jak z Node-RED ovládat chytré elektrické zásuvky 110/230V pomocí URL API. Volání URL adresy je snadné, ale pouze jednosměrné řešení (z Node-RED lze ovládat výstupy zásuvek NETIO 4x, ale nelze měřit elektrickou spotřebu). 

Můžeme Vám nějak pomoci?

 

Podporovaná zařízení: NETIO 4All, NETIO 4C, NETIO 4

 

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:

 

Dashboard 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

 

 

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).

 

Online demo access on NETIO device web

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":"edd8766f.b926a","type":"tab","label":" NETIO AN29 (URL API)","disabled":false,"info":""},{"id":"46f93bc5.70c32c","type":"http request","z":"edd8766f.b926a","name":"HTTP Request (GET)","method":"GET","ret":"txt","url":"http://netio-4c.netio-products.com/netio.cgi?pass=netio-psw&{{{payload}}}","tls":"","x":600,"y":160,"wires":[["b2fbda86.960f6","d5434983.246908"]]},{"id":"d8176205.ebb6b","type":"function","z":"edd8766f.b926a","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":[["46f93bc5.70c32c"]]},{"id":"b2fbda86.960f6","type":"debug","z":"edd8766f.b926a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":810,"y":120,"wires":[]},{"id":"d5434983.246908","type":"ui_text","z":"edd8766f.b926a","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":"677e2eca.46a1f","type":"ui_button","z":"edd8766f.b926a","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":[["d8176205.ebb6b"]]},{"id":"d37f4f7c.717bc","type":"ui_button","z":"edd8766f.b926a","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":[["d8176205.ebb6b"]]},{"id":"3dbb1b64.780ffc","type":"ui_button","z":"edd8766f.b926a","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":[["d8176205.ebb6b"]]},{"id":"2cc1ec46.d5d464","type":"ui_button","z":"edd8766f.b926a","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":[["d8176205.ebb6b"]]},{"id":"1d896a4f.92d0f6","type":"ui_button","z":"edd8766f.b926a","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":[["d8176205.ebb6b"]]},{"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}]

Import NETIO AN29 flow (skriptu) 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ů.

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.

 

Vyberte Install a vyhledejte nodes, které vám chybí.

 

Jak funguje AN29 (URL API) Flow

 

  • 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.

 

 

V Dashboard je v menu uveden odkaz na stránky NETIO products: 

 

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)

 


 

 

Tato Aplikační poznámka může být použita v:

Smart power socket NETIO

 

NETIO 4

NETIO 4 je PDU modul čtyř zásuvek 230V/8A s připojením do počítačové sítě pomocí LAN a WiFi. Každou ze zásuvek lze individuláně vypnout/zapnout pomocí různých M2M API protokolů. NETIO 4 je unikátní produkt, který najde uplatnění v IT, průmyslu, chytrých domech, multimediálních instalacích atd. Všude, kde potřebujete zásuvky na 230V ovládané z mobilní aplikace, z nějakého programu (M2M API), z uživatelského skriptu (Lua), z funkcí časovač (Scheduler) a automatický restartér (IP WatchDog). 

Více o zařízení NETIO 4

 

Smart power socket NETIO 4All

 

NETIO 4All

NETIO 4All je PDU modul čtyř elektrických zásuvek 230V/8A s měřením spotřeby na každé zásuvce, který lze připojit do počítačové sítě pomocí LAN a WiFi. Každou ze čtyř zásuvek lze individuálně vypnout/zapnout přes web nebo pomocí různých M2M API protokolů. Na každé zásuvce lze měřit její spotřebu elektřiny (A, W, kWh). Chytré zásuvky NETIO 4All jsou určeny pro aplikace vzdáleného měření a ovládání elektrických zásuvek.

Více o zařízení NETIO 4All

Smart power socket NETIO

 

NETIO 4C

NETIO 4C je malé PDU (Power Distribution Unit) na 110/230V se čtyřmi ovládanými výstupy na IEC-320 C13 max 8A. Obsahuje Ethernet switch a 2x LAN port na připojení do sítě. Každý ze čtyř výstupů napájení lze individuálně vypnout/zapnout přes web, z mobilní aplikace nebo pomocí různých M2M API (SNMP, MQTT, XML, Modbus/TCP, ..). V NETIO 4C lze spouštět přímo v zařízení běžící zákaznické Lua skripty. Specialitou NETIO 4C je sériový port RS-232 (3-pin), který lze ovládat z Lua scriptu, nebo jako vzdálený sériový port.

Více o zařízení NETIO 4C

 

Zeptejte se na cenu nebo technické parametry

Pro otestování zařízení použijte jméno/heslo demo/demo