Aller au contenu

Messages recommandés

Posté(e)

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

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

Posté(e)

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 ?

Posté(e)

@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

Posté(e)

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

Posté(e)

@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"}})

Posté(e)

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

Posté(e)

 

@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 :rolleyes:

 

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

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 

Posté(e)

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

Posté(e)

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ù

Posté(e)

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  :P

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

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

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 :(

Posté(e)

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.

Posté(e)

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

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

 


Posté(e)

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

Posté(e)

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.

Posté(e)

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

Posté(e)

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

×
×
  • Créer...