I/O moduly Quido jsou určené pro vzdálené ovládání a dohled technologií. Mají vstupy pro kontakty a napětí a na výstupech výkonná relé. Přes HTTP GET je možné snadno Quida ovládat. A stav vstupů a výstupů umí Quida HTTP GETem posílat na vzdálený server. V tomto článku se dozvíte, jak je použití HTTP GETů jednoduché.
HTTP GET v Quidech slouží pro dvě základní funkce:
Základním použitím příkazu HTTP GET v Quidech je přímé ovládání výstupů a nulování počítadel. Je to prakticky nejjednodušší způsob, jak Quido ovládat z Vašeho systému.
Následujícími příkazy lze snadno ovládat výstupy a čítače na Quidu. Pro příjem GETů je určený skript set.xml v Quidu. Přístup k tomuto skriptu je zabezpečen jménem a heslem uživatele.
Sepnutí výstupu
Příklad: set.xml?type=s&id=1
Tento příkaz sepne výstup s číslem v parametru id (v tomto příkladu jde o výstup OUT1).
Přidáním parametru time lze nastavit na jak dlouho má být výstup sepnutý. Lze zadat číslo z rozsahu 1 až 255, který odpovídá sepnutí na 0,5 - 127,5 sec.
Rozepnutí výstupu
Příklad: set.xml?type=r&id=5
Přidáním parametru time lze nastavit na jak dlouho má být výstup rozepnutý. Lze zadat číslo z rozsahu 1 až 255, který odpovídá rozepnutí na 0,5 - 127,5 sec.
Invertovat výstup
Příklad: set.xml?type=i&id=12
Tento příkaz invertuje stav výstupu s číslem v parametru id.
Spuštění pulzu na výstupu
Příklad: set.xml?type=p&id=2
(Délka pulzu se nastavuje individuálně pro každý výstup na webovém rozhraní Quida.)
Odečet od čítače
Příklad: set.xml?type=c&id=3&cnt=274
Pomocí tohoto příkazu lze odečíst od aktuálního stavu čítače zadané číslo. Číslo čítače je v parametru id. Odečítaná hodnota je v parametru cnt. (Nelze odečíst číslo větší než je napočítané.)
(Tento příkaz není implementován v Quido ETH 3/0, 3/0B a 0/2. Odečet lze realizovat pomocí XML odpovědi popsané v dokumentaci Quido ETH na straně 40 a 41.)
Nulování všech čítačů
Příklad: set.xml?type=C
Tímto lze odečíst aktuální hodnotu od všech čítačů najednou. (Tento příkaz není implementován v Quido ETH 3/0, 3/0B a 0/2. Odečet lze realizovat pomocí XML odpovědi popsané v dokumentaci Quido ETH na straně 40 a 41.)
Sepnutí všech výstupů
Příklad: set.xml?type=S
Takto lze sepnout najednou všechny výstupy (pokud jsou v manuálním režimu).
Rozepnutí všech výstupů
Příklad: set.xml?type=R
Takto lze rozepnout najednou všechny výstupy (pokud jsou v manuálním režimu).
Hromadné nastavení více výstupů najednou
Příklad: set.xml?type=A&sts=00110x01
Takto lze nastavit stav více výstupů současně. (Výše uvedený příklad je pro Quido ETH 8/8, takže počet znaků je 8.) První znak v pořadí představuje výstup OUT1. Je očekávaný některý z těchto tří znaků: 0 (rozepnout výstup), 1 (sepnout výstup) nebo x (nechat výstup beze změny)
Hromadné nastavení více výstupů na určitou dobu
Příklad: set.xml?type=Tsts=10xxxxxx&time=5
Takto lze nastavit na určitou dobu více výstupů najednou.20 Parametr sts obsahuje přesně tolik znaků, kolik má Quido výstupů. (Výše uvedený příklad je pro Quido ETH 8/8, takže počet znaků je 8.) První znak v pořadí představuje výstup OUT1. Jako znak může být použit některý z těchto: Je očekávaný některý z těchto tří znaků: 0 (rozepnout výstup na dobu time), 1 (sepnout výstup na dobu time) nebo x (nechat výstup beze změny). Parametr time je číslo z rozsahu 1 až 255, který odpovídá časům 0,5 až 127,5 sec.
Odpověď na nastavení je ve formátu XML. Příklad odpovědi je zde:
<?xml version="1.0" encoding="ISO-8859-1"?> <root> <result status="1" outs="6" val="0" pic="7"/> </root>
Význam jednotlivých parametrů v XML je následující:
Druhou možností využití příkazu HTTP GET v Quidech je odesílání aktuálního stavu I/O modulu. Quido pošle GET na server a v odpovědi může být ve formátu XML příkaz pro změnu stavů.
Quido odesílá HTTP GET v těchto případech:
V GETu se odesílají vždy všechny tyto informace:
Příklad HTTP GETu odeslaného Quidem ETH 8/8 (tento I/O modul má 8 vstupů, 8 výstupů a jeden teploměr):
script.php?mac=00-20-4A-B4-8D-F7&name=Office&ins=01101010&outs=00100010&tempS=0&tempV=21.8&cnt2=235&cnt6=126
Význam jednotlivých parametrů HTTP GETu je následující:
Proč? Když je Quido ve vnitřní síti a Váš server někde v Internetu, nemusí být zas tak snadné dopravit příkazy pro ovládání Quida z Internetu do vnitřní sítě. Musí se za tím účelem nastavit tunel (tzv. roura) z Internetu do vnitřní sítě, což může být bezpečnostní problém. Řešením je možnost ovládat Quido pomocí odpovědí na HTTP GET.
Quido stačí nastavit tak, aby informace o svém aktuálním stavu odesílalo HTTP GETem periodicky (například po 15ti sec). Váš server pak může na přijatou informaci odpovědět jednoduchým textem ve formátu XML a nastavit tak stav výstupů nebo nulovat počítadla na vstupech.
Konkrétní příklad? Tady je: Quido odeslalo výše uvedený HTTP GET na Váš server. Ten zprávu okamžitě vyhodnotil a jako odpověď poslal tento stručný text ve standardním formátu XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <root> <set outs="0x10x010" cnt2="235" cnt6="12" /> </root>
V nodu set jsou jednotlivé parametry, kterými lze nastavit stav výstupů, případně změnit stav čítačů. (Kompletní informace jsou uvedeny v manuálu ke Quidu.)
Níže uvedený příklad je určený pro skriptování PHP. Provede odeslání odpovědi uvedené v předchozích odstavcích:
<?php header('content-type: text/xml'); $xw = new xmlWriter(); $xw->openMemory(); $xw->startDocument('1.0','UTF-8'); $xw->startElement('root'); // <root> $xw->startElement('set'); // <set> $xw->writeAttribute('outs', '0x10x010'); // 0=Rozepnout; 1=Sepnout; x=Ponechat výstup beze změny $xw->writeAttribute('cnt2', '235'); // Nastavit čítač 2 na 235 $xw->writeAttribute('cnt6', '12'); // Nastavit čítač 6 na 12 $xw->endElement(); // </set> $xw->endElement(); // </root> print $xw->outputMemory(true); exit; ?>
Víte, že kompletní informace o aktuálním stavu Quida lze také číst v oblíbeném formátu XML?
Podívejte se na článek XML v Quidech...