Hang IPX800 en Push http et events simultanés

Bonjour,

Nouveau et heureux propriétaire d’un IPX800V3 sous le controle de Homeseer, je me heurte à un probleme de « hang » de la carte lors de notifications push en mode event si (et seulement si) il y a au moins deux évenements simultanés.

Je m’explique :

Ayant configuré le push http pour réagir en mode event sur les 8 relais, l’url appelle un simple script php sur un serveur web (j’en ai essayé plusieurs : IE, apache …) qui logue dans un fichier la chaine de paramètre envoyée. Ce script fonctionne tout à fait normalement sur le long terme tant que un seul relais à la fois change d’état, même rapidement.

Si je force le changement d’état simultané de plusieurs relais, par exemple en utilisant un call sur l’url qui permet de changer tous les état en même temps, alors la carte IPX800 se bloque systématiquement si le push est activé. La led jaune de trafic située sur le connecteur réseau RJ45 reste allumée en permanence, le site web de la carte ne répond plus, une seule solution pour reprendre la main : couper l’alimentation.

Sachant que, en mode « event », le push ne transmet qu’un seul paramètre à la fois, je me demande si la carte ne « se mord pas la queue » lorsque plusieurs états commutent dans un délais plus court que celui d’execution d’une requete push élémentaire… Que se passe t’il dans ce cas là ? Je pensais que la carte allait envoyer en séquence autant de push qu’il a eu de changement d’état, mais je ne recois même plus le premier push, tout se bloque.

Ce probleme ne se produit pas si le « push on time » est activé (dans ce cas le retour contient tous les états correctement répercutés), mais uniquement en mode « event ».

Peut-être certains lecteurs ici ont ici été confrontés au même problème ou ont trouvé un contournement ?
Je n’ai pas vérifié si le même probleme se produit en cas de changement simultané d’état des inputs.

Merci d’avance pour vos avis.

Tu envoies plusieurs requêtes http pour piloter plusieurs relais?
1 requête par relais?

Si oui, tu peux très bien envoyer une seule requête permettant de piloter plusieurs relais en utilisant la forme :

led1=1&led3=1…

Merci fatal25 mais c’est justement la source du probleme.

Soit je commute sagement et lentement chacun de mes relais, et chaque fois j’ai en retour une requete push http séparée qui me retourne l’état effectif du relais. Tout est parfait.
Soit j’utilise des ordres simultanés et là la carte plante si le push est actif.

La seule solution que j’ai touvé à ce jour, c’est de m’interdire de faire basculer plus d’un relais à la fois. Un relais = un push hhtp, pas de souci.

Alors je peux effectivement continuer a commuter un par un les relais avec une temporisation par exemple d’une seconde entre chacun, même si ce n’est pas satisfaisant à l’esprit.

Mais comment garantir qu’un jour je n’aurais pas vraiment deux évenements simultanés dûs à des evenements sur ma domotique, ce qui conduira a activer deux relais en meme temps et donc à un plantage certain de la carte.

Encore une fois, si le push http est désactivé, il n’y a aucun probleme en commutation simultanée.

Bonjour,

La méthode que vous utilisez ne convient pas.

Vous devez utiliser le M2M pour commander et recevoir l’état des I/O.

Cordialement,

Patrick

L’idéal serait d’utiliser les ordres M2M.

Vous avez la possibilité de piloter plusieurs relais et de recevoir l’état de tous les relais en même temps.

Merci à tous pour vos réponses.

Finalement ma conclusion est que quiconque active le push on event prend le risque de voir sa carte se bloquer si par ailleurs il continue aussi à jouer independament avec ses relais via des call URL. Du coup l’interet du push, pour ne pas nuire à la fiabilité de la carte, devient bien marginal : interdiction d’y lier l’état des relais sauf un et prier pour qu’une seule input change d’état à la fois ou n’en lier qu’une seule.

Quand à utiliser le M2M, outre être une approche polling, on sort du contexte dialogue « standard » http qui faisait tout l’interet du push.

Peut être qu’une future version permettra au push de renvoyer « on event » non plus un seul mais une liste des items (input ou output) ayant basculés simultanément, ou pour le moins traiter ce cas de figure afin de ne pas hanger la carte. (Il est preferable de rater un event que de planter la carte). Après tout, le push « on time » renvoie bien quelque chose de ce genre déjà, global, alors pourquoi ne pas imaginer qu’en « event » on ait que ce qui a changé.

Bonjour,

Votre demande à été notée.

Je vous invite à refaire des tests sur la nouvelle version qui sortira cette semaine car le moteur de push à été entièrement revu.

Cordialement,

Patrick