Web IO

Introduction

Les Web IO permettent de piloter ou de lire n’importe quel appareil qui expose une interface web : une API REST, une page d’état, un fichier JSON ou XML servi en HTTP.

C’est la solution de repli universelle. Quand un équipement n’a pas de pilote dédié dans Calaos mais qu’il est joignable par le réseau, il y a de bonnes chances de l’intégrer ainsi sans écrire une ligne de code.

Quelques usages typiques :

  • lire la production d’un onduleur solaire ou d’un compteur communicant ;
  • récupérer une donnée météo depuis un service en ligne ;
  • commander une prise connectée ou un module relais qui expose une API ;
  • interroger un appareil du réseau local qui publie son état en JSON.

Comment ça marche

Calaos interroge une adresse à intervalles réguliers, puis extrait la valeur qui l’intéresse à l’intérieur de la réponse.

L’extraction repose sur un chemin : dans un document JSON ou XML, il désigne où se trouve la donnée. Si votre appareil répond par exemple :

{ "sensors": { "outdoor": { "temp": 12.4, "humidity": 68 } } }

le chemin mène à temp à l’intérieur de sensors puis outdoor.

En sortie, le principe est symétrique : Calaos envoie une requête à l’adresse indiquée pour transmettre la nouvelle valeur.

Types d’IO supportés

En entrée — sonde de température, entrée analogique, entrée texte.

En sortie — lumière, lumière RVB, sortie analogique, sortie texte.

Paramètres

NomDescription
urlAdresse à interroger ou à appeler
pathEmplacement de la valeur dans le document reçu
file_typeFormat du document : JSON, XML, texte brut
request_typeMéthode de la requête HTTP
dataDonnées à envoyer, pour les sorties
data_typeFormat de ces données

Ces IO comptent parmi les plus souples de Calaos, et donc parmi les plus dépendantes de l’appareil visé. L’aide intégrée de Calaos Installer affiche la description exacte de chaque paramètre pour le type choisi — voir Créer des IO.

Avant de configurer

Commencez toujours par regarder ce que renvoie l’appareil. Ouvrez son adresse dans un navigateur, ou depuis le serveur :

curl http://adresse-de-l-appareil/api/status

Vous voyez alors la structure réelle de la réponse, et vous pouvez en déduire le chemin à renseigner. Sans cette étape, la configuration se fait à l’aveugle.

Choisir entre Web IO et MQTT

Les deux permettent d’intégrer un appareil non supporté nativement, mais ils ne se valent pas selon les cas.

Web IOMQTT
FonctionnementCalaos interroge l’appareilL’appareil publie ses changements
RéactivitéDépend de la fréquence d’interrogationImmédiate
À privilégier pourUne donnée qui évolue lentementUn état qui doit remonter tout de suite

Pour une température extérieure ou une production solaire, l’interrogation périodique convient parfaitement. Pour un détecteur d’ouverture, MQTT est nettement préférable : voir MQTT.

Évitez d’interroger trop fréquemment un service en ligne, sous peine de vous faire limiter ou bloquer. Pour une donnée météo, quelques minutes d’intervalle suffisent largement.

Diagnostic

Si aucune valeur ne remonte :

  1. l’adresse répond-elle depuis le serveur Calaos, avec curl ?
  2. le format déclaré correspond-il à ce que renvoie réellement l’appareil ?
  3. le chemin correspond-il à la structure de la réponse ? Une clé mal orthographiée renvoie une valeur vide.
  4. l’appareil demande-t-il une authentification que la requête ne fournit pas ?

Voir Journaux pour suivre les échanges côté serveur.