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... :D

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? :D

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! :)