LUA för gryningssimulator/wakeup light

Hjälp varandra att vara kreativa för att göra hemmet mer bekvämt.
Post Reply
RaketHenrik
Medlem
Posts: 36
Joined: 30 Nov 2012, 10:53
11
Contact:

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");

forumadmin
Site Admin
Posts: 276
Joined: 10 Dec 2011, 11:43
12

Väldigt intressant, har du vaknat ännu? :D
RaketHenrik
Medlem
Posts: 36
Joined: 30 Nov 2012, 10:53
11
Contact:

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");
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
11
Location: Västerås

Ä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
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
User avatar
Bamsefar
Z-Wave Kung
Posts: 1258
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

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")
Jämför Home Assistant med HomeSeer 4 på generation 800 controller - here we go! :mrgreen:
RaketHenrik
Medlem
Posts: 36
Joined: 30 Nov 2012, 10:53
11
Contact:

Skönt att se att mitt script lever vidare och har fått förbättringar! :)
Post Reply