Aller au contenu

Messages recommandés

Posté(e)

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 ?

Posté(e)

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
Posté(e)

tu as bien mis ce code dans un virtual device et non dans une scene?

as tu bien créé la variable "internet" dans le panneau des variables?? attention àbien respecter la casse.

Le code m'a l'air OK.

Posté(e)

@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 ;-)

Posté(e)

voici la version 3.0 du script de check internet (pour firmware v3.x)

 

Changements : j'affiche le moment de la dernière vérif (comme ça on voit tout de suite s'il y a un problème au niveau du script)

Check_Internet_v3.0.vfib

Posté(e)

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)

Posté(e)

salut, 

à  la place du statut, pourrais je avoir OK ou NOK, car actuellement j ai mon adresse IP.

Et que dois je changer pour une vérification toutes les 5 minutes par exemple?

 

Merci d'avance  :60:

Posté(e)

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. :)

Posté(e)

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

Posté(e)

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

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