Aller au contenu
SimonT

Actionner Un Bouton Virtuel Fermeture Porte Fgk 101 Avec Conditions

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

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

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

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

sinon, une ligne de GEA, et l'affaire est dans le sac

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×