Aller au contenu

Messages recommandés

Posté(e) (modifié)

Détecteur de mouvement ou interrupteur

 

c'est officielle le code fonctionne super bien 

 

si détection de mouvement  allumer lampe salon et extinction de la lampe dans 5mm  sauf si:   jour_nuit = 1  ou  allumage de lampe par son interrupteur  

local lampetimer = GEA.add({{"Global", "auto1", "1"}, {"Value", id["LAMPE_SALON"], 1}} , 5*60, "off", {{"turnOff", id["LAMPE_SALON"]}, {"Global", "auto1", "0"}}) 

GEA.add({id["DETECTEUR_MOUVE"], {"Global", "jour_nuit", "0"}, {"Global", "auto1", "0"}}, -1 , "", {{"turnOn", id["LAMPE_SALON"]}, {"Global", "auto1", "1"}, {"RestartTask", lampetimer}})

Modifié par 971jmd
Posté(e)

j'ai une question 

 

avec un RestartTask peut-on activée -1 

visiblement ça ne fonctionne pas 

 

pour exemple  fonctionnement de mon code:

 

A la détection  : si jour_nuit = 0 et value lampe salon = 0 et value centre table 1 alors  RestartTask    --->   local lampe =  : si auto1 =   0 et value lampe salon = 0  alors allumé la lampe 

  local lampe = GEA.add({{"Global", "auto1", "0"}, {"Value", id["LAMPE_SALON"], 0}} , -1, "on", {{"turnOn", id["LAMPE_SALON"]}}) 

  
GEA.add({id["DETECTEUR_MOUVE"], {"Global", "jour_nuit", "0"}, {"Value", id["LAMPE_SALON"], 0}, {"Value", id["CENTRE_TABLE"], 1}}, -1 , "", {{"RestartTask", lampe}}) 
Posté(e)

 

Me suis amusé à  mixer @Hansolo et ce que j'aurais essayé en 2 methodes hihi

1 avec ce que fait @Hansolo, (et je sens que je vais devenir adepte) et ce que j'aurais fait avec les restart et les variables de @Hansolo ;-)

1 autre que j'aurais tenté sans variable

 

et ce que fait @sebcbien est pas de mon niveau, peux pas traduire ;-)

--Methode 1 mixte @HAnsolo et moi ;-)

-- Exinction allumage sur detection
local ExtinctionCouloir1 = GEA.add(id["LAMPE_TELERUPTEUR_C1"],  1*60, "Extinction couloir sur detection #duration#", {{"Portable", 384},{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}})

-- Allumage sur detection
GEA.add(id["DETEC_COULOIR1"], -1, "Déclenchement auto et restart compteur 1min", {{"Portable", 384},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]},{"RestartTask", ExtinctionCouloir1}})

--Extinction allumage manuel
GEA.add({"Global", "LAMPE_COULOIR1", "MANUEL"}, 5*60, "Extinction allumage manuel", {{"Global", "LAMPE_COULOIR1", "OFF"}, {"turnOff", id["LAMPE_TELERUPTEUR_C1"]}})

--Allumage manuel bouton poussoir
GEA.add(id["LAMPE_TELERUPTEUR_C1"], -1, "Allumage manuel", {{"StopTask", ExtinctionCouloir1}, {"Global", "LAMPE_COULOIR1", "MANUEL"}})
--Methode 2
-- Exinction allumage sur detection, tache non demarree
local ExtinctionCouloir1 = GEA.add(id["LAMPE_TELERUPTEUR_C1"],  1*60, "Extinction couloir sur detection #duration#", {{"Portable", 384},{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}, {"NotStarted"}})

-- Allumage sur detection
GEA.add(id["DETEC_COULOIR1"], -1, "Déclenchement auto et restart compteur 1min", {{"Portable", 384},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]},{"RestartTask", ExtinctionCouloir1}})

--Extinction sur appui bouton poussoir
GEA.add(id["LAMPE_TELERUPTEUR_C1"], 5*60, "Extinction allumage manuel #duration#", {{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}})

Je viens d'essayer la méthode 2 par simplicité de mise en Å“uvre, cependant lorsque j'allume via l'interupteur et que l'on passe devant le détecteur, le systeme ne laisse pas la lumière allumée pour 5 min mais active le compte à  rebours pour 1min... On perd l'effet de l’interrupteur

 

Je vais essayer la méthode 1.

Mais ce soir, obligation repas en famille.

Je vous tiens informai, merci encore pour votre aide.

 

 

 

Posté(e)

Bonsoir sebcbien,

 

Désolé de pas avoir répondu avant mais pas trop le tps en ce moment.

 

Pour résumer cela fonctionne de temps en temps la lumière dim à  34% alors que je suis dans la cuisine mais ré-allume les spotes de la cuisine peut de temps après. Je pense que je dois encore diminuer le paramètre 1.

 

Pour répondre à  ta question pour la config avec l’Å“il de fibaro et après un mois de test ou presque.

 

Config de l'oeil:

 

Paramètre 1 : 10

Paramètre 2 : 10

Paramètre 3 : 2 impultions

Paramètre 4 : 12s

Paramètre 6 : 10s

 

Pour GEA je suis en version 5.4 et es lignes sont les suivantes:

 -- Si déjà  Allumé, Re-Allumage à  65% dès que détection mouvement sauf si module déjà  a + de 64% (économie Z-Wave)
GEA.add({id["D_MOUV_SALON"],{"Value+", id["SPOT_CUISINE"], 1},{"Value-", id["SPOT_CUISINE"],64}}, -1, "",{{"Value", id["SPOT_CUISINE"], 65}})
    -- Après 10min on dimme la lampe à  34% si pas de mouvement 
local malampesam = GEA.add({"Value+", id["SPOT_CUISINE"],64}, 10*60, "",{{"Value", id["SPOT_CUISINE"], 34},{"Repeat"}})
-- Après 3 min on met la lampe à  65% (prète pour prochain allumage) puis on éteint, uniquement si la lampe est entre 1 et 35 
local malampesamdim = GEA.add({{"Value-", id["SPOT_CUISINE"],35},{"Value+", id["SPOT_CUISINE"], 1}}, 3*60,"",{{"Value", id["SPOT_CUISINE"], 65},{"Function", function() fibaro:sleep(300) end},{"turnOff"}},{"Repeat"})
    -- Relance des tâches en cas de détection pendant 30 secondes et si la lampe est allumée (économise GEA)
GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, 30, "", {{"RestartTask", malampesam},{"RestartTask", malampesamdim},{"Repeat"}})   
-- Relance des tâches en cas de détection si la lampe est allumée (économise GEA)
GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, -1, "", {{"RestartTask", malampesam},{"RestartTask", malampesamdim}}) 
  

J'espère que ça peut aider des gens ce sera ma minuscule contribution.

 

Encore un grand merci a toi sebcbien steven et pepite 

 

@soulac

Je pense que les {"repeat"} des lignes qui vont être restartées (5 et 7) sont inutiles.

Je les ai enlevées chez moi et ça fonctionne toujours (pour des scènes similaires).

Je vais modifier mes post dans le showroom dès que j'ai un peu de temps.

Il y a quelques mois, j'avais un repeat par erreur sur une ligne -1 et ça me faisait planter la scène gea après quelques jours (c'était @jojo qui avait levé le lièvre)

Posté(e)

Salut,

 

@971jmd 

 

Le -1, déclenchement instantané fonctionne tres bien avec un RestartTask en OPTIONS.

 

Le déclenchement instantané a lieu sur la 1ere condition. Dans ta ligne, c'est donc ta variable GLobale le déclencheur. Elle doit se trouver dans l'entete sous %%globals.

 

@kioneoranga,

 

J'ai oublié une ligne pour la methode 2, le boulet, et manque un repeat peut-etre sur la ligne d'extinction de l'allumage BP

 

  • --Allumage manuel bouton poussoir
    GEA.add(id["LAMPE_TELERUPTEUR_C1"], -1, "Allumage manuel", {{"StopTask", ExtinctionCouloir1}})
    
    

Ca devrait fonctionner dans ce cas, enfin je crois

Posté(e)

oui et cela fonctionne tres bien chez moi @Hansolo, quand j'allume manuellement, ca stop l'extinction automatique et eteins la lumiere avec un tempo different.

Ca fait bien la difference entre l'allumage manuel et la detection automatique

Après comme tu le dis ca depend du contexte, tu as tout a fait raison.

 

J'ai bien compris le passage par une variable, pas de soucis, inutile de t'agacer, dans les propositions que je lui ai faites, il y a bien le passage par une variable.

et d'ailleurs je modifie quelques lignes grace à  toi chez moi.

 

Apres ce qu'il faudrait savoir est :

-est-ce que l'appui sur le bouton poussoir se fait apres la detection donc quand la lumiere est deja allumee, dans ce cas, obligation de passer par une sceneactivation si le contexte le permet pour modifier une VG afin d'avoir un autre tempo

- si appui avant la detection, autre methode

 

je ne fais que des propositions pour aider et suis loin d'etre le maitre de GEA comme @steven, a chacun de choisir le moyen qui repond le plus à  son besoin.

 

et je trouve, personnellement, qu'avoir plusieurs points de vue est interessant et permet d'ouvrir les possibilites et la reflexion pour ne pas s'enfermer dans une seule methode. (c'est pour ma tete, ca fait de bons exos hihi)

 

Encore désolé de t'agacer, ce n'est pas le but.

Posté(e)
--Methode 2
-- Exinction allumage sur detection, tache non demarree
local ExtinctionCouloir1 = GEA.add(id["LAMPE_TELERUPTEUR_C1"],  1*60, "Extinction couloir sur detection #duration#", {{"Portable", 384},{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}, {"NotStarted"}})

-- Allumage sur detection
GEA.add(id["DETEC_COULOIR1"], -1, "Déclenchement auto et restart compteur 1min", {{"Portable", 384},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]},{"RestartTask", ExtinctionCouloir1}})

--Allumage manuel bouton poussoir
GEA.add(id["LAMPE_TELERUPTEUR_C1"], -1, "Allumage manuel", {{"StopTask", ExtinctionCouloir1}})
-
-Extinction sur appui bouton poussoir GEA.add(id["LAMPE_TELERUPTEUR_C1"], 5*60, "Extinction allumage manuel #duration#", {{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}})

 

Le problème dans ce cas et le fait que la commande par BP n'est pas dissocié de la lumière.

 

Pour moi: (j'ai rajouté la ligne manquant pour avoir un script complet sous les yeux)

Cas 1 lumière éteinte, allumage manuel par BP lumière éteinte
Appuie sur le BP.
La lumière s'allume par "Allumage manuel bouton poussoir" ce qui stop ExtinctionCouloir1 
Des mouvements sont détectés, allumage de la lampe par la ligne "Allumage sur détection" (mais comme elle est déjà  allumée ==> pas d'action), relance de ExtinctionCouloir1.
Tant qu'il y a des mouvements, relance de ExtinctionCouloir1 par la ligne "Allumage sur détection" 
Si pas de mouvementss durant 1mn extinction de la lampe par ExtinctionCouloir1
Si les mouvements durent plus de 5 mn, extinction de la lampe au bout de 5mn par la ligne "Extinction sur appui bouton poussoir".
Si les mouvements continuent, la lampe se rallume par la ligne "Allumage sur détection"
 
Cas 2 lumière éteinte, allumage par détection de mouvements
Détection de mouvements
La lumière s'allume par la ligne "Allumage sur détection" et lance ExtinctionCouloir1
La ligne "Allumage manuel bouton poussoir" arrête ExtinctionCouloir1
Tant qu'il y a du mouvement, ExtinctionCouloir1 est relancé par la ligne "Allumage sur détection"
Si pas de mouvement durant 1 mn extinction de la lampe par ExtinctionCouloir1
Si les mouvements durent plus de 5 mn, extinction de la lampe au bout de 5mn par la ligne "Extinction sur appui bouton poussoir".
Si les mouvements continuent, la lampe se rallume par la ligne "Allumage sur détection"
 
Ceci en prenant pour hypothèse que le BP n'est pas dans le champ du détecteur de mouvements et selon le paramétrage du détecteur de mvt (comme on ne connait pas le contexte mis à  part qu'il s'agit d'un couloir). Car si le détecteur de mouvement allume la lumière, le fait d'appuyer sur le BP va éteindre la lumière (qui va se rallumer à  la nouvelle détection de mouvement)....
 
Avec un module FGD212, en utilisant le circuit O2 (les lumières étant sur O1), le BP connecté en S2 ce qui qui permet de dissocier le BP de la lampe et de pouvoir gérer le tout en GEA ou LUA.
 
Détection de mvt ==> allumage de la lumière sur O1.
Appui sur S2, désactivation de la détection de mouvement, désactivation de l'extinction au bout de 1mn et activation de l'extinction au bout de 5mn, allumage lumière si pas allumée
Au bout des 5mn, extinction de la lumière, réactivation de la détection et désactivation de l'extinction au bout de 1mn
Si S2 n'as pas été activé , extinction au bout d'1mn si pas de mvt.
Posté(e)

ah ouui, mon raisonnement presnetait quelques manquements, tu as raison, encore un bon exo pour moi

 

Et tout a fait d'accord avec l'usage de S2

Pour m'exercer avec GEA pour faire comme avec le S2, je tenterait cela, qu'en penses tu ?

--Methode 2
-- Exinction allumage sur detection, tache non demarree automatiquement
local ExtinctionCouloir1 = GEA.add(id["LAMPE_TELERUPTEUR_C1"],  1*60, "Extinction couloir sur detection #duration#", {{"Portable", 384},{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}, {"NotStarted"}})
 
--Extinction sur appui bouton poussoir, tache non demarree automatiquement
 local ExtinctionBP = GEA.add(id["LAMPE_TELERUPTEUR_C1"], 5*60, "Extinction allumage manuel #duration#", {{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}, {"NotStarted"}})
 
-- Allumage sur detection
local allumsurdetect = GEA.add(id["DETEC_COULOIR1"], -1, "Déclenchement auto et restart compteur 1min", {{"Portable", 384},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]},{"RestartTask", ExtinctionCouloir1}})
 
--Allumage manuel bouton poussoir
GEA.add(id["LAMPE_TELERUPTEUR_C1"], -1, "Allumage manuel couloir", {{"StopTask", allumsurdetect}, {"RestartTask", ExtinctionBP}})

En partant du principe que l'allumage par detection est la methode par defaut ;-)

 

Les taches ExtinctionCouloir1 et ExtinctionBP ne sont pas demarrees : NotStarted

 

Cas 1 lumière éteinte, allumage manuel par BP lumière éteinte

 

  --Appui BP

--> ligne allumage manuel bouton poussoir

--> Arret de la tache allumsurdetect, demarrage de la tache D'extinctionBP

--> si detection de mouvement, pas d'action je pense puisque la tache allumsurdetect est arretee

 

Cas 2 lumière éteinte, allumage par détection de mouvements

 

--Detection de mouvement

--> allumage par la ligne "allumage par detection"

--> relance de la tache ExtinctionCouloir1

-->pas de conflit avec ExtinctionBP, presence du NotStarted

--> si detection de mouvement, lumiere allumee, relance de la tache extinctioncouloir1

 

Me trompe-je encore ? Ca a l'air d'etre dissocie comme ceci non ?

Posté(e)

En ayant:

FGD212 avec

  - LAMPE_TELERUPTEUR_C1 connecté sur la sortie O1 du module

  - le BP connecté sur S2 du module (pas de BP sur S1) (certainement à  configurer en bistable malgré l'utilisation d'un BP). L'appui sur le BP n'allume pas directement la lumière.

 

Une VG DetectInHib avec deux valeurs possible "Oui" ou "Non" (valeur "Non" par défaut)

En entéte

DETECT_COULOIR1 value

LAMPE_TELERUPTEUR_C2 value

--Allumage sur détection
GEA.add({{id["DETECT_COULOIR1"]},{"GLOBAL","DetectInHib","Non"}}, -1, "Allumage sur détection mvt",{{"Portable", 384},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]}})

--Extinction 1mn suite détection mvt
GEA.add({{id["DETECT_COULOIR1"]},{"GLOBAL","DetectInHib","Non"}}, 1*60, "Extinction suite détect mvt", {{"Portable", 384},{"Inverse"},{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}})

--Allumage ou durée 5mn en manuel
GEA.add(id["LAMPE_TELERUPTEUR_C2"], -1, "En manuel", {{"Portable", 384},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]}, {"Global", "DetectInHib", "Oui"}})

--Extinction 5mm si en manuel
GEA.add({{id["LAMPE_TELERUPTEUR_C1"]},{"Global", "DetectInHib", "Oui"}}, 5*60, "Extinction 5mm si en manuel", {{"Portable", 384},{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}, {"Global", "DetectInHib", "Non"}})

La VG DetectInHib permet d’inhiber les lignes allumant la lampe suite à  détection de mvt et extinction au bout d'1mn si on actionne le BP.

 

Je n'utilise pas les RestartTask car pour moi c'est plus simple à  débugger en visualisant les états des modules et VG.

Posté(e)

@Pepite

ma lampe ne s'allume toujours pas   en -1 avec un RestartTask

--[[
%% autostart
lampetimer

%% properties

%% globals
jour_nuit

--]]

local lampetimer1 = GEA.add({"Value", id["LAMPE_SALON"], 0} , -1, "", {{"turnOn", id["LAMPE_SALON"]}})
GEA.add({id["DETECTEUR_MOUVE"]}, -1 , "", {{"RestartTask", lampetimer}})
  
  

ou

local lampetimer1 = GEA.add({"Value", id["LAMPE_SALON"], 0} , -1, "", {{"turnOn", id["LAMPE_SALON"]}})
   
GEA.add({id["DETECTEUR_MOUVE"]}, -1 , "", {{"RestartTask", lampetimer}})
 
 
Posté(e)

@Hansolo,

 

J'aime beaucoup aussi avec des VG, il est vrai qu'à  la lecture c'est plus simple et pour le debug aussi.

 

@971jmd

 

Normal dans ton entete tu dois avoir sous properties : 

xxx value

 

cad l'ID de ton detecteur de mouvement pour les declenchements instantanés (-1)

 

je ne comprends pas ce que tu veux faire avec ton RestartTask ? tu n'as pas besoin de 2 lignes pour allumer ta lampe

Posté(e)

pour m'y retrouver plus facilement, les VG que j'utilisent "exclusivement" pour GEA commencent toutes par GEA_...

Du coup le nombre de VG peux exploser, utilisez donc mon BackupVG pour les bakcups et restaures éventuels

Posté(e)

@pepite

C'est normale ce n'est pas le bon en-tête que j'ai mis pour l'exemple

Mai je confirmer le valse de mon detecteur est bien présent 277 value

Posté(e)

ah ouiii..ce serait plus simple avec les bonnes infos hihih ;-)

 

ton local lampetimer1 et ton RestartTask n'ont pas le même nom ;-)  : RestartTask lampetimer

  • Upvote 1
Posté(e)

salut @pepite

 

voici le code :  Detection ---> allumage de la lampe salon et extinction dans 2mm et allumage du RGBW dans 1mm et extinction du RGBW dans 3mm

 

la lampe salon doit s’éteindre 1mm après le RGBW pour ne pas rester dans le noir 

  • Detection si RGBW OFF et Lampe salon OFF alors commande off1
  • Detection si RGBW=OFF et Lampe salon=ON Acommande off2
  • Detection si RGBW=ON et Lampe salon=ON Acommande off3
  • Detection si RGBW=ON et Lampe salon=OFF Acommande off4
  ---- Detection   si  RGBW et Lampe salon OFF alors commande off1
  local off1 = (id["DETECTEUR_MOUVE"]), {"value", "RGBW", "0"}, {"value", "LAMPE_SALON", "0"}
  ---- Detection   si  RGBW=OFF   et Lampe salon=ON  Acommande off2 
  local off2 = (id["DETECTEUR_MOUVE"]), {"value", "RGBW", "0"}, {"value", "LAMPE_SALON", "1"}
  ---- Detection   si  RGBW=ON   et Lampe salon=ON  Acommande off3 
  local off3 = (id["DETECTEUR_MOUVE"]), {"value", "RGBW", "99"}, {"value", "LAMPE_SALON", "1"}
  ---- Detection   si  RGBW=ON   et Lampe salon=OFF  Acommande off4 
  local off4 = (id["DETECTEUR_MOUVE"]), {"value", "RGBW", "99"}, {"value", "LAMPE_SALON", "0"} 
  
  ---- Commande n1
  GEA.add({off1} , -1, "", {{"turnOn", id["LAMPE_SALON"]}, {"RestartTask", lampetimer1}})
  ----Commande n2 
  GEA.add({off2} , -1, "", {{"StopTask", lampetimer1}, {"StopTask", lampetimer2}, {"StopTask", lampetimer3}, {"RestartTask", lampetimer4}})   
  ----Commande n3
  GEA.add({off3} , -1, "", {{"turnOff", id["RGBW"]}, {"StopTask", lampetimer4}, {"StopTask", lampetimer5}, {"StopTask", lampetimer6}, {"RestartTask", lampetimer7}})
  ----Commande n4
  GEA.add({off4} , -1, "", {{"turnOff", id["RGBW"]}, {"StopTask", lampetimer7}, {"StopTask", lampetimer8}, {"StopTask", lampetimer9}, {"turnOn", id["LAMPE_SALON"]}, {"RestartTask", lampetimer10}})

----actionneur n1
  local lampetimer1 = GEA.add(true , 2*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"RestartTask", lampetimer2}})
  local lampetimer2 = GEA.add(true , 1*60, "", {{"turnOn", id["RGBW"]}, {"RGBW", 36, 12, 255, 99}, {"RestartTask", lampetimer3}}) 
  local lampetimer3 = GEA.add(true , 3*60, "", {{"turnOff", id["RGBW"]}})
  
 ---actionneur 2 
  local lampetimer4 = GEA.add(true , 2*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"RestartTask", lampetimer5}})
  local lampetimer5 = GEA.add(true , 1*60, "", {{"turnOn", id["RGBW"]}, {"RGBW", 36, 12, 255, 99}, {"RestartTask", lampetimer6}}) 
  local lampetimer6 = GEA.add(true , 3*60, "", {{"turnOff", id["RGBW"]}})
  
----actionneur 3  
  local lampetimer7 = GEA.add(true , 2*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"RestartTask", lampetimer8}})
  local lampetimer8 = GEA.add(true , 1*60, "", {{"turnOn", id["RGBW"]}, {"RGBW", 36, 12, 255, 99}, {"RestartTask", lampetimer9}}) 
  local lampetimer9 = GEA.add(true , 3*60, "", {{"turnOff", id["RGBW"]}})
  
  
 ----actionneur 4
  local lampetimer10 = GEA.add(true , 2*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"RestartTask", lampetimer11}})
  local lampetimer11 = GEA.add(true , 1*60, "", {{"turnOn", id["RGBW"]}, {"RGBW", 36, 12, 255, 99}, {"RestartTask", lampetimer12}}) 
  local lampetimer12 = GEA.add(true , 3*60, "", {{"turnOff", id["RGBW"]}})
Posté(e)

Bonsoir sebcbien,

 

Désolé de pas avoir répondu avant mais pas trop le tps en ce moment.

 

Pour résumer cela fonctionne de temps en temps la lumière dim à  34% alors que je suis dans la cuisine mais ré-allume les spotes de la cuisine peut de temps après. Je pense que je dois encore diminuer le paramètre 1.

 

Pour répondre à  ta question pour la config avec l’Å“il de fibaro et après un mois de test ou presque.

 

Config de l'oeil:

 

Paramètre 1 : 10

Paramètre 2 : 10

Paramètre 3 : 2 impultions

Paramètre 4 : 12s

Paramètre 6 : 10s

 

Pour GEA je suis en version 5.4 et es lignes sont les suivantes:

 -- Si déjà  Allumé, Re-Allumage à  65% dès que détection mouvement sauf si module déjà  a + de 64% (économie Z-Wave)
GEA.add({id["D_MOUV_SALON"],{"Value+", id["SPOT_CUISINE"], 1},{"Value-", id["SPOT_CUISINE"],64}}, -1, "",{{"Value", id["SPOT_CUISINE"], 65}})
    -- Après 10min on dimme la lampe à  34% si pas de mouvement 
local malampesam = GEA.add({"Value+", id["SPOT_CUISINE"],64}, 10*60, "",{{"Value", id["SPOT_CUISINE"], 34},{"Repeat"}})
-- Après 3 min on met la lampe à  65% (prète pour prochain allumage) puis on éteint, uniquement si la lampe est entre 1 et 35 
local malampesamdim = GEA.add({{"Value-", id["SPOT_CUISINE"],35},{"Value+", id["SPOT_CUISINE"], 1}}, 3*60,"",{{"Value", id["SPOT_CUISINE"], 65},{"Function", function() fibaro:sleep(300) end},{"turnOff"}},{"Repeat"})
    -- Relance des tâches en cas de détection pendant 30 secondes et si la lampe est allumée (économise GEA)
GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, 30, "", {{"RestartTask", malampesam},{"RestartTask", malampesamdim},{"Repeat"}})   
-- Relance des tâches en cas de détection si la lampe est allumée (économise GEA)
GEA.add({{id["D_MOUV_SALON"]},{"Value+", id["SPOT_CUISINE"], 1}}, -1, "", {{"RestartTask", malampesam},{"RestartTask", malampesamdim}}) 
  

J'espère que ça peut aider des gens ce sera ma minuscule contribution.

 

Encore un grand merci a toi sebcbien steven et pepite 

 

Je me suis acheté un oeil pour ma sdb et voici également ma config qui fonctionne:

 

Paramètre 1 : 8

Paramètre 2 : 15

Paramètre 3 : 1 impultions

Paramètre 4 : 12s

Paramètre 6 : 30s

-------------------- SDB ----------------------
  -- la nuit allume à  10% RGBW pendant 2m puis prépare à  200 et éteint (pour allumage manuel)   
  GEA.add({id2["SDB_MVTZ"],{"Value", id2["RGBW_DRESSING_SDB"],0},estNotHouse_Manuel}, -1, "",{{"Time", "Sunset-45", "Sunrise+45"},{"RGB", id2["RGBW_DRESSING_SDB"], 0, 0, 0, 10}})
  local malampesdb = GEA.add(true, 2*60, "",{{"RGB", id2["RGBW_DRESSING_SDB"], 0, 0, 0, 200},{"Function", function() fibaro:sleep(300) end},{"turnOff", id2["RGBW_DRESSING_SDB"]}})
  GEA.add(id2["SDB_MVTZ"], -1, "", {{"RestartTask", malampesdb}})
  -- relance en cas de mouvement continu (blindtime)
  GEA.add(id2["SDB_MVTZ"], 60, "", {{"RestartTask", malampesdb},{"Repeat"}})
----------------------------------------------- 

 

Posté(e) (modifié)

@971jmd

 

Il fonctionne ton code ?

Je n'ai pas encore lu tout ton code, mais il faudrait que tu mettes tes actionneurs avant tes commandes.

Il faut declarer tes variables "local" avant de pouvoir les appeler avec les RestartTask ou StopTask

 

Dans tes lampetimerX :

local lampetimer1 = GEA.add(true , 2*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"RestartTask", lampetimer2}})
local lampetimer2 = GEA.add(true , 1*60, "", {{"turnOn", id["RGBW"]}, {"RGBW", 36, 12, 255, 99}, {"RestartTask", lampetimer3}})

Dans lampetimer1 tu appelles lampetimer2 qui est déclaré après..

Dans lampetimer2, tu appelles lampetimer3 qui est aussi déclaré après..et ainsi de suite..

 

GEA lit ligne par ligne.

Pour que l'on puisse t'aider et tenter de debugger, il faut que tu essaies de remettre ton code en ORDRE ;-) avec les bonnes syntaxes et bons usages.

 

tu connais le wiki de GEA ? a mettre dans les favoris ;-) Ca donne de très très bonnes infos

https://gea.piccand.me/doku.php/start

 

 

tu as des erreurs de Syntaxe :

{"turnOn", id["RGBW"]}, {"RGBW", 36, 12, 255, 99}

Pour allumer le RGBW, inutile de mettre le turnOn, seule l'OPTION "RGB" et non "RGBW" suffit.

 

COURAGE ca va le faire :60: :60:

Modifié par pepite
  • Upvote 1
Posté(e)

Autant pour moi... petit retour de mon WE de recherche pourquoi le restarttask ne fonctionne pas.

Et bien, je me suis trompé de lampe.

Le restart fonctionne bien sur la lampe du bureau, alors que j'avais en tête la lampe des escaliers qui montent au bureau, sachant que je souhaite le restart sur celle-ci et non l'autre.

Bref ça marche bien et ce petit soucis m'a permis de comprendre encore mieux le fonctionnement de GEA

Posté(e)

salut  @ pepite 

le code fonctionne à  50% et subit une cure amaigrissement ;)  

 

si détection n1 :

  • la lampe salon s'allume
  • le RGBW s'allume   (1mm avant la lampe salon)
  • la lampe salon s'éteint   (1mm après la lampe salon)
  • le RGB s'éteint 

mai le processus fonctionne qu'un fois

 

j'ai essayer de mettre de {"Repeat"}  toujours pareille 

 ---- Detection n1   si  RGBW et Lampe salon OFF alors commande off1
  local off1 = (id["DETECTEUR_MOUVE"]), {"value", "RGBW", "0"}, {"value", "LAMPE_SALON", "0"}
  ---- Detection n2   si  RGBW=OFF   et Lampe salon=ON  Acommande off2 
  local off2 = (id["DETECTEUR_MOUVE"]), {"value", "RGBW", "0"}, {"value", "LAMPE_SALON", "1"}
  ---- Detection n3   si  RGBW=ON   et Lampe salon=ON  Acommande off3 
  local off3 = (id["DETECTEUR_MOUVE"]), {"value", "RGBW", "99"}, {"value", "LAMPE_SALON", "1"}
  ---- Detection n4   si  RGBW=ON   et Lampe salon=OFF  Acommande off4 
  local off4 = (id["DETECTEUR_MOUVE"]), {"value", "RGBW", "99"}, {"value", "LAMPE_SALON", "0"} 
  
  
local lampetimer1 = GEA.add(true , 2*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"RestartTask", lampetimer2}})
local lampetimer2 = GEA.add(true , 1*60, "", {{"turnOn", id["RGBW"]}, {"RGBW", 36, 12, 255, 99}, {"RestartTask", lampetimer3}})
local lampetimer3 = GEA.add(true , 3*60, "", {{"turnOff", id["RGBW"]}})
  
  
  ---- Commande n1
  ---- si la lampe salon et rgbw OFF
  GEA.add({off1} , -1, "", {{"turnOn", id["LAMPE_SALON"]}, {"RestartTask", lampetimer1}})
  ----- si la lamppe salon ON et rgbw OFF
  GEA.add({off2} , -1, "", {{"RestartTask", lampetimer1}})
  ---- si Lampe salon ON et RGBW ON
  GEA.add({off3} , -1, "", {{"turnOff", id["RGBW"]}, {"RestartTask", lampetimer1}})
  ------ si la lampe salon OFF  et rgbw  ON
  GEA.add({off4} , -1, "", {{"turnOff", id["RGBW"]}, {"RestartTask", lampetimer1}})
  
Posté(e)

@971jmd

 

Ah oui, il maigrit ;-)

 

Si ca ne le fait qu'une fois (ca prouve que cela fonctionne déjà  comme tu le souhaites ;-)) c'est bien un Repeat qu'il faut mettre, mets le à  la fin de local lampetimer1,

 

Ceci ne s'ecrit pas comme ceci :

local lampetimer2 = GEA.add(true , 1*60, "", {{"turnOn", id["RGBW"]}, {"RGBW", 36, 12, 255, 99}, {"RestartTask", lampetimer3}})

Mais comme cela :

local lampetimer2 = GEA.add(true , 1*60, "", {{"RGB", 36, 12, 255, 99}, {"RestartTask", lampetimer3}})
Posté(e)

@ pepite 

 

je n'arrive pas a trouver la bonne syntaxe 

local detec1 = GEA.add(id["DETECTEUR_MOUVE"], {"value", "RGBW", "0"}, {"value", "LAMPE_SALON", "0"} , -1,........

Posté(e)

Essaye ça...Les conditions doivent être réunies entre { }

local detec1 = GEA.add({id["DETECTEUR_MOUVE"], {"value", "RGBW", "0"}, {"value", "LAMPE_SALON", "0"}} , -1,........
×
×
  • Créer...