HANSOLO Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 bonjour messieurs, @hansolo, tu as tout a fait raison pour les extinctions avec detecteur et ca fait une ligne de moins je n'ai pas de detecteur de porte mais si tu fermes la porte et que tu es dans ton cellier, la lumiere s eteint ? pour ton entree, pourquoi ne pas eteindre sur la duree de lum_couloir ? c 'est pour moi ca donne un autre point de vue et c'st bon pour la tete ;-) C'est pour ça que je précise tout dépend de la configuration des pièces, mon cellier est trop petit (et trop remplit) pour pouvoir entrer dedans et fermer la porte. (c'est un peu le défaut des demandes sur le forum, on a rarement le contexte) Pour mon entrée, le fait d'utiliser la durée sur la variable entrée me permet de bien dissocier le fonctionnement avec le détecteur d'ouverture du fonctionnement avec les boutons poussoir. Si j’éteins en fonction de la durée d'allumage, les lumières s'éteindraient au bout de la durée définie même en utilisant les BP, ce n'est pas ce que je veux. Mon cahier des charges: - allumer la lumière dés l'ouverture de la porte (pratique quand on rentre). - éteindre au bout d'un moment (donc si je sors et que j'oublie d'éteindre, la lumière s'éteindra au bout des 5 mn) - gestion normale par les BP. - si j'ouvre la porte et discute plus de 5 mn, la lumière s'éteind mais pas grave j'ai un BP juste à coté (pour les rares cas)
Peter Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 cela fonctionne bien mieux avec le bon nom de module maintenant j'essai de mettre la variable globale Jour_Nuit a jour pour tester et si ca marche elle sera a nuit pour les declenchement pouvez vous controler ce code c'est celui de hansolo car pas d'erreure dans le debug mais il ne fonctionne pas GEA.add( {{id["DETECTEUR_SCELLIER"], {"Global", "Jour_Nuit", "Jour"}}}, -1, "", {{"turnOn", id["LUM_SCELLIER_"]}}) --Extinction lumière cellier si pas de mvt durant 3 mn GEA.add( id["DETECTEUR_SCELLIER"], 40, "", {{"turnOff", id["LUM_SCELLIER_"]}}) je vous en remercie d'avance
HANSOLO Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 (modifié) GEA.add( {{id["DETECTEUR_SCELLIER"]}, {"Global", "Jour_Nuit", "Jour"}}, -1, "", {{"turnOn", id["LUM_SCELLIER_"]}}) --Extinction lumière cellier si pas de mvt durant 3 mn GEA.add( id["DETECTEUR_SCELLIER"], 40, "", {{"Inverse"},{"turnOff", id["LUM_SCELLIER_"]}}) Une accolade mal placée dans le première ligne (il en manquait une dans le code que j'ai proposé, j'ai corrigé) Et oubli de l'option Inverse dans la seconde ligne. (qui inverse la valeur de la première condition) Modifié le 24 octobre 2015 par HANSOLO
Peter Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 merci a toi je teste donct cela doit etre correcte GEA.add( {{id["DETECTEUR_SCELLIER"]}, {"Global", "Jour_Nuit", "Jour"}}, -1, "", {{"turnOn", id["LUM_SCELLIER_"]}}) --Extinction lumière cellier si pas de mvt durant 3 mn GEA.add( id["DETECTEUR_SCELLIER"], 40, "", {{"turnOff", id["LUM_SCELLIER_"]}})
Peter Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 @hansolo il te manque " sur le poste de 12h40 sue le Inverse
Peter Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 le code si dessus post de 12h44 ne fonctionne pas a l'allumage mais fonctionne sur l'extinction seulement et celui la fonctionne sur les 2 mais il me faut la variable globale Jour_Nuit -- LUMIERES 1 ok fonctionne GEA.add( id["DETECTEUR_SCELLIER"], -1, "", {{"turnOn", id["LUM_SCELLIER_"]}}) -- eteindre la lampe plus de detection pdt 1 mins GEA.add( id["DETECTEUR_SCELLIER"], 1*60, "", {{"Inverse"}, {"turnOff", id["LUM_SCELLIER_"]}})
pepite Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 @Hansolo, oui tout compris, c'est vrai que devrait avoir plus d'infos sur le cahier des charges ;-) ca nous permettrait a tous de faire ou de proposer le code le plus adequat ;-) Avce GEA tu peux gerer tout de meme l'allumage manuel avec les BP en faisant un StopTask en déclenchement instantané puis un RestartTask dans la ligne d'allumage. GEA.add(id["lumiere"], -1, "", {{"StopTask", variable}}) @petermoto comme ceci, attention à la syntaxe tu mets trop d'accolade ;-) et pour tester il ne faut pas modifier la variable manuellement, cela ne fonctionne pas. -- LUMIERES 1 ok fonctionne GEA.add({id["DETECTEUR_SCELLIER"], {"Global", "Jour_Nuit", "Jour"}}, -1, "", {{"turnOn", id["LUM_SCELLIER_"]}}) -- eteindre la lampe plus de detection pdt 1 mins GEA.add( id["DETECTEUR_SCELLIER"], 1*60, "", {{"Inverse"}, {"turnOff", id["LUM_SCELLIER_"]}})
Peter Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 @ pepite merci teste en cour ............. pour les variables je savais merci du rapelle hansolo me disait d'enlever le "Inverse" (qui inverse la valeur de la première condition) si j'ai bien compris cela inverse le turnOn de la 1er ligne? comfirmes tu qu'il faut l'enlever c'est pas évident de comprendre le schema de fonctionnement de Gea surtout la syntax d'accolade, parenthèse, ect mais c'est quand meme un peut plus facile que le lua
HANSOLO Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 Je n'ai jamais dit qu'il fallait enlever le Inverse, j'ai tenté d'expliquer le pourquoi du Inverse.
Peter Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 désoler @hansolo au temps pour moi je n'avais pas compris que tu expliquer la fonction du inverse @PEPITE ET @HANSOLO Alors resultat ca marche tres bien merci a vous deux pour tout ce temps passer a m'aidé j'ai plus cas viré mes 8 scènes qui gére mes lumières avec détecteur de mouvements et a continué d'explorer le potentiel de GEA
kioneoranga Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 Bonjour aux experts Je reviens vers vous avec une question précédemment posée voici quelques mois mais que je n'arrive toujours pas à faire fonctionner comme je souhaiterais Je souhaite que mes lumières de couloir s'allume pour 1 minute si le détecteur voit une personne Cependant je voudrais que les lumières restent allumées lorsque j'appuie sur l'un des boutons poussoir (5min). Si j'appuie sur un bouton, les lumières s'allument mais lorsque l'oeil détecte une personne je suis parti pour un compte à rebourt de 1 min et non pour 5 min! Le module de commande de mes lumières est monté comme un télérupteur Voici les lignes de commande que j'essaies (Remarque j'ai mis des msg push pour identifier le mécanisme) local ExtinctionCouloir1 = GEA.add({id["LAMPE_TELERUPTEUR_C1"],AutoLampeCouloir1}, 1*60, "Execution extinction couloir", {{"Portable", 384},{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}}) GEA.add({id["DETEC_COULOIR1"],AutoLampeCouloir1,AlarmOff}, -1, "Déclenchement auto et restart compteur 1min", {{"Portable", 384},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]},{"RestartTask", ExtinctionCouloir1}}) GEA.add({id["LAMPE_TELERUPTEUR_C1"],{"Value", id["LAMPE_TELERUPTEUR_C1"],1}}, 5*60, "Arret au bout de 5min", {{"Portable", 384},{"Global", "LAMPE_COULOIR1", "AUTO"},{"turnOff"}}) Merci de votre aide.
HANSOLO Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 Il faut pouvoir différencier l'allumage de la lampe par le détecteur de mouvement de par le bouton poussoir. Par les sceneactivation (si le module gérant les lampes le permet, toujours une histoire de contexte), tu peux mettre à jour une variable locale qui te permettrait d'inhiber la partie détection et extinction au bout d'1 mn, et une dernière ligne pour éteindre au bout de 5 mn et qui remet la variable locale à sa valeur d'origine. (Et sans RetartTask mais un Inverse pour la partie extinction si pas de mvt)
sebcbien Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 L'autre solution est de stocker dans le dimmer l'état manuel ou automatique.Par exemple: 99% si manuel. 98% si automatique.Ensuite dans gea utiliser pour chaque méthode une condition (99% ou 98%) pour exécuter un compte àrebours d'une minute ou de 5 minutes.Va voir dans le showroom gea (dans ma signature) j'utilise ça pour ma Sam et pour mon garageSent from my Note4
pepite Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 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"]}})
971jmd Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 (modifié) bonjour a tous voici un petit code que j'ai réaliser permettant de dissocier l’interrupteur du détecteur ligne 4: la détection allume la lampe et active la variable AUTO a 1 et active lampetimer... local lampetimer = GEA.add({{"Global", "auto", "1"}, {"Value", id["LAMPE_SALON"], 1}} , 1*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"Global", "auto", "0"}}) GEA.add({"Global", "jour_nuit", "1"}, id["DETECTEUR_MOUVE"], -1, "", {{"turnOn", id["LAMPE_SALON"]}, {"Global", "auto", "1"}, {"RestartTask", lampetimer}}) Modifié le 24 octobre 2015 par 971jmd
HANSOLO Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 Tu as testé? Pour moi dans la méthode 1 la dernière ligne va se déclencher lors de l'allumage manuel ou via détection de mouvement. Ta condition est "la lampe est allumée?" Pas "j'ai appuyé sur le BP?"
971jmd Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 oui mai j'ai oublier de rajouter la global Jour_nuit si jour_nuit = 1 active détection si jour_nuit = 0 pas de détection
pepite Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 Idem pour moi, enfin ce que j'en comprends, dans ta 2eme ligne c'est le passage de ta variable Jour_Nuit à1 qui est ton declencheur et non ton detecteur .. Il faut que tu les inverses ;-)
sebcbien Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 @pepite: pas de fausse modestie stp ! ;-) Voici le code pour ma lampe de garage, avec explications: Ici pour prévenir de l'extinction imminente, je fais clignoter les lampes une fois (pour ne pas me retrouver dans le noir pendant que je suis occupé à forer dans un coin) Je les fait clignoter au lieu de les dimmer car ce sont les tubes TL que je ne peux pas dimmer (ça ne se voit pas ou ça commence à déconner à basses valeurs). Mon script du showroom sam, lui dimme les lampes pour prévenir de l'extinction imminente A vérifier, mais en relisant un peu, le repeat de la ligne 20 me semble inutile vu que c'est un -1 (mais ça peut être utile avec un oeil fibaro pour le biind time) -----------------LAMPE GARAGE------------------ -- surveillance Lampe Garage: GEA.add(id2["GARAGE"], 180*60, "La Lampe du garage est Allumée depuis #duration# à #time#", {{"MaxTime", 8},{"Repeat"}}) -- Cas d'utilisation et besoins: -- Besoin de longues durées d'allumage via action manuelle (2h45). -- Via interupteur manuel LAMPE_GARAGE -- Allumage de la lumière manuellement (dimmer à 99%, via double click ou dernière valeur d'extinction) -- On clignotte la lampe après 1h30 et on set le dimer à 97% (passe la main au script d'extinction et de détection de mouvement) -- Dans tous les cas, après un clignottement, Un double click ramènera le dimmer à 99% et relancerait un cycle de 1h30 -- Garage était 2h45 à 99%, set 97% (Gea Mvt Garage) GEA.add({{"Value", id2["GARAGE"],99},estNotHouse_Manuel}, 165*60, "Garage 1H30 à 99%",{{"turnOff", id2["GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id2["GARAGE"], 98}}) -- Allumage Via DETECTEUR Mouvement GARAGE -- Allumage à 98% dès que détection mouvement. La 2e condition permet de ne pas renvoyer d'ordre d'allumage inutile GEA.add({id2["GARAGE_MVT"],{"Value", id2["GARAGE"], 0},estNotHouse_Manuel}, -1, "",{{"Value", id2["GARAGE"], 98}}) GEA.add({id2["GARAGE_MVT"],{"Value", id2["GARAGE"],97},estNotHouse_Manuel}, -1, "",{{"Value", id2["GARAGE"], 98}}) -- On clignotte la lampe après 7mn et on la passe à 97% ensuite on l'éteint après 5mn si toujours pas de mouvement local malampegarage = GEA.add({{"Value", id2["GARAGE"],98},estNotHouse_Manuel},7*60, "",{{"turnOff", id2["GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id2["GARAGE"], 97}}) -- A chaque detection de mouvement, reset du décompte de la tâche ci-dessus GEA.add({id2["GARAGE_MVT"],{"Value", id2["GARAGE"],98},estNotHouse_Manuel}, -1, "", {{"RestartTask", malampegarage},{"repeat"}}) -- Extinction Garage GEA.add({{"Value", id2["GARAGE"],97},estNotHouse_Manuel}, 5*60, "",{{"Value", id2["GARAGE"], 99},{"Function", function() fibaro:sleep(500) end},{"turnOff", id2["GARAGE"]}}) -----------------------------------------------
971jmd Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 GEA.add({"Global", "jour_nuit", "1"}, id["DETECTEUR_MOUVE"], -1, "", {{"turnOn", id["LAMPE_SALON"]}, {"Global", "auto", "1"}, {"RestartTask", lampetimer}}) Si jour_nuit = 1 et détection alors On lampe salon et passer la variable auto à 1 et lance l varibla local lampetimer si jour_nuit = 0 pas de détection local lampetimer = GEA.add({{"Global", "auto", "1"}, {"Value", id["LAMPE_SALON"], 1}} , 1*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"Global", "auto", "0"}}) si variable auto = 1 et value de lampe salon = 1 alors éteindre dans 1mm la lampe et repasser la variable auto à 0
pepite Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 pas de modestie @sebcbien, je t'assure que ce que tu codes est encore complique pour moi, mais ca vient ;-) @971jmd : je pense encore que tu devrais inverser ton detecteur et ta variable globale et j'ai l'impression qu'il manque des accolades pour tes conditions As tu testé ? Ca fonctionne ? peut-etre que je me trompe et qu'il est possible d'ecrire comme cela. GEA.add({id["DETECTEUR_MOUVE"], {"Global", "jour_nuit", "1"}}, -1, "", ....)
971jmd Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 voila c nikel tout fonctionne tester plusieur fois local lampetimer = GEA.add({{"Global", "auto", "1"}, {"Value", id["LAMPE_SALON"], 1}} , 1*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"Global", "auto", "0"}}) -----local nuit = {"Global", "jour_nuit", "1"} GEA.add({id["DETECTEUR_MOUVE"], {"Global", "jour_nuit", "1"}}, -1 , "", {{"turnOn", id["LAMPE_SALON"]}, {"Global", "auto", "1"}, {"RestartTask", lampetimer}})
971jmd Posté(e) le 24 octobre 2015 Signaler Posté(e) le 24 octobre 2015 et non un autre scène ma induit en erreur qui me dire a quoi comment fonctionne RestarTask o1", "1"}, {"RestartTask", lampetimer}}) lance une seul foi, je comprend pas
Messages recommandés