Steven Posté(e) le 27 novembre 2014 Auteur Signaler Posté(e) le 27 novembre 2014 GEA.add( todo_list, -1, "", {{"Modifier Expediteur Email""}}) 1
yassinex Posté(e) le 27 novembre 2014 Signaler Posté(e) le 27 novembre 2014 - 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.
zozotte Posté(e) le 27 novembre 2014 Signaler Posté(e) le 27 novembre 2014 @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 !
acuncolta Posté(e) le 28 novembre 2014 Signaler Posté(e) le 28 novembre 2014 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 !! 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
Steven Posté(e) le 28 novembre 2014 Auteur Signaler Posté(e) le 28 novembre 2014 Et voilà GEA.add(id["CHAUFFAGE_SALLE_EAU"], -1, "", {{"turnOff", id["FIL_PILOTE_SALLE_EAU"]}}) GEA.add(id["CHAUFFAGE_SALLE_EAU"], -1, "", {{"Inverse"}, {"turnOn", id["FIL_PILOTE_SALLE_EAU"]}})
yassinex Posté(e) le 28 novembre 2014 Signaler Posté(e) le 28 novembre 2014 @zozotte, Super; Merci ! Comme c'est du HS je t'adresse une question par MP
971jmd Posté(e) le 1 décembre 2014 Signaler Posté(e) le 1 décembre 2014 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"]}})
Steven Posté(e) le 1 décembre 2014 Auteur Signaler Posté(e) le 1 décembre 2014 local A11 = {"If", {{"Value+",id["bar"], 0}}} GEA.add(id["lampech"], -1, "", {A11, {"turnOff",id["lpsalon"]}}) turnOn est une action et non pas une condition. 1
971jmd Posté(e) le 2 décembre 2014 Signaler Posté(e) le 2 décembre 2014 salut tout le monde j'ai sollicite votre aide et des indices pour réalisé une scène. Éteindre une lampe si pas de présence plus de 30 mn
Steven Posté(e) le 2 décembre 2014 Auteur Signaler Posté(e) le 2 décembre 2014 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}}) 1
971jmd Posté(e) le 2 décembre 2014 Signaler Posté(e) le 2 décembre 2014 (modifié) 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é le 2 décembre 2014 par Yohan Merci de ne pas citer le message précédent !!!
sebcbien Posté(e) le 7 décembre 2014 Signaler Posté(e) le 7 décembre 2014 Merci Steven pour toutes ces ajouts !! je n'ai pas bcp de temps pour le moment pour tester tout ça mais ce n'est pas l'envie qui manque Sent From my Vic20
Steven Posté(e) le 8 décembre 2014 Auteur Signaler Posté(e) le 8 décembre 2014 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 :-) . 1
HANSOLO Posté(e) le 8 décembre 2014 Signaler Posté(e) le 8 décembre 2014 et hop un petit concours pour trouver les raisons du passage en V5 de GEA. Parce que 5 ça fait mieux que 4.XX
Lazer Posté(e) le 8 décembre 2014 Signaler Posté(e) le 8 décembre 2014 Je tente ma chance : Parce que la prochaine stable sera une v5, un nombre impair comme toujours chez Fibaro.
Krikroff Posté(e) le 9 décembre 2014 Signaler Posté(e) le 9 décembre 2014 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 1
Steven Posté(e) le 9 décembre 2014 Auteur Signaler Posté(e) le 9 décembre 2014 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 A vous de jouer 3
Invité chris6783 Posté(e) le 9 décembre 2014 Signaler Posté(e) le 9 décembre 2014 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... :-)
pepite Posté(e) le 9 décembre 2014 Signaler Posté(e) le 9 décembre 2014 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 !! 1
Shyrka973 Posté(e) le 9 décembre 2014 Signaler Posté(e) le 9 décembre 2014 Merci Steven pour GEA. Au vue du nombre de règle que j'utilise, je me demande comment j'aurais pu utiliser sérieusement ma HC2 sans On peut dire que GEA est un interpréteur d'un langage adapté aux HC2. 1
sebcbien Posté(e) le 9 décembre 2014 Signaler Posté(e) le 9 décembre 2014 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. 2
Steven Posté(e) le 9 décembre 2014 Auteur Signaler Posté(e) le 9 décembre 2014 Krikroff refuse d'être payé en Vodka donc Jeedom ... je sais pas s'il accepte le Ricard 1
Yohan Posté(e) le 9 décembre 2014 Signaler Posté(e) le 9 décembre 2014 Cool la V5 est dispo je vais pouvoir remettre à jour le GEA. J'ai quelques fonctions qui foirent depuis mon passage en V4 Fibaro. Merci pour ce gros boulot maintenant on attend ISS !
megabubu Posté(e) le 9 décembre 2014 Signaler Posté(e) le 9 décembre 2014 Merci pour tout Steven, j'ai bp appris grace à toi, alors que je n'étais que debutant ya quelques moi. Grand merci.
Messages recommandés