Virtuální HTTP vstup

Pomocí virtuálního HTTP vstupu lze načítat hodnoty z webové stránky. To usnadňuje načítání dat ze zařízení s webovým rozhraním.

Z Loxone Library lze importovat vhodné šablony pro integraci zařízení.

Podporováno je pouze Basic Authentication Scheme.

Automatizované získávání dat z webových stránek (web scraping) a jakékoli následné použití získaných dat by mělo být prováděno v souladu s podmínkami služby webových stránek, místními předpisy a platnými normami.
Loxone nenese odpovědnost za jakékoli důsledky vyplývající z nedodržení podmínek.

Obsah


Vlastnosti

Krátký popis Popis Jednotky Rozsah hodnot Výchozí hodnota
URL URL pro HTTP(S) dotazovací cyklus
např. http://192.168.1.7:80/request.php
https://192.168.1.7:443/request.php
- - -
Interval dotazování Dotazovací cyklus v sekundách (minimum 10s) s 10...604800 -
Timeout Timeout pro příchozí zprávy
Při pomalejších zařízeních nebo při špatném spojení nastavte vysokou hodnotu
ms 10...8000 -
Počet povolených timeoutů Počet neúspěšných dotazů před zobrazením systémové zprávy. Hodnota 0 deaktivuje monitorování. - 0...100 -




Příklad programování

Nejprve se v části Virtuální vstupy vytvoří "Virtuální HTTP vstup":

Webová adresa, vhodný cyklus dotazování, časový limit a počet povolených časových limitů jsou definovány v okně vlastností.
V tomto příkladu je hodnota vstupu "Teplota" načtena z Miniserveru pomocí příkazu webové služby.
Pokud je vyžadováno ověření uživatele, lze zadat uživatelské jméno a heslo takto: http://Uživatel:Heslo@IP-adresa

Virtuální vstup HTTP příkazu

Pro získání hodnot z této stránky je vyžadován "virtuální vstupní příkaz HTTP".
Pro získání hodnot lze vytvořit libovolný počet příkazů.

Vzor vyhledávání je definován v nastavení. Proto lze otevřít editační okno, kde se zobrazí zdrojový kód webové stránky, aby bylo možné snadněji přejít na požadovanou hodnotu.

Tento vstup lze přesunout na programovací stránku pomocí drag & drop.


Rozpoznání příkazu

Rozeznání příkazů lze použít k navigaci v textu nebo zdrojovém textu a k načítání hodnot.

Znaky použité k extrakci hodnoty:

\v = číselná hodnota

\1 = hodnota byte interpretovaná jako 1. byte výstupu (\2, \3, ...)

- Pokud jsou přijatá data interpretována jako hexadecimální (např. „\x0A“), získá se jejich desítkový ekvivalent (v tomto příkladu 10). Tato metoda funguje také pro více hexadecimálních bytů (např. „\x0A\x0B“). Po spojení těchto bytů vznikne 32bitové celé číslo 0x0A0B a \2\1 vrátí 2571 v desítkové soustavě. Stejná hodnota, extrahovaná pomocí \1, dává v desítkové soustavě hodnotu 10.

- Pokud jsou přijatá data interpretována jako text, představuje každý byte jeden znak ASCII. Například „Loxone“ odpovídá znaku Line Feed s kódem ASCII 76.

- The data can be used as a signed integer by considering the correct byte order and applying sign extension if necessary.

\h = hodnota interpretována jako hexadecimální číslo

- Pokud jsou přijatá data hexadecimálním řetězcem reprezentovaným jako text (např. „0A“), lze je převést na jejich desítkový ekvivalent (v tomto příkladu 10).

- Tato metoda funguje i pro vícenásobná hexadecimální data (např. „0A0B“). Při převodu z hexadecimálního na desítkový systém odpovídá „0A0B“ hodnotě 2571.



Znaky pro navigaci v textu:

\. = jakýkoli znak

\w = jakékoliv slovo

\# = jakékoliv číslo

\d = číslice 0-9

\m = znak A-Z/a-z/0-9

\a = znak A-Z/a-z

\s12 = přeskočit 12 znaků

- Například \s12 přeskočí 12 znaků, pokud jsou přijatá data textovým řetězcem.

- Pokud jsou přijatá data hexadecimálním řetězcem reprezentovaným escape sekvencemi (např. \xFE\xFF\x00\x12\xA0\xB0\xC1\xD2\xE3\xF4\x11\x16\x17), pak \s12 přeskočí 12 hexadecimálních bytů. V tomto případě se přeskočí za \x16, čímž se vynechá celkem 48 textových znaků (protože každý hexabyte je reprezentován čtyřmi textovými znaky).

\iText\i = skok za „Text“



Speciální znaky:

\x = Hexadecimální číslo (např. 0x09)

\\ = Lomítko

\t = Tab (0x09)

\b = Mezera(0x02) nebo Tab (0x09)

\r = Return (0x0d)

\n = Newline (0x0a)

V následujícím příkladu chceme vždy získat aktuální cenu zemního plynu:

Protože označení "Natural Gas" je vždy stejné, přejdeme v textu na tuto pozici. Chcete-li přeskočit časovou indikaci, aby se načetla cena, existují různé možnosti:

Varianta 1 přes \d\a
S \d jednotlivými číslicemi a s \a jednotlivými znaky lze přeskočit:

Varianta 2 přes \#\w
Pomocí \# lze vynechat číslo a pomocí \w libovolné slovo:

Varianta 3 pomocí \s8
Protože v tomto příkladu bude mít čas vždy stejný počet číslic a znaků, lze je pomocí \s8 vynechat: