Aller au contenu

Recommended Posts

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
%% globals

Intrusion
--]]


-- 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.

Partager ce message


Lien à poster
Partager sur d’autres sites

@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}})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 @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")

 

Partager ce message


Lien à poster
Partager sur d’autres sites
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.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

ok donc teste ça

GEA.add({"Global", "Intrusion", "1"}, -1, "Intrusion bureau")

si tu reçois rien tu a surement un probleme de notification

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites

Pani pwoblem :P

tes yeux vient de s’ouvrir

Partager ce message


Lien à poster
Partager sur d’autres sites
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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites
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

Partager ce message


Lien à poster
Partager sur d’autres sites
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 :

 

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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}})

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 

@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.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@971jmd,

Pour info, attention avec les "SLIPS" avec GEA, ca decale tout ;-) LOGIQUE non :60::60:

C'est pas conseillé

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 33 minutes, 971jmd a dit :

fibaro:sleep(40000)

ceci ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

oui mai il y bien un END

local tempo = {"Function", function() fibaro:sleep(40000) end}

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites
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

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
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 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
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.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×