jojo Posté(e) le 23 janvier 2015 Signaler Posté(e) le 23 janvier 2015 c-lol, Je crois qu'il faut chercher une solution indépendante de ton fournisseur. Je n'y connais RIEN en LUA, donc je vous laisse voir. Mais la logique, c'est encore ok chez moi. Donc je verrais le test comme suit : je vois si j'ai une réponse à http://www.realip.info/api/p/realip.php (cfr script de Krikroff) oui : j'affiche l'IP et la bonne icône => fin du test non : je teste un autre site. Comme sur ta Freebox, elle te retourne qqch de sympa si elle n'a pas de connection internet, tu peux peut-être faire le test en mettant une URL bidon et voire ce que ça te retourne? En fait, c'est simple : si on a autre chose qu'une réponse positive (l'IP externe, ou je ne sais quoi si on atteint www.google.com) c'est que la connection internet est morte, et on affiche l'cône. Facile ! (à dire,pour toi, il n'y a plus qu'à ... ) Merci
c-lol Posté(e) le 23 janvier 2015 Auteur Signaler Posté(e) le 23 janvier 2015 l'idée de google c'est qu'ils ont des serveurs partout dans le monde, donc on aura toujours un ping, même si il y en a un qui crash. Ton idée à l'air interréssante, je vais voir ca. sinon concernant le probleme pour des freenautes, j'ai fait un if string.find(response, "Votre Freebox Server") then fibaro:debug("Pas d'internet"); else fibaro:debug("OK"); end ça a fonctionné (je suis obligé de débranché la box chez moi ) @jojo je ne suis pas une star non plus en lua ni en dev généralement, mais depuis que j'ai la HC2 je t'avoue que j'y prends gout!! puis on a des bons qui aide!! hein kirkroff??!! merci!! 1
c-lol Posté(e) le 24 janvier 2015 Auteur Signaler Posté(e) le 24 janvier 2015 Bon voila j'ai trouvé une solution de contournement, en prenant ton idée JOJO. Si test REAL IP OK alors OK Sinon test sur google Si Ok message de probleme avec REAL IP Sinon Pas de connexion internet --************************************************ -- 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 = 1019; local iconeInternetNok = 1020; 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() HC2 = Net.FHttp("www.realip.info", 80); response, status, errorCode = HC2:GET("/api/p/realip.php"); --fibaro:debug(result); --Check Erreur if string.find(response, '{"IP":"') then --Json Decode decode = json.decode(response); ip = decode["IP"]; --fibaro:debug(ip); internetOk(ip); else --On test un site GOOGLE HC2 = Net.FHttp("www.google.fr", 80); response, status, errorCode = HC2:GET("/maps"); if string.find(response, "The document has moved") then internetOk("OK mais echec de REAL IP"); return 0; else internetNok("NOK"); return 0; end end end -- FIN FONCTIONS -- SCRIPT myIp = ipPublic(); local statut = fibaro:getGlobal(internet); fibaro:debug("la connexion internet est " ..statut); fibaro:log("la connexion internet est " ..statut); --fibaro:debug(myIp); --fibaro:log(myIp); --FIN SCRIPT Je n'utilise plus le script de ping. En fait après plusieurs test je me suis aperçu d'une mauvaise interprétation de ma part pour l'utilisation du script PING. ATTENTION : je parle pour mon cas disposant d'une freebox. A voir pour d'autre FAI. En faite le script PING me répondait toujours OK, que je ping un site web (internet débranché) ou une ip de type 999.999.999.999 Lors d'un test de ping de ce genre, le script interroge la freebox est celle-ci me retourne bien un résultat. Ce résultat m'indique un message d'erreur. Sauf que le script lui attend des paquets en retour et donc considère que c'est OK (4 messages d'erreur = 4 paquet). Le script est plus à utilisé pour une utilisation local. D'ailleurs je pense que c’était la raison de base! Voila ce que j'en déduis. Du coup pour le script CHECK INTERNET, c'est une solution un peu barbare et pas trop évolutive à mon gout. En effet je fais une recherche de caractère de la réponse pour être sur du résultat que j'attends. Le problème est que si un jour le message en retour change, ben faut modifier le script En espérant qu'un jour fibaro intègre une vrai fonction ping dans la HC2. Voili voilou. J'attends vos retours. 1
jojo Posté(e) le 24 janvier 2015 Signaler Posté(e) le 24 janvier 2015 ça marche impeccable ! tu fais un export de ta VD adaptée et modifie dans ce sans la première page du tuto pour les suivants ? MERCI
c-lol Posté(e) le 24 janvier 2015 Auteur Signaler Posté(e) le 24 janvier 2015 Oups, petit oublie. C'est fait!!
jojo Posté(e) le 24 janvier 2015 Signaler Posté(e) le 24 janvier 2015 encore une petite chose la ligne fibaro:log(statut); permet d'afficher qqch en vert au bas de l'icône de la VD Mais ce message est temporaire (il disparaît après quelques secondes). Quel serait le code pour afficher le message en continu, jusqu'à ce qu'il y ait un autre message qui apparaisse ? Merci
Lazer Posté(e) le 24 janvier 2015 Signaler Posté(e) le 24 janvier 2015 Sachant que le message reste affiché 9 secondes, voici un extrait de ce que je fais sur l'un de mes modules virtuels : i = 0 while i < 51 do fibaro:log("Hello world") fibaro:sleep(9000); i = i + 9 end
jojo Posté(e) le 24 janvier 2015 Signaler Posté(e) le 24 janvier 2015 Merci Lazer, C'est tordu, mais je vais l'implémenter. Triste qu'il n'y ait pas une fonction out of the box pour cela
c-lol Posté(e) le 25 janvier 2015 Auteur Signaler Posté(e) le 25 janvier 2015 Oui je ne pense pas qu'il est possible de le laisser indéfiniment. Si tu regardes bien les messages système de fibaro quand il fait un réveil des modules il ne reste pas afficher. En tous cas il n'y a pas de paramètre supplémentaire dans l'option fibaro:log() http://www.fibarouk.co.uk/support/lua/library/fibarolog/ @Lazer l'idée est bonne!!
Sakkhho Posté(e) le 1 février 2015 Signaler Posté(e) le 1 février 2015 etes vous sur du code fibaro:debug("la connexion internet est " ..statut); fibaro:log("la connexion internet est " ..statut); car chez moi le retour est : la connexion internet est sans le rajout du statut
c-lol Posté(e) le 2 février 2015 Auteur Signaler Posté(e) le 2 février 2015 [DEBUG] 00:53:36: Start process [DEBUG] 00:53:36: la connexion internet est 88.124.0.0 [DEBUG] 01:53:39: Start process [DEBUG] 01:53:39: la connexion internet est 88.124.0.0 De mon coté voila ce que ca me retourne. Essai de rajouter un debug pour l'ip pour voir s'il la trouve bien.
nigamais Posté(e) le 11 février 2015 Signaler Posté(e) le 11 février 2015 Bonjour ce tuto est intéressant,mais étant un gros novice pourriez vous m'aidez ou si possible,des screens, pour créer une variable global et pour envoyer un sms en cas de coupure.Merci j'ai essaye mais je galère.
c-lol Posté(e) le 11 février 2015 Auteur Signaler Posté(e) le 11 février 2015 Pour créer une variable global tu vas dans "panneau" (icone puzzle) puis dans "panneau variable" et dans "variable predefini" tu cliques sur "ajouter" nom de la variable = internet valeur 1 = ok valeur 2 = nok Pour envoyer un sms je n'ai pas de passerelle sms. Mais tu peux créer une nouvelle scène ou éditer une scène qui gère tes sms. Un truc dans le genre --[[ %% properties %% globals internet --]] local statut = fibaro:getGlobal("internet"); --Si internet = nok (pas internet) if statut == "nok" then --envoyer un sms "il n'y a plus internet" -- tu mets ton code pour envoyer le sms -- voir le tuto de la passerelle sms end Voila sur quoi je peux te conseiller
jojo Posté(e) le 11 février 2015 Signaler Posté(e) le 11 février 2015 pour envoyer des SMS, vois ce tuto. Facile et ça marche http://www.domotique-fibaro.fr/index.php/topic/2902-gateway-sms-autonome/
nigamais Posté(e) le 11 février 2015 Signaler Posté(e) le 11 février 2015 Merci ,mais ou je peux mettre ces lignes .merci .
c-lol Posté(e) le 11 février 2015 Auteur Signaler Posté(e) le 11 février 2015 Dans scène, tu créais une nouvelle scène "LUA" puis onglet avancé.
nigamais Posté(e) le 12 février 2015 Signaler Posté(e) le 12 février 2015 Salut Jojo tu parles du tuto de c-lol ?
jojo Posté(e) le 12 février 2015 Signaler Posté(e) le 12 février 2015 sorry, j'avais oublié de mettre le lien http://www.domotique-fibaro.fr/index.php/topic/2902-gateway-sms-autonome/
nigamais Posté(e) le 12 février 2015 Signaler Posté(e) le 12 février 2015 Merci par contre peut-tu m'aider comment faire pour mettre les deux icônes je comprend pas je démarre.Merci
jojo Posté(e) le 12 février 2015 Signaler Posté(e) le 12 février 2015 quelles 2 icônes ? Qu'utilises-tu comme browser ?
nigamais Posté(e) le 13 février 2015 Signaler Posté(e) le 13 février 2015 Les deux icônes de internet ok et pas ok, je sais pas comme les insérer dans le virtual device ,désolé suis un novice .Merci.
jojo Posté(e) le 13 février 2015 Signaler Posté(e) le 13 février 2015 c'est le code ci-dessous que tu dois utiliser pour assigner une icone à la VC : fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", 153) Assigne l'icône 153 à la VD actuelle Pour retrouver le n° de l'icone : elle doit être ajoutée normalement dans la VD. quand tu es dans l'écran de choix des icônes, (procédure browser Chrome) tu cliques droit sur l'icône Inspecter élément tu as ceci comme résultat : <img class="ChooseIcon" src="/fibaro/n_vicons/User1025.png"> le n° de l'icône est 1025
nigamais Posté(e) le 13 février 2015 Signaler Posté(e) le 13 février 2015 Merci bien,par contre ou dois-je référencer le numéro des icônes ?merci vraiment je débute et c'est pas evident .merci encore de ton aide
jojo Posté(e) le 13 février 2015 Signaler Posté(e) le 13 février 2015 je t'ai donné le bout de code où il faut référencer le n° des icônes ? mais il faut voir si dans le VD que tu utilises s'il y a une variable au début du code qui contient le n° de ces icones Dans ma dernière version du code, c'est dans le bouton 1 local iconeInternetOk = 1025; local iconeInternetNok = 1026;
Messages recommandés