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 használni lehet szövegben vagy forrsásszövegben való navigálásra vagy értékek lekérdezésére.
Characters used to extract a value:
\v = numeric value
\1 = value of byte interpreted as 1st byte of the output (\2, \3, ...)
- If the received data is interpreted as hexadecimal (e.g., "\x0A"), we obtain its decimal equivalent (10 in this example). This method also works for multiple hexadecimal bytes (e.g., "\x0A\x0B"). When combined, these bytes form the 32-bit integer 0x0A0B, we can use \2\1 which equals 2571 in decimal. When we will read the same value with \1, result will be 10 in decimal.
- If the received data is interpreted as text, each byte represents an ASCII character. For instance, "Loxone" corresponds to the Line Feed character with an ASCII code of 76.
- The data can be used as a signed integer by considering the correct byte order and applying sign extension if necessary.
\h = value interpreted as hexadecimal number
- If the received data is a hex string represented as text (e.g., "0A"), we can convert it to its decimal equivalent (10 in this example).
- This method also works for multiple hex data (e.g., "0A0B"). When converted from hex to decimal, "0A0B" corresponds to 2571.
Characters to navigate through the text:
\. = any character
\w = any word
\# = any number
\d = digits 0-9
\m = character A-Z/a-z/0-9
\a = character A-Z/a-z
\s12 = skip 12 characters
- For example, \s12 skips 12 characters when the received data is a text string.
- If the received data is a hex string represented with escape sequences (e.g., \xFE\xFF\x00\x12\xA0\xB0\xC1\xD2\xE3\xF4\x11\x16\x17), then \s12 will skip 12 hex bytes. In this case, it will jump behind \x16, effectively skipping a total of 48 text characters (since each hex byte is represented by four text characters).
\iText\i = jump behind "Text"
Special characters:
\x = Hexadecimal number (e.g. 0x09)
\\ = Slash
\t = Tab (0x09)
\b = Space (0x02) or Tab (0x09)
\r = Return (0x0d)
\n = Newline (0x0a)
A következő példában mindig a földgáz aktuális árát szeretnénk kinyerni:
Mivel a "Földgáz" megjelölés mindig ugyanaz, ezért a szövegben erre a pozícióra ugrunk. Az időjelzés kihagyására az ár lekérdezése érdekében több lehetőség is van:
Az 1. változat \d\a
az \d egydigites és az \a egykarakteres változatokon keresztül kihagyható:
A 2. variáns \#\w
egy \# számmal és \w bármely szóval kihagyható:
A 3. variáns \s8
Mivel ebben a példában az idő mindig ugyanannyi számjegyet és karaktert tartalmaz, ezek a \s8 segítségével kihagyhatók: