pepite Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 @PITP2 Et en écrivant comme ceci ? en esperant que je ne me sois pas trompe ;-) j'ai invente pour ton "invitenon" en supposant la valeur d'une variable globale GEA.add({{"Value-", id["LUMIERE_TV"], 1}, {"Global","Invite","NON"}},15*60,"",{{"turnOff",id["LUMIERE_TV"]}})
magic_281 Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 @sebcbien Merci pour ta réponse. La ligne qui pose problème c est celle que j ai mise, la 1447. Pour portail et portail1, le 1er un sensor, le second un actionneur.
PITP2 Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 Merci Pepite mais je ne pense pas que cela soit du à cela car dans ton code tu ne testes pas la PRISE_TV et c'est elle qui me pose probleme. Peut etre un probleme de parenthèse ... @magic, ce que veut dire Sebcbien c'est que pour nous aider il faudrait que tu isoles un peu plus la ligne qui plante dans ton code en utilisant -- Peux tu publier la declaration des "variables" aussi ?
sebcbien Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 @sebcbien Merci pour ta réponse. La ligne qui pose problème c est celle que j ai mise, la 1447. Pour portail et portail1, le 1er un sensor, le second un actionneur. ... La ligne 1447 pète très certainement parce que tu as fait une faute de syntaxe...Le but est d'isoler la ligne gea qui la contient. Met -- devant les lignes gea une par une et quand l'erreur disparaitra tu saura laquelle c'est Sent From my Vic20
sebcbien Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 Oups pas vu la réponse de PITP2 ;-) Sent From my Vic20
magic_281 Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 C'est bon j'ai compris la ligne qui pète tout c'est celle là : -- Si le portail est ouverte plus de 8 mn entre 23:30 - 06:00, on le ferme GEA.add( id["portail"], 8*60, "Le portail est ouvert depuis plus de 8 minutes", {{id["portail1"], {"turnOn"}}, {"Time", "23:30", "06:00"}}) mais je sais pas pourquoi par contre Pour vous aider, ce que je veux faire avec cette ligne : si la capteur du portail "portail" détecte qu'il est ouvert plus de 8 min, alors je demande à la motorisation du portail "portail1" de fermer le portail, tout ca uniquement si l'ouverture intervient entre 23:30 et 6:00
PITP2 Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 @magic, tu peux essayer cela ? GEA.add( id["portail"], 8*60, "Le portail est ouvert depuis plus de 8 minutes", {"turnOn",id["portail1"]} , {"Time", "23:30", "06:00"}})
magic_281 Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 @PITP2: merci! GEA me dit qu'il manque une { quelque part Edit : c'est bon, j'ai trouvé où placer l'accolade et ca marche! un grand merci!
PITP2 Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 oups oui ... il en faut un autre juste avant le turnOn J'espere que ce sera ok apres 1
pepite Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 @PITP2 Et en écrivant comme ceci ? en esperant que je ne me sois pas trompe ;-) j'ai invente pour ton "invitenon" en supposant la valeur d'une variable globale GEA.add({{"Value-", id["LUMIERE_TV"], 1}, {"Global","Invite","NON"}},15*60,"",{{"turnOff",id["LUMIERE_TV"]}}) ola la, autant pour moi, j'ai oublie le principal PITP2 Et comme ca alors ? En conditions multiples ? Non ? GEA.add({{"Sensor-", id["PRISE_TV"], 50},{"Value-", id["LUMIERE_TV"], 1}, {"Global","Invite","NON"}},15*60,"",{{"turnOff",id["LUMIERE_TV"]}}) 1
971jmd Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 bonjour a tous je n'arrive toujours pas à enregistrer la valeur de ID10 dans ma globale variable lum et je n'y arrive toujours pas GEA.add(10, 15, "luminosite ", {{"CopyGlobal", "lum", "#valeur#"}}) merci
zozotte Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 Bonsoir, J'ai vraiment un soucis avec l'utilisation des Tasks, je n'arrive pas à le faire fonctionner comme je voudrais 1ere utilisation: mettre en pause mon chauffage quand on ouvre la fenetre et memoriser son mode puis remettre l'ancien mode quand la fenetre se ferme local fenetreAUTO = GEA.add( {"Global", "Zib_Ouverture_R17", "0"}, -1, "", {{"VirtualDevice", id["VD_CHAUF_SDJ"], 4}, {"MaxTime", 1}, {"NotStarted"}}) GEA.add( {{"Global", "Zib_Ouverture_R17", "1"}, {"Global", "Chauffage", "AUTO"}}, -1, "", {{"VirtualDevice", id["VD_CHAUF_SDJ"], 6}, {"RestartTask", fenetreAUTO}}) local fenetreCONF = GEA.add( {"Global", "Zib_Ouverture_R17", "0"}, -1, "", {{"VirtualDevice", id["VD_CHAUF_SDJ"], 7}, {"MaxTime", 1}, {"NotStarted"}}) GEA.add( {{"Global", "Zib_Ouverture_R17", "1"}, {"Global", "Chauffage", "CONF"}}, -1, "", {{"VirtualDevice", id["VD_CHAUF_SDJ"], 6}, {"RestartTask", fenetreCONF}}) local fenetreECO = GEA.add( {"Global", "Zib_Ouverture_R17", "0"}, -1, "", {{"VirtualDevice", id["VD_CHAUF_SDJ"], 8}, {"MaxTime", 1}, {"NotStarted"}}) GEA.add( {{"Global", "Zib_Ouverture_R17", "1"}, {"Global", "Chauffage", "ECO"}}, -1, "", {{"VirtualDevice", id["VD_CHAUF_SDJ"], 6}, {"RestartTask", fenetreECO}}) Mon chauffage etait en mode automatique. A l'ouverture de la fenetre, il se met bien à l'arret (bouton 6 du VD) mais quand je ferme la fenetre, les 3 taches se declenchent... [DEBUG] 21:47:25: [ Zib_Ouverture_R17=0 ] sendActions : traitement des actions (ID:66) [VirtualDevice,39,4] [MaxTime,1] [NotStarted] [DEBUG] 21:47:25: [ Zib_Ouverture_R17=0 ] sendActions : !ACTION! : VirtualDevice 39,4 (ID:66) [VirtualDevice,39,4] [MaxTime,1] [NotStarted] [DEBUG] 21:47:25: [ Zib_Ouverture_R17=0 ] sendActions : traitement des actions (ID:68) [VirtualDevice,39,7] [MaxTime,1] [NotStarted] [DEBUG] 21:47:25: [ Zib_Ouverture_R17=0 ] sendActions : !ACTION! : VirtualDevice 39,7 (ID:68) [VirtualDevice,39,7] [MaxTime,1] [NotStarted] [DEBUG] 21:47:25: [ Zib_Ouverture_R17=0 ] sendActions : traitement des actions (ID:70) [VirtualDevice,39,8] [MaxTime,1] [NotStarted] [DEBUG] 21:47:25: [ Zib_Ouverture_R17=0 ] sendActions : !ACTION! : VirtualDevice 39,8 (ID:70) [VirtualDevice,39,8] [MaxTime,1] [NotStarted] 2e utilisation: je veux etre notifiée si mon congélateur ne consomme plus mais aussi si apres il redemarre GEA.add({"Sensor", id["BUANDERIE_CONGELO"], 0}, 90*60, "Alerte - Congélateur ne consomme plus d electricité depuis #duration# - #date# #time# ", {{"Email",2},{"Global", "Imperihome", "Le congélateur ne consomme plus d'electricité depuis #duration#"}, notification, imperihome, {"Repeat"}}) local consoCongelo = GEA.add({"Sensor+", id["BUANDERIE_CONGELO"], 0}, 60, "Fin d alerte - Congélateur consomme à nouveau ! - #date# #time#", {{"Email",2}, {"MaxTime", 2},{"Global", "Imperihome", "Le congélateur consomme à nouveau"}, imperihome, {"NotStarted"}}) GEA.add({"Sensor", id["BUANDERIE_CONGELO"], 0}, 90*60, "", {{"RestartTask", consoCongelo}}) NB: imperihome lance le TTS de imperihome et notification rend mon RGB violet Quand j'ai testé cet après midi, j'ai recu 5 messages Congélateur consomme à nouveau ! Dernière question, je voudrais si mon congelo ne consomme plus recevoir un message toutes les 1h30. Avec cette commande, j'ai recu un message au bout de 1h30 puis 1 nouveau message toutes les 30s Quelqu'un saurait comment le faire ? GEA.add({"Sensor", id["BUANDERIE_CONGELO"], 0}, 90*60, "Alerte - Congélateur ne consomme plus d electricité depuis #duration# - #date# #time# ", {{"Email",2},{"Global", "Imperihome", "Le congélateur ne consomme plus d'electricité depuis #duration#"}, notification, imperihome, {"Repeat"}}) Merci pour votre aide ! Zozotte PS: c'est chouette car pas de surprise en V4 avec GEA ! Merci Steven !!!
sebcbien Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 Salut Zozote, pour le premier cas, je pense que tu as le même "bug" que moi quelques pages avant. Essaye seulement avec deux au lieu de trois et utilise global! pour inverser la condition, mais n'en garde qu'une (déclare par exemple fenetreConf comme global! de fenetreeECO par exemple) teste et à mon avis ça va déclencher seulement une seule Pour ton deuxième "bug" ... je l'ai aussi, je dois déclarer maxtime à 8 par exemple pour avoir 4 notifications... ou moins Pour ton troisième, je pense que c'est pcq la condition n'est plus ré-évaluée, j'ai lu ça ici mais je ne sais plus où
sebcbien Posté(e) le 8 janvier 2015 Signaler Posté(e) le 8 janvier 2015 Petite astuce pour ceux qui doivent gérer deux scénarios différents. L'astuce consiste à stocker l'id du scénario dans les % du dimmer :-) En effet, un dimmer à 96% ou 99% ne crée pas de différence de luminosité visible (surtout dans mon cas avec des néons. exemple ci-dessous: Steven, je pense que ça va t'intéresser aussi, car tu as la même configuration de garage que la mienne --------------------- -- Gestion de la lumière lorsque l'on rentre la voiture (stockage du scénario dans la valeur du dimmer ->97% -- Si demande d'ouverture et porte fermée et lampe éteinte, then push, Allume lampe à 97% GEA.add({{"Global", "Porte_Gar_Action", "Demande_Ouverture"}, estClosed, {"Value-", id["LAMPE_GARAGE"], 1}}, -1, "Lampe garage on pour 7 min à 97%", {{"Value", id["LAMPE_GARAGE"], 97}}) -- On clignotte la lampe après 7mn et on l'éteint après 8mn si pas d'action manuelle -- Un double click ramène le dimmer à 100% et relance un cycle de 90 min (autre GEA, celui-ci désactivé) GEA.add({"Value", id["LAMPE_GARAGE"],97}, 7*60, "Garage 7 min 97% -> 96%",{{"turnOff", id["LAMPE_GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id["LAMPE_GARAGE"], 96}}) -- Sil la lampe est à 96%, après 8 min on met la lampe à 99% (prète pour prochain allumage) puis on éteint GEA.add({"Value", id["LAMPE_GARAGE"],96}, 1*60, "Garage 1 min 96% -> 99% -> 0ff",{{"Value", id["LAMPE_GARAGE"], 99},{"Function", function() fibaro:sleep(500) end},{"turnOff", id["LAMPE_GARAGE"]}}) --------------------- -- Gestion de la lumière lorsque l'on allume la lumière (stockage du scénario dans la valeur du dimmer ->99%) -- On clignotte la lampe après 90mn et on l'éteint après 5mn si pas d'action manuelle -- Un double click ramène le dimmer à 99% et relance un cycle de 90 min GEA.add({"Value", id["LAMPE_GARAGE"],99}, 90*60, "Garage 90 min 99% -> 98%",{{"turnOff", id["LAMPE_GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id["LAMPE_GARAGE"], 98}}) -- Sil la lampe est à 98%, après 5 min on met la lampe à 99% (prète pour prochain allumage) puis on éteint GEA.add({"Value", id["LAMPE_GARAGE"],98}, 5*60, "Garage 10 min 98% -> 99% -> Off",{{"Value", id["LAMPE_GARAGE"], 99},{"Function", function() fibaro:sleep(300) end},{"turnOff", id["LAMPE_GARAGE"]}})
sebcbien Posté(e) le 9 janvier 2015 Signaler Posté(e) le 9 janvier 2015 Zozotte, je viens de trouver une parade en copiant le script de gestion de lumière que j'ai posté ci-dessus de mon instance GEA Debug à mon instance GEA Production... En effet, ça fonctionne nickel dans une instance gea tout seul, mais pas avec d'autres GEA.add contenant aussi une condition "Global" à évaluer avec une condition provenant d'une VG... (cas que tu utilises très souvent, et moi de plus en plus) J'ai remarqué que j'avais une autre ligne GEA.add un peu avant,qui a aussi besoin d'évaluer la même condition {{"Global", "Porte_Gar_Action", "Demande_Ouverture"}, estClosed, ... et apparemment, une demande d’évaluation de la même séquence dans une autre ligne GEA ne sera pas prise en compte... Solution donc: Créer deux scènes: - GEA Instance 1 - GEA Instance 2 ne pas oublier de mettre deux variable globales différentes ! (à déclarer dans yourcode() ) -- Variable Globale de l'instance GEA.globalTasks = "GEA_Tasks_V5_2" et ça marche ... autres exemples: ceci marche: local estClosed = {"Global!", "Porte_Garage", "Not_Closed"} local estNot_Closed = {"Global", "Porte_Garage", "Not_Closed"} Mais pas ceci: local estClosed = {"Global", "Porte_Garage", "Closed"} local estNot_Closed = {"Global", "Porte_Garage", "Not_Closed"}
Steven Posté(e) le 9 janvier 2015 Auteur Signaler Posté(e) le 9 janvier 2015 Je vous confirme un bug avec les déclenchements instantanés sur une variable "Globale". Mon code ne prend pas en compte les conditions multiples lors d'un déclenchement de ce type ... exemple Ne fonctionne pas : GEA.add ( {{"Global", "Zib_Ouverture_R17", "1"}, {"Global", "Chauffage", "AUTO"}} , ...)fonctionne GEA.add ({"Global", "Zib_Ouverture_R17", "1"}, ..., {{"If",{{"Global", "Chauffage", "AUTO"}}}}) désolé. Edit : En fait, cela devrait fonctionner ... je comprends pas
Steven Posté(e) le 9 janvier 2015 Auteur Signaler Posté(e) le 9 janvier 2015 bonjour a tous je n'arrive toujours pas à enregistrer la valeur de ID10 dans ma globale variable lum et je n'y arrive toujours pas GEA.add(10, 15, "luminosite ", {{"CopyGlobal", "lum", "#valeur#"}}) merci GEA.add(10, 15, "luminosite", {{"Global", "lum", "#value#"}}) Et si cela ne marche pas, n'utilise pas GEA pour cela.
HANSOLO Posté(e) le 9 janvier 2015 Signaler Posté(e) le 9 janvier 2015 Ca y est @Steven se fibarorise 1
Steven Posté(e) le 9 janvier 2015 Auteur Signaler Posté(e) le 9 janvier 2015 @PITP2 En fait, je peux comprendre que cela pose problème vu que 2 personnes ont le soucis. Par contre chez moi cela fonctionne très bien MAIS je n'ai pas d’élément qui se déclenche sur une Global et qui en contient une autre. Il faudrait que je provoque un exemple pour pouvoir tester tous cela mais j'ai pas vraiment envie de remettre toute la mécanique de test en fonction juste pour cela Donc techniquement cela devrait fonctionner puisqu'àla lecture (rapide) du code, je ne voit pas le soucis. Par contre, ce même code me semble fragile donc pas àl'abri d'une omission.
sebcbien Posté(e) le 9 janvier 2015 Signaler Posté(e) le 9 janvier 2015 Tu n'a pas à être désolé Steven ton code est une tuerie, franchement pour moi l'intérêt de la HC2 est décuplé avec GEA !!! Précision concernant le bug, j'ai remarqué que le "if" mis en début comme condition marchera "une fois" mais si on a besoin de le ré-utiliser dans une deuxième ligne Gea, alors on voit dans le débug que il "saute" la vérification de la condition et retourne un satus Activé à tout les coups et valide l'action. J'avais analysé ça au post #1293 http://www.domotique-fibaro.fr/index.php/topic/1211-support-gea/page-65#entry41772
PITP2 Posté(e) le 9 janvier 2015 Signaler Posté(e) le 9 janvier 2015 @steven, ce n'était pas un reproche mon commentaire @sebcbien, tu crois que cela puisse aussi etre à l'origine de mon probleme vu que j'ai aussi une condition avec un if ? ou cela ne touche que les variables globales ?
Steven Posté(e) le 9 janvier 2015 Auteur Signaler Posté(e) le 9 janvier 2015 Allez, c'est fait, j'ai testé ceci : GEA.add( {{"Global", "GEA_Garage", "ON"}, {"Global", "JourChome", "NON"}}, -1, "Test 2 globale ON, NON") GEA.add( {{"Global", "GEA_Garage", "OFF"}, {"Global", "JourChome", "NON"}}, -1, "Test 2 globale OFF, NON") GEA.add( {{"Global", "GEA_Garage", "ON"}, {"Global", "JourChome", "OUI"}}, -1, "Test 2 globale ON, OUI") GEA.add( {{"Global", "GEA_Garage", "OFF"}, {"Global", "JourChome", "OUI"}}, -1, "Test 2 globale OFF, OUI") Cela fonctionne à la perfection, il faut donc que je vérifie les IF mais ce n'est pas le soucis de Zozotte. Je vais relire ton post sebcbien. @Zozotte Enleve le {"NotStarted"} si tu as à -1 ... cela ne fonctionne pas et n'a pas de sens. Le {"NotStarted"} a été mis pour éviter que GEA lance automatiquement la tâche à l'enregistrement de la scène. Dans ton cas, seul le déclenchement de la variable globale va démarrer ta tâche.
Steven Posté(e) le 9 janvier 2015 Auteur Signaler Posté(e) le 9 janvier 2015 @sebcbien J'ai de la peine à tester depuis mon boulot mais je me pose une question bête ... le "_". Pourrais-tu essayer "Close" et "NotClose" au lien de "Close" et "Not_Close" comme valeur de ta globale ? Il y a très peu de chance que le soucis vienne de la car zozotte n'utilise pas de "_" mais si on peux déjà éliminer un doute, c'est ça de gagner. @PITP2 Je n'avais pas pris ton post comme un reproche ... au contraire
Steven Posté(e) le 9 janvier 2015 Auteur Signaler Posté(e) le 9 janvier 2015 @sebcbien Je ne vois pas le soucis En fait, GEA a raison .. je m'explique. GEA agit de manière séquentielle en respectant l'ordre des commandes décrites pas l'utilisateur. Reprenons ton code 1. GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"},{"Global", "Porte_Garage", "Not_Closed"}}, -1, "Demande Fermeture Porte Garage GEA à #time#", {{"turnOn",id["REMOTE_GARAGE"]}}) 2. GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"},{"Global", "Porte_Garage", "Closed"}}, -1, "Demande Fermeture Inutile", {{"Global", "Porte_Gar_Action", "En_Attente"}}) Lors du changement de la variable globale "Porte_Gar_Action", GEA va executé : 1. La ligne en verte si Porte_Gar_Action = "Demande_Fermeture" et que "Porte_Garage" = "Not_Closed" et il va activé ta REMOTE_GARAGE A moins que je me trompe mais il est probable que {"turnOn", id["REMOTE_GARAGE"]} va modifié la valeur de "Porte_Garage" en la mettant sur "Closed" 2. la ligne orange s'éxecute car la ligne du dessus à indirectement modifier la variable "Porte_Garage" en la mettant su "Closed". Je peux me tromper mais cela me semble cohérent comme raisonnement.
Messages recommandés