Tagy: 
User library

Aplikační poznámka AN21 je ukázka jak ovládat měření a elektrické zásuvky na NETIO 4x zařízení přes JSON protokol pomocí aplikací třetích stran. AN21 představuje několik různých způsobů, jak ovládat NETIO elektrické zásuvky pomocí http přenosu netio.json souboru. První způsob používá „Device HTTP(s) File Upload“ nástroj na web rozhraní produktu. Druhý způsob přenáší JSON soubor přes plugin do prohlížeče Chrome. Třetí způsob demonstruje http přenos souborů přes cURL (command line).

 

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

Podporovaná zařízení: NETIO 4All, PowerPDU 4C, NETIO 4, PowerCable RESTPowerBOX 3Px, PowerPDU 4PS, PowerDIN 4PzPowerBOX 4Kx

 

Výhody JSON protokolu:

  • Struktura json souborů je snadno pochopitelná a existuje na ni řada nástrojů.
  • Díky podpoře https lze přenos snadno a standardně zabezpečit.
  • Díky přenosu přes http a standardně na portu 80 je M2M API protokol typu JSON přes http(s) odolný proti problémům s firewally a různým bezpečnostním omezením ve velkých firmách.
  • Ovládání je obousměrné (READ – měření spotřeby, WRITE – zapni/vypni). Pomocí http get lze stáhnout /netio.json soubor se stavem zařízení a jednotlivých výstupů (zásuvek). Ovládat výstupy lze odesláním souboru na adresu /netio.json přes http post.
  • Přečtení stavu je uživatelsky přívětivé (prostě kliknete a zobrazte v prohlížeči). Pro zápis .json souborů směrem do zařízení připravilo NETIO funkci HTTP(s) file upload. Lze díky ní snadno poslat předem připravené 3 .xml nebo .json soubory.

 

Jak funguje NETIO REST JSON http(s) protokol

1) Povolte na webu zařízení - M2M API Protocols – JSON API a nechte bez hesla v položce READ-ONLY. Jestli nebylo dosud nebylo povoleno, uložte (zařízení se zrestartujte).

 

2) Stav zařízení (ON/OFF zásuvek + spotřeba elektřiny) lze zjistit v souboru /netio.json na IP adrese zařízení. Soubor netio.json lze stáhnout přes http(s) a zobrazit v prohlížeči stejně jako webová stránka.

NETIO online dema

a. http://netio-4c.netio-products.com

b. http://netio-4all.netio-products.com

 

3) Ovládání výstupů přes JSON protokol probíhá zápisem souboru netio.json do zařízení pomocí http(s) post. Zápis souboru je vhodné zabezpečit heslem.  Soubor „netio.json“ musí dodržet správný formát.

 

4) Pro posílání souborů lze použít spoustu různých utilit a nástrojů, ale pro zjednodušení jsme NETIO uživatelům připravili přímo do webu zařízení nástroj HTTP(s) file upload, který vše velmi zjednoduší.

 

5) NETIO AN21 demonstruje přenos textového souboru pomocí netio.json p5es http(s) pomocí 3 různých způsobů:

  • AN21a: Device web - HTTP(s) file upload
  • AN21b: Chrome - Advanced REST client
  • AN21c: CMD - cURL

 

6) V naší implementaci REST JSON protokolu lze během jednoho TCP/IP spojení na http server zařízení provést zápis a ověřit nový stav. Ovládající odešle soubor netio.json (http post) a po provedení akce (například přepnutí výstupu) přijme aktualizovaný soubor netio.json pro ověření výsledku.

Podrobný popis struktury NETIO REST JSON protokolu najdete v M2M REST JSON dokumentaci.

 

NETIO REST JSON http(s) protokol

Aktuální stav každého výstupu v okamžiku čtení (0 / 1) je uveden v souboru netio.json v proměnné State. Proměnnou v tagu State lze použít pro čtení i zápis.

Pokud chcete pro zápis hodnoty (ovládání výstupu) použít proměnnou State, je třeba vynechat proměnnou Action, nebo ji nastavit na hodnotu Action = 6.

 

Action

Pro nastavení výstupu na krátké vypnutí (short Off) nebo přepnutí do druhého stavu (Toggle) lze použít u každého výstupu místo proměnné State proměnnou Action.

Proměnná Action je určena pouze pro zápis, při čtení zobrazí vždy hodnotu 6. Pokud je proměná Action v odeslaném souboru netio.json nastavena na jinou hodnotu než 6, dostane přednost a hodnota nastavená v proměnné State bude ignorována.

 

Hodnoty Action:

  • 0 = Vypnutí výstupu (Off)
  • 1 = Zapnutí výstupu (On)
  • 2 = Vypnutí výstupu na krátkou dobu (short Off / restart)
  • 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)
  • 6 = Ignorováno (pro zápis použij proměnnou State)

 

Výstup reaguje na tag Action Výstup reaguje na tag State

{

 "Outputs":  [ {                        

 "ID":  1,

 "Action":  1

 } ]

}

{

 "Outputs":  [ {

 "ID":  1,

 "State":1,

 "Action":  6

 } ]

}

 

Nastavení NETIO 4x chytrých zásuvek

Ve webovém rozhraní produktu NETIO 4x v sekci M2M API Protocols -> JSON API, je třeba povolit URL JSON API.

Nastavte Username a Password pro READ-WRITE.

READ-WRITE přihlašovací údaje fungují pro čtení i zápis.

Pro uložení stiskněte 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.

 

AN21a: Device HTTP(s) File Upload

Ovládání zařízení pomocí JSON souboru lze snadno otestovat přímo z webu produktu, pomocí webového nástroje pro posílání textových souborů do zařízení „DEVICE HTTP(S) FILE UPLOAD“.

 

Otevřete webové rozhraní vašeho NETIO 4x zařízení.

Přejděte na M2M API Protocols -> JSON API

Povolte Používání JSON API protokolu, případně si nastavte heslo a port.

Dole na stránce je možné stáhnout do počítače již hotové vzorové .json soubory, pomocí nichž se dá ovládat NETIO 4x zařízení.

 

Klikněte na Upload JSON file to the device.

 

Otevře se HTTP(s) file upload.

 

Klikněte na Choose file. Otevře se průzkumník souborů.

Vyberte .json soubor, který jste si buď stáhli nebo napsali.

Je možné nahrát najednou až 3 netio.json soubory, pro ovládání vaší chytré NETIO 4x zásuvky.

 

Vsiměte si, že nezávisle na jménu zdrojového souboru se vždy struktura posílá do souboru /netio.json

 

Vyberte soubor, který chcete odeslat do zařízení.

Klikněte na Send file.

 

Po odeslání se dole vypíše odpověď od HTTP serveru. Pokud vše proběhlo v pořádku, vypíše se netio.json soubor obsahující informace o stavu zařízení. Pokud se něco pokazilo, vypíše se chybová hláška s detaily chyby.

 

AN21b: Advanced REST Client (ARC)

Ke stažení zde: https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo

Advanced REST client je chrome extension, která umožnuje posílat HTTP requesty. Lze ji tak použít pro přenos .json nebo .xml souborů do chytrých zásuvek NETIO.

 

Pokud máte nastavené heslo na vašem NETIO 4x zařízení, tak je nutné přidat header s autorizací.

 

Klikněte na SEND. Advanced REST client vypíše odpověd od vašeho NETIO 4x zařízení. Pokud je vše v pořádku bude odpověd 200 OK a netio.json soubor obsahující informace o stavu NETIO 4x zařízení.

Pokud něco v pořádku není, vypíše se chybová hláška s návratovou hodnotou obsahující, co v pořádku není.

 

Návratové hodnoty

Jako stavovou odpověď HTTP serveru na JSON get/post požadavek je možné obdržet:

  • 200 OK - Vše proběhlo v pořádku
  • 400 Bad request - Syntaktická chyba v požadavku
  • 401 Unauthorized - Špatné uživatelské jméno nebo heslo
  • 403 Forbidden - JSON API není na zařízení NETIO povolena (viz sekce Nastavení NETIO 4x) nebo je nastavena jen pro čtení (při pokusu o zápis)
  • 500 Internal Server Error - Chyba vnitřního serveru, nebo vnitřní server ještě nenaběhl (např. po restartu).

 

AN21C: cURL

Ke stažení zde: https://curl.haxx.se/download.html

 

Po rozbalení není nutné mít utilitu curl v systémovém adresáři, curl lze spustit odkudkoliv.

cURL je nástroj v příkazové řádce pro přenášení dat pomocí URL.

Použitá verze: curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL

 

curl -u netio:netio -d "{\"Outputs\":[{\"ID\":1,\"Action\":4}]}" -H "Content-Type: application/json" -X POST http:// 192.168.101.181:80/netio.json

 

Curl příkaz se skládá z několika částí: curl autorizace JSON -H "Content-Type: application/json URL

Pokud je vše v pořádku, měli byste dostat odpověď od serveru, že je vše v pořádku  v podobě JSON souboru obsahujícím informace o stavu NETIO 4x zařízení.

 

Pokud něco v pořádku není, vypíše se chybová hláška s návratovou hodnotou obsahující, co není v pořádku.

 

Návratové hodnoty

Jako stavovou odpověď HTTP serveru na JSON get/post požadavek je možné obdržet:

  • 200 OK - Vše proběhlo v pořádku
  • 400 Bad request - Syntaktická chyba v požadavku
  • 401 Unauthorized - Špatné uživatelské jméno nebo heslo
  • 403 Forbidden - JSON API není na zařízení NETIO povolena (viz sekce Nastavení NETIO 4x) nebo je nastavena jen pro čtení (při pokusu o zápis)
  • 500 Internal Server Error - Chyba vnitřního serveru, nebo vnitřní server ještě nenaběhl (např. po restartu).

 

cURL autorizace

-u username:password

-u netio:netio

Pokud nepoužívate heslo, tak celou tuto část můžete smazat.

 

cURL data

-d ‘{“JSON”}’

-d "{\"Outputs\":[{\"ID\":1,\"Action\":4}]}"

 

POZOR!!! Pokud používáte  windows je nutné escapovat speciální znaky v JSON struktuře pomocí \ viz obrázek.

 

Tudíž pokud používáte windows, tak Váš curl příkaz může vypadat nějak takto:

curl -u netio:netio -d "{\"Outputs\":[{\"ID\":1,\"Action\":4}]}" -H "Content-Type: application/json" -X POST http:// 192.168.101.181:80/netio.json

 

Pokud používáte jiný operační systém, tak by váš příkaz může vypadat nějak takto:

curl -u netio:netio -d '{"Outputs":[{"ID":1,"Action":4}]}' -H "Content-Type: application/json" -X POST http://192.168.101.181:80/netio.json

 

cURL URL

-X POST your IP address/netio.json

-X POST http:// 192.168.101.181:80/netio.json

 

 

 

FAQ

1) Je možné použít IP adresu online dema ?

Ano, pro vyzkoušení lze použít IP adresu NETIO online dema, adresu najdete na stránkách jednotlivých produktů.

 

2) Je možné ovládat jiný output než output 1?

Ano, má-li zařízení více výstupů, číslo výstupu je uvedeno v ID v ovládacím netio.json souboru v JSON struktuře.

Příklad: {"Outputs":[{"ID":3,"Action":4}]}

 

3) Jak mohu nainstalovat cURL na PC?

Na oficiálních stránkách je možné zadarmo stáhnout cURL.

Website: https://curl.haxx.se/download.html

 

4) Lze nainstoval cURL i na jiný operační systém než windows?

Ano, cURL se běžně používá například na unixových systémech.

 

5) Je možné použít Advanced REST client i bez Google Chrome ?

Ano, Advanced REST client lze stáhnout jako program. Je podporována většina operačních systémů.

Website: https://install.advancedrestclient.com/install

 

 


 

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)

 

 


 

Zeptejte se na cenu nebo technické parametry

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