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í:
- NETIO PowerBOX 3Px
- NETIO PowerBOX 4Kx
- NETIO PowerCable REST 101x
- NETIO PowerDIN 4PZ
- NETIO PowerPDU 4C (zde se může implementace mírně lišit)
- NETIO PowerPDU 4PS
- NETIO PowerPDU 8QS
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
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
Č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
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
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
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
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
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
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.
Konfigurace SNMP v KS Soft MIB Browser
Přidání zařízení je možné kliknutím na Table v záložce View.
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í |
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“:
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í.
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).
Instalace Net-SNMP utility pro Linux
Postup vyzkoušený na Debian GNU/Linux 8.
-> nainstalovat balíček snmp
http://net-snmp.sourceforge.net/wiki/
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.