SimonT 6 Signaler ce message Posté(e) 23 juin 2016 Bonjour Je cherche a faire un script en lua pour un scénario c'est à dire je voudrais que du lundi au vendredi entre 7h et 9h quand quelqu'un ferme ma porte (detecté par le FGK 101 non armée) cela actionne un bouton virtuel Pourriez-vous m'aider je n'arrive pas a le faire Merci d'avance Partager ce message Lien à poster Partager sur d’autres sites
SimonT 6 Signaler ce message Posté(e) 23 juin 2016 --[[ %% autostart %% properties 141 value 141 armed %% globals --]] local sourceTrigger = fibaro:getSourceTrigger(); local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if (( ((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) >= "07:00")) and (string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) <= "09:00")) and ( (tonumber(fibaro:getValue(141, "value")) == 0 and tonumber(fibaro:getValue(141, "armed")) == 0) ) ) then fibaro:call(90, "pressButton", "13"); end je serais bien partie sur ce code Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 23 juin 2016 Salut, Ca me semble OK, le code n'est pas le plus simple mais il devrait faire l'affaire ;-) A tester Comme ceci peut-etre plus lisible, astuce "volé" à MAITRE Steven pour les jours de la semaine local semaine = { Monday = true, Tuesday = true, Wednesday= true, Thursday = true, Friday = true, Saturday = false, Sunday = false } local heure = { mini = 07, maxi = 09 } local now = os.date("%H") if (semaine[os.date("%A")]) and now >= heure["mini"] and now <= heure["maxi"] and (tonumber(fibaro:getValue(141, "value")) == 0 and tonumber(fibaro:getValue(141, "armed")) == 0) then fibaro:call(90, "pressButton", "13") end Partager ce message Lien à poster Partager sur d’autres sites
SimonT 6 Signaler ce message Posté(e) 23 juin 2016 oui je viens de test mon code il marche le tien est pas mal je vais le test au plus vite ) merci Partager ce message Lien à poster Partager sur d’autres sites
SimonT 6 Signaler ce message Posté(e) 23 juin 2016 tu as une erreur ligne 17 compare number with string Partager ce message Lien à poster Partager sur d’autres sites
SimonT 6 Signaler ce message Posté(e) 23 juin 2016 si on met (semaine[os.date("%D")] au lieu de (semaine[os.date("%A")] plus d'erreur mais ca ne marche pas Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 24 juin 2016 Salut, parfait si le tien fonctionne, c'etait juste une proposition plus lisible ;-) en fait il faut mettre des tonumber Cela ne peut pas fonctionner avec des %D : cela renvoie une date au format jj/mm/aa alors que l'on compare avec les JOURS de la semaine, d'où le %A qui renvoie le jour complet. Comme ceci à tester if (semaine[os.date("%A")]) and tonumber(now) >= tonumber(heure["mini"]) and tonumber(now) <= tonumber(heure["maxi"]) Partager ce message Lien à poster Partager sur d’autres sites
jojo 2 620 Signaler ce message Posté(e) 24 juin 2016 sinon, une ligne de GEA, et l'affaire est dans le sac 1 Partager ce message Lien à poster Partager sur d’autres sites