Page 1 of 1
LUA för gryningssimulator/wakeup light
Posted: 20 Dec 2012, 10:59
by RaketHenrik
Efter mitt misslyckade försök att bygga en gryningssimulator med hjälp av blocks, så kastade jag mig över LUA nu när det kom i betan.
Tanken är att kalla på detta scenario från ett annat i vilket jag ställer väckningstiden. Koden fungerar om man trycker "Kör", spännande och se om man kommer upp i tid imorgon...
Code: Select all
--[[
%% properties
%% globals
--]]
local fadetime = 30; -- fade from 0 to 100 in x minutes
local fadestep = 1; -- procent to fade between each command, must be 1 or higher
local fadeunit = 17; -- id of lamp to be controlled
local autooff = 60; -- turn off after x minutes
-- no edit below this point
local fadesleep = (fadetime*60000) / (100/fadestep);
local fadelevel = 0 + fadestep;
while fadelevel <= 99 do
fibaro:call(fadeunit, "setValue", tostring(fadelevel));
fibaro:sleep(fadesleep);
fadelevel = fadelevel + fadestep;
end
fibaro:sleep((autooff*60000)-fadesleep);
fibaro:call(fadeunit, "setValue", "0");
Re: LUA för gryningssimulator/wakeup light
Posted: 09 Jan 2013, 14:51
by forumadmin
Väldigt intressant, har du vaknat ännu?
Re: LUA för gryningssimulator/wakeup light
Posted: 16 Jan 2013, 00:04
by RaketHenrik
Gäääääsp. Vasaru? =)
Jorå, den fungerar fint. Men schemaläggning med blocks buggar för mig, så man måste göra om scheman till LUA och sen se till att alla tider är tvåsiffriga. Dvs min väckningstid klockan 6:05 presenteras som 6:5 i LUAn när den är skapad från blocks. Ändrar jag det till 06:05 så fungerar det.
Förresten förbättrade jag scriptet lite, nu kan man avbryta väckningen genom att släcka eller dimma om lampan med brytare eller app.
Code: Select all
--[[
%% properties
%% globals
--]]
local fadetime = 30; -- fade from 0 to 100 in x minutes
local fadestep = 1; -- procent to fade between each command, must be 1 or higher
local fadeunit = 8; -- id of lamp to be controlled
local autooff = 60; -- turn off after x minutes
-- no edit below this point
local fadesleep = (fadetime*60000) / (100/fadestep);
local fadelevel = 0 + fadestep;
while fadelevel <= 99 do
if not (tonumber(fibaro:getValue(fadeunit, "value")) == fadelevel - fadestep) then
break;
end;
fibaro:call(fadeunit, "setValue", tostring(fadelevel));
fibaro:sleep(fadesleep);
fadelevel = fadelevel + fadestep;
end
fibaro:sleep((autooff*60000)-fadesleep);
fibaro:call(fadeunit, "setValue", "0");
Re: LUA för gryningssimulator/wakeup light
Posted: 24 Oct 2014, 10:26
by sonnyboy
Är det någon mer som kör med denna?
Jag får den inte att funka, den tänder med full styrka istället för lite lungt och mysigt
Re: LUA för gryningssimulator/wakeup light
Posted: 24 Oct 2014, 10:30
by Bamsefar
Jag kör nog med något liknande, påminner om liknande den koden jag kopierade någonstans:
Code: Select all
--[[
%% properties
%% globals
--]]
--kill any extra instances of the same scene
if (fibaro:countScenes() > 1) then fibaro:abort() end
local fadetime = 30 -- fade from 0 to 100 in x minutes
local fadestep = 1 -- procent to fade between each command, must be 1 or higher
local fadeunit1 = 9 -- id of lamp to be controlled
local fadeunit2 = 70 -- id of lamp to be controlled
local autooff = 60 -- turn off after x minutes
-- no edit below this point
local fadesleep = (fadetime*60000) / (100/fadestep)
local fadelevel = 0 + fadestep
while fadelevel <= 99 do
if not (tonumber(fibaro:getValue(fadeunit1, "value")) == fadelevel - fadestep) then
break
end
fibaro:call(fadeunit1, "setValue", tostring(fadelevel))
fibaro:call(fadeunit2, "setValue", tostring(fadelevel))
fibaro:sleep(fadesleep)
fadelevel = fadelevel + fadestep
end
fibaro:sleep((autooff*60000)-fadesleep)
fibaro:call(fadeunit1, "setValue", "0")
fibaro:call(fadeunit2, "setValue", "0")
Re: LUA för gryningssimulator/wakeup light
Posted: 24 Oct 2014, 10:40
by RaketHenrik
Skönt att se att mitt script lever vidare och har fått förbättringar!