Aller au contenu

Aide en LUA (basique)


Messages recommandés

Posté(e) (modifié)

Hello,

 

pouvez-vous me dire pourquoi cela ne se déclenche pas à l'heure souhaitée svp ?

Pour faire simple : je veux le matin déclencher une info SONOS (le bouton 5 du VD 117) et ensuite le code est commenté, vous comprendrez...!!

 

Je sais, le code n'est pas joli mais je ne sais faire que comme ça... et même pas puisque ça ne marche pas... ;-) mais je veux bien apprendre onc toutes vos remarques constructives sont les bienvenues!! :-)

 

Citation

local currentDate = os.date("*t");

-- si on est mercredi :
if (
     ( ((currentDate.wday == 4) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "08:19") )
    )
then
    fibaro:call(127, "pressButton", "4") --j'ouvre le portail définitivement pour Patricia
      fibaro:call(117, "pressButton", "7") --  TTS portail ouvert
 -- après 10 minutes (= 10x60) il est 8h30, c'est lheure de se laver les dents
    setTimeout(function()
    fibaro:call(117, "pressButton", "5");
           end, 600000)
       fibaro:debug("ok bouton 5 le mercredi")
  --je ferme le portail aprés 50x60 soit 50 minutes, à 9h20 quand on est revenu de l'école
      setTimeout(function()
    fibaro:call(64, "turnOn");
           end, 3000000)

--  sinon si autre jour sauf seamedi et dimanche, à 8h30
elseif    ( ((currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 5 or currentDate.wday == 6) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "08:30") )
  
then
      
      fibaro:call(117, "pressButton", "5"); -- j'informe qu'il est 8h30
       fibaro:debug("ok bouton 5 pas le mercredi")
    setTimeout(function()
    fibaro:call(127, "pressButton", "4");
           end, 90000)     --  j'attends 15 min (15x60=90) avant d'ouvrir le portail à 8h45
      -- j'attends 15 min    
      setTimeout(function()
    fibaro:call(64, "turnOn");
           end, 90000)
    
end

fibaro:sleep(1000*5)
fibaro:debug("ça tourne")

 

 

Merci de votre aide.

 

EDIT : en fait, je comprends que je n'ai pas de dédélcencheur (trigger) masi comment le mettre simplement en focntion de l'heure que je souhaite? en passant par les blocs il y a de variables locales qui sont définies puis cela passe par la fonction tempFunc()... et je ne trouve pas cela très évident et pas simple surtout...

Modifié par ebtjjn
Posté(e)

Bonjour,

 

pourquoi ne pas découper cela en plusieurs petits scénarios déclenchés sur un timer précis pour chaque action ?

Posté(e)

Hello,

 

parce que si le scénario se déclenche, le reste se déclenchera aussi... et si je fais autant de scénarios, j'aurai autant de fois le problème !! (et en plus c'est moin joli...!!) :-)

 

Quand je reprends en mode bloc je vois qu'il y a plein de déclaration de variables et la tempfunc que l'on déclenche sur un déclencheur... mais c'est ça que je n'arrive pas à comprendre (quels sont les déclencheurs issus du mode bloc) donc j'ai supprimé (c'est ce que je fais quand je comprend s pas!! :-)) mais du coup, ça ne marche plus...

 

J'ai pas mal cherché mais rien trouvé de vraiment clair sur ce fonctionnement et les différents tutos d'ici et d'autres sites, d'ailleurs...

Merci en tout cas de la proposition Cmoi20.

Posté(e)

tu peux regarder en convertissant une scène bloc qui ne fait juste que allumer une lampe à une heure précise. Tu verras alors ce qu'il faut mettre comme trigeger.

Mais il faut également cocher la case "start with HC"

Posté(e) (modifié)

En fait, c'est l' %%autostart qui n'est pas mis par défaut qaund on passe d'une scène bloc en lua qui me manquait... ^^

J'avais beau mettre les déclencheurs qui vont bien, ça ne démarrait pas...!!! 

 

J'aimerai quand même comprendre comment ça fonctionne les déclencheurs des scènes en bloc. Vous avez un tuto dans le coin ou vous pouvez m'expliquer siouplé ??

Merci @jojo et @Cmoi20

Modifié par ebtjjn
×
×
  • Créer...