Entrées virtuelles HTTP

Loxone Musterkoffer

Introduction

Avec les entrées HTTP virtuelles vous pouvez lire les valeurs directement depuis un site web ou un fichier XML. Ainsi, les requêtes de données sur un appareil à interface web est beaucoup plus facile, car il n'est plus nécessaire d'utiliser le PicoC. 

Possibilités: commandes de chauffage, système PV, applications multimédias, ...

Configurer une entrée virtuelle HTTP

Pour ajouter une entrée virtuelle HTTP, veuillez cliquer sur "Entrée Virtuelle" dans l'arborescence périphérique. Puis dans le menu en haut à droite, cliquez sur "Entrée virtuelle HTTP".

 

Dans les propriétés de l'entrée virtuelle HTTP reportez le protocole, l'adresse et le port ainsi que le cycle d'interrogation de l'appareil avec lequel on désire communiquer.

Dans notre exemple nous souhaitons recupérer une valeur de façon cyclique depuis un site web. Pour plus de simplicité, nous utilisons un autre Miniserver, mais cela fonctionne avec n'importe quel appareil de la même manière.

Lorsqu'une authentification est nécessaire, nous pouvons renseigner l'adresse et le mot de passe de la façon suivante:

http://UTILISATEUR:MOTDEPASSE@ADRESSE-IP

Dans notre exemple nous nous connectons à l'adresse IP 192.168.0.17 avec l'utilisateur "benutzer" et le mot de passe "passwort".

./dev/sps/io/Test/state est la commande webservice pour la requête de statut d'une entrée d'un Miniserver.

Commande HTTP Virtuelle

Pour l'instant la page web est rechargée toute les 10 secondes. Cependant, afin d'être capable de lire une valeur, nous devons maintenant ajouter une commande HTTP virtuelle.

Sélectionnez votre entrée virtuelle HTTP dans l'arborescence périphérique et vous verez ainsi apparaitre dans le menu en haut à droite le bouton "Commande HTTP Virtuelle". Celle ci s'ajoutera au document avec un clic.

Avant que nous puissions configurer la commande HTTP, et la reconnaissance de commande, nous avons besoin de savoir comment le site à partir duquel nous voulons interroger les données est structuré.

Pour ce faire, nous allons simplement sur la page à partir d'un navigateur.

Comme on le voit dans la capture d'écran ci dessous, la valeur que nous souhaitons intérroger est à côté de value=".

Ceci est important pour la reconnaissance de commande.

Nous allons donc y mettre: value="\v

Cela signifie Prend la valeur texte (\v), qui se situe après value=" . 

 

Une erreur courante consiste à utiliser \1 au lieu de \v. Sur les sites les chiffres sont souvent dépeints comme un seul caractère ASCII. La valeur ASCII, cependant, est 38 plus la valeur réelle. Par exemple, 3 serait interprété comme le nombre 41.

Voici le résultat de notre exemple:

Toutes les 10 secondes, le Miniserver avec l'adresse IP 192.168.0.17, est interrogé sur la valeur de son entrée.

Reconnaissance de commande avancée

La reconnaissance de commande nous offre de nombreuses possibilités:

\v Valeur texte: toutes les valeur de la table ASCII sont acceptée. Les décimales doivent être séparées par une virgule ou un point.
\1 La valeur numérique des octets reçus est copié dans la sortie comme un octet significatif (LSB) (Bits 0 - 7).
\2 La valeur numérique des octets reçus sera prise en bits 8-15 à la sortie.
\3 La valeur numérique des octets reçus sera prise en bits 16-23 à la sortie.
\4 La valeur numérique des octets reçus sera prise en bits les plus signifiant à la sortie (MSB)  (Bits 24 - 31).
\h Valeur texte hexa: D'une table ASCII, la valeur est définie et affichée en hexadécimal.
\x Hexadezimal Ex. \x09 für 0x09
\\ \ (Backslash)
\. N'importe quel caractère
\w N'importe quel mot
\# N'importe quel nombre
\t Tabulation (0x09)
\b Tabulation (0x09) ou espace (0x20)
\r Retour à la ligne (0x0D)
\n Sauter une ligne (0x0A)
\d N'importe quel chiffre (0-9)
\m N'importe quel lettre (A-Z,a-z) ou N'importe quel chiffre (0-9)
\a N'importe quel lettre (A-Z,a-z)
\s12 sauter 12 caractères (\s17 = saute 17 caractères)
\ixxx\i Sauter au texte xxx Ex.: \ivalue\i saute jusqu'a value

Il est possible d'utiliser plusieurs reconnaissance de commande dans une seule commande.