Aller au contenu
Krikroff

Test de connexion internet ou d'accès à un domaine

Recommended Posts

Tout à  commencé ici :)http://forum.fibaro.com/viewtopic.php?t=1894

 

Ce script peut servir à  vérifier l'accès à  un domaine et donc aussi sa connexion Internet. J'utilise une variable pour enregistrer le résultat: Cette variable n'est pas obligatoire, juste utile pour utiliser le résultat du script dans une scène.

 

La limite de cette méthode pour le test de connexion est la disponibilité du domaine vers lequel pointe le script.

--[[
%% properties
%% globals
--]]

fibaro:log("Start process");
fibaro:sleep(2000);
fibaro:log("<b>Check internet connection.</b>");
fibaro:sleep(2000);

HC2 = Net.FHttp("dyn.com");
-- call domaine to check
response, status, errorCode = HC2:GET("/");
-- check for error
if errorCode == 0 then
  fibaro:setGlobal('Network Status', 1);
  fibaro:log("Internet connection is alive, http response status is " .. status);
  if tonumber(status) == 200 then
    fibaro:sleep(2000);
    fibaro:log("<b>The request has succeeded</b>");
  end
else
  fibaro:setGlobal('Network Status', 0);
  fibaro:log("<b>Internet is down, check your connection</b>");
end

--EOF 
  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Couplé avec le SMS "Paw", c'est intéressant  ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

bonjour,

je voulais me servir de ton scritp Krikroff et j'ai cette erreur qui vient de la ligne 7.

"attempt to call method 'log' (a nil value)."

j'ai oublié quoi?

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as utilisé ce script dans un VD ou une scène ?

Partager ce message


Lien à poster
Partager sur d’autres sites

je pensé que c'était pour mettre dans un VD, mais cela ne donné rien alors je l'ai mis dans une scène et la il y a l'erreur.

Partager ce message


Lien à poster
Partager sur d’autres sites

tiens je deterre ce topic pour informer qu'avec les dernieres versions du firmware v6 de la freebox ( krikroff je sais que tu es freenaute :) )

il y a une petite subtilité.

si la box detecte un pb de net, elle renvoie une page informative a toute requete http demandee, et du coup elle renvoie un code 200 ok.

on a donc le net down mais le code le voit pas.

moi j.ai contourné en interrogeant httpbin.org/status/600 par exemple qui renvoie le code 600, et la la freebox ne peut pas lutter :)

Partager ce message


Lien à poster
Partager sur d’autres sites

A mon tour de déterrer...

si je remplace la ligne du script de Krikoff:

  1. HC2 = Net.FHttp("dyn.com");

 

par

 

HC2 = Net.FHttp("httpbin.org/status/600");

 

Le debug m'indique que la connexion est down (alors que tout fonctionne bien).

 

Ce n'est pas cette ligne qu'il faut remplacer? Il faut installer quelque chose de particuliers?

 

Merci pour votre aide.

Partager ce message


Lien à poster
Partager sur d’autres sites

a vue de nez si tu appelles httpbin.org/status/600 et que ta connection marche, ça renvoie le code 600 ( c'est le principe de httpbin.org/status)

 

donc ligne 19 je mettrais if tonumber(status) == 600 then

Partager ce message


Lien à poster
Partager sur d’autres sites

mais ce n'est pas ce que je récupère, je ne vois pas où je me rate, voilà  mon code:

 

HC2 = Net.FHttp("httpbin.org/status/600");
-- call domaine to check
response, status, errorCode = HC2:GET("/");
 
fibaro:debug("response"..response);
fibaro:debug("status"..status);
fibaro:debug("errorCode"..errorCode);
 
Et je récupère rien dans response, rien dans status et 2 pour errorcode

Partager ce message


Lien à poster
Partager sur d’autres sites
mon code est formulé comme ça:

 



testnet = Net.FHttp("httpbin.org",80) 
response, status, errorCode=testnet:GET('/status/600')


 

et ça renvoie 

 



response= status=600 errorCode=0

 

 

Celà  dit, j'imagine que krikroff a résolu ça depuis longtemps dans son plugin ( j'avaoue que j'ai pas été tres actif ces 6 derniers mois, pas taper, pas taper..)

Partager ce message


Lien à poster
Partager sur d’autres sites

×