pixynico Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 Bonjour à tous, Je viens de mettre en place GEA. Je remercie Steven et consoeurs pour tout le travail fourni et la masse d'informations que l'on peut trouver sur le forum. Pour débuter, j'ai juste mis une variable globale "Intrusion". Ce que je cherche à faire c'est que lorsqu'il y a une intrusion et que mon alarme n'a pas été désactivée après 40 secondes, je reçois un sms et la sirène se déclenche. Pour l'instant je cherche juste à recevoir un sms si la variable "intrusion" est positionnée à 1 depuis plus de 40 secondes. J'ai donc effectué ceci : --[[ %% autostart %% properties %% globalsIntrusion--]] -- v 5.42 -- ================================================== -- GEA : Gestionnaire d'Evénements Automatique -- ================================================== -- -- ------------------------------------------------------------ -- Historique / History -- ------------------------------------------------------------ -- L'historique complet est diponible ici / the full history is available here : -- http://www.domotique-fibaro.fr/index.php/topic/1082-gea-gestionnaire-dévénements-automatique/?p=12428 -- Paramétrage de GEA / GEA configuration function config() GEA.isVersionFour = true -- On est en version 4.017 Beta ou supérieure / GEA.language = "FR" -- Votre langue : FR (default) / Your language : EN GEA.checkEvery = 30 -- On vérifie toutes les X secondes (default : 30) / Check every X seconds GEA.portables = {153,154} -- Liste des portables devant recevoir une notification {70, 71} / Smartphones you want to be notified GEA.debug = false -- Affichage des traces dans la console (default : false) / Show trace in the debug window -- GEA.getGlobalForActivation = {"SuspendreGEA", "non"} -- active ou désactive l'exécution de GEA via une variable globale / active or deactive GEA execution with a global variable -- GEA.catchError = false GEA.optimize = GEA.typeOptimize["IMMEDIATE_ONLY"] -- option : GEA.typeOptimize["NONE"], GEA.typeOptimize["IMMEDIATE_ONLY"], GEA.typeOptimize["ALL"] -- permet d'optimiser les soucis liés au getName et getRoom de fibaro mais n'affiche plus le nom des modules concernés. end -- Ajouter ici les événements à exécuter / Add here events to schedule -- Une liste d'exemples est disponible dans un fichier annexe samples.lua / A samples list is available in another file called samples.lua function setEvents() GEA.add({"Global", "Intrusion", "1"}, 40, "Intrusion bureau", {{"Portable", 153}}) end[DEBUG] 07:51:50: GEA Version 5.42 : en exécution... [DEBUG] 07:51:50: En cours : aucun traitement à effectuer [DEBUG] 07:52:40: [ Intrusion=1 ] sendActions : traitement des actions (ID: 1) [Portable,153] [DEBUG] 07:52:40: [ Intrusion=1 ] sendActions : !ACTION! : pushed to 153 (ID: 1) [Portable,153] [DEBUG] 07:52:40: [ Intrusion=1 ] Done : tâche effectuée et suspendue (ID: 1) [Portable,153] [DEBUG] 08:00:40: Durée des traitements : 0s nouveau délai : 30s / tourne depuis 10m [DEBUG] 08:00:43: GEA Version 5.42 : en exécution... [DEBUG] 08:00:43: En cours : aucun traitement à effectuer L’événement est bien été exécuté, j'ai à priori pas d’erreur, mais je ne reçois rien. Je pense que j'ai dû oublié quelque chose dans mon action. Est-ce que quelqu'un pourrait m'aider, merci.
971jmd Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 @pepite ont pourrais faire ça aussi, réunir des condition pour que la variable déclencheur passe à 1 SI SENSOR_HALL = 0 et JOUR_NUIT = NUIT et ETATALARME = Desactive >>>>> ALORS Passer la variable SENSOR_HALL = 1 local SENSOR_HALL = 84 -----Déclanchement de la Glabal SENSOR_HALL si detection GEA.add({{"Global", "SENSOR_HALL", "0"}, {"Global", "JOUR_NUIT", "NUIT"}, {"Global", "ETATALARME", "Desactive"}}, -1 , "" , {{"Global", "SENSOR_HALL", "1"}}) ALORS ---- si global SENSOR_HALL = 1 et Global JOUR_NUIT = Nuit et Glabal ETATALARME = Desactive alord ........ GEA.add({"Global", "SENSOR_HALL", "1"}, {"Global", "JOUR_NUIT", "NUIT"}, {"Global", "ETATALARME", "Desactive"}, -1 , "" , { {"turnOn",id["HALOGENE_SEJOUR_1"]}, {"turnOn",id["HALOGENE_SEJOUR_2"]}, {"turnOn",id["LEDS_MEUBLE_TV"]}, {"VirtualDevice", id["HYPERION"], 12}})
971jmd Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 @pixynico salut je ne voie pas ce qui passe ta variable Intrusion à 1
971jmd Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 @pixynico essaye ça, juste pour tester ----Quand ta variable Intrusion passe a 1 alors envois notification mai avant usure toi que ta variable est bien à = 0 GEA.add({"Global", "Intrusion", "1"}, -1, "Intrusion bureau")
pixynico Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 il y a 5 minutes, 971jmd a dit : @pixynico salut je ne voie pas ce qui passe ta variable Intrusion à 1 Ma variable Intrusion est positionnée à 1 lorsqu'une scène "Intrusion test" est déclenchée. Ma scène a été crée hors GEA. La scène effectue les actions suivantes. Si une variable occupation est positionnée à absence et qu'une porte ou fenêtre s'ouvre la variable Intrusion passe de 0 à 1.
971jmd Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 ok donc teste ça GEA.add({"Global", "Intrusion", "1"}, -1, "Intrusion bureau") si tu reçois rien tu a surement un probleme de notification
pepite Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 @971 jmd, bon ben j ai mal lu 2 fois :-)... Dans cas attention a ne pas repasser la variable a 0. Mes excuses pour mon incomprehension
971jmd Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 Pani pwoblem tes yeux vient de s’ouvrir
pixynico Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 Il y a 1 heure, 971jmd a dit : ok donc teste ça GEA.add({"Global", "Intrusion", "1"}, -1, "Intrusion bureau") si tu reçois rien tu a surement un probleme de notification J'ai ajouté la ligne mais pas plus de notification en effet. Je reçois bien des push hors gea
jojo Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 je pense qu'il y a un problème de notification via Fibaro. Essaye de t'envoyer plusto un mail pour vérifier ta condition ou d'allumer un lampe. J'utiilise Piushbullet pour mes notif, et ça fonctionne super (voir le tuto de Steven à ce propos et quelques pages avant (dans ce post) ou dans jle tuto (mon grand âge fait que je ne me souviens plus très bien où) pour l'intégration dans GEA
pixynico Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 il y a 1 minute, jojo a dit : je pense qu'il y a un problème de notification via Fibaro. Essaye de t'envoyer plusto un mail pour vérifier ta condition ou d'allumer un lampe. J'utiilise Piushbullet pour mes notif, et ça fonctionne super (voir le tuto de Steven à ce propos et quelques pages avant (dans ce post) ou dans jle tuto (mon grand âge fait que je ne me souviens plus très bien où) pour l'intégration dans GEA Je te remercie je vais modifier la ligne en envoi mail et regarder le fameux pushbullet
971jmd Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 @pixynico installe ça, c'est une VD qui permert de retrouver ID des smartphone et tablette.... IOS_Info_v1.00.vfib
pixynico Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 il y a 15 minutes, 971jmd a dit : @971jmd Merci j'avais en effet un pb de ID !! J'ai modifié les ID portables et vu que je ne suis pas chez moi j'ai mis à 0 la variable dans la ligne GEA. Miracle j'ai bien reçu un push. Je pensais avoir les bons IDs en me référant à toolkit. Je re-testerai ce soir avec ma variable à 1 mais ça devrait fonctionné. Je devrais pouvoir mettre en place mon alarme avec clavier rfid pour mettre en absence/presence. La ligne GEA et les 40 sec de délai était la marge que je laisse pour taper le code avant envoi de sms si variable Intrusion encore positionné et mise en route de la sirène. Merci pour ce VD bien utile Je vous tiens au courant du résultat. il y a 15 minutes, 971jmd a dit :
971jmd Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 ok top fait gaf a une chose si tu mets 40s (GEA.add({"Global", "Intrusion", "1"}, 40 , "Intrusion bureau",.......) et que tu vient a tapé sur ton clavier et que le décompte de 40s est déjà en cours sur GEA, tu n'auras pas le temps de sortir de la zone. voila ce que te propose ----- Tempo de 40000 milliseconde (40s) local tempo = {"Function", function() fibaro:sleep(40000) end} GEA.add({"Global", "Intrusion", "1"}, -1, "Intrusion bureau", {tempo, {"Portable", 153}})
Steven Posté(e) le 24 novembre 2016 Auteur Signaler Posté(e) le 24 novembre 2016 @pixynico Ton code est juste, tu peux même enlever le "Intrusion" que tu as mis dans l'entête. Par contre, je pense plus à un soucis de "Push" comme on est quelque un à avoir. Pourrais-tu mettre ce code dans une scène stp pour voir d'où vient le problème. fibaro:call(153, "sendPush", "Test de push") Edit : J'avais pas tout lu apparemment, désolé. [ Coup de gueule : ON ] Pour le message ci-dessus de @971jmd, c'est simple, si tu le mets en place, tu peux arrêter d'utiliser GEA. On ne met pas de sleep dans GEA, je le dis et redit depuis le début. GEA tourne toutes les 30 secondes ... si on lui met une pause de 40s toutes les 30s cela va donner quoi ?? un peu de bon sens. [ Coup de gueule : OFF ] Au vu de ta configuration : GEA.checkEvery = 30 -- On vérifie toutes les X secondes (default : 30) / Check every X seconds GEA ne va vérifier l'état de ta variable que toutes les 30s, ce n'est donc pas d'une précision extraordinaire. Si tu as vraiment de quelques chose de précis, GEA n'est pas fait pour cela et c'est avec plaisir que je t'aiderais sur ton nouveau script. En revanche, si tu n'est pas au 30s près, GEA peux te permettre d'économiser pas mal d'effort.
pepite Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 @971jmd, Pour info, attention avec les "SLIPS" avec GEA, ca decale tout ;-) LOGIQUE non C'est pas conseillé 1
pepite Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 il y a 33 minutes, 971jmd a dit : fibaro:sleep(40000) ceci ;-)
971jmd Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 oui mai il y bien un END local tempo = {"Function", function() fibaro:sleep(40000) end}
pepite Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 je ne te parle pas de la syntaxe ;-) GEA fait du séquentiel : ligne par ligne si dans une ligne il y a un "SLIP" (je la retente ), cela met en PAUSE au niveau de cette ligne, la lecture des autres lignes attendra donc la fin de la PAUSE pour se FAIRE. Ca decale donc l'instance (celle qui ne meurt pas.) dans le temps.
971jmd Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 j'ai fait une expérience peut être que je trompe mai GEA n'envois pas deux notification dans le meme temps GEA.add(true , 30, "test 1") GEA.add(true, 30, "test 2") je reçois uniquement Test 1
Steven Posté(e) le 24 novembre 2016 Auteur Signaler Posté(e) le 24 novembre 2016 Cela ne va même pas décaler dans le temps, cela va tout faire planté. GEA essaie de se calibrer pour tourner "exactement" toutes les 30 sec. S'il se lance à 10:00:00 et que le temps d'exécution du code de l'utilisateur prend 10s, il ne va pas se lancer à 10:00:40 mais à 10:00:30 car il se calibre à chaque passage. Donc s'il met plus de 30 secondes à exécuter le code de l'utilisateur, cela signifie qu'il va se casser la figure. Ce qui, à mon avis est très bien car si un code met plus de 30 secondes à s'exécuter c'est qu'il y a quelque chose à revoir de fond en comble. 2
pixynico Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 il y a 15 minutes, Steven a dit : @pixynico Ton code est juste, tu peux même enlever le "Intrusion" que tu as mis dans l'entête. Par contre, je pense plus à un soucis de "Push" comme on est quelque un à avoir. Pourrais-tu mettre ce code dans une scène stp pour voir d'où vient le problème. fibaro:call(153, "sendPush", "Test de push") Edit : J'avais pas tout lu apparemment, désolé. [ Coup de gueule : ON ] Pour le message ci-dessus de @971jmd, c'est simple, si tu le mets en place, tu peux arrêter d'utiliser GEA. On ne met pas de sleep dans GEA, je le dis et redit depuis le début. GEA tourne toutes les 30 secondes ... si on lui met une pause de 40s toutes les 30s cela va donner quoi ?? un peu de bon sens. [ Coup de gueule : OFF ] Au vu de ta configuration : GEA.checkEvery = 30 -- On vérifie toutes les X secondes (default : 30) / Check every X seconds GEA ne va vérifier l'état de ta variable que toutes les 30s, ce n'est donc pas d'une précision extraordinaire. Si tu as vraiment de quelques chose de précis, GEA n'est pas fait pour cela et c'est avec plaisir que je t'aiderais sur ton nouveau script. En revanche, si tu n'est pas au 30s près, GEA peux te permettre d'économiser pas mal d'effort. évènement modifié avec le bon ID GEA.add({"Global", "Intrusion", "1"}, 40, "Intrusion bureau", {{"Portable", 137}}) Merci pour toutes les idées j'apprécie. Je ne suis pas à 30 secondes en effet. mon événement GEA va donc intervenir 40s et 1min10 si j'ai bien suivi. Je verrais mais je mettrais peut-être plus de temps après plusieurs tests avec les enfants et madame et moi. Les chats n'ont pas de badge encore. Je vais donc resté avec GEA qui m'a l'air super intéressant et pourrait me permettre à terme de faire bien d'autres opérations. J'aurais certainement d'autres questions de débutant à vous poser. A la fin je vais effectuer un évènement de push quand on rentrera sans déclenchement de l'intrusion (avant les 40s et au retour de la variable Intrusion à 0) et l’événement d'intrusion en question amélioré avec inclusion la sirène. Pour fibaro:call(137, "sendPush", "Test de push") je vais mettre en place la scène
971jmd Posté(e) le 24 novembre 2016 Signaler Posté(e) le 24 novembre 2016 il y a 5 minutes, 971jmd a dit : j'ai fait une expérience peut être que je trompe mai GEA n'envois pas deux notification dans le meme temps GEA.add(true , 30, "test 1") GEA.add(true, 30, "test 2") je reçois uniquement Test 1 j'ai rien dit ça fonctionne
Steven Posté(e) le 24 novembre 2016 Auteur Signaler Posté(e) le 24 novembre 2016 il y a 6 minutes, pixynico a dit : Je vais donc resté avec GEA qui m'a l'air super intéressant et pourrait me permettre à terme de faire bien d'autres opérations. J'aurais certainement d'autres questions de débutant à vous poser. Bienvenu sur GEA et hésite pas à poser des questions. Pour info, ton événement GEA va intervenir après 60s si tu mets 40s :-) Car au premier passage (30s), il va voir que ta variable est à 1 et il va se dire : ok mais la condition est de 40s et moi je n'en suis qu'à 30, je vais donc attendre le prochain tour." Au prochain tour (soit 60s) toutes les conditions seront remplies, la variable sera à 1 ET les 40s écoulées. 1
Messages recommandés