AN59 Ovládání PDU výstupů přes SNMPv3 (Win a Linux CMD) | Chytré zásuvky NETIO ovládané pomocí WiFi a LAN
Tagy: 
M2M API
3rd party HW-SW

Zařízení NETIO umožňují po síti LAN číst stavy výstupů a hodnoty elektrických měření pomocí SNMPv3 (SNMP get) a ovládat výstupy PDU (SNMP set). AN59 popisuje, jak realizovat čtení a zápis pomocí SNMP v3 v prostředí MS Windows nebo Linux.

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

Pomocí SNMP protokolu lze zjišťovat stav jednotlivých zásuvek, měřit aktuální spotřebu nebo ovládat jednotlivé výstupy. SNMP je standardní protokol pro mnoho dohledových software aplikací třetích stran.

Zařízení NETIO používají pro komunikaci po SNMP výchozí port 161. Soubor MIB s popisem objektů je možné stáhnout z webové administrace v nastavení protokolu SNMP.

Podporovaná zařízení:

 

 

Linux:
Pro SNMP komunikaci z Linux lze využít např. utilitu snmpwalk, snmpget či snmpset z balíčku snmp (http://www.net-snmp.org/) - stručný návod na instalaci naleznete na konci tohoto dokumentu v kapitole “Instalace Net-SNMP utility pro Linux”.

 

Windows:
Pro SNMP komunikaci ve Windows lze použít např. utilit SnmpWalk, SnmpGet či SnmpSet od EZ5 Systems (https://ezfive.com/snmpsoft-tools). Utility je možné použít zdarma pro nekomerční použití.

 

 

 

 

 

 

 

 

 

Objekty v NETIO 4x SNMP MIB

Pro dohled (čtení)

Objekt

OID

x – output number (1 - 8)

Typ

Příklad hodnoty

Poznámka

netioOutputID.x.0

1.3.6.1.4.1.47952.1.1.1.1.x.0

INTEGER

1

 

netioOutputName.x.0

1.3.6.1.4.1.47952.1.1.1.2.x.0

STRING

output_1

Dle uživ. nastavení

netioOutputState.x.0

1.3.6.1.4.1.47952.1.1.1.3.x.0

INTEGER

off(0), on(1)

 

netioOutputStateString.x.0

1.3.6.1.4.1.47952.1.1.1.4.x.0

STRING

"off", "on"

 

netioOutputLoad.x.0

1.3.6.1.4.1.47952.1.1.1.25.x.0

INTEGER

24

[W]

netioOutputEnergy.x.0

1.3.6.1.4.1.47952.1.1.1.26.x.0

INTEGER

13

[Wh]

netioOutputEnergyStart.x.0

1.3.6.1.4.1.47952.1.1.1.27.x.0

DateAndTime

2017-6-23,5:47:3.0,+0:0

Počáteční čas pro “netioOutputEnergy”. UTC *1

netioOutputCurrent.x.0

1.3.6.1.4.1.47952.1.1.1.28.x.0

INTEGER

195

[mA]

netioOutputPowerFactor.x.0

1.3.6.1.4.1.47952.1.1.1.29.x.0

INTEGER

534

Aktuální Power Factor * 1000

netioOutputPhase.x.0

1.3.6.1.4.1.47952.1.1.1.30.x.0

INTEGER

120

0-360 [°]

netioOutputEnergyNR.x.0

1.3.6.1.4.1.47952.1.1.1.31.x.0

INTEGER

255

[Wh]

netioOutputReverseEnergy.x.0

1.3.6.1.4.1.47952.1.1.1.32.x.0

INTEGER

140

[Wh]

netioOutputReverseEnergyNR.x.0

1.3.6.1.4.1.47952.1.1.1.33.x.0

INTEGER

620

[Wh]

netioVoltage.0

1.3.6.1.4.1.47952.1.2.1.0

INTEGER

239100

Napětí v sítí [mV]

netioFrequency.0

1.3.6.1.4.1.47952.1.2.2.0

INTEGER

49900

Frekvence v síti [mHz]

netioTotalCurrent.0

1.3.6.1.4.1.47952.1.2.3.0

INTEGER

195

[mA]

netioOverallPowerFactor.0

1.3.6.1.4.1.47952.1.2.4.0

INTEGER

534

Aktuální Power Factor * 1000

netioTotalLoad.0

1.3.6.1.4.1.47952.1.2.5.0

INTEGER

24

[W]

netioTotalEnergy.0

1.3.6.1.4.1.47952.1.2.6.0

INTEGER

13

[Wh]

netioEnergyStart.0

1.3.6.1.4.1.47952.1.2.7.0

DateAndTime

2017-6-23,5:47:3.0,+0:0

Počáteční čas pro “netioTotalEnergy”. UTC *1

netioTotalPhase.0

1.3.6.1.4.1.47952.1.2.8.0

INTEGER

120

[°]

netioTotalReverseEnergy.0

1.3.6.1.4.1.47952.1.2.9.0

INTEGER

420

[Wh]

netioTotalEnergyNR.0

1.3.6.1.4.1.47952.1.2.10.0

INTEGER

3200

[Wh]

netioTotalReverseEnergyNR.0

1.3.6.1.4.1.47952.1.2.1.1.0

INTEGER

1020

[Wh]

netioInputID x.0

1.3.6.1.4.1.47952.1.3.1.1.x.0

INTEGER

1

 

netioInputName x.0

1.3.6.1.4.1.47952.1.3.1.2.x.0

STRING

Input 1

Dle uživ. nastavení

netioInputState x.0

1.3.6.1.4.1.47952.1.3.1.3.x.0

INTEGER

off(0), on(1)

 

netioInputStateString x.0

1.3.6.1.4.1.47952.1.3.1.4.x.0

STRING

"off", "on"

 

netioInputS0Counter x.0

1.3.6.1.4.1.47952.1.3.1.5.x.0

INTEGER

30

Počet S0 pulzů

*1: Počáteční čas od kdy se počítá kumulovaná spotřeba. Tato hodnota je stejná pro všechny výstupy/zásuvky.

Poznámka: Hodnoty měření (napětí, frekvence, proud, PowerFactor, zátěž a energie, apod) jsou dostupné pouze pro vybrané modely. Ostatní modely vrací hodnotu měření “0”.

 

Pro ovládání (zápis)

Objekt

OID

x – nahrazuje číslo zásuvky (1, 2, 3, 4)

Typ

Hodnota

Akce

netioOutputAction.x.0

1.3.6.1.4.1.47952.1.1.1.5.x.0

INTEGER (i)

0

1

2

3

4

5

vypne

zapne

krátce vypne * (restart)

krátce zapne **

změní aktuální stav

ponechá beze změny

* pokud byla zásuvky vypnutá, bude po provedení příkazu zapnutá

** pokud byla zásuvky zapnutá, bude po provedení příkazu vypnutá

 

Příklady

SET 1.3.6.1.4.1.47952.1.1.1.5.2.0 = 1           Output 2 = ON

SET 1.3.6.1.4.1.47952.1.1.1.5.1.0 = 4           Přepni Output 1

SET 1.3.6.1.4.1.47952.1.1.1.5.8.0 = 0           Output 8 = OFF

 

Net-SNMP utility pro Linux

V příkladech je použita utilita Net-SNMP. Pokud ji nemáte nainstalovanou, můžete ji nainstalovat dle jednoduchého postupu na konci tohoto dokumentu v kapitole “Instalace Net-SNMP utility pro Linux”.

Výchozí adresáře pro MIB jsou: /root/.snmp/mibs: /usr/share/snmp/mibs/, /usr/share/snmp/mibs/iana/, /usr/share/snmp/mibs/ietf/, /usr/share/mibs/site/, /usr/share/snmp/mibs/, /usr/share/mibs/iana/, /usr/share/mibs/ietf/, /usr/share/mibs/netsnmp

NETIO MIB stažené z webové administrace NETIO doporučujeme přejmenovat na NETIO-PRODUCTS-NETIO-MIB pro jednoduché využití příkladů níže a uložit do /usr/share/snmp/mibs/ (doporučený výchozí adresář).

Pro správnou funkci jsou vyžadovány také následující MIB (kromě NETIO MIB):
SNMPv2-SMI
SNMPv2-TC

Postup jejich získání naleznete také ve zmíněné kapitole na konci tohoto dokumentu

SNMP utility pro Windows

V příkladech jsou použity utility od SnmpSoft Company (https://ezfive.com/snmpsoft-tools/). Programy je možné použít zdarma pro nekomerční použití.

Stačí stáhnout jednotlivé utility, rozbalit a používat. Pro správnou funkci musíte spouštět utilitu ze složky, ve které je utilita uložena (nebo přidat cestu do PATH).

Pozn.: Utility SnmpGet a SnmpSet nepodporují použití MIB souboru. Při práci s nimi je nutné použít formát OID.

 

Nastavení SNMP v3

Ve webové administraci produktu v sekci M2M API Protocols povolte SNMP, zvolte verzi SNMP v3 a nastavte následující:

  • Location          – volitelné textové pole, popisuje fyzické umístění zařízení
  • Security name - uživatelské jméno pro ověření uživatele
  • Security level  - úroveň zabezpečení, na výběr ze 3 možností:
    • noAuthNoPriv – bez šifrování, ověření pomocí uživatelského jména
    • authNoPriv      – bez šifrování, ověření pomocí uživatelského jména a hesla
    • authPriv           – šifrování dat, ověření pomocí uživatelského jména a hesla
       
  • Auth protocol   - výběr protokolu pro ověření, standardně SHA
  • Auth key          - heslo pro ověření
  • Priv protocol    - výběr šifrovacího protokolu, standardně AES (AES-128)
  • Priv key           - klíč použitý pro šifrování

Změny uložte kliknutím na tlačítko Save Changes.

 

Stažení MIB souboru

Kliknutím na tlačítko Download MIB file stáhnete soubor MIB pro NETIO zařízení.
 

 

Příklady použití SNMP v3

Vypsání všech stavů/hodnot (SNMP v3 - snmpwalk)

Linux - s využitím MIB

snmpwalk -m <jméno NETIO MIB> [volitelně -M <cesta k MIB>] -v <verze SNMP: 3> -a <protokol: MD5|SHA> -A <Password> -I <Security: authNoPriv|authPriv> -u <Username> -x <Encryption: DES|AES> -X <Password> <IP adresa NETIO> <specifikace stromu: NETIOProducts>

Příklad:

snmpwalk -m NETIO-PRODUCTS-NETIO-MIB -v 3 -a SHA -A netiopass -l authPriv -u netio -x AES -X netiopass 192.168.101.159 NETIOProducts
  • snmpwalk v Linux, SNMP v3

Pokud jsou MIB uloženy v jiném než jednom z výchozích adresářů (viz výše v úvodu), je třeba uvést i parametr -M s cestou k souboru:

snmpwalk -m NETIO-PRODUCTS-NETIO-MIB -M /usr/share/snmp/mibs/ -v 3 -a SHA -A netiopass -l authPriv -u netio -x AES -X netiopass 192.168.101.159 NETIOProducts

 

Windows

SnmpWalk.exe -r:<IP adresa NETIO> -v:<verze SNMP: 3> -sn:<Username> -ap:<protokol: MD5|SHA> -aw:<Password> -pp:<Encryption: DES|AES128> -pw:<Password>

Příklad:

SnmpWalk.exe -r:192.168.101.159 -v:3 -sn:netio -ap:SHA -aw:netiopass -pp:AES128 -pw:netiopass
  • SnmpWalk ve Windows, SNMP v3

 

Čtení konkrétní hodnoty (SNMP v3)

Linux - s využitím MIB a jména objektu

snmpget -m <jméno NETIO MIB> [volitelně -M <cesta k MIB>] -v <verze SNMP: 3> -a <protokol: MD5|SHA> -A <Password> -I <Security: authNoPriv|authPriv> -u <Username> -x <Encryption: DES|AES> -X <Password> <IP adresa NETIO> <Objekt pro čtení dle tabulky výše>

Příklad pro vypsání stavu zásuvky číslo 1:

snmpget -m NETIO-PRODUCTS-NETIO-MIB -v 3 -a SHA -A netiopass -l authPriv -u netio -x AES -X netiopass 192.168.101.159 netioOutputState.1.0
  • snmpget s MIB v Linux, SNMP v3

Pokud jsou MIB uloženy v jiném než jednom z výchozích adresářů (viz výše v úvodu), je třeba uvést i parametr -M s cestou. Např.:

snmpget -m NETIO-PRODUCTS-NETIO-MIB -M /usr/share/snmp/mibs/  -v 3 -a SHA -A netiopass -l authPriv -u netio -x AES -X netiopass 192.168.101.159 netioOutputState.1.0

 

Linux - s využitím OID

snmpget -v <verze SNMP: 3> -a <protokol: MD5|SHA> -A <Password> -I <Security: authNoPriv|authPriv> -u <Username> -x <Encryption: DES|AES> -X <Password> <IP adresa NETIO> <OID pro čtení dle tabulky výše>

Příklad pro vypsání stavu zásuvky číslo 1:

snmpget -v 3 -a SHA -A netiopass -l authPriv -u netio -x AES -X netiopass 192.168.101.159 1.3.6.1.4.1.47952.1.1.1.3.1.0
  • snmpget s OID v Linux, SNMP v3

 

Windows - s využitím OID

SnmpGet.exe -r:<IP adresa NETIO> -v:<verze SNMP: 3> -sn:<Username> -ap:<protokol: MD5|SHA> -aw:<Password> -pp:<Encryption: DES|AES128> -pw:<Password> -o:<OID pro čtení dle tabulky výše>

Příklad pro přečtení hodnoty výstupu č.3:

SnmpGet.exe -r:192.168.101.159 -v:3 -sn:netio -ap:SHA -aw:netio -pp:AES128 -pw:netio -o:1.3.6.1.4.1.47952.1.1.1.3.1.0
  • SnmpGet ve Windows, SNMP v3

 

Zápis hodnoty (stav výstupu) pomocí SNMP v3 (AES 128)

Linux - s využitím MIB a jména objektu

snmpset -m <jméno NETIO MIB> [volitelně -M <cesta k MIB>] -v <verze SNMP: 3> -a <protokol: MD5|SHA> -A <Password> -I <Security: authNoPriv|authPriv> -u <Username> -x <Encryption: DES|AES> -X <Password> <IP adresa NETIO> <Objekt pro zápis dle tabulky výše> <odpovídající Typ> <Hodnota>

Příklad pro zapnutí zásuvky číslo 1:

snmpset -m NETIO-PRODUCTS-NETIO-MIB -v 3 -a SHA -A netiopass -l authPriv -u netio -x AES -X netiopass 192.168.101.159 netioOutputAction.1.0 i 1
  • snmpset s MIB a jménem objektu v Linux, SNMP v3

Pokud jsou MIB uloženy v jiném než jednom z výchozích adresářů (viz výše v úvodu), je třeba uvést i parametr -M s cestou k souboru:

snmpset -m NETIO-PRODUCTS-NETIO-MIB -M /usr/share/snmp/mibs/  -v 3 -a SHA -A netiopass -l authPriv -u netio -x AES -X netiopass 192.168.101.159 netioOutputAction.1.0 i 1

 

Linux - s využitím OID

snmpset -v <verze SNMP: 3> -a <protokol: MD5|SHA> -A <Password> -I <Security: authNoPriv|authPriv> -u <Username> -x <Encryption: DES|AES> -X <Password> <IP adresa NETIO> <OID pro zápis dle tabulky výše> <odpovídající Typ> <Hodnota>

Příklad pro zapnutí zásuvky číslo 1:

snmpset -v 3 -a SHA -A netiopass -l authPriv -u netio -x AES -X netiopass 192.168.101.159 1.3.6.1.4.1.47952.1.1.1.5.1.0 i 1
  • snmpset s OID v Linux, SNMP v3

 

Windows - s využitím OID

SnmpSet.exe -r:<IP adresa NETIO> -v:<verze SNMP: 3> -sn:<Username> -ap:<protokol: MD5|SHA> -aw:<Password> -pp:<Encryption: DES|AES128> -pw:<Password> -o:<OID pro čtení dle tabulky výše> -val:<Hodnota> -tp:<odpovídající Typ>

Příklad pro zapnutí zásuvky číslo 1:

SnmpSet.exe -r:192.168.101.159 -v:3 -sn:netio -ap:SHA -aw:netiopass -pp:AES128 -pw:netiopass -o:1.3.6.1.4.1.47952.1.1.1.5.1.0 -val:1 -tp:int
  • SnmpSet ve Windows, SNMP v3

 

KS Soft MIB Browser

Utilita MIB Browser z balíku K5 Soft umožňuje prohlížení struktury MIB souborů. Pro NETIO zařízení je tak možné si načíst MIB soubor stažený z jakéhokoli NETIO zařízení a použít jej pro komunikaci s daným zařízením.

Program umožňuje (s pomocí MIB nebo jen OID) čtení a procházení proměnných v zařízení (tj. snmpget a snpwalk). Program neumožňuje SNMP v3 zápis.

 

Načtení MIB souboru do software

Pro zobrazení struktury je nejprve nutné načíst MIB soubor (získání souboru je popsáno v kapitolách výše). Ten lze načíst pomocí Append MIB file v záložce File. Po výběru dané možnosti stačí vybrat zmíněný soubor a potvrdit jeho načtení.

Po úspěšném načtení je možné se v rámci složkové struktury proklikat do složky netio4.
Cesta z kořenové složky je: iso.org.dod.internet.private.enterprises.netioProducts.netio4.

Ve složce netio4 se nachází následující 3 objekty:

  • netioOutputTable s netioOutputEntry - Obsahuje informace vázané k výstupům (zásuvkám)
  • netioGlobalMeasure – Obsahuje měření pro celé zařízení (podporují pouze vybraná zařízení)
  • NetioInputTable s netioInputEntry – Obsahuje informace vázané k digitálním vstupům (podporují pouze vybraná zařízení)

Kliknutím na proměnnou (označené pomocí zelené/žluté šipky zobrazíte její informace s popisem.

  • MIB Browser – struktura MIB

 

Konfigurace SNMP v KS Soft MIB Browser

Přidání zařízení je možné kliknutím na Table v záložce View.

  • MIB Browser – nastavení

Ve výchozím stavu se jako cílové zařízení (Target system) zobrazuje localhost. Ten je potřeba upravit na IP adresu, na které se nachází NETIO zařízení. To lze kliknutím na „knížku“ napravo od popisu zařízení. Následně se otevře okno, kde lze změnit IP adresa a opět kliknout na „knížku“ napravo od „Profile“. Zde se kliknutím na new založí nový profil, kde lze vyplnit následující informace analogicky k nastavení protokolu v administraci zařízení:

Název proměnné

Název proměnné NETIO

Hodnota

Profile name

 

název profilu, libovolné

SNMP version

SNMP version

SNMP v3

Username

Security name

Uživatelské jméno

Context

 

prázdné

Authorization

Auth protocol

SHA

Auth password

Auth key

Klíč pro autentifikaci

Privacy type

Priv protocol

AES

Privacy password

Priv key

Klíč pro šifrování

  • MIB Browser – nastavení

Po úspěšném nastavení profilu a adresy zařízení je možné si zobrazit výchozí informace k zařízení pomocí tlačítka „SysInfo“:

  • MIB Browser – Systémové informace

 

SNMPget v KS Soft MIB Browser

Po zadání OID (získané ze struktury MIB) lze pomocí tlačítka „Get“ zobrazit hodnoty jednotlivých objektů v zařízení.

  • MIB Browser – snmpget

 

SNMPwalk v KS Soft MIB Browser

Přes možnost Table v záložce View lze projít všechny objekty v zařízení, tzv. SNMPwalk. Toho lze docílít zadáním OID pro celé NETIO zařízení: 1.3.6.1.4.1.47952.1. (cestu lze dostat i kliknutím na netio4 ve struktuře). Kliknutím na „Get“ se pustí daný příkaz. Zobrazí se  tabulka všech hodnot označených pomocí OID (dole pod tabulkou).

  • MIB Browser – snmpwalk

 

Instalace Net-SNMP utility pro Linux

Postup vyzkoušený na Debian GNU/Linux 8.

 

-> nainstalovat balíček snmp

http://net-snmp.sourceforge.net/wiki/

https://wiki.debian.org/SNMP

 

dále jsou potřeba následující dvě MIB:

SNMPv2-SMI

SNMPv2-TC

-> nainstalovat balíček snmp-mibs-downloader

-> spustit download-mibs

MIB se uloží do /var/lib/mibs/ietf

-> zkopírovat dvě MIB uvedené výše do /usr/share/snmp/mibs/ (doporučený výchozí adresář)

 

NETIO MIB - stažené z webové administrace NETIO

-> přejmenovat na NETIO-PRODUCTS-NETIO-MIB (doporučeno pro jednoduché využití příkladů výše)

-> uložit do /usr/share/snmp/mibs/ (doporučený výchozí adresář)

 

FAQ:

1) Nefunguje mi čtení/ovládání zásuvek (Authentication or Privacy error)

Zařízení NETIO podporují následující typy šifrovacích protokolů:

Authentication protocol:        SHA, MD5

Privacy protocol:                     AES128

Nepodporujeme: DES, 3DES, AES192, AES256

 

2) Proč nedoporučujeme ovládat zásuvky pomocí SNMP v1 / v2c?

SNMP v1 a v2c nepoužívají autorizaci. Zápis pomocí tohoto protokolu tak není nijak zabezpečen. Nelze tedy zajistit přístup k ovládání pouze pro oprávněné zařízení. Pro čtení lze použít SNMP v1 / v2c, nicméně pro zápis (ovládání výstupů) striktně doporučujeme SNMP v3.

 

Zeptejte se na cenu nebo technické parametry

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