Dzięki wirtualnemu wejściu HTTP wartości można odczytać ze strony internetowej. Ułatwia to pobieranie danych z urządzeń wyposażonych w interfejs WWW.
Z biblioteki Loxone Library można importować odpowiednie szablony do integracji urządzeń.
Obsługiwany jest tylko podstawowy schemat uwierzytelniania.
Automatyczne pobieranie danych ze stron internetowych (Web scraping) i wszelkie późniejsze wykorzystanie wyodrębnionych danych powinno odbywać się zgodnie z warunkami korzystania z witryny internetowej, lokalnymi przepisami i obowiązującymi normami. Loxone nie ponosi odpowiedzialności za jakiekolwiek powstałe konsekwencje z nieprzestrzegania. |
Spis treści
Właściwości↑
Krótki opis | Opis | Jednostka | Zakres wartości | Wartość standardowa |
---|---|---|---|---|
URL | URL dla zapytań HTTP(S) Np.: http://192.168.1.7:80/request.php https://192.168.1.7:443/request.php |
- | - | - |
Cykl odpytywania | Okres odpytywania w sekundach (minimalnie 10s) | s | 10...604800 | - |
Timeout | Przekroczenie czasu (timeout) dla odbierania wiadomości Zwiększ w wypadku powolnych urządzeń lub złego połączenia |
ms | 10...8000 | - |
Liczba dozwolonych limitów czasu | Liczba nieudanych zapytań przed wyświetleniem komunikatu systemowego. Wartość 0 wyłącza monitorowanie. | - | 0...100 | - |
Przykład programowania↑
Najpierw w obszarze Wejścia wirtualne tworzone jest „Wirtualne wejście HTTP”:
Adres internetowy, odpowiedni cykl odpytywania, limit czasu i liczba dozwolonych limitów czasu są zdefiniowane w oknie właściwości.
W tym przykładzie wartość wejścia „Temperatura” jest pobierana z Miniservera za pomocą polecenia usługi internetowej .
Jeśli wymagana jest autoryzacja użytkownika, nazwę użytkownika i hasło można wprowadzić w następujący sposób: http://Użytkownik:Hasło@adres IP
Wirtualne wejście HTTP rozkaz
Aby wyodrębnić wartości z tej strony, wymagane jest „Wirtualne wejście HTTP rozkaz”.
Można utworzyć dowolną liczbę poleceń w celu pobrania wartości.
Wzorzec wyszukiwania jest definiowany w ustawieniach. W związku z tym można otworzyć okno edycji, w którym wyświetlany jest kod źródłowy strony internetowej, aby ułatwić nawigację do żądanej wartości.
Dane wejściowe można przenieść na stronę programowania poprzez przeciągnięcie i upuszczenie.
Rozpoznawanie poleceń↑
Rozpoznawanie poleceń może być wykorzystywane do nawigacji w tekście lub tekście źródłowym oraz do pobierania wartości.
Znaki używane do wyodrębnienia wartości:
\v = wartość liczbowa
\1 = wartość bajtu interpretowanego jako pierwszy bajt wyjścia (\2, \3, ...)
- Jeśli odebrane dane są interpretowane jako szesnastkowe (np, "\x0A"), uzyskiwany jest dziesiętny odpowiednik (10 w tym przykładzie). Ta metoda działa również w przypadku wielu bajtów szesnastkowych (np. "\x0A\x0B"). Po połączeniu te bajty tworzą 32-bitową liczbę całkowitą 0x0A0B, a \2\1 zwraca 2571 w systemie dziesiętnym. Ta sama wartość, po wyodrębnieniu za pomocą \1, daje 10 w zapisie dziesiętnym.
- Jeśli odebrane dane są interpretowane jako tekst, każdy bajt reprezentuje znak ASCII. Na przykład "Loxone" odpowiada znakowi Line Feed o kodzie ASCII 76.
- Dane mogą być używane jako liczba całkowita ze znakiem, biorąc pod uwagę prawidłową kolejność bajtów i stosując rozszerzenie znaku, jeśli to konieczne.
\h = wartość interpretowana jako liczba szesnastkowa
- Jeśli odebrane dane są ciągiem szesnastkowym reprezentowanym jako tekst (np. "0A"), można go przekonwertować na jego dziesiętny odpowiednik (10 w tym przykładzie).
- Ta metoda działa również w przypadku wielu danych szesnastkowych (np. "0A0B"). Po przekonwertowaniu z szesnastkowego na dziesiętny, "0A0B" odpowiada 2571.
Znaki do nawigacji po tekście:
\. = dowolny znak
\w = dowolne słowo
\# = dowolna liczba
\d = cyfry 0-9
\m = znak A-Z/a-z/0-9
\a = znak A-Z/a-z
\s12 = pomiń 12 znaków
- Na przykład, \s12 pomija 12 znaków, gdy odebrane dane są ciągiem tekstowym.
- Jeśli odebrane dane są ciągiem szesnastkowym reprezentowanym przez sekwencje specjalne (np, \xFE\xFF\x00\x12\xA0\xB0\xC1\xD2\xE3\xF4\x11\x16\x17)wtedy \s12 pominie 12 bajtów szesnastkowych. W tym przypadku przeskoczy za \x16, efektywnie pomijając łącznie 48 znaków tekstowych (ponieważ każdy bajt szesnastkowy jest reprezentowany przez cztery znaki tekstowe).
\iText\i = przeskocz za "Text"
Znaki specjalne:
\x = liczba szesnastkowa (np.g. 0x09)
\ = Ukośnik
\t = Tab (0x09)
\b = Spacja (0x02) lub Tab (0x09)
\r = Return (0x0d)
\n = Nowa linia (0x0a)
W poniższym przykładzie zawsze chcemy pozyskać aktualną cenę gazu ziemnego:
Ponieważ wskazanie "Gaz ziemny" jest zawsze takie samo, przeskakujemy do tej pozycji w tekście. Aby pominąć wskazanie czasu i mieć możliwość odtworzenia ceny, istnieją różne możliwości:
Wariant 1 przez \d\a
Za pomocą \d pojedyncze cyfry i z \a pojedyncze znaki mogą być pominięte:
Wariant 2 przez \#
Za pomocą \# liczby, a za pomocą \w dowolne słowa można pominąć:
Wariant 3 przez \s8$
Ponieważ w tym przykładzie czas będzie miał zawsze taką samą liczbę cyfr i znaków, można je pominąć za pomocą \s8: