flamalex Posté(e) le 22 septembre 2017 Signaler Posté(e) le 22 septembre 2017 (modifié) Salut Pepite, celui de sebcbien code bouton: fibaro:call(430, "sendDefinedPushNotification", "99"); fibaro:sleep(6*1000); fibaro:log("Starting process"); local variable_globale_phone = "Phone_Alex"; local thismodule=fibaro:getSelfId() local _deviceIp = fibaro:get(thismodule, 'IPAddress') local _devicePort = fibaro:get(thismodule, 'TCPPort') local _maxRetryProcess = 1; local time = tonumber(os.time()); --local maxtime = 14; local maxtime = 7; -- local _deviceIp = "192.168.10.112"; -- local _devicePort = 3500; -- fibaro:debug(_deviceIp .. " " .. _devicePort) -- fibaro:setGlobal("Lock_Away","Unlocked") function SecondsToClock(sSeconds) local nSeconds = tonumber(sSeconds) if nSeconds == 0 then return "00:00:00"; else nHours = string.format("%02.f", math.floor(nSeconds/3600)); nMins = string.format("%02.f", math.floor(nSeconds/60 - (nHours*60))); nSecs = string.format("%02.f", math.floor(nSeconds - nHours*3600 - nMins *60)); return nHours..":"..nMins..":"..nSecs end end -- recursive function to ping device local function _ping(retry) retry = retry or 0; -- notify state local elapsed = os.difftime(os.time(), tonumber(time)); local msg = "Boucle #".. retry .." depuis "..SecondsToClock(elapsed); fibaro:log(msg); -- check for no more than 30 seconds if elapsed > maxtime then return false; end --open the socket local tcpSocket = Net.FTcpSocket(_deviceIp, _devicePort); fibaro:debug(_deviceIp .. " " .. _devicePort) --set the read timeout tcpSocket:setReadTimeout(250); --send packet local bytes, errorCode = tcpSocket:write("test"); fibaro:debug(errorCode) --check for error if errorCode == 0 then return true; else if retry < _maxRetryProcess then --fibaro:log("Retry process, please wait..."); fibaro:sleep(1*750); return _ping(retry + 1); end return false; end end --ping device, secure with pcall to catch errors. local f, result = pcall(_ping); local Lock_Away = fibaro:getGlobal("Lock_Away") if (f) then -- if (result == true) and (Lock_Away == "Unlocked") then if result == true then fibaro:log("Appareil a été trouvé."); fibaro:setGlobal(variable_globale_phone,"Present") -- évolution future possible: stocker la date et l'heure de la dernière présence détectée -- fibaro:setGlobal("Present_Phones",os.time()) else fibaro:log("Appareil non trouvé!"); fibaro:setGlobal(variable_globale_phone,"Absent") end else fibaro:log("Error: " .. f); end puis la boucle principale: --[[ %%autostart %%properties %%globals ]]-- local thismodule = fibaro:getSelfId(); local status = fibaro:getGlobal("Phone_Alex") -- fibaro:debug(thismodule); if status == "Absent" then fibaro:call(thismodule, "setProperty", "currentIcon", 75) fibaro:setGlobal("PRESENCE","non") end if status == "Present" then fibaro:call(thismodule, "setProperty", "currentIcon", 74) fibaro:setGlobal("PRESENCE","oui") end fibaro:sleep(1000); lorsqu'il y a appui sur le BP du VD, je reçois bien la notification sur le phone, pour le réveiller puis plus rien, avant, au réveil du phone, il accrochait le wifi, le vd pingait sur la table arp et c’était bon, ça me sert pour l'alarme, c'est gênant mais c'est curieux, je n'ai vraiment pas une erreur Modifié le 23 septembre 2017 par flamalex
Domodial Posté(e) le 23 septembre 2017 Signaler Posté(e) le 23 septembre 2017 Bonjour, Je me rends compte que après les changements Fibaro apporté à admin, qui hérité maintenant d'une adresse email, mes URI tasker (trigger) ne fonctionnent plus. J'avais des URL de ce genre : http://192.168.1.80/api/callAction?deviceID=413&name=pressButton&arg1=3 Mais maintenant il faut mettre un truc du style http://mon@email.com:MotDePasse;@192.168.1.80/api/callAction?deviceID=413&name=pressButton&arg1=3 Ca ne fonctionne pas, HC2 me demande un login (quand je test dans un navigateur) et ensuite m'interprete l'URL en question en virant "mon@email.com:MotDePasse;" Grrr je pige plus moi, quelqu'un pourrait m'aider à avoir des URL fonctionnelles sur Trigger ? D'avance merci.
sebcbien Posté(e) le 23 septembre 2017 Auteur Signaler Posté(e) le 23 septembre 2017 je viens de vérifier chez moi, je suis bien en 4.140. La détection fonctionne bien, j'ai du aller vérifier car pour ma détection je combine la détection Jeedom avec celle de Mon VD. pour les appels api, j'arrive toujours à commander ma HC2 depuis Jeedom. Exemples qui fonctionnent: http://XXX.XXX.XXX.XXX/api/callAction?deviceID=49&name=turnOn et http://XXX.XXX.XXX.XXX/api/callAction?deviceID=1897&name=pressButton&arg1=2 authentification gérée par le Call HTTP de Jeedom (login XXXXXX@XXXX.com)
Domodial Posté(e) le 23 septembre 2017 Signaler Posté(e) le 23 septembre 2017 euh.... wouah ! Moi en fait si je met http://192.168.1.80/api/callAction?deviceID=413&name=pressButton&arg1=3 Chrome m'ouvre une popin de login pour entrer mes identifiants fibaro. Une fois fait ma variable est OK tout va bien, mais c'est juste pas un comportement normal.
Domodial Posté(e) le 23 septembre 2017 Signaler Posté(e) le 23 septembre 2017 En fait je me suis aperçu du probleme car ma variable ne changeait "plus" d'état depuis le nouveau mode d'authent de la fibaro.
flamalex Posté(e) le 23 septembre 2017 Signaler Posté(e) le 23 septembre 2017 (modifié) @sebcbien curieusement, ca fonctionne toujours avec l’iphone de ma femme (ios 10) mais pas pour moi en ios 11, alors est ce à cause de l’os je vais mettre a jour l’os de ma femme EDIT : mise à jour effectuée bon ce n'est pas IOS 11 en revanche, j'ai constaté qqchose [DEBUG] 12:57:38: 0 [DEBUG] 12:59:22: 192.168.1.21 62078 [DEBUG] 12:59:22: 0 [DEBUG] 13:00:18: 192.168.1.21 62078 [DEBUG] 13:00:18: 0 [DEBUG] 14:42:01: 192.168.1.21 62078 [DEBUG] 14:42:01: 2 [DEBUG] 14:42:04: 192.168.1.21 62078 [DEBUG] 14:42:04: 2 si on a 0, alors ca fonctionne si on a 2, ca ne fonctionne pas maintenant c'est le phone de madame qui n'est plus repéré, par contre mon phone l'est !!! alors que faire? une idée svp !!!!! je viens de reboot la hc2, et maintenant on n’est plus detecté, le debug indique « 2 », qui corresponderait au superuser apparement que faire pour rester à « 0 »? svp merci Modifié le 24 septembre 2017 par flamalex
Domodial Posté(e) le 23 septembre 2017 Signaler Posté(e) le 23 septembre 2017 (modifié) Je suis assez doué pour remonter des bugs, meme dans ma boite lol. Ne cherche pas coté iPhone, moi ça se produit sur Android avec l'application Trigger. Et même sans ça, si je balance l'url dans chrome sur un pc ça merde... EDIT : je me rends compte que vous parlez de deux trucs différents.... Modifié le 23 septembre 2017 par Domodial
flamalex Posté(e) le 23 septembre 2017 Signaler Posté(e) le 23 septembre 2017 (modifié) yes, c'est un autre sujet et j'avance pas, le problème vient du superuser, une histoire de 2 et de 0. pour ton probleme, idem que seb, avec jeedom requete http, url normal, identifiant et mdp dans jeedom pour acces hc2. d’une fenetre chrome, il doit y avoir une histoire de %20 si tu introduis ton mdp et identifiant avec l’@ mais je ne sais plus ou alors tu pourrais te créer un user dans hc2, pour arriver à cela et te débarrasser de l’email: http://admin:mot_de_passe@192.168.1.5/api/callAction?deviceID=4&name=turnOff http://admin:mot_de_passe@192.168.1.5/api/callAction?deviceID=7&name=setValue&arg1=39 Modifié le 23 septembre 2017 par flamalex
Did Posté(e) le 23 septembre 2017 Signaler Posté(e) le 23 septembre 2017 Oui, je pense aussi à un nouvel utilisateur (spécial machine) ou remplacer @ par %20 dans l'url, je ne me souviens plus à quelle version correspond le changement de l'identifiant par une adresse mail mais ça en parle dans le topic de ce firmware.
ADN182 Posté(e) le 24 septembre 2017 Signaler Posté(e) le 24 septembre 2017 Hello, le caractère hexadecimal de remplacement de l'@ est %40 du coup ça donne : http://mail%40domain.com:password@192.168.1.1/api/... (%20 symbolise un espace) Envoyé de mon Nexus 5X en utilisant Tapatalk 1
flamalex Posté(e) le 26 septembre 2017 Signaler Posté(e) le 26 septembre 2017 (modifié) lol j’aimerai pouvoir en dire autant pour mon petit probleme Modifié le 26 septembre 2017 par flamalex
sebcbien Posté(e) le 26 septembre 2017 Auteur Signaler Posté(e) le 26 septembre 2017 je ne pense pas que ce 0 et 2 vienne de mon code, je viens de regarder mon debug, je ne vois rien de tel... Quel code utilises-tu ? Je dois avouer que je n'ai vraiment plus le code en tête depuis tout ce temps :-/
pepite Posté(e) le 26 septembre 2017 Signaler Posté(e) le 26 septembre 2017 @flamalex, Je viens de bien relire le code, en fait le 2 que tu vois dans le debug est l"error code" du paquet tcpsocket envoye pour le test du ping. Donc lorsque tu as 0 dans le debug cela fonctionne et 2 c'est l'erreur donc pas de ping, pas de detection, normal Le 23/09/2017 à 13:58, flamalex a dit : si on a 0, alors ca fonctionne si on a 2, ca ne fonctionne pas Dans le code il est prévu de reessayer sauf que tu as fixé à 1 fois : Le 22/09/2017 à 18:20, flamalex a dit : local _maxRetryProcess = 1; modifie le 1 ;-) mets plus d'essais ;-) Decommente cette ligne pour voir ou tu en es --fibaro:log("Retry process, please wait..."); Rien de modifié sur les tels ? le port est le bon ? toujours ouvert ?
pepite Posté(e) le 26 septembre 2017 Signaler Posté(e) le 26 septembre 2017 @sebcbien c'est pas ce debug Le 22/09/2017 à 18:20, flamalex a dit : --send packet local bytes, errorCode = tcpSocket:write("test"); fibaro:debug(errorCode)
sebcbien Posté(e) le 26 septembre 2017 Auteur Signaler Posté(e) le 26 septembre 2017 oui effectivement... 2
flamalex Posté(e) le 26 septembre 2017 Signaler Posté(e) le 26 septembre 2017 (modifié) ok je teste non je n’ai rien changé seb, mon code est en haut de page. la par exemple, je n’ai encore rien touché et il me trouve [DEBUG] 15:47:38: 192.168.1.187 62078 [DEBUG] 15:47:38: 0 EDIT: bon, je ne sais pas quoi dire, depuis 4 jours ça ne fonctionnait plus, la je n'ai rien touché et il refonctionne parfaitement comme avant je m'interroge tjrs sur le port, car j'ai tjrs mi celui la 62078 sans savoir si il est vraiment ouvert BON !!! "appareil a ete trouvé" mais je ne sais pas pourquoi ça fonctionne je testerai ce soir sur celui de ma femme, on verra pour cette histoire de 0 et 2, ok je comprends mieux Pepite mais alors cela aurait pu venir de mon port? ( tcpsocket ) Modifié le 26 septembre 2017 par flamalex 2
flamalex Posté(e) le 26 septembre 2017 Signaler Posté(e) le 26 septembre 2017 (modifié) ca recommence [DEBUG] 15:51:15: 192.168.1.187 62078 [DEBUG] 15:51:15: 2 [DEBUG] 15:51:19: 192.168.1.187 62078 [DEBUG] 15:51:19: 2 [DEBUG] 15:51:33: 192.168.1.187 62078 [DEBUG] 15:51:33: 0 [DEBUG] 15:54:46: 192.168.1.187 62078 [DEBUG] 15:54:46: 0 [DEBUG] 15:55:42: 192.168.1.187 62078 [DEBUG] 15:55:42: 0 [DEBUG] 16:02:20: 192.168.1.187 62078 [DEBUG] 16:02:20: 2 [DEBUG] 16:02:23: 192.168.1.187 62078 [DEBUG] 16:02:23: 2 [DEBUG] 16:02:27: 192.168.1.187 62078 [DEBUG] 16:02:27: 2 IDEM avec "local _maxRetryProcess = 3;" ça a fonctionné le tps que vous etiez connectés ah ah !! ça vient de refonctionner, vous vous etes à nouveau connectés !! [DEBUG] 16:06:22: 192.168.1.187 62078 [DEBUG] 16:06:22: 2 [DEBUG] 16:06:26: 192.168.1.187 62078 [DEBUG] 16:06:26: 2 [DEBUG] 16:06:58: 192.168.1.187 62078 [DEBUG] 16:06:58: 2 [DEBUG] 16:07:01: 192.168.1.187 62078 [DEBUG] 16:07:01: 2 [DEBUG] 16:07:05: 192.168.1.187 62078 [DEBUG] 16:07:05: 2 [DEBUG] 16:08:59: 192.168.1.187 62078 [DEBUG] 16:08:59: 0 EDIT: j'ai passé local _maxRetryProcess = 5; local maxtime = 14; rien à faire, j'ai 5 fois le 2 quelque soit le port, c'est tjrs pareil Modifié le 26 septembre 2017 par flamalex
ADN182 Posté(e) le 26 septembre 2017 Signaler Posté(e) le 26 septembre 2017 Le port que tu indique (62078) ça ne serait pas une application particulière iOS ou Android ? Pour tester si tu appareil est en vie car il se déconnecte du wifi ? Je n'ai pas non plus ça dans le debug du bouton de présence Tu as qu'elle version ?Envoyé de mon Nexus 5X en utilisant Tapatalk
flamalex Posté(e) le 26 septembre 2017 Signaler Posté(e) le 26 septembre 2017 (modifié) hmmm Modifié le 28 septembre 2017 par flamalex
Domodial Posté(e) le 26 septembre 2017 Signaler Posté(e) le 26 septembre 2017 Concernant mon histoire d'URL dans Trigger et du systeme d'authen de Fibaro, le plus simple était de faire un utilisateur et n'utiliser l'admin (email) que pour l'admin. Comme ça maintenant les choses sont moins tordues Merci à tous, mes variables changent bien avec trigger (Tasker).
flamalex Posté(e) le 28 septembre 2017 Signaler Posté(e) le 28 septembre 2017 ca doit etre la derniere, j’ai inseré le code plus haut. pour le port, je ne sais plus mais j’en ai essayé bcp d’autres sur iphone en ios11, vous etes sur quel port?
Rem's Posté(e) le 30 septembre 2017 Signaler Posté(e) le 30 septembre 2017 bonjour à tous, J'ai un soucis, au debug, j'ai : 638 Quelqu'un peut être à eu le même soucis, d'avance merci pour votre aide
Fred.domotique Posté(e) le 3 décembre 2017 Signaler Posté(e) le 3 décembre 2017 Salut Seb, j'utilise depuis pas mal de temps ce VD, j'était encore en version ping et je viens de mettre à jour en 2.3. Pas de soucis sauf que je souhaite lancé la recherche uniquement sur ouverture d'un de mes ouvrants. En gros mon GEA detecte ouverture et lancement des recherches. As tu une idée car si je supprime la boucle principal et que je lance l'appui du bouton VD sur détection rien ne fonctionne. Merci encore
Messages recommandés