-
Compteur de contenus
819 -
Inscription
-
Dernière visite
-
Jours gagnés
4
Tout ce qui a été posté par flamalex
-
Salut Pepite, cela donnerait donc: GEA.add({id["SIRENE"],{"Value",id["ALARMESTATUT"],1}},-1 , "stop tt apres alarme" , {{"VirtualDevice",id["VD_CAMCARPORT"],2},{"VirtualDevice",id["VD_CAMJARDIN"],2},{"VirtualDevice",id["VD_CAMINT"],2},{"turnOff", id["ECL_JARDIN"]},{"turnOff", id["DIM_SAM"]},{"turnOff", id["DIM_ESC"]}}) c'est bien ça? avec le trigger -1 sur SIRENE? (je ferai les essais plus tard, pcq madame va devenir folle sinon, oui effectivement, c'est ma première ligne à l'inverse, mais cette ligne ne déclenchera jamais, puisque le trigger sur SIRENE va déclencher alors que le statut ne sera pas encore à 1, tu vois ce que je veux dire, tt est dans mon explication et images ci dessus "Ce serait plutot à mettre dans le support GEA ;-) " alors oui en effet, car vous m'aviez deja fait la remarque, j'y suis allé, mais je n'ai pas réussi à poster, je n'y ai rien compris, peut etre pas assez cherché
-
exact, si tu n'as pas de notif dessus, tu ne t'en aperçois pas, sauf si tu explores le GEA (dans mon cas) avez vous le mm problème lorsqu'il n'est pas trigger ou en LUA? ce qui est etrange également, le phénomène chez moi, reste très ponctuel!! 60min après un reboot (précis)
-
si vous collez ce code dans une scene et que vous rebootez, vous pourrez visualiser l'etat du ou des IDS pour moi 153 et 154 la sirene et le statut merci à NIKKO pour ce code --[[ %% properties 153 value 154 value %% globals --]] -- Definition de l'id du portable si notification sinon mettre la ligne en commentaire local portable = 130 -- Récupération du trigger local trigger = fibaro:getSourceTrigger() if trigger['type'] == 'property' then local msg = string.format('Trigger ID: %s ( %s ) | Valeur: %s',trigger['deviceID'],fibaro:getName(trigger['deviceID']),fibaro:getValue(trigger['deviceID'],trigger['propertyName'])) fibaro:debug(msg) if portable then fibaro:call(portable,'sendPush',msg) end end @Joss, je confirme "En revanche je n'ai pas l'impression qu'il y ait réellement un changement d'état 0/1/0 du module" , il n'y a pas de changement dans le panneau d'evenements, dans le GEA la ligne apparait tt de mm.
-
Bonjour à tous, EDIT du 13.04.16: RESUME SCENARIO: l'alarme est activée, je me fais détecter, la sirène hurle, les volets se ferment et les éclairages s'allument, ça c'est bon!! le problème arrive lors de la désactivation de l'alarme, notamment lorsque la sirene s’arrête, celle ci vérifie que la centrale d'alarme "ALARMESTATUT" est désactivée également et donc lance une série d'action et c'est bien dans cette ordre qu'il faut lire les choses, La SIRENE s’arrête, vérifie que l'ALARMESTATUT est désactivée puis lance actions le souci vient du fait que lorsque la sirène s’arrête, l’état de l'alarmestatut n'est pas encore remonté à la box (1sec de retard par rapport à l'etat de la SIRENE) de ce fait, les actions ne sont pas lancées. ​j’espère que ce résume est plus clair bon! l'alarme est activée, je me fais détecter, la sirène hurle, les volets se ferment et les éclairages s'allument, ca c'est bon!! le problème arrive lors de l’arrêt, la désactivation de l'alarme si la sirène hurle en fait, la sirène hurle( donc l'alarme est activée), pour qu'elle arrête d'hurler, on appuie sur le bouton stop d'une télécommande de l'alarme (par exemple), donc la tu vas désactiver l’alarme qui va ensuite, dans la seconde, arrêter la sirène, je pense qu'il y a un tps de retard pour que l'info "alarmestatut" arrive comme etant désactivée, de l'ordre d'une seconde, mais c'est suffisant pour dérégler le bidule (voir image ci dessous) donc pour la deuxième ligne GEA, le script ne s'actionne pas, puisqu'on lui dit "sur une basculement de la sirene 0/1, à la condition que l'alarme est désactivée alors "stop tt apres alarme" " seulement je pense que pour lui, lorsque la sirene s’arrête et qu'il vérifie que l'alarme est désactivée, celle ci n'a pas encore eu le tps d'envoyer l'info comme étant désactivée (voir image) grosse prise de tète, cette deuxième ligne lol pour info, je reçois bien le push de la première ligne "alarme intrusion sirene en marche" mais pas celui de la deuxieme ligne, le "stop tt après alarme" voici mon GEA (pour info, le fgbs321 IN1 et IN2 sont en normalement fermé, donc au repos ils sont sur 1) -- ALARME -- Quand la Sirene s'active si alarme activée, alors on allume tout et on ferme les volets et REC CAMERA (1= start) (3=enable cam) GEA.add({id["SIRENE"],{"Value",id["ALARMESTATUT"],0}}, -1 , "ALARME INTRUSION SIRENE en Marche" , {{"Inverse"},{"VirtualDevice",id["VD_CAMCARPORT"],1},{"VirtualDevice",id["VD_CAMJARDIN"],1},{"VirtualDevice",id["VD_CAMINT"],1},{"turnOn", id["DIM_SAM"]},{"turnOn", id["DIM_ENTREE"]},{"turnOn", id["DIM_ESC"]},{"turnOn", id["ECL_SAM1"]},{"turnOn", id["ECL_SAM2"]},{"turnOn", id["ECL_JARDIN"]},{"Close",id["VR_SALON"],100},{"Close",id["VR_CUISINE"],100},{"Close",id["VB_ENTREE"],100},{"Close",id["VB_SAM"],100}}) -- Quand la sirène s'arrète, si l'alarme est desactivée alors arret eclairage jardin, DIM SAM et DIM ESC et STOP CAMERA (2= stop) (4=disable cam) GEA.add({id["SIRENE"],id["ALARMESTATUT"]}, -1 , "stop tt apres alarme" , {{"VirtualDevice",id["VD_CAMCARPORT"],2},{"VirtualDevice",id["VD_CAMJARDIN"],2},{"VirtualDevice",id["VD_CAMINT"],2},{"turnOff", id["ECL_JARDIN"]},{"turnOff", id["DIM_SAM"]},{"turnOff", id["DIM_ESC"]}}) voici en image ce qui s'est produit à deux moments differents lors du test: regardez ce qui ce passe à 11h49min 48sec, c'est la qu'il y a un problème, ici la sirène se déclare arrêtée avant le statut, alors que normalement, le statut devrait être à l’arrêt avant la sirène et donc mon scénario devrait fonctionner. le problème vient du fait qu'il y a 1sec entre l’arrêt de la sirène et l’arrêt de l'alarme, d'ou le non déclenchement de la ligne "stop tt après alarme" une explication, une solution ??? il faudrait une tempo sur la "sirene", si celle ci est arretée, alors tempo de 3sec, puis lancement de ma deuxieme ligne GEA, histoire d'etre certain que le statut soit bien passé en desactivé merci
-
@Henri, ok, je regarde ca, à tete reposée demain mais cela reste des "pansements" , si je comprends bien, tu contournes (en mm tps je comprends que cela puisse être saoulant d’être réveillé par des notifs) afin d’éviter cette "anomalie", n'y a t il pas, "matériellement" ou autre, quelque chose a faire pour que l'appareil mémorise son dernière état, comme bcp d'autres modules ou systèmes informatique ou Electronique? matériellement, pcq dans certain equipement il me semble que l'on peut paramétrer la remise à l'etat initial (avant coupure ou reboot ou save) après coupure de courant par exemple imaginez une tronçonneuse se re mettre en route après une coupure de courant..........!!!! c'est tt de mm aberrant dans une box domotique!! non ?!?!!!
-
ok, je ne suis pas seul mais alors pourquoi? j'ai un trigger sur la sirene si j'avais uniquement cette condition, cela serait genant pour le scenario! imaginez coupure edf, reboot auto suivant etat de la Ram......vous avez un code GEA qui: si sirene arretée et statut alarme arretée alors "on arrete tout" stop les DIM ecl, volets............. n'y a t il pas une solution pour eviter cela après reboot? et pourquoi après 60min suite au reboot? @Henri oui en effet nous avons la mm anomalie tu n'as pas eu de réponse concluante dans ton sujet et cela concernait du LUA je suis en GEA, j'ai un trigger sur statut alarme et un trigger sur sirène le probleme ne vient pas du code, de tte évidence d'ou ma (mes) question(s) @Chris, ton retour?
-
avant l'anomalie il est sur l'etat 0, puis au moment de "l'anomalie" il bascule sur 1 puis revient a son etat initial. ce pourquoi je recois la notif.
-
Bonjour à tous, depuis l'acquisition de la HC2, il y a plusieurs mois, j'ai une "anomalie" en effet, à chaque redémarrage de la HC2, 60 minutes après, l’état du fgbs321, bascule rapidement pour revenir à son état initial je ne trouve absolument pas la raison, auriez vous une idée ? je vous remercie par avance pour info: -sous toutes les versions de la HC2 l'anomalie apparaît -pour m'en rendre compte, j'ai placé message dans "m'informer" une notification push et mail -sur l'entrée IN1 (sirene) de ce module j'ai un contact relais qui se ferme en cas de "sirène enclenchée" - sur IN2, statut alarme - enfin, je fais appel à GEA pour lancer scénario en cas d'alarme l'alarme est indépendante de la HC2 dans son fonctionnement j'utilise uniquement une sortie de l'alarme pour récupérer le statut et une pour état sirène
-
@Nico, que possèdes tu comme téléphone? iphone ou android
-
pour l'iphone, il y a bien une solution, le JAILBREAK, mais pour l'avoir fait il y a qqes années sur l'iphone 3, c'est gonflant à la longue, il faut installer 2 utilitaires qui permettront de faire sauter la mise en veille du "wifi" "Keep Your Wifi ON While iPhone is in Sleep Mode! .....All you need is two things: Activator and KeepAwake. Both of these tools are available via Cydia. Activator can be installed via BigBoss repo and KeepAwake can be installed via iSpazio repo...." @pepite bienvenu au club des ibidules les instructions sont ici install cydia: http://www.gentside.com/iphone-6s/jailbreak-iphone-6s-le-tuto-d-039-installation-du-jailbreak-de-ios-9-par-pangu_art72044.html voila ton iphone jailbreak (euh attention, save bien tes données avant, pcq on sait jamais, meme si ce n'est pas fibaro qui encode les programmes de cydia iphone, on n'est jamais trop prudent )))))) et install les 2 applis: http://jaxov.com/2010/07/keep-your-wifi-on-iphone-sleep-mode/ et normalement nous nous retrouvons avec un IANDROPHONE pour la detection de presence à tester EDIT: il y a une autre solution: traduction: "Cette vidéo Youtube décrit l'utilisation sur l'application AppStore de "Onavo Extend" pour mettre en place un réseau VPN fictif qui forcera votre iPhone pour rester connecté au WiFi . Je ne l'ai pas essayé cependant.Voir la vidéo pour une explication détaillée de la configuration et pourquoi Onavo a été chois"i: http://www.youtube.com/watch?v=jwS67c9oQJ0 mais ca date de l'iphone 4 ou 5, donc à voir EDIT2: ouh ouh ouh ouh!!!!! ce qui m'a fait dire que.................. (pourquoi ne pas y avoir pensé plus tot) je viens donc d'installé VPN sur mon SYNO, afin d'eviter de passer par des appli vpn dans d'autres pays....., l'iphone communique en vpn avec le syno en direct depuis 20min, sans déconnexion, tt en etant en veille depuis 20min, la HC2 est tte "verte" depuis ce tps [DEBUG] 15:47:27: Device 70:48:0f:72:1f:4f Has been found after 16 s [DEBUG] 15:47:27: Global Var: Phone_Alex_Present Set to 1 ca sent bon bon on va attendre encore.................. avec cette methode, l’accroche est très bonne et fiable après 1h30 de tests c'est une bonne piste, le problème est que lorsque le wifi décroche (volontairement) et qu'il se raccroche volontairement, il y a une notif sur l'iphone qui demande de valider la connexion VPN, et pas moyen de l'activer automatiquement la question est maintenant: comment forcer activation vpn iphone si wifi activé sans intervenir manuellement, sinon, ca ne sert à rien! (pcq sinon, autant déverrouiller le phone lorsque l'on souhaite activer la présence)
-
@Lazer "aller interroger le dernier timestamp connu des adresses MAC de tout le réseau. Et j'insiste sur "tout le réseau"...." ca pourrait etre interessant d'essayer sur un autre modem routeur que celui de la freebox ???
-
le push mail est active, et était activé pdt ts mes tests, mais ça ne change rien. il me reste a tester "le partage de connexion" (@stephane), mais je ne vois pas la logique, puisque le partage consiste a partager ton réseau 4g3g avec un perif tel qu un pc ou autre phone, histoire que ces perifs profite du réseau de ton iphone, donc ????? mais je vais tester ce soir. edit: définition partage connexion IPHONE Le partage de connexion (ou tethering) vous permet d'utiliser votre iPhone et sa connexion au réseau Internet comme passerelle, afin d'en donner l'accès à votre ordinateur (ou autre périphérique). En d'autres termes, vous pourrez surfer sur Internet depuis votre ordinateur par l'intermédiaire de votre iPhone, sous réserve de couverture DATA (données cellulaires). La fonction "partage de connexion" permet de partager la connexion internet de votre iPhone sous iOS 9 avec un ordinateur, un iPad ou tout autre appareil connecté en wifi. Les équipements se connectent à internet grâce à la connexion réseau de votre iPhone. je pense que la définition est clair, je ne souhaite pas troquer la fibre optique de mon modem routeur wifi pour un iphone en 3G/4G mais je vais tester ce soir de plus, dans l'éventualité ou cela fonctionnerait, par expérience, pour l'avoir effectué entre un pc portable qui venait chercher la connexion de mon iphone, le phone chauffe énormément et la batterie s'en retrouve diminuée fortement. "Le partage de connexion est certes très pratique et peut rendre de nombreux services mais il a un impact pour votre iPhone 6. Le téléphone va grandement chauffer quelques minutes après que la fonction soit activée et – surtout – la batterie va baisser à vue d’Å“il. Nous vous conseillons donc de brancher le smartphone à une prise secteur pour ne pas vous retrouver en galère au cours de la journée. Dans la mesure du possible bien sà»r. Pour la surchauffe de l’iPhone 6, nous vous conseillons de le laisser refroidir une fois que le partage de connexion est terminé. Tout simplement pour ne pas vous exposer à des ondes potentiellement nocives pour votre personne." @Seb, je pense être dans une impasse avec l'iphone, il suffit de voir le debug (joint par mail) pour ce rendre compte que ce n'est pas fiable. bcp trop aléatoire je confirme que cela fonctionne très bien avec les androids, j'ai testé sur 3 phones différents mais sous android, depuis hier soir et ca fonctionne tjrs autre point: @stephane, le port de SONOS Port 62078 ne sert a rien ici, car nous faisons appel à l'adresse MAC, d'ou cette nouvelle version, mise à jour de SEB
-
exact Nico et fini les problemes de triggers, de boucles ds VD .....
-
comme je disais plus haut, j'ai deja essayé, j'ai exactement le mm probleme, il décroche du reseau c'est possible avec les iphones IOS avant 9 EDIT: après 40 min de tests sur Android, super pour android, fonctionne nickel ca ouvre la porte à énormément de possibilité (l'absence la présence dans le logement.....) BRAVO SEB je retourne sur iphone, j'aimerai y arriver EDIT2: j'ai egalement testé avec un android sur un phone chinois, ca fonctionne IMPEKKKKK )) EDIT 3: il ne me reste plus qu'a brancher des phone chinois sur les voitures ....
-
je cherche une solution, c'est un casse tete
-
en effet, je viens de tester avec un S5, une tuerie, je confirme, ss android ça fonctionne mais sur iphone
-
dans le debug, il y a un intervalle ou pdt 18 min il a perdu la connexion, on dirait que c'est vraiment aléatoire c'est fait, je teste EDIT: ce qui est curieux, c'est que dans le routeur, l'adresse figure bien et ne bouge pas 70480f721f4f 192.168.000.188 255.255.255.000 D:00 H:01 M:00 S:00 Sun Apr 03 16:34:14 2016 EDIT2: à l'inverse, je lance de debug en ayant déconnecté le wifi, il lui faut 2min43sec pour détecter que l'iphone n'est pas sur le reseau si au final, il lui faut 2m43 pour détecter ma présence, ca risque d’être gênant pour désactiver une alarme par exemple à l'inverse, si il lui faut 10 min pour activer alarme pcq absent, c'est moins gênant, mais bon!!!! il doit bien y avoir une solution franchement Seb, tu m'as donné espoir lol en attendant une solution, j'utilise la notification push pour reveiller l'iphone, lorsque je franchis une barriere IR, ce qui desactive l'alarme immediatement (mais je n'ai pas de solution pour l'activer)
-
alors justement j'ai un doute je reteste il me semble ne pas y avoir touché et je crois qu'il s'est reveillé mais je n'en suis pas certain, je pense que l'on m'a appelé pdt les tests je reviens EDIT: lorsque l'iphone est sur verrouillage auto avec mise en veille apres 1 minute en moyenne, il se reveille tt seul ttes les 4 à 6 minutes puis il confirme, si connexion OK, apres 2 min (normal tu me diras) lorsque l'on desactive le verrouillage auto, et que l'on passe l'iphone en veille, par appui sur le bouton de la tranche (donc ecran noir) il est detecté, puis 4 minutes apres il ne l'est plus et 24 sec apres il est detecté (lol) et 3 min apres il n'est plus detecté pour éviter de polluer ton sujet, je peux t'envoyer les 6 pages de debug
-
- la HC2 est connectée directement au routeur qui fournit le wifi ? Yes le routeur est, pour le moment, le modem de base de numericable CBV734EW http://www.castlenet.com.tw/ - tu as combien de devices wifi et ethernet ? j'ai ceci comme equipement, une tres grosse partie en ethernet direct sur switch CBV734EW PC FOSCAM Y-CAM:BULLETHD1080 Y-CAM:BULLETHD1080 axis foscam c2 DS415+ 5.1-5021 IPAD GALAXY NOTE 10.1 UE46D6200 IPHONE Alex IPHONE Flo pc portable LAN 2 alarm Home center 2 visonic ltd HIKVISION Imprimante RASPBERRY Donc en wifi, l'ipad, la galaxy tab, les 2 iphones, le raspberry, la foscam c2 et le pc portable le reste en ethernet direct sur switch au "cul" du routeur
-
ok, j'ai fait la modif je reboot EDIT: à l'instant [DEBUG] 14:18:20: Searching for Mac Address: 70:48:0f:72:1f:4f [DEBUG] 14:18:21: Loop #0 since 00:00:00 [DEBUG] 14:18:28: Loop #1 since 00:00:08 [DEBUG] 14:18:31: Device 70:48:0f:72:1f:4f Has been found after 8 s [DEBUG] 14:18:31: Global Var: Phone_Alex_Present Set to 1 [DEBUG] 14:20:20: Searching for Mac Address: 70:48:0f:72:1f:4f [DEBUG] 14:20:20: Loop #0 since 00:00:00 [DEBUG] 14:20:28: Loop #1 since 00:00:08 [DEBUG] 14:20:36: Loop #2 since 00:00:16 [DEBUG] 14:20:44: Loop #3 since 00:00:24 [DEBUG] 14:20:47: Device 70:48:0f:72:1f:4f Has been found after 24 s [DEBUG] 14:20:47: Global Var: Phone_Alex_Present Set to 1 EDIT 2: j'attends la veille des 60sec et te dis "quoi" (comme on dit dans le Nord) EDIT3: ARRRRFFFhhh Non, apres quelques minutes de veille (je n'ai absolument pas touché au phone pdt le test [DEBUG] 14:18:20: Searching for Mac Address: 70:48:0f:72:1f:4f [DEBUG] 14:18:21: Loop #0 since 00:00:00 [DEBUG] 14:18:28: Loop #1 since 00:00:08 [DEBUG] 14:18:31: Device 70:48:0f:72:1f:4f Has been found after 8 s [DEBUG] 14:18:31: Global Var: Phone_Alex_Present Set to 1 [DEBUG] 14:20:20: Searching for Mac Address: 70:48:0f:72:1f:4f [DEBUG] 14:20:20: Loop #0 since 00:00:00 [DEBUG] 14:20:28: Loop #1 since 00:00:08 [DEBUG] 14:20:36: Loop #2 since 00:00:16 [DEBUG] 14:20:44: Loop #3 since 00:00:24 [DEBUG] 14:20:47: Device 70:48:0f:72:1f:4f Has been found after 24 s [DEBUG] 14:20:47: Global Var: Phone_Alex_Present Set to 1 [DEBUG] 14:22:20: Searching for Mac Address: 70:48:0f:72:1f:4f [DEBUG] 14:22:20: Loop #0 since 00:00:00 [DEBUG] 14:22:28: Loop #1 since 00:00:08 [DEBUG] 14:22:36: Loop #2 since 00:00:16 [DEBUG] 14:22:44: Loop #3 since 00:00:24 [DEBUG] 14:22:52: Loop #4 since 00:00:32 [DEBUG] 14:23:00: Loop #5 since 00:00:40 [DEBUG] 14:23:08: Loop #6 since 00:00:48 [DEBUG] 14:23:16: Loop #7 since 00:00:56 [DEBUG] 14:23:24: Loop #8 since 00:01:04 [DEBUG] 14:23:32: Loop #9 since 00:01:12 [DEBUG] 14:23:40: Loop #10 since 00:01:20 [DEBUG] 14:23:48: Loop #11 since 00:01:28 [DEBUG] 14:23:56: Loop #12 since 00:01:36 [DEBUG] 14:24:04: Loop #13 since 00:01:44 [DEBUG] 14:24:12: Loop #14 since 00:01:52 [DEBUG] 14:24:20: Device 70:48:0f:72:1f:4f Has been NOT been found [DEBUG] 14:24:20: Global Var: Phone_Alex_Present Set to 0 [DEBUG] 14:24:20: Searching for Mac Address: 70:48:0f:72:1f:4f [DEBUG] 14:24:20: Loop #0 since 00:00:00 [DEBUG] 14:24:28: Loop #1 since 00:00:08 [DEBUG] 14:24:36: Loop #2 since 00:00:16 [DEBUG] 14:24:44: Loop #3 since 00:00:24 [DEBUG] 14:24:52: Loop #4 since 00:00:32 [DEBUG] 14:25:00: Loop #5 since 00:00:40 [DEBUG] 14:25:08: Loop #6 since 00:00:48 [DEBUG] 14:25:16: Loop #7 since 00:00:56 [DEBUG] 14:25:24: Loop #8 since 00:01:04 [DEBUG] 14:25:32: Loop #9 since 00:01:12 [DEBUG] 14:25:40: Loop #10 since 00:01:20 [DEBUG] 14:25:48: Loop #11 since 00:01:28 [DEBUG] 14:25:56: Loop #12 since 00:01:36 [DEBUG] 14:26:04: Loop #13 since 00:01:44 [DEBUG] 14:26:12: Loop #14 since 00:01:52 [DEBUG] 14:26:20: Device 70:48:0f:72:1f:4f Has been NOT been found [DEBUG] 14:26:20: Global Var: Phone_Alex_Present Set to 0 je suis deg, en effet cela fait plusieurs mois que je cherche à pinger sur iphone, chose que j'arrive à effectuer avec le syno, le RPI Pi2 et la hc2, mais cela ne fonctionne que 30-60sec donc pas moyen j'ai le mm résultat à chaque fois l'iphone 6s, entre en veille et décroche du reseau wifi tt seul après 30-60sec
-
Salut Seb je teste sur iphone -- IP Smartphone Presence Check V1.2 - check with ping on port sonos -- IP Smartphone Presence Check V2.0 - sonos not reliable anymore, using arp table -- Copyright © 2014 Sébastien Jauquet. -- http://www.domotique-fibaro.fr/index.php/topic/2613-detection-de-pr%C3%A9sence/ --Using code from: -- Ping v 1.0.1 [05-2013] Copyright © 2013 Jean-christophe Vermandé -- http://www.domotique-fibaro.fr/index.php/topic/109-ping-dun-%C3%A9quipement-r%C3%A9seau/page-2 -- mac adress check: Roman -- http://forum.fibaro.com/index.php?/topic/21062-idea-how-to-monitor-people-at-home/#entry86009 local variable_globale_phone = "Phone_Alex_Present"; local current_icon_absent = 75 -- homme local current_icon_present = 74 -- homme --local variable_globale_phone = "Phone_GG_Present"; --local current_icon_absent = 1037 -- femme --local current_icon_present = 1036 -- femme local maxRetry_Process = 20; local scheduler_value = 2; -- (minutes) scheduled time of this process (must match the mainloop scheduled time) local check_wait = 5; -- (seconds) to wait between each poll device local debug = true -- local login = "admin"; -- local pass = "not needed with port 11111"; local selfId=fibaro:getSelfId(); local time = tonumber(os.time()); local maxtime = (scheduler_value*60) - (check_wait+1); local mac = fibaro:get(selfId, 'IPAddress'); local HC2 = Net.FHttp("127.0.0.1", 11111); -- HC2:setBasicAuthentication(login, pass); function Debug(color, message) if debug then if color and color ~= "" then fibaro:debug('<span style="color:'..color..';">'..message..'</span>'); else fibaro:debug(message); end end end 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 local function _ping(retry) retry = retry or 0; -- notify state local elapsed = os.difftime(os.time(), tonumber(time)); local msg = "Loop #".. retry .." since "..SecondsToClock(elapsed); fibaro:log(msg); 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 < maxRetry_Process then --fibaro:log("Retry process, please wait..."); fibaro:sleep(1*750); return _ping(retry + 1); end return false; end end local function FindMac(retry) retry = retry or 0; local foundUser = false; -- notify state local elapsed = os.difftime(os.time(), tonumber(time)); local msg = "Loop #".. retry .." since "..SecondsToClock(elapsed); -- check for no more than maxtime seconds if elapsed > maxtime then return false; end fibaro:log(msg); Debug("yellow",msg) local response, status, errorCode = HC2.POST(HC2, "/api/networkDiscovery/arp", "{}"); local jsonTable = json.decode(response) --fibaro:debug("errorcode:"..errorCode.."status: "..status) if (tonumber(errorCode)==0 and tonumber(status)==200) then for i, name in ipairs(jsonTable) do if foundUser == false then --Debug("grey",i.." found mac:"..name['mac']) if(name['mac'] == mac) then foundUser = true; Debug("green","Device "..name['mac'].." Has been found after "..elapsed.." s"); end end end else Debug("red","error json decode") end --check for error if foundUser == true then return true; else if retry < maxRetry_Process then --fibaro:log("Retry process, please wait..."); fibaro:sleep(check_wait*1000); return FindMac(retry + 1); end return false; end end fibaro:log("Starting process"); Debug("yellow","Searching for Mac Address: "..mac) --ping device, secure with pcall to catch errors. --local f, result = pcall(_ping); local f, result = pcall(FindMac); local Lock_Away = fibaro:getGlobal("Lock_Away") if (f) then if (result == true) and (Lock_Away == "Unlocked") then fibaro:log("Device has been found."); fibaro:setGlobal(variable_globale_phone,"1") Debug("green","Global Var: "..variable_globale_phone.." Set to 1"); fibaro:call(selfId, "setProperty", "currentIcon", current_icon_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("Device was not found!"); fibaro:setGlobal(variable_globale_phone,"0") Debug("red","Device "..mac.." Has been NOT been found"); Debug("red","Global Var: "..variable_globale_phone.." Set to 0"); fibaro:call(selfId, "setProperty", "currentIcon", current_icon_absent) end else fibaro:log("Error: " .. tostring(f)); end local selfId = fibaro:getSelfId(); local current_icon_absent = 75 -- homme local current_icon_present = 74-- homme --local current_icon_absent = 1037 -- femme --local current_icon_present = 1036 -- femme --local Verification = fibaro:get(selfId,"TCPPort"); -- 1ère fois que le main loop s'exécute, on crée une variable nommée "instance" car elle n'existe pas. Elle existera au 2ème passage donc ne sera pas recrée. if (not instance) then -- on indique la fréquence d'execution souhaitée (en minutes) instance = { lastrun = 0, every = 2 } fibaro:debug("first run") end -- on vérifie la différence entre cette exéction et la dernière (stocké dans instance.lastrun) diff = os.date("*t", os.difftime(os.time(), instance.lastrun)) -- si la différence en minutes et supérieure ou égale à la fréquence souhaitée (instance.every) if (diff.min >= instance.every) then -- TON CODE --- fibaro:call(selfId, "pressButton", "1") --[[local status = fibaro:getGlobal("Phone_GG_Present") if status == "0" then fibaro:call(selfId, "setProperty", "currentIcon", current_icon_absent) end if status == "1" then fibaro:call(selfId, "setProperty", "currentIcon", current_icon_present) end--]] -- FIN DE TON CODE --- -- on stock l'heure de la nouvelle exécution instance.lastrun = os.time() fibaro:debug("executed") end voici mon debug EDIT: l'iphone est en veille depuis 60 sec, nettoyage du debug puis demarrage de celui ci [DEBUG] 14:04:02: Searching for Mac Address: 70:48:0f:72:1f:4f [DEBUG] 14:04:02: Loop #0 since 00:00:00 [DEBUG] 14:04:02: Loop #9 since 00:01:12 [DEBUG] 14:04:04: Loop #14 since 00:01:52 [DEBUG] 14:04:10: Loop #1 since 00:00:08 [DEBUG] 14:04:10: Loop #10 since 00:01:20 [DEBUG] 14:04:12: Device 70:48:0f:72:1f:4f Has been NOT been found [DEBUG] 14:04:12: Global Var: Phone_Alex_Present Set to 0 [DEBUG] 14:04:13: Device 70:48:0f:72:1f:4f Has been found after 8 s [DEBUG] 14:04:13: Device 70:48:0f:72:1f:4f Has been NOT been found [DEBUG] 14:04:13: Global Var: Phone_Alex_Present Set to 0 [DEBUG] 14:04:13: Device 70:48:0f:72:1f:4f Has been found after 80 s [DEBUG] 14:04:13: Device 70:48:0f:72:1f:4f Has been NOT been found [DEBUG] 14:04:13: Global Var: Phone_Alex_Present Set to 0 pourquoi me dit il qu'il trouve mon iphone, puis d'un coup il le trouve plus a savoir que mon phone est en wifi, que je n'y touche pas lorsque je lance le debug la variable reste tt le tps à 0
-
oui en effet, ce qui est logique je vais me retourner sur la Ram merci
-
Bonjour, avez vous avancé sur cette idée? merci
-
@PITP2, exact, ce pourquoi save GEA pour v4.080 avant modif pour ce nouveau GEA pour v4.081
-
@jmg38 @Steven idem, ca fonctionne avec la solution de steven @Jojo, ok, merci pour l'info, c'est pas top de devoir raccrocher les icons apres coup, les id des icons changeront?