971jmd Posté(e) le 14 janvier 2019 Signaler Posté(e) le 14 janvier 2019 j'ai fait comme ça et ça fonctionne -- Exctinction automatique après 30s GEA.add({"Global", "MANUAUTO", "auto2"}, -1, "auto" , { {"Sleep", 1, {"turnOn", id["CUISINE"] }}, {"Sleep", 30, {"turnOff", id["CUISINE"] }}, {"Sleep", 32, {"Global", "MANUAUTO", "auto" }} }) -- Allumage automatique LAMPE_PARKING sur detection -- GEA.add( {{"Value", 466, 1}, {"Global", "MANUAUTO", "auto"}}, -1,"", {{"Global", "MANUAUTO", "auto2"}}) -- Allumage manuel LAMPE_PARKING -- GEA.add(id["CUISINE"], -1, "", {{"Global", "MANUAUTO", "manu"}}) GEA.add({"Value", id["CUISINE"], 0}, -1, "", {{"Global", "MANUAUTO", "auto"}})
pepite Posté(e) le 14 janvier 2019 Signaler Posté(e) le 14 janvier 2019 Super parfait. Mais je me demande toujours pourquoi tu poses les questions, on te propose du code, tu fais toujours différemment !! 3
971jmd Posté(e) le 14 janvier 2019 Signaler Posté(e) le 14 janvier 2019 tout ça pour dire que faire du code avec des enfants dans ta tête pfffffff c'est compliquée encore 1000 merci
971jmd Posté(e) le 14 janvier 2019 Signaler Posté(e) le 14 janvier 2019 (modifié) juste autre chose, il y t_il une fonctionne pour faire clignoté une lampe Modifié le 14 janvier 2019 par 971jmd
Forall Posté(e) le 14 janvier 2019 Signaler Posté(e) le 14 janvier 2019 Thank you @Steven and @pepite , The link to the new verion worked exelent and i have now change to that one. and with the explanation of multiple arguments for the new verion i have now started to clean up my functions. Unfortunately i may have done something wrong again of found a bug is i get this error in the "do not touch" code. Also ID 167 is my LUX sensor in the garage and at the moment is indicates zero but according to the event log if is operational and changes regularly. Best Regards, Daniel
pepite Posté(e) le 15 janvier 2019 Signaler Posté(e) le 15 janvier 2019 Hi @Forall Have you got lines GEA.add(167, -1, ""...) ? If you have line only like this : GEa.add(167,30, ""...) like the message in red, you have to delete 167 value from the header of the scene. For the first error, could you paste your line 1921 please.
971jmd Posté(e) le 15 janvier 2019 Signaler Posté(e) le 15 janvier 2019 Il y a 22 heures, pepite a dit : Super parfait. Mais je me demande toujours pourquoi tu poses les questions, on te propose du code, tu fais toujours différemment !! je vois que Steven et Laser son du même avis que toi
Forall Posté(e) le 15 janvier 2019 Signaler Posté(e) le 15 janvier 2019 Dear @pepite, Thank you so much for helping me out with this. Line 1921 is " message:gsub("({.-})", function(c) " from section " message:gsub("({.-})", function(c) local d = tools.split(c:gsub("{", ""):gsub("}", ""), ",") for i = 1, #d do d = tools.trim(d) if (tools.isNumber(d)) then d = tonumber(d) elseif (d:lower()=="true") then d = true elseif (d:lower()=="false") then d = false end end local res = GEA.getOption(d).getValue() if (type(res) == "nil") then res = "n/a" end message = message:gsub(c, tostring(res)) end) " Regarding Lux meter 167, I had it in the heading to collect the data but not started adding the code yet, so removing it and only adding the once i have a function ready for solved that one Are these correct functions? got a little confused with the multiple conditions structure with PIR activation: --Turn on outdoor lights on front side of the house PIR dependent during the night and turn of 5 min later GEA.add(id["FramsidePIR"], -1, "", {{"Global", "Solen", "Natt"}}, {{"turnOn", id["EntreLampa"]}, {"turnOn", id["UppfartenLampa"]},{"turnOn", id["GangLampa"]}}) -- when PIR notice movement, but only during night time, turn on 3 lamps GEA.add(id["FramsidePIR"], 5*60, "", {{"Global", "Solen", "Natt"}}, {{"turnOff", id["EntreLampa"]}, {"turnOff", id["UppfartenLampa"]}, {"turnOff", id["GangLampa"]}}) -- 5 min after the movement stops, still only during night time, turn of the affected lamps --Outdoor Lightning -- get variable Sun='Solen' through the day using timers to avoid LUX meters to activete the light on inproper times GEA.add( {{"Time", "05:00", "05:02"}}, 30 , {{"Global", "Solen", "Gryning"}}) - check every 30 sec and if time is between 05:00-05:02 state that it is twilight in the global variable GEA.add( {{"Time", "09:00", "09:02"}}, 30 , {{"Global", "Solen", "Dag"}, {"Global", "Pool", "Släck"}}) -- check every 30 sec and if time is between 09:00-09:02 state that it is daytime and the the pool light variable should be set to off GEA.add( {{"Time", "14:00", "14:02"}}, 30 , {{"Global", "Solen", "Eftermiddag"}}) GEA.add( {{"Time", "22:00", "22:02"}}, 30 , {{"Global", "Solen", "Sen kväll"}}) -- Control Variable 'Sun' (Solen)with LUX meeters morning and afternoon GEA.add( {{"Value+", id["FramsidanLUX"], 150} , {"Global", "Solen", "Gryning"}}, 30 , {{"Global", "Pool", "Släck"}, {"turnOFF", id["EntreLampa"]}, {"turnOff", id["UppfartenLampa"]}, {"turnOff", id["GangLampa"]}, {"turnOff", id["AltanLampa"]}, {"turnOff", id["PoolLampa"]}, {"Global", "Solen", "Dag"}}) --check every 30 sec and if the lux is above 150 and it is twilight turn of a bunch of lamps and state that it is daytime and pool lights off GEA.add( {{"Value+", id["BaksidanLUX"], 150} , {"Global", "Solen", "Gryning"}}, 30 , {{"Global", "Pool", "Släck"}, {"turnOFF", id["EntreLampa"]}, {"turnOff", id["UppfartenLampa"]}, {"turnOff", id["GangLampa"]}, {"turnOff", id["AltanLampa"]}, {"turnOff", id["PoolLampa"]}, {"Global", "Solen", "Dag"}}) -- same as above but on the other side of the house GEA.add( {{"Value-", id["FramsidanLUX"], 25} , {"Global", "Solen", "Eftermiddag"}}, 30, {{"Global", "Pool", "Tänd"}, {"turnOn", id["EntreLampa"]}, {"turnOn", id["UppfartenLampa"]}, {"turnOn", id["GangLampa"]}, {"turnOn", id["AltanLampa"]}, {"Global", "Solen", "Kväll"}}) ----check every 30 sec and if the lux is below 25 and it is afternoon turn on a bunch of lamps and state that it is evening and pool lights on GEA.add( {{"Value-", id["BaksidanLUX"], 25} , {"Global", "Solen", "Eftermiddag"}}, 30, {{"Global", "Pool", "Tänd"}, {"turnOn", id["EntreLampa"]}, {"turnOn", id["UppfartenLampa"]}, {"turnOn", id["GangLampa"]}, {"turnOn", id["AltanLampa"]}, {"Global", "Solen", "Kväll"}})
Steven Posté(e) le 17 janvier 2019 Auteur Signaler Posté(e) le 17 janvier 2019 Hi @Forall, You got a problem with brakets {} ... look at your first line : --Turn on outdoor lights on front side of the house PIR dependent during the night and turn of 5 min later GEA.add(id["FramsidePIR"], -1, "", {{"Global", "Solen", "Natt"}}, {{"turnOn", id["EntreLampa"]}, {"turnOn", id["UppfartenLampa"]},{"turnOn", id["GangLampa"]}}) -- when PIR notice movement, but only during night time, turn on 3 lamps If your framsidePIR is activated you want to turnOn 3 lamps and set the global variable "Solen" to "Natt" ... ok but you put en extra {} killing GEA. If you want 1 simple action, you can write it like this : GEA.add(id["FramsidePIR"], -1, "", {"Global", "Solen", "Natt"}) If you want multiple actions, you have to enclose them between {} like this : GEA.add(id["FramsidePIR"], -1, "", { {"Global", "Solen", "Natt"}, {"TurnOn", id["UppfartenLampa"]} } ) In your case, your first line should be : GEA.add(id["FramsidePIR"], -1, "", { {"Global", "Solen", "Natt"}, {"TurnOn", { id["UppfartenLampa"], id["EntreLampa"], id["GangLampa"] }} } ) 2
Forall Posté(e) le 17 janvier 2019 Signaler Posté(e) le 17 janvier 2019 Dear @Steven, Thank you for the explanation! I will correct this in the code and give it a new try
Forall Posté(e) le 17 janvier 2019 Signaler Posté(e) le 17 janvier 2019 Dear @Steven, unfortionatly the log shows that each time i get movement it interperate the code as seting the varible to night instead of if night GEA.add(id["FramsidePIR"], -1, "", { {"Global", "Solen", "Natt"}, --if nighttime {"TurnOn", { id["UppfartenLampa"], id["EntreLampa"], id["GangLampa"] }} -- turn on lights } ) Best regards, Daniel
MAM78 Posté(e) le 18 janvier 2019 Signaler Posté(e) le 18 janvier 2019 (modifié) Hello les experts GEA J'ai un souci de gestion des conditions dans GEA 11 avec les conditions suivantes : GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblMichel", "X Présent"} }, -1, "Michel vient d'arriver de la maison", {{"Popup", "Info","HomeMode", "Michel vient d'arriver de la maison"} }, "Michel vient d'arriver de la maison") GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblMichel", "Y Absent"} }, -1, "Michel vient de quitter de la maison", {{"Popup", "Info","HomeMode", "Michel vient de quitter de la maison"} }, "Michel vient de quitter de la maison") GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblGaby", "X Présent"} }, -1, "Michel vient d'arriver de la maison", {{"Popup", "Info","HomeMode", "Gaby vient d'arriver de la maison"} }, "Gaby vient d'arriver de la maison") GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblGaby", "Y Absent"} }, -1, "Michel vient de quitter de la maison", {{"Popup", "Info","HomeMode", "Gaby vient de quitter de la maison"} }, "Gaby vient de quitter de la maison") Mon problème est le suivant : J'ai déclaré dans l'entête les 2 labels : lblMichel et lblGaby Lorsque le label lblMichel avec la valeur "X Présent" j'ai bien le message "Michel vient d'arriver de la maison" Mais le problème est que j'ai également : le message "Gaby vient d'arriver de la maison" si le contenu du label lblGaby contient "X Présent" le message "Gaby vient de quitter la maison" si le contenu du label lblGaby contient "Y Absent" Alors que la label lblGaby n'a pas été modifié Ma question est donc la suivante : Comment faire pour que les conditions relatives au label lblGaby ne soit pas évaluée (dans l'exemple donné) lors de déclenchement de GEA lors de la modification du label lblMichel ? Modifié le 18 janvier 2019 par MAM78
MAM78 Posté(e) le 19 janvier 2019 Signaler Posté(e) le 19 janvier 2019 Un petit up du matin. Vous n’aviez probablement pas vu la question hier soir.Merci les amis
MAM78 Posté(e) le 20 janvier 2019 Signaler Posté(e) le 20 janvier 2019 Hello @Steven, @pepite vous êtes en vacances ?
Steven Posté(e) le 21 janvier 2019 Auteur Signaler Posté(e) le 21 janvier 2019 Je n'ai aucun ordinateur à la maison car je n'en veux pas et au travail, je suis sur un projet qui prend 110% de mon temps. Quant à @pepite, il a d'autre chose personnelle bien plus importante à traiter. Donc, en gros, on a largement autre chose à faire et je ne pense pas que ton problème soit vraiment urgent. Le 17/01/2019 à 21:00, Forall a dit : Dear @Steven, unfortionatly the log shows that each time i get movement it interperate the code as seting the varible to night instead of if night GEA.add(id["FramsidePIR"], -1, "", { {"Global", "Solen", "Natt"}, --if nighttime {"TurnOn", { id["UppfartenLampa"], id["EntreLampa"], id["GangLampa"] }} -- turn on lights } ) Best regards, Daniel Change it like this GEA.add( {id["FramsidePIR"], {"Global", "Solen", "Nat"}}, -1, "", {"TurnOn", {id["UppfartenLampa"], id["EntreLampa"], id["GangLampa"]}}) 1
soulac Posté(e) le 21 janvier 2019 Signaler Posté(e) le 21 janvier 2019 Bonjour a tous j'ai une petite question sans doute déjà évoqué dans le support je souhaiterais changer la valeur d'un slider d'un vd j'ai tapé la ligne suivant : GEA.add({"Global", "", ""}, 30, "",{{id["VD_HEOS_SDB_P"],"slider", 21}}) malheureusement cela ne fonctionne pas. une idée
MAM78 Posté(e) le 21 janvier 2019 Signaler Posté(e) le 21 janvier 2019 Il y a 2 heures, Steven a dit : Je n'ai aucun ordinateur à la maison car je n'en veux pas et au travail, je suis sur un projet qui prend 110% de mon temps. Quant à @pepite, il a d'autre chose personnelle bien plus importante à traiter. Donc, en gros, on a largement autre chose à faire et je ne pense pas que ton problème soit vraiment urgent. Je comprends bien ta réaction à ma sollicitation, désolé celle-ci t'a agacée. Je patienterais le temps qu'il faudra ou j'essayerais de trouver par moi-même la solution qu'évidement je partagerais comme à mon habitude. Voir MP sur le sujet.
Domodial Posté(e) le 21 janvier 2019 Signaler Posté(e) le 21 janvier 2019 Un jour tout sera relié a notre cerveau, les ordres seront électrosensoriel Je rêve mais bon 1
HANSOLO Posté(e) le 21 janvier 2019 Signaler Posté(e) le 21 janvier 2019 Et certains resteront dans le noir faute de pouvoir commander les lumières ou les volets..... 3 2
MAM78 Posté(e) le 21 janvier 2019 Signaler Posté(e) le 21 janvier 2019 (modifié) Le 18/01/2019 à 20:59, MAM78 a dit : J'ai déclaré dans l'entête les 2 labels : lblMichel et lblGaby Lorsque le label lblMichel avec la valeur "X Présent" j'ai bien le message "Michel vient d'arriver de la maison" Mais le problème est que j'ai également : le message "Gaby vient d'arriver de la maison" si le contenu du label lblGaby contient "X Présent" le message "Gaby vient de quitter la maison" si le contenu du label lblGaby contient "Y Absent" Alors que la label lblGaby n'a pas été modifié Ma question est donc la suivante : Comment faire pour que les conditions relatives au label lblGaby ne soit pas évaluée (dans l'exemple donné) lors de déclenchement de GEA lors de la modification du label lblMichel ? Après quelques recherches et analyse du code GEA, je pense que cette fonctionnalité n'est pas disponible en l'état dans GEA 6.11. J'espère ne pas me tromper sur mon analyse Je même surpris d'être le premier à rencontrer cette situation. J'ai donc entrepris de voir comment ajouter cette fonctionnalité à GEA et qui est toutefois relativement simple à mettre en oeuvre Rappel de mon PB exposé précédemment. Lorsque l'on déclenche des actions GEA selon les états de plusieurs label d'un même VD et qu'on les utilises comme conditions. A chaque execution de GEA du fait d'un changement d'un des labels, l'ensemble des conditions utilisant ce VD sont vérifiées (même si les autres labels n'ont pas été modifié) et si ces conditions pour sont vrais alors les actions associées sont exécutées. Ce qui peut être gênant lorsque si l'on veut déclencher seulement les conditions liées aux labels qui ont changé de valeur et pas les autres. C'est exactement mon cas exposé dans l'exemple ci-dessus. Fonctionnellement ce n'est pas parce que Michel vient d'arriver à la maison que pour autant Gaby vient également d'arriver ou de partir de la maison. J'espère avoir été clair. Cf. l'image de mon VD ci-dessous. Pour traité ces cas de figures : je passe par l'utilisation de la propriété propertyName de la fonction fibaro:getSourceTrigger() qui retourne la nom du label qui a déclenché (trigger) le lancement de la scène GEA. et donc l'ajout de la nouvelle fonction GEA ci-dessous. Il convient de l'ajouter dans la liste des fonctions renseignées dans la partie : function config() GEA.options.triggerpropertyname = { name = "TriggerPropertyName",getValue=function() if (GEA.source.type == "property") then return GEA.source.propertyName:gsub("ui.", ""):gsub(".value", "") end return "other" end} Dès lors, vous pouvez ajouter dans vos conditions une condition additionnelle qui va tester quel est le label qui à déclencher GEA. CQFD Voici quelques lignes d'exemples d'utilisation : GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblMichel", "X Présent"} ,{"TriggerPropertyName", "lblMichel"}} ,-1, "Michel arrive de la maison") GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblMichel", "Y Absent"} ,{"TriggerPropertyName", "lblMichel"}} ,-1, "Michel quitte la maison") GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblGaby", "X Présent"} ,{"TriggerPropertyName", "lblGaby"}} ,-1, "Gaby arrive de la maison") GEA.add({{"Label", id["VD_HomeMode_Manager"], "lblGaby", "Y Absent"} ,{"TriggerPropertyName", "lblGaby"}} ,-1, "Gaby quitte la maison") Peut-être que @Steven trouvera cette nouvelle fonction pertinente et l'intégrera dans les fonctions de base dans une future version de GEA peut-être la 6.12 ? Modifié le 21 janvier 2019 par MAM78
MAM78 Posté(e) le 21 janvier 2019 Signaler Posté(e) le 21 janvier 2019 (modifié) Il y a beaucoup de choses qui ne vont pas dans ta ligne ci-dessous : Il manque le nom de ta variable globale ici (en rouge) qui est en condition. cf. Syntaxe : {"Global", <nom variable>, <valeur>} Il manque la valeur de ta variable globale tu veux tester (en vert). cf. Syntaxe : {"Global", <nom variable>, <valeur>} Il manque le mot qui détermine l'action que tu veux réaliser (en violet) "Label" ou "Slider" selon la syntaxes suivante : {"Slider", <id_vd>, <id_label>, <valeur>} ou {"Label", <id_vd>, <id_label>, <valeur>} Si tu veux un déclenchement automatique selon un changement de valeur de la variable globale, il faut mette -1 (en bleu) à la place de ton nombre 30. Il y a 11 heures, soulac a dit : GEA.add({"Global", "", ""}, 30, "",{{id["VD_HEOS_SDB_P"],"slider", 21}}) Soit une fois corrigé, ça devrait donner ça : GEA.add({"Global", "xxxx", "yyyy"}, -1, "",{"Label", id["VD_HEOS_SDB_P"], "slider", 21}) en supposant que "slider" correspond au nom du label du VD dont l'id est VD_HEOS_SDB_P que tu as préalablement déclaré dans la partie function setEvents() ainsi que la variable Global dans l'entête de GEA après : --[[ %% autostart %% properties Je t'invite à étudier la documentation des fonctions GEA rédigée par @pepite et rappelée à la fin du tutoriel de @Steven ici : Modifié le 21 janvier 2019 par MAM78
Forall Posté(e) le 22 janvier 2019 Signaler Posté(e) le 22 janvier 2019 Il y a 22 heures, Steven a dit : Je n'ai aucun ordinateur à la maison car je n'en veux pas et au travail, je suis sur un projet qui prend 110% de mon temps. Quant à @pepite, il a d'autre chose personnelle bien plus importante à traiter. Donc, en gros, on a largement autre chose à faire et je ne pense pas que ton problème soit vraiment urgent. Change it like this GEA.add( {id["FramsidePIR"], {"Global", "Solen", "Nat"}}, -1, "", {"TurnOn", {id["UppfartenLampa"], id["EntreLampa"], id["GangLampa"]}}) Thank you very much @Steven, For me there was never any hurry but i sincerely appreciate all the time you have put into both developing GEA and for the support you give The new code looks like it is working as it should! I quite often envy those that have the same discipline as you, and not having the computer at home working evenings and weekends...
pepite Posté(e) le 22 janvier 2019 Signaler Posté(e) le 22 janvier 2019 Bonjour, PAs très présent en ce moment, désolé @MAM78 Cela existe déjà en natif comme ceci, à voir si cela répond à ton besoin : GEA.add({"Property", id["VD_HomeMode_Manager"], "lblMichel", "X Présent"}, -1, .....) @soulac Pour modifier un SLIDER c'est comme ceci : {"Slider", <id_vd>, <num_slider>, <valeur>} GEA.add({CONDITIONS}, 30, "", {"Slider", 77, "15", 18})
MAM78 Posté(e) le 22 janvier 2019 Signaler Posté(e) le 22 janvier 2019 il y a 27 minutes, pepite a dit : Cela existe déjà en natif comme ceci, à voir si cela répond à ton besoin : Merci @pepite J'ai bien essayé ta proposition, mais elle ne fonctionne pas. Je l'ai même modifiée puisqu'il me semble que la syntaxe devrait être la suivante : il manquait "ui." et ".value" GEA.add({"Property", id["VD_HomeMode_Manager"], "ui.lblGaby.value", "X Présent"},-1, "Gaby arrive de la maison") Comme exposé précédemment à chaque modification d'un des labels, les autres conditions sont évaluées et si elle sont vraies elles exécutes les actions alors qu'il n'y a pas eu modification des autres label. Il faut donc identifier à chaque passage quel est le label qui a été modifié. Il y a 11 heures, MAM78 a dit : {"Slider", <id_vd>, <id_label>, <valeur>} ou {"Label", <id_vd>, <id_label>, <valeur>} c'est également ce que j'avais indiqué ci-dessus
Messages recommandés