bug in Security panel or error in my script normally the last
Posted: Saturday 13 February 2021 13:24
I want to take action based on the state/change of the Security Panel.
When i try to read the value of item.name i get an error.
error
2021-02-13 13:18:16.925 Error: dzVents: Error: (3.1.4) An error occurred when calling event handler DZ_security_panel
2021-02-13 13:18:16.925 Error: dzVents: Error: (3.1.4) .../scripts/dzVents/generated_scripts/DZ_security_panel.lua:23: attempt to concatenate a nil value (field 'name')
script
When i try to read the value of item.name i get an error.
error
2021-02-13 13:18:16.925 Error: dzVents: Error: (3.1.4) An error occurred when calling event handler DZ_security_panel
2021-02-13 13:18:16.925 Error: dzVents: Error: (3.1.4) .../scripts/dzVents/generated_scripts/DZ_security_panel.lua:23: attempt to concatenate a nil value (field 'name')
script
Code: Select all
-- dit script alleen bij handmatige device acties bij
-- AB (alarm scripts aanroepen, zit allemaal in alarm script
-- handmatige acties op het software Panel, deze heeft zelf al een uitloop vertraging en beeps alleen thuis wordt niet aan/uit gezet
local Panelname = 'Domoticz Security Panel'
return {
on = { devices = {Panelname,'$remote_arm*','$remote_disarm*'},
},
execute = function(dz,item,info)
_G.logLevel = dz.helpers.get_logtype(dz) -- dz.log('debug test',dz.LOG_DEBUG) this will only make it to the log when LOG_DEBUG is set AND dz.log('blabla',dz.LOG_FORCE) -- this will allways make it tp the log
_G.logMarker = _G.moduleLabel -- marker wordt scriptnaam
local messageTable = {}
-- HIER START DE EXECUTIE
local securityPanel = dz.devices(1728) -- security panel
local Notify = true -- wel/niet notify naar ontvangers bij een alarm
local Notifiers = 'pvkmobiel,redminote7_mvk' -- ontvanger van een pushbericht
--local Notifiers = 'pvkmobiel' -- ontvanger van een pushbericht
local Durtimer_inloop = 25 -- na hoeveel seconden moet de knop worden uitgezet
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', 'CHECKPOINT: 1:',10)
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', 'CHECKPOINT: 2:' .. 'Item:' .. item.name .. ' State:' .. item.state,10) --secpanel:' .. securityPanel.state .. ' cfg'
--[[
if item.name == Panelname then -- alleen handmatige acties op paneel
if (item.state == 'Armed Away') then
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', 'CHECKPOINT: 3:',10) --secpanel:' .. securityPanel.state .. ' cfg'
dz.devices('Alarm').switchSelector('Arm_away')
--dz.devices('Thuis').switchOff().afterSec(Durtimer_inloop)
--dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' HOME SECURITY: ARMED AWAY...',10)
--if Notify then dz.notify('HUISALARM: is AAN:AWAY','HUISALARM_CENTRALE',dz.PRIORITY_HIGH,'',Notifiers,dz.NSS_PUSHOVER) end -- dz.PRIORITY_LOW, dz.PRIORITY_MODERATE, dz.PRIORITY_NORMAL, dz.PRIORITY_HIGH, dz.PRIORITY_EMERGENCY
elseif (item.state == 'Armed Home') then
dz.devices('Alarm').switchSelector('Arm_home')
--dz.devices('Thuis').switchOn()
--dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' HOME SECURITY: ARMED HOME...',10)
--if Notify then dz.notify('HUISALARM: is AAN:HOME','HUISALARM_CENTRALE',dz.PRIORITY_HIGH,'',Notifiers,dz.NSS_PUSHOVER) end
elseif (item.state == 'Disarmed') then
dz.devices('Alarm').switchSelector('Disarm')
--dz.devices('Thuis').switchOn()
--dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' HOME SECURITY: DISARMED...',10)
--if Notify then dz.notify('HUISALARM: is UIT','HUISALARM_CENTRALE',dz.PRIORITY_HIGH,'',Notifiers,dz.NSS_PUSHOVER) end
else
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' HOME SECURITY: Onbekende status...',30)
end
elseif (dz.helpers.matchesWildCardedString(dz,item.name, '$remote_arm*')) and (item.lastUpdate.secondsAgo > 8) then -- was <8
if dz.devices('Alarm_cfg').state ~= 'uit' then
dz.devices('Alarm').switchSelector('Arm_away') -- speelt alleen geluid af in node-red is nieuw moet aangezet worden omdat armaway geen geluid aanzet of te laat
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' AFSTANDSBEDIENING: ' .. item.name .. ' ARM geactiveerd...',10)
else
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' AFSTANDSBEDIENING: ' .. item.name .. ' ARM niet geactiveerd, ALARM CFG staat OFF...',10)
end
elseif (dz.helpers.matchesWildCardedString(dz,item.name, '$remote_disarm*')) and (item.lastUpdate.secondsAgo > 8) then -- was <8
dz.devices('Alarm').switchSelector('Disarm')
dz.helpers.globalMessage2(dz,item,info,messageTable,'add', ' AFSTANDSBEDIENING: ' .. item.name .. ' DISARM geactiveerd...',10)
end
]]--
dz.helpers.globalMessage2(dz,item,info,messageTable,'chg')
end
}