07.02.2023, 08:54
Modify the function like this:
Code:
function findtime(addr, value)
local obj, file, data
-- read data from cache file
file = '/tmp/lm-scheduler-' .. os.date('%Y%m%d') .. '.lua'
data = io.readfile(file)
-- cache file missing, stop
if not data then
return
end
-- try decoding cache
data = serialize.decode(data)
if type(data) ~= 'table' then
return
end
obj = knxlib.encodega(addr)
for time, events in pairs(data) do
if type(time) == 'number' then
for _, event in ipairs(events) do
if event.object == obj and value == toboolean(event.value) then
return time
end
end
end
end
end