Set security armed/disarmed by switch
Moderator: leecollings
Set security armed/disarmed by switch
Hi all,
Just purchased a keychain remote controller http://www.klikaanklikuit.nl/shop/produ ... -akct-511/
I tried to build a event that if the remote is presses I, the security turns to "Armed". And if i press O, the security gets disarmed.
But it seems that the security panel can't change from status by switches or other conditions?
Just purchased a keychain remote controller http://www.klikaanklikuit.nl/shop/produ ... -akct-511/
I tried to build a event that if the remote is presses I, the security turns to "Armed". And if i press O, the security gets disarmed.
But it seems that the security panel can't change from status by switches or other conditions?
-
- Posts: 24
- Joined: Tuesday 16 July 2013 10:12
- Target OS: Raspberry Pi / ODroid
- Domoticz version: Beta
- Contact:
Re: Set security armed/disarmed by switch
You have to do this with a lua script
Example
Example
Code: Select all
commandArray = {}
if (devicechanged['<Switch Name>'] == 'On') then
commandArray['Security panel'] = 'Arm Away'
end
if (devicechanged['<Switch Name>'] == 'Off') then
commandArray['Security panel'] = 'Disarm'
end
Return commandArray
Re: Set security armed/disarmed by switch
Hi Luuc_a !
Thanks for the tip, i'll check this later today to see if this works
Thanks for the tip, i'll check this later today to see if this works
Re: Set security armed/disarmed by switch
I tried this but it ain't seems to work yet
Code: Select all
print('this will end up in the domoticz log')
commandArray = {}
if (devicechanged['Sleutel 1'] == 'Group On') then
commandArray['Security'] = 'Armed Away'
end
if (devicechanged['Sleutel 1'] == 'Group On') then
commandArray['Security'] = 'Disarmed'
end
Return commandArray
-
- Posts: 4
- Joined: Saturday 21 December 2013 15:36
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Set security armed/disarmed by switch
Hi,
I'm currently playing with the same feature (using revision 1522) and I admit the behaviour is somewhat puzzling.
What I see is that :
- the two armed statuses should be spelled "Arm Home" and "Arm Away", like Luuc_a wrote, not "Armed" like you did. On the security panel screen, both expressions are present: http://screencast.com/t/TYK6fW4VVomO
- although the button on the panel is named "Disarm" and X10 security send the "Disarm" command and the status displayed on the security panel is then "Disarmed", the actual status of the security panel in disarmed mode is "Normal", not "Disarm"
- of course, the name you gave the Security Panel in your UI should match the one in your scripts. It seems domoticz can handle only one device of type "Security panel", so no matter the name you give it, if you open it using the "/secpanel" page (by clicking on its icon on the dashboard or via Setup > More Options > Security panel, you will change the status of that only security panel
- note that when switching to "Arm Home" or "Arm Away" (using the Security Panel UI or a lua script), there will be a delay before it triggers any script or changes state in the UI, depending on your settings in Setup > Application Settings > Security Panel > Delay. There is no delay when disarming however.
- since revision 1.1023, there are 3 types of lua scripts: "device", "time" and "security". When I arm/disarm using the control panel, both the "device" and "security" scripts are triggered (ok, well, ...). However the security one still logs the Security Panel in the previous state ! So if you change from Normal (Disarm) to Arm Home, the security script receives it in "Normal" state while the device script receives it in "Arm Home". I think that is a bug.
If others can confirm this behaviour, i think it would be interesting to file a bug for the last point that renders security scripts useless...
Hope it helps
Vicne
I'm currently playing with the same feature (using revision 1522) and I admit the behaviour is somewhat puzzling.
What I see is that :
- the two armed statuses should be spelled "Arm Home" and "Arm Away", like Luuc_a wrote, not "Armed" like you did. On the security panel screen, both expressions are present: http://screencast.com/t/TYK6fW4VVomO
- although the button on the panel is named "Disarm" and X10 security send the "Disarm" command and the status displayed on the security panel is then "Disarmed", the actual status of the security panel in disarmed mode is "Normal", not "Disarm"
- of course, the name you gave the Security Panel in your UI should match the one in your scripts. It seems domoticz can handle only one device of type "Security panel", so no matter the name you give it, if you open it using the "/secpanel" page (by clicking on its icon on the dashboard or via Setup > More Options > Security panel, you will change the status of that only security panel
- note that when switching to "Arm Home" or "Arm Away" (using the Security Panel UI or a lua script), there will be a delay before it triggers any script or changes state in the UI, depending on your settings in Setup > Application Settings > Security Panel > Delay. There is no delay when disarming however.
- since revision 1.1023, there are 3 types of lua scripts: "device", "time" and "security". When I arm/disarm using the control panel, both the "device" and "security" scripts are triggered (ok, well, ...). However the security one still logs the Security Panel in the previous state ! So if you change from Normal (Disarm) to Arm Home, the security script receives it in "Normal" state while the device script receives it in "Arm Home". I think that is a bug.
If others can confirm this behaviour, i think it would be interesting to file a bug for the last point that renders security scripts useless...
Hope it helps
Vicne
-
- Posts: 4
- Joined: Saturday 21 December 2013 15:36
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Set security armed/disarmed by switch
More observations:
The wiki says
I have two scripts (one device, one security), each logging the values of both the "Security Panel" device and the "Security" variable. Here is the log when disarming/arming from the Security Panel:
Best regards,
Vicne
The wiki says
The middle part is strange as the security panel is, in fact, part of the devices and arming/disarming actually does trigger device scripts. However, it's true that checking the "globalvariables['Security']" variable does return the three status mentioned above (this time in their past form, "Armed" or "Disarmed")The state of the Domoticz built in security system can be checked via globalvariables['Security']. This will return "Disarmed", "Armed Home" or "Armed Away". It is not a true device, so it will not be picked up as one in a device script. Use a security script to trigger on security status changes.
I have two scripts (one device, one security), each logging the values of both the "Security Panel" device and the "Security" variable. Here is the log when disarming/arming from the Security Panel:
Code: Select all
Sun Feb 23 16:53:04 2014 LUA: Security script - otherdevices['Security Panel'] = 'Arm Home' and globalvariables['Security'] = 'Disarmed'
Sun Feb 23 16:53:04 2014 LUA: Device script - otherdevices['Security Panel'] = 'Normal' and globalvariables['Security'] = 'Disarmed'
Sun Feb 23 16:53:04 2014 (System) Domoticz Security Status (Security Panel)
Sun Feb 23 16:53:09 2014 LUA: Security script - otherdevices['Security Panel'] = 'Normal' and globalvariables['Security'] = 'Armed Home'
Sun Feb 23 16:53:09 2014 LUA: Device script - otherdevices['Security Panel'] = 'Arm Home' and globalvariables['Security'] = 'Armed Home'
Sun Feb 23 16:53:09 2014 (System) Domoticz Security Status (Security Panel)
Vicne
Last edited by Vicne on Sunday 23 February 2014 17:22, edited 1 time in total.
-
- Posts: 4
- Joined: Saturday 21 December 2013 15:36
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Set security armed/disarmed by switch
OK, anyway, here is my script to arm/disarm Domoticz's security from my X10 KeyChain remote:
And here is the corresponding log with an Arm/Disarm cycle (delay = 0) :
Best regards,
Vicne
Code: Select all
commandArray = {}
for device, value in pairs(devicechanged) do
if (device == 'KeyChain') then
print ("Setting 'Security Panel' to '" .. otherdevices[device] .. "' state")
commandArray['Security Panel'] = otherdevices[device]
end
end
return commandArray
Seems to work pretty well. Hope it helps.Sun Feb 23 17:00:57 2014 LUA: Setting 'Security Panel' to 'Arm Away' state
Sun Feb 23 17:00:57 2014 Script event triggered: /volume1/misc/domoticz/scripts/lua/script_device_CheckSecurity.lua
Sun Feb 23 17:00:57 2014 (RfxTrx433) Security 1 (KeyChain)
Sun Feb 23 17:00:57 2014 (System) Domoticz Security Status (Security Panel)
Sun Feb 23 17:01:03 2014 LUA: Setting 'Security Panel' to 'Disarm' state
Sun Feb 23 17:01:03 2014 Script event triggered: /volume1/misc/domoticz/scripts/lua/script_device_CheckSecurity.lua
Sun Feb 23 17:01:03 2014 (RfxTrx433) Security 1 (KeyChain)
Sun Feb 23 17:01:03 2014 (System) Domoticz Security Status (Security Panel)
Best regards,
Vicne
Re: Set security armed/disarmed by switch
Hi Vicne,
Ah good investigation! I'll check the script later this evening.
I need to learn a bit more about the LUA scripting
Ah good investigation! I'll check the script later this evening.
I need to learn a bit more about the LUA scripting
-
- Posts: 12
- Joined: Monday 13 July 2015 12:14
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Set security armed/disarmed by switch
I'm not get it work... This is the script I have
---------
commandArray = {}
if (devicechanged['RemoteHJ'] == 'On') then
commandArray['Domoticz Security Panel'] = 'Arm Away'
end
return commandArray
--------
What do I wrong
---------
commandArray = {}
if (devicechanged['RemoteHJ'] == 'On') then
commandArray['Domoticz Security Panel'] = 'Arm Away'
end
return commandArray
--------
What do I wrong
-
- Posts: 15
- Joined: Thursday 09 June 2016 22:43
- Target OS: NAS (Synology & others)
- Domoticz version:
- Contact:
Re: Set security armed/disarmed by switch
This is a 2 year old discussion that was brought to life in April 2016 and I seem to be having an issue related to this as well. Will try to provide more info. though
I have created a dummy device switCh called "SystemARMnDISARM" as an on/off switch. I would like this to control the security panel state. The following is my code sample
My log states the following when I try to toggle the switch.
Line 26 is the first line of the first if..then statement
Can anyone spot the missing trick?
I have created a dummy device switCh called "SystemARMnDISARM" as an on/off switch. I would like this to control the security panel state. The following is my code sample
Code: Select all
commandArray = {}
if (devicechanged['SystemARMnDISARM'] == 'On') then
print('AlarmPanel Arm Away')
commandArray['Security Panel'] = 'Arm Away'
end
if (devicechanged['SystemARMnDISARM'] == 'Off') then
print('AlarmPanel Disarming')
commandArray['Security Panel'] = 'Disarm'
end
return commandArray
This error then continues to occur until I make the Event inactive.2016-06-18 14:28:09.839 EventSystem: reset all events...
2016-06-18 14:28:33.165 User: Admin initiated a switch command
2016-06-18 14:28:33.172 LUA: AlarmPanel Arm Away
2016-06-18 14:28:33.166 (DummyHW) Lighting 1 (SystemARMnDISARM)
2016-06-18 14:29:00.022 Error: EventSystem: in System Arm and Disarm: [string "-- ..."]:26: attempt to index global 'devicechanged' (a nil value)
Line 26 is the first line of the first if..then statement
Can anyone spot the missing trick?
setup: Domoticz@SynNAS; RFXTRX 433; Response E. Alarm, Teqin IP PTZ Camera, Mercury Socket, 1byOne Chime; SSE smart meter
plan: Lightwave RF Dimmers & PIR, integ. evohome heating
plan: Lightwave RF Dimmers & PIR, integ. evohome heating
- jvdz
- Posts: 2189
- Joined: Tuesday 30 December 2014 19:25
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.107
- Location: Netherlands
- Contact:
Re: Set security armed/disarmed by switch
Is this a script made with the internal Script Editor? If so, change the dropdown box below LUA from All to Device.
Jos
Jos
New Garbage collection scripts: https://github.com/jvanderzande/GarbageCalendar
-
- Posts: 15
- Joined: Thursday 09 June 2016 22:43
- Target OS: NAS (Synology & others)
- Domoticz version:
- Contact:
Re: Set security armed/disarmed by switch
wow - yes it was done in the script editor and making the change to Device has indeed removed the constant error. I would ask why this has worked but I would like to save your invaluable help for the next question.
If the security panel status has successfully changed state then should the actual security panel also show the changed state? Unfortunately it hasn't and a script I have currently running to turn on / off a device (which works when I activate using the actual panel) does not seem to run. This makes me feel the panel is not actually being activated / deactivated - My LUA skills are rudimentary so I would print the actual state of the panel in my lua code after the declaration - but afraid I don't know the command!
If the security panel status has successfully changed state then should the actual security panel also show the changed state? Unfortunately it hasn't and a script I have currently running to turn on / off a device (which works when I activate using the actual panel) does not seem to run. This makes me feel the panel is not actually being activated / deactivated - My LUA skills are rudimentary so I would print the actual state of the panel in my lua code after the declaration - but afraid I don't know the command!
setup: Domoticz@SynNAS; RFXTRX 433; Response E. Alarm, Teqin IP PTZ Camera, Mercury Socket, 1byOne Chime; SSE smart meter
plan: Lightwave RF Dimmers & PIR, integ. evohome heating
plan: Lightwave RF Dimmers & PIR, integ. evohome heating
- jvdz
- Posts: 2189
- Joined: Tuesday 30 December 2014 19:25
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.107
- Location: Netherlands
- Contact:
Re: Set security armed/disarmed by switch
It is quite simple ones you know it: All means that the script is shelled with each event, which means for Device, Time and Variable change events. Looking at the log records you posted it was pretty clear this was a time event and the DeviceChanged table isn't available in Time events.. hence the error.daryah wrote:wow - yes it was done in the script editor and making the change to Device has indeed removed the constant error. I would ask why this has worked but I would like to save your invaluable help for the next question.
To check the Security panel changes you simply should see an entry in the domoticz log, but could also write a script that is triggered when the security panel changes by selecting "Security" in the dropdownbox and then create your own print of its status.
Code: Select all
print('### SecPanel: status changed to ' .. globalvariables['Security'])
New Garbage collection scripts: https://github.com/jvanderzande/GarbageCalendar
-
- Posts: 15
- Joined: Thursday 09 June 2016 22:43
- Target OS: NAS (Synology & others)
- Domoticz version:
- Contact:
Re: Set security armed/disarmed by switch
ok - i see why the error may have occured... devicechanged should only be used for device based events... but I trying to figure that out from the error response needs fluency in domoticz errors speak - which I unfortunately lack
updated the code to following:-
and getting following:-
updated the code to following:-
Code: Select all
commandArray = {}
if (devicechanged['SystemARMnDISARM'] == 'On') then
print('gonna attempt to arm away')
commandArray['Security Panel'] = 'Arm Away'
print('### SecPanel: status changed to ' .. globalvariables['Security'])
end
if (devicechanged['SystemARMnDISARM'] == 'Off') then
print('gonna attempt to disarm')
commandArray['Security Panel'] = 'Disarm'
print('### SecPanel: status changed to ' .. globalvariables['Security'])
end
return commandArray
So suspicion correct. The script is simply not affecting the security panel state. Am I using the right english tense? ie "Arm Away" vs Arming, Armed...2016-06-19 18:36:43.094 EventSystem: reset all events...
2016-06-19 18:36:50.663 User: Admin initiated a switch command
2016-06-19 18:36:50.669 LUA: gonna attempt to arm away
2016-06-19 18:36:50.670 LUA: ### SecPanel: status changed to Disarmed
2016-06-19 18:36:50.663 (DummyHW) Lighting 1 (SystemARMnDISARM)
2016-06-19 18:37:08.297 User: Admin initiated a switch command
2016-06-19 18:37:08.303 LUA: gonna attempt to disarm
2016-06-19 18:37:08.303 LUA: ### SecPanel: status changed to Disarmed
2016-06-19 18:37:08.298 (DummyHW) Lighting 1 (SystemARMnDISARM)
2016-06-19 18:37:38.547 User: Admin initiated a switch command
2016-06-19 18:37:38.554 LUA: gonna attempt to arm away
2016-06-19 18:37:38.554 LUA: ### SecPanel: status changed to Disarmed
setup: Domoticz@SynNAS; RFXTRX 433; Response E. Alarm, Teqin IP PTZ Camera, Mercury Socket, 1byOne Chime; SSE smart meter
plan: Lightwave RF Dimmers & PIR, integ. evohome heating
plan: Lightwave RF Dimmers & PIR, integ. evohome heating
- jvdz
- Posts: 2189
- Joined: Tuesday 30 December 2014 19:25
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.107
- Location: Netherlands
- Contact:
Re: Set security armed/disarmed by switch
The SecPanel isn't set yet at the time you print its status, so do as I suggested and make it a separate script that is triggered on the Security event!
... oh and make the set security panel look like this:
Jos
... oh and make the set security panel look like this:
Code: Select all
commandArray['SecPanel']='Disarm'
commandArray['SecPanel']='Arm Away'
New Garbage collection scripts: https://github.com/jvanderzande/GarbageCalendar
-
- Posts: 15
- Joined: Thursday 09 June 2016 22:43
- Target OS: NAS (Synology & others)
- Domoticz version:
- Contact:
Re: Set security armed/disarmed by switch
Hi - I changed the Lua code to say SecPanel and created another lua script to print the status based on a security event.
The print script does NOT get triggered when I press the dummy switch but does when I use the Security Panel directly. I have another blockly script already running that also gets triggered on security events, and this also only runs on panel arm / disarms.
The lua SecPanel sets continue to be ignored..
The print script does NOT get triggered when I press the dummy switch but does when I use the Security Panel directly. I have another blockly script already running that also gets triggered on security events, and this also only runs on panel arm / disarms.
The lua SecPanel sets continue to be ignored..
setup: Domoticz@SynNAS; RFXTRX 433; Response E. Alarm, Teqin IP PTZ Camera, Mercury Socket, 1byOne Chime; SSE smart meter
plan: Lightwave RF Dimmers & PIR, integ. evohome heating
plan: Lightwave RF Dimmers & PIR, integ. evohome heating
-
- Posts: 15
- Joined: Thursday 09 June 2016 22:43
- Target OS: NAS (Synology & others)
- Domoticz version:
- Contact:
Re: Set security armed/disarmed by switch
ok - managed to get it resolved - issue has been raised before here - viewtopic.php?t=8031
I set the password for the security panel and then was able to see it under my devices. Created a switch "IntSecPanel" (could call it anything really) via the green arrow and can now see this switch. My LUA script works after swapping out switch names
If I was more curious and had more time to play around with domoticz e.g. rather then clash of clans, I would test to see if I could use Blockly set commands to flip IntSecPanel rather then Lua
When I switch IntSecPanel from Dashboard I get prompted for the Pin which I can enter using the Android Keyboard.
However, as my dedicated Android device already has a pattern lock to access it, the need for two factor security panel access seems overkill to me.. As such, will just stick to my dummy switch which bypasses the need for a pin.
Next stop perhaps, purchase the Domoticz App Premium license and utilize the NFC capabilities of my device to arm / disarm
I set the password for the security panel and then was able to see it under my devices. Created a switch "IntSecPanel" (could call it anything really) via the green arrow and can now see this switch. My LUA script works after swapping out switch names
If I was more curious and had more time to play around with domoticz e.g. rather then clash of clans, I would test to see if I could use Blockly set commands to flip IntSecPanel rather then Lua
When I switch IntSecPanel from Dashboard I get prompted for the Pin which I can enter using the Android Keyboard.
However, as my dedicated Android device already has a pattern lock to access it, the need for two factor security panel access seems overkill to me.. As such, will just stick to my dummy switch which bypasses the need for a pin.
Next stop perhaps, purchase the Domoticz App Premium license and utilize the NFC capabilities of my device to arm / disarm
setup: Domoticz@SynNAS; RFXTRX 433; Response E. Alarm, Teqin IP PTZ Camera, Mercury Socket, 1byOne Chime; SSE smart meter
plan: Lightwave RF Dimmers & PIR, integ. evohome heating
plan: Lightwave RF Dimmers & PIR, integ. evohome heating
-
- Posts: 10
- Joined: Wednesday 11 October 2017 11:09
- Target OS: Linux
- Domoticz version: Beta
- Location: NRW
- Contact:
Re: Set security armed/disarmed by switch
Hi,
trying to set up a simple Alarm System in my new Domoticz I found this Threat.
I'm trying exactly the same as above, but with no success. I don't manage to change the Security Panel status!
I have added a virtual switch to change from disarmed to arm away and vice versa.
I have used the WebIf event editor and have set the trigger to "device".
Additionally I have added another script with trigger "security" as suggested above:
this seems not be executed after the first script ran.
What am I doing wrong?
Thanks Dirk
trying to set up a simple Alarm System in my new Domoticz I found this Threat.
I'm trying exactly the same as above, but with no success. I don't manage to change the Security Panel status!
I have added a virtual switch to change from disarmed to arm away and vice versa.
Code: Select all
commandArray = {}
if (devicechanged['HouseMode'] == 'On') then
print('AlarmPanel Arm Away')
commandArray['SecPanel']='Arm Away'
end
if (devicechanged['HouseMode'] == 'Off') then
print('AlarmPanel Disarming')
commandArray['SecPanel']='Disarm'
end
return commandArray
Additionally I have added another script with trigger "security" as suggested above:
Code: Select all
commandArray = {}
printlog('###', 'SecPanel: status changed to ' .. globalvariables['Security'])
return commandArray
What am I doing wrong?
Thanks Dirk
NUC5CPYH - Proxmox VE - Ubuntu 18.4
- jvdz
- Posts: 2189
- Joined: Tuesday 30 December 2014 19:25
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.107
- Location: Netherlands
- Contact:
Re: Set security armed/disarmed by switch
Couple of questions:
- You do get the LOG entry from the print() statements in the first script?
- You do have a Switch device with the exact name "SecPanel" with the secpanel (Lock&Key) icon?
EDIT: You might want to update the second script to:
As the printlog() is a Function I use for my logging that might not be available for you.
Jos
- You do get the LOG entry from the print() statements in the first script?
- You do have a Switch device with the exact name "SecPanel" with the secpanel (Lock&Key) icon?
EDIT: You might want to update the second script to:
Code: Select all
commandArray = {}
print('### SecPanel: status changed to ' .. globalvariables['Security'])
return commandArray
Jos
New Garbage collection scripts: https://github.com/jvanderzande/GarbageCalendar
-
- Posts: 10
- Joined: Wednesday 11 October 2017 11:09
- Target OS: Linux
- Domoticz version: Beta
- Location: NRW
- Contact:
Re: Set security armed/disarmed by switch
OMG, I' feeling stupid!
My Security Panel is named "Domoticz Security Panel" in the dashboard!
Changing the name in the script did the trick!
Thanks a lot, Dirk
My Security Panel is named "Domoticz Security Panel" in the dashboard!
Changing the name in the script did the trick!
Thanks a lot, Dirk
NUC5CPYH - Proxmox VE - Ubuntu 18.4
Who is online
Users browsing this forum: No registered users and 1 guest