Rem's Posté(e) le 2 avril 2014 Signaler Partager Posté(e) le 2 avril 2014 Bonjour à tous, Je suis plus que novice dans le langage LUA (d'ailleurs, la scène suivante est crée à partir des blocks) et je ne comprends pas pourquoi elle ne se déclenche pas comme prévu à 6h45. --[[ %% properties 49 valueMeter %% globals Reveil --]] local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then while true do local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( ( fibaro:getGlobalValue("Reveil") == "On" ) and ( ((currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "06:45") ) and ( tonumber(fibaro:getValue(49, "valueMeter")) <= 10 ) ) then -- Allumage fibaro:call(71, "turnOn"); fibaro:call(41, "turnOn"); fibaro:call(14, "turnOn"); -- Lancement Freebox et BFM fibaro:call(56, "pressButton", "1"); fibaro:sleep(8*000); fibaro:call(56, "pressButton", "14"); fibaro:sleep(4*000); fibaro:call(56, "pressButton", "9"); fibaro:debug("Lancement du réveil") fibaro:sleep(300*1000); -- Lancement de l'extinction des lumières fibaro:call(11, "turnOn"); fibaro:sleep(600*1000); fibaro:call(11, "turnOff"); fibaro:call(14, "turnOff"); fibaro:call(41, "turnOff"); fibaro:debug("Extinction salon"); fibaro:sleep(10*1000); -- Virtuel device pour basculer de BFM vers Disney Channel fibaro:call(58, "pressButton", "1"); fibaro:debug("Bascule vers Disney channel"); fibaro:sleep(1800*1000); -- Extinction lampe entrée à 8h, 1h 30 plus tard fibaro:call(71, "turnOff"); fibaro:debug("Extinction entrée"); end fibaro:sleep(60*1000); end else local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( ( fibaro:getGlobalValue("Reveil") == "On" ) and ( (currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6) ) and ( tonumber(fibaro:getValue(49, "valueMeter")) <= 10 ) or startSource["type"] == "other" ) then -- Allumage fibaro:call(71, "turnOn"); fibaro:call(41, "turnOn"); fibaro:call(14, "turnOn"); -- Lancement Freebox et BFM fibaro:call(56, "pressButton", "1"); fibaro:sleep(8*000); fibaro:call(56, "pressButton", "14"); fibaro:sleep(4*000); fibaro:call(56, "pressButton", "9"); fibaro:debug("Lancement du réveil") fibaro:sleep(300*1000); -- Lancement de l'extinction des lumières fibaro:call(11, "turnOn"); fibaro:sleep(600*1000); fibaro:call(11, "turnOff"); fibaro:call(14, "turnOff"); fibaro:call(41, "turnOff"); fibaro:debug("Extinction salon"); fibaro:sleep(10*1000); -- Virtuel device pour basculer de BFM vers Disney Channel fibaro:call(58, "pressButton", "1"); fibaro:debug("Bascule vers Disney channel"); fibaro:sleep(1800*1000); -- Extinction lampe entrée à 8h, 1h 30 plus tard fibaro:call(71, "turnOff"); fibaro:debug("Extinction entrée"); end end D'avance merci de votre aide et bonne journée. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredric Posté(e) le 2 avril 2014 Signaler Partager Posté(e) le 2 avril 2014 allé, je tente de répondre, voir si j'ai capté les indication de super Shad il ne manque pas autostart --[[ %% properties 49 valueMeter autostart %% globals Reveil --]] oups, j'avais pas vu reveil Lien vers le commentaire Partager sur d’autres sites More sharing options...
p78ch201 Posté(e) le 2 avril 2014 Signaler Partager Posté(e) le 2 avril 2014 perso j'aurais fait un petit module avec 2 bouton (genre reveil ON et OFF) avec un variable globale pour le reveil, (mais bon, je ne sais faire que ça correctement ) avec ce type de code : local time_reveil="06:45"; local minute = 60000 --in milliseconds local currentDate = os.date("*t"); local currentTime = string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min); ------------------------------------------------------------------------------------------------------------- -- Reveil ------------------------------------------------------------------------------------------------------------- if time_reveil == currentTime then etc. etc. pour definir le weekend : j'ai une petite variable weekend qui me sert pour mes scenes variable "weekend" et "Jour_semaine" Cette variable est définie dans un autre module dont voici le code : (la variable "Jour_semaine" est une variable globale ayant 7 valeurs possibles : Lundi à Dimanche dont on n'a pas besoin ici) --[[ %% properties %% globals --]] local minute = 60000 --in milliseconds local currentDate = os.date("*t"); local currentTime = string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min); --wday=1 is Sunday --wday=2 is Monday --wday=3 is Tuesday --wday=4 is Wednesday --wday=5 is Thursday --wday=6 is Friday --wday=7 is Saturday local weekend = fibaro:getGlobal("weekend"); local jour = fibaro:getGlobal("Jour_semaine"); if (currentDate.wday == 1 ) then fibaro:setGlobal("weekend", 1); fibaro:setGlobal("Jour_semaine", "Dimanche") end if (currentDate.wday == 2 ) then fibaro:setGlobal("weekend", 0); fibaro:setGlobal("Jour_semaine", "Lundi") end if (currentDate.wday == 3 ) then fibaro:setGlobal("weekend", 0); fibaro:setGlobal("Jour_semaine", "Mardi") end if (currentDate.wday == 4 ) then fibaro:setGlobal("weekend", 0); fibaro:setGlobal("Jour_semaine", "Mercredi") end if (currentDate.wday == 5 ) then fibaro:setGlobal("weekend", 0); fibaro:setGlobal("Jour_semaine", "Jeudi") end if (currentDate.wday == 6 ) then fibaro:setGlobal("weekend", 0); fibaro:setGlobal("Jour_semaine", "Vendredi") end if (currentDate.wday == 7 ) then fibaro:setGlobal("weekend", 1); fibaro:setGlobal("Jour_semaine", "Samedi") end Lien vers le commentaire Partager sur d’autres sites More sharing options...
p78ch201 Posté(e) le 2 avril 2014 Signaler Partager Posté(e) le 2 avril 2014 sinon essaie de rajouter des lignes du type au début : fibaro:debug(string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min)) fibaro:debug(fibaro:getGlobalValue("Reveil")) ainsi tu pourras voir ce qui cloche dans le déclenchement de la scène Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tomzebest Posté(e) le 2 avril 2014 Signaler Partager Posté(e) le 2 avril 2014 Salut! Dans tes triggers tu as 49 ValueMeter. Bon sachant que tu es passé par les blocs pour faire ton script ça doit être normal (mais si tu as changé quelque chose dans cet entête le problème peut venir de la...), mais perso j'ai pas encore vu de script qui utilisait cette propriété. Tu peux nous dire quel module déclenche cette scène (le module 49) parce que ca m’intéresse. Bien souvent je vois des scènes se déclenchant au changement d'une valeur de la propriété 'value' d'un module simplement. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Romain80 Posté(e) le 2 avril 2014 Signaler Partager Posté(e) le 2 avril 2014 Salut, Oui il serait interressant de savoir "qui se cache" derriere l' ID 49. à‡a peut peut être aider a comprendre ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 2 avril 2014 Signaler Partager Posté(e) le 2 avril 2014 Déjàperso, je lancerais ta scene depuis le scheduler pour enlever un maximum de code car les variables je trouve pas sa fiable pour lancer une scene. Pour l'id 49 je dirais que c'est un wall plug. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Rem's Posté(e) le 2 avril 2014 Auteur Signaler Partager Posté(e) le 2 avril 2014 Exact, l'idée de l'ID 49 qui est un wall plug branché sur la TV, c'est de ne pas déclencher la scène si la tv est allumée (en marche elle pompe 150 w), si je suis déjà réveillé (par les info de BFM). La condition réveil, me permet de pouvoir basculer sur Off, si je décide de laisser dormir Madame. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés