ventilation som ska gå 3 min varannan timme

Post Reply
Henrikel
Proffsmedlem
Posts: 687
Joined: 12 Dec 2013, 00:24
9
Location: Växjö
Contact:

Hej.

skulle behöva en LUA kod som aktiverar en ventilationsfläkt 3 min varannan timme mellan kl 7-18 vardagar.
Försökt få till någon med block, men verkar inte finnas det jag behöver där.
Är en hc3 som används.
Installations Elektriker
https://www.facebook.com/ramnasael
Installerar och säljer Z-wave lösningar
jang
Medlem
Posts: 388
Joined: 05 Jan 2014, 00:44
9
Location: Stockholm

Det här borde funka. Om man startar om QA'n under en timme då den skulle slå på fläkten så gör den det. Ex. om QA'n startas 17:30 så går fläkten 17:30-17:33, 18:00-18:03, ...
Om man "disablar" QA'n I web gränssnittet så slutar den köra tills man "enablar" den igen.

Code: Select all

local ID = 767       -- DeviceID of fan
local start = 7      -- Start hour
local stop = 18      -- stop hour
local period = 60*3  -- Time to have fan on
local interval = 2   -- Every second hour. Every hour set to 1

local function startDevice() print("Turning on fan") fibaro.call(ID,"turnOn") end
local function stopDevice() print("Turning off fan") fibaro.call(ID,"turnOff") end

local function between(h,s,e)
  if s > e then return h >= s or h <= e else return h >= s and h <= e end
end

local count,nextHour=0
local function loop()
  local hour = os.date("*t").hour
  if between(hour,start,stop) then
    if count % interval == 0 then
      startDevice()
      setTimeout(stopDevice,1000*period)
    else print("No action - next "..(hour + count % interval)) end
    count = count+1
  else 
    print("No action - next "..start)
    count = 0 
  end
  nextHour = nextHour + 3600
  setTimeout(loop,1000*(nextHour-os.time()))
end

function QuickApp:onInit()
  self:debug(self.name, self.id)
  if not __fibaro_get_device(self.id).enabled then
    self:debug("QA ",self.name," disabled")
  else
    nextHour = (os.time() // 3600) * 3600
    stopDevice()           -- Start QA in stopped state
    setTimeout(loop,0)
  end
end
Post Reply