Code: Select all
return {
on = {
devices = {
'Beveiliging', -- dummy selector
'Taglezer keuken', -- dummy
'Voordeur', -- door sensor
'Slaapkamer (voorzijde)', -- door sensor
'Woonkamer (voorzijde)', -- door sensor
'Keukendeur', -- door sensor
'Schuurdeur', -- door sensor
}
},
logging =
{
level = domoticz.LOG_ERROR, -- change to domoticz.LOG_DEBUG when somesthing is wrong
marker = 'beveiliging',
},
execute = function(dz, item)
local bev = dz.devices('Beveiliging')
local tagkkn = dz.devices('Taglezer keuken')
local aan = dz.devices('Beveiliging aan (led rood)')
local uit = dz.devices('Beveiliging uit (led groen)')
local buzkkn = dz.devices('Beveiliging buzzer keuken')
local vd = dz.devices('Voordeur')
local slpkmrvz = dz.devices('Slaapkamer (voorzijde)')
local wkvz = dz.devices('Woonkamer (voorzijde)')
local kkn = dz.devices('Keukendeur')
local schuur = dz.devices('Schuurdeur')
local asinb = dz.devices('Alarmsignaal inbraak')
local delay = 30 -- entry delay
if bev.state == 'Thuis' then
dz.log('alarmMode "Thuis" geactiveerd',dz.LOG_FORCE)
aan.switchOn()
uit.switchOff()
end
if bev.state == 'Afwezig' then
dz.log('alarmMode "Afwezig" geactiveerd',dz.LOG_FORCE)
aan.switchOn().afterSec(30) -- exit delay
uit.switchOff()
end
if bev.state == 'Afwezig+' then
dz.log('alarmMode "Afwezig+" geactiveerd',dz.LOG_FORCE)
aan.switchOn().afterSec(30) -- exit delay
uit.switchOff()
end
if tagkkn == 'On' and bev.state ~= 'Uit' then
bev.switchSelector('Uit')
end
if bev.state == 'Uit' then
dz.log('alarmMode "Uit" geactiveerd',dz.LOG_FORCE)
aan.switchOff()
uit.switchOn()
asinb.switchOff()
buzkkn.switchOff()
end
if (bev.state == 'Afwezig' or bev.state == 'Afwezig+') and (vd.state == 'On' or slpkmrvz.state == 'On' or wkvz.state == 'On') then
buzkkn.switchOn() -- All closed??
end
if bev.state == 'Thuis' and (vd.state == 'On' or slpkmrvz.state == 'On' or wkvz.state == 'On' or kkn.state == 'On' or schuur.state == 'On') then
dz.log('Inbraak!!! alarmMode "Thuis" geactiveerd',dz.LOG_FORCE)
dz.notify('Inbraak (thuis)',item.name .. ' geactiveerd',dz.PRIORITY_HIGH)
asinb.switchOn()
end
if (bev.state == 'Afwezig' or bev.state == 'Afwezig+') and aan.state == 'On' and (vd.state == 'On' or slpkmrvz.state == 'On' or wkvz.state == 'On' or kkn.state == 'On' or schuur.state == 'On') then
buzkkn.switchOn()
if kkn.lastUpdate.secondsAgo > delay then
dz.log('Inbraak!!! alarmMode "Afwezig" geactiveerd',dz.LOG_FORCE)
dz.notify('Inbraak (Afwezig)',item.name .. ' geactiveerd',dz.PRIORITY_HIGH)
asinb.switchOn()
end
end
if bev.state == 'Uit' and asinb.state == 'On' then
asinb.switchOff()
dz.notify('Reset alarm','Alarminstallatie gereset',dz.PRIORITY_HIGH)
end
end
}
Most of the script works as desired. There are 2 problems that I can't solve myself.
First:
Code: Select all
if tagkkn == 'On' and bev.state ~= 'Uit' then
bev.switchSelector('Uit')
Second:
Code: Select all
if (bev.state == 'Afwezig' or bev.state == 'Afwezig+') and aan.state == 'On' and (vd.state == 'On' or slpkmrvz.state == 'On' or wkvz.state == 'On' or kkn.state == 'On' or schuur.state == 'On') then
buzkkn.switchOn()
if kkn.lastUpdate.secondsAgo > delay then
dz.log('Inbraak!!! alarmMode "Afwezig" geactiveerd',dz.LOG_FORCE)
dz.notify('Inbraak (Afwezig)',item.name .. ' geactiveerd',dz.PRIORITY_HIGH)
asinb.switchOn()
end
end
Thanks in advance!
Jan