Steven Posté(e) le 25 février 2016 Auteur Signaler Posté(e) le 25 février 2016 @bobobull Comme ca sans reflechir, pas la syntaxe en tete, mais pour moi Property n'etait qu'une condition et non une OPTIONS, je n'ai jamais testé, attendons lavis des experts. Sinon en attendant, tu peux utiliser cela : GEA.add( true , 1*60 , "Test Sonos Volume Terrasse" , {{"Function", function() fibaro:call(id["SONOS_TERRASSE"], "setVolume", "33") end}}) Je confirme .. bien vu @pepite 1
pepite Posté(e) le 25 février 2016 Signaler Posté(e) le 25 février 2016 sinon @bobobull, je viens d'y penser, tu peux aussi slider le volume ;-) la syntaxe : {“Sliderâ€, <id_module>, <id_slider>, <valeur>} Met la valeur dans le slider du module {“Sliderâ€, 19, 1, 21.3}
Fredric Posté(e) le 25 février 2016 Signaler Posté(e) le 25 février 2016 J'essai d’optimiser mon GEA et j'ai une petite question pour toi, @Steven, les "IF" sont pénalisant ou je peux les laisser? sur des lignes comme la suivante, je n'arrive pas à intégrer des conditions non "IF" local CAFE_OFF = {"If",{{"Global", "CAFE", "OFF"}}} local CP = {"If",{{"Global", "Aujourdhui", "1"}}} GEA.add(true, 30, "", {{"turnOn", id["CAFETIERE"]},{"Global", "CAFE", "ON"},{"Time", "10:00", "10:01"},{"Days", "All"},CP,CAFE_OFF})
pepite Posté(e) le 25 février 2016 Signaler Posté(e) le 25 février 2016 @frederic, suis pas @steven, je le laisse répondre pour les "IF" ;-) tu peux faire comme ceci : local CAFE_OFF = {"Global", "CAFE", "OFF"} local CP = {"Global", "Aujourdhui", "1"} GEA.add({CP, CAFE_OFF}, 30, "", {{"turnOn", id["CAFETIERE"]},{"Global", "CAFE", "ON"},{"Time", "10:00", "10:01"}}) 2
Steven Posté(e) le 25 février 2016 Auteur Signaler Posté(e) le 25 février 2016 Tout est dit ... encore merci @pepite Edit : tu peux les laisser mais si un jour GEA évolue, les IF devraient définitivement disparaître. 1
Fredric Posté(e) le 25 février 2016 Signaler Posté(e) le 25 février 2016 Merci àvous deux. Arfff.....Ça marche nickel comme ça, ça me donne la migraine juste de penser àdevoir changer toutes mes lignes :-( Je vais les faire petit àpetit, essayer la syntaxe de @pepite mais j'avais déjàessayé et je n'ai toujours qu'une conditions de prise en compte, La première . Le principal, c'est que je sois sûre que ça ne crée pas de problème actuellement.
Bobobull Posté(e) le 25 février 2016 Signaler Posté(e) le 25 février 2016 sinon @bobobull, je viens d'y penser, tu peux aussi slider le volume ;-) la syntaxe : {“Sliderâ€, <id_module>, <id_slider>, <valeur>} Met la valeur dans le slider du module {“Sliderâ€, 19, 1, 21.3} Pas réussi avec le slider mais la technie "function" me convient. Merci
pepite Posté(e) le 25 février 2016 Signaler Posté(e) le 25 février 2016 @Frederic qu '1 condition ? bizarre a tester @bobobull, Le slider devrait fonctionner sans souci @sakkhho utilise ceci par exemple : GEA.add({"Global", "Tele", "On"}, 30, "", {{"Slider", id["SONOS_REMOTE"], 15, 80}}) -- On fixe le son de la PlayBar à 80%
Bobobull Posté(e) le 25 février 2016 Signaler Posté(e) le 25 février 2016 @Pepite Ouais mais ce code, il me semble que c'est pour le Virtual Device de kirkrof, pas pour le PlugIn. Je n'ai pas créé un VD par Sonos, j'en ai mis qu'un pour "piloter un groupe de sonos". Pour le reste (volume principalement) les plugIns font l'affaire.
pepite Posté(e) le 25 février 2016 Signaler Posté(e) le 25 février 2016 ah ok @bobobull, dans ce cas, je n'avais pas compris que tu utilisais les plugins et non le VD de @krikroff hann pas bien de ne pas l'utiliser :P
soulac Posté(e) le 25 février 2016 Signaler Posté(e) le 25 février 2016 @Pepite oui j'ai bien créé une variable GEA_Tasks et une variable GEA2_Tasks dans le Panneau des variables mais cela ne fonctionne pas.
pepite Posté(e) le 25 février 2016 Signaler Posté(e) le 25 février 2016 @soulac, ben c'est bien là le souci, tu nous as mis ceci : Dans ma scène GEA Test j'ai changé GEA.globalTasks = "GEA_Tasks_Test" par GEA.globalTasks = "GEA_Tasks" Dans ta scene GEA Test, tu devrais avoir plutot cela alors : GEA.globalTasks = "GEA2_Tasks" Et ta scene GEA de Prod : GEA.globalTasks = "GEA_Tasks" Ta variable Globale GEA_Tasks_Test n'a pas l'air d'exister dans le panneau de variables.
soulac Posté(e) le 25 février 2016 Signaler Posté(e) le 25 février 2016 @Pepite si si je me suis ma exprimé mes hier soir j'ai changé dans ma scène la variable GEA.globalTasks = "GEA_Tasks_Test" par GEA.globalTasks = "GEA2_Tasks" et dans mon panneau de variable j'ai supprimé ma variable GEA_Tasks_Test par GEA2_Tasks en faisant sa, dans ma scéne GEA test cela ne fonctionne pas, mais si je remet dans ma scène GEA test GEA.globalTasks = "GEA_Tasks" cela fonctionne mais j'ai deux scènes GEA qui tourne sur la même variable GEA_Tasks et sa comme tu me la dit ce n'est pas bon Donc je ne comprend pas pourquoi cela ne fonctionne pas.
pepite Posté(e) le 26 février 2016 Signaler Posté(e) le 26 février 2016 Bonjour @soulac, heuuu alors la je ne comprends pas non plus. :-(
jerome_clamart Posté(e) le 26 février 2016 Signaler Posté(e) le 26 février 2016 Bonjour à tous, Je suis au bout du monde et ma femme de mange m'a appris que les scripts GEA ne fonctionnaient plus depuis 15 jours ... Petite question, je suis le seul a pas rebooter ma HC2 ou a pas enregistrer GEA au moins une fois pas mois ? Je pose la question car si je reboot ou si j'enregistre GEA sans modification, cela fonctionne de nouveau pour une vingtaine de jour ... J'ai vu un VD pour rebooter une HCL, cela peut il passer sur une HC2 ? Merci pour vos retours 1
pepite Posté(e) le 26 février 2016 Signaler Posté(e) le 26 février 2016 @jerome, mets le watchdog de @Lazer si tu peux moi ca fait longtemps que je n'ai pas reboote GEA
Sakkhho Posté(e) le 26 février 2016 Signaler Posté(e) le 26 février 2016 moi j'ai une ligne GEA qui reboot ma HC2 si j'ai moins de 10% de RAM libre - reboot dans la nuit, c'est invisible j'ai le watchdog qui surveille aussi GEA, mais c'est très rare que ça plante
ced600f Posté(e) le 26 février 2016 Signaler Posté(e) le 26 février 2016 @Sakkhho: Peux-tu partager ton code pour rebooter la HC2 quand la ram libre est minime ?
soulac Posté(e) le 26 février 2016 Signaler Posté(e) le 26 février 2016 Franchement je ne comprend pas se qui se passe Je met le code suivant dans une scène. --[[ %% autostart %% properties 25 value 168 value 134 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 {70, 71} -- [EN] Smarphones you want to be notified {XX, XX} for more than one GEA.portables = {16} -- [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 = { -- entree -- OUVERTURE_ENTREE = 25, -- SPOT_ENTREE = 118, -- salon -- VR_SALON = 129, -- OUVERTURE_SALON = 40, -- LUSTRE_SALON = 114, D_MOUV_SALON = 168, -- D_LUM_SALON = 123, -- D_TEMP_SALON = 122, -- NEATO = 116, -- salle a manger -- VR_SAM = 76, -- OUVERTURE_SAM = 34, -- LUSTRE_SM = 80, -- cuisine -- OUVERTURE_CUI = 28, SPOT_CUISINE = 82, -- chambre mateo -- VR_CHAMBRE_M = 131, -- OUVERTURE_CH_M = 42, -- D_MOUV_CHM = 95, -- chambre parental -- VR_CHAMBRE_P = 142, LUSTRE_PARENTAL = 140, D_MOUV_PARENTAL = 134, -- couloir -- salle de bain -- exterieur -- D_LUM_EXT = 148, -- D_TEMP_EXT = 147, -- D_MOUV_EXT = 146, -- Virtual Device -- VD_PRESENCE_SEB = 161, -- VD_PRESENCE_CEL = 164, -- VD_SUNSET_SUNRISE = 112, -- VD_TEMP = 144, } -- ------------------------------------------------------------ -- [FR] Variable Globale optionnel pour autorisé GEA de s'exécuté -- [FR] Usage : GEA.getGlobalForActivation = {"<globalvar>", "<value pour autoriser l'execution>"} -- [EN] Optional Global Variable to allow GEA to run -- [EN] Usage : GEA.getGlobalForActivation = {"<globalvar>", "<value for activation>"} -- ------------------------------------------------------------ --GEA.getGlobalForActivation = {"SuspendreGEA", "non"} -- ---------------------------------------------------------------- -- [FR] A partir d'ici vous trouverez ma propre configuration -- [FR] vous permettant ainsi d'avoir une série d'exemple -- [EN] From here are ma own configuration -- [EN] just to allow you to see some examples -- ---------------------------------------------------------------- -- Condition -- Ouverture volet à 10h00 en mode Travail si maman dans le salon -- GEA.add({JourMaison,Presence_Maman}, 30, "Ouverture Volet Jour Travail et Maman" , {{"Time","12:15","12:16"},{"Open",id["VR_SALON"],100},{"Open",id["VR_SAM"],100}}) -- ================================================== -- CUISINE -- ================================================== -- Si déjà Allumé, Re-Allumage à 70% dès que détection mouvement sauf si module déjà a + de 64% (économie Z-Wave) GEA.add({id["D_MOUV_SALON"],{"Value+", id["SPOT_CUISINE"], 1},{"Value-", id["SPOT_CUISINE"],64}}, -1, "allumage",{{"Value", id["SPOT_CUISINE"], 65}}) -- Après 10min on dimme la lampe à 34% si pas de mouvement local malampesam = GEA.add({"Value+", id["SPOT_CUISINE"],64}, 2*60, "",{{"Value", id["SPOT_CUISINE"], 54},{"Repeat"}}) -- Après 3 min on met la lampe à 65% (prète pour prochain allumage) puis on éteint, uniquement si la lampe est entre 1 et 35 local malampesamdim = GEA.add({{"Value-", id["SPOT_CUISINE"],55},{"Value+", id["SPOT_CUISINE"], 1}}, 1*60,"dim",{{"Value", id["SPOT_CUISINE"], 65},{"Function", function() fibaro:sleep(300) end},{"turnOff"}},{"Repeat"}) -- Relance des tâches en cas de détection pendant 30 secondes et si la lampe est allumée (économise GEA) -- GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, 30, "", {{"RestartTask", malampesam},{"RestartTask", malampesamdim},{"Repeat"}}) GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, 30, "", {{"RestartTask", malampesam},{"Repeat"}}) GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, 30, "", {{"RestartTask", malampesamdim},{"Repeat"}}) -- Relance des tâches en cas de détection si la lampe est allumée (économise GEA) -- GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, -1, "", {{"RestartTask", malampesam},{"RestartTask", malampesamdim}}) GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, -1, "", {{"RestartTask", malampesam}}) GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, -1, "", {{"RestartTask", malampesamdim}}) -- ================================================== -- CHAMBRE PARENTAL -- ================================================== -- Si déjà Allumé, Re-Allumage à 65% dès que détection mouvement sauf si module déjà a + de 64% (économie Z-Wave) GEA.add({id["D_MOUV_PARENTAL"],{"Value+", id["LUSTRE_PARENTAL"], 1},{"Value-", id["LUSTRE_PARENTAL"],64}}, -1, "",{{"Value", id["LUSTRE_PARENTAL"], 65}}) -- Après 3min on dimme la lampe à 54% si pas de mouvement local malampechp = GEA.add({"Value+", id["LUSTRE_PARENTAL"],64}, 2*60, "",{{"Value", id["LUSTRE_PARENTAL"], 54},{"Repeat"}}) -- Après 3 min on met la lampe à 65% (prète pour prochain allumage) puis on éteint, uniquement si la lampe est entre 1 et 35 local malampechpdim = GEA.add({{"Value-", id["LUSTRE_PARENTAL"],55},{"Value+", id["LUSTRE_PARENTAL"], 1}}, 1*60,"",{{"Value", id["LUSTRE_PARENTAL"], 65},{"Function", function() fibaro:sleep(300) end},{"turnOff"}},{"Repeat"}) -- Relance des tâches en cas de détection pendant 30 secondes et si la lampe est allumée (économise GEA) -- GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, 30, "", {{"RestartTask", malampechp},{"RestartTask", malampechpdim},{"Repeat"}}) GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, 30, "", {{"RestartTask", malampechp},{"Repeat"}}) GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, 30, "", {{"RestartTask", malampechpdim},{"Repeat"}}) -- Relance des tâches en cas de détection si la lampe est allumée (économise GEA) -- GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, -1, "", {{"RestartTask", malampechp},{"RestartTask", malampechpdim}}) GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, -1, "", {{"RestartTask", malampechp}}) GEA.add({{id["D_MOUV_PARENTAL"]},{"Value+", id["LUSTRE_PARENTAL"], 1}}, -1, "", {{"RestartTask", malampechpdim}}) -- ================================================== -- GESTION DE L'ENTREE -- ================================================== -- Allumage automatique à l'ouverture de la porte d'entré -- GEA.add({ id["OUVERTURE_ENTREE"]}, -1, "allumage entre", {{"Time", "19:00", "02:01"}, {"turnOn", id["SPOT_ENTREE"]}, {"turnOn", id["LUSTRE_SALON"]}}) -- Eteindre automatiquement l'entrée après 3 mn -- GEA.add({ id["SPOT_ENTREE"]}, 3*60, "", {{"turnOff"}}) -- Vérification des modules parfois "dead" // Checking sometimes dead modules -- GEA.add({"Dead", id["POELE"]}, 5*60, "", {{"WakeUp", id["POELE"]}}) -- GEA.add({"Dead", id["LEDS_ESCALIER"]}, 5*60, "", {{"WakeUp", id["LEDS_ESCALIER"]}}) -- extérieur -- ================================================== -- [FR] NE PLUS RIEN TOUCHER -- [EN] DON'T TOUCH UNDER THIS POINT -- ================================================== end if (not GEA) then GEA = {} GEA.version = "5.40" GEA.language = "FR"; GEA.checkEvery = 30 GEA.index = 0 GEA.isVersionFour = true GEA.globalTasks = "GEA_Tasks" GEA.regexFullAllow = false GEA.portables = {} J'ai bien créé une variable GEA_Tasks Cela fonctionne depuis hier et ce soir je veux mettre le code dans mon GEA de prod cela ne fonctionne pas puis je le remet dans mon GEA de Test et j'enlève juste les notifications pour debug afin de savoir si c allumé ou entrain de dim à x% et la rien ne fonctionne Est ce que quelqu'un voit une erreur ?
Sakkhho Posté(e) le 27 février 2016 Signaler Posté(e) le 27 février 2016 je vois déjà25 value dans l'entête et l id non déclaré par la suite. -- OUVERTURE_ENTREE = 25, supprime déjàce 25
Sakkhho Posté(e) le 27 février 2016 Signaler Posté(e) le 27 février 2016 @Sakkhho: Peux-tu partager ton code pour rebooter la HC2 quand la ram libre est minime ? assez simple en fait, j'ai ce code dans un VD (merci Mprinfo de mémoire ;-) avec une VG "RamFree" --Code du VD function round(num) local a = math.floor(num*100 + 0.5)/ 100 return a,string.format("%.2f",a) end local vId = fibaro:getSelfId(); fibaro:call(vId,"setProperty","currentIcon","1043") local HC2 = Net.FHttp("127.0.0.1",11111) local response, status, errorCode = HC2:GET("/api/diagnostics") if tonumber(status) == 200 then local result = json.decode(response); --Utilisation de la RAM local ramfree = tonumber(result.memory.free) fibaro:setGlobal("RamFree",ramfree) le button de Reboot local SelfId = fibaro:getSelfId() local HC2 = Net.FHttp("127.0.0.1",11111) response, status, errorCode = HC2:POST("/api/settings/reboot", "data=shutdown -h"); if errorCode == 0 then fibaro:log(status); else fibaro:log("error"); end et GEA qui check et execute GEA.add({{"Global-", "RamFree", 10}}, 30, "RAM inférieure à #value# - Reboot prévu cette nuit", {{"Time", "21:00", "21:01"}}) -- Push si Ram faible GEA.add({{"Global-", "RamFree", 10}}, 30, "Reboot HC2 car RAM inférieure à 10%", {{"Time", "02:45", "02:46"},{"VirtualDevice", id["HC2_DIAGNOSTICS"], 16}}) -- Reboot HC2 si RAM faible 1
chris2div Posté(e) le 27 février 2016 Signaler Posté(e) le 27 février 2016 Bonjour à tous, J'essaie d'utiliser GEA sans grand succès :-( L'idée première est d'envoyer un SMS sur déclenchement d'une ouverture à partir d'un FGK-101 (id 110). Pour envoyer un SMS, j'ai un VD (id 96) avec un bouton contenant du code LUA qui envoie une requête http à un raspberry muni d'une clé USB 3G. Quand j'appuie sur le bouton 1 du VD, le SMS est bien envoyé, et bien reçu :-) Quand j'ouvre le FGK, on voit bien l'icone de la porte s'ouvrir. Donc tout fonctionne bien, en manuel. Dans la scène GEA (v5.40), j'ai bien mis dans l'entête %% properties 110 value et pour déclarer l'action : GEA.add(110, -1, {"VirtualDevice", 96, 1}) Or, en ouvrant le FGK, j'obtiens ceci dans les logs : [DEBUG] 09:32:16: GEA Version 5.40 : en exécution... [DEBUG] 09:32:16: [ 110 | n/a ] En cours : vérification (ID: 1) [DEBUG] 09:32:16: [ 110 | n/a ] Check : démarrage vérification (ID: 1) [DEBUG] 09:32:16: [ 110 | n/a ] Check : vérification des dates (ID: 1) [DEBUG] 09:32:16: [ 110 | n/a ] isActivated : vérification de l'activation (ID: 1) [DEBUG] 09:32:16: [ 110 | n/a ] isActivated : type : com.fibaro.doorSensor (ID: 1) [DEBUG] 09:32:16: [ 110 | n/a ] isActivated : activé (ID: 1) [DEBUG] 09:32:16: [ 110 | n/a ] Check : activé depuis 30/-1 (ID: 1) [DEBUG] 09:32:16: [ 110 | n/a ] sendActions : traitement des actions (ID: 1) [DEBUG] 09:32:16: [ 110 | n/a ] !!! ERREUR !!! : vérification (ID: 1) [DEBUG] 09:32:19: [ 110 | n/a ] Add Property : ajout de la tâche pour lancement instantané (ID: 1) [DEBUG] 09:32:19: GEA Version 5.40 : en exécution... Alors je sèche lamentablement. Pouvez-vous m'aider svp ? Merci beaucoup;
Sakkhho Posté(e) le 27 février 2016 Signaler Posté(e) le 27 février 2016 essai GEA.add(110, -1,"", {"VirtualDevice", 96, 1})
chris2div Posté(e) le 27 février 2016 Signaler Posté(e) le 27 février 2016 essai GEA.add(110, -1,"", {"VirtualDevice", 96, 1}) Hello, J'ai fait un copier-coller de la ligne, et j'obtiens : [DEBUG] 10:14:36: line 270: bad argument #1 to 'lower' (string expected, got nil) Merci beaucoup,
Sakkhho Posté(e) le 27 février 2016 Signaler Posté(e) le 27 février 2016 avec la double accolade alors ? GEA.add(110, -1,"", {{"VirtualDevice", 96, 1}})
Messages recommandés