Aller au contenu

Gea : Gestionnaire D'événements Automatique


Steven

Messages recommandés

 

- j'ai 4 modes pour la maison: eveil/sommeil/absence/vacances. double click -> absence et triple click ->. pour le simple click: soit je suis en mode eveil et ca bascule en mode sommeil, soit je ne suis pas en mode eveil et ca bascule en mode eveil

 

@Zozotte,

 

J’étais entrain de réfléchir à  une solution pour activer le mode Absence / Vacances... avec des double/triple clicks via un boutton de mon visiophone domotisé.

 

Je suis tombé sur ton message et ta solution avec des "sceneActivation"  si je comprends bien. 

 

Peux-tu partager le scénario stp :)

 

Merci d'avance.

Lien vers le commentaire
Partager sur d’autres sites

@yassinex

 

la scene qui gere les clicks sur l'interrupteur (j'ai mis un FGD dans mon entrée et un inter double avec le 2e sur le S2 qui ne sert que à  gerer le mode de la maison):

--[[ 
%% properties 
8 sceneActivation
%% globals 
--]]


-- variables a mettre à  jour
local ENTREE_LUM = 8 -- interrupteur mode maison
local VD_MAISON = 42


local NumScene = tonumber(fibaro:getValue(ENTREE_LUM, "sceneActivation"))
fibaro:debug(NumScene)


if (NumScene == 26) -- si simple click
then
if fibaro:getGlobalValue("Mode_Maison") == "Eveil" -- si Eveil alors = Sommeil
then fibaro:call(VD_MAISON, "pressButton", "3");
else -- si Sommeil ou Absence ou Vacances alors = Eveil
fibaro:call(VD_MAISON, "pressButton", "2");
end
elseif (NumScene == 24) -- double click = Absence
then 
   if fibaro:getGlobalValue("Alarme") == "Intrusion"
    then
     fibaro:call(VD_MAISON, "pressButton", "2")
     fibaro:setGlobal("Alarme", "0");
    else
fibaro:call(VD_MAISON, "pressButton", "4");
    end
elseif (NumScene == 25)  -- triple click = Vacances
then  
fibaro:call(VD_MAISON, "pressButton", "5");


elseif (NumScene == 14) -- double click inter lumiere => force
then 
if fibaro:getGlobal("Lum_Entree_Force") == "0"
then
fibaro:setGlobal("Lum_Entree_Force", "1");
else
fibaro:setGlobal("Lum_Entree_Force", "0");
end 
end

Lum_Entree_Force c'est parce que GEA m'eteint la lumiere de l'entree au bout de 10 mins sauf si elle est forcée par double click.

 

Cette scene clique sur les boutons de mon VD qui gere la maison ce qui change une variable Mode_Maison et fait clignoter l'eclairage de l'entree pour me confirmer la bonne prise en compte de la commande. J'ai préférer centraliser cela pour pouvoir changer les modes avec un VD plutot que de faire le code dans le VD + dans la scene !

 

Ensuite, je gere les actions a effectuer avec GEA sur changement de la variable Mode_Maison (a ne pas oublier dans l'entete de GEA):

NB: je n'ai pas finit de mettre en place les alertes donc c'est en commentaire et j'ai un soucis avec la mise en place des Tasks (elles se déclenchent alors que le restart n'a pas été fait...) donc pareil (faut que je finisse de lire les posts sur le support GEA...)

-- == MODE MAISON ==
-- Déclenchement Eveil: lumieres repas on - VR salon on - LED meteo
GEA.add( {"Global", "Mode_Maison", "Eveil"}, -1, "", {{"Time", "Sunset-20", "Sunrise+20"}, {"turnOn", id["SALON_LUM_REPAS"]}}) -- quand nuit - 20 mins
GEA.add( {{"Global", "Mode_Maison", "Eveil"},{"Global", "Lum_Salon_Auto", "0"}}, 60, "", {{"Time", "Sunrise+21", "Sunset-19"},{"Global", "Lum_Salon_Auto", "1"}})
GEA.add( {{"Global", "Mode_Maison", "Eveil"}, estNotHiver}, -1, "", {{"Open",id["SALON_VR"],100}})
GEA.add( {{"Global", "Mode_Maison", "Eveil"}, estHiver} , -1, "", {{"Time", "Sunrise-20", "Sunset+20"}, {"Open",id["SALON_VR"],100}, {"Global", "VR_Salon_Auto", "1"}}) -- quand jour - 20mins
GEA.add( {"Global", "Mode_Maison", "Eveil"}, -1, "", {{"Global", "LED", "Meteo"}})
-- chauffage remis au mode précédent si modifié par GEA
GEA.add( {{"Global", "Mode_Maison", "Eveil"}, {"Global!", "Chauf_Z1_History", "Nil"}, estHiver}, 30, "", {{"CopyGlobal", "Chauf_Z1_History", "Chauf_Z1_Mode"},{"Global", "Chauf_Z1_History", "Nil"}, {"VirtualDevice", id["VD_CHAUF_Z1"], 17}})
-- scheduler remis en mode normal apres vacances
GEA.add( {{"Global", "Mode_Maison", "Eveil"}, {"Global", "scheduleGroup", "Vacances"}}, 30, "", {{"Global", "scheduleGroup", "Normal"}}) 

-- Déclenchement Sommeil: lumieres zone jour off - vr maison fermés - LED et hifi off
GEA.add( {"Global", "Mode_Maison", "Sommeil"}, 30, "", {{"VirtualDevice", id["VD_LUM"], 2}})
GEA.add( {{"Global", "Mode_Maison", "Sommeil"}, estNotHiver}, 30, "", {{"Close",id["SALON_VR"],85}})
GEA.add( {{"Global", "Mode_Maison", "Sommeil"}, estHiver}, 30, "", {{"Close",id["SALON_VR"],100}})
GEA.add( {"Global", "Mode_Maison", "Sommeil"}, 30, "", {{"Global", "LED", "Off"}, {"VirtualDevice", id["VD_HIFI"], 3}})

-- Déclenchement Absence: lum all off + 1min - VR fermés 85%/100% - Led/hifi off
GEA.add( {"Global", "Mode_Maison", "Absence"}, 60, "", {{"VirtualDevice", id["VD_LUM"], 1}})
GEA.add( {{"Global", "Mode_Maison", "Absence"}, estHiver} , 30, "", {{"Time", "Sunset+20", "Sunrise-20"}, {"Time", "21:50", "07:10"},{"Close",id["SALON_VR"],100}}) --  quand nuit -20mins
GEA.add( {{"Global", "Mode_Maison", "Absence"}, estNotHiver} , 30, "", {{"Time", "Sunset+20", "Sunrise-20"}, {"Time", "21:50", "07:10"},{"Close",id["SALON_VR"],85}}) --  quand nuit -20mins ou entre 22h et 7h
GEA.add( {"Global", "Mode_Maison", "Absence"}, 30, "", {{"Global", "LED", "Off"}, {"VirtualDevice", id["VD_HIFI"], 3}})
-- xxx alerte si fenetre ouverte
--GEA.add( {{"Global", "Mode_Maison", "Absence"}, --fenetre ouverte--}, -1, "La fenetre #room# est ouverte !", {{"VirtualDevice", id["VD_ALERTE"], 2}})

-- Déclenchement Vacances: lum all off + 1min - VR fermés 100% - Led/hifi off - chauffage vacances
GEA.add({"Global", "Mode_Maison", "Vacances"}, 60, "", {{"VirtualDevice", id["VD_LUM"], 1}})
GEA.add( {"Global", "Mode_Maison", "Vacances"}, 30, "", {{"Close",id["SALON_VR"],100}})
GEA.add( {"Global", "Mode_Maison", "Vacances"}, 30, "", {{"Global", "LED", "Off"}, {"VirtualDevice", id["VD_HIFI"], 3}})
-- mode actuel du chauffage historisé et mode vacances (hors gel) déclenché
GEA.add( {{"Global", "Mode_Maison", "Vacances"}, {"Global!", "Chauf_Z1_Mode", "Vacances"}, estHiver}, 30, "", {{"CopyGlobal", "Chauf_Z1_Mode", "Chauf_Z1_History"}, {"VirtualDevice", id["VD_CHAUF_Z1"], 4}})
-- scheduler: mode vacances activé
GEA.add( {"Global", "Mode_Maison", "Vacances"}, 30, "", {{"Global", "scheduleGroup", "Vacances"}}) 
-- xxx alerte si fenetre ouverte ou eau qui coule

n'hesite pas si tu as des questions !

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Je vous expose mon projet (la réponse sera sans doute bcp plus courte !!!).

 

J'ai des radiateurs > 2000w à  piloter, je dispose de FGS221 donc des relais 1.5KW.

Pas suffisant donc pour commander en "direct", je dois donc passer par fil pilote + diode.

 

Jusqu'ici tout allait bien.

Mon souci : j'ai un thermostat SRT321 associé a ces modules, le hic, because fil pilote, les ordres sont inversés :

un OFF correspond au mode confort

le ON au HORS GEL.

Donc je me retrouvai avec un thermostat qui marchait a l'envers : Eteind le chauffage quand ca caille et l'allume quand il fait chaud... ^_^

 

J'ai trouvé une solution qui me semble élégante mais j'aimerai la mettre en place via GEA plutot que du LUA a rallonge (je vais avoir une dizaine de radiateurs sur ce principe !).

 

J'ai débranché la sortie2 de mon FGS221 => Conséquence exit les 4 ordres fil pilote, je n'en ai plus que 2 (Confort et Arret) mais ca me va bien, pas besoin du HG et ECO.

 

Je me sers de cette seconde sortie "bidon" en l'associant avec mon thermostat qui va lui envoyer des ON / OFF fonction de la temperature demandée.

 

Bien sur envoyer du ON / OFF a un truc branché à  rien du tout ca sert pas a grand chose !!  :P

J'ai donc créé une scene qui envoie l'ordre inverse de la sortie "bidon" à  la sortie fil pilote :

- Si sortie bidon = "ON" => Envoie "OFF" au fil pilote => Passage au mode confort

- Si sortie bidon = "OFF" => Envoie "ON" au fil pilote => On eteint le chauffage

 
LA commande des radiateurs marche tres bien depuis l'interface... je clique sur ON de mon switch "Bidon" et le switch fil filote passe bien a Off.
Victoire ? Pas tout à  fait....
Mon ami le thermostat, de par son accociation directe au switch, envoie la commande ON ou OFF aux DEUX relais.
Je connais pas bien l'ordre de traitement mais entre scene/association mais du coup dans ce cas ma scene ne foncitonnait pas.
J'ai du rajouter un sleep de 1 sec avant d'envoyer l'ordre d'inversion.
 
J'arrive finalement a un code qui marche tout le temps mais que j'aimerai simplifier en GEA.
 
En lua ca donne ça :
if ( ( tonumber(fibaro:getValue(180, "value")) > 0 ) )
then
  fibaro:sleep(1000); 
  fibaro:call(182, "turnOff");
else
  fibaro:sleep(1000); 
  fibaro:call(182, "turnOn");
end
 
En GEA ca donnerait quoi ?
J'ai essayé ca... sans succes :
GEA.add({id["CHAUFFAGE_SALLE_EAU"],{"Value+",id["CHAUFFAGE_SALLE_EAU"],0}},1,"",{{"TurnOff",id["FIL_PILOTE_SALLE_EAU"]}})
GEA.add({id["CHAUFFAGE_SALLE_EAU"],{"Value",id["CHAUFFAGE_SALLE_EAU"],0}},1,"",{{"TurnOn",id["FIL_PILOTE_SALLE_EAU"]}})
 
Merci d'avance !!!
 
+
Olivier
    
Lien vers le commentaire
Partager sur d’autres sites

bonjour

 

j'aurais besoin d'une aide sur un simple code qui ne fonction pas 

 

merci d'avance 
 
si le lampe du bar ON alors OFF lpsalon a l'allumage de lampech
 
 local A11 =  {"If", {{"turnOn",id["bar"]}}}
     
 GEA.add(id["lampech"], -1, "", {A11, {"turnOff",id["lpsalon"]}})
Lien vers le commentaire
Partager sur d’autres sites


local id = {

LAMPE = xxxxx

DETECTEUR = yyyyyyy

}

-- eteindre la lampe dans 30 minutes.

local lampetimer = GEA.add( true , 30*60, "", {{"turnOff", id["LAMPE"]}})

-- redémarrer le compteur précédent si une détection àau lieu

GEA.add( id["DETECTEUR"], -1, "", {{"RestartTask", lampetimer}})

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

local id = {
   LAMPE = xxxxx
   DETECTEUR = yyyyyyy
}

-- eteindre la lampe dans 30 minutes.
local lampetimer = GEA.add( true , 30*60, "", {{"turnOff", id["LAMPE"]}})
-- redémarrer le compteur précédent si une détection àau lieu
GEA.add( id["DETECTEUR"], -1, "", {{"RestartTask", lampetimer}})

merci bien

Modifié par Yohan
Merci de ne pas citer le message précédent !!!
Lien vers le commentaire
Partager sur d’autres sites

Désolé mais il faudra attendre, il y a eu des gros changements de programme ce weekend et je n'ai pas eu le temps d'allumer le PC. Désolé pour cette fausse joie :)

 

Je rappel pour les gens intrigués ... il n'y aura pas de nouveauté, juste des corrections. J'en profiterais pour expliquer pourquoi v5 lors de la publication :-)

.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Parce que Steven était gavé de recevoir des MP àpropos de la V4 stable du HC2 entre V4.xxx du HC2 et V4.xxx du GEA c'est pas simple! Enfin si, il n'y en a qu'une qui est stable

Envoyé de mon iPhone àl'aide de Tapatalk

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Version 5.00


  • [Correction] Message indiquant les piles faibles {Batteries} .. préférer l'envoi par mail {"email", <id user>} car si le push est trop long, il ne passera pas.
  • [Correction] #value[?]#, #room[?]# sont maintenant corrigé
  • [Correction] Allumage et extinction des module RGB
  • [Correction] {"Global", "", ""} ne fonctionne plus en 4.x et est maintenant transformer en "true" à  la volée
  • [Ajout] l'option {"NotStarted"} empêche une tache de démarrer automatiquement (c.f. RestartTask pour la démarrer)
  • [Ajout] {"Email", <id utilisateur>[, <sujet>]} Le sujet du message peut maintenant être personnalisé.
  • [Ajout] {"Switch", <id module>} Change l'état d'un module on->off->on.

 


Voici le pourquoi de la version 5.00 :


 


- Les versions 1.x étaient relatives à  What To Do If Still Open (ancien nom)


- Les versions 2.x à  3.x pour GEA firmware 3.x


- Les versions 4.x pour le GEA firmware 4.x (compatible 3.x)


- Les versions 5.x ... a vous de jouer :)


 


En effet, je vous laisse la main, c'est maintenant à  vous de maintenir et faire évoluer GEA. Cette version 5.00 est stable et répond aux dernières demandes. 


 


Je ne quitte pas le navire mais m'occuper de GEA me prend trop de temps et ne me permet pas de trouver les disponibilités pour d'autre projet que j'aimerais réaliser. Je vous rassure GEA ne prend pas beaucoup de temps, c'est mes disponibilités qui sont faible.


 


Donc ... maintenant que GEA est suffisamment complet et stable et que je sais que certain d'entre vous ont largement le potentiel pour le reprendre, je vous laisse vous amuser.


 


Alors comme indiqué depuis le début de ce projet 


 


:60:  A vous de jouer  :60: 

  • Upvote 3
Lien vers le commentaire
Partager sur d’autres sites

Invité chris6783

Merci Steven pour ce super script. Rien a ajouter on fera de notre mieux... Le plus important a priori est de ne pas trop creer de lignes de code pour garder une solution cohérente. Il faudrait gerer le code via GIT ou autre desormais

A bientôt pour les plugins... :-)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Un grand merci à  STEVEN pour GEA, pour moi c'est le pied et me convient tout a fait dans la version 5, etant un NOOB HC2, j'ai encore plein de choses a apprendre et a faire avec GEA hihihi

Nul doute que tu nous aideras encore et que d'autres le feront évoluer au fil du temps.

SUrtout ne pas abandonner GEA ;-)

 

Encore un grand merci !!

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Un tout grand merci STEVEN !

 

Je discutais ce matin avec un collègue et je lui disais que si des gars comme toi, Krikri (et bien d'autres) mettaient tout le temps et les connaissances qu'ils ont donnés à  Fibaro sur un projet opensource comme jeedom... bah Fibaro n'aurait plus qu'à  pleurer.

Rien que GEA et le virtual sensor de krikri, ces deux briques à  elles seules ajoutées à  Jeedom, moi je jette ma HC2 sur LBC d'ici 1 mois.

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...