Monitoring
Prostředí, technické zařízení budov, průmyslové haly, IT systémy, stejně jako technologie přenosových sítí, potřebují pro svůj spolehlivý a efektivní provoz monitoring prostředí a provozních stavů. Přehled vybraných veličin, jako je teplota, tlak, rosný bod, úroveň osvětlení, kvalita vzduchu nebo například informace o chodu stroje nebo úrovni vibrací, poskytují ucelený obraz o stavu zařízení a umožňují obsluze kvalifikovaně rozhodnout o reakci na stav prostředí nebo technologie.
![](https://www.hw-group.com/files/taxonomy/444/monitoring.png)
Přesnost senzorů v čase
Všechny senzory – teplotní, vlhkostní, napěťové atd. – časem stárnou a mění se jejich parametry. To je způsobeno stárnutím materiálů, ale vliv na to může mít i prostředí, například prach nebo mastnota. Při měření tak může docházet k nepřesnostem, které HW group s.r.o. jako výrobce nemůže ovlivnit. Je proto důležité o těchto nepřesnostech vědět a počítat s nimi. Lze jim předejít zkrácením intervalů mezi kalibracemi. Tento dokument popisuje prostředí, která škodí senzorům teploty a zejména senzorům vlhkosti.
Horizontal menu
netGSM - Jak funguje s produkty HW group
Funkce netGSM umožňuje sdílet jeden GSM modem připojený k jednomu zařízení s ostatními jednotkami ve stejné síti. To znamená, že pomocí jednoho GSM modemu může posílat SMS alarmy více jednotek Poseidon, čímž se zjednoduší topologie sítě a sníží náklady.
Horizontal menu
netGSM má dvě části, serverovou a klientskou. Serverovou částí je jednotka Poseidon s GSM modemem. Klienty jsou ostatní jednotky nebo softwarové aplikace.
Zařízení podporující netGSM (k 1.11.2017):
Server (potřebuje GSM modem)
- Poseidon 2250
- Poseidon 4001
- Poseidon 4002
- Poseidon2 4002
- Damocles2 2404
- HWg-SMS-GW/GW2/GW3
Klient (nepotřebuje modem, posílá SMS prostřednictvím jiné jednotky)
- Poseidon 2250
- Poseidon 4001
- Poseidon 4002
- Poseidon 3266
- Všechny produkty rodiny Poseidon2
- Všechny produkty rodiny Damocles2
- Všechny produkty IP Watchdog2
- HWg-WLD
- HWg-PWR3/12/25
- HWg-SH4
- HWg-DCD2
- Nagios plugin (testuje se)
- Příklad skriptu v PHP
Podporované funkce netGSM
- Odeslání SMS
- Příjem SMS
- Prozvonění vzdáleného telefonu
Popis parametrů nastavení pro Poseidon2/Damocles2 v režimu Server
Serial Port Settings
Port Function nastavuje funkci sériového portu (dostupné pouze na modelech se sériovým portem a podporou serveru netGSM). Možnosti:
- Disabled – sériový port je vypnutý, není připojen GSM modem a zařízení funguje jako klient
- GSM modem – je připojen GSM modem a jednotka Poseidon funguje jako server pro netGSM
Remote SMS gateway
Umožňuje nastavit IP adresu, HTTP port a cestu ke službě. Ta směruje požadavky na odeslání SMS, řízení RFID apod. Jednotky Poseidon2, Damocles2 a HWg-SMS-GW3 používají vždy service.xml !
GSM SMS interface
Zde se nastavují parametry SMS.
- GSM Function – umožňuje nastavit, budou-li se SMS odesílat přes lokální modem (dostupné jen je-li sériový port v režimu GSM modem)
- SMS+Ring when Alarm – umožňuje při poslání SMS prozvonit dané telefonní číslo
- RS-232 GSM module – stav GSM modemu
- Not Enabled – neaktivní. Zobrazuje se, pokud bylo nastavení RS-232 portu změněno, ale není uloženo
- Not Found – jednotka Poseidon je nastavena, aby používala lokální modem, ale modem nebyl nalezen
- Waiting for modem – vyhledává se zařízení
- Initializing – modem se inicializuje
- Ready – zařízení je připraveno k použití
- SMS center Number – informace o čísle SMS centra načteném ze SIM karty. Bez něj nelze SMS odesílat
GSM SMS recipient
Umožňuje uživateli nastavit čísla příjemců SMS. Nezávisí na režimu provozu (lokální/vzdálený modem).
Příklad 1
Použijí se dvě jednotky Poseidon:
- 192.168.2.23 Poseidon2 4002 s připojeným GSM modemem
- 192.168.1.67 Poseidon 3266 bez modemu, posílá SMS přes Poseidon 4002
Nastavení jednotky Poseidon2 4002 (s GSM modemem)
Ve výchozím stavu je nejprve třeba povolit GSM modem v sekci Serial port Settings a pak nastavit GSM Function na Local. Deaktivace SOAP destination je nepovinná, stejně tak funkce SMS+ Ring when Alarm.
Příklad nastavení XML
<SerialPort>
<E>1</E>
</SerialPort>
<SMS>
<Function>1</Function>
<Ring>0</Ring>
<Dest>1</Dest>
<Module>Ready</Module>
<CenterNmr>+420608005681</CenterNmr>
<Recp1>777232759</Recp1>
<Recp2 />
<State>13</State>
<Message>OK</Message>
</SMS>
<SOAP>
<Entry>
<Idx>1</Idx>
<E>0</E>
<Server>192.168.1.36</Server>
<Port>80</Port>
<Route>service.xml</Route>
</Entry>
</SOAP>
Nastavení jednotky Poseidon 3266
Ve výchozím nastavení stačí jen nastavit IP adresu vzdálené jednotky Poseidon a telefonní čísla příjemců SMS. Volba SMS+ Ring when Alarm je nepovinná.
Příklad nastavení XML
<SerialPort>
<E>0</E>
</SerialPort>
<SMS>
<Function>0</Function>
<Ring>0</Ring>
<Dest>1</Dest>
<Module>Ready</Module>
<CenterNmr />
<Recp1>777232759</Recp1>
<Recp2 />
<State>13</State>
<Message>OK</Message>
</SMS>
<SOAP>
<Entry>
<Idx>1</Idx>
<E>1</E>
<Server>192.168.2.23</Server>
<Port>80</Port>
<Route>service.xml</Route>
</Entry>
</SOAP>
Příklad 2
Jednotky Poseidon2 4002 používají bránu HWg-SMS-GW3:
- 192.168.100.169 HWg-SMS-GW3
- 192.168.100.223 Poseidon2 4002 bez modemu, posílá SMS přes HWg-SMS-GW3
Nastavení HWg-SMS-GW3
HWg-SMS-GW3 používá zabezpečení uživatelským jménem a heslem pro netGSM (SOAP)
Příklad nastavení XML
<Network>
<dhcp>1</dhcp>
<hostname>HWg-SMS-GW3</hostname>
<ip_address>192.168.100.169</ip_address>
<ip_mask>255.255.255.0</ip_mask>
<ip_gateway>192.168.100.1</ip_gateway>
<dns1>192.168.100.237</dns1>
<dns2>192.168.100.250</dns2>
<porthttp>80</porthttp>
<username/>
<password/>
<soap_username>1 1sX6k4D26A==</soap_username>
<soap_password>1 zd/uhpg=</soap_password>
</Network>
Poseidon2 4002 setup
Ve výchozím nastavení stačí jen nastavit IP adresu vzdálené jednotky HWg-SMS-GW3 a telefonní čísla příjemců SMS. Volba SMS+ Ring when Alarm je nepovinná.
Příklad nastavení XML
<SMS>
<Function>0</Function>
<Ring>1</Ring>
<Dest>1</Dest>
<Module>Not enabled</Module>
<CenterNmr/><Recp1>+420777232759</Recp1>
<Recp2/>
<Recp3/>
<Recp4/>
<Recp5/>
<State>0</State>
<Message/>
</SMS>
<SOAP>
<Entry>
<Idx>1</Idx>
<E>1</E>
<Server>192.168.100.169 </Server><Port>80</Port>
<Route>service.xml</Route>
<Name>testik</Name>
<Pswd>hwg</Pswd>
</Entry>
</SOAP>
Accessories
Download
Volba typu M-BUS komunikace (zobrazení více hodnot z měřiče)
Sběrnice M-BUS je navržena jako low-consumtion a z toho důvodu umožňuje ptát se zařízení na různé hodnoty různými dotazy. V principu jde o to, že některé měřiče vydají na "základní dotaz" (Basic) pouze hodnoty o celkové spotřebě a pro zobrazení hodnot o okamžité spotřebě, průtocích a pod je třeba použít jiný typ dotazu (REQ_UD1, SND_UD a jiné). Pro tento účel umožňuje HWg-PWR přidat jeden měřič se shodnou sekundární adresou a k aktivaci těchto rozšířených možností dotazů slouží skrytá volba.
Horizontal menu
Aktivace skryté volby se provádí na stránce System každého HWg-PWRx:
Do pole Password (pouze první řádek) vepište #Hwg
Tím se aktivuje Secret Setup:
Zde aktivujte funkci Mbus Meter Model Enable. Následně se přepněte na stránku konkrétního měřiče, kde se Vám zobrazí položka:
Výběrem a uložením se aktivuje příslušný režim.
Chcete-li číst hodnoty více dotazy, je třeba konkrétní měřič přidat do HWg-PWR podruhé manuálně. na stránce Device si zkopírujete SEC adresu měřiče:
Následně na téže stránce stiskem odkazu Manual Add vyvoláte dialog pro ruční přidání zařízení, kde vložíte sekundární adresu měřiče a zvolíte že čtení má být provádělo podle ní:
Po uložení již pokračujete vyhledáním veličin stejně jako v případě automatického vyhledání.
Jak poslat SMS prostřednictvím HWg-SMS-GW3
HWg-SMS-GW3 je brána pro odesílání poplachových SMS po síti LAN. HWg-SMS-GW3 je primárně určena pro použití s produkty a software HW group s.r.o., ale její komunikační rozhraní jsou dostatečně zdokumentována, aby se dala použít i se systémy 3 stran. Tento dokument si klade za cíl ukázat jak lze v těchto systémech HWg-SMS-GW3 použít.
Horizontal menu
Způsoby odesílání SMS:
Odesílání SMS prostřednictvím protokolu net GSM
Protokol netGSM je založen na komunikaci prostřednictvím SOAP, neboli odeslání XML souboru pomocí HTTP POST. Popis komunikačního protokolu netGSM naleznete na adrese http://hw-group.us/product-version/netgsm
V pricipu jde o to, že se přes HTTP POST odešle soubor XML (service.xml) v následující podobě:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <pos:QueueAdd> <Queue>GsmOut</Queue> <Gsm> <Cmd>SMS</Cmd> <Nmr>123456789</Nmr> <Text>Hello World!</Text> </Gsm> </pos:QueueAdd> </soapenv:Body> </soapenv:Envelope>
Popis jednotlivých parametrů lze dohledat ve výše zmiňovaném popisu protokolu.
Odeslání XML souboru pomocí programu cURL
cURL je řádkový nástroj pro přenos dat po protokolech jako HTTP, FTP a dalších. cURL se skládá ze dvou částí - konzolové aplikace curl.exe a libcurl.dll - knihovny implementujicí všechny funkce programu curl; je možné ji využít při psaní vlastního programu/skriptu (existují vazby pro velkou část jazyků). cURL lze získat zdarma na adrese https://curl.haxx.se/ (https://curl.haxx.se/download.html) a je třeba při stahování pečlivě dbát na to jakou verzi stahujete. 32bitová verze Vám na 64 bitových Windows nebude fungovat, přestože se řádně spustí!
cURL se spouští z příkazového řádku příkazem
curl -X POST -T service.xml 192.168.100.169
kde
-X definuje metodu přenosu, v našem případě POST
-T určuje že se posílá soubor a jak se jmenuje (musí se nacházet ve stejném adresáři jako program curl.exe, jinak je třeba upravit cestu)
IP adresa je adresou HWg-SMS-GW3
V případě, že je HWg-SMS-GW3 zabezpečena uživatelském jménem a heslem, je třeba příkaz doplnit o autentizaci parametrem -u:
curl -X POST -T service.xml -u user:pass 192.168.100.169
odpovědí pak je:
C:\Users\volmr\Desktop\curl>curl -X POST -T service.xml -u user:pass 192.168.100.169 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 375 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0<?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pos="poseidonService.xsd"> <soapenv:Header/> <soapenv:Body> <pos:QueueAddResponse> <Rslt>1</Rslt> <ID>169</ID> </pos:QueueAddResponse> </soapenv:Body> </soapenv:Envelope> 100 667 100 292 100 375 292 375 0:00:01 0:00:01 --:--:-- 657 C:\Users\volmr\Desktop\curl>
Odeslání XML souboru pomocí PHP
PHP je v současnosti asi nejrozšířenější skriptovací jazyk v Open Source sféře tvorby webů. Chcete-li posílat SMS z vašich webových stránek, je to velmi jednoduché a použít lze například tento script:
<?php $type = "SMS"; $nmr = "+420111222333"; $text = "Hello world!"; $host = "mysmsgw.domain.com"; $port = 80; $user = "username"; $pass = "password"; $xml = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"> <soapenv:Header/> <soapenv:Body> <pos:QueueAdd> <Queue>GsmOut</Queue> <Gsm> <Cmd>".$type."</Cmd> <Nmr>".$nmr."</Nmr> <Text>".$text."</Text> </Gsm> </pos:QueueAdd> </soapenv:Body> </soapenv:Envelope>"; $fp = @fsockopen($host, $port, $errno, $errstr, 30); if (!$fp) { echo "$host:$port: $errstr ($errno)\r\n"; } else { fwrite($fp, "POST /service.xml HTTP/1.0\r\n"); fwrite($fp, "User-Agent: MyPHPTest\r\n"); fwrite($fp, sprintf("Host: %s\r\n", $host)); fwrite($fp, sprintf("Authorization: Basic %s\r\n", base64_encode($user . ":" . $pass))); fwrite($fp, sprintf("Content-Length: %d\r\n\r\n", strlen($xml))); fwrite($fp, $xml); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?>
Stačí vyplnit adresu, port, uživatelské jméno a heslo vaší HWg-SMS-GW3 a vše hned funguje. Proměnné $type, $nmr a $text lze pochopitelně přenášet z jiných scriptů.
Odeslání SMS z programu Nagios
Nagios používá skripty psané v jazyce Perl. Pro tyto účely je k dispozici script notify-poseidon-sms.pl od německé firmy Netways, který umí odesílat až 160 znaků pomocí příkazu:
./notify-poseidon-sms.pl -H 192.0.2.10 -M "Test message" -D 123456789
Kde
-H – (Host) IP adresa HWg-SMS-GW3
-M – (Message) text zprávy
-D – (Destination) Telefonní číslo kam se zpráva má poslat
Nepříjemné je, že tento script umí jen zasílat SMS a neumí prozvánět což je však snadná úprava například ve stylu notify-poseidon-call.pl (viz přílohy) a nepodporuje autentizaci na úrovni http.
Příklad použití pod Windows pak vypadá takto:
C:\Users\volmr\Desktop\curl>perl notify-poseidon-sms.pl -H 192.168.100.169 -M "Hello World!" -D 777232759 OK, message sent with ID 1 to '777232759' C:\Users\volmr\Desktop\curl>
Odesílání SMS pomocí funkce HTTP GET
HTTP GET je metoda, při které se všechny parametry předávají přímo v URL adrese. Tato metoda se často používá pro jednoduché aplikace, protože umožňuje snadné ladění a není programátorsky nijak náročná. Stačí volat celou adresu za pomoci příslušných parametrů:
values.xml?Cmd=SMS&Nmr=00420123456789&Text=Hello World!
Kde:
Values.xml – soubor v GW který má příkaz zpracovat. Používá se právě values.xml nebo service.xml
Cmd – příkaz co má GW udělat : SMS – pro odeslání SMS, Call – pro prozvonění
Nmr – telefonní číslo národním nebo mezinárodním formátu. Místo znaménka „+“ se doporučuje používat 00, aby klienti neměli potřebu nahrazovat znak „+“ entitou
Text – Vlastní text zprávy v UTF-8
Nepříjemné je, že metoda HTTP GET je nativní pro zobrazování WWW stránek a nelze ji tedy jednoduše zabezpečit proti zneužití (bylo by třeba nastavit WWW Security, což naopak znemožní volné prohlížení webu HWg-SMS-GW3). Navíc i v takovém případe jsou přihlašovací údaje odesílané otevřeně v URL:
http://user:pass@192.168.1.1/values.xml?Cmd=SMS&Nmr=777232759&Text=Hello 20World!
Z tohoto důvodu je zasílání zpráv pomocí metody HTTP GET standardně vypnuté a je třeba ho nejprve ručně povolit na záložce GSM Modem:
Odeslání SMS pomocí WWW prohlížeče
Do adresního řádku WWW prohlížeče zadáme URL adresu HWg-SMS-GW3 včetně požadovaných příkazů:
http://192.168.100.169/values.xml?Cmd=SMS&Nmr=777232759&Text=Hello World!
Po odeslání na nás vyskočí potvrzení o odeslání zprávy ve formátu XML:
<Root> <QueueAddResponse> <Rslt>1</Rslt> <ID>2</ID> </QueueAddResponse> </Root>
Odeslání SMS pomocí programu Wget
GNU Wget je řádková utilita, která slouží jako jednoduchý ale výkonný http klient. Implementuje přenos souborů přes protokoly HTTP, HTTPS a FTP. Získat ji lze na adrese https://www.gnu.org/software/wget/ verze pro Windows jsou pak k dispozici na adrese http://gnuwin32.sourceforge.net/packages/wget.htm
Použití utility wget je velmi jednoduché – stačí zadat stejný příkaz jako do adresního řádku prohlížeče, ale s ohledem na to, že wget neumí přenést více než jeden parametr v URL, je třeba celou URL uzavřít do uvozovek.
wget "http://192.168.100.169/values.xml?Cmd=SMS&Nmr=777232759&Text=Hello World!"
Výsledek pak v příkazovém řádku vypadá takto:
C:\Users\volmr\Desktop\wget>wget "http://192.168.100.169/values.xml?Cmd=SMS&Nmr=777232759&Text=Hello World!" --2017-12-28 15:56:35-- http://192.168.100.169/values.xml?Cmd=SMS&Nmr=777232759&Text=Hello%20World! Connecting to 192.168.100.169:80... connected. HTTP request sent, awaiting response... 200 Ok Length: unspecified [text/xml] Saving to: 'values.xml@Cmd=SMS&Nmr=777232759&Text=Hello%20World!.1' values.xml@Cmd=SMS&Nmr=777232 [ <=> ] 118 --.-KB/s in 0s 2017-12-28 15:56:35 (5.48 MB/s) - 'values.xml@Cmd=SMS&Nmr=777232759&Text=Hello%20World!.1' saved [118] C:\Users\volmr\Desktop\wget>
Odeslání SMS pomocí programu cURL
Použití aplikace cURL je identické použití utility wget. Na příkaz
curl "http://192.168.100.169/values.xml?Cmd=SMS&Nmr=777232759&Text=Hello World!"
Odpoví aplikace takto:
C:\Users\volmr\Desktop\curl>curl "http://192.168.100.169/values.xml?Cmd=SMS&Nmr=777232759&Text=Hello World!" <?xml version="1.0" encoding="utf-8"?> <Root> <QueueAddResponse> <Rslt>1</Rslt> <ID>4</ID> </QueueAddResponse> </Root> C:\Users\volmr\Desktop\curl>
Výsledkem je pochopitelně odeslaná zpráva
Odesílání SMS z programu PRTG
PRTG Network Monitor představuje úplné řešení pro monitorování sítí kombinující odborné znalosti společnosti Paessler s komplexní sadou monitorovacích funkcí, snadno ovladatelným a intuitivním rozhraním a nejmodernějším monitorovacím nástrojem, který je vhodný pro všechny typy sítí.
PRTG Network Monitor je schopen odesílat SMS prostřednictvím metody HTTP GET a pro jeho aktivaci stačí nastavit už jen URL kam se mají zprávy posílat. To se prování pomocí Enterprise Console (aplikace nebo WWW rozhraní) menu Setup > Systém Administration > Notification Delivery, kde do pole Custom URL vepíšete:
http://IP_adresa/values.xml?Cmd=SMS&Nmr=%SMSNUMBER&Text=%SMSTEXT
tím zařídíte, že systémové proměnné SMSNUMBER a SMSTEXT se budou vkládat na správná místa v URL.
PRTG v současné době nepodporuje zabezpečení pomocí uživatelského jména a hesla!
Odesílání SMS pomocí SNMP funkce Write (snmpset)
Od verze FW 1.1.3 podporuje HWg-SMS-GW3 odesílání SMS a prozvonění prostřednictvím SNMP. K tomu slouží SNMP write, či přesněji SNMP funkce SET. Je však třeba zapsat postupně všechny 3 požadovaná OID pro cílové číslo, text zprávy a funkci (SMS/prozvonění/sms+prozvonění). K tomu slouží následující OID:
- msgQueueNmr (OID .1.3.6.1.4.1.21796.4.10.2.2.0) - (povinné) Cílové telefonní číslo v národním nebo mezinárodním formátu. Lze zadat v mezinárodním formátu se znakem „+“ i „00“
- msgQueueCmd (OID .1.3.6.1.4.1.21796.4.10.2.3.0) - (povinné) příkaz definující co se má stát 1=sms,2=ring,3=sms+ring
- msgQueueText (OID .1.3.6.1.4.1.21796.4.10.2.1.0) - (povinné) text zprávy. Pokud chceme pouze prozvonění není třeba zadávat
V praxi pak mohou jednotlivé příkazy vypadat například takto:
snmpset -v 1 -c private 192.168.100.169 1.3.6.1.4.1.21796.4.10.2.2.0 s: 777232759 snmpset -v 1 -c private 192.168.100.169 1.3.6.1.4.1.21796.4.10.2.1.0 s "Hello World!" snmpset -v 1 -c private 192.168.100.169 1.3.6.1.4.1.21796.4.10.2.3.0 i: 1
Po aplikaci v příkazovém řádku se jeví takto:
C:\usr\bin>snmpset -v 1 -c private 192.168.100.169 1.3.6.1.4.1.21796.4.10.2.2.0 s: 777232759 SNMPv2-SMI::enterprises.21796.4.10.2.2.0 = STRING: 777232759 C:\usr\bin>snmpset -v 1 -c private 192.168.100.169 1.3.6.1.4.1.21796.4.10.2.1.0 s "Hello World!" SNMPv2-SMI::enterprises.21796.4.10.2.1.0 = STRING: "Hello World!" C:\usr\bin>snmpset -v 1 -c private 192.168.100.169 1.3.6.1.4.1.21796.4.10.2.3.0 i: 1 SNMPv2-SMI::enterprises.21796.4.10.2.3.0 = INTEGER: 1 C:\usr\bin>
Příkaz na prozvonění pak vypadá takto:
snmpset -v 1 -c private 192.168.100.169 1.3.6.1.4.1.21796.4.10.2.2.0 s: 777232759 snmpset -v 1 -c private 192.168.100.169 1.3.6.1.4.1.21796.4.10.2.3.0 i: 2
a odpověď na něj takto:
C:\usr\bin>snmpset -v 1 -c private 192.168.100.169 1.3.6.1.4.1.21796.4.10.2.2.0 s: 777232759 SNMPv2-SMI::enterprises.21796.4.10.2.2.0 = STRING: 777232759 C:\usr\bin>snmpset -v 1 -c private 192.168.100.169 1.3.6.1.4.1.21796.4.10.2.3.0 i: 2 SNMPv2-SMI::enterprises.21796.4.10.2.3.0 = INTEGER: 2 C:\usr\bin>
HWg-SMS-GW3 je brána pro odesílání poplachových SMS po síti LAN. HWg-SMS-GW3 je primárně určena pro použití s produkty a software HW group s.r.o., ale její komunikační rozhraní jsou dostatečně zdokumentována, aby se dala použít i se systémy 3 stran.
Devices
Accessories
Download
Virtuální výstupy v jednotkách Poseidon2 a Damocles2
Virtuální výstupy v jednotkách Poseidon2 a Damocles2 umožňují v zařízení používání výstupů z jiných jednotek Poseidon2 a Damocles2 (Box2Box). De facto se jedná o obdobu stávajícího režimu, který fungoval pomocí SNMP trapů, pouze v případě Virtuálních výstupů probíhá komunikace spolehlivějším protokolem TCP/IP, je opakovaná (provádí se každých 60s), zabezpečená a lze na ni aplikovat všechny funkce, podmínky a vlastnosti jako na fyzické výstupy.
Horizontal menu
Spolehlivější protokol
Stávající funkce pomocí SNMP Trapů znamenala přenos pomocí protokolu UDP, který není potvrzovaný, tedy strana která trap odešle, neví, zda-li dorazil na cílové zařízení. Packety UDP jsou velmi rychlé a krátké, ale může docházet k jejich ztrátám, což pro aplikaci Box2Box není nejvhodnější. Protokol TCP má naopak všechny packety potvrzované, takže nedorazí-li data k cíli určení, ze zdrojové zařízení vyzváno k jejich opakovanému okamžitému odeslání.
Opakované odeslání každých 60s
Při použití Box2Box režimu pomocí SNMP Trapů jsou příkazy pro sepnutí a rozepnutí relé odeslány vždy jen a výhradně v okamžiku kdy nastane podmínka pro odeslání Alarmového trapu (začátek nebo konec Alarmu). Pokud tedy máte aplikaci, při které může dojít k resetu vzdáleného zařízení (například vlivem výpadku napájení) s ovládaným výstupem, je tento přenos nevhodný, protože vzdálené zařízení po svém resetu (zapnutí) neví, že má výstup sepnout. V případě Virtuálních výstupů je pokyn odesílán rovněž každých 60s po celou dobu kdy platí podmínka pro sepnutí vzdáleného výstupu. Tím se problém řeší.
Zabezpečená komunikace
Komunikace pro Virtuální výstupy může být ve vzdáleném zařízení zabezpečena uživatelským jménem a heslem (úroveň Read only + Outputs nebo Read + Write). SNMP Trapy tuto možnost nemají.
Na výstupy lze aplikovat stejné funkce jako na fyzické
Přidáním virtuálního výstupu do jednotky Poseidon2 nebo Damocles2 se Vám tento výstup objeví na stejné záložce a se stejnými parametry jako by se jednalo o výstup fyzický. Lze na něj tedy použít všechny podmínky a vlastnosti jako na fyzický výstup, včetně možnosti vytvoření pulzního výstupu.
Jak to celé funguje
Nejprve si na záložce Virtual Outputs nadefinujete virtuální výstup. Těch může být standardně až 8 a ve výchozím stavu jsou vypnuté. Po zapnutí lze nastavit název výstupu, Ip adresu vzdáleného zařízení, ID vzdáleného výstupu (lze nalézt na záložce Outputs) a v případě že je vzdálené zařízení chráněno autentizací, rovněž uživatelské jméno a heslo (úroveň Read only + Outputs nebo Read + Write).
Po uložení se nám výstup zobrazí na záložce Outputs a můžeme ho nastavit dle potřeby.
Reakční doba na sepnutí vzdálených výstupů se pohybuje okolo 1,5-2,5s.
Download
Představení protokolu MQTT a jeho aplikace v jednotkách Poseidon2 a Damocles2
Protokol MQTT je moderní a úsporný protokol postavený nad TCP/IP určený primárně pro nasazení v IoT aplikacích, či chcete-li v aplikacích kde mnoho vnějších zařízení odesílá data do centrálního zdroje. Ten nejen že je schopen data sdružovat, ale rovněž je dále šířit všem (zařízením), kdo jsou přihlášeni k odběru těchto informací.
Horizontal menu
Jak to vlastně funguje
Protokol MQTT lze asi nejblíže přirovnat SNMP trapu, ale na TCP vrstvě. Komunikace tedy neprobíhá stylem otázka odpověď, ale jen stylem odeslání dat a potvrzení o jejich doručení – tzv. publikování (publish). To představuje velikou výhodu pro zatížení sítě, protože jednotlivá, „vstupní“ zařízení (senzory, detektory apod.) v pravidelných intervalech či podle jinak výrobcem zadaných kritérií (sepnutí či rozepnutí vstupu, překročení povolené meze hodnoty, nárůst či pokles hodnoty a podobně) aktivně odesílají krátké TCP zprávy na zadanou adresu serveru, tzv. Brokeru.
Každá zpráva je uvozena nějakým předmětem či názvem tématu (Topic) který data charakterizuje a řadí je do nějaké skupiny či je identifikuje.
Broker
Broker, se primárně chová jako server, tedy přijímá data a skladuje je. Navíc se však umí chovat vůči ostatním Brokerům v síti rovněž jako klient (vstupní zařízení) schopný odesílat data dál všem odběratelům (subscriber), kteří si je objednali k odběru (subscribe). Odběratelem v tomto případě může být například webová služba, aplikace či právě jiný broker. Jinými slovy, zatímco koncová zařízení odesílají data na zadané adresy Brokerů, odběratelé se hlásí Brokerům s přihlášením k odběru (podobně jako se zákazníci přihlašují k odběru novinek e-mailem). Pokud broker obdrží zprávu obsahující Topic odpovídající přihlášenému odběru, zprávu uloží a současně rozešle přihlášeným odběratelům.
Topic
Téma, či předmět, zprávy je vždy textový řetězec, který může nabývat stromové struktury pomocí znaku „/“ (lomeno). Topic pak může vypadat například takto:
Poseidon/1-Wire/temperature/856275
GTS/nagano/room1/temperature
Odběratel se pak může přihlásit buď k odběru konkrétního tématu (topicu) nebo celé větvě či celého stromu. V topicu lze použít zástupné znaky „#“, ,,+“ a „$“.
- „+“ nahrazuje celou úroveň (Poseidon/+/temperature/856275), znak
- „#“ je ekvivalentem známé hvězdičky a nahrazuje více úrovní (Poseidon/#). Znak „#“ smí být použit pouze na konci řetězce.
- „$“ jsou speciální, zpravidla systémová témata. Pokud jméno tématu začíná znakem „$“, jedná se o speciální téma (např. $SYS/broker/uptime).
Součástí Topicu je pak ještě příznak QoS, který definuje, zda je požadováno doručení zprávy. Hodnota 0 představuje, informaci že úspěšné doručení není vyžadováno, hodnota 1 umožňuje doručení s možnou duplicitou (nedorazí-li potvrzení o doručení, odešle se zpráva znovu) a hodnota 2 značí že je požadováno úspěšné doručení, ale nesmí dojít k duplicitám.
Payload
Payload představuje vlastní obsah zprávy. Standardně se obsah zprávy předpokládá v textové podobě, ale protokol MQTT je v tomto směru benevolentní a záleží jen a jen na brokeru a odběratelích, zda a jak si s obsahem poradí. Data tedy mohou být i binární či například může jít o obrázky. Velikost a typ zprávy jsou dány brokerem. Řada brokerů pak například preferuje soubory XML nebo JSON, protože pro větší objem dat jsou úspornější než odeslání většího počtu krátkých zpráv (topiců).
Bezpečnost
Protokol MQTT standardně komunikuje na TCP vrstvě na portu 1883. Pro zvýšení bezpečnosti lze použít komunikaci zabezpečenou pomocí SSL / TLS a poté komunikace probíhá na portu 8883
Aplikace MQTT v jednotkách Poseidona2 a Damocles2
V jednotkách Poseidon2 a Damocles2 je implementován MQTT klient s volitelnou podporou SSL.
- MQTT enable – Zapne či vypne podporu MQTT v jednotkách Poseidon2 a Damocles2.
- Server – IP adresa nebo doménové jméno MQTT brokeru (serveru)
- Port – TCP port na kterém Broker naslouchá
- Username – Uživatelské jméno pro autorizaci TCP komunikace
- Password – Heslo pro autorizaci TCP komunikace
- Secure SSL mode – Aktivuje/deaktivuje SSL režim
- Client ID – ID klienta v rámci MQTT
- Publish Period – perioda odesílání naměřených informací
- Topic Prefix Name – Přefix předmětu zprávy. Celý Topic je pak tvořen složením prefixu + topicu uvedeného níže
- Publish – vybere informace které mají být odesílány
- User Topic umožňuje vytvoření uživatelského topicu (zprávy) obsahujícího data jaké požaduje uživatelská aplikace (JSON, XML, CSV a pod.). K tomu slouží makropříkazy uvedené níže
- User Topic Enable – zapne zasílání uživatelské zprávy
- Topic Name - Název zprávy
- Topic Value – šablona uživatelské zprávy
- Topic Test – náhled výsledné zprávy po přeložení maker
Macros for User topic:
%ID_IN_*% - Start of sequence of the inputs with firmly defined ID’s %ID_IN_END% - End of the fixed sequence of the inputs
%LOOP_IN% - Beginning of the sequence of the inputs that passes all ID’s %LOOP_IN_END% - End of the complete sequence of the inputs
%ID_OUT_*% - Start sequence of the outputs with firmly defined ID’s %ID_OUT_END% - End of fixed sequence of the outputs
%LOOP_OUT% - Start sequence outputs that passes all ID’s
%LOOP_OUT_END% - End of the complete sequence of the outputs
%ID_SENSOR_*% - Start sequence with sensors firmly defined ID’s %ID_SENSOR_END% - End of fixed sequence sensors
%LOOP_SENSOR% - Start sequence of sensors that passes all ID’s %LOOP_SENSOR_END% - End of the complete sequence of sensors
%VAL_ID% - Variable ID item
%VAL_NAME% variable name item
%VAL_VALUE% - variable values of the item
%VAL_STATE% - state variables of the item
Username and password are optional. For example, broker.mqttdashboard.com does not require them yet.
MQTT in practice
There are many public MQTT brokers where data can be sent and topics can be subscribed to. A list of the most well-known ones is available at: https://github.com/mqtt/mqtt.github.io/wiki/public_brokers
For our example, we have chosen broker.mqttdashboard.com. First, configure the Poseidon2 device:
Fill in the Server address, Port, Client ID (any value) and Topic Prefix Name (anything that can be used to distinguish the device). Using the Publish checkboxes, select the data to be published.
Then, Poseidon2 or Damocles2 needs to be restarted.
Start the TT3 tool. It is essentially a MQTT Broker. It is available at: https://github.com/mqtt/mqtt.github.io/wiki/public_brokers
Set the broker (Server) address and Port (both values must be the same as in the Poseidon2), and a Client ID (must be different from the Poseidon Client ID). Then click Connect. The green status field in the lower right-hand corner will show Connected.
Then, in the Topic field, fil in the address that interests you. For example, “Poseidon2/#” means all messages whose Topic begins with Poseidon2/. Click Subscribe to start receiving messages.
SNMP – popis rozhraní
Protokol SNMP (Simple Network Management Protocol) slouží k výměně základních systémových informací pomocí krátkých paketů, posílaných přes UDP/IP.
Horizontal menu
Jednotlivé proměnné jsou uspořádány a popsány v tzv. MIB (Management Information Base) tabulce, která je vztažná ke každému zařízení. Tabulka se distribuuje jako samostatný .mib soubor, který si pro zařízení můžete stáhnout z našich WWW stránek, nebo jej najdete na přiloženém CD.
Protokol SNMP je asynchronní protokol založený na modelu klient/server (zde přejmenováno na SNMP Client / SNMP Agent). To znamená, že dohledové centrum (SNMP Client) se zeptá na stav jednotlivých proměnných a SNMP Agent implantovaný v zařízení mu odpoví.
Podpora protokolu SNMP je implementována do celé řady jazyků určených pro tvorbu dynamických stránek (např. PHP, ASP, Java, Perl, Python a další). Díky existujícím modulům je tak možné v relativně krátké době umožnit přes protokol SNMP přístup k datům, která poskytuje periferní zařízení systému, a to jak pro čtení, tak pro zápis.
V klasickém režimu komunikace probíhá formou otázek a odpovědí. Proměnné jsou definovány hierarchií (řadou) číslic, která jej popsaná v MIB tabulce, kde je popsán význam jednotlivých proměnných, jejich formát a název. Pokud ale znáte hierarchii (řadu číslic – například „.1.3.6.1.4.1.21796.3.3.1.1.2.3“ – stav vstupu Binary 3) pro konkrétní hodnotu, MIB tabulku nepotřebujete.
Zde je třeba zmínit několik základních pojmů, které Vám usnadní další orientaci
- MIB table – soubor .mib je textový soubor, popisující jednotlivé proměnné, které dané zařízení podporuje. Jsou zde uvedeny adresy proměnných, jejich název, popis a číselný formát.
- OID je identifikátor proměnné v tabulce proměnných, jedná se o ono dlouhé číslo, které definuji pozici proměnné ve striktuře stromu proměnných.
Některé programy po práci s SNMP nepodporují MIB soubory, potom musíte vkládat OID řetězce ručně. Řetězce najdete v MIB tabulce, ale pro zjednodušení prvotní orientace uvádíme přehled několika proměnných včetně jejich OID:
OID popis SNMP proměnných
Tabulka uvádí proměnné, jejich OID adresy a hodnoty. Tyto hodnoty se vztahují k uvedené konfiguraci zařízení.
- FirmWare: 1.9.6
- Stav dry kontaktů: 1=ON, 2=Off, 3=Off, - žádné alarmy
Variable |
OID |
Value |
Description |
sysDescr |
.1.3.6.1.2.1.1.1 |
Poseidon SNMP Supervisor v1.9.6 |
Textual description of the entity |
sysUpTime |
.1.3.6.1.2.1.1.3.0 |
0:17:12:32.18 |
Time (in tens of milliseconds) since the last init of the network management portion of the system |
Input 1 state |
.1.3.6.1.4.1.21796.3.3.1.1.2.1 |
On (2) |
Binary input states (integer) |
Input 3 state |
.1.3.6.1.4.1.21796.3.3.1.1.2.3 |
Off (1) |
|
Input 2 Name |
.1.3.6.1.4.1.21796.3.3.1.1.3.2 |
Binary 2 |
Binary input name (string) |
Input 3 Alarm |
.1.3.6.1.4.1.21796.3.3.1.1.4.3 |
No (0) |
Alarm for the binary input, generated by the device under defined conditions |
RTS Output (Port 2) |
.1.3.6.1.4.1.21796.3.3.2.1.2.2 |
Off (1) |
Binary input state (integer) |
*) Text version of the OID begins with “.iso.org.dod.internet.private.enterprises.hwgroup.charonII.poseidon” which corresponds to the numerical OID “.1.3.6.1.4.1.21796.3.3”. |
Zkrácený výpis OID
Poseidon family SNMP OID description
-------------------------------------------------------------------------------
Poseidon Device Values:
-------------------------------------------------------
.1.3.6.1.2.1.1.1.0 Device description (string)
.1.3.6.1.2.1.1.5.0 Device name (string)
Dry Contact Inputs
-------------------------------------------------------
.1.3.6.1.4.1.21796.3.3.1.1.2.1 Contact Input 1 state (integer, 1=Off, 2=On)
.1.3.6.1.4.1.21796.3.3.1.1.2.3 Contact Input 3 state (integer, 1=Off, 2=On)
.1.3.6.1.4.1.21796.3.3.1.1.3.1 Dry Contact Input 1 name (R/W string)
.1.3.6.1.4.1.21796.3.3.1.1.4.1 Dry Contact Input 1 Alarm state (integer)
Outputs
-------------------------------------------------------
.1.3.6.1.4.1.21796.3.3.2.1.2.1 Output 1 state (R/W integer, 1=Off, 2=On)
.1.3.6.1.4.1.21796.3.3.2.1.2.2 Output 2 state (R/W integer, 1=Off, 2=On)
.1.3.6.1.4.1.21796.3.3.2.1.3.1 Output 1 name (R/W string)
For more details, analyze the MIB file or see the detailed device manual.
SNMP Trap – popis rozhraní
Pokud se hodnota na některém z teploměrů dostane mimo nastavenou oblast, přejde toto jedno čidlo do stavu ALARM. Pro upozornění na stav ALARM odešle na nastavenou IP adresu SNMP Trap.
Jedná se o dva UDP pakety, které odesílá SNMP Agent do nastaveného dohledového centra (SNMP Client). Formát paketu je podrobně popsán v MIB tabulce, v prvním paketu je informace o zahájení stavu ALARM a v druhém jsou uvedeny doplňující informace ze kterého čidla alarm vzešel. Jedná se o stav alarm, to znamená, že po skončení stavu (například po vrácení teploty do definovaného rozsahu) jsou odeslány další dva UDP pakety s informací o ukončení stavu alarm.
Tento způsob byl vyvinut pro urychlení doručení informace o krizovém stavu, protože v klasickém režimu SNMP - dotaz/odpověď je může být perioda mezi jednotlivými dotazy od stovek milisekund po desítky minut nebo hodin.
Pro vstupní kontakty lze definovat odeslání Alarmu při Otevření / Zavření nebo alarm úplně vypnout.
Damocles2
Seznam a detailní popis SNMP Trapů lze nalézt v MIB tabulce, zde pouze základní všeobecný popis.
- Cold Start + Link Up Trap
Dvojice SNMP Trapů odesílaná po zapnutí zařízení. Pokud je v okamžiku startu platný Alarm na některém z čidel, pošle se ihned další dvojice trapů. - Nastal Alarm na dry kontaktu
Dvojice SNMP Trapů odesílaná, po zahájení Alarm stavu na dry kontaktu. První Trap obsahuje identifikaci zahájení alarmu pro obsluhu „tabulky poplachů“. Druhý SNMP Trap ve svém těle již obsahuje například název vstupu, který alarm vykonal atd.. - Skončil Alarm na dry kontaktu
Dvojice SNMP Trapů odesílaná, po ukončení Alarm stavu na vstupu. Této dvojici vždy předcházela dvojice o zahájení Alarmu. První Trap obsahuje identifikaci zahájení alarmu pro obsluhu „tabulky poplachů“. Druhý SNMP Trap ve svém těle již obsahuje například název vstupu, který alarm vykonal atd.. - Nastal Alarm z čidla hodnoty
Dvojice SNMP Trapů odesílaná, po zahájení Alarm stavu čidla hodnoty (teplota, vlhkost a další). Alarm nastane, pokud je hodnota mimo definovaný rozsah ± hodnota hystereze. První Trap obsahuje identifikaci zahájení alarmu pro obsluhu „tabulky poplachů“. Druhý SNMP Trap ve svém těle již obsahuje přidělený název senzoru a hodnotu, která Alarm vyvolala. - Skončil Alarm z čidla hodnoty
Dvojice SNMP Trapů odesílaná, po zahájení Alarm stavu čidla hodnoty (teplota, vlhkost a další). Alarm skončí, pokud je hodnota zpět v definovaném rozsahu ± hodnota hystereze. První Trap obsahuje identifikaci zahájení alarmu pro obsluhu „tabulky poplachů“. Druhý SNMP Trap ve svém těle již obsahuje přidělený název senzoru a hodnotu, která Alarm vyvolala.
Doporučené SW pro testování SNMP
GetIf
Getif je utilita pro práci s SNMP proměnnými, umožňuje jejich procházení v SNMP stromu, čtení hodnot, nastavování hodnot, zobrazení popisků podle přiložené MIB.
Pro zahájení práce doporučujeme shlédnout instruktážní Flash animaci, kterou najdete na našich www stránkách.
- Licence: Freeware
- Podporované OS: Windows 2000, XP, 2003 Server
- Komunikační protokol: SNMP, obsahuje MIB Manager
- Reakce na stav Alarm: Ne, nepodporuje příjem SNMP Trapů
iReasoning MIB Browser + Trap Receiver
Dvě volné utility pro práci s SNMP proměnnými, umožňuje jejich procházení v SNMP stromu, čtení hodnot, nastavování hodnot, zobrazení popisků podle MIB, kterou lze do programu nahrát.
Pro zahájení práce doporučujeme shlédnout instruktážní Flash animaci, kterou najdete na našich www stránkách.
Accessories
Aplikační poznámka 42: Proudová smyčka 0-20mA nebo 4-20mA
Mnoho zákazníků pro LAN a GSM sensory od HW group se neorientuje v rozdílu mezi proudovou smyčkou 0..20mA a 4..20mA. Pro ně je určena tato aplikační poznámka.
- Do převodníků od HW group lze nastavi zobrazení výstupní jednotky. Následná jednotka Ares nebo Poseidon2 tak bude zobrazovat například výšku hladiny "38 cm" místo zdrojových "17 mA".
- Přímo do převodníku "Sensor 4-20mA 1W-UNI" nebo "Sensor 0-20mA 1W-UNI" lze uložit přepočet vstupní hodnoty na výstupní hodnotu podle křivky až o osmi bodech.
- Pro monitoring senzorů po GSM lze nahradit jednotku Poseidon2 jednotkou Ares.
- Upozornění: Tato aplikační poznámka se týká pouze analogové hodnoty, ne digitální komunikace prostřednictvím proudové smyčky.
Horizontal menu
Analogová proudová smyčka 4-20mA / 0-20mA se používá jako výstupní rozhranní na mnoha průmyslových senzorech (měření hladiny, proudové transformátory, senzory koncentrace plynů a podobně). Velikost výstupního proudu signalizuje měřenou veličinu.
Jak připojit senzor z výstupem 4-20 mA
- Analogový senzor typicky nemá další napájení (je napájen z minimální hodnoty 4mA)
- Převodník od HW group poskytuje napájení pro senzor (4mA / max 36V).
Lze použít "Sensor 0-20mA 1W-UNI"?
Ano, HW group převodník "0-20mA" lze použít také, pokud včleníte externí proudový zdroj:
Jak připojit senzor z výstupem 0-20 mA
- Analogový senzor (zde senzor proudu) nevyžaduje externí napájení.
- Převodník od HW group "Sensor 0-20mA 1W-UNI" neposkytuje napájení pro senzor.
Jak připojit více analogových výstupů
- Převodníky lze řetězit za sebou po sběrnici 1-Wire UNI
- Počet zřetězených převodníků je omezen maximálním počtem senzorů, které lze k jednoce Poseidon2 nebo Ares připojit.