Twinznavy Skrevet 25. september 2020 Skrevet 25. september 2020 (endret) Hei. Kan noen hjelpe meg med en LUA kode, er helt grønn i dette. Jeg har Fibaro HC2. Jeg ønsker å lage en kode som tar høyde for variablene Dag/Natt Lys ved "natt" settes til 20 % ved bevegelse på fibaro motion sensor og er på i 3 min før det slås av. Lys ved "dag" settes til 100 % ved bevegelse på fibaro motion sensor og 15 min før det slås av. Har funnet en kode som virker, for av og på men sliter med å få inn variablene Dag og Natt. --[[ %% properties 106 value 174 value %% globals --]] -- CHANGE ABOVE VALUES 24 AND 27 TO MOTION DETECTOR AND LIGHT SENSOR ID! if (fibaro:countScenes()>1) then fibaro:abort(); end local getGlobalValue = Natt local motid = 174 -- ID for the motion detector local luxid = 176 -- ID for the light sensor local dimid = 106 -- ID for the dimmer you want to operate local light = 10000 -- Lux level below which motion will trigger the light on, if lights should always turn on with motion set at 10000 local ondim = 20 -- Determines what light setting the light will start at if (tonumber(fibaro:getValue(motid, "value"))) > 0 and (tonumber(fibaro:getValue(luxid, "value")) < light) and (tonumber(fibaro:getValue(dimid, "value")))<1 then local starttimer =60; -- Determines how long the light will stay on before dimming starts local timer = (starttimer)+ondim; local dimout=ondim; fibaro:call(dimid, "setValue", dimout); fibaro:debug("Lights on at level "..dimout); repeat fibaro:sleep(1000); --below if condition will turn the light off if the wall switch is pressed and --timeout for 10 seconds to avoid the scene retriggering due to motion in the --room. if (tonumber(fibaro:getValue(dimid, "value"))) < 1 then timer=1; fibaro:call(dimid, "turnOff"); fibaro:debug("Light switched off manually, time out for 10 seconds"); fibaro:sleep(10000); break end fibaro:call(dimid, "setValue", dimout); timer=timer-1; --below if condition will reset the timer and the dim level to initial values if --motion has been detected since last sleep period. This means that as long as --there is movement in the room, the light will remain lit. if (tonumber(fibaro:getValue(motid, "value"))) > 0 then timer=starttimer+ondim; fibaro:debug("Motion detected, reseting timer"); dimout=ondim; end fibaro:debug(timer); until (timer<1) --Once the timer has finished and dimlevel reaches 1, the light will be turned off fibaro:call(dimid, "turnOff"); fibaro:debug("Lights out"); --Change below number to the id of the scene fibaro:killScenes(95); end Endret 25. september 2020 av Twinznavy Siter
Tornado Skrevet 1. januar 2021 Skrevet 1. januar 2021 Hvorfor LUA, dette gjøres enkelt med block programmering? Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.