Aller au contenu

[Vd] Check Connexion Internet


c-lol

Messages recommandés

Merci c'est bon,ca fonctionne il me reste plus qua trouver pour les sms ,la ligne" c'est le code ci-dessous que tu dois utiliser pour assigner une icone à  la VC :

fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", 153) est a referencer pour faire des boutons ?

Lien vers le commentaire
Partager sur d’autres sites

voila voila, bon j ai relu je ne vois pas...

 

par contre, si je force en allant jusqu a choisir l icone, licone reste

--************************************************
-- Check Internet HC2 VD [01-2015]
-- Copyright © 2015 c-lol
--************************************************

fibaro:log("Start process");
fibaro:debug("Start process");

-- DECLARATION VARIABLES
local internet = "internet" --nom de la variable global internet
local iconeInternetOk = 1016;
local iconeInternetNok = 1015;
local deviceId = fibaro:getSelfId();
local i = 1;
-- FIN VARIABLES

--Fonction Internet Ok
local function internetOk(ip)
  --fibaro:debug("Internet Ok");
  fibaro:setGlobal(internet, ip);
  fibaro:call(deviceId, "setProperty", "currentIcon", iconeInternetOk);
  fibaro:call(deviceId, "setProperty", "ui.Label1.value", ip);
end  

--Fonction Internet Nok
local function internetNok(ip)
  --fibaro:debug("Internet Nok");
  fibaro:setGlobal(internet, ip);
  fibaro:call(deviceId, "setProperty", "currentIcon", iconeInternetNok);
  fibaro:call(deviceId, "setProperty", "ui.Label1.value", ip);
end

--Fonction What's My Ip
-- utilise le site "http://www.realip.info/api/p/realip.php"
local function ipPublic()
local ip, clientHttp = nil, Net.FHttp("www.realip.info", 80);
local response, status, errorCode = clientHttp:GET("/api/p/realip.php");
-- check error
if errorCode == 0 then
-- check status and response value before...
if ((tonumber(status) == 200) and (response ~= nil)) then
response = json.decode(response);
ip = response.IP;
else
fibaro:debug("Error!");
end
else
fibaro:debug("Unable to check network status, error code is "..errorCode..
", response is ["..response.."]")
end
-- destroy object
clientHttp = nil
return ip;
end
 
fibaro:debug(ipPublic());

-- FIN FONCTIONS

-- SCRIPT
 
  myIp = ipPublic();
 
  local statut = fibaro:getGlobal(internet);
  fibaro:debug("la connexion internet est " ..statut);
  fibaro:log("la connexion internet est " ..statut);
    
--FIN SCRIPT
Lien vers le commentaire
Partager sur d’autres sites

@c-lol : oui oui, j'ai importe le module du tuto ;-)

et la variable globale internet existe ;-)

les num des icones sont les bons aussi a priori :

<img class="ChooseIcon" src="/fibaro/n_vicons/User1016.png"> = ok

<img class="ChooseIcon" src="/fibaro/n_vicons/User1015.png"> = nok

la j'avoue je cale, peut-etre reimporte le module ;-)

Lien vers le commentaire
Partager sur d’autres sites

voilà ,

je viens de publier une version "qui ne sert à  rien" : v3.1

Changements : mise à  jour de la doc.

Check_Internet_v3.1.vfib

 

Toutes les version de ce VD et les icônes utilisées sont sur Google Drive (voir le lien dans ma signature)

Lien vers le commentaire
Partager sur d’autres sites

Super tout ça!! 

 

Merci jojo pour les update du VD, c'est vrai que ça fait un moment que je ne suis pas venu ici.

Perso je n'ai pas rencontré de problème depuis ma dernière update.

Faut que j'installe ta MAJ que je vois tous ce qui a changé  ;) .

 

@megabubu : pour changer le temps de rafraîchissement il faut modifier la valeur du fibaro:sleep dans la boucle principale

--Sleep 1 min
fibaro:debug("Pause 1 min")
fibaro:sleep(1*60*1000)

tu remplaces 1 par ta valeur.

 

C'est bien le but d'avoir l'ip public, je trouve que c'est plus pertinent si tu veux savoir laquelle c'est.

Mais si tu veux changer il faut que tu modifies dans le code du bouton.

 

change la ligne 48

    	ip = decode["IP"]

par

    	ip = "Ok"

Tu garderas toujours le code qui récupère l'adresse IP. tu pourras revenir en arrière comme ça. :)

Lien vers le commentaire
Partager sur d’autres sites

la variable globale 'Internet' contient OK ou NOK => facile à  utiliser dans une scène pour ce que tu veux, mais pas t'envoyer un mail, car ça ne marchera pas ...

 

@megabubu : pour ne pas afficher l'IP publique, mais juste le status (OK ou NOK), le plus simple serait de mettre en commentaire la ligne 76 du bouton

 

ok pour modifier dans le main loop la fréquence de vérification. Mais alors l'affichage du log ne sera pas parfait, il est optimisé pour une fréquence de 1 min.

Mais je vais pour une prochaine version utiliser le champ TCP Port pour définir la fréquence. Merci pour l'idée

Lien vers le commentaire
Partager sur d’autres sites

voici la version 4.1

où vous pouvez choisir l'intervalle [min] de vérification.

Celui-ci doit être spécifié dans le champ TCP Port de la VD.

Par défaut, il est à0 => vérification en continu. Je recommande de mettre minimum 1 [min]

Check_Internet_v4.1.vfib

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...
  • 3 mois après...
×
×
  • Créer...