Manually trigger intruder alert in SHM?


#1

As you know, if you set the smart home monitor to armed and then if you open a door, the system will say “intruder detected”

That’s great if you are away from home and someone forces their way in.

But what if you set the system to disarmed and you are home and the bad guy breaks in. You see the bad guy.

What do you do?

Well, I would like to be able to trigger the intruder alert with a push of the button.

Does anyone have suggestions?


(www.rboyapps.com - Make your home your butler!) #2

Couple of options:

  1. Put SHM in Armed Home mode and select a specific open/close sensor (you may need a custom DTH to convert a panic button or switch to a open/close notification) that you want to use to trigger the alarm
  2. Create a custom rule in CoRE or Custom Monitoring to set off a siren/alarm on the press of a switch or a modified DTH open/close sensor
  3. If you have access to RBoy Apps you can use the Intruder Alert SmartApp and select specific sensor you want to use to set off the alarm
    [RELEASE] Intruder Alert with Support for Lights and Taking Pictures with a Camera

(Ryan) #3

SHM only detects changes when the system is either Armed/Away or Armed/Home. You can create a simulated contact sensor in ST and then assign only that device to the Armed/Home profile. However, you would have to make sure that you don’t disarm the system but instead always engage Armed/Home.


(JimmyJames) #4

(Ryan) #5

Yes, but you still have to set it up to perform the function of creating a noise or sounding a siren. It doesn’t do that by default just by connecting it to ST.


#6

I have the aeotec panic button. How do I set it up so that pressing the button will tell SHM to act as if an intruder was detected?

I currently have it set up such that pressing it will turn on an alarm, but even if it is ringing the SHM does not consider that as “intruder detected” since all I am doing is triggering the alarm.

This is my preferred order of events:

Intruder button-> SHM Intruder detected -> alarm, lights, cameras activated.


(Ryan) #7

Then you have to integrate it into the SHM as a sensor. But when SHM is disarmed, nothing will happen ever. So, the easiest thing to do would be to have the button Arm SHM and trip a viral contact sensor.


(JimmyJames) #8

I don’t have a panic button but I had a quick look at the manual and it looks like you may need to create a scene.

https://aeotec.freshdesk.com/support/solutions/articles/6000177086-panic-button-user-manual-


(www.rboyapps.com - Make your home your butler!) #9

I don’t think any app can force this action. For this to happen the device would need to be modified as a sensor (door/motion) and added to SHM.

Apps can do this


(Ryan) #10

The manual is talking about a z-wave scene, not a ST scene. Be careful there. I believe there is a DTH that treats the button a a button controller like any other button.


(ActionTiles.com co-founder Terry @ActionTiles; GitHub: @cosmicpuppy; NOT a SmartThings Employee.) #11

I haven’t seen viral contact sensors yet…

Wow: they sound like a good idea if they can help avoiding contracting the flu! :mask::joy:


(Ryan) #12

LOL…wouldn’t it be a virtual flu? :stuck_out_tongue:

Here’s the code for the one I use.

/**
 *  Virtual Contact Sensor Switch
 *
 *  Copyright 2017 Wesley Stocker
 *  ON == Open
 *  OFF == Closed
 *
 *  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 *  in compliance with the License. You may obtain a copy of the License at:
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
 *  on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
 *  for the specific language governing permissions and limitations under the License.
 *
 */
metadata {
	definition (name: "Virtual Contact Sensor Switch", namespace: "ph4r", author: "Wesley Stocker") {
		capability "Actuator"
		capability "Contact Sensor"
		capability "Relay Switch"
		capability "Sensor"
		capability "Switch"

		command "onPhysical"
		command "offPhysical"
		command "open"
		command "close"
	}


	simulator {
		status "open": "contact:open"
		status "closed": "contact:closed"
	}

	tiles {
		standardTile("switch", "device.switch", width: 2, height: 2, canChangeIcon: true) {
			state "off", label: '${currentValue}', action: "switch.on", icon: "st.switches.switch.off", backgroundColor: "#ffffff"
			state "on", label: '${currentValue}', action: "switch.off", icon: "st.switches.switch.on", backgroundColor: "#00A0DC"
		}
		standardTile("on", "device.switch", decoration: "flat") {
			state "default", label: 'On', action: "onPhysical", backgroundColor: "#ffffff"
		}
		standardTile("off", "device.switch", decoration: "flat") {
			state "default", label: 'Off', action: "offPhysical", backgroundColor: "#ffffff"
		}
        standardTile("contact", "device.contact", width: 2, height: 2) {
			state("closed", label:'${name}', icon:"st.contact.contact.closed", backgroundColor:"#00A0DC", action: "open")
			state("open", label:'${name}', icon:"st.contact.contact.open", backgroundColor:"#e86d13", action: "close")
		}
        main "switch"
		details(["switch","on","off","contact"])
	}
}

def parse(String description) {
	def pair = description.split(":")
	createEvent(name: pair[0].trim(), value: pair[1].trim())
}

def open() {
	log.trace "open()"
	sendEvent(name: "switch", value: "on")
	sendEvent(name: "contact", value: "open")
}

def close() {
	log.trace "close()"
	sendEvent(name: "switch", value: "off")
    sendEvent(name: "contact", value: "closed")
}

def on() {
	log.debug "$version on()"
	sendEvent(name: "switch", value: "on")
	sendEvent(name: "contact", value: "open")
}

def off() {
	log.debug "$version off()"
	sendEvent(name: "switch", value: "off")
    sendEvent(name: "contact", value: "closed")
}

def onPhysical() {
	log.debug "$version onPhysical()"
	sendEvent(name: "switch", value: "on", type: "physical")
	sendEvent(name: "contact", value: "open")
}

def offPhysical() {
	log.debug "$version offPhysical()"
	sendEvent(name: "switch", value: "off", type: "physical")
    sendEvent(name: "contact", value: "closed")
}

private getVersion() {
	"PUBLISHED"
}

(Jimmy) #13

Could use mike maxwell’s UDTH with contact/switch combo. Then make a webcore rule for a remote that arms SHM, waits X seconds and then flips that switch/contact open.


(JimmyJames) #14

Thanks for pointing that out.


(Allan) #15

Maybe I’m missing something but couldn’t you just use a simple smart lighting routine with the trigger being whatever button or switch you want and the outputs being all the lights and your siren?


#16

My goal is not to simply “turn on an alarm”.

My goal is to make SmartHome Monitor invoke “intruder detected”. Which will run security specific routines.


#17

I’ll try this code… I’m still new to the smartthings code stuffs so I might ask some newbie questions.


(Ryan) #18

Might want to try searching first. Odds are if you have the question, someone else has had it before. No sense re-inventing the wheel.


(Ryan) #19

Then SHM has to be armed. When it is disarmed it won’t do anything.


#20

Thank you everyone for your input.
I went with @Ryan780 ‘s solution but with a twist.

I googled around and didnt quite find a solution that matched my “manually intruder alert” requirement. So I had to create something. I have a solution that works well enough for me.

I’ll post more details about it here when I have a chance to sit and write about it all. Maybe someone will see it and notice I’m reinventing the wheel and offer a more stream line and simpler solution.