Aller au contenu

Recommended Posts

ah oui dans ce cas c'est close si c'est un fgrm222, comme pour un volet ;-), a tester

Partager ce message


Lien à poster
Partager sur d’autres sites

je confirme donc le close  :D

Partager ce message


Lien à poster
Partager sur d’autres sites

bonjour,

 

Je galère un peu pour gerer le chauffage avec l'ouverture des fenetres, j'aimerais faire un truc du genre: si fenetre1 ou fenetre2 ou fenetre3 est ouverte alors appui sur bouton 2 du virtualdevice1

			local fenetresSalonOpen= {"If",{{"Value-", id["FENETRE_COTE_CANAPE"], 1}}},{"If",{{"Value-", id["FENETRE_COTE_FRIGO"], 1}}},{"If",{{"Value-", id["FENETRE_COTE_TV"], 1}}},{"If",{{"Value-", id["FENETRE_COTE_HOTTE"], 1}}}
			GEA.add(id["RADIATEUR"], -1, "Coupure chauffage",
			{"VirtualDevice", id["PANNEAU_CHAUFFAGE"], "7"},fenetresSalonOpen,
			{"Global", "sms", hc2prefixe .."coupure chauffage"},sendsms_vince
			})

Merci pour votre aide

Partager ce message


Lien à poster
Partager sur d’autres sites

voila ce que j'ai fait pour chaque fenetres pour qu'elles soient indépendantes

--coupure chauffage quand aération de la Piéce
  local Chauffage2 =  {"Global", "Chauffage", "OFF"} -- dans un VD que @Steven àfait, j'ai rajouté deux bouton "Activé" et "Arrêté" pour modifier la variable chauffage, c'est la variable générale
  local Chauffage4 =  {"Global", "Chauffage", "ON"}     
  --Chambre Marion R7 
  local Chauffage_R7 =  {"Global", "R7", "VACANCES"} --j'ai créé une varable par radiateurs pour les rendre individuel 
  local Fentre_Marion_open =  {"Value",id["Windows_Marion"], 1} , {"Global", "Windows0", "Fermes"} --les variables "Windows" me servent pour d'autre application.
  local Fentre_Marion_close =  {"Value",id["Windows_Marion"], 0} , {"Global", "Windows0", "Ouverts"}
  GEA.add({Fentre_Marion_open},60, "", {{"Global", "Windows0", "Ouverts"} , {"VirtualDevice", id["Mod_Chauf_Marion"], 4}}) --si la fenetre est ouverte plus de 60 seconde, change la variable "Windows",on  appuis sur le bouton 4 du VD chauffage de la piéce pour le stoper
  GEA.add({Fentre_Marion_close,Chauffage2},3*60, "", {{"Global", "Windows0", "Fermes"} , {"VirtualDevice", id["Mod_Chauf_Marion"], 4}})--si OFF --si on ferme et que la variable générale est OFF on laisse en off
  GEA.add({Fentre_Marion_close,Chauffage_R7},3*60, "", {{"Global", "Windows0", "Fermes"} , {"VirtualDevice", id["Mod_Chauf_Marion"], 5}})--si Vacances 
  GEA.add({Fentre_Marion_close,Chauffage4},3*60, "", {{"Global", "Windows0", "Fermes"} , {"VirtualDevice", id["Mod_Chauf_Marion"], 3}})--si ON  
Modifié par Fredric

Partager ce message


Lien à poster
Partager sur d’autres sites

c'est plutot ça que tu veux

-- Ouverture d'une fenêtre
  GEA.add({"Value",id["Windows_SMG"],1}, 30, "", {{"Global", "Windows5", "Ouverts"}}) 
  GEA.add({"Value",id["Windows_SMD"],1}, 30, "", {{"Global", "Windows5", "Ouverts"}}) 
  GEA.add({"Global", "Windows5", "Ouverts"}, 30, "", {{"VirtualDevice", id["Mod_Chauf_SM"], 4}})
  -- Les 2 fenêtres sont fermées
  GEA.add({{"Value",id["Windows_SMG"],0}, {"Value",id["Windows_SMD"],0},Chauffage2}, 3*60, "", {{"VirtualDevice", id["Mod_Chauf_SM"], 4}, {"Global", "Windows5", "Fermes"},{"Repeat"}})

Partager ce message


Lien à poster
Partager sur d’autres sites

 

@Frederic : comme ca en trichant avec GEA, Disarmed doit etre dans les OPTIONS ;-)

GEA.add({"Value!", id["Porte_Entree"], -1}, -1, "", {{"Disarmed"}, {"turnOff", 317}})

La valeur de la porte d'entree sera toujours differente de "-1", normal, dans ce cas, GEA ne prendra en compte la logne que lorsque ce sera"Disarmed" ;-)

cela ne fonctionne pas, voici ce qui fonctionne mais avec un "IF"  <_<


  local SECU = {{"If", {{id["Porte_Entree"], "Disarmed"}}}, {"turnOff"}}
  GEA.add(317, -1, "", SECU )

non ça ne prend pas en compte le désarmer.

Partager ce message


Lien à poster
Partager sur d’autres sites

 

@ frédéric, il faudrait peut-être analyser l'ensemble du scénario.

Utilises-tu le panneau le panneau d'alarme ? Comment est déclenchée ta sirène ?

Je regaedrais du côté du panneau d'alarme, car la sirène ne se déclenche que si un device armé est breached.

Je ne pense pas que GEA soit l'idéal ici

rien de bien sorcier @Jojo, j'ai une scène fonctionnel qui permet que:

quand trois de mes capteurs, bien précis, sont désarmés alors la sirène ne sonne pas, même si un des autres capteur est en alerte ou que l'on active par mégarde la sirène.

juste une sécurité oreilles  :D

Partager ce message


Lien à poster
Partager sur d’autres sites

@Frederic, la boulette est pour moi : c'est avec Value+ ;-)

 

Et j'ai reverifie c'est bien l'astuce que @steven  a donne

GEA.add({"Value+", id["Porte_Entree"], -1}, -1, "", {{"Disarmed"}, {"turnOff", 317}})

 Astuce de Steven regarde :
 

 

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

  1.  
  2. GEA.add({"Value+", id["OP_SALON"], -1}, -1, "Capteur désarmé", {{"Disarmed"}, {"turnOn", id["LAMPE_BUREAU"]}, })
  3.  

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 :

  1.  
  2. GEA.add( {"Global!", "MyVariable", "gfgfgfgf"}, 30, "La valeur est #value#")
  3.  

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

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@jojo et @pitp2

non le wallplug ne commande pas la porte de garage 

pour la commande de la porte du garage j ai un module fibaro FGRM222

 

@jojo 

le wallplug controle une prise au garage et lorsque je me sert de la prise et que le wallplug est sur on alors je veux que la porte ne se ferme pas au bout de 15 min

 

ps mais bon c est pas grave vu qu elle ne se ferme pas au bout de 15 min j y arrive pas  :1:  :1:  :1:  :1:  :1:

@ flechg, voilà , maintenant qu'on sait tout, c'est super simple

GEA.add(id["WallPlug"], 15*60, "La porte du garage est ouverte depuis #duration#, fermeture automatique", {"Close", id["FGRM Porte garage"], 100})

Partager ce message


Lien à poster
Partager sur d’autres sites

ok, j'ai compris pourquoi cela fonctionne pas, la ligne dit que :

 

quand le capteur de la porte vient d’être désarmé alors action...

 

moi je veux que:

quand la sirène activé et que le capteurs est a l'état désarmé alors action, coupe la sirène

Partager ce message


Lien à poster
Partager sur d’autres sites

@Frederic, comme ca alors peut-etre

 

soit avec le "disarmed" : (pris en compte pour laporte d'entree qui est la 1ere condition ;-)

 local sireneon = {"Value", id["sirene"], 1}
 local porteentreedesarmee = {"Value+", id["Porte_Entree"], -1}

 GEA.add({porteentreedesarmee, sireneon},  -1, "", {{"Disarmed"}, {"turnOff", 317}})

soit sans le "disarmed"

local sireneon = {"Value", id["sirene"], 1}
local porteentreedesarmee = {"Value", id["Porte_Entree"], 0}
   
GEA.add({porteentreedesarmee, sireneon},  -1, "", {{"turnOff", 317}})

Qu'en penses tu ?

Partager ce message


Lien à poster
Partager sur d’autres sites

@jojo 

merci pour ton aide mais cela ne fonctionne pas j ai pas de message d erreur mais rien ne se passe

donc je m explique d une part j ai un volet roulant de porte de garage avec un module fgrm222 qui actionne la montée et la descente de la porte de garage

et de l autre part j ai une prise a coté de mon atelier que j utilise quand je bricole avec un wallplug et je veux que lorsque je me sert de cette prise le wallplug est donc sur ON

et donc cela arrête la fermeture automatique de la porte de garage

ps cependant je n arrive pas a fermer automatiquement la porte de garage je sais pas pourquoi

voici le code que j utilise

GEA.add(id["PORTE_GARAGE"], 15*60, "La porte du garage est ouverte depuis plus de 15 minutes", {{"close"}, {"repeat"}}) 

merci encore pour votre patience 

s

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@flechg, on va le faire en plusieurs étapes si tu veux bien.

Déjà  on va traiter la fermeture auto de ta porte de garage.

En fait le FGRM remonte une valeur entre 0 et 100 alors que dans ta syntaxe la condition attendue est plutot "0 ou 1"

 

Peux tu essayer ceci comme code (je ne l'ai pas testé) ?

GEA.add({"Value+", id["PORTE_GARAGE"], 90}, 15*60, "La porte du garage est ouverte depuis plus de 15 minutes", {{"close"}, {"repeat"}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Au sujet des conditions et de la manière de procéder pour qu'elles soient correctement prises en compte ..

 

Pouvez vous me dire pourquoi ceci fonctionne 

local arretlumsalon = GEA.add({{"Value", id["CP_SALON"], 0} , {id["LUMIERE_SALON"]}, {"Sensor-", id["PRISE_TELE"], 1}, {"Global!", "M_Feutre", "oui"} }, 5*60, "", {{"turnOff",id["LUMIERE_SALON"]}})

et que cela non ?

local arretlumsalon = GEA.add({{"Value", id["CP_SALON"], 0} , {id["LUMIERE_SALON"]}, {"Sensor-", id["PRISE_TELE"], 1} }, 5*60, "", {{"turnOff",id["LUMIERE_SALON"]}, {"Global!", "M_Feutre", "oui"}})

Dans le deuxieme cas la condition , {"Global!""M_Feutre""oui"} n'est pas prise en compte

 

Ce n'est pas dramatique mais j'aimerais bien comprendre  :P

Partager ce message


Lien à poster
Partager sur d’autres sites

es tu sur que ta premiere ligne fonctionne ? ton {id["LUMIERE_SALON"} est bien pris en compte ?

 

Dans ta 2 eme ligne, ton "GLOBAL!" n'est pas une CONDITION mais une OPTION, pour mettre la valeur de la variable "M_FEUTRE ç OUI c'est comme cela en OPTIONS : sans le ! ;-)

 {"Global", "M_Feutre", "oui"}

Partager ce message


Lien à poster
Partager sur d’autres sites

@Frederic, comme ca alors peut-etre

 

soit avec le "disarmed" : (pris en compte pour laporte d'entree qui est la 1ere condition ;-)

 local sireneon = {"Value", id["sirene"], 1}
 local porteentreedesarmee = {"Value+", id["Porte_Entree"], -1}

 GEA.add({porteentreedesarmee, sireneon},  -1, "", {{"Disarmed"}, {"turnOff", 317}})

soit sans le "disarmed"

local sireneon = {"Value", id["sirene"], 1}
local porteentreedesarmee = {"Value", id["Porte_Entree"], 0}
   
GEA.add({porteentreedesarmee, sireneon},  -1, "", {{"turnOff", 317}})

Qu'en penses tu ?

@pepite, le premier, j'ai déja testé et cela fonctionne pas, coupe la sirène que ce soit armé ou désarmé et le second, ça coupe la sirène quand la porte est fermé.

 

Merci pour tes idées, c'est vraiment l'état "désarmé" que je n'arrive pas à  lui faire prendre ne compte.

Partager ce message


Lien à poster
Partager sur d’autres sites

Au sujet des conditions et de la manière de procéder pour qu'elles soient correctement prises en compte ..

 

Pouvez vous me dire pourquoi ceci fonctionne 

local arretlumsalon = GEA.add({{"Value", id["CP_SALON"], 0} , {id["LUMIERE_SALON"]}, {"Sensor-", id["PRISE_TELE"], 1}, {"Global!", "M_Feutre", "oui"} }, 5*60, "", {{"turnOff",id["LUMIERE_SALON"]}})

et que cela non ?

local arretlumsalon = GEA.add({{"Value", id["CP_SALON"], 0} , {id["LUMIERE_SALON"]}, {"Sensor-", id["PRISE_TELE"], 1} }, 5*60, "", {{"turnOff",id["LUMIERE_SALON"]}, {"Global!", "M_Feutre", "oui"}})

Dans le deuxieme cas la condition , {"Global!""M_Feutre""oui"} n'est pas prise en compte

 

Ce n'est pas dramatique mais j'aimerais bien comprendre  :P

tu as mis "Global!", ça c'est pour dire si, la variable est autre que "oui"; c'est plus une condition qu'une action.

je l'utilise mais avant:

local arretlumsalon = GEA.add({{"Value", id["CP_SALON"], 0} , {id["LUMIERE_SALON"]}, {"Sensor-", id["PRISE_TELE"], 1}, {"Global!", "M_Feutre", "oui"}}, 5*60, "", {{"turnOff",id["LUMIERE_SALON"]}})

et si c'est pour changer la variable, juste enlever le point d'exclamation "!"

 

 

Arf!! plus rapide que moi @Pepite  ;)

Modifié par Fredric

Partager ce message


Lien à poster
Partager sur d’autres sites

@Frederic :

rassure moi la 2 eme fonctionne non ?

 

Pour la 1ere : essaie tout simple sans la sirene pour voir s'il prend l'etat desarme ? t'as bien mis dans l'entete ta porte d'entree ?

 

t'as regarde le json du module porte d'entree ?

local porteentreedesarmee = {"Value+", id["Porte_Entree"], -1}
GEA.add(porteentreedesarmee, -1, "", {{"turnOff", 317}})

Partager ce message


Lien à poster
Partager sur d’autres sites

oui, j'ai mis la sirène en entête et même la porte, value et armed au cas ou...

 

alors, cela j'ai testé mais ça marche pas, mais peut-être avec un "Repeat".

 

là  je peut plus tester, j'ai plus la main, dans l'aprém 

Partager ce message


Lien à poster
Partager sur d’autres sites

pour de l'instantané, pas besoin de Repeat ;-)

Essaie sans instantané pour éliminer cela aussi non, mais un 30 ? et jette un oeil au json ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci les copains  :60:

 

@pepite, oui la première ligne fonctionne très bien même  :)

 

par contre je pensais que l'on pouvait utiliser les "if" avec les même tests que pour les conditions mais dans ce cas là  en option.

 

cf de la bible by Steven

{"If", {[{<condition}[,{<condition}[,...]]}}       -- L'événement sera autorisé uniquement si toutes les conditions sont valides

 

ce qui voudrait dire que je peux utiliser "Global!" enfin c'est comem cela que j'ai interprété et cela semble fonctionner mais pas pour tout.

 

Pour preuve ceci fonctionne aussi très bien et pourtant le "test" est dans la partie "actions"

 

 local luminosite_faible_salon_tveteinte_pasmodefeutre = {"If",{{"Value-", id["LUMINOSITE_SALON"], 50}, {"Sensor-", id["PRISE_TELE"], 1},{"Global!", "M_Feutre", "oui"}}}
  GEA.add(id["CP_SALON"], -1, "", {luminosite_faible_salon_tveteinte_pasmodefeutre , {"Value", id["LUMIERE_SALON"], 100}})
 
 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@PITP2 :

je viens d'apprendre qqch alors, je croyais que lorsqu'on mettait juste id["nom"] dans une condition multiples, il fallait le mettre en 1er pour que GEA le prenne en compte ;-)

 

Pour les IF, oui tu peux les mettre dans les ACTIONS mais si dans ta declaration de varibale "local" ou ecrit directement tu mets les "IF", ce que tu n'aas pas mis du tout dans la ligne que tu nous as soumise ;-)

GEA.add({{"Value", id["CP_SALON"], 0} , {id["LUMIERE_SALON"]}, {"Sensor-", id["PRISE_TELE"], 1} }, 5*60, "", {{"turnOff",id["LUMIERE_SALON"]}, {"Global!", "M_Feutre", "oui"}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Alors en ce qui concerne les IF je les mets encore mais selon le gars cité dans la bible (Steven  :P ) ils ne sont plus nécessaire ... et que si il lit cela je vais me faire disputer  :D

enfin je crois qu'il faudrait que Dieu lise ce post pour nous re re montrer le droit chemin  :2:

Partager ce message


Lien à poster
Partager sur d’autres sites

@PITP2

 

Ils ne sont plus necessaires si tu les mets dans les CONDITIONS en début de ligne ;-)

Si tu veux les mettre dans les OPTIONS, je crois qu'il faut les "IF", sinon ca ne fonctionne pas, cf ta ligne et ton Global! ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

×