Aller au contenu

Messages recommandés

Posté(e)

ou supprime les guillemets juste après duration et garde ce apres OFF pour bien comprendre avec le push

"N1 - lampe salon allumée depuis #duration# -> OFF"
Posté(e)

GEA ne sera jamais précis qu'à  30sec près, il travail par cycle de 30s.

si tu mes une valeur entre 1 et 30 sec, l'action se réalisera endéans les 30s (mais peut-être après 10s)

Si tu veux absolument min 30s, tu mes 31s, et alors l'action se déroulera après 30s et en déans la minute.

 

Pour le reste, ça fonctionne ?

Posté(e) (modifié)

                                             si détection et lampe ON et RGB ON   alors éteindre RGB et rallumer la lampe salon 

Fonctionnement actuelle: si détection et lampe ON et RGB ON   alors éteindre RGB   la lampe salon reste allumer +/- 40s et s' éteint  ( ne fonctionne pas à  100%  )

 

si détection et lampe OFF et RGB ON   alors éteindre RGB et rallumer lampe  ( ne fonctionne pas) 

 

si détection et lampe ON et RGB OFF   alors revenir au début ( ne fonctionne pas) 

Modifié par 971jmd
Posté(e)

J'ai essayer une méthode avec deux  variable  et le code fonctionne a 100%

et j'ai mis le RGBW de cotée pour le moment 

 

mai je suis sur qu'il y a un moyen plus simple  :P

---- 1 les lampes off  
GEA.add({id["DETECTEUR_MOUVE"], {"Global", "jour_nuit", "1"}, {"Value", id["LAMPE_SALON"], 0}}, -1, "", {{"Global", "ecl_nuit1", "1"}, {"Global", "ecl_nuit2", "1"}})

--  reset variable
GEA.add({id["DETECTEUR_MOUVE"], {"Global", "jour_nuit", "1"}, {"Value", id["CENTRE_TABLE"], 1}, {"Value", id["LAMPE_SALON"], 1}}, -1, "", 
{{"turnOff", id["CENTRE_TABLE"]}, {"Global", "ecl_nuit1", "4"}, {"Global", "ecl_nuit2", "3"}})

  ----- la lampe salon OFF et la lampe cuisine on
GEA.add({id["DETECTEUR_MOUVE"], {"Global", "jour_nuit", "1"}, {"Value", id["CENTRE_TABLE"], 1}, {"Value", id["LAMPE_SALON"], 0}}, -1, "", 
{{"turnOff", id["CENTRE_TABLE"]}, {"Global", "ecl_nuit1", "5"}, {"Global", "ecl_nuit2", "5"}})
 
  ----les differents modes SALON 

-----1
GEA.add({"Global", "ecl_nuit1", "1"}, -1, "on_salon", {{"turnOn", id["LAMPE_SALON"]}, {"Global", "ecl_nuit1", "2"}})   
GEA.add({"Global", "ecl_nuit1", "2"}, 2*60, "off_salon", {{"turnOff", id["LAMPE_SALON"]}})
-----2
GEA.add({"Global", "ecl_nuit1", "3"}, -1, "on_salon", {{"turnOn", id["LAMPE_SALON"]}, {"Global", "ecl_nuit1", "4"}})
GEA.add({"Global", "ecl_nuit1", "4"}, 2*60, "off_salon", {{"turnOff", id["LAMPE_SALON"]}})
  
 -----3
GEA.add({"Global", "ecl_nuit1", "5"}, -1, "on_salon", {{"turnOn", id["LAMPE_SALON"]}, {"Global", "ecl_nuit1", "6"}})
GEA.add({"Global", "ecl_nuit1", "6"}, 2*60, "off_salon", {{"turnOff", id["LAMPE_SALON"]}})  
  
  
------  les differents modes  CUISINE

-----1
GEA.add({"Global", "ecl_nuit2", "1"}, 1*60, "", {{"turnOn", id["CENTRE_TABLE"]}, {"Global", "ecl_nuit2", "2"}})
GEA.add({"Global", "ecl_nuit2", "2"}, 3*60, "", {{"turnOff", id["CENTRE_TABLE"]}, {"Global", "ecl_nuit1", "0"}, {"Global", "ecl_nuit2", "0"}}) 

------2
GEA.add({"Global", "ecl_nuit2", "3"}, 1*60, "", {{"turnOn", id["CENTRE_TABLE"]}, {"Global", "ecl_nuit2", "4"}})
GEA.add({"Global", "ecl_nuit2", "4"}, 3*60, "", {{"turnOff", id["CENTRE_TABLE"]}, {"Global", "ecl_nuit1", "0"}, {"Global", "ecl_nuit2", "0"}}) 

-----3
GEA.add({"Global", "ecl_nuit2", "5"}, 1*60, "", {{"turnOn", id["CENTRE_TABLE"]}, {"Global", "ecl_nuit2", "6"}})
GEA.add({"Global", "ecl_nuit2", "6"}, 3*60, "", {{"turnOff", id["CENTRE_TABLE"]}, {"Global", "ecl_nuit1", "0"}, {"Global", "ecl_nuit2", "0"}}) 
  -------------------------------------------------------------------------  
Posté(e)

Super @971jmd

 

Ca fait tout de même longtemps qe @hansolo avait suggéré le passage par les Variables Globales ;-)

 

C'est sur que sans le RGB c'est plus simple ;-)

 

Bravo :60: :60:

  • Upvote 1
Posté(e)

cool que tu ais trouvé une solution qui te conviens. Le mieux en effet est que tu ais trouvé la solution toi-même, tu améliores ainsi tes connaissances

  • Upvote 1
Posté(e) (modifié)

@ Merci pour votre aide :60:

 

mai je revient sur : restartTask, StopTask, NotStarted.

 

si je comprend bien le restartTask est comme un {"Repeat"} sauf qu'il est sous contrôle

le  StopTask annule ce sous contrôle.

 le NotStarted c'est tres pas claire 

 

si vous avez des exemples, je suis preneur 

Modifié par 971jmd
Posté(e)

exemple simple,   mai ne fonctionne pas pourquoi ?  :

--[[
%% autostart
aze
%% properties

%% globals
jour_nuit
eco
--]]

local aze = GEA.add(true, -1 , "", {{"turnOn", id["LAMPE_SALON"]}}) 

GEA.add({"Global", "eco", "1"},  -1 , "", {{"RestartTask", aze}})
Posté(e)

C'est quoi cela :

 

--[[

%% autostart

aze

%% properties

%% globals

jour_nuit

eco

--]]

 

 

... le code que je suis entrain de lire est le même que celui-ci :

GEA.add({"Global", "eco", "1"},  -1 , "", {{"turnOn", id["LAMPE_SALON"]}})
  • Upvote 1
Posté(e)

hihihi ;-)

 

Quand nous t'avons parlé de Déclaration de Variables, nous te parlions des local.. comme ton local aze, c'est ceci ta declaration de variable.

 

tu n'as rien à  ecrire sous %%autostart, qui est là  en cas de redemarrage de la box afin que la scene redemarre automatiquement.

 

Tu ne dois renseigner que sous :

 - properties : si déclencheur est une modification des proprietes d'un module sous forme "id value" ou id power ou....

 - globals : si déclencheur est une modification de la valeur d'une variable

 

Ce n'est utile avec GEA que lorsque tu écris tes lignes avec "-1"

 

Faut vraiment que tu ailles lire le WIKI de @steven, lien que l'on a deja donné ;-)

Posté(e)

Simplement

un exemple : comment allumer une lampe avec RestartTask et une variable local :lampe_on  :) 

local lampe_on = GEA.add(true, -1 , "", {{"turnOn", id["LAMPE_SALON"]}}) 

le "true" je ne sais pas si il est utile ou pas..

Posté(e)

tu ne commences pas par le plus simple...

Perso j'ai plus de 500 lignes de code GEA, et seulement 15 avec des stopTask, RestartTask, ...

Donc 90% des besoins peuvent être couverts sans maîtrise de ces notions complexes.

Si je puis me permettre, commence par bien maîtriser les autres notions de GEA, ça te sera plus utile dans l'immédiat, et cela te permettra de mieux appréhender celles-ci.

Voici un exemple :

  -- Lampe SdJ
     -- Extinction automatique de la lampe après 30s.
     local autoOffSdJ = GEA.add ({DeviceID["LUM_HALLNUIT_SDJ"], auth_LumHallNuit}, 31, "", {{"turnOff"}})
     -- Appuie sur l'interrupteur de la lampe, on stoppe l'extinction automatique.
     GEA.add (DeviceID["LUM_HALLNUIT_SDJ"], -1, "", {{"StopTask", autoOffSdJ}})
     -- Allumage de la lampe sur détection mouvement
     GEA.add ({DeviceID["MVT_HALLNUIT_SDJ"], auth_LumHallNuit, {"Value-", DeviceID["LUX_HALLNUIT_SDJ"], 5}, {"Value", DeviceID["LUM_HALLNUIT_SDJ"],0}}, -1, "", {{"turnOn", DeviceID["LUM_HALLNUIT_SDJ"]}, {"RestartTask", autoOffSdJ}})
     -- Extinction de la lampe dans tous les cas après 10 min
     GEA.add ({DeviceID["ALARME_ACTIVE"], DeviceID["LUM_HALLNUIT_SDJ"]}, 10*60, "Extinction du Hall de Nuit SdJ, car allumée depuis #duration#. (#date# à  #time#)", {{"Inverse"}, {"turnOff", DeviceID["LUM_HALLNUIT_SDJ"]}, {"Portable", MobileID["None"]}, {"Email", UserID["Vincent"], "ALERTE - Lumière Hall de Nuit"}})

et j'ai vu il y a quelques jours une solution qui me permetterait d'éviter ces restartTask => à  optimiser

 

Un autre exemple

-------------------
  -- Alarme
-------------------
-- Garage Annabelle
  -- GA_OPEN => fermer
   local auto_GA_Close = GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GA_OPEN"]}, 90, "Garage Annabelle ouvert et alarme branchée. Fermeture automatique. (#date# à  #time#)",{{"turnOn", DeviceID["BOUTON_GA"]}, {"Email", UserID["Vincent"], "ALARME - Garage ouvert => fermeture automatique"}})
  -- GA_OPEN => pas réussi à  la fermer
   GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GA_OPEN"]}, 135, "Garage Annabelle ouvert et alarme branchée. La fermeture automatique n a PAS fonctionné. Aller voir sur place. (#date# à  #time#)",{{"Email", UserID["Vincent"], "ALARME - Garage ouvert et en erreur"}})
  -- GA_Mvt => porte garage mal fermée
   GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GA_MVT"]}, 45, "Garage Annabelle mal fermé et alarme branchée. Aller voir sur place. (#date# à  #time#)",{{"Email", UserID["Vincent"], "ALARME - Garage mal fermé et en erreur"}})

-- Désactivation alarme
  -- => arrêt tâche fermeture auto porte garage Annabelle
   GEA.add (DeviceID["ALARME_ACTIVE"], 1, "", {{"Inverse"}, {"StopTask", auto_GA_Close}})




Posté(e)

 500 lignes de code GEA  :o   effectivement pas encore la 

 

 

merci pour les exemple, Je vais les étudier et les expérimenté. :60: 

Posté(e)

@jojo

Oui les préconisations d'@Hansolo sur l'utilisation des VG ;-)

 

@971jmd

 

Sur ta ligne, ce n'est pas très cohérent :

True : condition toujours vraie, quoiqu'il se passe, tes OPTIONS seront TOUJOURS executees

-1 : declenchement instantané, mais ici sur quelles conditions ?

 

Si tu utilises les déclenchements instantanés, c'est à  partir du changement d'etat d'un module ou d'une variable.

 

Coourage, mais commence par le début avec des instructions simples ;-)

Posté(e)

sans trop intensité et abuser  ;)

si je prend l'exemple ci-dessous:

local on_lp = GEA.add({"Global", "ecl_nuit", "1"}, -1,    "", {{"turnOn", id["LAMPE_SALON"]}})  
GEA.add({"Global", "jour_nuit", "1"}, -1,    "", {{"RestartTask", on_lp}})  

si jour_nuit = 1 et que ecl_nuit = 1

 

Ma lampe est censé s'allumer ou pas ?

Posté(e)

Les variables ecl_nuit et jour_nuit doivent etre dans l'entete.

local on_lp = GEA.add({"Global", "ecl_nuit", "1"}, -1, "", {{"turnOn", id["LAMPE_SALON"]}}) 

la tu dis : si la variable ecl_nuit est = 1 alors allume instantanément la lampe salon

GEA.add({"Global", "jour_nuit", "1"}, -1, "", {{"RestartTask", on_lp}})  

la tu dis : si jour_nuit = 1 alors redemarre la tache on_lp

 

pour moi oui ca doit redemarrer ta tache mais elle ne se declenchera uniquement lorsque la variable ecl_nuit sera = 1

 

Si tu veux un ET, conditions multiples comme ceci

GEA.add({{"Global", "ecl_nuit", "1"}, {"Global", "jour_nuit", "1"}}, -1, "", {{"turnOn", id["LAMPE_SALON"]}}) 

Est-ce que tu comprends bien que chaque ligne GEA est démarrée automatiquement par défaut ? et sera donc executee dès que les conditions seront remplies ? 

Posté(e)

Hello tout Le monde

@pepite j'ai lu et relu le wiki GEA mais,je ne trouve pas,dans le poste précédent tu dit "si tu veux un ET"

Comment fait on si on veux un OU je Vous explique

Vous m'avez aider sur des lignes pour allumage auto scellier avec variable jour_nuit

Est il.possible de faire sur détection de mouvement et Lux<=100 OU Jour_Nuit=Nuit alors allumage scellier

Je sais pas si je suis claire

Le contexte

DETECTEUR -FGMS001

MODULE -FG222

Le code sur lequel vous m'avez aider toi et hansolo fonctionne parfaitement mais je voudrais rajouter les Lux

Ou faut'ils recrée une ligne juste pour les Lux.

D'avance merci

Posté(e)

pour faire un ET, c'est toutes les conditions sur la même ligne GEA.add. 

Pour faire un OU, ce sont des lignes différentes

GEA.add ({id["DETECTION_MVT"], {"value-",id["LUX"], 100}, -1, "", ...)
GEA.add ({id["DETECTION_MVT"], {"Global", "Jour_Nuit", "Nuit"}}, -1, "", ...)
×
×
  • Créer...