Sida 1 av 1

Dum fråga gällande timers i Lua HC2-scener

Postat: 12 apr 2016, 20:39
av dargosch
Hej,

Jag stötte just på en sak som gör att jag ifrågasätter det jag trott om Lua-scener och trippers som är tids, temperatur eller något annat- baserade.
Om någon också hänger på forum.fibaro.com så ber jag om ursäkt för att jag även ställt denna fråga där (men den kan ha begravts där)

Jag trodde att denna scen:

Kod: Markera allt

--[[
%% autostart
%% properties
%% events
%% globals
--]]


function myTimer(shouldRun, functionToRun, sleepSeconds )
    if (fibaro:countScenes() == 1 and shouldRun ) then
        functionToRun();
        fibaro:sleep(sleepSeconds*1000);
    end;
end

function myFunc ()
  fibaro:call(21, "setValue", "3")
end 


myTimer(true, myFunc, 5);
då och då (med ca 5 sekunders mellanrum) skulle dimma ner lampan med IDt 21. Dimma ner lampan gör den, men bara en gång.
Jag trodde den skulle köras då och då denna scen, inte bara en gång. Hur fungerar detta egentligen?
Måste jag lägga en explicit while-loop runt kollen av konditions??

Tack på förhand!

Fredrik

Re: Dum fråga gällande timers i Lua HC2-scener

Postat: 13 apr 2016, 08:05
av dargosch
Ok, jag fick svar. Det måste finnas en loop någonstans. Lua har tail call elimination visar det sig (blir lite glad av sådant, som funktionell programmerarer) så en recursion här blir fint.