Aller au contenu

Recommended Posts

oui c'est ça je change ma variable globale pour qu'elle passe à"NON"

local HomeFree = {"Global", "MaisonVide", "OUI"}
local HomeBusy = {"Global", "MaisonVide", "NON"}  

Partager ce message


Lien à poster
Partager sur d’autres sites

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,

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok je vois,

Je vais tester!

Merci

Envoyé de mon SM-G900W8 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

super !!

@jojo, ca aurait fonctionne aussi avec la variable ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites

@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
 

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites

 

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites
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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

merci pepite pour ton aide 

je teste sans tarder 

^_^  

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

×