Eliah Posté(e) le 30 avril 2018 Signaler Posté(e) le 30 avril 2018 Bonjour, depuis ce weekend j'ai quelques soucis pour accéder au site " httpbin.org ", qui est à la base des tests pour le reboot de la box sur ce script. Je suis avec Orange Fibre et le site répond une fois sur trois en ce moment. Ce qui fait que ma box reboot même quand il n'y a pas besoin (plus de 200 fois ce weekend)... Peux t-on adapter le script avec un autre site ? Genre google.com ca serait plus pérenne non ? Mais comment faire ? Quelqu'un peut aider ici ?
biboun Posté(e) le 30 avril 2018 Signaler Posté(e) le 30 avril 2018 AH ben voilà pourquoi ça n'arrête pas de gueuler depuis ce matin.. moi j'ai de la chance ça ne fait qu'alerter,j'ai pas mis en place de reboot (j'ai une autre machine qui sert de gateway de secours avec une connection 3G..) Je vais regarde si on peut adapte le code avec un autre site, en l'état je crois que j'utilisais un code de retour particulier (600)
Lazer Posté(e) le 30 avril 2018 Signaler Posté(e) le 30 avril 2018 je confirme, presque qu'une minutes pour charger la page de httpbin.org sur Orange Fibre moi aussi. Pas étonnant que la requête de la HC2 parte en timeout. (je n'utilise pas ce script, donc je ne rencontre pas de problème reboot intempestif)
biboun Posté(e) le 30 avril 2018 Signaler Posté(e) le 30 avril 2018 ok ça peut marcher avec google.fr voici les lignes modifiées dans le VD testnet = Net.FHttp("google.fr",80) response, status, errorCode=testnet:GET('/') printlog("response="..response .." status=".. status.." errorCode=" .. errorCode) --uncomment sleep to debug response in log windows fibaro:sleep(1000) if errorCode == 0 and status == "301" 3 changements on tape sur google.fr on fait un GET sur rien '/' du coup google retourne un code 301 Je pense que ça fait la blague.. Si besoin je reexporterai le VD complet une fois qu'on est sûrs que c'est fiable. Je ne suis pas sur place donc si une âme charitable peut verifier que ça détecte bien les coupures (en en simulant une...) 1
Did Posté(e) le 30 avril 2018 Signaler Posté(e) le 30 avril 2018 Moi aussi, j'ai toujours ce VD et j'ai dû commenter quelques lignes de la mainloop pour le faire taire. Merci @biboun pour cette correction que je vais tenter d'appliquer (je suis toujours aussi nul en Lua) et si ça marche, je simulerais des déconnexions.
Did Posté(e) le 1 mai 2018 Signaler Posté(e) le 1 mai 2018 Bon je viens de modifier tes lignes et tester donc le fait de lui retirer internet le bascule bien en HS et il revient en OK quand on rebranche. Par contre, il me semble avoir attendu bien plus que trois tentatives et je ne vois pas le relais de mon IPX bouger (pour le tts, ça me semble logique puisque j'ai retiré ma connexion).
biboun Posté(e) le 2 mai 2018 Signaler Posté(e) le 2 mai 2018 Euh, les 3 tentatives tou ça ça vient d'un autre bout de code je présume.. en théorie on a touché qu'au moyen de detection. Ou alors la detection est aussi présente dans le code qui actionne ton IPX.. C'est du code que je t'avais filé ? (j'ai toujours dans mes modules un truc nommé "test pour DID" dans ma box.. ) 1
Did Posté(e) le 2 mai 2018 Signaler Posté(e) le 2 mai 2018 Oui, c'est dans les premières pages de ce topic.
biboun Posté(e) le 2 mai 2018 Signaler Posté(e) le 2 mai 2018 c'est ce code là que tu exploites? id 30 c'est ton IPX ? local selfId = fibaro:getSelfId() fibaro:debug("button pressed") function printlog(message) fibaro:call(selfId, "setProperty", "ui.log.value", message); fibaro:debug(message) fibaro:log(message) end printlog("checking connectivity") count=fibaro:getGlobalValue("adsl") count=tonumber(count) testnet = Net.FHttp("httpbin.org",80) response, status, errorCode=testnet:GET('/status/600') printlog("response="..response .." status=".. status.." errorCode=" .. errorCode) --uncomment sleep to debug response in log windows fibaro:sleep(1000) if errorCode == 0 and status == "600" --le net remarche, on remet la variable à zero then if count > 0 then fibaro:setGlobal("adsl", 0) end else --ça déconne, on incremente la variable fibaro:setGlobal("adsl", count+1) end local status = fibaro:getGlobalValue("adsl") fibaro:debug("adsl: "..status) if status=="0" then fibaro:call(selfId, "setProperty", "ui.status.value", "UP") else fibaro:call(selfId, "setProperty", "ui.status.value", "DOWN") end status=tonumber(status) if status > 3 then printlog("je relance le jus sous la box") fibaro:call(30,"turnOn") fibaro:sleep(2000) fibaro:call(30,"turnOff") fibaro:setGlobal("adsl", 0) --on remet le compteur a zero end
Did Posté(e) le 2 mai 2018 Signaler Posté(e) le 2 mai 2018 Oui, ça ressemble à ça. Voici mes dernières lignes: if status > 3 then printlog("Reboot internet") IPX = Net.FHttp("IP",80); response = IPX:GET("/preset.htm?set1=1"); fibaro:setGlobal("Adsl", 0) -- Remise à zero du compteur fibaro:sleep(180 * 1000) HC2 = Net.FHttp("api.pushingbox.com") response = HC2:GET("/pushingbox?devid=xxxxxxxxxxx") end
biboun Posté(e) le 2 mai 2018 Signaler Posté(e) le 2 mai 2018 ah ok donc c'est bien adapté pour appeler l'ipx ta variable Adsl prend un A majuscule à première vue c'est identique au dessus? ce que tu peux faire c'est aller sur le bouton qui host ce code, faire debug et couper la connec et faire test... dans le log tu devrais voir la valeur de "adsl" ou "Adsl" c'est dans cette variable qu'on stock le nombre d'echecs normalement elle doit passer 0->1->2->3 lors de la coupure, et au dela de 3 ça appelle le bout de code quie tu as copié qui est sensé commander l'ipx.. bref si ça déconne le debug devrait cracher une erreur..
Messages recommandés