Piloter une IPX800 V3 à partir de l'IPX800 V4
| |||
---|---|---|---|
Nom | Pilotage d'une V3 | ||
Famille | IPX800 V4 | ||
Wiki créé le | 03/04/2018 | ||
Wiki mis à jour le | 05/04/2018 | ||
Auteur | fgtoul |
Présentation
L'IPX800 V4 offre la possibilité de visualiser l'état des entrées digitales, des relais ou encore des entrées analogiques, en provenance d'une IPX800 V3. Pour cela, vous avez plusieurs outils à votre disposition
- la source de données
- le widget Indicateurs IPX800V3
- le widget Pilotage V3
- PUSH
- Scénarios
Les deux IPX800 pourront interagir grâce à leurs commandes API respectives
Ajout d'une Source de données IPX800 V3
Pour afficher les données d'une IPX800 V3 sur l'interface d'une IPX800 V4, il faut créer une source de données sur le dashboard.
- Cliquez sur le menu Ajouter Source de données
- Sélectionnez le type X-Devices (XML)
Renseignez
- le nom,
- l'adresse IP de l'IPX800 V3 (*),
- le login (utilisateur/mot de passe) nécessaire à la connexion sur l'IPX800 V3.
- le délai de mise à jour (rafraîchissement).
Validez et sauvegardez l'interface de l'IPX800 V4.
Si tout est correct, la source de données se met à jour automatiquement, en fonction du délai de rafraîchissement paramétré (1 seconde dans notre cas).
Note : Si vous devez accéder à l'IPX800 V4 depuis internet, il faut que l'IPX800 V3 soit également accessible depuis internet. Vous avez alors plusieurs possibilités en fonction de votre mode de connexion : 1. Vous vous connectez au travers d'une redirection de port vers l'IPX800 V4, avec votre adresse publique :
Vous devez créer la source de données avec une adresse publique. 2. Vous vous connectez à l'IPX800 V4 par VPN.
L'adresse locale de l'IPX800 V3 peut être utilisée sans problème lors de la création de la source de données. Il va de soit que nous conseillons fortement la connexion par VPN. Pour plus d'informations, je vous invite à consulter le wiki concernant la connexion distante.
Ajouter un Widget Indicateur V3
Le widget indicateur IPX800 V3 permet de visualiser l'état des entrées digitales ou des sorties relais de l'IPX800 V3.
Ce widget ne permet pas de changer leur état.
- Ajoutez un widget Indicateurs IPX800V3 sur votre interface
- cliquez sur le bouton Flux de données
- recherchez les relais de l'IPX800 V3 dans la source de données que vous avez créée précédemment.
Les sorties relais sont nommées led0 à led31. Les entrées digitales sont nommées btn0 à btn31.
Voici le widget affiché dans l'interface de l'IPX800 V4. Dans notre exemple, le relais n°6 est à l'état ON.
Remarque : vous noterez que dans le flux de données, les Relais 1 à 32 sont nommés led0 à led31 et les entrées digitales btn0 à btn31.
Pour plus d'informations, je vous invite à afficher le contenu du fichier Status.xml de votre IPX800 V3.
Dans un navigateur, entrez l'URL http://IPX800_V3/status.xml
Au besoin, remplacez IPX800_V3 par son adresse IP et le port si vous l'avez modifié. Le Mot de passe de l'IPX800 V3 vous sera demandé.
Ajouter un widget TEXTE avec donnée de la V3
L'IPX800 V3 contient des données de type Texte :
- version du firmware
- le nom d'hôte de l'IPX800 (Hostname)
- l'adresse MAC
- date / heure
- information
- Les réponses au ping,
- etc.
Il est possible d'afficher ces informations sur l'interface de l'IPX800 V4.
Pour cela, ajoutez un widget de type Texte,
cliquez sur le bouton Flux de Données et sélectionnez la variable à afficher.
Dans notre exemple ci-dessous, nous afficherons la version du Firmware.
Voici le widget affiché :
Remarque : Pour plus d'informations sur les données pouvant être affichées, je vous invite à consulter le fichier GlobalStatus.xml de votre IPX800 V3.
Dans votre navigateur, entrez l'URL http://IPX800_V3/globalstatus.xml
Afficher une donnée analogique de la V3
Les sources de données connectées à l'IPX800 V3 remontent les valeurs analogiques sous la forme de données brutes. La formule de conversion liée au type de capteur n'est pas appliquée.
Si nous souhaitons afficher ce type de donnée, il faudra nécessairement appliquer la formule dans un javascript.
Remarque : Les formules nécessaires à l'affichage des données analogiques V3 sur une IPX800 V4 sont fournies dans le HelpDesk.
Afficher une donnée analogique de la V3 avec une JAUGE
Ajoutez un widget de type JAUGE cliquez sur le bouton Flux de données et recherchez la donnée analogique (dans l'exemple, nous choisissons l'entrée n°4)
Si vous sauvegardez le widget, vous obtiendrez la valeur brute
Il faut donc appliquer la formule de conversion.
Dans le cas de notre exemple, il s'agit d'une sonde TC100 plongée dans l'eau de la piscine (avec un traitement étanche).
La formule de la sonde est ((X* 0.00323) - 0.25) / 0.028
Dans la configuration de la jauge,
- cliquez sur le bouton JAVASCRIPT
- transformez la datasource en variable et appliquez la formule,
- ajoutez une commande return
Exemple de code Javascript :
var t=datasources["ipx800 v3"]["response"]["analog3"]; t=(((t* 0.00323) - 0.25) / 0.028).toFixed(1); return t;
Sauvegardez le Widget et l'interface IPX800 V4
Voici le widget adapté à la sonde
Afficher une donnée analogique de la V3 avec HTML
Pour afficher une donnée analogique en provenance de l'IPX800 V3, vous pouvez utiliser le widget HTML et insérer un petit script Javascript. La démarche est identique à l'exemple précédent avec la JAUGE.
- Ajoutez un widget de type HTML
- Cliquez sur le bouton FLUX DE DONNEES et sélectionnez la donnée
- Cliquez sur le bouton JAVASCRIPT
- transformez la datasource en variable
- appliquez la formule
- ajoutez le code HTML
Exemple de Javascript retournant du HTML :
var t=datasources["ipx800 v3"]["response"]["analog3"]; t=(((t* 0.00323) - 0.25) / 0.028).toFixed(1); return ` <span> Température eau piscine : ${t}°C</span> `;
Voici le widget pour notre sonde.
L'exemple est minimaliste pour la bonne compréhension. Mais vous pouvez agrémenter le widget avec des icônes et du style CSS.
Piloter une V3 avec un widget "Pilotage V3"
L'IPX800 V4 permet de piloter les sorties de l'IPX800 V3.
A votre disposition, vous trouverez un widget de type "Pilotage V3".
C'est un widget avancé, présenté sous la forme d'un bouton, qui envoie un ordre grâce à l'API de la V3, et récupère un retour d'état au travers d'une source de données.
Ajoutez un widget de type Pilotage V3
- renseignez le texte qui doit apparaître lorsque le retour d'état est "ON"
- renseignez le texte qui doit apparaître lorsque le retour d'état est "OFF"
- renseignez l'adresse IP de l'IPX800 V3
- renseignez utilisateur et mot de passe de connexion sur la V3
- cliquez sur le bouton FLUX DE DONNEES et sélectionnez la donnée qui sera à l'origine du retour d'état. En principe, vous devriez sélectionner le relais que vous souhaitez piloter.
- sélectionnez le relais à piloter
- laissez le contrôle à OUI pour piloter le relais, mettez NON si vous souhaitez juste avoir un indicateur.
Voici le widget en action
Piloter une V3 par PUSH
Le widget Pilotage V3 (ci-dessus) ne permet de piloter que les relais de l'IPX800 V3.
Si vous souhaitez exécuter d'autres tâches sur la V3 à partir de l'interface de l'IPX800 V4, il faut utiliser un widget de type PUSH qui enverra une commande API Http.
Supposons que nous voulons forcer une valeur dans un compteur de l'IPX800 V3.
- ajoutez un widget de type PUSH URL
Dans le champ "MESSAGE", renseignez la commande API HTTP de l'IPX800 V3.
Ici, nous sélectionnons le compteur n°4 (num=3) et nous lui forçons la valeur 0.
Voici le widget affiché :
Cliquez sur le bouton, le compteur 4 sera remis à zéro sur l'IPX800 V3.
Remarque : L'API V3 est riche de plusieurs autres commandes.
Je vous invite à lire la documentation intitulée "IPX API". Elle est fournie avec le firmware de la V3, en téléchargement ici.
Piloter une V3 par scénarios sur IPX800 V4
pour piloter la V3 à partir des scénarios V4 ==> PUSH avec API V3
Activer une Entrée Digitale sur l'IPX800 V3
Nous voulons piloter une entrée digitale sur l'IPX800 V3, en fonction d'un évènement se produisant sur l'IPX800 V4.
Pour évènement sur l'IPX800 V4, nous prendrons l'exemple d'une sortie virtuelle changeant d'état logique.
Nous devons d'abord créer un preset pour le Push qui sera envoyé par le scénario.
Dans l'API V3, la commande à utiliser pour piloter une entrée digitale est http://IPX800_V3/leds.cgi?led=x avec 100 <= x <= 131.
Nous prendrons notre exemple avec l'entrée digitale n°26 (n°125 pour l'API).
Dans le menu Administrateur/Périphériques, créez un preset PUSH
- renseignez l'adresse IP de l'IPX800 V3
- renseignez l'identifiant si l'accès à l'IPX800 V3 est protégé
- renseignez l'URL ON qui sera utilisée lorsque l'évènement sur IPX800 V4 sera VRAI (sortie virtuelle ON dans notre cas)
- renseignez l'URL OFF qui sera utilisée lorsque l'évènement sur IPX800 V4 sera FAUX (sortie virtuelle OFF dans notre cas)
Sauvegardez.
Maintenant, écrivons la scène qui pilote l'IPX800 V3 en fonction de la sortie virtuelle n°2 de l'IPX800 V4.
scène :
Piloter un Relais sur l'IPX800 V3
De la même manière que précédemment, nous voulons piloter un relais de l'IPX800 V3 en fonction de l'état logique d'une sortie virtuelle sur IPX800 V4.
Nous prendrons le relais n°20 sur l'IPX800 V3 et la sortie virtuelle n°3 sur l'IPX800 V4.
Créons d'abord un preset pour le PUSH sur l'IPX800 V4 :
- renseignez l'adresse IP de l'IPX800 V3
- renseignez l'identifiant si l'accès à l'IPX800 V3 est protégé
- renseignez l'URL ON qui sera utilisée lorsque l'évènement sur IPX800 V4 sera VRAI (sortie virtuelle ON dans notre cas)
- renseignez l'URL OFF qui sera utilisée lorsque l'évènement sur IPX800 V4 sera FAUX (sortie virtuelle OFF dans notre cas)
Créons la scène qui pilote le relais en fonction de l'état de la sortie virtuelle n°3
Utiliser une donnée analogique de l'IPX800 V3 dans les scénarios
Imaginons que vous souhaitez recevoir un SMS lorsque la température de l'eau de la piscine descend sous un seuil défini à 2°C.
Supposons que la température est mesurée par une sonde de type TC100 connectée à l'IPX800 V3.
Nous pouvons procéder de 2 façons différentes.
- méthode 1 : nous définissons les seuils haut et bas sur l'IPX800 V3,
puis nous envoyons un message par notification à la V4 lorsque l'un des seuils est franchi.
Le message active une entrée virtuelle qui conditionne l'éxécution d'un ou plusieurs scénarios. - méthode 2 : nous remontons la valeur analogique sur la V4, nous traitons les seuils directement dans le moteur de scénarios.
Nous choisirons la méthode 2 en raison d'une puissance accrue par le traitrement sur l'IPX800 V4 (possibilité de définir plusieurs seuils hauts ou bas, etc.)
Remontée de la valeur analogique vers IPX800 V4
Nous allons programmer l'IPX800 V3 pour qu'elle nous envoie la température de l'eau toutes les 10 minutes par exemple.
Paramétrons la fonction Push on time.
- renseignez l'adresse IP de l'IPX800 V4
- décochez la case Enable (Send data on Event)
- renseignez un intervalle de 10 minutes
- renseignez l'URL de l'API V4
A partir de l'IPX800 V3, nous envoyons une valeur analogique sur l'IPX800 V4. Nous devons donc utiliser une commande de l'API V4.
Pour enregistrer une valeur analogique dans une entrée analogique virtuelle, la commande est SetVAxx avec xx représentant le numéro de l'entrée analogique virtuelle.
exemple : envoi de la valeur de l'entrée analogique n°4 (utilisation de l'étiquette $A4. Voir doc API) vers l'entrée analogique virtuelle n°12
/api/xdevices.json?key=apikey&SetVA12=$A4
N'oubliez pas d'inclure l'API key si vous l'avez mise en place pour protéger l'accès à votre IPX800 V4.
Pour le moment, vous remontez une valeur brute de la donnée analogique.
Il faut donc renseigner la formule du capteur sur l'entrée analogique virtuelle.
Dans le menu administrateur/périphériques, paramétrons notre entrée analogique virtuelle n°12.
Nous lui appliquerons les formules de notre capteur TC100.
NB : Il faut choisir le type "Personnalisé" afin d'appliquer les formules compatibles V3.
Si vous choisissez le type TC100 Sensor, cela appliquera les formules compatibles V4. La conversion sera fausse.
Utilisation dans un scénario
Maintenant que la température de l'eau est parvenue jusqu'à l'IPX800 V4, il ne reste plus qu'à l'utiliser dans un scénario.
Créons une scène qui envoit un SMS lorsque la température descend sous le seuil bas de 1°C.
Pour la création du preset SMS, je vous invite à consulter la documentation de l'IPX800 V4.
Remarque : si vous utilisiez déjà la fonction Push on time pour l'envoi des données sur notifix par exemple, vous pourrez toujours déporter l'envoi des notifications à partir de l'IPX800 V4.
Utiliser un évènement de l'IPX800 V3 dans les scénarios
Nous avons la piossibilité d'intercepter un évènement survenant sur l'IPX800 V3 afin d'exécuter une tâche sur IPX800 V4.
Chaque entrée et sortie présente sur l'IPX800 V3 propose la fonction PUSH sur changement d'état. Il suffit alors d'envoyer une commande API V4 vers l'IPX800 V4.
Exemple : activons et désactivons l'entrée virtuelle n°20 sur l'IPX800 V4, en fonction de l'état du relais 8 sur l'IPX800 V3.
Nous utiliserons les commandes SetVI=020 et ClearVI=020 pour activer/désactiver notre entrée virtuelle sur l'IPX800 V4.
Maintenant que notre entrée virtuelle n°20 prend le même état logique que le relais 8 de l'IPX800 V3, il ne reste plus qu'à écrire une scène pour déclencher l'action sur l'IPX800 V4.
Scène : Evènement : [Entrée Virtuelle 20] Action : [ON/OFF] Résultat : ce que vous voulez
Ressources à consulter
valeurs analogiques de l'IPX800 V3 au sein de la V4
Accès aux éléments V3 dans les scénarios V4
Doc API V3
Doc API V4