jorderic Posté(e) le 14 octobre 2015 Signaler Posté(e) le 14 octobre 2015 Salut à tous, J'ai cherché partout (mais on va certainement me dire va ici... ) mais comment lancer une scene block via GEA??
sebcbien Posté(e) le 14 octobre 2015 Signaler Posté(e) le 14 octobre 2015 Une autre question :Je voudrai déclencher une action si ma variable globale present_state=atHome, mais uniquement si elle était a "away" pendant au moins 30 minutes juste avant...J'imagine qu'il faut utiliser restarttask mais je ne trouve pas la logique àutiliser.Sent from my Note4 using Tapatalk
sebcbien Posté(e) le 14 octobre 2015 Signaler Posté(e) le 14 octobre 2015 Salut à tous, J'ai cherché partout (mais on va certainement me dire va ici... ) mais comment lancer une scene block via GEA?? Scène bloc ou lua, pas de différences : {"Scenario", <id>} Tout est expliqué ici : http://www.domotique-fibaro.fr/index.php?/topic/-Gea-:-Gestionnaire-D'événements-Automatique Sent from my Note4 using Tapatalk
HANSOLO Posté(e) le 14 octobre 2015 Signaler Posté(e) le 14 octobre 2015 Une autre question : Je voudrai déclencher une action si ma variable globale present_state=atHome, mais uniquement si elle était a "away" pendant au moins 30 minutes juste avant... J'imagine qu'il faut utiliser restarttask mais je ne trouve pas la logique à utiliser. Sent from my SM-N910F using Tapatalk Une VG TestAway à créer qui est mise à OUI si present_state=away au moins 30mn. Seconde ligne pour déclencher l'action voulue (et qui remet la VG TestAway à NON) si present_state=atHome ET TestAway=OUI (j'ai mis en déclenchement immédiat, penser à mettre la VG present_state en entête) GEA.Add ({"Global";"present_state","away"}, 30*60, "", {{"Global","TestAway","OUI"}}) GEA.Add ({{"Global";"present_state","atHome"},{"Global","TestAway","OUI"}},-1, "",{{ACTION},{"Global","TestAway","NON"}}) 1
sebcbien Posté(e) le 14 octobre 2015 Signaler Posté(e) le 14 octobre 2015 Merci Hansolo :-) à‡a devrait marcher. Le seul inconvénient c'est qu'il faut créer une vg supplémentaire ... mais je ne vois pas trop non plus comment s'en passer... Si quelqu'un a une solution sans VG, qu'il n'hésite pas ;-) Sent from my Note4
pepite Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 Salut Messieurs, Il existe "NotStarted", ca doit marcher aussi je pense, comme ceci peut-etre Le "NotStarted" empêche d'exécuter la ligne automatiquement. local awaytrente = GEA.add({"Global", "present_state", "away"}, 30*60, "Present_State = Away depuis #durationfull#", {{"ACTIONS"}, {"NotStarted"}}) GEA.add(....,30, "", {{"RestartTask", awaytrente}}) Puis dans la ligne qui passe ta variable globale "present-state" à away tu rajoutes le "RestartTask" de "awaytrente" dans l'exemple. A tester evidemment ;-)
Steven Posté(e) le 15 octobre 2015 Auteur Signaler Posté(e) le 15 octobre 2015 Tant qu'on est sur la même instance de GEA (pas de -1), on peux faire des variables dans une scène je vais pas me lancer sur le sujet car pas le temps de tester mais imaginons : wasAlwaysOn = false GEA.Add ({"Global","present_state","away"}, 30*60, "", {{"function",function() wasAlwaysOn = true end}}) GEA.Add ({{"Global","present_state","atHome"},{"function",function() return wasAlwaysOn end}}, 30, "",{{ACTION},{"function",function() wasAlwaysOn=false end}}) Edit : C'est la même chose que ce que propose Hansolo mais sans la variable globale. Par contre, c'est plus du -1 mais 30 secondes pour la 2ème instruction.
sebcbien Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 Merci àtous. 30 secondes ou 5 minutes, pas de problème. Je teste tout ça et je confirme que ça marche.. ou pas Sent from my Note4
pepite Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 Tiens au jus ;-) Merci Steven pour le code, j'ai encore appris qqch ;-) :60:
jojo Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 oui, mais j'ai loupé un truc, ou il faut quand-même créer une VG "present_sate". Le but n'était pas de s'en affranchir ?
HANSOLO Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 Celle-là est certainement déjà existante et gérée par ailleurs dans GEA ou autre scène, VD
jojo Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 ok, il a fallut le temps que "le franc tombe ..." mais alors lorsque Steven dit "on est sur la même instance de GEA (pas de -1)", cela veut dire qu'il ne peut plus y avoir AUCUN -1 dans ce GEA, et qu'il faudrait alors faire un autre pour les immédiates, ou mettre celui-là dans un GEA unique, qui ne tournerait que toutes les 5 min par exemple)
pepite Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 @jojo, je pense que Steven parle de la variable Alwayson, enfin c'est comme cela que je l'ai compris, mais suis peut-etre completement à coté hihihi Je sens qu'il va nous éclairer ;-) 1
HANSOLO Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 Ca veux dire pas de -1 pour la seconde ligne qui déclenche l'action voulue. Si d'autres lignes GEA utilisent le -1, elles vont vivre leur vie indépendamment des deux proposées par Steven (enfin 3 avec celle pour instancier WasAllaysOn) 1
jojo Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 merci, je mourrai moins stupide
Steven Posté(e) le 15 octobre 2015 Auteur Signaler Posté(e) le 15 octobre 2015 Chaque fois que GEA est déclenché par quelque chose qui se trouve dans le header ( sous %%properties ou %%global ), le système instancie une nouvelle instance de GEA qui va faire son travail puis mourir.Par contre l'instance qui, elle, tourne toujours "autostart" (toutes les 30 secondes) est unique ne s'arrête jamais (sauf si on redémarre la box ou si on sauve le scénario). Donc on peux l'utiliser pour y mettre plein de truc. GEA.add(..., 30, ...) --> Instance 1 de GEA GEA.add(..., 90, ...) --> Instance 1 de GEA GEA.add(..., -1, ...) --> Nouvelle instance de GEA soit instance 2 GEA.add(..., 60, ...) --> Instance 1 de GEA GEA.add(..., -1, ...) --> Nouvelle instance de GEA soit instance 3 Le seul moyen de communiquer entre ces instances sont les variables globales (ou un module virtuel) ... d'où l'existence de GEA_Tasks dans laquelle je stocke les RestartTask, StopTask, MaxTime, ... car ce sont des instructions qui doivent être disponible depuis n'importe quel instance. Voilà ... vous savez tous .. bien que ... à la relecture de mon texte, moi-même je n'y comprends plus rien :-) Si vous avez des questions ... profitez .. je suis là aujourd'hui :-) Edit : pas pour Hansolo car il a toujours des questions tordues ;-) Edit 2 : dans le cas précédent la variable wasAlwaysOn n'est visible que dans l'instance 1 2
971jmd Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 bonjour a tous j'ai un tout petit soucie je n’arrive pas allumer ma lampe (centre table) si variable Nuit_jour =1 merci d'avance GEA.add({id["DETECTEUR_MOUVE"]}, -1, "", {{"turnOn", id["CENTRE_TABLE"] }, {"Global!", "Nuit_jour", "1"}, {"Time", "20:00", "8:40"}})
pepite Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 J'ai compris, un miracle non ? hihihi Merci merciii..vais vraiment etre moins bete ce soir..dingue, ma femme ne va pas me reconnaitre ;-) @Hansolo : c'est sur qu'il a compris du 1er coup hihi
pepite Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 @971jmd, Ta condition n'est pas au bon endroit, prob de syntaxe : GEA.add({{id["DETECTEUR_MOUVE"]},{"Global", "Nuit_jour", "1"}}, -1, "", {{"turnOn", id["CENTRE_TABLE"]}, {"Time", "20:00", "8:40"}}) Et la tu as ecrit si ta variable est DIFFERENTE de 1 : Global! 1
Steven Posté(e) le 15 octobre 2015 Auteur Signaler Posté(e) le 15 octobre 2015 @pepite J'espère qu'elle va te reconnaître dès le 1er coup. Ok,
sebcbien Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 Dis Steven, si tu es si occupé c'est pcq tu as repris la direction de fibaro ? Ça expliquerait la 4.0.57 qui est stable... Sent from my Note4 2
HANSOLO Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 bonjour a tous j'ai un tout petit soucie je n’arrive pas allumer ma lampe (centre table) si variable Nuit_jour =1 merci d'avance GEA.add({id["DETECTEUR_MOUVE"]}, -1, "", {{"turnOn", id["CENTRE_TABLE"] }, {"Global!", "Nuit_jour", "1"}, {"Time", "20:00", "8:40"}}) Ta syntaxe met la valeur 1 dans ta VG Nuit_jour. Pour l'utiliser en condition: GEA.add({{id["DETECTEUR_MOUVE"]}, {"Global", "Nuit_jour", "1"}}, -1, "", {{"turnOn", id["CENTRE_TABLE"] }, {"Time", "20:00", "8:40"}}) Je sais l'option Time fait office de condition, mais c'est la syntaxe de GEA...
pepite Posté(e) le 15 octobre 2015 Signaler Posté(e) le 15 octobre 2015 J'espere aussi Steven ;-) ca serait dommage ;-) Vais oublier ce que je viens de comprendre alors ;-) 1
Steven Posté(e) le 15 octobre 2015 Auteur Signaler Posté(e) le 15 octobre 2015 Dis Steven, si tu es si occupé c'est pcq tu as repris la direction de fibaro ?à‡a expliquerait la 4.0.57 qui est stable...Sent from my Note4 Elles est stable parce qu'elle ne fait rien ... bien que "A NOUVEAU", je n'arrive plus détecté si mes RGB sont allumés ou non. ? Il y a une direction chez Fibaro ? @971jmd, @pepite, @hansolo Pourquoi vérifier la variable globale "Nuit_jour" si de toute façon il y a "{"Time", "20:00", "8:40"}", c'est un non sens qu'il faudrait commencer par expliquer. Donc tant que l'esprit n'est pas clair, le code ne pourra l'être. De plus la question va à l'encontre de la proposition. Nuit_jour=1 alors que Global! ... en bref ... @971jmd Que veux-tu faire exactement ?
Messages recommandés