Jump to content

Alarm Disarmed Notifications


Scottmichaelj

Recommended Posts

Seems like I am always forgetting to turn on the alarm at night for some reason so I put a simple timeframe program to have the Elk Speaker "remind me" the alarm is disarmed. However if I have friends over past the timeframe its annoying to hear it tell me every 30 mins its not armed. Then I get harassed that about my "automated house". I tried the below program but its wrong. Can someone look at it and help me fix it? Do I need two programs, or variables? One for the "timer" and one for the "reminder"?

 

Basically all I want is if the motion detectors on my Elk in certain rooms have been "violated" (aka motion sensed) starting at 11pm then don't "remind me" but set motion as a timer from the last 30m it was motion was sensed. This way if it doesn't sense anything in those areas 30 minutes after the last motion is sensed on any of the detectors then I get reminded. If it does then wait 30mins from the last time motion was detected from the most recent motion sensor and if it doesn't then finally remind me.

 

Does this make sense? Thanks in advance for the help.

 
If
        From     11:00:00PM
        To       5:00:00AM (next day)
    And Elk Area '1' 'Armed State' is Disarmed
    And Elk Zone 'Family-Motion' is not Violated
 
Then
        Repeat Every  30 minutes 
           Set Elk Speak Word 'Alarm'
           Set Elk Speak Word 'Is_disarmed'
 
Else
        Wait  30 minute 
 
 
Link to comment

A few points to consider when rewriting Program into likely two or more Programs.

The Wait in the Else has no purpose.  It does not Wait when the only statement in the clause or last statement (no logic after Wait).

 

The Else clause is driven when the Program is triggered and any part of the If is False.  This means that the Else clause executes under various conditions, usually more than the Program was designed to handle.  This is usually why multiple Programs are needed.  The multiple If clause conditions must all be True to drive the Then clause.   The more complex the If the more need to put the True logic in the Then and nothing in the Else which is why multiple Programs are required. 

Link to comment

 

Seems like I am always forgetting to turn on the alarm at night for some reason so I put a simple timeframe program to have the Elk Speaker "remind me" the alarm is disarmed. However if I have friends over past the timeframe its annoying to hear it tell me every 30 mins its not armed. Then I get harassed that about my "automated house". I tried the below program but its wrong. Can someone look at it and help me fix it? Do I need two programs, or variables? One for the "timer" and one for the "reminder"?

 

Basically all I want is if the motion detectors on my Elk in certain rooms have been "violated" (aka motion sensed) starting at 11pm then don't "remind me" but set motion as a timer from the last 30m it was motion was sensed. This way if it doesn't sense anything in those areas 30 minutes after the last motion is sensed on any of the detectors then I get reminded. If it does then wait 30mins from the last time motion was detected from the most recent motion sensor and if it doesn't then finally remind me.

 

Does this make sense? Thanks in advance for the help.

 
If
        From     11:00:00PM
        To       5:00:00AM (next day)
    And Elk Area '1' 'Armed State' is Disarmed
    And Elk Zone 'Family-Motion' is not Violated
 
Then
        Repeat Every  30 minutes 
           Set Elk Speak Word 'Alarm'
           Set Elk Speak Word 'Is_disarmed'
 
Else
        Wait  30 minute 

 

I am not sure how the Elk event triggers work in ISY but give this a try.

 

If

         From     10:30:00PM

         To       5:00:00AM (next day)

 AND {

               Elk Zone 'Family-Motion' is Violated

         OR other zone is Violated

          }

  AND {                                                                    <----Elk triggers may not require this section.

              Elk Zone 'Family-Motion' is not Violated   <----disables 'reminder' if motion starts again.

      AND other zone is not  Violated 

          }

Then

        Wait 30 minutes

        Enable program 'reminder'

Else

        Disable program 'reminder'

 

 

 

Program 'Reminder'  (disabled)

If

         Elk Area '1' 'Armed State' is Disarmed

Then

        Repeat Every  30 minutes

           Set Elk Speak Word 'Alarm'

           Set Elk Speak Word 'Is_disarmed'

Else

        --

Link to comment

I am not sure how the Elk event triggers work in ISY but give this a try.

 

If

         From     10:30:00PM

         To       5:00:00AM (next day)

 AND {

               Elk Zone 'Family-Motion' is Violated

         OR other zone is Violated

          }

  AND {                                                                    <----Elk triggers may not require this section.

              Elk Zone 'Family-Motion' is not Violated   <----disables 'reminder' if motion starts again.

      AND other zone is not  Violated 

          }

Then

        Wait 30 minutes

        Enable program 'reminder'

Else

        Disable program 'reminder'

 

 

 

Program 'Reminder'  (disabled)

If

         Elk Area '1' 'Armed State' is Disarmed

Then

        Repeat Every  30 minutes

           Set Elk Speak Word 'Alarm'

           Set Elk Speak Word 'Is_disarmed'

Else

        --

 

 

Larynx, sorry I haven't responded in a couple days to say thank you and let you know how things turned out. 

 

I added/change the programs as you suggested however the "reminder" program wouldn't run on its own after being enabled. It took me a while to figure out what was going on. Needless to say I had to change the time/speed up the reminder so I wasn't waiting forever to test. It appears I had to add "Run If" line on the first program (see below). I am still testing it to make sure all is good but I think this has me on the right track.

 

LeeG that was a very helpful explanation of the "else" command. I always get confused how it works in the programs and I think its clearer to me now that you explained it.

 

Thank you Larryllix and LeeG for both of your help.

 

If

         From     10:30:00PM

         To       5:00:00AM (next day)

 AND {

               Elk Zone 'Family-Motion' is Violated

         OR other zone is Violated

          }

  AND {                                                                    <----Elk triggers may not require this section.

              Elk Zone 'Family-Motion' is not Violated   <----disables 'reminder' if motion starts again.

      AND other zone is not  Violated 

          }

Then

        Wait 30 minutes

        Enable program 'reminder'

        Run Program 'reminder' (If)

 

Else

        Disable program 'reminder'

Link to comment

Looking again I realised I also got my logic backwards.

This may work better.

 

Multiple time frames for weekdays vs weekends could be added. Careful with your parenthesis to group conditions.

If
        From 10:30:00PM
        To 5:00:00AM (next day)
    AND Elk Area '1' 'Armed State' is Disarmed
    AND Elk Area '1' 'Armed State' is NOT Disarmed <---runs else if armed again.

Then
      Enable program 'Reminder'
      Run 'Reminder' (then) <-----starts timing
Else
      Disable program 'Reminder'



Program 'Reminder' (disabled)
If
       Elk Zone 'Family-Motion' is Violated
    OR other zone is Violated

Then
      Repeat Every 30 minutes
         Set Elk Speak Word 'Alarm'
        Set Elk Speak Word 'Is_disarmed'
Else
       -- 

Link to comment

Archived

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


  • Recently Browsing

    • No registered users viewing this page.
  • Forum Statistics

    • Total Topics
      36.6k
    • Total Posts
      368k
×
×
  • Create New...