Aller au contenu

Recommended Posts

salut a tous

 

j'ai les code ci-dessous qui change une icon dans une Vd selon si la clime et OFF ou ON

 

le code fonctionne très bien mai le problème est que je suis obliger d’actualisée la page de la VD pour voir le changement 

 

avez vous une solution pour que la VD s'actualise tout les 30s par exemple 

 GEA.add( 	{"Power-", id["CLIM_CH_PARENT"], 20}, 30, "", {
            {"Sleep", 1, {"CurrentIcon", id["VDCLIM"], 1044}}}) ----OFF

  GEA.add( 	{"Power+", id["CLIM_CH_PARENT"], 20}, 30, "", {
          	{"CurrentIcon", id["VDCLIM"], 1045}})  --- on 

merci de votre aide

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello,

 

Ai-je fais une boulette ou je suis juste impressionné par le GEA ?

 

 

J'ai installé le VD jour Chomé de @HANSOLO, VD que je trouve très bien. Je vais l'utilisé dans mes scènes, merci à toi !

 

Le VD fonctionne parfaitement, me suis donc dit c'est le moment de le rentrer dans GEA (dans le but de pouvoir l'utiliser) 

 

j'ai donc rentré la ligne suivante dans GEA 

 

GEA.add(true, 30, "", {{"VirtualDevice", 137, 3},{"Time", "00:00", "00:01"}})

Et là GEA c'est mis à faire une action que je n'avais encore jamais vue..

1509037281_Capturedecran2019-09-15a08_53_48.png.2d57995947e01b84392e1bd678870cfb.png

 

Il a supprimé plus d'une 50aine  "d'option inutile"

 

Es-ce normale ? 

Et si oui, pourquoi cela c'est produit après l'ajout de la ligne VD ?

Question subsidiaire : Est ce que ces options peuvent revenir, si besoin ? 

 

Merci 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

GEA en mode automatique, soit lorsqu'il tourne toutes les 30 secondes, fait le ménage pour libéré de la mémoire.

 

En effet, au 1er passage, il profite pour analyser les demandes de l'utilisateur. Tout ce qui est inutile est supprimé de la mémoire afin de ne pas avoir un script qui tourne non-stop trop gourmand.

 

Rien n'est perdu, si tu rajoutes une ligne et que tu sauves, GEA va (au 2eme passage) relancer une analyse et donc garder en mémoire ce que tu as besoin.

 

Envoyé de mon SM-G935F en utilisant Tapatalk

 

 

 

 

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Et pour répondre complètement. Avant tu n'avais que des actions immédiates (avec une durée de -1). Donc GEA ne tournait que sur demande. Une fois que tu as mis ton VD, tu lui demande de vérifier toutes les 30 secondes. Le mode automatique se lance donc laissant tourner une instance de ce script en mémoire tout le temps pour pouvoir, toute les 30 secondes, faire son travail.

Envoyé de mon SM-G935F en utilisant Tapatalk

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Haaaa, c'est donc bien ça...GEA est intelligent :19: (J'en doutais pas ceci-dit)

 

Et pour répondre complètement. Avant tu n'avais que des actions immédiates (avec une durée de -1) = Exact :yes:

 

Génial ! Merci Steven de ton retour. C'était important de comprendre le pourquoi de ce déclenchement (cela n'avait pas de sens pour moi avant de lire ta réponse)

 

 

 

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello, 

 

J'ai modifié une lignes GEA qui fonctionnait parfaitement...(ça y est je me lance dans l'aventure :60:)

 

 GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}}, -1, "", {"TurnOn", id["LampeExterieur"], 3*60})  

 

Pour la remplacer par celle-ci :

  --Gestion lumière de porte extérieur, si mouvement durant la nuit = on
    GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}}, -1, "", {"TurnOn", id["LampeExterieur"]}) 
    --Extinction 3 mn après si aucune activité détecté (jour et/ou nuit)
      GEA.add({id["LampeExterieur"], {"Value", id["DetecteurMVT"], 0}, }, 3*60, "", {"turnOff",id["LampeExterieur"]})

 


Comment inclure la condition si activité détecté pendant ce compte à rebours,  ne pas éteindre pour 3 minutes supplémentaires (actuellement il ne tiens pas compte de cette condition)

 

Merci de vos lumières....

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello @mipa

Je suis dans le m^ cas de figure

GEA.add({{"Power+", id["ECL_LED_CUISINE"],3}, {"Value", id["MVT_CUISINE"], 0}}, 3*60, "", {"TurnOff", id["ECL_LED_CUISINE"]})

Il me semble qu'il en tient compte, si mouvement la valeur ne sera pas à 0 donc il ne devrait pas faire OFF

PS: astuce de @pepite , il m'avait conseillé de mettre la ligne OFF au dessus de la ligne ON, j'avais le souci que parfois la lampe ne passait pas OFF

 

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Ce n'est malheureusement pas si simple que cela car GAE ne va vérifier que toutes les 3mn si un mouvement a eu lieu. Cela ne va donc pas fonctionner comme souhaiter. 

 

-- On éteins la lumière après 3mn -- Not Start = on ne fait rien pour l'instant. Cette ligne dors.

local exctinction = GEA.add({"Time", "Sunset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart} })

 

-- Sur détection de mouvement, on allumer et on démarre la tache précédente.

-- A chaque détection, on redémarre le compteur de la tache précédente

GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask", exctinction } }) 

 

 

Ça devrait fonctionner.

  • Like 1
  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven Merci, je viens de tester et ça fonctionne bien. {"NotStart} remplacé par {"NotStart"} :60:

 

MAIS existe t'il une solution si la lampe a été ON en manuel ? :angry:

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui mais il faudrait que je retrouve tout cela car il y a un ordre très précis des lignes.

 

A la maison j'ai cela mais il semble que cela ne fonctionne pas chez toi

  GEA.add({id["DETECT_JARDIN"], {"Value", id["COIN_MANGER"], 0},{"Time", "Sunset+30", "Sunrise"}}, -1, "", {"turnOn", id["COIN_MANGER"], 5*60}, "Allumage jardin sur détection")

Mon détecteur n'allume la lumière pendant 5mn uniquement si elle n'est pas déjà allumée.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

-- On éteins la lumière après 3mn -- Not Start = on ne fait rien pour l'instant. Cette ligne dors.

local exctinction = GEA.add({"Time", "Sunset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} })

 

-- Sur détection de mouvement, on allumer et on démarre la tache précédente.

-- A chaque détection, on redémarre le compteur de la tache précédente

GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask", exctinction } }) 

 

Ce qui est en gras devrais suffir :-)

  • Like 1
  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Super, je teste....

Modifié par Ghoosti
retour après test

Partager ce message


Lien à poster
Partager sur d’autres sites

Marche pas

Je n'ai plus le RESTART

Si ON en manuel, devient OFF après ~ 20''

 

local ExtinctionCuisine = GEA.add(true, 1*60, "", {{"TurnOff",id["ECL_LED_CUISINE"]}, {"NotStart"}})
-- Sur détection de mouvement, on allumer et on démarre la tache précédente. -- A chaque détection, on redémarre le compteur de la tache précédente.
GEA.add({{"Value-", id["LUX_CUISINE"], 100}, {id["MVT_CUISINE"]}, {"TurnOff", id["ECL_LED_CUISINE"]}}, -1, "", {{"TurnOn", id["ECL_LED_CUISINE"]}, {"RestartTask", ExtinctionCuisine}})
 

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci  @Steven:13:

 

Je teste le code proposé ce soir et vous revient...

 

J'ai encore appris une fonction de GEA: RestartTask :rolleyes:

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Alors pour ma part @Steven:

 

J'ai rien compris au code.... (bon jusque là rien d'anormale :8::D)

 

Pourquoi commencé le code par un local extenction ?? (je pensais que les codes commençaient toujours pas GEA:add...)

local exctinction = GEA.add({"Time", "Sunset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} })

 

n'y le pourquoi tu mets comme action éteindre -1 , (pas logique pour moi)

GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask", exctinction } }) 

 

Bref c'est trop abstrait pour moi ces lignes, mais je l'aurais un jour, je l'aurais (Maaf:lol:

 

Résultats le code fonctionne pour l'allumage, mais il ne tiens pas compte de restart. La lampe s'éteint au bout de 3 minutes (même si je repasse devant le détecteur au bout de 2 minutes, pendant quel est allumée)

 

Autre chose qui m'a semblé bizarre.... la ligne *stoppé* Je sais pas si ce Debug vous permet d'y voir clair.

 

1918864944_Capturedecran2019-09-16a21_55_35.png.4b5a2a885eeed2dc87c2753e4d44557d.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Allez j'ose demander....

 

Est ce qu'une commande comme celle-ci pourrait fonctionner ? 

 

--Gestion lumière porte extérieur, si mouvement durant la nuit = on
GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}}, -1, "", {"TurnOn", id["LampeExterieur"]}) 

 

-- Eteindre la lampe d'entrée si pas de présence plus de 3 mn.

GEA.add(id["LampeExterieur "], 3*60, "", {{"turnOff",67}, {"If",{{"Value-",id["DetecteurMVT "],1}}}})  

 

:blink:

 

Modifié par mipa

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 9 heures, mipa a dit :

Pourquoi commencé le code par un local extenction ?

Bonjour,

 

Declaration d'une variable, donc doit etre mise avant que la variable soit utilisée pour etre connue du code.

La variable contient donc la ligne après le signe "="

 

Il y a 10 heures, mipa a dit :

n'y le pourquoi tu mets comme action éteindre

A cet endroit la, ce n'est pas une action mais une condition, si la lampe est éteinte

 

Il y a 10 heures, mipa a dit :

mais il ne tiens pas compte de restart

De quel restart parles tu ?  Je dirais que cela a fonctionne moi puisque le Restart relance la ligne avec la variable "extinction" qui etait ta lampe après 3 minutes.

 

Il est normal que lorsque tu repasses devant le détecteur pendant les 3 minutes cela ne relance pas la tache d'extinction à 3 minutes plus tard, puisque la ligne teste si la lampe est deja eteinte et toi elle est allumée, donc la ligne ne remplit pas toutes les conditions, soit : La periode du Time ET la detection de mouvement ET la lampe éteinte !!

LA LIGNE n'est donc pas executée par GEA.

Plus de If en GEA V6, donc NON ;-)

il y a 43 minutes, mipa a dit :

{"If",{{"Value-",id["DetecteurMVT "],1}}}})

Il y a 10 heures, mipa a dit :

 {"TurnOff",id["LampeExterieur"]}

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ouppsss, mois aussi je pensais que le "RestartTask" redémarrait le compteur .....

 

Comment faire alors pour par ex dans un Hall, la lampe soit ON sur détection, reste ON tant qu'il y a détection et ensuite passe OFF après 3', en tenant compte que la lampe pourrait avoir été ON avec un interrupteur ?

Je n'arrive vraiment pas à faire fonctionner ce truc.... :huh:

 

Après recherche, je suis tombé sur ceci:

-- Allumle la lampe du hall si détection de mouvement. Le if permet de ne pas renvoyer l'ordre d'allumage si la lampe est déjà allumée
  GEA.add( id["DETECTEUR_HALL"], -1, "", {{"If",{{"Value-", id["LAMPE_HALL"],59}}},{"Time", "Sunset-30", "Sunrise"}, {"Function", function() fibaro:call(id["LAMPE_HALL"], "setValue", "99") end}})
-- Eteindre la porte d'entrée si pas de présence plus de 5 mn.
  GEA.add(id["LAMPE_HALL"], 5*60, "", {{"turnOff",id["LAMPE_HALL"]}, {"If",{{"Value-",id["DETECTEUR_HALL"],1}}}})

D'après ce j'ai pu comprendre, le if n'est plus nécessaire.

 

Reste que:  GAE ne va vérifier que toutes les 3mn si un mouvement a eu lieu, donc si on veut faire un 3*30 c mort....

 

Modifié par Ghoosti
Après recherche, je suis tombé sur ceci:

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour, bonjour, 

 

merci beaucoup @pepite :77: ça aide beaucoup à avancer d'avoir des explications comme celles-ci, c'est précieux

 

J'avais moi aussi cru ( à tord) que la fonction Restart allait remettre le compte à rebours à zéro...

 

Et effectivement, la ligne propose avec if viens d'un autre code que j'ai trouver suite à mes recherches dans des postes antérieur à la V6 et que j'ai tenté d'adapter (pas simple de tout comprendre quand tu n'a qu'une connaissance superficiel du fonctionnement :4:

 

Du coup, Est ce qu'il existe une ligne qui pourrait faire l'affaire (quitte à augmenter le délais à 5 minutes pour que GEA puissent contrôler la variable, en temps et relancer le scénario si détection )?

 

J'imagine que juste augmenté le temps à cinq minutes, ne vas pas régler le soucis... exact ? 

 

Merci pour votre soutiens +++

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 4 heures, Ghoosti a dit :

RestartTask" redémarrait le compteur

Re,

 

Je n'ai pas été tres clair, effectivement le restartTask relance la ligne variabilisée, ici appelée exticntion

local exctinction = GEA.add({"Time", "Sunset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} }

Mais  cette ligne ci sur detection de mouvement a en condition  {"TurnOff",id["LampeExterieur"]} qui signifie, SI LA LAMPE EST ETEINTE

 

GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask", exctinction } }) 

Quand tu vas repasser devant le detecteur GEA va regarder si TOUTES LES CONDITIONS SONT VRAIES : le TIME ET LA DETECTION ET SI LA LAMPE est ETEINTE !!

 

Hors au 2eme passage devant le detecteur, la LAMPE est ALLUMEE, LES CONDITIONS NE SONT DONC PAS TOUTES VRAIES, la ligne n'est donc pas executée par GEA, donc les actions ne sont pas realisées, pas de relance de la tache d'extinction

 

Pour que vous compreniez mieux je vous ai fait en partant de la meme syntaxe lorsque la lampe est allumée :


 

local exctinction = GEA.add({"Time", "S unset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} }

-- 1er passage devant le detecteur, Lampe éteinte, 
GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask ", exctinction } })

-- 2ème passage deavnt le detecteur, Lampe allumée
GEA.add( { {id["DetecteurMVT"]}, {"Time", "Sunset", "Sunrise"}, {"TurnOn",id["LampeExterieur"]} }, -1, "", {"RestartTask ", exctinction} )

 

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 3 heures, pepite a dit :

local exctinction = GEA.add({"Time", "S unset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} }

-- 1er passage devant le detecteur, Lampe éteinte, 
GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask ", exctinction } })

-- 2ème passage deavnt le detecteur, Lampe allumée
GEA.add( { {id["DetecteurMVT"]}, {"Time", "Sunset", "Sunrise"}, {"TurnOn",id["LampeExterieur"]} }, -1, "", {"RestartTask ", exctinction} )

 

 

 

RE Merci !

 

Il y a 3 heures, pepite a dit :

 

Me suis permis de re écrire, la première ligne (distance dans le S unset et manque la dernière parenthèse) 

On obtient :
   local exctinction = GEA.add({"Time", "Sunset", "Sunrise"}, 3*60, "", { {"turnOff",id["LampeExterieur"]}, {"NotStart"} })

puis 

-- 1er passage devant le detecteur, Lampe éteinte, 
GEA.add({{"Time", "Sunset", "Sunrise"}, {id["DetecteurMVT"]}, {"TurnOff",id["LampeExterieur"]}}, -1, "", { {"TurnOn", id["LampeExterieur"]}, {"RestartTask ", exctinction } })

-- 2ème passage deavnt le detecteur, Lampe allumée
GEA.add( { {id["DetecteurMVT"]}, {"Time", "Sunset", "Sunrise"}, {"TurnOn",id["LampeExterieur"]} }, -1, "", {"RestartTask ", exctinction} )

Effectivement je comprend mieux avec les l'explication fournis dans ce post, (du moins je le pense, et c'est bien la l'essentiel :1:) merci @pepite j'espère qu'il en vas de même pour @Ghoosti :5:

 

J'ai chargé le code Debug = ok 

Mais si j'allume la lampe "id["LampeExterieur"]" en manuel j'obtiens cela 

 

39993745_Capturedecran2019-09-17a17_06_57.png.bda444c6dc95dee6e478db46d63efae3.png

 

Est ce qu'il me manque une variable ?

 1238876897_Capturedecran2019-09-17a17_13_29.png.c5891a40d41e8cebbfadf1777193a2e7.png

 

Ou es-ce encore autre chose ? 

 

PS A chaque fois qu'on avance un peu, j'ai l'impression de m'enliser d'avantage ....J'ose espérer que cela va vite aller vers le mieux !

 

 

 

 

Il y a 3 heures, pepite a dit :

--

 

Partager ce message


Lien à poster
Partager sur d’autres sites

@mipa Ghoosti va se noyer dans le lac...... :D

 

Au final j'ai mis ceci pour ma cuisine, il y a peut être d'autre solution mais pour l'instant, voilà .....

 

Donc: j'essayais d'avoir un allumage automatique suivi d'un OFF et pouvoir a l'aide d'un VD avoir un ON sans le OFF

 

local ExtinctionCuisine = GEA.add(true, 3*60, "", {{"TurnOff",id["ECL_LED_CUISINE"]}, {"NotStart"}})-- OFF


GEA.add({{id["MVT_CUISINE"]}, {"Value-", id["LUX_CUISINE"], 12}, {"TurnOff",id["ECL_LED_CUISINE"]}}, -1, "", {{"TurnOn", id["ECL_LED_CUISINE"]}, {"RestartTask", ExtinctionCuisine}})--ON
   

Encore merci pour votre aide et conseils :13:

haieeee, maintenant j'attaque le Hall..... (ma femme va me tuer, elle n'avait pas de lumière dans le Hall ce matin....) :93:

  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 1 heure, mipa a dit :

PS A chaque fois qu'on avance un peu, j'ai l'impression de m'enliser d'avantage

C'est normal ça, plus on progresse sur un sujet, plus on se rend compte de tout ce qui nous reste à connaitre avant de la maitriser..... tellement vrai dans plein de domaines, pas que la domotique

  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×