Did I leave the door open?

Post Reply
User avatar
felix63
Posts: 145
Joined: Monday 07 December 2015 10:30
Target OS: Raspberry Pi
Domoticz version: 3.8275
Location: Gouda
Contact:

Did I leave the door open?

Post by felix63 » Friday 08 June 2018 15:15

A DzVents script to check to see if doors have been left open for too long. Both the number of doors and the threshold for reporting on a door are easily changed my adjusting the values in the table at the beginning of the script. The table 'devicesToCheck' needs to contain the exact names of your door switches. To prevent you going nuts the warnings will stop once the amounts of warning per door exceeds the variable alerCount.

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
}

User avatar
felix63
Posts: 145
Joined: Monday 07 December 2015 10:30
Target OS: Raspberry Pi
Domoticz version: 3.8275
Location: Gouda
Contact:

Re: Did I leave the door open?

Post by felix63 » Sunday 08 July 2018 12:59

Updated the script above to give a notification if the door is closed again....

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests