Aller au contenu

Messages recommandés

Posté(e)

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

Posté(e)

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

Posté(e)

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"}})
  • Upvote 1
Posté(e)

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

Posté(e)

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 ;-)

Posté(e)

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.
Posté(e)

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

Posté(e)

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 ?

Posté(e)

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)

Posté(e)

@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 ;-)

  • Upvote 1
Posté(e)

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)

  • Upvote 1
Posté(e)

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

  • Upvote 2
Posté(e)

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"}})  
 
Posté(e)

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

Posté(e)

@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!

  • Upvote 1
Posté(e)

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

  • Upvote 2
Posté(e)

 

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...

Posté(e)
 

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 ? 

×
×
  • Créer...