Cisco Posté(e) le 4 août 2015 Signaler Posté(e) le 4 août 2015 oui c'est ça je change ma variable globale pour qu'elle passe à"NON" local HomeFree = {"Global", "MaisonVide", "OUI"} local HomeBusy = {"Global", "MaisonVide", "NON"}
Plap3014 Posté(e) le 4 août 2015 Signaler Posté(e) le 4 août 2015 Bonjour, j'ai un petit souci, je veux seulement recevoir le Push quand la variable est a non: -- Exemple de condition IF // IF Sample condition local ActiviteGarage = {"Global", "Activite_garage", "non"} -- === GARAGE == -- -- Le scénario enverra un push toutes les 10mn tant que la porte sera ouverte GEA.add(238, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Repeat"}}) -- On vérifie toutes les 10mn si la porte du garage est ouverte et on envoi un message push. On répète l'opération tant que la porte n'est pas fermée. je dois mettre ma condition ou? pas juste au début? Merci,
kiwi Posté(e) le 4 août 2015 Signaler Posté(e) le 4 août 2015 Hello plap, quelque chose comme ca : local ActiviteGarage = {"Global", "Activite_garage", "non"} GEA.add({238, ActiviteGarage}, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Repeat"}})
pepite Posté(e) le 4 août 2015 Signaler Posté(e) le 4 août 2015 Salut messieurs, Attention, pour info, écris comme cela, cela va envoyer le push toutes les 10 mins tant que 238 est 1 et ActiviteGarage à non.
Plap3014 Posté(e) le 4 août 2015 Signaler Posté(e) le 4 août 2015 Pepite: je dois rajouter quoi pour que le push soit envoyer seulement si les 2 conditions sont bonnes, soit porte ouverte et activité non? Merci Envoyé de mon SM-G900W8 en utilisant Tapatalk
pepite Posté(e) le 4 août 2015 Signaler Posté(e) le 4 août 2015 @Plap Kiwi t'as très bien répondu. Lorsque les 2 conditions seront "bonnes", c'est à dire : {238, ActiviteGarage} --porte ouverte ET activité non Tu recevras le push si les conditions sont "bonnes" pendant 10 mins Avec le "Repeat", si tes conditions sont "bonnes" pendant 24 mins par exemple, tu recevras le push 2 fois (10 + 10), cela dépend de ton besoin.
Plap3014 Posté(e) le 4 août 2015 Signaler Posté(e) le 4 août 2015 Ok je vois, Je vais tester! Merci Envoyé de mon SM-G900W8 en utilisant Tapatalk
jojo Posté(e) le 4 août 2015 Signaler Posté(e) le 4 août 2015 local HomeFree = {"Global", "MaisonVide", "OUI"} local HomeBusy = {"Global", "MaisonVide", "NON"} ceci met la variable locale HomeFree à 1 si la VG MaisonVide = OUI ceci met la variable locale HomeBusy à 1 si la VG MaisonVide = NON donc si tu veux mettre la VG MaisonVide à NON tu dois mettre ceci GEA.add ({id["DET_ouv_PorteEntree"],HomeFree,WeekDays,},-1," OUVERTURE - Porte d\'Entrée à #time#, le #date# ",{{"Time", "16:00", "sunset-30"},{"VirtualDevice", id["VD_RemoteCtrl_VR"], 11}, {"Global", "MaisonVide", "NON"} ,{"Group", 1}})
pepite Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 super !! @jojo, ca aurait fonctionne aussi avec la variable ;-)
Cisco Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 je suis perdu entre jojo et pepite car ce que dis jojo c'est que variable vaut 1 si elle remplit les "conditions" entre {} donbc ça veut dire que homeFree = 1 si la varaible globale MaisonVide = OUI local HomeFree = {"Global", "MaisonVide", "OUI"} Moi je pensais plus comme pépite, c-a-d que ma variable homeFree est égale à ma variable MaisonVide qui elle vaut OUI et que par conséquent HomeFree = MaisonVide = OUI Qui a raison ?
jojo Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 pour avancer sur la compréhension, J'ai introduit un débug après local estJour = {"Global", "DayPart", "After SunRise"} fibaro:debug("estJour = " ..tostring(estJour)) local estNuit = {"Global", "DayPart", "After SunSet"} fibaro:debug("estNuit = " ..tostring(estNuit)) le retour est qu'il me donne une table [DEBUG] 10:08:51: estJour = table: 0x8c21250 [DEBUG] 10:08:51: estNuit = table: 0x8c1fa48 Alors qu'il retourne 0 ou 1, ce n'est pas si important, c'est peut-être false / true Ce qui est important c'est que dans GEA, si on fait un test sur la variable locale, il s'exécute en fonction de false / true et une chose qui est sà»re, c'est que si je veux mettre ma variable "DayPart" à "After SunSet", je ne dois pas invoquer l'option "estNuit", mais -- Techniques -- DayPart GEA.add (true, 1, "DayPart = Jour. (#date# à #time#)", {{"Time", "Sunrise", "Sunrise + 100"}, {"VirtualDevice", DeviceID["VAR_DAYPART"], 3}}) GEA.add (true, 1, "DayPart = Nuit. (#date# à #time#)", {{"Time", "Sunset", "Sunset + 100"}, {"VirtualDevice", DeviceID["VAR_DAYPART"], 4}})
pepite Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 @jojo : Moi j'avais compris q'avec GEA pour récuperer la valeur d'une variable, on pouvait faire comme cela : GEA.add({"Global", "DayPart", ""}, 30, "La valeur de DayPart est : #value#") --ou qqch comme ca peut-etre mais jamais testé avec une declaration de variable directement dans le function GEA.add(true, 30, "", {{"Function", function() local daypart = fibaro:getGlobalValue("DayPart") end}, {"Function", function() fibaro:debug("DayPart:"..daypart) end}}) Je vais tester cela : local absence = {"Global", "Mode_Maison", "Absence"} local notifabsence = {"Global", "FreeSms", "Absence"} GEA.add(true, 30, "", {absence, {"Time", "10:55", "10:56"}, notifabsence}) Mon test fonctionne bien, J'ai bien recu ma notif et ma variable globale a bien ete modifiée à Absence, verifié avec le VD Variable Globale de Steven. Pour moi c'est Ok, GEA lit bien la variable aussi bien dans les conditions que dans les options. Essaie de ton côté pour confirmer @jojo
jojo Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 @pepite, Pour le code GEA.add({"Global", "DayPart", ""}, 30, "La valeur de DayPart est : #value#") Tu as probablement raison. Je n'avais jamais essayé (car jamais eu besoin). Je viens d'essayé, mais je n'ai reçu aucune notification, car comme j'interprète ce code: Si la VG "DayPart" = "" (=> vide ?) Alors envoyer le message .... Or ma variable est maintenant "After Sunrise", donc pas "", et ce serait normal que je n'ai pas de notif. Pour le code GEA.add(true, 30, "", {{"Function", function() local daypart = fibaro:getGlobalValue("DayPart") end}, {"Function", function() fibaro:debug("DayPart:"..daypart) end}}) je reçois ceci dans le debug [DEBUG] 11:08:38: [ n/a ] sendActions : !ACTION! : Function /opt/fibaro/scenes/615.lua:221: attempt to concatenate global 'daypart' (a nil value) (ID:1) [Function..] [Function..] Ceci dit, l'objet de local estJour = {"Global", "DayPart", "After SunRise"} est de mettre estJour à true SI et seulement SI "DayPart" = "After SunRise", afin de pouvoir réutiliser le résultat de ce test ailleurs dans GEA, sans à chaque fois devoir refaire le test
pepite Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 @jojo c'est moi le boulet pour la valeur de la variable avec notif, manque le Inverse hihihi : si valeur de la variable n'est pas vide : notif de la valeur J'ai rien invente, j'avais trouve l'astuce dans la faq du wiki de steven GEA.add({"Global", "DayPart", ""}, 30, "La valeur de DayPart est : #value#", {{"Inverse"}}) pour le code Function, il dit la meme chose pour moi, que la valeur est vide hihi mais j'avais jamais testé ..pourtant je me dis que cela devrait fonctionner mais bon
jojo Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 @peptite, Je te rassure, on est deux boulets, j'aurais du le voir, plutôt que de faire un simple copier coller. Je garde l'astuce pour si j'en ai besoin. Merci
soulac Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 donc à ton instruction actuelle tu dois juste rajouter la condition que ta porte fenêtre est fermée GEA.add({{id["OUVERTURE_SALON"]},{"Value+",id["D_LUM_EXT"], 1800},{"Value+", id["VR_SAM"], 50},{"Value-", id["VR_SAM"],100}}, 10*60, "Fermeture VR SAM lum ext + 1800 si baie fermée",{{"Inverse"},{"Time","11:50","19:00"},{"Dates","01/05","01/10"},{"Close",id["VR_SAM"],50}}) Bonjour JOJO J'ai essayé on code mais toujours rien je ne comprends pas une ptite idée. Pour rappel je souhaite pouvoir baisser mon volet si mon détecteur de porte est fermé et que mon détecteur de luminosité et à plus de 1800 lux. Merci de votre retour
pepite Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 Salut, Tente avec une instruction plus simple pour reussir à t'aider : GEA.add({id["OUVERTURE_SALON"],{"Value+",id["D_LUM_EXT"], 1800}, {"Value-", id["VR_SAM"],100}}, 10*60, "Fermeture VR SAM lum ext + 1800 si baie fermée",{{"Inverse"},{"Close",id["VR_SAM"],50}})
jojo Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 en effet, il faut TOUJOURS commence le plus simple possible, et rajouter des contraintes ensuite. Donc, encore plus simple si ça ne va pas : GEA.add({id["OUVERTURE_SALON"],{"Value+",id["D_LUM_EXT"], 1800}}, 10*60, "Fermeture VR SAM lum ext + 1800 si baie fermée",{{"Inverse"},{"Close",id["VR_SAM"],50}}) reçois-tu au minimum la notification ?
flechg Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 local autoclose = GEA.add({{"Value+", id["VOLET_SALON"], 70}}, 5*60, "ouvert depuis plus de 5 minutes", {{"close"}}, {{"Repeat"}}) GEA.add(id["DET_SALON"], -1, "", {{"StopTask", autoclose}}, {{"repeat"}}) Bonsoir a tous je me casse la tête depuis hier et je trouve pas mon erreur (vu mon niveau cela est normal je pense hihihi) j ai bien le volet qui se ferme sans le local autoclose par-contre quand je mets le code avec le détecteur de mouvement ca me stop bien la scène mais par-contre ca ne la relance pas et donc si pas de mouvement cela ne me ferme pas le volet merci encore pour votre aide s
HANSOLO Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 version de GEA, HC2? Ajoute l'id du volet pour le close.
flechg Posté(e) le 5 août 2015 Signaler Posté(e) le 5 août 2015 Je vais essayer mais le volet se ferme deja Mon pb c est que je veux que lorsque il y a détection de mouvement il ne se ferme pas et que si il n y a plus de mouvement alors fermeture Ps: hc2 gea 5.40 Merci encore
pepite Posté(e) le 6 août 2015 Signaler Posté(e) le 6 août 2015 Bonjour @Flechg Essaie ca, ca relance la tache autoclose si pas de mouvement pendant 10 mins, repeat inutile pour les declenchements instantanes. local autoclose = GEA.add({"Value+", id["VOLET_SALON"], 70}, 5*60, "ouvert depuis plus de 5 minutes", {{"close"}, {"Repeat"}}) GEA.add(id["DET_SALON"], -1, "", {{"StopTask", autoclose}}) GEA.add(id["DET_SALON"], 10*60, "", {{"Inverse"}, {"RestartTask", autoclose}, {"Repeat"}})
flechg Posté(e) le 6 août 2015 Signaler Posté(e) le 6 août 2015 merci pepite pour ton aide je teste sans tarder
soulac Posté(e) le 6 août 2015 Signaler Posté(e) le 6 août 2015 Bonjour Merci peppite et jojo cela fonctionne. bon j'ai pas essayé porte ouvert car je ne suis pas chez moi, mais porte fermé le volet descend. je reviens vers vous des que je rentre
Messages recommandés