Bonjour @Jweb
Merci pour le retour, ok c’est clair.
Peut être que @GCE aurait cela dans le viseur pour un prochain update?
A suivre …
Cdlt
Bonjour @Jweb
Merci pour le retour, ok c’est clair.
Peut être que @GCE aurait cela dans le viseur pour un prochain update?
A suivre …
Cdlt
Bonjour.
Je ne me souviens plus si cela a déjà été demandé mais serait-il possible d’accepter plus de possibilités en entrée d’un clef à sortie IO, du genre On, ON, Off, OFF, … (j’imagine mais je n’ai pas testé qu’il y a déjà 0,1, true, TRUE, True, false, FALSE et False).
Merci.
Bonjour Thierry_59,
une évolution a en effet été demandée à ce sujet
bonne journée
Bonsoir @micou211187 , je rencontre le même problème, pouvez vous documenter votre actualisation avec le clignotant?
Cordialement
Pat
Bonjour à tous,
Je rencontre le même problème avec le parser et la limitation à 512 caractères.
Impossible de récupérer les valeurs des X-THL sur la V4mini depuis la V5.
Est ce que l’un d’entre vous a solutionné le problème ?
Une solution de contournement ?
Merci.
Jon
Edit : en relisant le post un peu plus en détail, @fgtoul, tu dis que le problème a été remonté à GCE. As-tu eu un retour ? Merci
Bonjour
Il n’y a pas eu d’évolution à ma connaissance
Bonjour,
Merci pour ton retour rapide.
Je fais une demande à Helpdesk de mon côté.
Ca m’ennuie d’être obligé de repasser par un script externe pour faire communiquer la V5 avec la V4 (complexité, fiabilité principalement).
Je vous tiens au courant.
Sinon les autres, vous avez géré le problème comment ?
Merci.
Jon
Bonsoir,
Même problématique, du coup j’ai laissé mon X-THL sur la v5 qui push dans une analogique virtuelle dès que la température change. Mais je n’en suis pas satisfait car l’emplacement actuel du X-THL n’est pas idéal pour la v4 qui gère la piscine… du coup, j’attendais un update coté v4 idéalement (push en PUT)… mais il se pourrait que je passe par un jeedom si j’ai le temps de déplacer mon X-THL à coté du local piscine dans les jours qui viennent. En utilisant cette solution [Récupérer une information issue de Jeedom dans une IPX800-V5]
Bonjour à tous,
J’ai eu un retour super rapide de GCE, merci.
La limitation à 512 caractères n’est pas modifiable pour des raisons d’allocation mémoire de la V5.
Il faut donc forcément passer par une autre méthode que le parse.
Je vois 2 solutions :
Il ne reste donc que la solution :
Alternative : au lieu d’utiliser l’API avec des SET, le script pourrait peut être renvoyer un json à la V5 en ne gardant que les 7 X-THL (moins de 512 caractères) et du coup on continuerai d’utiliser le parse de la V5.
J’utilise un script tout fait pour pilotage de mon ampli ONKYO qui utilise la fonction Json_encode pour transformer un tableau array en objet json. Ca ferait une base.
Qu’en pensez vous ?
Quelqu’un sur le forum peut aider sur du PHP ?
Merci.
Jon
Bonjour,
J’ai écrit un petit script php hier soir hébergé sur le NAS qui fait :
Un push sur la V5 qui appelle le script php qui lui renvoie un json des 24 datas et qui donc ne dépasse pas les 512 caractères
3 Objets Parse du résultats : un pour les XTHLi-TEMP, un pour les X-THLi-HUM, un pour les X-THLi-LUM
C’est pas encore très propre mais mes essais fonctionnent.
Donc pour ceux qui disposent d’un hébergeur web, c’est une solution plutôt facile à mettre en place.
Je publierai le script quand il sera un peu plus propre et commenté.
++
Jon
Bonjour,
Voici le script testé et validé.
<?php
// Script à héberger sur serveur web (NAS ou autre)
// Permet de récupérer les valeurs de température, humidité, luminosité des 8 1ers X-THL d'une V4 depuis une V5
// Créer un push depuis la V5 qui appelle ce script à l'adresse du serveur qui l'heberge (note : un clignotant déterminera la fréquence du psuh pour actualisation)
// Utiliser ensuite un objet Parse pointant sur le push pour récupérer les valeurs
// Mistoukwak le 24/12/2022 pour la communauté
// Utilisation de file_get_contents pour récupérer un json depuis l'API de la V4
// Avec la commande get=all, on récupère l'ensemble des variables de l'IPX
$response = file_get_contents("http://192.168.X.X/api/xdevices.json?key=ZZZZZ&Get=all");
// Création d'un tableau par conversion du json en utilisant la fonction json_decode
$array = json_decode($response, true);
//Les valeurs des 8 X-THL sont en position 451 à 474
//Suppression des 450 1ères entrées du tableau
//Puis suppression des entrées 24 à 300 pour ne garder que les 24 valeurs des X-THL
array_splice($array,0,450);
array_splice($array,24,300);
// Création d'un nouvel objet json sur la base du tableau avec la fonction json_encode
$result=json_encode($array);
// Renvoi du json en réponse à la requête par push de la V5
echo $result;
?>
ATTENTION : bien penser à mettre votre adresse IP et votre apikey dans le code avant utilisation.
A dispo si vous avez des questions.
Note : En changeant simplement les numéros d’index dans les 2 fonctions array_slice, on peut récupérer n’importe quelle valeur de la V4 depuis la V5 !
Jon
merci pour le partage
J’essaierai sur NAS synology dans la semaine
Bonne fêtes à tous
Bonjour,
Un grand merci à @Mistoukwak pour le partage de son script. Ce script m’a permis de mieux comprendre les échanges possibles entre le NAS et les IpxV4 et IpxV5 et de découvrir l’usage de json_decode et de json_encode. A mon tour et sur les mêmes bases, j’ai créé un script acceptant des consignes où la requête est définie dans l’url du push V5 : adresse ip et apiKey de la V4, nature de la commande (R, C, D, VA, VI, VO, PW, XTHL…) et les index des valeurs attendues dans la limite de 8.
Exemple de requête des compteurs (C) 2, 4, 6, 8,10,12, 14 et 16 : /Domo/scriptGetV4.php?ip="192.168.x.x"&key=xxx&cmdGet=C&idx1=2&idx2=4&idx3=6&idx4=8&idx5=10&idx6=12&idx7=14&idx8=16
La réponse est : {"product":"IPX800_V4","status":"Success","C2":14792380,"C4":0,"C6":0,"C8":0,"C10":0,"C12":0,"C14":335715,"C16":0}
Pour la première XTHL : /Domo/scriptGetV4.php?ip=192.168.x.x&key=xxx&cmdGet=XTHL&idx1=1&idx2=2&idx3=3
{"product":"IPX800_V4","status":"Success","THL1-TEMP":10.24,"THL1-HUM":82.68,"THL1-LUM":0}
Voici le script « scriptGetV4.php » à placer dans le NAS :
<?php
// Sur la base du script élaboré par Mistoukwak
// url à renseigner dans le push ipxV5:
// /Domo/scriptGetV4.php?ip="192.168.x.x"&key=xxx&cmdGet=C&idx1=2&idx2=4&idx3=6&idx4=8&idx5=10&idx6=12&idx7=14&idx8=16
// l'url attendue doit contenir l'adresse ip et l'apikey d'accès à l'ipxv4, la commande (R, C, D, VA, VI, VO, XTHL...) et les index des valeurs demandées
// le nombre de valeurs demandées est limité à 8, correspondant à la limite du nombre de clés du parser Json de l'ipxV5
// dans le cas de THL, 3idx par THL : 1=THL1-TEMP, 2=THL1-HUM , 3=THL1-LUM, 4=THL2-TEMP, 2=THL2-HUM...
// la requete vers la v4 porte sur la commande contenue dans l'url
// après décodage, selection de l'entête et des valeurs demandées par array_slice
// encodage et envoi de la réponse vers ipxV5 :
// {"product":"IPX800_V4","status":"Success","C2":14792380,"C4":0,"C6":0,"C8":0,"C10":0,"C12":0,"C14":335715,"C16":0}
$response = file_get_contents("http://".$_GET["ip"]."/api/xdevices.json?key=".$_GET["key"]."&Get=".$_GET["cmdGet"] );
$array = json_decode($response, true);
$resultArray = array_slice($array,0,2);
$resultArray = $resultArray+array_slice($array,1+$_GET["idx1"],1);
$resultArray = $resultArray+array_slice($array,1+$_GET["idx2"],1);
$resultArray = $resultArray+array_slice($array,1+$_GET["idx3"],1);
$resultArray = $resultArray+array_slice($array,1+$_GET["idx4"],1);
$resultArray = $resultArray+array_slice($array,1+$_GET["idx5"],1);
$resultArray = $resultArray+array_slice($array,1+$_GET["idx6"],1);
$resultArray = $resultArray+array_slice($array,1+$_GET["idx7"],1);
$resultArray = $resultArray+array_slice($array,1+$_GET["idx8"],1);
$result=json_encode($resultArray);
echo $result;
?>
Bonne journée.
Bonjour @Mistoukwak
j’attire votre attention sur un point :
le script est dépendant de la « Memory Map » actuelle de l’IPX800 V5 ou de l’API
array_splice($array,0,450);
array_splice($array,24,300);
En cas de modification de celle-ci, le script retournera une valeur autre que celle qui est attendue.
Vous risquez de ne pas vous en rendre compte de suite car les modifs du mapping ne sont pas commentées dans les upgrades du firmware.
Il vaudrait peut-être mieux travailler sur des éléments nommés du tableau
bonne journée et merci pour ces partages.
Bonjour fgtoul,
La « Memory Map » actuelle de de l’ipx800V5 ou celle de l’ipx800 V4 ?
Bonne journée.
c’est bien la V4 , erreur de frappe
un changement dans la map ou dans la commande Get=All (comme ce fut le cas en V4.04.02) et c’est la cata éventuelle
l’avantage de travailler sur le fichier status.xml (j’ai déjà mis des scripts sur le forum ou le wiki) plutôt que sur une requête Get=All , c’est d’accéder aux objets par leur nom, donc pas de risque de décalage quelconque.