971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 j'ai déjà essayer ta proposition, mai toujours erreur
ced600f Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 @971jmg: Peux-tu mettre la ligne en entier ?
971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 local detec1 = GEA.add({id["DETECTEUR_MOUVE"], {"value", "RGBW", "0"}, {"value", "LAMPE_SALON", "0"}} , -1, "", {{"turnOn", id["LAMPE_SALON"]}})
Steven Posté(e) le 26 octobre 2015 Auteur Signaler Posté(e) le 26 octobre 2015 local detec1 = GEA.add({id["DETECTEUR_MOUVE"], {"value", ID["RGBW"], "0"}, {"value", ID["LAMPE_SALON"], "0"}} , -1, "", {{"turnOn", id["LAMPE_SALON"]}})
971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 non pas possible deux jour de combat avec ce code et il manque [ ] moi qui pensais que c'est la présence de ma femme qui me déconcentrait, mai c ma vue merci Steven et Pépite je teste le code 1
ced600f Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 Et rajoute les { } pour la condition: local detec1 = GEA.add({id["DETECTEUR_MOUVE"], {"value", ID["RGBW"], "0"}, {"value", ID["LAMPE_SALON"], "0"}} , -1, "", {{"turnOn", id["LAMPE_SALON"]}}) Edit: Oups, j'ai rien dit, ils sont déjà présents, je suis fatigué 2
971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 (modifié) voici le code mai rien ne fonctionne le RestartTask ne lance toujours pas lampetimer1 --[[ %% autostart lampetimer1 lampetimer2 lampetimer3 lampetimer4 %% properties 337 sceneActivation 204 sceneActivation 377 value 190 value 221 value 274 value 277 value %% globals jour_nuit --]] GEA.add({id["DETECTEUR_MOUVE"], {"value", id["RGBW"], "0"}, {"value", id["LAMPE_SALON"], "0"}} , -1, "ok", {{"RestartTask", lampetimer1}}) local lampetimer1 = GEA.add(true , -1, "lampetimer1", {{"turnOn", id["LAMPE_SALON"]}, {"RestartTask", lampetimer2}}) local lampetimer2 = GEA.add(true , 1*60, "lampetimer2", {{"turnOff", id["LAMPE_SALON"]}, {"RestartTask", lampetimer3}}) local lampetimer3 = GEA.add(true , 40, "lampetimer3", {{"turnOn", id["RGBW"]}, {"RGB", 36, 12, 255, 99}, {"RestartTask", lampetimer4}}) local lampetimer4 = GEA.add(true , 1*60, "off", {{"turnOff", id["RGBW"]}}) ou la ligne 2 mes si la lampe salon est = value=1 il lance la ligne 4 local detec1 = (id["DETECTEUR_MOUVE"]), {"value", id["RGBW"], "100"}, {"value", id["LAMPE_SALON"], "0"} GEA.add({detec1 }, -1, "lampetimer1", {{"turnOn", id["LAMPE_SALON"]}, {"RestartTask", lampetimer2}}) local lampetimer2 = GEA.add(true , 1*60, "lampetimer2", {{"turnOff", id["LAMPE_SALON"]}, {"RestartTask", lampetimer3}}) local lampetimer3 = GEA.add(true , 40, "lampetimer3", {{"turnOn", id["RGBW"]}, {"RGB", 36, 12, 255, 99}, {"RestartTask", lampetimer4}}) local lampetimer4 = GEA.add(true , 1*60, "off", {{"turnOff", id["RGBW"]}}) Modifié le 26 octobre 2015 par 971jmd
jojo Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 ! GEA est séquentiel, donc si tu fais un restartTask d'une tâche qui n'est pas encore définie '(ici lampetimer1) cela ne fonctionnera pas,
971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 (modifié) dans mon exemple : local detec1 = (id["DETECTEUR_MOUVE"]), {"value", id["RGBW"], "0"}, {"value", id["LAMPE_SALON"], "0"} GEA.add({detec1 }, -1, "lampetimer1", {{"turnOn", id["LAMPE_SALON"]}, {"RestartTask", lampetimer2}}) local lampetimer2 = GEA.add(true , 1*60, "lampetimer2", {{"turnOff", id["LAMPE_SALON"]}, {"RestartTask", lampetimer3}}) local lampetimer3 = GEA.add(true , 40, "lampetimer3", {{"turnOn", id["RGBW"]}, {"RGB", 36, 12, 255, 99}, {"RestartTask", lampetimer4}}) local lampetimer4 = GEA.add(true , 1*60, "off", {{"turnOff", id["RGBW"]}}) ca fonctionne si RGBW = 0 et lampe SALON = 0 et active ligne 4 la lampe s'allume et active lampetimer2 qui passe a OFF dans 1mm et active lampetimer3 qui allume le RGBW mai n'active pas lampetimer4 et le RGBW ne s'éteint pas Modifié le 26 octobre 2015 par 971jmd
jojo Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 pour ce code, as-tu essayé l'ordre des instructions comme suit ? local detec1 = (id["DETECTEUR_MOUVE"]), {"value", id["RGBW"], "0"}, {"value", id["LAMPE_SALON"], "0"} local lampetimer4 = GEA.add(true , 1*60, "off", {{"turnOff", id["RGBW"]}}) local lampetimer3 = GEA.add(true , 40, "lampetimer3", {{"turnOn", id["RGBW"]}, {"RGB", 36, 12, 255, 99}, {"RestartTask", lampetimer4}}) local lampetimer2 = GEA.add(true , 1*60, "lampetimer2", {{"turnOff", id["LAMPE_SALON"]}, {"RestartTask", lampetimer3}}) GEA.add({detec1 }, -1, "lampetimer1", {{"turnOn", id["LAMPE_SALON"]}, {"RestartTask", lampetimer2}})
971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 (modifié) oui mai le RGB ne s'éteint pas je n'arrive pas comprend comme fonctionne GEA dans exemple suivant, va t-il exécuter lampetimer2, lampetimer3 en meme temps ? GEA.add({detec1 }, -1, "lampetimer1", {{"turnOn", id["LAMPE_SALON"]}, {"RestartTask", lampetimer2}, {"RestartTask", lampetimer3}}) Modifié le 26 octobre 2015 par 971jmd
971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 j'abandonne trois jours sur un code Comment fonctionne : RestartTask ou StopTask ou NotStarted et impossible de d'activé un code en -1 local lampetimer1 = GEA.add(true , -1, "on", {{"turnOn", id["LAMPE_SALON"]}}) GEA.add(id["DETECTEUR_MOUVE"], -1, "detection", {{"RestartTask", lampetimer1}})
jojo Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 {“RestartTaskâ€, <id_tâche>} Redémarre une tâche selon son <id_tâche> {“StopTaskâ€, <id_tâche>} Stoppe une tâche selon son <id_tâche> {“NotStartedâ€} Empêche la tâche de démarrer automatiquement (voir RestartTask) la bible : https://gea.piccand.me/doku.php/syntaxe
jojo Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 dans la condition true, il ne faut pas mettre -1 mais 1 par exemple
971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 merci @jojo mai j'ai deja consulté le lien {“RestartTaskâ€, <id_tâche>} Redémarre une tâche selon son <id_tâche> {“StopTaskâ€, <id_tâche>} Stoppe une tâche selon son <id_tâche> {“NotStartedâ€} Empêche la tâche de démarrer automatiquement (voir RestartTask) mai je ne comprend toujours pas comment fonctionne j'ai fait le teste avec 1 mai la lampe ne allume pas (local lampetimer1 = GEA.add(true , 1, "on",..... local lampetimer1 = GEA.add(true , 1, "on", {{"turnOn", id["LAMPE_SALON"]}}) GEA.add(id["DETECTEUR_MOUVE"], -1, "detection", {{"RestartTask", lampetimer1}})
jojo Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 sorry, mais je n'ai pas suivi depuis le début. J'ai n peu de temps maintenant ;-) Quel est le scénario que tu veux faire UNIQUEMENT pour la LAMPE_SALON (il faut faire une chose àla fois)
971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 concernant la lampe salon c'est un exemple pour essayer de comprend comment fonctionne RestartTask je revient à ta proposition: a la détection le RestartTask lance RestartTask 2, 3, 4 en meme temps et c'est pas bon. le bon fonctionnement : si détection et que lampe salon et RGBW value=0 active lampetimer2 et lampetimer3 en meme temps(1) et lampetimer4 a la fin du processus de lampetimer3 (1) le RGBW doit s'allumer 1mm avant l'extinction de la lampe du salon... local detec1 = (id["DETECTEUR_MOUVE"]), {"value", id["RGBW"], "0"}, {"value", id["LAMPE_SALON"], "0"} local lampetimer4 = GEA.add(true , 1*60, "off", {{"turnOff", id["RGBW"]}}) local lampetimer3 = GEA.add(true , 40, "lampetimer3", {{"turnOn", id["RGBW"]}, {"RGB", 36, 12, 255, 99}, {"RestartTask", lampetimer4}}) local lampetimer2 = GEA.add(true , 1*60, "lampetimer2", {{"turnOff", id["LAMPE_SALON"]}, {"RestartTask", lampetimer3}}) GEA.add({detec1 }, -1, "lampetimer1", {{"turnOn", id["LAMPE_SALON"]}, {"RestartTask", lampetimer2}})
jojo Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 restartTask, StopTask, NotStarted. Une tâche est donc une action qui doit s'exécuter si une (ou plusieurs) condition(s) est (sont) remplie(s) durant un certain temps. Donc par défaut toutes les tâches sont Started. Mais avec NotStarted, on peut définir une tâche qui ne s'exécutera pas immédiatement, mais sous certaines conditions. Et donc on crée une tâche qui va vérifier ces conditions supplémentaires, et avec le RestartTask, on peut dire que cette tâche qui avait été mise "en pause"/"en attente" soit exécutée (avec les conditions de cette tâches...) Pour le SopTask, tu peux dire qu'une tâches ne doit plus être vérifiée si certaines autres conditions sont remplies. Pour qu'elle soient exécutée, il lui faudra un RestartTask. mais je ne comprend pas bien ce que tu veux faire si détection et que lampe salon et RGBW value=0 active lampetimer2 et la tâche "lampetimer2" va éteindre la lampe du salon après une minute, alors que la contions que tu as décrite dans ton scénario est que la lampe du salon soit à 0 (donc éteinte) ?? Si j'essaye de repriser ton besoin : "si plus de détection de mouvement pendant 1 min, allumer RGBW. et si toujours pas de mot pendant 1 min éteindre lampe salon et RGBW. Mais si met dans la minute, éteindre RGBW et laisser lampe salon allumée" ?
971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 (modifié) ---- Detection n1 si RGBW et Lampe salon OFF alors commande N1 local N1= (id["DETECTEUR_MOUVE"]), {"value", "[RGBW]", "0"}, {"value", "[LAMPE_SALON]", "0"} ---- Detection n2 si RGBW=OFF et Lampe salon=ON Acommande N2 local N2= (id["DETECTEUR_MOUVE"]), {"value", "[RGBW]", "0"}, {"value", "[LAMPE_SALON]", "1"} ---- Detection n3 si RGBW=ON et Lampe salon=ON Acommande N3 local N3= (id["DETECTEUR_MOUVE"]), {"value", "[RGBW]", "100"}, {"value", "[LAMPE_SALON]", "1"} ---- Detection n4 si RGBW=ON et Lampe salon=OFF Acommande N4 local N4= (id["DETECTEUR_MOUVE"]), {"value", "[RGBW]", "100"}, {"value", "[LAMPE_SALON]", "0"} ---- si Detection si RGBW et Lampe salon OFF alors commande N1 ---- si Detection si RGBW=OFF et Lampe salon=ON commande N2 ---- si Detection si RGBW=ON et Lampe salon=ON commande N3 ---- si Detection si RGBW=ON et Lampe salon=OFF commande N4 Jusque la pas de souci N1 = lampe salon ON et Off dans 3mm et RGB ON dans 2mm et Off dans 5mm ( la lampe salon et RGB ce croise sur 1mm, pour ne pas rester dans l’obscurité) N2 = relance le processue au debut.. N3 = éteindre RGB et relance le processue au debut.. N4 = éteindre RGB et relance le processue au debut.. Modifié le 26 octobre 2015 par 971jmd
pepite 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", id["RGBW"], "0"}, {"value", id["LAMPE_SALON"], "0"}} ---- Detection n2 si RGBW=OFF et Lampe salon=ON Acommande off2 local off2 = {id["DETECTEUR_MOUVE"], {"value", id["RGBW"], "0"}, {"value", id["LAMPE_SALON"], "1"}} ---- Detection n3 si RGBW=ON et Lampe salon=ON Acommande off3 local off3 = {id["DETECTEUR_MOUVE"], {"value", id["RGBW"], "99"}, {"value", id["LAMPE_SALON"], "1"}} ---- Detection n4 si RGBW=ON et Lampe salon=OFF Acommande off4 local off4 = {id["DETECTEUR_MOUVE"], {"value", id["RGBW"], "99"}, {"value", id["LAMPE_SALON"], "0"}} local lampetimer1 = GEA.add(true , 2*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"RestartTask", lampetimer2}}) local lampetimer2 = GEA.add(true , 1*60, "", {{"RGB", 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}}) @971jmd Tu ne lis pas tout ce qu'on te dit ;-) Ce code ci-dessus est dans le bon "ordre" et c'est toi qui l'avais posté mais dans ceux d'apres tu as tout remelangé ;-) je t'ai dit que GEA lisait ligne par ligne comme te l'a répété @jojo ;-) d'ou le sequentiel !! J'ai modifié le code ci-dessus : - accolades modifées pour tes conditions - nom des modules modifiés RGBW en id["RGBW"] - modif des RGBW en RGB pour l'allumage de ton RGBW et suppression de turnOn RGBW ;-) Je n'ai pas vérifié la logique mais ca resseble a ce dont on parle depuis le début, essaie Sauf si j'ai fait mon boulet, il ne doit plus ounpresque pas rester d'erreurs de syntaxe et de declaration de variables
jojo Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 pour te faire patienter, voici ce que j'ai fait pour la première condition local RGBWON = {"value", id["RGBW"], "1"} local RGBWOFF = {"value", id["RGBW"], "0"} local SALONON = {"value", id["LAMPE_SALON"], "1"} local SALONOFF = {"value", id["LAMPE_SALON"], "0"} GEA.add ({id["DETECTEUR_MOUVE"], RGBWOFF, SALONOFF}, -1, "N1-Salon ON", {{"turnOn", id["LAMPE_SALON"]}}) GEA.add (id["LAMPE_SALON"], 3*60, "N1 - lampe salon allumée depuis #duration#" -> OFF", {{"turnOff", id["LAMPE_SALON"]}}) GEA.add (id["LAMPE_SALON"], 2*60, "N1 - lampe salon allumée depuis #duration#" -> RGBWON", {{"RGB", id["RGBW"], 36, 12, 255, 99}}) GEA.add (RGBWON, 3*60, "N1 - RGBW allumé depuis #duration# -> RGBWOFF", {{"RGB", id["RGBW"], 0, 0, 0, 0}}) N.B. 1) je n'ai pas de module RGBW chez moi, donc je ne suis pas sà»r du test pour savoir s'il est allumé 2) je suppose que pour arrêter un RGBW il faut mettre tout à zéro et pas de turnOff (cfr 1)) Selon moi, la condition 2 ne doit rien faire, donc il ne faut pas la tester Je m'attaque aux N3 et N4
pepite Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 @jojo 971jmd dit que pour le RGBWON le value est de 99 et pour eteindre un RGBW, le turnOff fonctionne, je n'en ai pas non plus mais j'avaos posé la question un jour nickel pour la commande N1 'est exactement ce qu'il veut on attend N3 et N4 ;-) @971jmd, jojo se lance dans un code pour t'aider il ne devrait pas tarder à trouver la bonne soluce, tu peux lui faire confiance vérifie tout de même le tien ca semblait pas mal et tu l'as ecrit tout seul tu n'etais pas loin du but, c'est bon pour le moral ;-) 1
jojo Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 je n'ai pas regardé ce que Steven a fait, ça doit sà»rement être bon. Mais j'ai terminé ce que j'ai commencé. J'espère que c'est bon, car cela me parait beaucoup plus (trop ?) simple. tes conditions N3 et N4 sont les mêmes : si Détection et RGBW ON (on s'en fou de la Lampe Salon) alors stop RGBW. Donc voici mon code complet local RGBWON = {"value", id["RGBW"], "99"} local RGBWOFF = {"value", id["RGBW"], "0"} local SALONON = {"value", id["LAMPE_SALON"], "1"} local SALONOFF = {"value", id["LAMPE_SALON"], "0"} GEA.add ({id["DETECTEUR_MOUVE"], RGBWOFF, SALONOFF}, -1, "N1-Salon ON", {{"turnOn", id["LAMPE_SALON"]}}) GEA.add (id["LAMPE_SALON"], 3*60, "N1 - lampe salon allumée depuis #duration#" -> OFF", {{"turnOff", id["LAMPE_SALON"]}}) GEA.add (id["LAMPE_SALON"], 2*60, "N1 - lampe salon allumée depuis #duration#" -> RGBWON", {{"RGB", id["RGBW"], 36, 12, 255, 99}}) GEA.add (RGBWON, 3*60, "N1 - RGBW allumé depuis #duration# -> RGBWOFF", {{"RGB", id["RGBW"], 0, 0, 0, 0}}) GEA.add ({id["DETECTEUR_MOUVE"], RGBWON}, -1,"N3 & N4", {{"RGB", id["RGBW"], 0, 0, 0, 0}}) à l'à peut prêt de la remarque que j'ai faite sur le test du RGBW, ça devrait correspondre à ce que tu m'as décrit comme besoin 1
971jmd Posté(e) le 26 octobre 2015 Signaler Posté(e) le 26 octobre 2015 @ JOJO @ pepite merci de nouveau J'ai une erreur : "N1 - lampe salon allumée depuis #duration#" -> OFF" pour supprimer l’erreur : "N1 - lampe salon allumée depuis #duration#" je continu a tester le code
Messages recommandés