59 lines
1.6 KiB
Lua
59 lines
1.6 KiB
Lua
-- this script can be used in conjunction with the System-alive checker plug-in.
|
|
-- the plugin pings a list of devices and creates switches for these devices
|
|
-- the reason for this script is to not treat devices as dead immediately after they
|
|
-- do not respond. More often than not, the second ping atempt does work. So only
|
|
-- if the device has been not responding for a while AFTER it is been presumed dead
|
|
-- then this script will notify you
|
|
|
|
-- put the names of these switches in the devicesToCheck list
|
|
-- you may have to tweak the THRESHOLD depending on the check interval
|
|
|
|
|
|
|
|
|
|
local THRESHOLD = 5 -- minutes
|
|
local devicesToCheck = {'ESP8266 CV', 'ESP8266 ManCave', 'ESP8266 Watermeter'}
|
|
|
|
return {
|
|
active = true,
|
|
on = {
|
|
devices = {
|
|
devicesToCheck
|
|
},
|
|
timer = {
|
|
'every 5 minutes'
|
|
}
|
|
},
|
|
data = {
|
|
notified = { initial = {} }
|
|
},
|
|
execute = function(domoticz, item, triggerInfo)
|
|
|
|
if (item.isTimer) then
|
|
|
|
-- check all devices that are off and have not been updated in the past 5 minutes and have not been notified for
|
|
for index, deviceName in pairs(devicesToCheck) do
|
|
|
|
local device = domoticz.devices(deviceName)
|
|
|
|
if (device.state == 'Off' and
|
|
device.lastUpdate.minutesAgo >= THRESHOLD and
|
|
domoticz.data.notified[deviceName] == false) then
|
|
|
|
domoticz.notify(deviceName .. ' is not responding anymore.',' ',domoticz.PRIORITY_HIGH)
|
|
|
|
-- make sure we only notify once for this device in this case
|
|
domoticz.data.notified[deviceName] = true
|
|
end
|
|
end
|
|
|
|
|
|
else
|
|
-- it is the device that was triggered
|
|
domoticz.data.notified[item.name] = false
|
|
|
|
end
|
|
|
|
end
|
|
}
|