Aller au contenu

Messages recommandés

Posté(e)

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

Posté(e) (modifié)

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

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

 

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

Posté(e)

 

@ 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

Posté(e)

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

 

Posté(e)

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

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

Posté(e)

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

Posté(e)

@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

 

Posté(e)

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

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

Posté(e)

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

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

Posté(e) (modifié)

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

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

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 

Posté(e)

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

Posté(e)

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

 

Posté(e)

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

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:

Posté(e)

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

×
×
  • Créer...