Aller au contenu

Messages recommandés

Posté(e)

Habitué des contraintes WAF ...sans capteur de présence ...point de salut

Tu vas comme moi il y a qqles temps, tourner en rond et tu auras toujours des cas qui n'iront pas.

Posté(e)

Prends un motion sensor et mets une condition du type :" quand plus personne dans le salon après 5mn ...éteindre"

Posté(e)

Oui mais tu peux jouer aussi avec la luminosité. ..et faire des scénarios plus complexes...et un regard admiratif de ta femme n'a pas de prix. ..non ?

Posté(e)

Je suis entrain de travailler sur ce problème qui est récurant. Je pense finir pour lundi (je suis pas làce weekend)

Posté(e)

Merci Steven ! :-)

 

Hansolo, tu veut dire à  la source du problème ?

Non, moi je garde la mienne, avec ses qualités et ses défauts ;-)

Posté(e)

La même question a été levée mais en lieu et place d'un interrupteur, il s'agissait d'un détecteur.

Un détection doit relancer le timer de l'allumage.

Le code est fini à80%, j'ai malheureusement besoin d'une variable global pour permettre la discussion entre les différentes instance de GEA. Je finis cela lundi et teste lundi soir. La nouvelle version sera disponible tard lundi ou mardi matin.

Posté(e)

Moi avec simplement une variable globale "GEA_Tasks", j'arrive :

 

1) Redémarrer/Suspendre/Stopper n'importe quel tache :

-- On éteint la lampe automatiquement après 30mn
local malampe = GEA.add(id_lampe, 30*60, "Eteindre après 30mn", {{"turnOff"}})
-- Si on appuie sur l'interrupteur, la tache ci-dessus repasse à  0mn et donc attend à  nouveau 30mn.
GEA.add(id_interrupter, -1, "", {{"RestartTask", malampe}})


-- Je veux être avisé de 2 détection maximum entre 7 et 9 heure
GEA.add(id_detecteur, -1, "Détection à  #time#", {{"MaxTime", 2},{"Time", "07:00", "09:00"}})


-- Stopper définitivement cette tache même si la lampe change d'état
GEA.add(id_lampe, 30*60, "Eteindre après 30mn", {{"turnOff"}, {"MaxTime", 1}})


-- Normalement ma lampe devrait s'éteindre après 30mn
local tacheEteindre = GEA.add(id_lamp, 30*60, "Eteindre après 30mn", {{"turnOff"}})
-- Un click sur mon interrupteur et je stop l'extinction
-- Deux click sur mon interrupteur et je relance l'extinction
GEA.add({"SceneActivation", id_interrupteur, 16}, -1, "", {{"StopTask", tacheEteindre}})
GEA.add({"SceneActivation", id_interrupteur, 24}, -1, "", {{"RestartTask", tacheEteindre}})

Et vous ?

Posté(e)

Version 3.80

  • [Nouveauté] Possibilité de stopper n'importe quel tâche {"StopTask", <id_task>}.
  • [Nouveauté] Possibilité de redémarrer n'importe quel tâche {"RestartTask", <id_task>}.
  • [Nouveauté] Possibilité de spécifier le nombre d’exécution d'une tâche {"MaxTime", <number>}.

[ATTENTION] Veuillez créer la variable globale GEA_Tasks

 

 

Exemple ici

  • Upvote 1
Posté(e)

Très intéressant le "StopTask" et le "ResumeTask" :)

 

Tu as donc réussi à  faire communiquer les taches immédiates et planifiées entre eux ?

Posté(e)

Oui mais en passant par une variable globale GEA_Tasks, ce que je ne voulais pas mais la demande devenait oppressante, j'ai donc cracké. TU vois par ta faute (entre autre), je suis au bord du burnout, je crack pour le moindre rien ;).

Posté(e)

J'ai hâte d'examiner ton code pour comprendre l'astuce que tu mis en place pour le passage de paramètres en utilisant une variable globale.

 

On pourra donc mettre en pause et redémarrer une tâche.

Pourra-t-on, dans une prochaine version, modifier une tâche par le même principe ?

 

Par exemple, la durée:

On peut imaginer une tâche qui éteint la lampe du salon toutes les 15mn en temps normal mais si on appuie sur l'interrupteur, cette tâche passe à  1h.

 

Qu'en penses-tu ?

Posté(e)

Bonsoir Steven,

 

Cela semble bien fonctionner (avec de petits laps de temps en tout cas.)

Dans l'exemple que tu nous as donné ci-dessous, à  la ligne 4 tu dis "si on appuye..."  mais c'est un cycle on/off qu'il faut faire.

Bref, ici je comprends l'utilité d'un détecteur qui permet de relancer la tâche sans devoir faire on/off

 

Maintenant, j'essaye de voir comment combiner ça avec la "notification de fin de durée" (dim de la lampe à  45% 10 minutes avant l'extinction)

 

Je cherche comment remettre la lampe à  75% (ou 100%) après la "notification"

 

une solution est de faire une notification de 1 minute puis remettre à  75%, et donc un cycle on/off à  ce moment permet de relancer la tâche et d'avoir la lumière à  la bonne intensité.

 

Voici mon script actuel de test:

 
local malampe = GEA.add( id["LAMPE_SAM"], 2*60, "Eteindre après 2mn", {{"turnOff"}})
  -- Si on appuie sur l'interrupteur, la tache ci-dessus repasse à  0mn et donc attend à  nouveau 2mn.
GEA.add( id["LAMPE_SAM"], -1, "", {{"RestartTask", malampe}})

avant j'avais ceci:

GEA.add( id["LAMPE_SAM"], 90*60, "SAM allumée depuis 1H 20", {{"Value", 45}})
GEA.add( id["LAMPE_SAM"], 100*60, "SAM extinction", {{"turnOff"}})

 

Posté(e)

Ha, Ha...Le "MaxTime" me donne des idées.... :)

Merci Steven...j'espère qu'il ne fera pas trop beau ce weekend car s'il fait trop beau je vais devoir jardiner et je n'aurais pas le temps de bricoler avec new_GEA  :huh:

Posté(e)

Ceci à  l'air de fonctionner:

local malampe = GEA.add( id["LAMPE_SAM"], 1*60, "Dim après 1mn", {{"Value", 45}})
local malampedim = GEA.add( id["LAMPE_SAM"], 2*60, "Eteindre après 2mn", {{"turnOff"}})
-- Si on appuie sur l'interrupteur, la tache ci-dessus repasse à  0mn et donc attend à  nouveau 30mn.
GEA.add( id["LAMPE_SAM"], -1, "", {{"RestartTask", malampe}})
GEA.add( id["LAMPE_SAM"], -1, "", {{"RestartTask", malampedim}})

avec un double click, pas besoin de faire on/off (mais la lampe va à  100% au  lieu de 75%)

 

not a big deal, je suis déjà  super content comme ça :-)

 

Merci Steven !

Posté(e)

@sebcbien

Pour éviter le double click, tu peux faire comme cela, cela devrait fonctionner.

local malampe = GEA.add( id["LAMPE_SAM"], 1*60, "Dim après 1mn", {{"Value", 45}})
local malampedim = GEA.add( id["LAMPE_SAM"], 2*60, "Eteindre après 2mn", {{"turnOff"}})
-- Si on appuie sur l'interrupteur, la tache ci-dessus repasse à  0mn et donc attend à  nouveau 30mn.
GEA.add( id["LAMPE_SAM"], -1, "", {{"RestartTask", malampe}, {"RestartTask", malampedim}})
GEA.add( id["LAMPE_SAM"], -1, "", {{"Inverse"}, {"turnOn"}, {"RestartTask", malampe}, {"RestartTask", malampedim}})

@Shyrka973

Je pense qu'il vaut mieux avoir deux taches différentes (une de 15mn, une de 1mn) et de jouer sur le stop, restart selon la circonstance.

Sinon, c'est très simple, si une action demande un RestartTask, je stock R[iD_TACHE] dans la variable global et je nettoie une fois traité, S[iD_TACHE] pour le stop. Recherche juste GEA.addOrRemove dans le code et GEA.isTask et tu auras tout. Les variables globales étant limitées à  222 caractères, je me suis arrêté à  une lettre pour identifier l'action. 

 

@JM13

Vient chez moi, tu auras tout le temps que tu veux pour faire du GEA, l’arrosage automatique n'a pas encore fonctionner cet été.

Le MaxTime vient de ta demande :)
Posté(e)

Merci Steven, mais ça ne marche pas.

L'appui sur l’interrupteur rallume bien la lampe mais le script rentre en boucle et la lampe reste à  45% indéfiniment et il n'y a plus moyen de l’éteindre manuellement.

L'autre problème c'est qu'appuyer une seule fois laisse la lampe à  45% au lieu de la remettre à  sa valeur de croisière à  75%.

 

pour ce dernier souci, j'ai modifié la dernière ligne en

GEA.add( id["LAMPE_SAM"], -1, "", {{"Inverse"},  {"Value", 75}, {"RestartTask", malampe}, {"RestartTask", malampedim}})

Je pense que quand GEA essaye de couper la lampe, la fonction inverse la rallume, et c'est reparti pour un tour à  45 %

×
×
  • Créer...