AN11 SNMP dohled a řízení napájecích výstupů 110/230V z CMD (command line) pro Windows a Linux
Tagy: 
M2M API
3rd party HW-SW

U zařízení NETIO je možné po síti LAN číst stavy výstupů a hodnoty elektrických měření pomocí SNMP v1, 2c (SNMP get) a ovládat výstupy PDU (SNMP set). AN11 popisuje, jak realizovat čtení a zápis pomocí SNMP v1, 2c v prostředí MS Windows nebo Linux.

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

Podporovaná zařízení:

 

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.

 

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

Příklady použití

  • Vzdálený dohled nad stavem zásuvek
  • Ovládání zásuvek ze vzdáleného počítače

 

 

 

 

 

 

Objekty v NETIO SNMP MIB

Pro dohled (čtení)

Object

OID

x – output number (1 - 8)

Type

Value example

Note

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

Current 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

Current 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 jednocuchého postupu na konci tohoto dokumentu v kapitole “Instalace Net-SNMP utility pro Linux”.

Výchozích 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 na konci tohoto dokumentu v kapitole “Instalace Net-SNMP utility pro Linux”.

 

SNMP utility pro Windows

V příkladech jsou použity utility SnmpWalk, SnmpGet a SnmpSet od SnmpSoft Company (https://ezfive.com/snmpsoft-tools). Utility 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).

Tyto utility nepracují s MIB, ale jen s OID.

 

Nastavení SNMP v1/v2c v NETIO zařízení

Ve webové administraci v sekci M2M API Protocols povolte SNMP, zvolte verzi SNMP v1,2c, případně změňte Community READ/WRITE (používají se jako hesla k přístupu na zařízení) a uložte kliknutím na tlačítko Save Changes.

Stažení MIB souboru z webu NETIO zařízení

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

 

Příklady použití SNMP v1/v2c

iReasoning MIB Browser

Níže je uveden příklad použití SNMP v nástroji MIB Browser od společnosti iReasoning
Software je volně ke stažení pro ne komerční použit na https://ireasoning.com/mibbrowser.shtml.

Zobrazení stromové struktury SNMP protokolu pro NETIO zařízení

Načtením MIB souboru (ke stažení ve webové konfiguraci NETIO zařízení - protokol SNMP) lze zobrazit stromovou strukturu, která je rozdělena do 3 částí:

  • netioOutputTable - obsahuje informace ohledně výstupů (názevy, akce, meření apod)
  • netioGlobalMeasure - obsahuje měření pro celé zařízení (relevantní pouze pro zařízení s měřením, ostatní obsahují nulové hodnoty)
  • netioInputTable - obsahuje informace k výstupům

Čtení a zapisování údajů pro konkrétní zařízení

Informace pro založení nového zařízení (agenta) nalezneme opět ve webové konfiguraci NETIO zařízení. Nastavujeme následující:

  • Port - je vždy 161
  • Read Community - řetězec (ověření) pro čtení
  • Write Community - řetězec (ověření) pro zápis
  • SNMP version - 1 nebo 2

 

 

Samotné provádění SNMP příkazů je realizováno přes zadání OID (předvyplní se kliknutím na strukturu MIB). V případě SNMP SET se následně zadává příslušný datový typ a posílaná hodnota).

 

 

 

1.   Vypsání všech stavů/hodnot (SNMP v1 / v2c - snmpwalk)

Linux - s využitím MIB

snmpwalk -m <jméno NETIO MIB> [volitelně -M <cesta k MIB>] -v <verze SNMP: 1 nebo 2c> -c <Comunity> <IP adresa NETIO> <specifikace stromu: NETIOProducts>

příklad: snmpwalk -v2c -m NETIO-PRODUCTS-NETIO-MIB -c public 192.168.101.115 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 paramatr -M s cestou. Např.:snmpwalk -m NETIO-PRODUCTS-NETIO-MIB -M /usr/share/snmp/mibs/ -v 2c -c public 192.168.101.115 NETIOProducts

 

Windows

SnmpWalk.exe -r:<IP adresa NETIO> -v:<verze SNMP: 1 nebo 2c> -c:<Community>

Příklad:
SnmpWalk.exe -r:192.168.101.180 -v:1 -c:"public"
nebo
SnmpWalk.exe -r:192.168.101.180 -c:"public"

Obdobně můžeme použít i pro SNMP v2c:
SnmpWalk.exe -r:192.168.101.180 -v:2c -c:"public"

 

Čtení konkrétní hodnoty (SNMP v1 / v2c)

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

snmpget -m <jméno NETIO MIB> [volitelně -M <cesta k MIB>] -v <verze SNMP: 1 nebo 2c> -c <Community> <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 1 -c public 192.168.101.115 netioOutputState.1.0

Obdobně můžeme použít i pro SNMP v2c:
snmpget -m NETIO-PRODUCTS-NETIO-MIB -v 2c -c public 192.168.101.115 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 1 -c public 192.168.101.115 netioOutputState.1.0

 

Linux - s využitím OID

snmpget -v <verze SNMP: 1 nebo 2c> -c <Community> <IP adresa NETIO> <OID pro čtení dle tabulky výše>

Příklad pro vypsání stavu zásuvky číslo 1:
snmpget -v 1 -c public 192.168.101.115 1.3.6.1.4.1.47952.1.1.1.3.1.0

Obdobně můžeme použít i pro SNMP v2c:
snmpget -v 2c -c public 192.168.101.115 1.3.6.1.4.1.47952.1.1.1.3.1.0

 

Windows

SnmpGet.exe -r:<IP adresa NETIO> -v:<verze SNMP: 1 nebo 2c> -c:<Community>

Příklad:
SnmpGet.exe -r:192.168.101.115 -v:1 -c:"public" -o:1.3.6.1.4.1.47952.1.1.1.3.1.0
nebo
SnmpGet.exe -r:192.168.101.115 -c:"public" -o:1.3.6.1.4.1.47952.1.1.1.3.1.0

Obdobně můžeme použít i pro SNMP v2c:
SnmpGet.exe -r:192.168.101.115 -v:2c -c:"public" -o:1.3.6.1.4.1.47952.1.1.1.3.1.0

 

Zápis hodnoty (stav výstupu) pomocí SNMP v1, 2c

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

snmpset -m <jméno NETIO MIB> [volitelně -M <cesta k MIB>] -v <verze SNMP: 1 (2c)>  -c <Community> <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 1 -c private 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: 1 (2c)>  -c <Community> <Objekt pro zápis dle tabulky výše> <odpovídající Typ> <Hodnota>

Příklad pro zapnutí zásuvky číslo 1:
snmpset -v 1 -c private 192.168.101.159 1.3.6.1.4.1.47952.1.1.1.5.1.0 i 1

 

Windows

SnmpSet.exe -r:<IP adresa NETIO> -v:<verze SNMP: 1 (2c)> -c:<Community> -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:1 -c:private -o:1.3.6.1.4.1.47952.1.1.1.5.1.0 -val:1 -tp:int

 

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) 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í/software/systém. Pro čtení, lze použít SNMP v1 / v2c, nicméně pro zápis (ovládání výstupů) striktně doporučujeme SNMP v3.

Ovládání pomocí SNMP v3 popisujeme v následujícím článku:  >> AN59 Ovládání PDU výstupů přes SNMPv3 (Win a Linux CMD)

 

2) Jaký port používá SNMP a lze ho případně změnit?

Protokol SNMP v1, 2c používá pro komunikaci port 161. Tento port aktuálně měnit nelze.

 

 

 

 

Zeptejte se na cenu nebo technické parametry

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