Toujours dans le cadre de mon développement d’automatisation d’observatoire à l’aide d’un IPX ( Commande M2M, relais non activé ), j’ai une demande d’un utilisant un IPX 800 v2. J’ai donc entrepris de modifier mon driver pour le rendre compatible. Ne possédant pas cette version j’ai développé un programme de test permettant de tester l’exécution des commandes que j’ai implémenté. Suite au retour que l’utilisateur m’a donné j’ai quelques questions :
Est-ce que l’IPX800 v2 supporte les commande HTTP ? A priori, selon la documentation de l’API je dirais non, mais il semble qu’il soit tout de même possible de connaitre l’état des entrées et sortie à l’aide du fichier status.xml
Y-a-t-il une commande permettant de récupérer la version du firmware ?
Bonjour,
Attention il y a une subtilité : pouvoir commander une IPX par HTTP et avoir son statut via le flux XML (status.xml) sont 2 choses différentes. Vous pouvez très bien accéder à un fichier status.xml sans pour autant pouvoir lancer des commandes HTTP pour piloter les sorties par exemple. Comme je ne connais pas bien la V2 je ne sais pas si elle accepte les commandes HTTP. Mais si elle ne les accepte pas ça ne veut pas dire qu’elle ne propose pas de flux XML.
Pour la version du firmware, vous l’avez dans la page de configuration de la carte, voir ci-dessous. En revanche à mon avis il n’existe pas de commande pour récupérer cette info en retour HTTP par exemple, ou en M2M.
Dans la v3 il y a une commande M2M « GetVersion » (du moins depuis la version 3.05.35) qui retourne le numéro de version.
le fichier status.xml contient aussi le numéro de version. A noté que depuis la version 3.05.42 il y a aussi un fichier globalstatus.xml qui est disponible en plus et qui contient pratiquement les mêmes informations.
Mon programme de test effectue les vérifications suivantes :
test de récupération de la version (par M2M et HTTP)
Dans le cas de la v2
J’obtiens :
en M2M : « ? Bad command », la commande n’est donc pas disponible.
en HTTP : « Unknown IPX800 firmware version », c’est un message que je renvoie si le numéro n’a pas pu être identifié. Pour le moment j’ignore pourquoi il y a trois possibilités :
L’utilisateur n’a pas indiqué correctement son login/mot de passe (erreur 401)
status.xml n’existe pas (erreur 404)
le fichier status.xml ne contient pas le numéro de version ou alors le tag le contenant ne porte pas le même nom que dans les version plus récente.
Mais vu le résultat des tests suivants, je penche plutôt pour la variante 1. Mais cela n’exclut pas la possibilité des cas 2 ou 3 ensuite.
test des fonctions de récupération d’implémentation
Le problème est que les jeux de commande ou leur valeur de retour n’est pas le même dans tous les cas. Par exemple depuis la version 3.05.42 les commandes retournent OK alors que les versions précédente retournaient Success. ( Commande M2M, changement dans les valeurs de retour )
J’ai donc prévu la possibilité d’identifier le jeux de commande à utiliser sans que l’utilisateur n’ait à indiquer lui-même la version du Firmware.
test des entrées et sorties
Divers tests de lecture des entrées et activation/désactivation des relais.
Vous pouvez ainsi en modifiant la page preset.htm commuter les circuits de votre choix en rajoutant
simplement des boutons pointant sur ce type de lien.