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

Diskussioner runt hur den tänkta funktionaliteten nås
dargosch
Tar hemautomation på allvar
Inlägg: 281
Blev medlem: 26 aug 2015, 09:37
Ort: Holmsund

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

Inlägg 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
"Life is like a trumpet - if you don't put anything into it, you don't get anything out of it."
- William Christopher Handy

Rekommenderad läsning för Z-wave-entusiaster
https://bit.ly/2GS72Ez
dargosch
Tar hemautomation på allvar
Inlägg: 281
Blev medlem: 26 aug 2015, 09:37
Ort: Holmsund

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

Inlägg 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.
"Life is like a trumpet - if you don't put anything into it, you don't get anything out of it."
- William Christopher Handy

Rekommenderad läsning för Z-wave-entusiaster
https://bit.ly/2GS72Ez
Skriv svar