Aller au contenu

Recommended Posts

Tu as raison Steven mais j'étais parti pour "ne faire q'une fois" alors que là , je vais pouvoir aller beaucoup plus loin !!!  :D maintenant que GEA sait compter  :rolleyes:

 

Pour l'invit c'est sympa et noté :15:  ...mais si tu voyais la hauteur de ma pelouse...elle ressemble à  un champ de maà¯s ...je ne vais pas y couper....

Partager ce message


Lien à poster
Partager sur d’autres sites

En effet, je n'avais pas prévu la boucle :(

 

Sinon, tu peux utiliser les SceneActivation pour géré le simple click, double click, triple click, ... hold ...

Tu as un exemple des valeurs ici http://forum.fibaro.com/viewtopic.php?t=1387

Partager ce message


Lien à poster
Partager sur d’autres sites

@JM13

GEA savait déjà  compter mais en utilisant une variable globale

GEA.add({"Global-", "Compteur", 100}, 30, "Tant qu'on est inférieur à  100, on incrémente de 1", {{"Global", "Compteur", "inc+"}})
GEA.add(in_interrupteur, -1, "L'appui sur l'interrupteur reset le compteur", {{"Global", "Compteur", 0}}) 

Tu vois, avec un peu d'idée tordu, on arrive à  tout. Mais c'est pas agréable du tout de faire ainsi.Une variable par tâche n'est pas acceptable.

 

Pour la tondeuse, j'ai investi dans une tondeuse automatique, c'est cher, sà»rement pas rentable mais c'est vraiment agréable de ne plus avoir à  s'occuper de cela. Économiser 2 heures toutes les 2 semaines n'a pas de prix.

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour la tondeuse, j'ai investi dans une tondeuse automatique, c'est cher, sà»rement pas rentable mais c'est vraiment agréable de ne plus avoir à  s'occuper de cela. Économiser 2 heures toutes les 2 semaines n'a pas de prix.

 

J'en ai racheté une à  quelqu'un qui ne savais pas s'en servir.

Ca ne m'a pas couté cher, pas mal de temps quand même pour configurer tout nickel (avec même un peu de terraforming ;-) )

Mais maintenant, quel bonheur de voir son robot tondre en sirotant un pastis ... (alors que les voisins d'a côté se relaient pour tondre avec une vieille tondeuse qui ne démarre pas bien... mdr )

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon, ben malheureusement ce qui semblait marcher avec de petites durées ne fonctionn eplus avec des temps plus longs

 

exemple:

 

local malampe = GEA.add( id["LAMPE_SAM"], 5*60, "Dim après 5mn", {{"Value", 45}})
local malampedim = GEA.add( id["LAMPE_SAM"], 10*60, "Eteindre après 10mn", {{"turnOff"}})
GEA.add( id["LAMPE_SAM"], -1, "", {{"RestartTask", malampe}, {"RestartTask", malampedim}})

donne ceci:

 

allumage     à  X min

Dim 45%     à  X + 5 min

Off              a X + 5 min +10 min

 

A demain ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour vos conseils. ..ma "Todolist" est tellement longue que c'est mon banquier qui me freine

Pour la tondeuse, je suis convaincu mais mon terrain doit être un peu aménagé d'abord (petits arbustes, ...) mais ça reste une bonne idée de cadeau pour Noël (après une Sonos de plus )

Partager ce message


Lien à poster
Partager sur d’autres sites

Ahh clair, la tondeuse auto c'est le top. Et le mulching pour le gazon c'est le top au niveau santé !

Partager ce message


Lien à poster
Partager sur d’autres sites

Je confirme ce que dit Nico la tondeuse robot c'est le top ... terminé la corvée de la tonte et on peut passer plus de temps sur son installation domotique :P

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense avoir repéré un bug sur la 3.80.

Je vérifie et vous tiens informé.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je m'incruste dans la conversation "tondeuse auto" et pour pas polluer ici j'ai ouvert un nouveau sujet ici Robots Tondeuses, Retours D'expériences... Si vous avez 5 minutes ;) merci.

 

@Steven, alors c'est pour quand la V4 du GEA... ok je sors :lol:

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Version 3.81

  • [Correction]  {"StopTask", <id_task>},  {"RestartTask", <id_task>} et {"MaxTime", <number>} était issu d'une mauvaise implémentation effectuée avec les pieds.
  • [Nouveauté] Add {"Global!", <variable>, <value>} Pour vérifier qu'une variable globale ne soit pas égale à  la valeur.
  • [Nouveauté] Ajout de la variable #runs# dans les messages pour savoir le nombre de fois que la tâche a été exécutée.
  • [ATTENTION] Veuillez créer la variable globale GEA_Tasks

 

@Krikroff

On si rapproche dangereusement, mais j'aimerais justement faire coà¯ncider GEA v4 avec la v4 :)

La normalement, j'aurais du passer sur du 3.90 vu qu'il y a du nouveau mais bon c'est du petit nouveau donc je traîne les pieds jusqu'à  la v4.

 

@JM13, @sebcbien

En effet les stop et restart ne pouvait pas fonctionner puisque chaque fois qu'un déclenchement immédiat arrivait, il écrasait le contenu de la variable globale. Je ne sais pas quel est l'idiot qui avait pondu un code pareil, mais c'est vraiment une poire.

De plus, le MaxTime ne fonctionnait pas pour les déclenchement immédiat.

Bref, je vire l'idiot qui a fait cela et veuillez installer la nouvelle version :)

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven

 

J'ai une minuscule amélioration a te proposer:

J'ai de temps en temps ce message:

En cours : aucun traitement a effetuer

car GEA est activé par un ID qui n'a pas d'action prévu.

J'ai beaucoup d'ID utilisé en entête dans GEA et c'est un peu galère de retrouver lequel est en cause.

 

Peux -tu remplacer la ligne pour afficher comme ceci par exemple:

En cours : aucun traitement a effetuer pour ID:xx

 

Cela permettra de retrouver l'ID en cause rapidement pour le désactiver.

 

Souhait: Un jour, Fibaro permettra les commentaires pour les ID utilisés dans les entêtes des scènes ou, pourquoi pas, des alias pour ces ID.

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour faire suite à  précédent post, j'ai fait cette modif en remplaçant les lignes suivantes:

        if (#GEA.todo == 0) then
            GEA.log(GEA.translate[GEA.language]["RUN"], nil, GEA.translate[GEA.language]["NOTHING_TODO"], true)
            return false
        end

par celles-ci:

        if (#GEA.todo == 0) then
         if (GEA.source["type"] ~= "property") then
                GEA.log(GEA.translate[GEA.language]["RUN"], nil, GEA.translate[GEA.language]["NOTHING_TODO"], true)
         else
             GEA.log(GEA.translate[GEA.language]["RUN"], nil, GEA.translate[GEA.language]["NOTHING_TODOID"] .. GEA.source["deviceID"], true)
         end
            return false
        end

en déclarant plus haut dans le code:

        NOTHING_TODOID    = "aucun traitement a effectuer pour l'ID:",

et

        NOTHING_TODOID    = "nothing to do for ID:",

Partager ce message


Lien à poster
Partager sur d’autres sites

Moi aussi Steven, j'ai demande si possible..

A moins que ca soit dejà  possible mais j'ai pas vu :

 

A voir la possibilité l'ajouter un "sleep" entre 2 actions..

Exemple:

GEA.add(229, 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Repeat"}, {"Time", "21:00", "05:00"}, {"Program", 122, 5}, {"Global", "pushover", "La porte du garage est ouverte depuis plus de 10 minutes"}, {"VirtualDevice", 198, 1}, ICI LE SLEEP {"Global", "Karotz", "La porte du garage est ouverte depuis plus de 10 minutes"}, {"VirtualDevice", 282, 1}})

Partager ce message


Lien à poster
Partager sur d’autres sites

@Shyrka973

J'ai ajouté tes modifications dans ma version, ainsi la prochaine release contiendra tes modifications. Tu comprendras que je ne repost pas une nouvelle version maintenant car c'est assez douloureux, je chaque fois refaire une partie de la mise en page.

 

@moicphil

J'aime pas cela car un sleep dans ton code va automatiquement décaler tout les tâches suivantes. Imagine si tu mets un sleep de 30 secondes, c'est toute la chaîne qui va être complètement dans les choux. Maintenant si pour toi, c'est super important, remplace ton ICI LE SLEEP

par 

{"Function", function() fibaro:sleep(1000) end}

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven

 

Merci.

 

Je comprends car cette modif est vraiment mineure.

J'ai fait la modif sur ma version en attendant.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité chris6783

Belle évolution.

Petite suggestion : Pour le maxtime pourrait-on spécifier un laps de temps comme possible pour une période ? Une fois une tache exécutée elle ne peut pas se relancer pendant une durée de x secondes. Pour moi cela serait pratique pour le clignotement de mon voyant de portail mais je trouve cela utile pour du TTS sur détection pour éviter que la domotique ne se mette àpasser un message en boucle.

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est prévu, il te suffit de faire cela
 

local portail = GEA.add(id_portail, -1, "", {{"MaxTime", 1}})
-- On réactive tout les 60 secondes maximum
GEA.add(true, 60, "", {{"RestartTask", portail }})


Edit:
Mais le nombre de seconde le plus petit est celui de GEA.checkEvery .. soit par défaut 30 secondes.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour Steven,

Pour l'idiot, je lui pardonne, j'en connais un ici derrière son clavier qui n'a pas le 1/4 de ses compétences ;-)

 

J'ai installé la 3.81, mais il semble que ce soit le même problème.

voici le code:

(Je n'ai pas encore essayé de prolonger la durée)

 

local malampe = GEA.add( id["LAMPE_SAM"], 3*60, "Dim après 3mn", {{"Value", 45}})
local malampedim = GEA.add( id["LAMPE_SAM"], 6*60, "Eteindre après 6mn", {{"turnOff"}})
GEA.add( id["LAMPE_SAM"], -1, "", {{"RestartTask", malampe}, {"RestartTask", malampedim}})

le timing généré:

18h20:24 Allumage de la lampe

18h23:07 dim à  45 %                                jusqu'ici c'est ok

18h29:06 extinction                                   aurait dà» être à  18h25:07

 

le debug:

[DEBUG] 18:20:07: [ 54 | Salle a Manger ] Add Autostart : ajout de la tache pour 180 secondes (ID:5) [Value,45]
[DEBUG] 18:20:07: [ 54 | Salle a Manger ] Add Autostart : ajout de la tache pour 360 secondes (ID:6) [turnOff]
[DEBUG] 18:20:07: GEA Version 3.81 : en exécution...
[DEBUG] 18:20:24: [ 54 | Salle a Manger ] Add Property : ajout de la tache pour lancement instantané (ID:7) [RestartTask,5] [RestartTask,6]
[DEBUG] 18:20:24: GEA Version 3.81 : en exécution...
[DEBUG] 18:20:24: [ 54 | Salle a Manger ] sendActions : traitement des actions (ID:7) [RestartTask,5] [RestartTask,6]
[DEBUG] 18:20:24: [ 54 | Salle a Manger ] sendActions : !ACTION! : Restart 5 (ID:7) [RestartTask,5] [RestartTask,6]
[DEBUG] 18:20:24: [ 54 | Salle a Manger ] sendActions : !ACTION! : Restart 6 (ID:7) [RestartTask,5] [RestartTask,6]
[DEBUG] 18:20:32: GEA Version 3.81 : en exécution...
[DEBUG] 18:20:37: [ 54 | Salle a Manger ] Check : Redémarrage (ID:5) [Value,45]
[DEBUG] 18:20:37: [ 54 | Salle a Manger ] Check : Redémarrage (ID:6) [turnOff]
[DEBUG] 18:21:03: GEA Version 3.81 : en exécution...
[DEBUG] 18:23:07: [ 54 | Salle a Manger ] sendActions : traitement des actions (ID:5) [Value,45]
[DEBUG] 18:23:07: [ 54 | Salle a Manger ] sendActions : !ACTION! : setValue 45 (ID:5) [Value,45]
[DEBUG] 18:23:07: [ 54 | Salle a Manger ] sendActions : !ACTION! : sendPush Dim après 3mn (ID:5) [Value,45]
[DEBUG] 18:23:07: [ 54 | Salle a Manger ] Done : tache effectuée et suspendue (ID:5) [Value,45]
[DEBUG] 18:23:07: [ 54 | Salle a Manger ] Add Property : ajout de la tache pour lancement instantané (ID:7) [RestartTask,5] [RestartTask,6]
[DEBUG] 18:23:07: GEA Version 3.81 : en exécution...
[DEBUG] 18:23:07: [ 54 | Salle a Manger ] sendActions : traitement des actions (ID:7) [RestartTask,5] [RestartTask,6]
[DEBUG] 18:23:07: [ 54 | Salle a Manger ] sendActions : !ACTION! : Restart 5 (ID:7) [RestartTask,5] [RestartTask,6]
[DEBUG] 18:23:07: [ 54 | Salle a Manger ] sendActions : !ACTION! : Restart 6 (ID:7) [RestartTask,5] [RestartTask,6]
[DEBUG] 18:23:36: [ 54 | Salle a Manger ] Check : Redémarrage (ID:5) [Value,45]
[DEBUG] 18:23:36: [ 54 | Salle a Manger ] Check : Redémarrage (ID:6) [turnOff]
[DEBUG] 18:23:55: GEA Version 3.81 : en exécution...
[DEBUG] 18:23:55: En cours : aucun traitement a effectuer
[DEBUG] 18:25:47: GEA Version 3.81 : en exécution...
[DEBUG] 18:26:06: [ 54 | Salle a Manger ] sendActions : traitement des actions (ID:5) [Value,45]
[DEBUG] 18:26:06: [ 54 | Salle a Manger ] sendActions : !ACTION! : setValue 45 (ID:5) [Value,45]
[DEBUG] 18:26:06: [ 54 | Salle a Manger ] sendActions : !ACTION! : sendPush Dim après 3mn (ID:5) [Value,45]
[DEBUG] 18:26:06: [ 54 | Salle a Manger ] Done : tache effectuée et suspendue (ID:5) [Value,45]
[DEBUG] 18:29:06: [ 54 | Salle a Manger ] sendActions : traitement des actions (ID:6) [turnOff]
[DEBUG] 18:29:06: [ 54 | Salle a Manger ] sendActions : !ACTION! : turnOff (ID:6) [turnOff]
[DEBUG] 18:29:06: [ 54 | Salle a Manger ] sendActions : !ACTION! : sendPush Eteindre après 6mn (ID:6) [turnOff]
[DEBUG] 18:29:06: [ 54 | Salle a Manger ] Done : tache effectuée et suspendue (ID:6) [turnOff]
[DEBUG] 18:29:06: [ 54 | Salle a Manger ] Add Property : ajout de la tache pour lancement instantané (ID:7) [RestartTask,5] [RestartTask,6]

Partager ce message


Lien à poster
Partager sur d’autres sites

En effet semblerait que quelque chose ne fonctionne pas. Je regarde tous cela après une petite séance de sport pour me vider la tête.

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok, reprenons ton code et analysons le pour trouver le défaut :

local malampe = GEA.add( id["LAMPE_SAM"], 3*60, "Dim après 3mn", {{"Value", 45}})
local malampedim = GEA.add( id["LAMPE_SAM"], 6*60, "Eteindre après 6mn", {{"turnOff"}})
GEA.add( id["LAMPE_SAM"], -1, "", {{"RestartTask", malampe}, {"RestartTask", malampedim}})

Ligne 1 : On change la valeur de la lampe après 3 minutes

Ligne 2 : On éteint la lampe après 6 minutes

Ligne 3 : Dès que la valeur de la lampe change et que la lampe est allumée .. on redémarre les 2 tâches précédentes

 

Le soucis est que la ligne 1 va changer la valeur de la lampe et qu'elle sera allumée donc cette action va lancer la ligne 3.

 

Vu que tu fais un double-click sur ton bouton, tu peux simplement inverser la condition de la ligne 3 pour que cela fonctionne :

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

Le restart n'aura donc lieu que si la valeur de la lampe change et qu'elle est éteinte. Vu que tu l'éteint puis la rallume, cela fonctionne.

Partager ce message


Lien à poster
Partager sur d’autres sites

bien vu !

je suis gêné de ne pas l'avoir trouvé moi même :-/

Merci !

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai recopié ton code et jouer 2 fois le scénario pour comprendre le problème, cela ne sautait pas aux yeux.... et encore moins àcette heure ci :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour clarifier la fonctionnalité "Maxtime"....Hé oui, je suis un peu dur à  la comprenette  ;)

 

Dans votre exemple de portail

local portail = GEA.add(id_portail, -1, "", {{TTS},{"MaxTime", 1}}) -- On lance un message TTS une seule fois

GEA.add(true, 60, "", {{"RestartTask", portail }}) -- On réactive la tache "portail" toute les 60 secondes maximum

En fait "MaxTime" tue la tache qui n'aurait pas pu être relancée hors relancement de GEA.par exemple.

 

Dans mon exemple d'arrosage, je veux prévenir de l'arrosage qui va commencer à  8h (pour avoir le temps de sortir de la pelouse ou d'enlever le linge sur l'étendoir  ;) ) mais je veux le faire qu'une seule fois (pas à  chaque fois que quelqu'un bouge un doigt dans le salon)

GEA.add(id["PRESENCE_SALON"], -1, "Attention début d'arrosage à  8h00", 		-- Quand je détecte quelqu'un dans le salon
   {
   {"If",{{"Global", "Presence_Salon", "1"}}},                                  -- S'il y a qqlun dans le salon
   {"Time", "19:40", "19:55"},                                                  -- Seulement entre 19:40 et 19:55
   {"Global", "SONOS_Num_Message", "6"},	                                -- Message TTS "arrosage va commencer..."
   {"VirtualDevice", id["SONOS"], 1},
   {"MaxTime", 1}                                                               -- On ne dit le message qu'une seule fois...Trop de messages tuent l'apéro
   })

Il faut donc que je relance la tâche avec un "RestartTask"...

 

Je trouvais que ça marchait bien.. :) ça marchait mais une seule fois pour toute !?!!

C'est bien ça ?

Partager ce message


Lien à poster
Partager sur d’autres sites

×