Zde je stručný návod, jak hodnoty z různých našich zařízení číst ve formátu XML a vložit je do stránek psaných v jazyce PHP. To může být základ pro to, abyste mohli své stránky obohatit o údaje ze zařízení, která máte od nás. V tomto článku je příklad jak pomocí XML a PHP zobrazovat údaje z I/O modulu Quido.
Tento stručný návod může být základem k tomu jak:
Následující skript přečte všechny aktuální stavu vstupů a výstupů z I/O modulu Quido, zapojeného v místní síti a s IP adresou 192.168.1.254. Skript se připojí ke Quidu, přečte si aktuální údaje ze souboru ve formátu XML a zobrazí u každého vstupu a výstupu jeho jméno, pořadové číslo a stav.
Skript slouží k porozumění způsobu, jak tyto údaje z Quida získat. Skript ke čtení používá XMLReader.
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Přehled všech aktuálních stavů I/O na Quidu</title> </head> <body> <?php $reader = new XMLReader(); //Kompletní adresa vedoucí ke XML v Quidu $reader->open("http://192.168.1.254/fresh.xml"); echo "<h1>Přehled všech aktuálních stavů I/O na Quidu</h1>"; while ($reader->read()) { // Jména, čísla a stavy všech vstupů if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == "din") echo "<p><b>" . $reader->getAttribute('name') . "</b> (IN " . $reader->getAttribute('id') . "): " . $reader->getAttribute('val') . "</p>"; // Jména, čísla a stavy všech výstupů if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == "dout") echo "<p><b>" . $reader->getAttribute('name') . "</b> (OUT " . $reader->getAttribute('id') . "): " . $reader->getAttribute('val') . "</p>"; }; ?> </body> </html>
Výstupem výše uvedeného PHP skriptu je tento výpis:
Tento skript ke čtení používá přístup pomocí XPath. Skript obsahuje id konkrétních vstupů na I/O modulu Quido, které uživatel chce číst. Tento způsob se hodí v případě, že na dané stránce chcete získat jen některé konkrétní informace z Quida. Například jen jména a stavu dvou vstupů z celého Quida.
Skript slouží k porozumění způsobu, jak tyto údaje z Quida získat. Skript ke čtení používá DOMXpath.
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Stav vybraných I/O na Quidu</title> </head> <body> <?php $doc = new DomDocument(); //Kompletní adresa vedoucí ke XML v Quidu $doc->load("http://192.168.1.254/fresh.xml"); $doc->preserveWhiteSpace = false; $xpath = new DOMXpath($doc); $xpath->registerNamespace('x','http://www.papouch.com/xml/quido/act'); echo "<h1>Stav vybraných I/O na Quidu</h1>"; //V následujících řádcích se získává stav vstupů ("din") číslo ("id") 2 a 4 echo "<p>Vstup <b>" . $xpath->evaluate("string(//x:din[@id='2']/@name)") . "</b> má hodnotu " . $xpath->evaluate("string(//x:din[@id='2']/@val)") . "</p>"; echo "<p>Vstup <b>" . $xpath->evaluate("string(//x:din[@id='4']/@name)") . "</b> má hodnotu " . $xpath->evaluate("string(//x:din[@id='4']/@val)") . "</p>"; ?> </body> </html>
Výstupem PHP skriptu, který čte XML je tento stručný výpis.
Následující XML soubor je příkladem souboru fresh.xml z I/O modulu Quido ETH 4/4. Tento soubor slouží jako příklad pro čtení pomocí skriptů uvedených výše.
<?xml version="1.0" encoding="ISO-8859-1"?> <root xmlns="http://www.papouch.com/xml/quido/act"> <din id="1" name="Hall light" sts="0" val="0" pic="12" cmo="0" cnt="0" /> <din id="2" name="South Gate" sts="0" val="1" pic="17" cmo="0" cnt="0" /> <din id="3" name="Boxes counter" sts="0" val="0" pic="1" cmo="1" cnt="274" /> <din id="4" name="No name" sts="0" val="1" pic="3" cmo="3" cnt="28" /> <dout id="1" name="Klapka" sts="0" val="0" pic="7" mde="0" pars="" /> <dout id="2" name="Osvetleni haly" sts="0" val="1" pic="12" mde="0" pars="1;0;300;351;5" /> <dout id="3" name="Brana" sts="0" val="0" pic="10" mde="1" pars="0;0;0;0;5" /> <dout id="4" name="Chlazeni" sts="0" val="0" pic="16" mde="4" pars="2;0;405;452;6" /> <temp id="1" sts="0" val=" 12,6" th=" 30" tl=" -10" tenb="1" /> <status location="Storage C" unit="C" /> </root>
Výše uvedené příklady lze po mírné úpravě použít také pro čtení teploty z TME nebo TME multi, teploty, vlhkosti a rosného bodu z TH2E, analogových hodnot z AD4ETH nebo rychlosti a směru větru z TX20ETH. Použitý způsob je univerzální, takže se dá snadno upravit pro jakékoli naše zařízení, které poskytuje hodnoty ve formátu XML. V dokumentacích u našich zařízeních naleznete popisy parametrů a hodnot, které je možné z našich zařízení v XML získat. Na Vašem webu pak můžete plně využít potenciál údajů, které naše zařízení ve formátu XML poskytují.
Pokud máte nějaký námět na vylepšení výše uvedených skriptů nebo k nim máte jakýkoli dotaz, můžete se na nás obrátit například prostřednictvím níže uvedeného formuláře.