Aller au contenu
Eliah

Aide Lua : Détection Automatique Éclairage

Recommended Posts

1) tu peux deja commencer par retirer le 94 value dans l'entete
2) remplaces ton code par celui ci

 

EDIT: modifié suivant message de NIKKO
 

--[[
%% properties
92 value
%% globals
--]]
local currentDate = os.date("*t");
local currentTime = string.format("%02d", currentDate.hour)..":".. string.format("%02d",currentDate.min);
local luminosite = tonumber(fibaro:getValue(94, "value"))
local mouvement = tonumber(fibaro:getValue(92, "value"))
local seuilluminosite = 100
fibaro:debug("Il est "..currentTime)
-- test si on est dans la fourchette horaire sinon STOP
if currentTime < "10:00" or currentTime > "16:00"
then
fibaro:abort();
end

local scenenum = fibaro:countScenes();
fibaro:debug("Nombre de scènes : "..scenenum);
if scenenum >= 5 then fibaro:abort();
end
-- test si première instance de la scène. on allume et stop
if (scenenum >= 1 and luminosite <= seuilluminosite and mouvement >= 1 ) then
fibaro:call(29, "turnOn")
fibaro:call(171, "turnOn")
fibaro:abort();
end
-- ici pour les passages suivants devant le fgms
-- après 60sec sans mouvement on éteint
setTimeout(function()
local delayedCheck0 = false;
local tempDeviceState0, deviceLastModification0 = fibaro:get(92, "value")

fibaro:debug("Temps écoulé "..os.time() - deviceLastModification0)

if (mouvement == 0 and (os.time() - deviceLastModification0) >= 60)
then delayedCheck0 = true;
end
if ( delayedCheck0 == true )
then fibaro:call(29, "turnOff")
fibaro:call(171, "turnOff")
end
end,60000)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

@yannick:

 

Dans cette partie de ton code:

local scenenum = fibaro:countScenes();
fibaro:debug("Nombre de scènes : "..scenenum);
if scenenum >= 5 then Fibaro:abort();
 end 
 -- test si première instance de la scène. on allume et stop
if (scenenum >= 1 and luminosite <= seuilluminosite and mouvement >= 1 ) then
    fibaro:call(29, "turnOn")
    fibaro:call(171, "turnOn")
    fibaro:abort();
end
  • ce n'est pas Fibaro:abort() mais fibaro:abort() qu'il faut écrire
  • Si tu testes la 1ere instance ce n'est pas scenenum >= 1 (car cela sera toujours vrai) mais scenenum == 1 non ?

Nicolas

Partager ce message


Lien à poster
Partager sur d’autres sites

je vais tenter tout ça... Merci les gars. 

 

Je me suis rendu compte tout à  l'heure que mon FGMS détectais des mouvements tout le temps et du coup il déclenchait la scène sans arrêt. Je l'ai réveillé et reconfiguré et je vais voir ce que cela donne. merci je vous tiens au jus. 

 

@Nikko, j'avais vu mon erreur de syntaxe, je l'ai corrigé  merci. Pour le test sur la 1ère instance, cela marchait nickel comme ça avant la mise à  jour. 

 

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut Yannick,

bien vu Nico (comme dab)

pour info:

Yannick, j'ai changé le debut du script, "currentTime" et "currentDate" , car j ai eu bcp de bug avec uniquement "tonumber...osdate..."

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut mon ami.. ça fonctionne, je n'ai rien fait de spécial et ça refonctionne normalement...

 

Merci pour ta sollicitude !!!

 

A bientôt

Partager ce message


Lien à poster
Partager sur d’autres sites

×