Alarm system 'wiki'

In this subforum you can show projects you have made, or you are busy with. Please create your own topic.
User avatar
Egregius
Posts: 2691
Joined: Thursday 09 April 2015 12:19
Target OS: Linux
Domoticz version: Beta
Location: Beitem, BE
Contact:

Re: Alarm system 'wiki'

Post by Egregius » Sunday 04 December 2016 8:21

It's my why :P
I use 2 icons on my floorplan to handle this:
Image
Green house means home, otherwise it's red.
Opacque sleepy icon means not a sleep, otherwise it's yellow.

In my situation there's not much difference between sleep and away.
Sleep = all downstairs sensors trigger alarm, heating automatic.
Away = down+upstairs sensors trigger alarm, heating low.


In my script almost everything is based on if away or if sleep

korniza
Posts: 198
Joined: Thursday 27 August 2015 18:12
Target OS: Raspberry Pi
Domoticz version: V3.6028
Location: Greece
Contact:

Re: Alarm system 'wiki'

Post by korniza » Sunday 04 December 2016 9:46

You have a point on this. Do you use proximity sensors (bluetooth/rfid/rf) to switch mode so they work as indicators or you use these buttons?
>>>> Google Home <<<<<
SBC: Odroid XU4 * Raspberry Pi2 * banana Pi v1
Peripherals: rfxtrx433E, aeon z-stick gen5, bluetooth dongles
Extended Software packages: Xeoma (video NVR), FHEM (extra home automation software)

User avatar
Egregius
Posts: 2691
Joined: Thursday 09 April 2015 12:19
Target OS: Linux
Domoticz version: Beta
Location: Beitem, BE
Contact:

Re: Alarm system 'wiki'

Post by Egregius » Sunday 04 December 2016 10:31

Just the buttons, nothing automatic cause I didn't find anything yet that is 100% stable.

lost
Posts: 169
Joined: Thursday 10 November 2016 10:30
Target OS: Raspberry Pi
Domoticz version:
Contact:

Re: Alarm system 'wiki'

Post by lost » Sunday 18 December 2016 9:38

korniza wrote:
lost wrote:On paper I designed sensors and put some user variables on every sensor (weights).
Hello,

Just to say I got inspired by your weighting mechanism. On my side, external motion is detected by a hidden camera that'll send pjg files to a ftp server on my PI. As there is no delay between motion captures (to get max chances to see someones head), there can be a few captures by second.

On the PI side, a python script runned as a service monitors ftp cam directory & zip (with passwd) then email (gmail ext account) archive using a name including motion files archive nb.

This nb is also given as a weight for a domoticz user var used by lua side that trigs alarms.

So a little capture because luminosity changes = no alarm... Someone messing around = alarm.

All internal sensors have a weight that'll trigger alarm immediately, I plan to have a weight approach for external sensors (I plan to set PIRs oustide, where they give false alerts).

So you gave me a good idea! :D

Till
Posts: 3
Joined: Saturday 07 January 2017 2:50
Target OS: Linux
Domoticz version:
Contact:

Re: Alarm system 'wiki'

Post by Till » Monday 29 May 2017 17:54

Hi,
heggink wrote:All,

IMPORTANT: The original WIKI was created when domoticz still recognised changes in user variables and was able to trigger events. That is no longer the case. User variables need to be replaced with dummy devices instead.
I had a lot of issues getting the alarm system to work well with the current stable Domoticz release. Now it seems to work. I'd like to document here what I've done, to help others (and prevent them from wasting several hours, like I did...). Feedback is welcome.

My conventions:
- All "Door" sensors have names that start with "Door" ("MCS_" in the original version)
- All motion sensors have names that start with "Motion" ("PIR_" in the original version)

I created the following dummy devices (Virtual Switches):
- "AlarmDetected": Becomes Active when an alarm is detected
- "VirtualSiren": The device that triggers physical siren(s). Using a virtual device for this makes it easier to support multiple sirens/signaling devices, and solves some other problems. "Sirene: Innen" is my physical siren.
- "AlarmSirenTrigger": Used for the siren delay

The original LUA code has only been modified slightly. Here it is:

Event "MotionAlarm" - Device:

Code: Select all

-- Title: script_device_PIRAlarm.lua
-- Date: 12-11-2015
-- checks for PIR during Alarm Away status
-- if detected then alert and set the alarm flag
-- 
 
commandArray = {}
 
tc=next(devicechanged)
PIR_switch=tostring(tc)
if (PIR_switch:sub(1,6) == 'Motion') then
	if(otherdevices['Security Panel'] == 'Arm Away') then
		print('Movement detected on '..PIR_switch)
		-- commandArray['SendNotification']='Movement detected on '..PIR_switch
		commandArray['Variable:LastAlarmDevice'] = 'Detected movement on '..PIR_switch
		commandArray['AlarmDetected']='On'
	end
end
 
return commandArray
Event "DoorAlarm" - Device:

Code: Select all

-- Title: script_device_MCSAlarm.lua
-- Date: 12-11-2015
-- checks for MCS during Alarm Away status
-- if detected then alert and set the alarm flag
 
commandArray = {}
 
tc=next(devicechanged)
MCS_switch=tostring(tc)
if (MCS_switch:sub(1,4) == 'Door') then
	if(otherdevices['Security Panel'] == 'Arm Away') then
		print('Door open/close detected for '..MCS_switch)
		commandArray['Variable:LastAlarmDevice'] = 'Detected door open/close on '..MCS_switch
		-- commandArray['SendNotification']='Door open/close detected for '..MCS_switch
		commandArray['AlarmDetected']='On'
	end
end
 
return commandArray
Event "KeypadAlarm" - Device:

Code: Select all

-- Title: script_device_AlarmPanel.lua
-- Date: 19-11-2015
-- this scrip switches the Alarm Status according to the alarm panel
--
commandArray = {}
 
tc=next(devicechanged)
Panel=tostring(tc)
if (Panel == 'Keypad Alarm Level') then
--      set the group to the status of the switch
        if (devicechanged[Panel] == 'On') then
                print('AlarmPanel Arm Away')
                commandArray['Security Panel'] = 'Arm Away'
        else
                print('AlarmPanel Disarm')
                commandArray['Security Panel'] = 'Disarm'
                commandArray['Keypad Ack'] = 'On'
        end
end
return commandArray
Event "SirenDelay" - Device - triggers siren after 30sec:
sirendelay.png
sirendelay.png (21.59 KiB) Viewed 1955 times
Event "SoundSiren" - Device - actually enable the siren once the delay has passed:
soundsiren.png
soundsiren.png (37.83 KiB) Viewed 1955 times
Event "CancelSiren" - Security (!!!) - Cancel False Alarm by disarming while siren is active:
cancelsiren.png
cancelsiren.png (35.59 KiB) Viewed 1955 times
Continued in next post...

Till
Posts: 3
Joined: Saturday 07 January 2017 2:50
Target OS: Linux
Domoticz version:
Contact:

Re: Alarm system 'wiki'

Post by Till » Monday 29 May 2017 17:59

Continued:

OK, now we need to map our Virtual Siren to physical sirens...

Event "SirenON" (top) / "SirenOFF" (bottom) - Device:
sirenonoff.png
sirenonoff.png (28.53 KiB) Viewed 1954 times
Obviously, you can add other stuff here... Turn on lamps/cameras, etc.

Finally, we can reset the "AlarmDetected" virtual device on disarming - not strictly required, but this way the "AlarmDetected" device can also be used as a useful indicator:

Event "SirenON" (top) / "SirenOFF" (bottom) - Security (!!!):
resetalarm.png
resetalarm.png (14.14 KiB) Viewed 1954 times
I hope this helps some of you! Feedback welcome. If someone wants to update the Wiki based on this, or use it in any other way, feel free to do so.

All the best,
Till

AATP
Posts: 1
Joined: Tuesday 29 March 2016 22:25
Target OS: Raspberry Pi
Domoticz version:
Contact:

Re: Alarm system 'wiki'

Post by AATP » Friday 02 June 2017 13:03

In the first post of this topic user heggink mentions that he uses the König SAS SA200. Could someone please describe how to get these smokedetectors in Domoticz? My rfxcom doesn't pick up the learning signal.

Thanks in advance!

--edit--

I've updated the firmware to version 1019. Then the smokedetector appeared:)
Last edited by AATP on Friday 02 June 2017 14:07, edited 1 time in total.

User avatar
heggink
Posts: 478
Joined: Tuesday 08 September 2015 21:44
Target OS: Raspberry Pi
Domoticz version: V3.9530
Location: NL
Contact:

Re: Alarm system 'wiki'

Post by heggink » Friday 02 June 2017 13:44

Rfxcom did for me... Weird.
Pi3, latest beta
RFXCOM, z-wave (AEOTEC, switches, temhum, pir, contacts),
Plugwise2py, P1 'smart'meter & solar panel
Alexa, Wifi Cams motion detection
ESP: relays, PIR & Temp/TempHum
Geofence iCloud, Bluetooth & Wifi ping
Harmony hub, Nest

Keleos
Posts: 29
Joined: Saturday 27 May 2017 9:37
Target OS: Raspberry Pi
Domoticz version:
Contact:

Re: Alarm system 'wiki'

Post by Keleos » Sunday 18 June 2017 13:51

Hi everyone,

I'm currently setting up my alarm system with the Tutorial of Till.

One Question: why the detour about the AlarmSirenTrigger? Would it not be the same to set the VirtualSiren on after 30 seconds instead of the AlarmSirenTrigger?

Greetings
Kel

franjorge
Posts: 1
Joined: Monday 28 August 2017 14:30
Target OS: Raspberry Pi
Domoticz version:
Contact:

Re: Alarm system 'wiki'

Post by franjorge » Monday 28 August 2017 14:44

Hello,

I have configured Notifications on the devices as shown in the attached pictures.

¿Is there any way to disable the sending of those notifications when the system is 'disarmed' via the Security Panel?

I was thinking about a lua or blockly script to check the status of the system, and only if it is not 'disarmed' allow Domoticz to send notifications for all devices, but I have not been able to find a way to globally disable the sending of notifications.

Thanks,
Fran
Attachments
Captura.PNG
Captura.PNG (30.97 KiB) Viewed 1412 times

User avatar
CyberE
Posts: 7
Joined: Monday 25 June 2018 17:46
Target OS: Raspberry Pi
Domoticz version: 4.9700
Location: NL
Contact:

Re: Alarm system 'wiki'

Post by CyberE » Wednesday 27 June 2018 7:06

Till wrote:
Monday 29 May 2017 17:54
Spoiler: show
Hi,
heggink wrote:All,

IMPORTANT: The original WIKI was created when domoticz still recognised changes in user variables and was able to trigger events. That is no longer the case. User variables need to be replaced with dummy devices instead.
I had a lot of issues getting the alarm system to work well with the current stable Domoticz release. Now it seems to work. I'd like to document here what I've done, to help others (and prevent them from wasting several hours, like I did...). Feedback is welcome.

My conventions:
- All "Door" sensors have names that start with "Door" ("MCS_" in the original version)
- All motion sensors have names that start with "Motion" ("PIR_" in the original version)

I created the following dummy devices (Virtual Switches):
- "AlarmDetected": Becomes Active when an alarm is detected
- "VirtualSiren": The device that triggers physical siren(s). Using a virtual device for this makes it easier to support multiple sirens/signaling devices, and solves some other problems. "Sirene: Innen" is my physical siren.
- "AlarmSirenTrigger": Used for the siren delay

The original LUA code has only been modified slightly. Here it is:

Event "MotionAlarm" - Device:

Code: Select all

-- Title: script_device_PIRAlarm.lua
-- Date: 12-11-2015
-- checks for PIR during Alarm Away status
-- if detected then alert and set the alarm flag
-- 
 
commandArray = {}
 
tc=next(devicechanged)
PIR_switch=tostring(tc)
if (PIR_switch:sub(1,6) == 'Motion') then
	if(otherdevices['Security Panel'] == 'Arm Away') then
		print('Movement detected on '..PIR_switch)
		-- commandArray['SendNotification']='Movement detected on '..PIR_switch
		commandArray['Variable:LastAlarmDevice'] = 'Detected movement on '..PIR_switch
		commandArray['AlarmDetected']='On'
	end
end
 
return commandArray
Event "DoorAlarm" - Device:

Code: Select all

-- Title: script_device_MCSAlarm.lua
-- Date: 12-11-2015
-- checks for MCS during Alarm Away status
-- if detected then alert and set the alarm flag
 
commandArray = {}
 
tc=next(devicechanged)
MCS_switch=tostring(tc)
if (MCS_switch:sub(1,4) == 'Door') then
	if(otherdevices['Security Panel'] == 'Arm Away') then
		print('Door open/close detected for '..MCS_switch)
		commandArray['Variable:LastAlarmDevice'] = 'Detected door open/close on '..MCS_switch
		-- commandArray['SendNotification']='Door open/close detected for '..MCS_switch
		commandArray['AlarmDetected']='On'
	end
end
 
return commandArray
Event "KeypadAlarm" - Device:

Code: Select all

-- Title: script_device_AlarmPanel.lua
-- Date: 19-11-2015
-- this scrip switches the Alarm Status according to the alarm panel
--
commandArray = {}
 
tc=next(devicechanged)
Panel=tostring(tc)
if (Panel == 'Keypad Alarm Level') then
--      set the group to the status of the switch
        if (devicechanged[Panel] == 'On') then
                print('AlarmPanel Arm Away')
                commandArray['Security Panel'] = 'Arm Away'
        else
                print('AlarmPanel Disarm')
                commandArray['Security Panel'] = 'Disarm'
                commandArray['Keypad Ack'] = 'On'
        end
end
return commandArray
Event "SirenDelay" - Device - triggers siren after 30sec:
sirendelay.png

Event "SoundSiren" - Device - actually enable the siren once the delay has passed:
soundsiren.png

Event "CancelSiren" - Security (!!!) - Cancel False Alarm by disarming while siren is active:
cancelsiren.png

Continued in next post...
Hey guys, I've been using this solution for quite some time now, but with the slight change in some blocky's. I never got the user variable to work in a HTTP notification. It always results in an empty error (2018-06-27 06:29:50.501 Error: HTTP:) in the log. As I said, i've been using this solution, but with static texts instead of the wanted user variable. Do you guys found a way around it, or is this just a shortcoming of Domoticz?

User avatar
CyberE
Posts: 7
Joined: Monday 25 June 2018 17:46
Target OS: Raspberry Pi
Domoticz version: 4.9700
Location: NL
Contact:

Re: Alarm system 'wiki'

Post by CyberE » Friday 27 July 2018 14:55

CyberE wrote:
Wednesday 27 June 2018 7:06
Till wrote:
Monday 29 May 2017 17:54
Spoiler: show
Hi,
heggink wrote:All,

IMPORTANT: The original WIKI was created when domoticz still recognised changes in user variables and was able to trigger events. That is no longer the case. User variables need to be replaced with dummy devices instead.
I had a lot of issues getting the alarm system to work well with the current stable Domoticz release. Now it seems to work. I'd like to document here what I've done, to help others (and prevent them from wasting several hours, like I did...). Feedback is welcome.

My conventions:
- All "Door" sensors have names that start with "Door" ("MCS_" in the original version)
- All motion sensors have names that start with "Motion" ("PIR_" in the original version)

I created the following dummy devices (Virtual Switches):
- "AlarmDetected": Becomes Active when an alarm is detected
- "VirtualSiren": The device that triggers physical siren(s). Using a virtual device for this makes it easier to support multiple sirens/signaling devices, and solves some other problems. "Sirene: Innen" is my physical siren.
- "AlarmSirenTrigger": Used for the siren delay

The original LUA code has only been modified slightly. Here it is:

Event "MotionAlarm" - Device:

Code: Select all

-- Title: script_device_PIRAlarm.lua
-- Date: 12-11-2015
-- checks for PIR during Alarm Away status
-- if detected then alert and set the alarm flag
-- 
 
commandArray = {}
 
tc=next(devicechanged)
PIR_switch=tostring(tc)
if (PIR_switch:sub(1,6) == 'Motion') then
	if(otherdevices['Security Panel'] == 'Arm Away') then
		print('Movement detected on '..PIR_switch)
		-- commandArray['SendNotification']='Movement detected on '..PIR_switch
		commandArray['Variable:LastAlarmDevice'] = 'Detected movement on '..PIR_switch
		commandArray['AlarmDetected']='On'
	end
end
 
return commandArray
Event "DoorAlarm" - Device:

Code: Select all

-- Title: script_device_MCSAlarm.lua
-- Date: 12-11-2015
-- checks for MCS during Alarm Away status
-- if detected then alert and set the alarm flag
 
commandArray = {}
 
tc=next(devicechanged)
MCS_switch=tostring(tc)
if (MCS_switch:sub(1,4) == 'Door') then
	if(otherdevices['Security Panel'] == 'Arm Away') then
		print('Door open/close detected for '..MCS_switch)
		commandArray['Variable:LastAlarmDevice'] = 'Detected door open/close on '..MCS_switch
		-- commandArray['SendNotification']='Door open/close detected for '..MCS_switch
		commandArray['AlarmDetected']='On'
	end
end
 
return commandArray
Event "KeypadAlarm" - Device:

Code: Select all

-- Title: script_device_AlarmPanel.lua
-- Date: 19-11-2015
-- this scrip switches the Alarm Status according to the alarm panel
--
commandArray = {}
 
tc=next(devicechanged)
Panel=tostring(tc)
if (Panel == 'Keypad Alarm Level') then
--      set the group to the status of the switch
        if (devicechanged[Panel] == 'On') then
                print('AlarmPanel Arm Away')
                commandArray['Security Panel'] = 'Arm Away'
        else
                print('AlarmPanel Disarm')
                commandArray['Security Panel'] = 'Disarm'
                commandArray['Keypad Ack'] = 'On'
        end
end
return commandArray
Event "SirenDelay" - Device - triggers siren after 30sec:
sirendelay.png

Event "SoundSiren" - Device - actually enable the siren once the delay has passed:
soundsiren.png

Event "CancelSiren" - Security (!!!) - Cancel False Alarm by disarming while siren is active:
cancelsiren.png

Continued in next post...
Hey guys, I've been using this solution for quite some time now, but with the slight change in some blocky's. I never got the user variable to work in a HTTP notification. It always results in an empty error (2018-06-27 06:29:50.501 Error: HTTP:) in the log. As I said, i've been using this solution, but with static texts instead of the wanted user variable. Do you guys found a way around it, or is this just a shortcoming of Domoticz?
After looking to the scripts again and again, I finally figured out what was wrong...

Code: Select all

commandArray['Variable:LastAlarmDevice'] = 'Detected door open/close on '..MCS_switch
The "/" in this line can not be used in a http notification and results in an empty error, because the http url is manipulated into something it can not process, due to the slash.

Post Reply

Who is online

Users browsing this forum: kniazio and 3 guests