Jump to content

Notification of alarms - has anyone done this yet?


Traditore

Recommended Posts

Posted

Good evening,

 

I seem to remember that, a long time ago (before variables, I think), there was no easy way for ISY to send an e-mail notification of an alarmed zone on the M1. Has this changed?

 

I'd like to receive a text message when my M1G goes into alarm and know which zone was tripped.

 

Unfortunately, I have no programming background, and variables are a mystery to me. But I don't mind reading up to learn a thing or two. Can anyone point me in the right direction?

 

Thank you.

Posted

This can be done but it takes a few programs. There is no direct way to insert which zone is violated so you need a program and notification for each zone. For instance, I have a program that reads:

 

If Elk alarm state is burglar alarm and Elk Zone X is violated

then send notification to "cell phone" content Y

 

Basically, I then wrote a program for each elk zone and just changed "x" accordingly. I also had a different notification for each zone "y" which says something such as "alarm active front door". I also have separate program that sends another text to my cell phone when any alarm goes off based on type of alarm (so I get one for fire, burglar, smoke, etc).

 

One thing I did notice is that when the alarm goes off, I would get several texts if multiple zones were being violated in short intervals. For instance, if a glass broke in my kitchen and the kitchen glass break zone went off I got a txt for that but also one for the kitchen motion zone. I wanted to get around this so I now have a variable in my programs.

 

If Elk alarm state is burglar alarm and Elk Zone X is violated and variable alarmstate=0

then send notification to "cell phone" content Y and run then clause of program alarmstatereset

 

The then clause of myalarmstateset basically waits 5 minutes and then resets the alarmstate variable to 0 again so that I do not get multiple texts in a short period.

 

Hope this helps. You'll find almost anything is possible with elk and isy. It just takes some work. Then again, even the ultra high end crestron control systems take massive programming--it's just done behind the scenes and end users never see it. You will also find posts on here about how to get texts based on who disarmed a system (ie when kids get home or a pet sitter is coming and going) and control actions based on the arming/disarming (turn off a/c when you leave and back on when you return).

Posted

Here is how I do it.

 

If
Elk Area 'MyAreaName' 'Alarm State' is Burglar Alarm
Or Elk Area 'MyAreaName' 'Alarm State' is Fire Alarm
Or Elk Area 'MyAreaName' 'Alarm State' is Medical Alarm
Or Elk Area 'MyAreaName' 'Alarm State' is Police Alarm
Or Elk Area 'MyAreaName' 'Alarm State' is Emergency Alarm
Or Elk Area 'MyAreaName' 'Alarm State' is Heat Alarm
Or Elk Area 'MyAreaName' 'Alarm State' is Water Alarm
Or Elk Area 'MyAreaName' 'Alarm State' is Gas Alarm
Or Elk Area 'MyAreaName' 'Alarm State' is Freezer Alarm

Then
Send Notification to 'email & cell' content 'Elk ALARM'

Else
- No Actions - (To add one, press 'Action')


Notification subject: Elk is now ALARMING ${elk.zone.#.name}

Notification body:

 

Elk is now ALARMING. ${sys.time12}.
${elk.zone.#.name} ${elk.zone.#.pstatus} ${elk.zone.#.status}
${elk.area.1.armedState} ${elk.area.1.alarmState} ${elk.area.1.armUpState}
${elk.keypad.#.code)
(from ISY)

 

EDIT: 07/24/2014 - this is now known to NOT pass the zone number.  My apologies for posted untested code.

Posted

You can have the ISY insert the violated zone with a variable, and I do it almost exactly the same as WayneW instead of writing a program for each zone. It's working for me.

Posted

Wow. Very helpful. I am constantly amazed by how great everyone here is with helping each other out. The last time we went through all of this it seemed like everyone had a different program for each zone but this is much better and cleaner.

 

From a logistical standpoint, does this actually send the first violated zone or will it send more than one email if multiple zones are violated? For instance, if a glass breaks in the kitchen and then someone moves to the living room past the motion detector to turn off the alarm, will it send two emails or just the first one? I prefer just one email so I am hoping that is what this would do.

Posted

Since each zone is in the IF, each time one trips, it will resend the email.

 

You would have to add in some additional smarts. Maybe disable the program after the first email is sent. Then another program would later enable the program.

  • 1 month later...
Posted

So I got around to trying the new programs and I don't seem to get the zone that set off the alarm with: ${elk.zone.#.name} ${elk.zone.#.pstatus} ${elk.zone.#.status}

 

That line in my notification that I get is blank. When I go into the elk log it does list the alarm action and in the extended info it does list the zone which activated the alarm. Any suggestions?

Posted

So I keep looking at this and can't figure out why the zone is not coming across from the Elk when the alarm goes off. Is this still working for everyone else?

Posted

Michel,

 

Maybe I misunderstood the original program. I didn't replace # with a zone number. I thought the program automatically inserted whichever zone was violated with that syntax. I don't want the status of all zones individually listed--just the one that set off the alarm. That's why I originally wrote multiple programs (one for each zone) but I thought the other posts were referring to being able to do this with one program.

Posted

I pasted my sample above, but now realize I may have never tested that email as I don't have frequent false alarms. so I went back and looked at notifications that I know have happened. My glass breaks are on 24/7, so I occasionally get false alarms from dishes dropping, etc.

 

Notification subject: Elk Glass Break @ ${elk.zone.#.name}

body:

Elk has reported a glass breakage. ${sys.time12}.

${elk.zone.#.name}. ${elk.zone.#.pstatus}. ${elk.zone.#.status}.

${elk.area.1.armedState}. ${elk.area.1.alarmState}. ${elk.area.1.armUpState}.

${elk.keypad.#.code).

(from ISY)

here are sample emails:

-----Original Message-----

Sent: Sunday, November 03, 2013 9:55 AM

Subject: Elk Glass Break @ GlassBrk-Guest2

 

Elk has reported a glass breakage. 9:54:57 AM.

GlassBrk-Guest2 Open Violated

Disarmed No Alarm Active Not Ready To Arm

-----Original Message-----

Sent: Monday, June 09, 2014 9:06 PM

Subject: Elk Glass Break @ GlassBrk-Family

 

Elk has reported a glass breakage. 9:05:41 PM.

GlassBrk-Family. Open. Violated.

Disarmed. No Alarm Active. Ready To Arm.

 

I am currently using 4.1.2. The program seems to fill in the variable zone # for me.

Posted

Thanks. I wonder if something changed with the new firmware updates and that is preventing the extended information like the zone from coming across. I'd be curious if anyone on a newer firmware has this working. For the time being, I just went back to my old programs that are zone specific.

  • 2 weeks later...
Posted

In your text message or e-mail use:

${alert.control} : ${alert.action}

alert.control lists the zone violated by name
alert.action lists the status of the zone (violated or secure)

Posted

NHWA, I upgraded to 4.2.5 (RC) and then pulled a zone wire to simulate a glass break  I still get the emails that I expect.

-----Original Message-----
Sent: Sunday, July 13, 2014 3:25 PM
Subject: Elk Glass Break @ GlassBrk-Office

Elk has reported a glass breakage.  3:25:02 PM.
GlassBrk-Office. Open. Violated.
Disarmed. No Alarm Active. Ready To Arm.

I have no idea what I am doing different than others.

Per http://wiki.universal-devices.com/index.php?title=ISY-99i_Series_INSTEON:Custom_Email_Substitution_Variables

Instead of specifying a fixed address, the special character # may be used to reference the element in the event that caused the program to run.
For example, if a status event for node 11 22 AA 1 caused a program to run, then ${sys.node.#.name} would use 11 22 AA 1 as the address.

I might speculate that your program sending the email is not the program that started the process?  Are you using nested programs?  Can you paste your program?

Posted

In your text message or e-mail use:

${alert.control} : ${alert.action}

 

alert.control lists the zone violated by name

alert.action lists the status of the zone (violated or secure)

 

I am not familiar with that syntax and cannot find it in the wiki.  Can you provide more details please?

 

What would the pros & cons be versus ${elk.zone.#.name}. ${elk.zone.#.status}.

Posted

I'm at a loss.  I can't get this to work with one program and it seems similar to what was posted.  Here is the actual program.   The $active_alarm variable program referenced simply prevents more than one txt from being sent within 5 minutes.

 

 

If
        Elk Area 'Home' 'Alarm State' is Fire Alarm
     Or Elk Area 'Home' 'Alarm State' is Medical Alarm
     Or Elk Area 'Home' 'Alarm State' is Police Alarm
     Or Elk Area 'Home' 'Alarm State' is Burglar Alarm
     Or Elk Area 'Home' 'Alarm State' is Carbon Monoxide Alarm
     Or Elk Area 'Home' 'Alarm State' is Emergency Alarm
     Or Elk Area 'Home' 'Alarm State' is Freezer Alarm
     Or Elk Area 'Home' 'Alarm State' is Gas Alarm
     Or Elk Area 'Home' 'Alarm State' is Heat Alarm
     Or Elk Area 'Home' 'Alarm State' is Water Alarm
    And $Active_Alarm is 0
 
Then
        Send Notification to 'Phone' content 'Alarm'
        $Active_Alarm  = 1
        Run Program 'active alarm variable reset' (Then Path)
 
Else
   - No Actions - (To add one, press 'Action')
 

 

 

Here is the notification. I tried both methods without luck.

 

ACTIVE ALARM. ${sys.time12} ${alert.date}
${alert.control} : ${alert.action}
${elk.zone.#.name}. ${elk.zone.#.status}.
${elk.area.1.alarmState}

Posted

It needs parens

 

If

   (
        Elk Area 'Home' 'Alarm State' is Fire Alarm
     Or Elk Area 'Home' 'Alarm State' is Medical Alarm
     Or Elk Area 'Home' 'Alarm State' is Police Alarm
     Or Elk Area 'Home' 'Alarm State' is Burglar Alarm
     Or Elk Area 'Home' 'Alarm State' is Carbon Monoxide Alarm
     Or Elk Area 'Home' 'Alarm State' is Emergency Alarm
     Or Elk Area 'Home' 'Alarm State' is Freezer Alarm
     Or Elk Area 'Home' 'Alarm State' is Gas Alarm
     Or Elk Area 'Home' 'Alarm State' is Heat Alarm
     Or Elk Area 'Home' 'Alarm State' is Water Alarm

   )
    And $Active_Alarm is 0
 
Then

Posted

Thanks Lee but the program runs fine. It's the notification that is the problem. The zone violated is blank in the message sent.

Posted

I have the same issue. Using latest beta v 4.2.5

${elk.zone.#.name}. ${elk.zone.#.status}. Show up as blank on the message. All other messages are coming thru fine.

Do I have to setup the # variable somewhere else?

 

 

Sent from my iPad using Tapatalk

Posted

Michel,

 

I think some of the confusion is what the capability of the elk module is.  Some have left the # in place in the syntax and the elk module has automatically replaced it with whichever zone set off the alarm. Others of us have done that and the line is blank. I've searched and I found some earlier elk module info sets that seem to indicate that the # can be used but we can't seem to figure out why it works for some and not others.  I have multiple programs that send a different txt based on which zone is violated when the alarm is on so that I can tell which zone set off the alarm.  I think what everyone is trying to figure out is how to do this with one generic program and why some have it working but not others with the same programs.  Replacing the # does give the status of whatever zone is listed but with many zones it overwhelms a text message if the status of 10+ zones comes across.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...