jjacques68 Posté(e) le 3 octobre 2016 Signaler Posté(e) le 3 octobre 2016 Re-bonjour à tous, je constate un comportement étrange avec mon IPX800, peut-quelqu'un à connu ça ? J'ai compteur sur l'input 1 pour l'eau. Celui-ci est interrogé toutes les 30 secondes par une scène pour relevé son index. (index stocké dans une VG, jusque là , c'est normal, classique) Je viens d'installer un autre équipement sur l'input 2 auquel je fais un compteur également. Celui-ci est interrogé toutes les 5 secondes par une autre scène (sans stocker la valeur dans une VG car juste besoin de comparer sa valeur) et il me semble que de temps en temps il y a un bug qui bloque l'une ou l'autre de ces 2 scènes. et bien sur, j'essaye de reproduire ce bug mais j'y arrive pas... La méthode que j'utilise pour relever le compteur est avec une requête "http........api/xdevices?cmd=40" Je récupère la table Json de tous les compteurs, et je récupère le C1 dans une scène et le C2 dans l'autre. J'ose pas vous poster les scènes car un peu compliquer avec des fonctions... et des setTimeout... -> Bref mon hypothèse serait la suivante, si les 2 scènes font la même requête en même temps vers l'ipx, ça peut planter !? c'est possible ce que je dis ? Une solution serait de faire une seule et unique scène qui interroge l'IPX toutes les 5 s et qui mémorise les compteurs dans des variables globales distinctes. Mes 2 scènes précédentes n’interrogerait plus l'ipx, mais les VG... et donc plus de risque de collision... quelqu'un a constaté ce genre de phénomène ? Merci à vous pour vos avis, qui sont en passant, toujours très intéressant !! JJacques68
jjacques68 Posté(e) le 3 octobre 2016 Auteur Signaler Posté(e) le 3 octobre 2016 Je confirme, voici le message d'erreur qui vient d'apparaitre dans une des 2 scènes : [DEBUG] 23:57:43: [1;31m2016-10-03 23:57:43.724136 [ fatal] LUA error: /opt/fibaro/scenes/107.lua:27: attempt to concatenate field 'C1' (a nil value) Et si j'observe le TimeCode de ce debug, il y a eu une requête exactement au même moment (23:57:43) sur l'autre scène. Mais l'autre est passée...
jjacques68 Posté(e) le 4 octobre 2016 Auteur Signaler Posté(e) le 4 octobre 2016 alors pour voir la différence, j'ai fais une scène qui relève mes infos de l'ipx toute les 5s. --[[ %% autostart %% properties %% events %% globals --]] --pour n'avoir qu'une seule instance de cette scène if fibaro:countScenes() > 1 then fibaro:abort() end --permet de relever la table json des compteurs function ReadIndex() local IPX = net.HTTPClient() IPX:request("http://192.168.xx.xx/api/xdevices.json?cmd=40", { options = { method = 'GET', headers = {['Authorization'] = "BASIC xxxx="}, }, success = function(response) jsonResponse = json.decode(response.data) CheckCount() CheckIn() end, error = function(response) OnError() end }) end --permet de relever le compteur 1 et 2 de la table json dans des VG function CheckCount() fibaro:setGlobal("IndexEauTotal", jsonResponse.C1) fibaro:setGlobal("AlarmeCounter", jsonResponse.C2) fibaro:debug("EAU : "..jsonResponse.C1) fibaro:debug("alarme : "..jsonResponse.C2) end --permet de relever la valeur des entrées IN dans une VG function CheckIn() local IPX2 = net.HTTPClient() IPX2:request("http://192.168.xx.xx/api/xdevices.json?cmd=10", { options = { method = 'GET', headers = {['Authorization'] = "BASIC xxxx="}, }, success = function(response) jsonResponse = json.decode(response.data) fibaro:setGlobal("IpxIn2",jsonResponse.IN2) fibaro:debug("IN2 : "..jsonResponse.IN2) setTimeout(ReadIndex, 5*1000) --bouclage toute les 5s end, error = function(response) OnError() end }) end function OnError() fibaro:debug("Error: " ..response) setTimeout(ReadIndex, 5*1000) end ReadIndex() Et je n'ai plus eut ce message d'erreur ... donc.. l'ipx aime pas avoir plusieurs requetes HTTP en même temps. J'aurai bien aimé que quelqu'un passe par là pour donner son avis !
Lazer Posté(e) le 4 octobre 2016 Signaler Posté(e) le 4 octobre 2016 Peut-être devrais-tu poser la question sur le forum de GCE Electronics ? Du monde est passé par ici, il y a 18 vues, mais visiblement personne n'a de réponse à t'apporter. Que ça soit mon IPX800 v4 ou mon Eco Devices, je les interroges toutes les minutes sans aucun bug à signaler, mais je n'ai pas d'accès concurrent. Pour info l'Eco-Devices, ça fera bientôt 3 ans qu'il tourne, il a subi au moins 1 476 474 requêtes http. Y'a pas de raison que l'IPX800 ne fasse pas mieux
BenjyNet Posté(e) le 5 octobre 2016 Signaler Posté(e) le 5 octobre 2016 Moi je comprends pas pourquoi vous interrogez l'IPX. Pourquoi ce n'est pas elle qui envoie sur la HC2 ? Perso j'ai que 2 scenes : 1 de synchro des entrées et 1 de synchro des sorties. Quand une entrée ou une sortie change d'état, ça push sur la HC2. Par contre vous avez réglé le problème d’authentification ? Je l'avais pas mis en place au départ quand j'interrogeait l'IPX parce que ça marchait pas mais c'est pas secure pour le coup (je parle d'IPX v4).
Lazer Posté(e) le 5 octobre 2016 Signaler Posté(e) le 5 octobre 2016 Analogique: la HC2 interroge l'IPX. Numérique: l'IPX Push vers la HC2
BenjyNet Posté(e) le 5 octobre 2016 Signaler Posté(e) le 5 octobre 2016 Exact ! J'utilise pas l'analogique
jjacques68 Posté(e) le 5 octobre 2016 Auteur Signaler Posté(e) le 5 octobre 2016 @BenjNet : Je passe par une scène car je stocke les infos dans des VG. Et avec l'ipx on peut pas modifier une VG par le push. A moins de passer par une scène où VD... Mais ça complique drôlement je trouve... Pour l'authentification, si on parle de la même chose, regarde ma scène ci-dessus, je traite l'authentification...
BenjyNet Posté(e) le 5 octobre 2016 Signaler Posté(e) le 5 octobre 2016 C'est bien une V4 que t'as ? Parce que moi ça marche pas l'authentification et je ne sais pas pourquoi Peut être parce qu'il y a 2 modes d'accès maintenant user et admin. Mais sinon je suis d'accord avec toi sur la v3 ça marchait très bien.
jjacques68 Posté(e) le 5 octobre 2016 Auteur Signaler Posté(e) le 5 octobre 2016 oui oui je suis bien en version 3 et non 4 !! tu arrives à mettre es VG à jour depuis l'ipx en passant par des requêtes push ?
jjacques68 Posté(e) le 5 octobre 2016 Auteur Signaler Posté(e) le 5 octobre 2016 je rebondis sur ça @BenjyNet : Moi je comprends pas pourquoi vous interrogez l'IPX. Pourquoi ce n'est pas elle qui envoie sur la HC2 ? Perso j'ai que 2 scenes : 1 de synchro des entrées et 1 de synchro des sorties. Quand une entrée ou une sortie change d'état, ça push sur la HC2. Si pour c'est pour une simpe entrée, oui je comprends que ce soit plus facile de procéder ainsi. Mais pour le relevé des compteurs, ça se complique, vaut mieux une scène qui interroge l'ipx toutes les X minutes ou seconde !! et dans mon cas, cas si les impulsions s'arrêtent (pour l'alarme), il faut que je sache si je suis à l'état 1 ou 0 sur mon entrée. C'est sà»r cette méthode me gène un peu, car ça fait des accès permanent sur le réseau local, donc encombrement... Mais je vois franchement pas comment faire d'autre.
jjacques68 Posté(e) le 5 octobre 2016 Auteur Signaler Posté(e) le 5 octobre 2016 @Lazer : Peut-être devrais-tu poser la question sur le forum de GCE Electronics ? C'est fait ! Je mettrais la réponse dans le post. s'ils me répondent... 1
Lazer Posté(e) le 5 octobre 2016 Signaler Posté(e) le 5 octobre 2016 C'est bien une V4 que t'as ? Parce que moi ça marche pas l'authentification et je ne sais pas pourquoi Peut être parce qu'il y a 2 modes d'accès maintenant user et admin. Mais sinon je suis d'accord avec toi sur la v3 ça marchait très bien. Pour l'authentification, je ne suis pas spécialiste, mais normalement il faut que tu actives l'API Key (désactivé par défaut) Exemple pour récupérer les valeurs analogiques je fais : http://1.2.3.4/api/xdevices.json?key=xxxxx&Get=A
BenjyNet Posté(e) le 6 octobre 2016 Signaler Posté(e) le 6 octobre 2016 Hum j'avais laissé tomber, faudra que j'essaye de nouveau.
jjacques68 Posté(e) le 6 octobre 2016 Auteur Signaler Posté(e) le 6 octobre 2016 @Lazer : voici la réponse du servie technique de CGE (bon fallait s'y attendre) En effet, si l'espace entre deux requêtes est trop court, la V3 ne pourra pas répondre correctement. Potentiellement elle répond à la seconde requête sans répondre à la première ou elle fait un mixe des deux ou encore les deux mais dans la même trame. Les valeurs nulles représentent probablement des valeurs qui ne sont pas interprétable par la Box. Ils ont répondu dès ce matin. Merci pour leur professionnalisme !
Lazer Posté(e) le 6 octobre 2016 Signaler Posté(e) le 6 octobre 2016 Oui ils sont hyper pro, une fois j'avais lancé une mise à jour de l'Eco Devices à 2h du mat qui s'est avérée être buguée, donc j'ai aussitôt remonté sur leur forum. Le matin à 9h, le mec me dit qu'il s'en occupe après son café, et à 10h30 on avait la version débugguée Je n'avais pas compris que tu avais une V3, je pensais que tu étais sur v4. Donc la réponse ne m'étonne pas, cela correspond à tes constatations.
jjacques68 Posté(e) le 8 octobre 2016 Auteur Signaler Posté(e) le 8 octobre 2016 pas de soucis, je n'ai plus de problème avec ma scène unique qui relève mes compteurs toutes les 5 secondes... Donc je touche plus...
Messages recommandés