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.
ventilation som ska gå 3 min varannan timme
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.
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