Aller au contenu

Allumage/extinction Lampe Avec Gea


elacombe

Messages recommandés

Bonjour,

 

Je n'arrive pas exécuter correctement une instance de GEA pour faire allumer une lampe avec une condition horaire : 

 

Mon idée est la suivante :

 

Entre le coucher du soleil -30 minutes et minuit (00:00), puis entre 6h00 et le lever du soleil + 30 minutes, je souhaite que ma lampe s'allume sans aucune autre condition (l'extinction se fera à  la main)

Je souhaite également qu'entre 00:00 et 06:00, elle s'allume sur détection de mouvement, puis qu'elle s'éteigne 2 minutes après si pas de détection

 

J'ai défini 2 variables locales : 

 

local soiretmatinentree = {"Time", "Sunset-30", "00:00", "6:00", "Sunrise+30"}  
local nuitentree = {"Time", "00:00", "06:00"}  
 
Pour l'allumage automatique la nuit sur détection, j'ai écrit ça, et ça marche :
 
GEA.add( id["Presence_Entree_1"], -1, "", {nuitentree,{ "turnOn", id["Lampe_Bureau_Entree"] }})  
GEA.add( id["Lampe_Bureau_Entree"], 2*60, "", {nuitentree, { "turnOff", id["Lampe_Bureau_Entree"] }, {"If" ,{{"Value-", id["Presence_Entree_1"] }}}})
 
 
Pour l'allumage les soirs et matins, j'ai écrit ça : 
 
GEA.add( id["Lampe_Bureau_Entree"], -1, "", {soiretmatinentree, { "turnOn", id["Lampe_Bureau_Entree"] }}) 
  
 
Mais il ne se passe rien dans ces horaires...et je n'ai pas de bugs dans le debut, GEA est en éxécution...
Qu'est-ce que j'ai loupé?
Est-ce que c'est la syntaxe de ma variable soiretmatinentree qui ne va pas?
que dois-je faire?
 
Merci de votre aide...
 
 
 

 

  • Upvote 3
Lien vers le commentaire
Partager sur d’autres sites

Pour l'allumage la nuit et le matin :

GEA.add(true, 1, "", {{"Time","Sunset - 30", "23:59"}, {"turnOn", id["Lampe_Bureau_Entree"]}})
GEA.add(true, 1, "", {{"Time","06:00", "SunRise + 30"}, {"turnOn", id["Lampe_Bureau_Entree"]}})

Pour l'allumage sur détection, c'est un peu plus complique, surtout pour la partie extection après 2 min si pas de mvt détecté. Je suppose que tu ne veux pas une extinction après 2 min et un réalésage si détection ?

Mais bon, commençons par la partie "simple".

GEA.add (id["Presence_Entree_1"], -1, "", {{"Time", "00:00", "05:59"}, {"turnOn", id["Lampe_Bureau_Entree"]}})
GEA.add (id["Lampe_Bureau_Entree"], 2*60, "", {{"Time", "00:00", "05:59"}, {"turnOff", id["Lampe_Bureau_Entree"]}})

regarde déjàça, et puis on l'améliorera s'il le faut

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Jojo, et merci pour le coup de main... :13:

 

Pour la partie allumage sur horaire, je viens de rentrer ces lignes et testerait cela dès ce soir...

Après réflexion, il faudrait améliorer ce script par une extinction de la lampe le matin après 8:15 (ou quand il fait vraiment jour) si ce n'est pas déjà  fait à  la main.

 

J'ai créé 2 variables locales : 

soirentree = {"Time", "Sunset-30", "23:59"}

matinentree = {"Time", "06:00", "Sunrise+30"}  

que j'ai mis directement dans le script :

 

GEA.add(true, 1, "", {soirentree, {"turnOn", id["Lampe_Bureau_Entree"]}})
GEA.add(true, 1, "", {matinentree, {"turnOn", id["Lampe_Bureau_Entree"]}})
 
est-ce que ça, ça pourrait coller pour éteindre ma lampe : 
GEA.add(false, 1, "", {matinentree, {"turnOff", id["Lampe_Bureau_Entree"]}})
 
Il suffirait alors que je règle correctement la valeur Sunrise+... pour arriver à  peu près à  un horaire correc...non?
 
Pour la partie automatique, l'objectif est que ça allume la lumière si quelqu'un se lève la nuit, puis que ça l'éteigne au bout de 2 minutes...mais il faut que ça la rallume si on passe à  nouveau devant (puis que ça la rééteigne)...et ainsi de suite...
Mon code avait l'air de fonctionner :
 
local nuitentree = {"Time", "00:01", "05:59"} 
GEA.add( id["Presence_Entree_1"], -1, "", {nuitentree,{ "turnOn", id["Lampe_Bureau_Entree"] }})  
GEA.add( id["Lampe_Bureau_Entree"], 2*60, "", {nuitentree, { "turnOff", id["Lampe_Bureau_Entree"] }, {"If" ,{{"Value-", id["Presence_Entree_1"] }}}}) 
 
Peut-être que la condition If n'est pas nécessaire et qu'elle est implicite?
 
 
 
 
Lien vers le commentaire
Partager sur d’autres sites

il ne faut plus utiliser les conditions if.

J'aime bien mettre les conditions en début.

Comme tu as créé des variables (nuitentree, soirentree, marinentee) (je n'ai jamais essayé, j'ai toujours mis en option, mais pourquoi pas), ces variables deviennent des conditions, et plus des options.

Donc ton code serait bon, SAUF qu'il faut mettre les variables dans les conditions et pas dans les options.

Théoriquement mon code devrait faire le travail que tu veux

Lien vers le commentaire
Partager sur d’autres sites

OK.

 

Pour finaliser la résolution de ce besoin d'aide, j'ai donc modifié mon code :

 

local soirentree = {"Time", "Sunset-30", "23:59"}  
local matinentree = {"Time", "06:00", "Sunrise+30"}  
local nuitentree = {"Time", "00:00", "05:59"}  

 

GEA.add( id["Presence_Entree_1"], -1, "", {nuitentree,{ "turnOn", id["Lampe_Bureau_Entree"] }})  

GEA.add( id["Lampe_Bureau_Entree"], 2*60, "", {nuitentree, { "turnOff", id["Lampe_Bureau_Entree"] }}) 
 
GEA.add(true, 1, "", {soirentree, {"turnOn", id["Lampe_Bureau_Entree"]}})
GEA.add(false, 1, "", {soirentree, {"turnOff", id["Lampe_Bureau_Entree"]}})
GEA.add(true, 1, "", {matinentree, {"turnOn", id["Lampe_Bureau_Entree"]}})
GEA.add(false, 1, "", {matinentree, {"turnOff", id["Lampe_Bureau_Entree"]}}) 
 
Sur détection la nuit, la lumière s'allume bien et s'éteint après 2 minutes...mais je ne suis pas sur qu'elle se rallume si je repasse une fois devant...Dois-je rajouter une condition de repeat, et comment? ou bien est-ce que cela fonctionne tel quel?
En revanche pour l'extinction des lumières sur horaire, une fois qu'elles ont été allumées, ça ne marche pas...la condition False ne fait pas éteindre les lumières en dehors de la plage horaire...Comment rendre possible cette condition d'extinction automatique après l'horaire? Faut-il remplacer le False par une condition de valeur supérieure à  l'heure?
 
Comment puis-je modifier cela pour faire ce que je souhaite?
 
Si Jojo me répond à  cela...on pourra fermer après...merci.
Lien vers le commentaire
Partager sur d’autres sites

je ne travaille jamais en mettant les option "Time" dans des variable, mais si ça fonctionne tant mieur.

Pour la détection nuit, il ne faut selon moi pas mettre de repeat.

 

Pour les conditions horaires, je ferais comme je te l'ai proposé plus haut, je ne comprends absolumant pas la condition false.

N'avait-tu pas dit que tu éteignais la lumière manuellement ?

 

P.S. utilise le bonton <> pour mettre ton code, c'est plus lisible

Lien vers le commentaire
Partager sur d’autres sites

Je viens de virer mes variables locales et mis les lignes de codes que tu me proposais : 

GEA.add( id["Presence_Entree_1"], -1, "", {{"Time", "00:01", "05:59"},{ "turnOn", id["Lampe_Bureau_Entree"] }})  
GEA.add( id["Lampe_Bureau_Entree"], 2*60, "", {{"Time", "00:01", "05:59"}, { "turnOff", id["Lampe_Bureau_Entree"] }})
GEA.add(true, 1, "", {{"Time", "Sunset-30", "23:59"}, {"turnOn", id["Lampe_Bureau_Entree"]}})
GEA.add(true, 1, "", {{"Time", "06:00", "Sunrise+30"}, {"turnOn", id["Lampe_Bureau_Entree"]}})

Je testerais que pour l'allumage la nuit, on a bien plusieurs cycle d'allumage/extinction si on se présente plusieurs fois la nuit.

 

Pour la plage de fonctionnement horaire, je l'éteindrais effectivement à  la main dans 98% des cas...mais vu que la scène s'exécute tous les jours, c'est un peu bête de laisser allumé la lumière toute la nuit si je ne suis pas là  (et que donc je ne peux pas éteindre à  la main).

L'idée est d'éteindre à  la main quand je vais me coucher entre 23:00 et minuit, mais si je ne suis pas là  ou que j'ai oublié d'éteindre il faut que ça puisse s'eteindre automatiquement...aussi bien le soir que le matin d'ailleurs.

Le seul fait de mettre en place une condition True n'implique pas qu'en dehors de ces horaires la lumières soit en l'inverse de la position actuelle, c'est à  dire sur turnOff...

Comment puis-je donc rajouter le code qui va bien pour éteindre automatiquement en cas d'absence ou d'oubli à  partir de minuit et après Sunrise+30?

Lien vers le commentaire
Partager sur d’autres sites

la condition True, sera toujours vrai (logique  :D ) donc cela veux dire que l'instruction GEA sera toujours exécutée, avec les contraintes des temps que tu auras mises dans les options.

 

Pour l'extinction automatique le soir ou le matin, le besoins ne me semble pas clair.

Car maintenant on allume la lumière à  Sunset-30 et à  6:00 (la fin de la période Time n'est pas importante ici, sauf si tu fais un redémarrage de ta box dans cet intervalle.

Pour gérer l'abosence, comment la box sait que tu est absent ? Via une variable ? Avec l'alarme qui est activée ? via ?? Alors ce qu'il faudrait faire, c'est ne pas allumer si tu es absent.

Idem si tu oublies. Comment la box sait que c'est un oublit. Car si on lui dit éteint la lumière après 10min, elle sera allumée automatiquement entre Sunset-30 et Sunset-20 et entre 6:00 et 6:10.

Ensuite, il faudra l'allumer manuellement, et elle pourrait s'éteindre automatiquement après 10 min.

 

Lorsque tout est ok comme ça, tu pourras essayer avec des variables

Lien vers le commentaire
Partager sur d’autres sites

Effectivement, je n'avais pas pensé à  tout cela...

On va essayer de simplifier. Si j'oublie, tans pis la lumière sera allumée la nuit...et je l'éteindrais le lendemain...

En revanche, quand je ne suis pas là , l'alarme est activée (et j'ai un retour d'état piloté par un module FGS car j'utilise une led à  mon entrée qui s'allume quand l'alarme est active.).

 

J'ai donc déclaré l'ID du statut d'alarme


%% properties
30 value

local id = {
Presence_Entree_1 = 18, 
Lampe_Bureau_Entree = 87,
Statut_Alarme = 30,}

GEA.add( id["Presence_Entree_1"], -1, "", {{"Time", "00:01", "05:59"},{ "turnOn", id["Lampe_Bureau_Entree"] }})  
GEA.add( id["Lampe_Bureau_Entree"], 2*60, "", {{"Time", "00:01", "05:59"}, { "turnOff", id["Lampe_Bureau_Entree"] }}) 

GEA.add(true, 1, "", {{"Time", "Sunset-30", "23:59"}, {"turnOn", id["Lampe_Bureau_Entree"]}})
GEA.add(true, 1, "", {{"Time", "06:00", "Sunrise+30"}, {"turnOn", id["Lampe_Bureau_Entree"]}})

le statut de l'alarme est mis à  on par une action turnOn sur le FGS qui allume la led et inversement.

 

Du coup, ce qui pourrait être super serait de ne pas lancer l'action sur horaire lorsque je ne suis pas là  et que l'alarme est active (quand le module Statut_Alarme à  on).

 

Il suffit que je rajoute cette condition, en même temps que la condition de temps, c'est à  dire que l'on lance l'action quand Statut_Alarme = off

 

est-ce que ça ressemblerait à  ça ?

%% properties
30 value

local id = {
Presence_Entree_1 = 18,
Lampe_Bureau_Entree = 87,
Statut_Alarme = 30,}

GEA.add( id["Presence_Entree_1"], -1, "", {{"Time", "00:01", "05:59"},{ "turnOn", id["Lampe_Bureau_Entree"] }})
GEA.add( id["Lampe_Bureau_Entree"], 2*60, "", {{"Time", "00:01", "05:59"}, { "turnOff", id["Lampe_Bureau_Entree"] }})

GEA.add(true, 1, "", {{"Time", "Sunset-30", "23:59"}, {{"Value-", id ["Statut_Alarme"], 1}, {"turnOn", id["Lampe_Bureau_Entree"]}})
GEA.add(true, 1, "", {{"Time", "06:00", "Sunrise+30"}, {"Value-", id ["Statut_Alarme"], 1}, {"turnOn", id["Lampe_Bureau_Entree"]}})

Lien vers le commentaire
Partager sur d’autres sites

beaucoup plus simple :

GEA.add(id ["Statut_Alarme"], 1, "", {{"Inverse"}, {"Time", "Sunset-30", "23:59"}, {"turnOn", id["Lampe_Bureau_Entree"]}})
GEA.add(id ["Statut_Alarme"], 1, "", {{"Inverse"}, {"Time", "06:00", "Sunrise+30"}, {"turnOn", id["Lampe_Bureau_Entree"]}})

d'abord les conditions, puis les actions/options

Lien vers le commentaire
Partager sur d’autres sites

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...