elacombe Posté(e) le 27 février 2016 Signaler Posté(e) le 27 février 2016 Bonjour à tous, Je souhaiterais mettre en place une scène LUA qui puisse m'activer ou désactiver des instances GEA en fonction de la valeur du paramètre Tempo de mon compteur EDF. Quand on est en Tempo Rouge (électricité chère, très chère...), je dois activer une instance de scène GEA qui exécute un certain nombre d'actions et désactiver une autre instance GEA. A l'inverse, quand on est en Tempo Blanc ou Bleu, (électricité pas chère), je dois activer et désactiver l'inverse de mes 2 instances GEA. Pour récupérer l'info de la valeur EDF Tempo, j'ai un capteur universel Fibaro FGBS qui est relié au circuit de mes Pompes à Chaleur et qui récupère un état au travers un relai (ID du capteur = 262) : - Quand le relai est ouvert (Repos), on est en Tempo blanc ou bleu => le FGBS est désarmé (valeur 0) - Quand le relai est fermé (Travail), on est en Tempo Rouge => le FGBS est armé (valeur 1) J'ai crée 2 instances GEA : - "GEA Normal" quand on est en Tempo blanc ou bleu (ID de la scène = 190) - "GEA Tempo Rouge" quand on est en Tempo Rouge (ID de la scène = 73) Je souhaiterais créer une scène en LUA (nommée Gestion Tempo) qui fasse les choses suivantes : - Activer "GEA Normal" (190) quand on est pas en Tempo blanc ou bleu, et désactiver "GEA Tempo Rouge" - Activer "GEA Tempo Rouge" (73) quand on est en Tempo Rouge, et désactiver "GEA Normal" Ceci afin de m'éviter de cocher ou décocher à la main la case "Scene Active" des ces 2 instances GEA. Comme base de travail, je pensais me resservir de la scene d'armement automatique d'alarme que m'avais faite MoicPhill : --[[ %% properties 35 value %% globals --]] -- activation auto de l'alarme -- --------------------------------- local capteur = 35 local etat = tonumber(fibaro:getValue(capteur, "value")) fibaro:debug(etat) if etat == tonumber(0) then fibaro:call(45, "pressButton", "3")-- appui sur le bouton 3 du module alarme end if etat == tonumber(1) then fibaro:call(45, "pressButton", "1")-- appui sur le bouton 1 du module alarme end En mettant en local la valeur de mon capteur d'ouverture (Tempo), cela me permettrait de déclencher les actions... En revanche je ne sais pas quoi écrire en LUA pour remplacer les actions PressButton par les actions pour activer/Désactiver mes scènes GEA... Quelqu'un pourrait-il m'aider à écrire cette scène? Merci. @+ François
jojo Posté(e) le 27 février 2016 Signaler Posté(e) le 27 février 2016 je n'ai pas tout lu, mais de ce que j'ai lu au début, je me demande pourquoi tu ne fais pas tout dans une instance GEA. Et là, pour chaque action, tu rajoutes la condition sur la valeur d'une variable, qui peux soit être mise àjour par une scène indépendante, soit par GEA keep it simple
elacombe Posté(e) le 27 février 2016 Auteur Signaler Posté(e) le 27 février 2016 Ben ouais, mais je sais pas faire ça... Voilà ce que j'ai dans GEA Normal : --[[ %% autostart %% properties 18 value 173 value 197 value 260 value 30 value 180 value %% globals --]] -- v 5.40 -- Optimisation possible, cf : GEA.optimize = GEA.typeOptimize["IMEDIATE_ONLY"] -- ================================================== -- GEA : Gestionnaire d'Evénements Automatique -- ================================================== -- [FR] Scénario permettant de contrôler si une périphérique est -- activé depuis trop longtemps ou lancer un push d'avertissement -- Ce scénario permet une annotation plus simple que le code LUA -- il nécessite néanmoins quelques connaissances -- -- [EN] This scene allow you to check every X second the status -- of a module and send actions if the module is activated since too long. -- This scene allow you a more simple annotation than LUA -- it requires some knowledge -- -- Auteur : Steven P. with modification of Hansolo and Shyrka973 -- Version : 5.40 -- Special Thanks to : -- jompa68, Fredric, Diuck, Domodial, moicphil, lolomail, byackee, -- JossAlf, Did, sebcbien, chris6783 and all other guy from Domotique-fibaro.fr -- ------------------------------------------------------------ -- Historique / History -- ------------------------------------------------------------ -- L'historique complet est diponible ici : -- http://www.domotique-fibaro.fr/index.php/topic/1082-gea-gestionnaire-dévénements-automatique/?p=12428 function yourcode() -- ================================================== -- [FR] A VOUS DE JOUER -- [EN] YOUR TIME TO PLAY -- ================================================== GEA.isVersionFour = true --- On est en version 4.017 Beta ou suppérieur -- [FR] Votre langue : FR (default) -- [EN] Your language : EN GEA.language = "FR"; -- [FR] On vérifie toutes les X secondes (default : 30) -- [EN] Check every X seconds GEA.checkEvery = 30 -- [FR] Liste des portables devant recevoir une notification {6,8} -- [EN] Smarphones you want to be notified {XX, XX} for more than one GEA.portables = {6,8} -- [FR] Affichage des traces dans la console (default : false) -- [EN] Show trace in the debug window GEA.debug = false --GEA.catchError=false -- option : GEA.typeOptimize["NONE"], GEA.typeOptimize["IMEDIATE_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. GEA.optimize = GEA.typeOptimize["IMEDIATE_ONLY"] -- [FR] Tableau d'identifiant (facultatif) -- [EN] ID table (optional) local id = { --Liste des détecteurs Presence_Entree_1 = 18, Presence_Entree_2 = 173, Presence_Salon = 197, --Listes des actionneurs Lampe_Bureau_Entree = 260, Statut_Alarme = 30, Valeur_Tempo = 262, Lampe_Console = 180, Interrupteur_Evier_Gauche = 169, Lampe_Enceinte = 241, Lampe_Piano = 247, Lampe_Chambre_P = 223, } -----------------GESTION DES LUMIERES ---------ALLUMAGE DES LUMIERES DE L'ENTREE --Allumage de la lampe de bureau de l'entrée (Lampe_Bureau_Entree), a la détection de mouvement (Presence_Entree_1 ou Presence_Entree_2), la nuit, puis extinction au bout de 2 minutes si pas de détection de mouvement GEA.add( id["Presence_Entree_1"], -1, "", {{"Days", "Weekday"}, {"Time", "00:01", "06:12"},{ "turnOn", id["Lampe_Bureau_Entree"]}}) GEA.add( id["Presence_Entree_2"], -1, "", {{"Days", "Weekday"}, {"Time", "00:01", "06:12"},{ "turnOn", id["Lampe_Bureau_Entree"]}}) GEA.add( id["Lampe_Bureau_Entree"], 2*60, "", {{"Days", "Weekday"}, {"Time", "00:01", "06:12"}, { "turnOff", id["Lampe_Bureau_Entree"] }}) GEA.add( id["Presence_Entree_1"], -1, "", {{"Days", "Weekend"}, {"Time", "00:01", "Sunrise-30"},{ "turnOn", id["Lampe_Bureau_Entree"]}}) GEA.add( id["Presence_Entree_2"], -1, "", {{"Days", "Weekend"}, {"Time", "00:01", "Sunrise-30"},{ "turnOn", id["Lampe_Bureau_Entree"]}}) GEA.add( id["Lampe_Bureau_Entree"], 2*60, "", {{"Days", "Weekend"}, {"Time", "00:01", "Sunrise-26"}, { "turnOff", id["Lampe_Bureau_Entree"] }}) -- Allumage de la lampe de bureau de l'entrée dans les horaires indiqués, quand on est à la maison et que l'alarme n'est pas active, la semaine GEA.add(id ["Statut_Alarme"], 1, "", {{"Inverse"}, {"Time", "Sunset", "23:59"}, {"turnOn", id["Lampe_Bureau_Entree"]}}) GEA.add(id ["Statut_Alarme"], 1, "", {{"Inverse"}, {"Days", "Weekday"}, {"Time", "06:15", "Sunrise+30"}, {"turnOn", id["Lampe_Bureau_Entree"]}}) GEA.add( id["Lampe_Bureau_Entree"], 2*60, "", {{"Time", "Sunrise+34", "10:00"}, { "turnOff", id["Lampe_Bureau_Entree"] }}) ---------ALLUMAGE DES LUMIERES DE LA CUISINE --Allumage de la lumière gauche de l'évier de la cuisine dans les horaires indiqués, quand on est à la maison et que l'alarme n'es GEA.add(id ["Statut_Alarme"], 1, "", {{"Inverse"}, {"Time", "Sunset", "23:59"}, {"turnOn", id["Interrupteur_Evier_Gauche"]}}) GEA.add( id["Interrupteur_Evier_Gauche"], 2*60, "", {{"Time", "00:01", "05:00"}, { "turnOff", id["Interrupteur_Evier_Gauche"] }}) ---------ALLUMAGE DES LUMIERES DU SALON --Allumage de la lampe de la Console du Salon (Lampe_Console), a la détection de mouvement (Presence_Salon), la nuit, puis extinction au bout de 2 minutes si pas de détection de mouvement GEA.add( id["Presence_Salon"], -1, "", {{"Time", "00:01", "Sunrise-30"},{ "turnOn", id["Lampe_Console"]}}) GEA.add( id["Lampe_Console"], 2*60, "", {{"Time", "00:01", "Sunrise-30"}, { "turnOff", id["Lampe_Console"] }}) --Allumage de la lampe de la console dans les horaires indiqués, quand on est à la maison et que l'alarme n'est pas active GEA.add(id ["Statut_Alarme"], 1, "", {{"Inverse"}, {"Time", "Sunset", "23:59"}, {"turnOn", id["Lampe_Console"]}}) --Allumage de la lampe de la lampe de l'Enceinte dans les horaires indiqués, quand on est à la maison et que l'alarme n'est pas active GEA.add(id ["Statut_Alarme"], 1, "", {{"Inverse"}, {"Time", "Sunset", "23:59"}, {"turnOn", id["Lampe_Enceinte"]}}) --Allumage de la lampe de la lampe du Piano dans les horaires indiqués, quand on est à la maison et que l'alarme n'est pas active GEA.add(id ["Statut_Alarme"], 1, "", {{"Inverse"}, {"Time", "Sunset", "23:59"}, {"turnOn", id["Lampe_Piano"]}}) ---------ALLUMAGE DES LUMIERES DE LA CHAMBRE PARENTS -- Allumage de la lampe de la Chambre Parent dans les horaires indiqués, quand on est à la maison et que l'alarme n'est pas active GEA.add(id ["Statut_Alarme"], 1, "", {{"Inverse"}, {"Time", "Sunset+30", "23:59"}, {"turnOn", id["Lampe_Chambre_P"]}}) Peut-on mettre 2 conditions dans une action GEA? Comment pourrais rajouter une condition sur l'action suivante par exemple : GEA.add(id ["Statut_Alarme"], 1, "", {{"Inverse"}, {"Time", "Sunset", "23:59"}, {"turnOn", id["Interrupteur_Evier_Gauche"]}}) là je voudrais rajouter en plus de la condition de statut d'alarme, la condition "Valeur Tempo" (qui doit être 0 en Tempo bleu et blanc et 1 en Tempo Rouge). Quand c'est 1, il ne faut pas que cette action se passe. Je pourrais reproduire le même code pour les actions à ne pas faire quand Valeur Tempo = 1 Je n'ai pas créé de variable globale pour "Statut_Alarme", ni de scène pour mettre à jour la variable, et pourtant cela fonctionne. Que dois-je faire? Merci.
jojo Posté(e) le 1 mars 2016 Signaler Posté(e) le 1 mars 2016 GEA.add({id ["Statut_Alarme"], {"Value!", id["Valeur_Tempo"], 1}}, 1, "", {{"Inverse"}, {"Time", "Sunset", "23:59"}, {"turnOn", id["Interrupteur_Evier_Gauche"]}}) source : https://gea.piccand.me/doku.php/syntaxe (=livre de chevet)
Messages recommandés