A Virtuális HTTP Bemenet-tel, értékeket lehet kiolvasni egy weboldalról. Ez megkönnyíti az adatok lekérdezését a webes felülettel rendelkező eszközökről.
A Loxone Library-ről megfelelő sablonokat lehet beszerezni eszközök integrációjához.
Csak a Basic Authentication Scheme támogatott.
![]() |
A weboldalakról történő automatikus adatnyerést (Web scraping) és a kinyert adatok későbbi felhasználását a weboldal szolgáltatási feltételeinek, a helyi szabályozásoknak és az alkalmazandó szabványoknak megfelelően kell végezni. A Loxone nem vállal felelősséget az előírások be nem tartásából eredő következményekért. |
Tartalom
Tulajdonságok↑
Rövid leírás | Leírás | Mértékegység | Értékhatár | Alapértelmezett érték |
---|---|---|---|---|
URL | HTTP lekérdezés URL címe pl.: http://192.168.1.7:80/request.php https://192.168.1.7:443/request.php |
- | - | - |
Lekérdezési ciklus | Lekérdezési gyakoriság másodpercben (minimum 10s) | s | 10...604800 | - |
Időtúllépés | Időtúllépés határértéke Lassú eszközök illetve rossz adatkapcsolat esetén emeld meg az értéket |
ms | 10...8000 | - |
Időtúllépések maximális száma | A sikertelen lekérdezések száma, ami felett a rendszer hibajelzést küld. 0 értékkel a szolgáltatás kikapcsolható. | - | 0...100 | - |
Programozási példa↑
Előszőr, a Virtuális HTTP Bemenetet létre kell hozni a Virtuális bemenetek alatt:
A webcímet, egy megfelelő lekérdezési ciklust, időkorlátot és a megengedett időkorlátok számát a beállítások ablakban lehet meghatározni.
Ebben a példában a "Hőmérséklet" bemenet értékét a Miniserverről egy webservice parancs segítségével kérik le.
$Ha felhasználói hitelesítésre van szükség, a felhasználónév és jelszó a következőképpen adható meg: http://User:Password@IP-cím
Virtuális HTTP Bemenet Parancs
Annak érdekében hogy adatot nyerj ki az oldalról "Virtuális HTTP Bemenet Parancs" szükséges.
Az értékek lekérdezésére tetszőleges számú parancs hozható létre.
A keresési mintát a beállításokban lehet meghatározni. Ezért megnyitható egy szerkesztőablak, itt megjelenik a weboldal forráskódja, hogy könnyebben el lehessen navigálni a kívánt értékhez.
A bemenetet a programozó oldalra lehet mozgatni drag & drop-pal.
Parancsfelismerés↑
A parancsfelimerést szövegben, forráskódban való navigáláshoz vagy érték kinyerésére használhatjuk.
Érték kinyeréséhez használt karakterek:
\v = számos érték
\1 = a kimenet 1. bájtjaként értelmezett bájt értéke (\2, \3, ...)
- Ha fogadott adat hexadecimáliskét van értelmezve (pl.: "\x0A"), a decimális egyenértéket (ebben a példában 10) kapjuk. Ez a módszer működik több hexadecimális bájt esetén is (pl.:"\x0A\x0B"). Ezek a bájtok együttesen a 0x0A0B 32 bites egész számot alkotják, és \2\1, akkor 2571 decimális értéket kapjuk. Ugyan ez az érték, ha \1 -et használunk, a 10-es decimális értéket adja vissza.
- Ha a fogadott adat szövegként van értelmezve, minden bájt egy ASCII karaktart jelent. Például a „Loxone” a szöveg első nagy "L" betűje a 76-os ASCII-kódú karaktert jelenti.
- Az adatok előjeles egész (signed integer) számként használhatók a helyes bájtsorrend figyelembevételével és szükség esetén előjelkiterjesztéssel.
\h = hexadecimális számként értelmezett érték
- Ha a fogadott adat egy hexa karakterlánc, amelyet szövegként ábrázolnak (pl. „0A”), akkor az átkonvertálható a decimális megfelelőjére (ebben a példában 10).
- Ez a módszer több hexa adat esetén is működik (pl. „0A0B”). Hexából decimálisra konvertálva a „0A0B” 2571-nek felel meg.
Szövegben való navigáláshoz használt karakterek:
\. = bármilyen karakter
\w = bármilyen szó
\# = bármilyen szám
\d = digitek 0-9
\m = karakter A-Z/a-z/0-9
\a = karakter A-Z/a-z
\s12 = kihagy 12 karaktert
- Például.: \s12 kihagy 12 karaktert, ha a fogadott üzenet szöveges üzenet.
- Ha a fogadott adat egy hexa karakterlánc, amelyet escape-szekvenciákkal ábrázolunk (pl. \xFE\xFF\x00\x12\xA0\xB0\xC1\xD2\xE3\xF4\x11\x16\x17), akkor a \s12 12 hexa bájtot fog kihagyni. Ebben az esetben \x16 mögé fog ugrani, és így összesen 48 szövegkaraktert fog kihagyni (mivel minden hexa bájtot négy szövegkarakter képvisel).
\iText\i = ugrás a szöveg mögé"Text"
Speciális karakterek:
\x = Hexadecimális szám (pl.: 0x09)
\\ = Slash
\t = Tab (0x09)
\b = Space (0x02) vagy Tab (0x09)
⧵r = Return (0x0d)
⧵n = Newline (0x0a)
A következő példában, a gáz aktuális árát szeretnénk kinyerni:
Miután a "Natural Gas" egy állandó, ezért ehhez a pozícióhoz tudunk ugrani a szövegben. Az aktuális ár kinyeréséhez, ki kell hagynunk az időt. Itt több megoldás is van:
1. Megoldás: \d\a használata
A \d segítségével egy digitet és a \a-val egy karaktert tudunk kihagyni:
2. Megoldás: \#\w használata
A \# segítségével egy számot és a \w-vel egy szót tudunk kihagyni:
3. Megoldás: \s8 használata
Miután a példában az idő minden esetben ugyan annyi számból és digitből fog állni, ezért ki lehet őket hagyni a \s8 segítségével: