Aller au contenu

jjacques68

Membres confirmés
  • Compteur de contenus

    4 346
  • Inscription

  • Dernière visite

  • Jours gagnés

    39

Tout ce qui a été posté par jjacques68

  1. Je suis chez bouygues... Pour la 4G je savais pas... Envoyé de mon iPhone en utilisant Tapatalk Pro
  2. Pareil, je croyais que non !!!! J'ai pas d'abonnement pro !
  3. Es-tu sur ? Ce que j'ai constaté, c'est que l'ip de la 4G (celle relevé par le site ou par dyndns) change plusieurs fois par jour. hier elle a changé 3 fois. Mais les 2 premiers numéro de l'ip n'ont jamais changé. en plus, si je regarde la config du modem 4G, sont ip est en 10.xx.xx.xx (comme mon tél) alors que les sites ou dyndns voient 80.xx.xx.xx assez étrange comme situation...
  4. J'ai envie de dire oui, faudrait tester : fibaro:getModificationTime(id_vd, "ui.le_label_en_question.value")
  5. Ben normalement oui... comme pour toutes les requêtes http ! nan ? https://developer.fibaro.com/docs/fghc-luaapi
  6. Bon c'est ok, j'ai supprimé l'application et réinstallé et c'est ok... étrange... Envoyé de mon iPhone en utilisant Tapatalk Pro
  7. AH M...... !!! j'ai pas fais gaffe !!! Zut quel naze... Je peux pas le faire moi même si ?
  8. Bonjour à tous, Voici un petit tuto pour ceux d'entre vous, qui comme moi, ont une connexion internet de secours (modem 4G ou autre) Il est peut être agréable de savoir laquelle est utilisée. Notamment si l'on est absent et que l'on souhaite rester informé de ce qui se passe chez nous. J'ai créé une petite scène toute simple ainsi qu'un VD me permettant d'avoir le statut de la connexion. Il n'y a aucune interaction avec, c'est juste de l'information. EDIT - Version 2 : suppression du bug du timeout ajout d'un label update dans le VD pour avoir la date du dernier changement modification des icones possibilité d'afficher l'IP si celle-ci change Sommaire : Prérequis Le VD La scène principale La scène de notification Installation Conclusion Bug connu Téléchargement 1. Prérequis : Comme dit en introduction, pour avoir une connexion internet de secours, il faut un 2ème modem (modem 4G par exemple). Il existe beaucoup de modèles différents, certains mêmes provenant de notre FAI... Me concernant, j'utilise un TP-Link TL-MR6400 avec une carte SIM provenant de mon FAI avec l'option multisim. Il faut également pouvoir relier ces 2 modems dans un routeur acceptant plusieurs entrées WAN pour que le basculement entre la ligne ADSL plantée et la 4G se fasse automatiquement. Je n'irais pas plus loin sur l'explication d'une telle installation, car elle serait vraiment trop longue, et les pro du réseau seront mieux vous conseiller que moi. Il y a un tel choix possible en fonction de beaucoup de critères (FAI, marque, tarif, abonnement, configuration logiciel, configuration matériel, …, - un tuto spécifique serait le bienvenu) Donc ce petit tuto s'adresse plutôt aux personnes ayant déjà une 2ème connexion internet chez eux. 2. Le VD : Celui-ci affiche simplement si on est connecté en ADSL, 4G... ou pas. Il indique aussi l'adresse IP public. Il n'y a pas de code source dans le mainLoop 3. La scène principale : (rien de bien méchant ) --[[ %% autostart %% properties %% events %% globals --]] --[[ Version 2 teste toutes les XX minutes si connecté par ADSL ou 4G envoie une requete à un site qui renvoie l'IP public j'analyse la première partie de l'IP : (ISP = Bouygues) 176 = ADSL ; 80 = 4G Modification d'une VG suivant l'état pour les notifications Et modification du VD. --]] --déclaration icones local IcoADSL = 1098 local Ico4G = 1095 local IcoInc = 1096 local IcoOFF = 1097 --déclaration IP local IPADSL = 176 local IP4G = 80 --déclaration autres local IDVD = 164 local VG = "TypeConnection" --Teste la présence de la VG. la crée si absente function TestVG(VGName) if fibaro:getGlobal(VGName) == nil then newVar = {} newVar.name = VGName newVar.value = "" api.post("/globalVariables", newVar) print("VG "..newVar.name.." créée") else print("VG "..VGName.." existante") end end --demande de l'adresse IP function RequestIP() local IP = net.HTTPClient({ timeout = 2000 }) IP:request("http://bot.whatismyipaddress.com/", { success = function(response) CheckIp(response.data) setTimeout(RequestIP, 1*60*1000) --bouclage end, error = function(response) --timeout ou autre print("Err : "..response) --modification du VD et de la VG fibaro:setGlobal("TypeConnection","OFF") fibaro:call(IDVD, "setProperty", "currentIcon", IcoOFF) fibaro:call(IDVD, "setProperty", "ui.Label1.value", "OFF") --affiche l'erreur fibaro:call(IDVD, "setProperty", "ui.Label2.value", response) setTimeout(RequestIP, 1*60*1000) --bouclage pour relancer end, }) end --analyse l'adresse IP function CheckIp(IP) local i=1 local detail={} --inscrit les 4 parties de l'adresse dans le tableau "detail" for Num in string.gmatch(IP, "%d+") do detail[i] = Num i=i+1 end --vérifié la 1ère partie 176 = ADSL et 80 = GSM if tonumber(detail[1]) == IPADSL then print("ADSL - "..IP) --pour notification push fibaro:setGlobal("TypeConnection","ADSL") --modifie le VD fibaro:call(IDVD, "setProperty", "currentIcon", IcoADSL) fibaro:call(IDVD, "setProperty", "ui.Label1.value", "ADSL") fibaro:call(IDVD, "setProperty", "ui.Label2.value", IP) elseif tonumber(detail[1]) == IP4G then print("GSM - "..IP) fibaro:setGlobal("TypeConnection","GSM") fibaro:call(IDVD, "setProperty", "currentIcon", Ico4G) fibaro:call(IDVD, "setProperty", "ui.Label1.value", "GSM") fibaro:call(IDVD, "setProperty", "ui.Label2.value", IP) else --sinon affiche l'IP reçu print("IP inconnnue - "..IP) fibaro:setGlobal("TypeConnection","INC") fibaro:call(IDVD, "setProperty", "currentIcon", IcoInc) fibaro:call(IDVD, "setProperty", "ui.Label1.value", "???") --affiche l'IP obtenue fibaro:call(IDVD, "setProperty", "ui.Label2.value", IP) end end TestVG(VG) --teste de la VG RequestIP() --appel de la fonction principale Elle est lancée au boot de la HC2 (%%autostart) Très simple, la fonction RequestIP() interroge toutes les minutes le site http://bot.whatismyipaddress.com/ (pas d'inscription nécessaire) qui renvoie l'adresse IP public. Ensuite la fonction CheckIP() analyse la chaine de caractères de retour. Suivant le premier chiffre de l'IP, j'en déduis si je suis en ADSL ou en 4G. Dans mon cas, 176 = IP ADSL et 80 = IP 4G. Je n'analyse pas les autres chiffres de l'IP public car ceux-ci peuvent peut-être changer de temps à autre. mais pas le début. Suivant le résultat, je renseigne une VG (pour les notifications push ou autres besoins) et je modifie l'icône du VD et ses labels. La fonction TestVG() teste si la VG est présente ou pas et la crée le cas échéant. 4. La scène de notification : --[[ %% autostart %% properties %% events %% globals TypeConnection --]] --[[ Scène lancée au boot de la HC2 et sur changement de VG - Envoie les push & mail - update des label et icon sur certain VD --]] local IDTel = tonumber(fibaro:getGlobalValue("IdPhoneJJ")) local IDMail = 2 local Trigger=fibaro:getSourceTrigger() --temporise pour le boot de la HC2 if Trigger.type == "autostart" then fibaro:sleep(20*1000) end --VG TypeConnection********************************************************** if Trigger.varName == "TypeConnection" or Trigger.type == "autostart" then if fibaro:getGlobal("TypeConnection") == "ADSL" then fibaro:call(IDTel, "sendPush", "Connexion par ADSL") fibaro:call(IDMail, "sendEmail", "Type of connection", os.date("%m/%d/%Y").." - "..os.date("%H:%M").." - Connexion par ADSL") print(os.date("%d/%m/%Y").." - Connexion par ADSL") elseif fibaro:getGlobal("TypeConnection") == "GSM" then fibaro:call(IDTel, "sendPush", "Connexion par GSM") fibaro:call(IDMail, "sendEmail", "Type of connection", os.date("%m/%d/%Y").." - "..os.date("%H:%M").." - Connexion par GSM") print(os.date("%d/%m/%Y").." - Connexion par GSM") elseif fibaro:getGlobal("TypeConnection") == "INC" then fibaro:call(IDTel, "sendPush", "Connexion HC2 - IP inconnue") fibaro:call(IDMail, "sendEmail", "Type of connection", os.date("%m/%d/%Y").." - "..os.date("%H:%M").." - Connexion HC2 - IP inconnue") print(os.date("%d/%m/%Y").." - Connexion HC2 - IP inconnue") elseif fibaro:getGlobal("TypeConnection") == "OFF" then fibaro:call(IDTel, "sendPush", "Connexion HC2 - OFF") fibaro:call(IDMail, "sendEmail", "Type of connection", os.date("%m/%d/%Y").." - "..os.date("%H:%M").."Connexion HC2 - OFF") print(os.date("%d/%m/%Y").." - Connexion HC2 - OFF") end --mise à jour du label update dans le VD fibaro:call(164, "setProperty", "ui.Label3.value", os.date("%d/%m/%Y - %H:%M")) end Les notifications se fond dans une scène à part, car si elles étaient dans la scène principale, j'aurai une notif par minute... Cette scène est un bout de ma scène réelle, car elle centralise toutes les notifications de mes VG. Donc apparait ici que ce qui concerne la VG "TypeConnection". Elle est lancée au boot de la HC2 (%%autostart) et sur changement de la VG (%%Global) En cas de boot (if Trigger.type == "autostart" then fibaro:sleep(20*1000) end) je retarde un peu l'exécution pour soulager la HC2) Après suivant la valeur de la VG, je notifie... 5. Installation : Pour connaitre son IP public en ADSL, vous pouvez utiliser le site ci-dessus de la scène principale. Noter l'IP renvoyée. Refaire la même manipulation étant connecté en 4G (ou autre). Il suffit après de modifier les variables au début de la scène principale (ID du VD, ID des icones, premier N° des IP) Pas besoin de s'occuper de la VG, la scène le fait. 6. Conclusion : Cela peut toujours être utile un jour. Du coup, dès que la connexion change, je suis informé. Dans mon cas par mail et par push. Il faut juste laissé le temps à l'installation de basculer d'une connexion à l'autre (environ 2 minutes : 1 minutes pour comprendre qu'on a plus d'ADSL et 1 petite minute environ pour basculer sur la 4G) 7. Bug connu : 8. Téléchargement : (V2) La scène principale : CheckPublicIP.txt Le VD : Home_Connection.vfib Les icones :
  9. Oui, la force de ce forum à encore marqué un point
  10. Ah bon !!?? Envoyé de mon iPhone en utilisant Tapatalk Pro
  11. Je constate depuis la dernière mie à jour de l'application iPhone, que le tél n'arrive plus à ce connecter directement en local... Il passe systématiquement par Fibaro... (voir l'icône en haut à gauche) Et cela bien que l'option "Connect with the controller in the local network first" soit active... Vous constatez la même chose ?
  12. oki, compris. En tout cas pour le moment, ça semble stable mon affaire A voir dans la durée. @Lazer, @Nico, @Fanou, si vous pouviez passer par là quand vous avez le temps : https://www.domotique-fibaro.fr/topic/10900-comportement-du-timeout-dans-les-nethttpclient/#comment-167803 merci
  13. voilà nouveau post sur ce sujet : https://www.domotique-fibaro.fr/topic/10900-comportement-du-timeout-dans-les-nethttpclient/#comment-167783
  14. Bonjour à tous, Petite question : dans une scène : comment se comporte le timeout des requêtes http de ce type ? local http = net.HTTPClient({ timeout = 2000 }) http:request("blablabla...", { success = function(response) print("success") end, error = function(response) print("Error: " ..response) end, }) Le but serait d'exécuter une fonction si le timeout est atteint. La fonction error n'est pas appelée La scène plante tout simplement si le timeout est fini. J'ai essayé cela mais sans succès : local http = net.HTTPClient({ timeout = 2000 }) http:request("blablabla...", { success = function(response) print("success") end, error = function(response) print("Error: " ..response) end, timeout = function(response) print("Timeout") end, }) comme toujours, merci d'avance pour vos idées !!!!
  15. oups désolé, ça vient du copier/coller... dans la scène il est au bon endroit... merci !
  16. je vais peut être créé un nouveau post non ?
  17. j'ai essayé ça mais sans résultat (fallait que j'essaye ) local http = net.HTTPClient({ timeout = 2000 }) http:request("blablabla...", { success = function(response) print("success") end, error = function(response) print("Error: " ..response) end, timeout = function(response) print("Timeout") end, })
  18. il me plante la scène...
  19. ben non le timeout est pas traiter par la fonction error
  20. Dites je reviens sur ce post car mes soucis avec le routeur et les modem ADSL/4G (pour ceux qui ont pas suivi), m'ont donnés une idée dans les requêtes http (pas l'api de la HC2, rien a voir ce coup si...) local http = net.HTTPClient() http:request("blablabla...", { success = function(response) print("Création de la variable "..id) end, error = function(response) print("Error: " ..response) end, }) existe-il une option Timeout qui permettrait en cas de pas de réponse d'exécuter une action ?
  21. Oh punaise ! SI ! la connexion prend juste un peu plus de temps... alors je pige plus...
  22. d'après la doc : OUI. bon tout ça me semble ok ! Je reçoit toujours les notif de la HC2 Par contre impossible de me connecter avec l'appli du tél sur la HC2 du coup, normal... je passe par un dyndns (WAN1) et celui-ci ne répond plus... J'ai mis un autre Dyndns sur le WAN2, mais il me semble que les FAI n'autorise pas ce genre de manip pour les SIM 4G... déjà causé sur le fofo
  23. bon alors je crois que j'avance un peu. On vu que clairement c'est le routeur qui met le bordel... donc j'ai réglé comme çà : DN1 & DNS2 de WAN1 = 8.8.8.8 et 8.8.4.4 DN1 & DNS2 de WAN2 = 8.8.8.8 et 8.8.4.4 Le Failure Detection Methode est réglé sur les tests DNS1 & DN2 de WAN1 (dois je en mettre un sur le WAN 2 ????) Je l'ai pas laissé en auto car je me demande si les BOX ADSL n'ont pas leur DNS inscrit un dur dans leur système et que le routeur récupère ces DNS là... ??? Il me semble que ça fonctionne... Je cris pas victoire car il faut voir à usage...
  24. Alors j'ai mis manuellement les DNS de Google dans un PC fixe, DNS 1 8.8.8.8 & DNS 2 8.8.4.4. Et ça marche, je peux sortir... Donc clairement cela vient du routeur... J'ai épluché la doc du routeur, mais je ne trouve rien !!!!
×
×
  • Créer...