flamalex Posté(e) le 1 novembre 2015 Auteur Signaler Posté(e) le 1 novembre 2015 comment peut on ajouter les "minutes" pour etre plus précis et en GEA, qu'est ce que ca donnerait? --[[ %% properties 90 value %% globals --]] local now = tonumber ((os.date("%H"))); local luminosite = tonumber(fibaro:getValue(92, "value")) local mouvement = tonumber(fibaro:getValue(90, "value")) local seuilluminosite = 2 local heuredebut = 19 local heurefin = 21 fibaro:debug("Il est "..now) -- test si on est dans la fourchette horaire sinon STOP if (now < heuredebut or now > heurefin)then fibaro:abort(); end local scenenum = fibaro:countScenes(); -- 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(88, "turnOn") fibaro:abort(); end -- ici pour les passages suivants devant le fgms -- après 8sec sans mouvement on éteint setTimeout(function() local delayedCheck0 = false; local tempDeviceState0, deviceLastModification0 = fibaro:get(90, "value") fibaro:debug("Temps écoulé "..os.time() - deviceLastModification0) if (mouvement == 0 and (os.time() - deviceLastModification0) >= 9) then delayedCheck0 = true; else fibaro:call(88, "turnOn") end if ( delayedCheck0 == true ) then fibaro:call(88, "turnOff") end end,10000)
flamalex Posté(e) le 3 novembre 2015 Auteur Signaler Posté(e) le 3 novembre 2015 ok, avec les minutes ca donne ça reste a réaliser la mm chose en GEA --[[ %% properties 90 value %% globals --]] local currentDate = os.date("*t"); local currentTime = string.format("%02d", currentDate.hour)..":".. string.format("%02d",currentDate.min); local luminosite = tonumber(fibaro:getValue(92, "value")) local mouvement = tonumber(fibaro:getValue(90, "value")) local seuilluminosite = 2 local heuredebut = 19 local heurefin = 20 fibaro:debug("Il est "..currentTime) -- test si on est dans la fourchette horaire sinon STOP if currentTime < "19:30" or currentTime > "20:50" then fibaro:abort(); end local scenenum = fibaro:countScenes(); -- 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(88, "turnOn") fibaro:abort(); end -- ici pour les passages suivants devant le fgms -- après 8sec sans mouvement on éteint setTimeout(function() local delayedCheck0 = false; local tempDeviceState0, deviceLastModification0 = fibaro:get(90, "value") fibaro:debug("Temps écoulé "..os.time() - deviceLastModification0) if (mouvement == 0 and (os.time() - deviceLastModification0) >= 9) then delayedCheck0 = true; else fibaro:call(88, "turnOn") end if ( delayedCheck0 == true ) then fibaro:call(88, "turnOff") end end,10000)
flamalex Posté(e) le 8 août 2016 Auteur Signaler Posté(e) le 8 août 2016 "ma réponse"à "ma question" 1 an apres, pcq cela pourrait toujours servir à d'autre Merci à Nikko pour son aide ---------------------------------------------------------------------------- function setEvents() local id = {PIR_ESCALIER = 90, LUMINOSITE_ESCALIER= 92,DIM_ESC = 88} --ESCALIER ECL --la lumière s'allume à 1% si detection de MOUV et LUX<5 entre 19h30 et 20h50 GEA.add({id["PIR_ESCALIER"],{"Value-",id["LUMINOSITE_ESCALIER"], 5 }}, -1 , "" , {{"Time","19:30","20:50"},{"Value", id["DIM_ESC"],1}}) -- On définit une fonction qui au bout de 6 secondes éteint la lumière si PIR escalier Inactif function test2() setTimeout(function() if tonumber(fibaro:getValue(id["PIR_ESCALIER"],'value')) == 0 then fibaro:call(id["DIM_ESC"], "turnOff") end end, 6000) end -- Au déclenchement de 1 -> 0 du PIR (et les autres conditions vraies, on déclenche la fonction test() GEA.add({id["PIR_ESCALIER"],id["DIM_ESC"]}, -1 , "" , {{"Inverse"},{"Function",function() test2() end }}) ---------------------------------------------------------------------------- 1
Messages recommandés