Entrée HTTP Virtuelle

Avec l'entrée HTTP virtuelle, les valeurs peuvent être lues à partir d'une page Web. Cela facilite la récupération des données à partir d'appareils dotés d'une interface Web.

À partir de la Loxone Library, le templates approprié pour l'intégration d'appareils peut être importé.

Seul le schéma d'authentification de base est pris en charge.

L'extraction automatique des données à partir de sites web (Web scraping) et toute utilisation ultérieure des données extraites doivent être effectuées conformément aux conditions de service du site web, aux réglementations locales et aux normes en vigueur.
Loxone n'assume aucune responsabilité pour les conséquences découlant du non-respect de ces conditions.

Table des matières


Propriétés

Résumé Description Unité Valeurs Valeur défaut
URL URL pour requête HTTP
Ex : http://192.168.1.7:80/request.php
https://192.168.1.7:443/request.php
- - -
Cycle d'interrogation Cycle d'interrogation en secondes (min 10s) s 10...604800 -
Timeout Durée d'attente dépassé pour la réception de message
Augmentez la durée pour les mauvaises connexions ou les appareils plus lents
ms 10...8000 -
Nombre de délais autorisés Nombre de requêtes ayant échoué avant qu'un message système ne soit affiché. La valeur 0 désactive la surveillance. - 0...100 -




Exemple de programmation

Tout d'abord, une « Entrée HTTP virtuelle » est créée sous Entrées virtuelles :

L'adresse Web, un cycle d'interrogation approprié, le délai d'attente et le nombre de délais d'attente autorisés sont définis dans la fenêtre des propriétés.
Dans cet exemple, la valeur de l'entrée "Température" est récupérée du Miniserveur à l'aide d'une commande de service Web. .
Si l'authentification de l'utilisateur est requise, le nom d'utilisateur et le mot de passe peuvent être saisis comme suit : http ://User :Password@IP-address

Commande d'entrée HTTP virtuelle

Pour extraire les valeurs de cette page, une « commande d'entrée HTTP virtuelle » est requise.
N'importe quel nombre de commandes peut être créé pour récupérer des valeurs.

Le modèle de recherche est défini dans les paramètres. Par conséquent, une fenêtre d'édition peut être ouverte, ici le code source du site Web est affiché pour faciliter la navigation jusqu'à la valeur souhaitée.

Cette entrée peut être déplacée vers la page de programmation par glisser-déposer.


Reconnaissance des commandes

La reconnaissance de commandes permet de naviguer dans un texte ou un texte source et de récupérer des valeurs.

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)

Dans l'exemple suivant, nous souhaitons toujours extraire le prix actuel du gaz naturel :

Étant donné que l'indication "Gaz naturel" est toujours la même, nous sautons à cette position dans le texte. Pour sauter l'indication de l'heure afin de récupérer le prix, plusieurs possibilités s'offrent à vous :

Variante 1 via \d\a
Avec les chiffres simples \d et les caractères simples \a peuvent être ignorés :

Variante 2 via \#\w
Avec \# un nombre et avec \w n'importe quel mot peut être sauté :

Variante 3 via \s8
Comme dans cet exemple l'heure aura toujours le même nombre de chiffres et de caractères, ils peuvent être sautés avec \s8 :