Piloter une IPX800 V3 à partir de l'IPX800 V4

De GCE Electronics
Aller à la navigation Aller à la recherche

Pilotage d'une V3

V4 V3 Interoperabilite2.png
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

Les deux IPX800 pourront interagir grâce à leurs commandes API respectives

Ajouter 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)

V4 datasourceV3b.png

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.


V4 IndicateurV3.png

Voici le widget affiché dans l'interface de l'IPX800 V4. Dans notre exemple, le relais n°6 est à l'état ON.

V4 IndicateurV3widget2.png

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.

V4 TexteV3widgetb.png

Voici le widget affiché :

V4 TexteV3widget2b.png

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) V4 JaugeV3widgetb.png

Si vous sauvegardez le widget, vous obtiendrez la valeur brute

V4 JaugeV3widget2.png

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

V4 JaugeV3widget3.png

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.

V4 HTMLV3widget2.png

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.

V4 PilotageV3.png

Voici le widget en action

V4 PilotageV3b.png V4 PilotageV3c.png

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.

V4 PUSHV3widget.png

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é :

V4 PUSHV3widget2.png

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 (rubrique téléchargement après authentification).

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)

V4 PushED.png

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 :

V4 PushEDscene.png

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)


V4 PushRLY.png

Créons la scène qui pilote le relais en fonction de l'état de la sortie virtuelle n°3

V4 PushRLYscene.png

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.

  • Server : renseignez l'adresse IP de l'IPX800 V4
  • décochez la case Enable (Send data on Event)
  • Path : renseignez l'URL de l'API V4
  • Time Interval : renseignez un intervalle de 10 minutes


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.

V4 PushAnaV3b.png

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.

V4 PushAnaV3formule.png

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.

V4 PushAnaV3sms.png

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 possibilité 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.

V4 PushRLY8.png

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