Virtuális HTTP bemenet

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: