Envoi push incorrect (syntaxe)

Bonjour,

J’utilise la fonction push de l’IPX avec étiquettes pour envoyer les données toutes les 300 secondes sur un serveur.
J’utilise dans le champ path cette syntaxe pour envoyer les données :

/A$A /C$C /I$I /O$O/

Et mon serveur reçoit :

IPX_PUSH state updated to GET /A0&0&0&0000000000000 /C0&0&0&0&0&0&0&0 /I000000000000000000000000000000000O0000000000001000000000000000000 HTTP/1.1

Comme vous le voyez, l’IPX oublie d’envoyer le caractère ‹ / › ainsi que l’espace. Ce qui me pose problème pour traiter les données derrière.

J’ai essayé d’autres combinaisons, et j’ai des résultats bizarres, par exemple :

/A$A /C$C /O$O /I$I/

renvoie

IPX_PUSH state updated to GET /A0&0&0&0000000000000 /C0&0&0&0&0&0&0&0 /O00000000000001000000000000000000 HTTP/1.1

La valeur des inputs a complètement disparu !!

Je ne comprends pas, merci pour votre aide.

Jetblack

Bonjour,

Je rejoint la question. J’utilise la 3.05.42 et le push fait vraiment n’importe quoi. Quelques exemples :

Le path : /push.php?device=monIPX&outputs=$O
donne : /push.php?device=monIPX&outputs=00000001000000000000000000000000
=> RAS

Le path : /push.php?device=monIPX&outputs=$O&inputs=$I
donne : /push.php?device=monIPX&outputs=00000001000000000000000000000000
=> Les inputs n’apparaissent pas

Le path : /push.php?device=monIPX&inputs=$I&outputs=$O
donne : /push.php?device=monIPX&inputs=11000000000000000000000000000000utputs=00000001000000000000000000000000
=> Juste en inversant $I et $O, les inputs apparaissent, mais les outputs sont tronquées

Le path : /push.php?device=monIPX&inputs=$I&&&outputs=$O
donne : /push.php?device=monIPX&inputs=110000000000000000000000000000BF&outputs=00000001000000000000000000000000
=> Pour avoir un résultat un minimum correct, il faut donc mettre 3 « & » après une variable

Le path : /push.php?device=monIPX&inputs=$I&&&analog=$A&&&outputs=$O
donne : /push.php?device=monIPX&inputs=11000000000000000000000000000000&analog=0&0&0&0000000000000&&&outputs=00000001000000000000000000000000
=> Le résultat analog est inexploitable. On en profite pour remarquer que les 3 « & » ne sont pas nécessaires après $A…

Le path : /push.php?device=monIPX&analog=$A1$A2$A3
donne : /push.php?device=monIPX&analog=0A20
=> Visiblement, après un $An, une autre variable ne marche pas

Le path : /push.php?device=monIPX&analog=$A1$$A2$A3
donne : /push.php?device=monIPX&analog=00A3
Le path : /push.php?device=monIPX&analog=$A1$$A2$$A3
donne : /push.php?device=monIPX&analog=000
=> Cela confirme l’affirmation précédente

Au final, pour avoir ce que je veux, il me faudrait mettre :
/push.php?device=monIPX&inputs=$I&&&analog=$A1$$A2$$A3$$A4$$A5$$A6$$A7$$A8$$A9$$A10$$A11$$A12$$A13$$A14$$A15$$A16&&outputs=$O

Sauf que je ne peux pas, ça ne veut pas : 414 Request-URI Too Long: Buffer overflow detected

En bref, cette possibilité de mettre des étiquettes est très alléchante, plus pratique que le fonctionnement précédent. Mais la réalité c’est que ça ne marche pas du tout. Je pense que c’est pas grand chose au niveau du code, mais en attendant, je ne peux pas du tout implémenter ce que je souhaite…

Ou alors il manque une subtilité dans la doc ?

A propos de la doc, l’exemple donné (192.168.1.100/mapage.htm?data=$M&$I), bien qu’il fonctionne, n’est franchement pas exploitable convenablement. En effet, PHP va retourner, au niveau de la variable $_GET, une clé « data » contenant l’adresse mac, et une clé « nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn » sans valeur correspondant aux états des entrées…

Remarque : partout où j’ai du mettre « &&& », j’obtiens le même résultat avec « $$& »

Merci
Cordialement
Nicolas

Bonjour,

Je vais faire des tests ce matin mais je pense que cela vient des etiquettes.

Cdt

Bonjour Patrick,

Des nouvelles concernant ce problème ?

Merci
Cdlt,

Bonjour NiKO,

Je fais des tests mais je n’ai pas eu le temps d’approfondir car trop de travail cette semaine…
Il faut que je prenne un peu plus de temps pour bien identifier ou ça coince.

Cdt

Bonjour,

merci de vous préoccuper de cela. J’ai bricolé pour contourner le problème :
je demande
/A$A /dummy /C$C /dummy /I$I /dummy /O$O /dummy /

et je reçois :
/A0&0&0&0000000000000 /dummy /C0&0&0&0&0&0&0&0 /dummy /I00000000000000000000000000000000dummy /O00000100000000000000000000000000

il y a une troncature du message après l’envoi des inputs, mais je récupère correctement les balises /O /I … dans la réponse

Par la même occasion, j’espère que le problème lié aux commandes M2M TCP pour piloter les extensions X880 sera résolu aussi :wink:

A+
Jetblack

Bonjour,

j’ai voulu modifié la syntaxe du push pour privilégier les inputs et outputs côté traitement serveur, et c’est vraiment délicat car il y a bcp de caractères mangés, surtout après $O :

/I$I /dummydummy /O$O /dummydummydummydummydummydummydummy /C$C /dummy /A$A /END

Ce que je reçois :

GET /I00000000000000100000000000000000dummydummy /O00000000000000000000000000000000ydummy /C0&0&0&0&0&0&0&0 /dummy /A0&0&0&0000000000000 /END HTTP/1.1

Jetblack

Meme probleme avec l’interface http. j’essaye d’utiliser les etiquettes avec le push pour mon plugin vera et ca ne marche pas des qu’on essaye d’utiliser $O ou $I.
l $O et $I sont envoyes sans separateur. $A lui ne retourne qu’une valeur (A0 ). Du coup je fais un push simple ( juste $M ) et derriere je fais un poll des valeurs… pas optimal.

conclusion:

  • svp corrigez le pb des etiquettes
  • rendre parametrable le delai de 1sec

merci !

Bonjour Patrick,

Du nouveau concernant ce problème ? Peut-on espérer avoir un correctif ?

Merci
Cordialement,
Nicolas

Je suis dessus. J’ai identifié le bug…
Je vais faire une bêta en attendant la prochaine release…

Bonjour,

Excellent ! Je suis preneur de la Beta pour faire des tests :slight_smile:

Merci
Cordialement,
Nicolas

Bonjour,

Elle sera en ligne dans la matinée.

Cdt

Bonjour,

Voici la mise à jour.

Changelog:

Reset des timers TB en mode VR
Rajoute des fonctions set et clear à leds.cgi pour le controle des entrées
Rajoute la possibilité de régler l’intervale de temps entre 2 notifications dans le menu push.
Les caractères du mot de passe du DynDns sont désormais masqués.
Accès M2M sécurisé si accès web sécurisé. Pour ouvrir une session envoyer key= xxxxxx (xxxxxx = mot de pass de l’accès web).
Correction d’un Bug sur les notifications des étiquettes.
Correction d’un Bug sur la commande Set en M2M.
Ajout d’un fichier ioname.xml qui regroupe les noms des entrées / sorties.
IPX800_3.05.45.rar (512 KB)

super le Reset des timers TB en mode VR (ainsi que le reste)
bravo et merci

Bonjour,

Pouvez vous me faire un retour sur la stabilité et les correctis de cette version?
Ça me sera utile pour préparer la version finale.

Bonjour Patrick,

Désolé, je ne peux faire ces tests que le week-end. Je ne manquerai pas de faire un retour sur ce fil samedi ou dimanche.

Cordialement,
Nicolas

Bonjour Patrick,

Je teste ça dès que possible et je fais un retour en particulier sur le M2M (Set et push/étiquettes).

Merci !

Jetblack

bonjour,
je viens d essayer cette version les notifications push avec free mobile sur les entrées fonctionne très mal c est aleatoire ne s affiche pas tout le temps ou pas du tout
je suis repasser en 3.0542 et tout remarche
si il y a un correctif je veux bien réessayer pour vous faire un retour
merci quand même pour le travail

Merci pour ce premier retour…
Pour free mobile cela vient sûrement de la com avec notifix car les pushs partent bien de l’ipx800.
Je planifie des tests Lundi avec Damien pour recontrôler le moteur de push…
On attend avec impatience les retours de test du week end car cela va nous aider à préparer la release.

Bonsoir

petit test 3.05.45(pas b) ce soir

=> effectivement pb sur les push pour notif via Free Mobile
visiblement le fichier config ne conserve pas le user:pass mais meme en resaisissant, les sms n’arrivent pas

=> Reset Tb sur mode VR parfaitement fonctionnel… et utile , merci !

=> j’ai remarqué que le fichier config ne sauvegardait pas les paramètres des entrées analogiques (que ce soit de 1 à 4 ou apres avec les X400)
apres importation du fichier config il faut donc reparamétrer toutes les sondes et resaisir les seuils et les relays à activer

=> NOTIFIX n’affiche plus mes sondes SHT-X3 (les fameuses !), par contre je vois bien les remontées ECO-D sur le meme compte Notifix
PS : le Path du push de l’IPX n’est pas ssauvegardé dans le fichier config

=> j’ai un retour d’état de TLR qui reste activé à 1 en entrée 32 (anormal) qqsoit la position du TLR, meme en forant la position à 0 par le site web de l’IPX l’état repasse à 1 assez rapidement. Mon entrée 31 est similaire et paramétrée pareil : RAS… le pb subsiste après retour en .42 (à investiguer de mon coté donc, mais surprenant, car pb inexistant auparavant)

suis repassé en .42