Aller au contenu

Actionner Un Bouton Virtuel Fermeture Porte Fgk 101 Avec Conditions


SimonT

Recommended Posts

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

Lien vers le commentaire
Partager sur d’autres sites

--[[
%% 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

Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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"])
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...