971jmd Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 (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é le 24 octobre 2015 par 971jmd
971jmd Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 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}})
kioneoranga Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 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.
sebcbien Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 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)
pepite Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 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
HANSOLO Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 Ca ne fonctionnera pas, tu détecte que la lampe est allumée, pas que tu utilise le BP. Mais bon j'abandonne ça fait 3 posts que j'essaye d'expliquer...
pepite Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 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.
HANSOLO Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 --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.
pepite Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 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 ?
HANSOLO Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 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.
971jmd Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 @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}})
pepite Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 @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
jojo Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 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
971jmd Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 @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
pepite Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 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 1
971jmd Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 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"]}})
sebcbien Posté(e) le 25 octobre 2015 Signaler Posté(e) le 25 octobre 2015 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"}}) -----------------------------------------------
pepite Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 (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: Modifié le 26 octobre 2015 par pepite 1
ced600f Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 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
ced600f Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 C'est ça quand on est pressé, on ne lit pas tout.... tsss
971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 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}})
pepite Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 @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}})
971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 @ 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,........
ced600f Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 Essaye ça...Les conditions doivent être réunies entre { } local detec1 = GEA.add({id["DETECTEUR_MOUVE"], {"value", "RGBW", "0"}, {"value", "LAMPE_SALON", "0"}} , -1,........
Messages recommandés