971jmd Posté(e) le 13 septembre 2019 Signaler Posté(e) le 13 septembre 2019 salut a tous j'ai les code ci-dessous qui change une icon dans une Vd selon si la clime et OFF ou ON le code fonctionne très bien mai le problème est que je suis obliger d’actualisée la page de la VD pour voir le changement avez vous une solution pour que la VD s'actualise tout les 30s par exemple GEA.add( {"Power-", id["CLIM_CH_PARENT"], 20}, 30, "", { {"Sleep", 1, {"CurrentIcon", id["VDCLIM"], 1044}}}) ----OFF GEA.add( {"Power+", id["CLIM_CH_PARENT"], 20}, 30, "", { {"CurrentIcon", id["VDCLIM"], 1045}}) --- on merci de votre aide
mipa Posté(e) le 15 septembre 2019 Signaler Posté(e) le 15 septembre 2019 Hello, Ai-je fais une boulette ou je suis juste impressionné par le GEA ? J'ai installé le VD jour Chomé de @HANSOLO, VD que je trouve très bien. Je vais l'utilisé dans mes scènes, merci à toi ! Le VD fonctionne parfaitement, me suis donc dit c'est le moment de le rentrer dans GEA (dans le but de pouvoir l'utiliser) j'ai donc rentré la ligne suivante dans GEA : GEA.add(true, 30, "", {{"VirtualDevice", 137, 3},{"Time", "00:00", "00:01"}}) Et là GEA c'est mis à faire une action que je n'avais encore jamais vue.. Il a supprimé plus d'une 50aine "d'option inutile" Es-ce normale ? Et si oui, pourquoi cela c'est produit après l'ajout de la ligne VD ? Question subsidiaire : Est ce que ces options peuvent revenir, si besoin ? Merci
Steven Posté(e) le 15 septembre 2019 Auteur Signaler Posté(e) le 15 septembre 2019 GEA en mode automatique, soit lorsqu'il tourne toutes les 30 secondes, fait le ménage pour libéré de la mémoire. En effet, au 1er passage, il profite pour analyser les demandes de l'utilisateur. Tout ce qui est inutile est supprimé de la mémoire afin de ne pas avoir un script qui tourne non-stop trop gourmand. Rien n'est perdu, si tu rajoutes une ligne et que tu sauves, GEA va (au 2eme passage) relancer une analyse et donc garder en mémoire ce que tu as besoin. Envoyé de mon SM-G935F en utilisant Tapatalk 1
Steven Posté(e) le 15 septembre 2019 Auteur Signaler Posté(e) le 15 septembre 2019 Et pour répondre complètement. Avant tu n'avais que des actions immédiates (avec une durée de -1). Donc GEA ne tournait que sur demande. Une fois que tu as mis ton VD, tu lui demande de vérifier toutes les 30 secondes. Le mode automatique se lance donc laissant tourner une instance de ce script en mémoire tout le temps pour pouvoir, toute les 30 secondes, faire son travail. Envoyé de mon SM-G935F en utilisant Tapatalk 2
mipa Posté(e) le 15 septembre 2019 Signaler Posté(e) le 15 septembre 2019 Haaaa, c'est donc bien ça...GEA est intelligent (J'en doutais pas ceci-dit) Et pour répondre complètement. Avant tu n'avais que des actions immédiates (avec une durée de -1) = Exact Génial ! Merci Steven de ton retour. C'était important de comprendre le pourquoi de ce déclenchement (cela n'avait pas de sens pour moi avant de lire ta réponse) 1
mipa Posté(e) le 15 septembre 2019 Signaler Posté(e) le 15 septembre 2019 Hello, J'ai modifié une lignes GEA qui fonctionnait parfaitement...(ça y est je me lance dans l'aventure ) GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}}, -1, "", {"TurnOn", id["LampeExterieur"], 3*60}) Pour la remplacer par celle-ci : --Gestion lumière de porte extérieur, si mouvement durant la nuit = on GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}}, -1, "", {"TurnOn", id["LampeExterieur"]}) --Extinction 3 mn après si aucune activité détecté (jour et/ou nuit) GEA.add({id["LampeExterieur"], {"Value", id["DetecteurMVT"], 0}, }, 3*60, "", {"turnOff",id["LampeExterieur"]}) Comment inclure la condition si activité détecté pendant ce compte à rebours, ne pas éteindre pour 3 minutes supplémentaires (actuellement il ne tiens pas compte de cette condition) Merci de vos lumières....
Ghoosti Posté(e) le 16 septembre 2019 Signaler Posté(e) le 16 septembre 2019 Hello @mipa Je suis dans le m^ cas de figure GEA.add({{"Power+", id["ECL_LED_CUISINE"],3}, {"Value", id["MVT_CUISINE"], 0}}, 3*60, "", {"TurnOff", id["ECL_LED_CUISINE"]}) Il me semble qu'il en tient compte, si mouvement la valeur ne sera pas à 0 donc il ne devrait pas faire OFF PS: astuce de @pepite , il m'avait conseillé de mettre la ligne OFF au dessus de la ligne ON, j'avais le souci que parfois la lampe ne passait pas OFF 1
Steven Posté(e) le 16 septembre 2019 Auteur Signaler Posté(e) le 16 septembre 2019 Ce n'est malheureusement pas si simple que cela car GAE ne va vérifier que toutes les 3mn si un mouvement a eu lieu. Cela ne va donc pas fonctionner comme souhaiter. -- On éteins la lumière après 3mn -- Not Start = on ne fait rien pour l'instant. Cette ligne dors. local exctinction = GEA.add({"Time", "Sunset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart} }) -- Sur détection de mouvement, on allumer et on démarre la tache précédente. -- A chaque détection, on redémarre le compteur de la tache précédente GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask", exctinction } }) Ça devrait fonctionner. 1 1
Ghoosti Posté(e) le 16 septembre 2019 Signaler Posté(e) le 16 septembre 2019 @Steven Merci, je viens de tester et ça fonctionne bien. {"NotStart} remplacé par {"NotStart"} MAIS existe t'il une solution si la lampe a été ON en manuel ?
Steven Posté(e) le 16 septembre 2019 Auteur Signaler Posté(e) le 16 septembre 2019 Oui mais il faudrait que je retrouve tout cela car il y a un ordre très précis des lignes. A la maison j'ai cela mais il semble que cela ne fonctionne pas chez toi GEA.add({id["DETECT_JARDIN"], {"Value", id["COIN_MANGER"], 0},{"Time", "Sunset+30", "Sunrise"}}, -1, "", {"turnOn", id["COIN_MANGER"], 5*60}, "Allumage jardin sur détection") Mon détecteur n'allume la lumière pendant 5mn uniquement si elle n'est pas déjà allumée.
Steven Posté(e) le 16 septembre 2019 Auteur Signaler Posté(e) le 16 septembre 2019 -- On éteins la lumière après 3mn -- Not Start = on ne fait rien pour l'instant. Cette ligne dors. local exctinction = GEA.add({"Time", "Sunset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} }) -- Sur détection de mouvement, on allumer et on démarre la tache précédente. -- A chaque détection, on redémarre le compteur de la tache précédente GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask", exctinction } }) Ce qui est en gras devrais suffir :-) 1 1
Ghoosti Posté(e) le 16 septembre 2019 Signaler Posté(e) le 16 septembre 2019 (modifié) Super, je teste.... Modifié le 16 septembre 2019 par Ghoosti retour après test
Ghoosti Posté(e) le 16 septembre 2019 Signaler Posté(e) le 16 septembre 2019 Marche pas Je n'ai plus le RESTART Si ON en manuel, devient OFF après ~ 20'' local ExtinctionCuisine = GEA.add(true, 1*60, "", {{"TurnOff",id["ECL_LED_CUISINE"]}, {"NotStart"}}) -- Sur détection de mouvement, on allumer et on démarre la tache précédente. -- A chaque détection, on redémarre le compteur de la tache précédente. GEA.add({{"Value-", id["LUX_CUISINE"], 100}, {id["MVT_CUISINE"]}, {"TurnOff", id["ECL_LED_CUISINE"]}}, -1, "", {{"TurnOn", id["ECL_LED_CUISINE"]}, {"RestartTask", ExtinctionCuisine}})
mipa Posté(e) le 16 septembre 2019 Signaler Posté(e) le 16 septembre 2019 Merci @Steven Je teste le code proposé ce soir et vous revient... J'ai encore appris une fonction de GEA: RestartTask
mipa Posté(e) le 16 septembre 2019 Signaler Posté(e) le 16 septembre 2019 Alors pour ma part @Steven: J'ai rien compris au code.... (bon jusque là rien d'anormale ) Pourquoi commencé le code par un local extenction ?? (je pensais que les codes commençaient toujours pas GEA:add...) local exctinction = GEA.add({"Time", "Sunset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} }) n'y le pourquoi tu mets comme action éteindre -1 , (pas logique pour moi) GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask", exctinction } }) Bref c'est trop abstrait pour moi ces lignes, mais je l'aurais un jour, je l'aurais (Maaf) Résultats le code fonctionne pour l'allumage, mais il ne tiens pas compte de restart. La lampe s'éteint au bout de 3 minutes (même si je repasse devant le détecteur au bout de 2 minutes, pendant quel est allumée) Autre chose qui m'a semblé bizarre.... la ligne *stoppé* Je sais pas si ce Debug vous permet d'y voir clair.
mipa Posté(e) le 17 septembre 2019 Signaler Posté(e) le 17 septembre 2019 (modifié) Allez j'ose demander.... Est ce qu'une commande comme celle-ci pourrait fonctionner ? --Gestion lumière porte extérieur, si mouvement durant la nuit = on GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}}, -1, "", {"TurnOn", id["LampeExterieur"]}) -- Eteindre la lampe d'entrée si pas de présence plus de 3 mn. GEA.add(id["LampeExterieur "], 3*60, "", {{"turnOff",67}, {"If",{{"Value-",id["DetecteurMVT "],1}}}}) Modifié le 17 septembre 2019 par mipa
pepite Posté(e) le 17 septembre 2019 Signaler Posté(e) le 17 septembre 2019 Il y a 9 heures, mipa a dit : Pourquoi commencé le code par un local extenction ? Bonjour, Declaration d'une variable, donc doit etre mise avant que la variable soit utilisée pour etre connue du code. La variable contient donc la ligne après le signe "=" Il y a 10 heures, mipa a dit : n'y le pourquoi tu mets comme action éteindre A cet endroit la, ce n'est pas une action mais une condition, si la lampe est éteinte Il y a 10 heures, mipa a dit : mais il ne tiens pas compte de restart De quel restart parles tu ? Je dirais que cela a fonctionne moi puisque le Restart relance la ligne avec la variable "extinction" qui etait ta lampe après 3 minutes. Il est normal que lorsque tu repasses devant le détecteur pendant les 3 minutes cela ne relance pas la tache d'extinction à 3 minutes plus tard, puisque la ligne teste si la lampe est deja eteinte et toi elle est allumée, donc la ligne ne remplit pas toutes les conditions, soit : La periode du Time ET la detection de mouvement ET la lampe éteinte !! LA LIGNE n'est donc pas executée par GEA. Plus de If en GEA V6, donc NON ;-) il y a 43 minutes, mipa a dit : {"If",{{"Value-",id["DetecteurMVT "],1}}}}) Il y a 10 heures, mipa a dit : {"TurnOff",id["LampeExterieur"]}
Ghoosti Posté(e) le 17 septembre 2019 Signaler Posté(e) le 17 septembre 2019 (modifié) Ouppsss, mois aussi je pensais que le "RestartTask" redémarrait le compteur ..... Comment faire alors pour par ex dans un Hall, la lampe soit ON sur détection, reste ON tant qu'il y a détection et ensuite passe OFF après 3', en tenant compte que la lampe pourrait avoir été ON avec un interrupteur ? Je n'arrive vraiment pas à faire fonctionner ce truc.... Après recherche, je suis tombé sur ceci: -- Allumle la lampe du hall si détection de mouvement. Le if permet de ne pas renvoyer l'ordre d'allumage si la lampe est déjà allumée GEA.add( id["DETECTEUR_HALL"], -1, "", {{"If",{{"Value-", id["LAMPE_HALL"],59}}},{"Time", "Sunset-30", "Sunrise"}, {"Function", function() fibaro:call(id["LAMPE_HALL"], "setValue", "99") end}}) -- Eteindre la porte d'entrée si pas de présence plus de 5 mn. GEA.add(id["LAMPE_HALL"], 5*60, "", {{"turnOff",id["LAMPE_HALL"]}, {"If",{{"Value-",id["DETECTEUR_HALL"],1}}}}) D'après ce j'ai pu comprendre, le if n'est plus nécessaire. Reste que: GAE ne va vérifier que toutes les 3mn si un mouvement a eu lieu, donc si on veut faire un 3*30 c mort.... Modifié le 17 septembre 2019 par Ghoosti Après recherche, je suis tombé sur ceci:
mipa Posté(e) le 17 septembre 2019 Signaler Posté(e) le 17 septembre 2019 Bonjour, bonjour, merci beaucoup @pepite ça aide beaucoup à avancer d'avoir des explications comme celles-ci, c'est précieux J'avais moi aussi cru ( à tord) que la fonction Restart allait remettre le compte à rebours à zéro... Et effectivement, la ligne propose avec if viens d'un autre code que j'ai trouver suite à mes recherches dans des postes antérieur à la V6 et que j'ai tenté d'adapter (pas simple de tout comprendre quand tu n'a qu'une connaissance superficiel du fonctionnement Du coup, Est ce qu'il existe une ligne qui pourrait faire l'affaire (quitte à augmenter le délais à 5 minutes pour que GEA puissent contrôler la variable, en temps et relancer le scénario si détection )? J'imagine que juste augmenté le temps à cinq minutes, ne vas pas régler le soucis... exact ? Merci pour votre soutiens +++
pepite Posté(e) le 17 septembre 2019 Signaler Posté(e) le 17 septembre 2019 Il y a 4 heures, Ghoosti a dit : RestartTask" redémarrait le compteur Re, Je n'ai pas été tres clair, effectivement le restartTask relance la ligne variabilisée, ici appelée exticntion local exctinction = GEA.add({"Time", "Sunset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} } Mais cette ligne ci sur detection de mouvement a en condition {"TurnOff",id["LampeExterieur"]} qui signifie, SI LA LAMPE EST ETEINTE GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask", exctinction } }) Quand tu vas repasser devant le detecteur GEA va regarder si TOUTES LES CONDITIONS SONT VRAIES : le TIME ET LA DETECTION ET SI LA LAMPE est ETEINTE !! Hors au 2eme passage devant le detecteur, la LAMPE est ALLUMEE, LES CONDITIONS NE SONT DONC PAS TOUTES VRAIES, la ligne n'est donc pas executée par GEA, donc les actions ne sont pas realisées, pas de relance de la tache d'extinction Pour que vous compreniez mieux je vous ai fait en partant de la meme syntaxe lorsque la lampe est allumée : local exctinction = GEA.add({"Time", "S unset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} } -- 1er passage devant le detecteur, Lampe éteinte, GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask ", exctinction } }) -- 2ème passage deavnt le detecteur, Lampe allumée GEA.add( { {id["DetecteurMVT"]}, {"Time", "Sunset", "Sunrise"}, {"TurnOn",id["LampeExterieur"]} }, -1, "", {"RestartTask ", exctinction} ) 1
Ghoosti Posté(e) le 17 septembre 2019 Signaler Posté(e) le 17 septembre 2019 Merci @pepite pour les explications, j'ai encore du taffffff
mipa Posté(e) le 17 septembre 2019 Signaler Posté(e) le 17 septembre 2019 Il y a 3 heures, pepite a dit : local exctinction = GEA.add({"Time", "S unset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} } -- 1er passage devant le detecteur, Lampe éteinte, GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask ", exctinction } }) -- 2ème passage deavnt le detecteur, Lampe allumée GEA.add( { {id["DetecteurMVT"]}, {"Time", "Sunset", "Sunrise"}, {"TurnOn",id["LampeExterieur"]} }, -1, "", {"RestartTask ", exctinction} ) RE Merci ! Il y a 3 heures, pepite a dit : Me suis permis de re écrire, la première ligne (distance dans le S unset et manque la dernière parenthèse) On obtient : local exctinction = GEA.add({"Time", "Sunset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} }) puis -- 1er passage devant le detecteur, Lampe éteinte, GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask ", exctinction } }) -- 2ème passage deavnt le detecteur, Lampe allumée GEA.add( { {id["DetecteurMVT"]}, {"Time", "Sunset", "Sunrise"}, {"TurnOn",id["LampeExterieur"]} }, -1, "", {"RestartTask ", exctinction} ) Effectivement je comprend mieux avec les l'explication fournis dans ce post, (du moins je le pense, et c'est bien la l'essentiel ) merci @pepite j'espère qu'il en vas de même pour @Ghoosti J'ai chargé le code Debug = ok Mais si j'allume la lampe "id["LampeExterieur"]" en manuel j'obtiens cela Est ce qu'il me manque une variable ? Ou es-ce encore autre chose ? PS A chaque fois qu'on avance un peu, j'ai l'impression de m'enliser d'avantage ....J'ose espérer que cela va vite aller vers le mieux ! Il y a 3 heures, pepite a dit : --
Ghoosti Posté(e) le 17 septembre 2019 Signaler Posté(e) le 17 septembre 2019 @mipa Ghoosti va se noyer dans le lac...... Au final j'ai mis ceci pour ma cuisine, il y a peut être d'autre solution mais pour l'instant, voilà ..... Donc: j'essayais d'avoir un allumage automatique suivi d'un OFF et pouvoir a l'aide d'un VD avoir un ON sans le OFF local ExtinctionCuisine = GEA.add(true, 3*60, "", {{"TurnOff",id["ECL_LED_CUISINE"]}, {"NotStart"}})-- OFF GEA.add({{id["MVT_CUISINE"]}, {"Value-", id["LUX_CUISINE"], 12}, {"TurnOff",id["ECL_LED_CUISINE"]}}, -1, "", {{"TurnOn", id["ECL_LED_CUISINE"]}, {"RestartTask", ExtinctionCuisine}})--ON Encore merci pour votre aide et conseils haieeee, maintenant j'attaque le Hall..... (ma femme va me tuer, elle n'avait pas de lumière dans le Hall ce matin....) 1
Lazer Posté(e) le 17 septembre 2019 Signaler Posté(e) le 17 septembre 2019 Il y a 1 heure, mipa a dit : PS A chaque fois qu'on avance un peu, j'ai l'impression de m'enliser d'avantage C'est normal ça, plus on progresse sur un sujet, plus on se rend compte de tout ce qui nous reste à connaitre avant de la maitriser..... tellement vrai dans plein de domaines, pas que la domotique 1
Messages recommandés