SimonT Posté(e) le 23 juin 2016 Signaler Posté(e) le 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
SimonT Posté(e) le 23 juin 2016 Auteur Signaler Posté(e) le 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
pepite Posté(e) le 23 juin 2016 Signaler Posté(e) le 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
SimonT Posté(e) le 23 juin 2016 Auteur Signaler Posté(e) le 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
SimonT Posté(e) le 23 juin 2016 Auteur Signaler Posté(e) le 23 juin 2016 tu as une erreur ligne 17 compare number with string
SimonT Posté(e) le 23 juin 2016 Auteur Signaler Posté(e) le 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
pepite Posté(e) le 24 juin 2016 Signaler Posté(e) le 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"])
jojo Posté(e) le 24 juin 2016 Signaler Posté(e) le 24 juin 2016 sinon, une ligne de GEA, et l'affaire est dans le sac 1
Messages recommandés