pepite Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 (modifié) bien vu shykra, j'avais pas bien lu, trop vite passé dessus Inverse permet d'inverser la condition, dans ce cas la ligne sera executee si OP_SALON est OFF,enfin inactif Si pas 'inverse : la ligne s'execute si OP_SALON est ON Pardon shykra, je n'avais pas vu ta reponse sur le inverse @PITP2 : {"Armed"} -- Uniquement si le module est armé // Check only it the module is armed -- {"Disarmed"} -- Uniquement si le module est désarmé // Check only if the module is disarmed -- {"setArmed", <id_module>} -- Arme le module // Armed the module -- {"setDisarmed", <id_module>} -- Désarme le module // Disarmed the module Modifié le 24 mars 2015 par pepite
PITP2 Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 @Shyrka973, ah les majuscules ..... j'avais essayé disarmed mais sans majuscule .... et donc avec une majuscule cela fonctionne GRAND MERCI par contre pour ma gouverne , pourquoi armed ou disarmed ? car lorsque l'on va dans l'api on voit bien que la propriété armed existe mais prend deux valeurs , true ou false .. mais jamais armed ou Disarmed et dernier point le -1 avec inverse signifie donc que cette ligne sera exécuté toutes les 30 secondes ?
PITP2 Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 ok compris le Armed et Disarmed se base sur le device qui se trouve dans la condition de déclenchement et c'est de la syntaxe GEA
Steven Posté(e) le 24 mars 2015 Auteur Signaler Posté(e) le 24 mars 2015 Au fait, dans ton cas, on s'en fiche de l'état de ton module id["OP_SALON"] mais pas contre, comme tu la compris le Armed ou Disarmed ce base sur ce même ID. Il faut donc que l'état (en alerte ou non) de ton détecteur soit en accord avec GEA (inverse ou pas). On peux donc aussi ignoré le inverse en trichant ainsi GEA.add({"Value+", id["OP_SALON"], -1}, -1, "Capteur désarmé", {{"Disarmed"}, {"turnOn", id["LAMPE_BUREAU"]}, }) La valeur de ton détecteur étant TOUJOURS supérieur à -1 (puisque ce dernier ne peux être que 0 ou 1), GEA va donc ignorer l'état du module et juste regarder s'il est armé ou non. Il est parfois utile de "tricher". Si par exemple, tu veux connaitre la valeur d'une variable globale tu peux faire ainsi : GEA.add( {"Global!", "MyVariable", "gfgfgfgf"}, 30, "La valeur est #value#") La valeur de MyVariable n'étant jamais "gfgfgfgf", je suis sà»r que ma condition est toujours bonne et donc GEA va être capable d'aller plus loin de de m'indiquer la vrai valeur (#value#) dans un message push. Voilà , j'espère que j'ai encore plus embrouillé ton cerveau ?
Fredric Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 @Frederic : Je viens de remarquer aussi cela : pas de guillemets quand tu appuies sur un bouton de VD avec GEA contrairement à une scene local SMG = {"Value",id["Windows_SMG"],0} local SMD = {"Value",id["Windows_SMD"],0} GEA.add({SMG, SMD}, 30, "", {{"VirtualDevice", id["Mod_Chauf_SM"], 4}, {"Global", "Windows5", "Fermes"}}) ou comme ca local SMG = {"If",{{"Value",id["Windows_SMG"],0}}} local SMD = {"Value",id["Windows_SMD"],0} GEA.add({SMD}, 30, "", {SMG,{"VirtualDevice", id["Mod_Chauf_SM"], 4}, {"Global", "Windows5", "Fermes"}}) @PEPITE, ton exemple 1 où SMG est en premier, SMD ne fonctionne pas et dans le deuxième exemple, c'est l'inverse. j'ai réimporté le code GEA, pour être sur de ne pas avoir fait d'erreur de copier coller, mais pareil. par contre je suis toujours en 3.60, mais pas d'incidence normalement?
Steven Posté(e) le 24 mars 2015 Auteur Signaler Posté(e) le 24 mars 2015 Non, aucun incident .. un bug ? Edit : Perso, je peux pas tester avant demain matin
Fredric Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 ok, alors je laisse ma scène en place en attendent ton retour et merci à @pepite pour les essais
Shyrka973 Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 J'ai vérifier dans le code de GEA, tu devrais pouvoir écrire "Armed" ou "armed" et "Disarmed" ou "disarmed". On peut aussi écrire: {"Armed", id["MON_CAPTEUR"]} et {"Disarmed", id["MON_CAPTEUR"]}.
PITP2 Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 @steven, j'ai vidé toute ta poubelle pour trouver un morceau de ton cerveau mais yavait plus rien je crois quand même avoir compris ton explication ... mais ça m'inquiète On est bien d'accord qu'avec ce code la ligne est exécutée toutes les 30 secondes tant que le capteur est désarmé ? GEA.add({"Value+", id["OP_SALON"], -1}, -1, "Capteur désarmé", {{"Disarmed"}, {"turnOn", id["LAMPE_BUREAU"]}, })
Sakkhho Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 bon j'arrive toujours pas àfaire ce que je veux avec mon lave linge mon code est le suivant -- Lave Linge GEA.add({"Global", "Lave_Linge", "En Attente"}, -1, "Le lave-linge est arrêté depuis #duration#",{{"Portable", 10,63,136},{"Repeat"}}) GEA.add({"Sensor-", id["WP_LAVE_LINGE"], 2.8}, 30*60, "", {{"Global", "Lave_Linge", "Arret"}}) GEA.add({"Sensor+", id["WP_LAVE_LINGE"], 3}, 2*60, "", {{"Global", "Lave_Linge", "Lavage"}}) GEA.add({{"Sensor+", id["WP_LAVE_LINGE"], 1},{"Sensor-", id["WP_LAVE_LINGE"], 2.8}, {"Global", "Lave_Linge", "Lavage"}}, 1*60, "", {{"Global", "Lave_Linge", "En Attente"}}) et le debug donne [DEBUG] 18:56:35: [ Sensor [18|WP_Lave_Linge] > 3 ] sendActions : traitement des actions (ID:24) [Global,Lave_Linge,Lavage] [DEBUG] 18:56:35: [ Sensor [18|WP_Lave_Linge] > 3 ] sendActions : !ACTION! : setGlobal Lave_Linge,Lavage (ID:24) [Global,Lave_Linge,Lavage] [DEBUG] 18:56:35: [ Sensor [18|WP_Lave_Linge] > 3 ] Done : tache effectuée et suspendue (ID:24) [Global,Lave_Linge,Lavage] [DEBUG] 18:56:35: Durée des traitements : 0s nouveau délai : 30s / tourne depuis 53h 40m 1s [DEBUG] 19:01:35: Durée des traitements : 0s nouveau délai : 30s / tourne depuis 53h 45m 1s [DEBUG] 19:06:35: Durée des traitements : 0s nouveau délai : 30s / tourne depuis 53h 50m 1s [DEBUG] 19:10:05: [ Sensor [18|WP_Lave_Linge] > 1 ] sendActions : traitement des actions (ID:25) [Global,Lave_Linge,En Attente] [If..] [DEBUG] 19:10:05: [ Sensor [18|WP_Lave_Linge] > 1 ] sendActions : !ACTION! : setGlobal Lave_Linge,En Attente (ID:25) [Global,Lave_Linge,En Attente] [If..] [DEBUG] 19:10:05: [ Sensor [18|WP_Lave_Linge] > 1 ] Done : tache effectuée et suspendue (ID:25) [Global,Lave_Linge,En Attente] [If..] [DEBUG] 19:11:35: Durée des traitements : 0s nouveau délai : 30s / tourne depuis 53h 55m 1s [DEBUG] 19:16:35: Durée des traitements : 0s nouveau délai : 30s / tourne depuis 54h 1s donc je passe bien en "lavage" puis en "attente" mais j'arrive pas àfaire le push "lave linge àterminé" :-(
pepite Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 (modifié) @PITP2 : avec le -1 c'est de l'instantané, ta lumiere s'allumera donc instantanément des que ton capteur sera "Disarmed" ;-) attention dans ton code il y a une virgule qui traine sympa la technique de steven et de tricher ;-) @Frederic : je viens encore de tester autrement et les 2 manieres d'ecrire fonctionnent pour moi. Toi non ? Vraiment aucune ? As tu essaye en ecriant les conditions qu'avec les IF en options ? Essaie ca tout de meme : local SMG = {"If",{{"Value",id["Windows_SMG"],0}}} local SMD = {"If",{{"Value",id["Windows_SMD"],0}}} GEA.add(true, 30, "", {{SMG,SMD}, {"VirtualDevice", id["Mod_Chauf_SM"], 4}, {"Global", "Windows5", "Fermes"}}) @sakkhho : ta syntaxe Portable pour le push n'est pas la bonne, ne mets qu'un seul ID ;-), pour plusieurs, il faut que tu repetes la syntaxe Portable {"Portable", <id>} Modifié le 24 mars 2015 par pepite 1
Sakkhho Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 merci pour ton aide j'avais tenté de mettre sans la syntaxe portable à savoir (donc push sur les portables par défaut) GEA.add({"Global", "Lave_Linge", "En Attente"}, -1, "Le lave-linge est arrêté depuis #duration#",{{"Repeat"}}) mais rien non plus je dois bien mettre ceci au debut ? --[[ %% autostart %% properties 50 value 157 value %% globals Lave_Linge --]] est ce que le #duration est interpreté sans rien faire aussi ? merci
pepite Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 oui pour le declenchement instantané ta VG doit bien se trouver sous globals dans ton entete. J'ai l'impression que ce n'est pas logique de le faire en declenchement instantané. Pour moi cela signifie avec le -1 Dès que "lave_linge" aura comme valeur "en attente" --> push donc pas de #duration# possible pour moi sur la VG essaie en mettant une durée plutot pour tester
PITP2 Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 Yep merci pepite, le -1 ne scrute donc pas uniquement la condition
Sakkhho Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 @pepite, tu as raison, le -1 et le duration c'est pas coherent... merci
Sebbrunie1 Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 Tu n'embêtes pas, ce qui m'embête c'est de prendre la peine et le temps de répondre à des gens qui, eux, ne prennent pas le peine de lire la réponse Garce à ta re-re-demande , J'ai vu un soucis : Prenons un exemple : local DistanceEternoz1 = {"Function", function() return math.floor(fibaro:calculateDistance(userLocation, EmplacementEternoz1)*100)/100 end} Le soucis est que ta fonction retourne un nombre alors que function doit retourné en 1ER un booléen (vrai ou faux) puis la valeur. Donc dans ton cas, il faudra faire cela : local DistanceEternoz1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(userLocation, EmplacementEternoz1)*100)/100 end} un petit true, en plus et cela devrait (je l'espère) résoudre ton soucis. Je te laisse le mettre sur toutes tes lignes, re-tester et nous tenir au courant. Alors, les variables globales ne se mettent pas à jour local userLocation = GEA.add({"Property!", 238, "Location", "0"}, 30, "", {{"Global", "EmplacementSeb", "#value#"}}) local EmplacementMaison1 = "48.84745534593;2.4532449245453" local EmplacementBureau1 = "48.81907202982484;2.3286187648773193" local EmplacementCarantec1 = "48.667815;-3.914054999999962" local EmplacementEternoz1 = "47.00751;6.029551999999967" -- Localisation EmplacementSeb local DistanceMaison1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(userLocation, EmplacementMaison1)*100)/100 end} local DistanceBureau1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(userLocation, EmplacementBureau1)*100)/100 end} local DistanceCarantec1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(userLocation, EmplacementCarantec1)*100)/100 end} local DistanceEternoz1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(userLocation, EmplacementEternoz1)*100)/100 end} GEA.add(DistanceBureau1, 30, "", {{"Global", "DistanceBureau", "#value#"}, {"Label", id["DISTANCE"], "Label2", "#value# m"}}) GEA.add(DistanceMaison1, 30, "", {{"Global", "DistanceMaison", "#value#"}, {"Label", id["DISTANCE"], "Label1", "#value# m"}}) GEA.add(DistanceCarantec1, 30, "", {{"Global", "DistanceCarantec", "#value#"}, {"Label", id["DISTANCE"], "Label3", "#value# m"}}) GEA.add(DistanceEternoz1, 30, "", {{"Global", "DistanceEternoz", "#value#"}, {"Label", id["DISTANCE"], "Label4", "#value# m"}}) -- message maison GEA.add({"Global-", "DistanceMaison", "100"}, 30, "Je suis à moins de #value# m à #time# de la maison", {{"MaxTime", "1"}}) -- ================================================== et le debug [DEBUG] 21:52:03: [ Property [238|Location] ~= 0 ] Add Autostart : ajout de la tache pour 30 secondes (ID:1) [Global,EmplacementSeb,#value#] [DEBUG] 21:52:03: [ Function ] Add Autostart : ajout de la tache pour 30 secondes (ID:2) [Global,DistanceBureau,#value#] [Label,56,Label2,#value# m] [DEBUG] 21:52:03: [ Function ] Add Autostart : ajout de la tache pour 30 secondes (ID:3) [Global,DistanceMaison,#value#] [Label,56,Label1,#value# m] [DEBUG] 21:52:03: [ Function ] Add Autostart : ajout de la tache pour 30 secondes (ID:4) [Global,DistanceCarantec,#value#] [Label,56,Label3,#value# m] [DEBUG] 21:52:03: [ Function ] Add Autostart : ajout de la tache pour 30 secondes (ID:5) [Global,DistanceEternoz,#value#] [Label,56,Label4,#value# m] [DEBUG] 21:52:03: [ DistanceMaison=100 ] Add Autostart : ajout de la tache pour 30 secondes (ID:6) [MaxTime,1] [DEBUG] 21:52:03: GEA Version 5.32 : en exécution... [DEBUG] 21:52:33: [ Property [238|Location] ~= 0 ] sendActions : traitement des actions (ID:1) [Global,EmplacementSeb,#value#] [DEBUG] 21:52:33: [ Property [238|Location] ~= 0 ] sendActions : !ACTION! : setGlobal EmplacementSeb,48.8195276856;2.3277393386 (ID:1) [Global,EmplacementSeb,#value#] [DEBUG] 21:52:33: [ Property [238|Location] ~= 0 ] Done : tache effectuée et suspendue (ID:1) [Global,EmplacementSeb,#value#] [DEBUG] 21:52:33: [ DistanceMaison=100 ] !!! ERREUR !!! : vérification (ID:6) [MaxTime,1] [DEBUG] 21:53:03: [ DistanceMaison=100 ] sendActions : traitement des actions (ID:6) [MaxTime,1] [DEBUG] 21:53:04: [ DistanceMaison=100 ] sendActions : !ACTION! : sendPush Je suis à moins de 0 m à 21:53:03 de la maison (ID:6) [MaxTime,1] [DEBUG] 21:53:04: [ DistanceMaison=100 ] Done : tache effectuée et suspendue (ID:6) [MaxTime,1] Merci Steven, et désolé de ce truc compliqué...
juke94 Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 désolé de demander ca mais j'avais trouvé un post ou il était question de n'y mettre que sa config GEA et je n'arrive plus a remettre la main dessus, est ce que une bonne ame qui aurait le lien sous la main pourrai me le posté svp !! merci àvous ^^
Yohan Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 http://www.domotique-fibaro.fr/index.php/topic/2143-showroom-configs-gea/
juke94 Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 @ YOHAN MERCI ! Pourtant j'ai utilisé la fonction recherche du forum mais j'ai pas réussi a mettre la main dessus !! Lien ajouté à mes favoris ^^
pepite Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 Salut messieurs, tests en cours suite aux bugs de @Frederic Ceci a fonctionne sans soucis, puisque le "Time" dans les OPTIONS : panipwoblem l local nuit = {"Time", "Sunset-30", "Sunrise"} -- Periode nuit entre sunset - 30 mins et Sunrise --Si TV ALLUMEE au moins 30 s la NUIT --> alllumage LAMPES TV GEA.add(id["TV"], 30, "", {nuit, {"turnOn", id["LAMPE_TV"]}, {"Repeat"}}) --SI TV ETEINTE au moins 1 MINUTE pdt NUIT --> EXTINCTION LAMPES TV GEA.add(id["TV"], 30, "", {nuit, {"Inverse"}, {"turnOff", id["LAMPE_TV"]}, {"Repeat"}}) Mais ceci ne prend pas en compte la condition "NUIT", peut-etre est-ce normal, je ne sais pas si le "Time" est pris en compte en CONDITION --Si TV ALLUMEE au moins 30 s la NUIT --> alllumage LAMPES TV GEA.add({id["TV"], nuit}, 30, "", {{"turnOn", id["LAMPE_TV"]}, {"Repeat"}}) --SI TV ETEINTE au moins 1 MINUTE pdt NUIT --> EXTINCTION LAMPES TV GEA.add({id["TV"], nuit}, 30, "", {{"Inverse"}, {"turnOff", id["LAMPE_TV"]}, {"Repeat"}}) Je vais plutot tester avec une VG et TV comme ca plutot, ce qui permettra de bien verifier si conditions multiples sont OK : local nuit= {"Global", "Jour_Nuit", "Nuit"} on bosse @frederic, en tout cas j'essaie ;-), mes tests d'hir avaient qd meme l'air de fonctionner hihii 1
Steven Posté(e) le 25 mars 2015 Auteur Signaler Posté(e) le 25 mars 2015 @Fredric Ok, le soucis est en réalité super simple ... le Repeat Voici mon test : GEA.add(56, -1, "", {{"turnOff", 176}}) GEA.add(58, -1, "", {{"turnOff", 176}}) GEA.add({{"Value", 56, 0},{"Value", 58, 0}}, 30, "", {{"turnOn", 176},{"Repeat"}}) 56 et 58 sont des détecteur de porte et 176 un wallplug. Sans le Repeat, ton premier test fonctionne, puis la tache se stop et ne sera donc pas active lors de ton 2ème test. Cela te donne l'impression que cela fonctionne que lorrsque la 1ere condition est remplie. Par contre, avec le Repeat, la tache ne se met jamais en sommeil et cela fonctionne à tout les coups 1
pepite Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 @steven, j'ai pourtant bien mis le Repeat dans mes tests : ca vient donc du "Time" qu'on ne peut mettre que dans les OPTIONS ?
Steven Posté(e) le 25 mars 2015 Auteur Signaler Posté(e) le 25 mars 2015 @Sebbrunie1 Dans ton code, tu as ceci : local userLocation = GEA.add({"Property!", 238, "Location", "0"}, 30, "", {{"Global", "EmplacementSeb", "#value#"}}) local DistanceMaison1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(userLocation, EmplacementMaison1)*100)/100 end} userLocation contient l'ID GEA de ta ligne et non pas le contenu de ta variable global "EmplacementSeb".Moi perso, je mettrais ce code dans tes lignes DistanceXXXXX --local userLocation = GEA.add({"Property!", 238, "Location", "0"}, 30, "", {{"Global", "EmplacementSeb", "#value#"}}) local DistanceMaison1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(fibaro:getValue(238, "Location"), EmplacementMaison1)*100)/100 end} Donc supprimer la &ere ligne de GEA qui ne sert plus et mettre directement l'interrogation de la position de l'utilisateur dans la fonction de calcul.Courage P.S Dans mon cas, j'habite à 1'088'063.58 de chez toi ... j'espère que c'est des mêtres :-)
Steven Posté(e) le 25 mars 2015 Auteur Signaler Posté(e) le 25 mars 2015 @steven, j'ai pourtant bien mis le Repeat dans mes tests : ca vient donc du "Time" qu'on ne peut mettre que dans les OPTIONS ? Oui, le time vas dans les options uniquement ainsi que Date, Days.
Messages recommandés