Code: Select all
local devicesToCheck = {
-- table with doors to check and the minutes before the first warning is given
{ ['name'] = 'Voordeur', ['threshold'] = 3 },
{ ['name'] = 'Garagedeur', ['threshold'] = 10 },
{ ['name'] = 'Achterdeur', ['threshold'] = 3 },
{ ['name'] = 'Provisiekast deur', ['threshold'] = 10 },
{ ['name'] = 'Bergingdeur', ['threshold'] = 10 },
}
-- number of times you are warned about an open door
local alertCount = 3
return {
active = true,
on = {
timer = {'every 5 minutes'},
},
logging = {
-- level = domoticz.LOG_INFO,
marker = "POR"
},
-- count per door of the number of alerts per door
data = {
['Voordeur'] = {initial=0},
['Garagedeur'] = {initial=0},
['Achterdeur'] = {initial=0},
['Provisiekast deur'] = {initial=0},
['Bergingdeur'] = {initial=0},
},
execute = function(domoticz)
for i, deviceToCheck in pairs(devicesToCheck) do
local name = deviceToCheck['name']
local threshold = deviceToCheck['threshold']
local state = domoticz.devices(name).state
local minutes = domoticz.devices(name).lastUpdate.minutesAgo
if ( state == 'Open') then
domoticz.log('Device ' .. name .. ' staat ' .. minutes .. ' minuten open.')
if (minutes > threshold) and (domoticz.data[name] < alertCount) then
domoticz.data[name] = domoticz.data[name] + 1
domoticz.notify('Device ' .. name .. ' staat al langer dan ' .. minutes .. ' minuten open.', domoticz.PRIORITY_HIGH)
domoticz.log('dit is waarschuwing #' .. tostring(domoticz.data[name]))
end
elseif (domoticz.data[name] > 0) then
domoticz.notify('Device ' .. name .. ' is weer gesloten.', domoticz.PRIORITY_HIGH)
domoticz.log('Device ' .. name .. ' is ' .. minutes .. ' dicht.')
domoticz.data[name] = 0
end
end
end
}