Aller au contenu

Recommended Posts

Bonjour,

Je confirme ce bug de maxtime :-)

 

 
 
 
p.s. Steven, pour corriger, je te propose une manière très subtile de le faire:
 
MaxTime = MaxTime / 2
if MaxTime == 0.5 then MaxTime = 1 end

:2:  :2:  :2:

Partager ce message


Lien à poster
Partager sur d’autres sites

je confirme aussi pour le Maxtime ;-)

 

C'est qu'un petit bug ;-)

 

belle subtilité sebcbien ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

en attendant la correction, j'essayerais avec {“StopTaskâ€, <id_tâche>} qui devrait pouvoir remplater un {"MaxTime", 1}

Partager ce message


Lien à poster
Partager sur d’autres sites

Mon idée serait en effet de remplacer MaxTime, 1 par StopTask dans la tâche en attente, après le NotStarted,. Mais je ferai des essais ce soir

Envoyé de mon Nexus 5 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour.

 

je vais faire petit à  coté de vous, mais bon, il faut bien commencer.

ce week end, mes enfants ont une fois de plus laissé les lumières du couloir allumé, du coup, j'ai voulu les eteindre automatiquement après 10 minutes, mais cela ne fonctionne pas.

 

j'ai ajouté ça au GEA : (j'ai testé deux syntaxe, mais aucunes ne fonctionnent)

GEA.add({estauto,id["ECLAIRAGE_APPENTI"]},10*60,{"turnOff",id["ECLAIRAGE_APPENTI"]})
GEA.add(id["ECLAIRAGE_COULOIR"],10*60,{{"turnOff"}})


--Gestion de l'éclairage
GEA.add({estauto,id["PORTE_DE_SERVICE"]}, -1, "",{{"Days","Monday,Tuesday,Thursday,Friday"},{"Time","5:30","6:30"},{"turnOn",id["ECLAIRAGE_APPENTI"]}})

la ligne du dessous ne fonctionne pas non plus. Je voulais faire allumer mon ECLAIRAGE_APPENTI si la porte de service était ouverte entre 5h30 et 6h30 les lundi, mardi, jeudi, vendredi. C'est pour ma femme.

Partager ce message


Lien à poster
Partager sur d’autres sites

pour les 2 premières lignes, tu dois en 3° paramètre mettre le message, comme tu l'as fait pour la 3° instruction

 

Pour la 3° instruction, tu devrais mettre id["PORTE_DE_SERVICE"] en première condition ET mettre l'ID en entête de script (regarde le Wiki -> syntaxe, c'est expliqué)

Partager ce message


Lien à poster
Partager sur d’autres sites

trop puissant cette section ! J'ai encore BEAUCOUP àapprendre ...

Partager ce message


Lien à poster
Partager sur d’autres sites

Je crée cela justement parce qu'il y a des gens comme toi en soif d'apprendre :)

 

Attention, je me plante souvent et il y a aussi des scripts que je crée et une fois terminé .. je ne les utilise pas donc ils sont plus une base de travail qu'une bible :)

Partager ce message


Lien à poster
Partager sur d’autres sites

en attendant la correction, j'essayerais avec {“StopTaskâ€, <id_tâche>} qui devrait pouvoir remplater un {"MaxTime", 1}

 

GEA est vraiment trop puissant  :60:  :60:  : il y a un bug, mais il y a moyen de le contourner pour quand même faire fonctionner le bazar !

 

Donc ce que je voulais :

  1. si la lumière de la SdB est allumée pendant 1 min (et Alarme éteinte, et variable ECS = Non) que ECS passe à  Oui pendant 20 min
  2. si ECS a été mis à  Oui autrement que par la lumière de la SdB, alors ECS ne passe PAS à  Non au bout des 20 min.

le code "normal" aurait été :

  -- Mettre ECS à  oui pendant 20 min
     -- Tache en sommeil (NotStarted)
     -- Cette tache va passer la variable à  Non si elle est à  Oui depuis plus de 20 minutes
     local autoECSNon = GEA.add (estECS, 20*60, "Variable ECS à  OUI depuis #durationfull# => variable ECS = NON", {{"VirtualDevice", DeviceID["VAR_ECS"], 4}, {"Email", UserID["Vincent"], "INFO - ECS"}, {"NotStarted"}, {"MaxTime", 1}})
     -- Cette tache va passer la variable à  Oui si la lumière de la douche est allumée depuis 1 min et que la variable ECS est à  non
     -- Elle va aussi redémarrer la tache si dessus
     GEA.add ({DeviceID["ALARME_ACTIVE"], DeviceID["LUM_SDBREZ_DOUCHE"], pasECS}, 1*60, "Variable ECS à  OUI car LUM_SDBREZ_DOUCHE allumée depuis #duration#.",{{"Inverse"}, {"VirtualDevice", DeviceID["VAR_ECS"], 3}, {"Email", UserID["Vincent"], "INFO - ECS"}, {"RestartTask", autoECSNon}})

mais suite au bug de MaxTime, il faut mettre ceci :

  -- Mettre ECS à  oui pendant 20 min
     -- Tache en sommeil (NotStarted)
     -- Cette tache va passer la variable à  Non si elle est à  Oui depuis plus de 20 minutes
     local autoECSNon = GEA.add (estECS, 1, "Variable ECS à  OUI depuis #durationfull# => variable ECS = NON", {{"VirtualDevice", DeviceID["VAR_ECS"], 4}, {"Email", UserID["Vincent"], "INFO - ECS"}, {"NotStarted"}})
     -- Cette tache va passer la variable à  Oui si la lumière de la douche est allumée depuis 1 min et que la variable ECS est à  non
     -- Elle va aussi redémarrer la tache si dessus
     GEA.add ({DeviceID["ALARME_ACTIVE"], DeviceID["LUM_SDBREZ_DOUCHE"], pasECS}, 1*60, "Variable ECS à  OUI car LUM_SDBREZ_DOUCHE allumée depuis #duration#.",{{"Inverse"}, {"VirtualDevice", DeviceID["VAR_ECS"], 3}, {"Email", UserID["Vincent"], "INFO - ECS"}, {"RestartTask", autoECSNon}})
     GEA.add (estECS, 1, "", {{"StopTask", autoECSNon}})

=> supprimer le "MaxTime" et rajouter la dernière ligne.

En fait j'ai exploité l'aspect séquentiel de GEA : ECS passe à  Oui via la lumière, alors il redémarre la tâche d'extinction automatique, et donc ligne suivante ne s'exécutera pas

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

bonjour a tous

 

j'ai parcouru le poste GEA à  la recherche d'une méthode pour activer et d'activer une alarme.

 

en gros je recherche comment activer et désactivé une zone.

et 

aussi comment armer et désarmé un détecteur

 

merci pour votre aide :)  

Partager ce message


Lien à poster
Partager sur d’autres sites

Regarde dans le showroom Gea tu as pleins d exemple dont le mien.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour les infos, une fois de plus, j'avais fais une erreur de syntaxe....

ça va rentrer, je vais potasser le wiki.

Partager ce message


Lien à poster
Partager sur d’autres sites

@ Skkhho  Merci 

 

J'ai trouver :

{"Armed"}                -- Ne vérifie QUE si le module est armé
{"Disarmed"}                -- Ne vérifie QUE si le module est désarmé
{"setArmed", <id>}          -- arme le module <id>
{"setDisarmed", <id>}       -- desarme le module <id>

mai pas pour activer ou désactive une zone 

Partager ce message


Lien à poster
Partager sur d’autres sites

en fait quand on met l'alarme en route, cela revient àmettre les devices indépendemment en route.

Je ne sais pas ce que tu veux dire par zone ? (= pièce ?)

=> donc tu dois armer un àun les devices que tu veux armer

Partager ce message


Lien à poster
Partager sur d’autres sites

Haaaa ok, effectivement

Si j'ai 2 détecteur dans la cuisine il suffi de les désactivé ou activée c'est = a zone cuisine.

Merci

Pourquoi faire compliqué quand on peut faire simple

Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

superbe la sectin LUA steven, merciiiii ;-)

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à  tous, 

 

Je viens enfin de me mettre à  GEA, avec déjà  quelques petites réalisation sympas.

mais je bloque sur un truc tout bête...  j'essaie de démarrer mon Sonos à  une heure bien précise, et pour ca, j'ai trouvé la ligne GEA sans sans problème en utilisant l'option "VirtualDevice" et puis l'ID du bouton PLAY.

Par contre, comme le volume peut avoir été changé, j'aimerais le mettre à  80, mais je ne trouve pas comment faire pour positionner un slider à  une valeur précise. (En fait j'utilise le VD de Jean-Christophe). 

 

merci de votre aide

Partager ce message


Lien à poster
Partager sur d’autres sites

as-tu essayé ceci dans les options ?

{“Sliderâ€, <id_module>, <id_slider>, <valeur>} Met la valeur dans le slider du module {“Sliderâ€, 19, 1, 21.3}
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@jojo

 

oui, effectivement, ca marche...  j'avais essayé avant mais avec le mauvais id du slider.....   je crois qu'il est temps d'aller me coucher :-)

Partager ce message


Lien à poster
Partager sur d’autres sites

bonjour à  tous

 

j'ai un petit souci mai je pense que je suis pas loin.

 

 

1-  la détection s’effectue si la variable  DETECTION est à  1     si 0 pas de détection 

2-  et le temps d'extinction varie selon la variable TEMPS ( 5,10,15)mm  exemple : si variable a 10 ma lampe s'éteint dans 10mm 

 

mai ça ne fonctionne pas ;)  

local lampetimer = GEA.add( true ,  5*60, "5mm",    {{"turnOff", id["LAMPE_CHAMBRE_AMELIA"]}, {"If",{{"Global", "temps", "5"}}}}) 
local lampetimer = GEA.add( true ,  10*60, "10mm",  {{"turnOff", id["LAMPE_CHAMBRE_AMELIA"]}, {"If",{{"Global", "temps", "10"}}}}) 
local lampetimer = GEA.add( true ,  15*60, "15mm",  {{"turnOff", id["LAMPE_CHAMBRE_AMELIA"]}, {"If",{{"Global", "temps", "15"}}}}) 

  
GEA.add(id["detecteur"], {"Global", "detection", "1"}, -1, "detection", {{"RestartTask", lampetimer}, {"turnOn",id["LAMPE_CHAMBRE_AMELIA"]}}) 

Partager ce message


Lien à poster
Partager sur d’autres sites

impossible de réaliser le code suivant sous GEA  sous HC2  4.045

 

GEA exécute le code plusieur fois :  quand j'allume ma lampe je reçois plusieur fois  "ON TV"

local tempotv  = {"Function", function() fibaro:sleep(3500) end}  
local tempotv2  = {"Function", function() fibaro:sleep(5000) end}  

  GEA.add({"power+", id["LAMPE"], 20}, -1, "ON TV", {{"turnOn", id["LAMPE_SALON"]}, tempotv, {"VirtualDevice", id["TV_SONY"], "4"}, tempotv, {"VirtualDevice", id["TV_SONY"], "5"}, tempotv, {"VirtualDevice", id["TV_SONY"], "8"}, tempotv2, {"VirtualDevice", id["TV_SONY"], "2"}})
  

Partager ce message


Lien à poster
Partager sur d’autres sites

pour ta 1° question :

  1. j'écrirais les conditions de temps de la manière suivante, SANS if dans les option : ça c'est plus un principe de base (pas de if dans les options, c'est pas logique, pas beau et ne sera bientôt plus supporté)
    local lampetimer = GEA.add( {"Global", "temps", "5"} ,  5*60, "5mm",    {{"turnOff", id["LAMPE_CHAMBRE_AMELIA"]}, }) 
    
  2. pour ton scénario de lampes, je ferais comme ceci (sans oublier de mettre id["detecteur"] dans les déclencheurs de scène)
    GEA.add(id["detecteur"], -1, "detection", {{"turnOn",id["LAMPE_CHAMBRE_AMELIA"]}})
    local GEA.add( {id["LAMPE_CHAMBRE_AMELIA"], {"Global", "temps", "5"}} ,  5*60, "#duration#", {{"turnOff", id["LAMPE_CHAMBRE_AMELIA"]}}) 
    local GEA.add( {id["LAMPE_CHAMBRE_AMELIA"], {"Global", "temps", "10"}} ,  10*60, "#duration#", {{"turnOff", id["LAMPE_CHAMBRE_AMELIA"]}})
    local GEA.add( {id["LAMPE_CHAMBRE_AMELIA"], {"Global", "temps", "15"}} ,  15*60, "#duration#", {{"turnOff", id["LAMPE_CHAMBRE_AMELIA"]}})
    

Partager ce message


Lien à poster
Partager sur d’autres sites

pour ton scénario TV,

chaque fois que la consommation de ta id["LAMPE"] est modifiée (et tant que > 20), le scénario GEA va s'exécuter ?

Donc si la lampe a une consommation qui varie entre 20 et 25, le scénario risque de s'exécuter plusieurs fois. Ou le scénario ne s'exécute que quand on franchi le seuil de 20 ?

=> àtester avec un scénario simple

Partager ce message


Lien à poster
Partager sur d’autres sites

×