Jump to content

A better MS low battery program


larryllix

Recommended Posts

Posted (edited)

In view of the frequent complaints I see here about the Insteon motion sensor,  model 2842-222, I devised this program to monitor my MS units a little closer. Hopefully this will work to detect general failures, as well as low batteries, with improved reliability from just detecting the LowBatt signal that seems to get missed by others. I have not experience that yet.

 

I hope the program should be self explanatory.

-  I have reversed the usual logic for the program name to make it less human confusing for Mobilinc viewing etc.

- $MS_Battery_Status  is a State variable that triggers notifications,

- $cUTILITY_ROOM is one of a set of defined constants for passing room definitions and used by notification above,

 

- The heartbeat style check-in is an easy logic for me but this negative "is not" tests my old logic brain,

 

Anybody foresee problems with this??

 

 

Program MudRm MS.OK

---------------------------------

If
        Control 'Mudroom / Motion.MudRm / LowBatt.MudRm' is not switched On
     Or Control 'Mudroom / Motion.MudRm / LowBatt.MudRm' is switched Off
     Or Control 'Mudroom / Motion.MudRm' is switched On
     Or Control 'Mudroom / Motion.MudRm / Dark.MudRm' is switched On
     Or Control 'Mudroom / Motion.MudRm / Dark.MudRm' is switched Off

Then
        Wait  26 hours
        Run Program 'MudRm MS.OK' (Else Path)

Else
        Wait  5 minutes
        $MS_Battery_Status  = $cUTILITY_ROOM

--------------------

 

Thanks!

Edited by larryllix
Posted

This appears to assume that a sensor should see motion or a light/dark transition at least one every 25:59.  For many this should be just fine.  I however have a few detectors in places that can go weeks in the dark without any motion.  For those, the low batt node is my only hope since there is no heartbeat from these sensors.  I can only hope that the next gen motions from smarthome gain a heartbeat like some of the newer wireless devices have.

 

-Xathros

Posted (edited)

This appears to assume that a sensor should see motion or a light/dark transition at least one every 25:59.  For many this should be just fine.  I however have a few detectors in places that can go weeks in the dark without any motion.  For those, the low batt node is my only hope since there is no heartbeat from these sensors.  I can only hope that the next gen motions from smarthome gain a heartbeat like some of the newer wireless devices have.

 

-Xathros

Yes. I have a few that will not see the light of day or motion for possibly a week at a time. I have adjusted those heartbeat allowances to about a week plus 20%. Hopefully a visit to the room will reset the beast without ISY twiddling from the human infestation.

 

Thanks for looking. As I stated these negative condition triggers break my DeMorgan heart.

Edited by larryllix
Posted

I am new to the ISY community, so I apologize up front if my question should have been placed in a different location.

 

I am using 2842 -222 Motion Detectors throughout my house.  I had a false alarm last night and determined from reviewing the log, that one of my motion detectors held its "On" status for at least an hour.  As I reviewed the log, most of the time the motion detectors will show 100% then after a minute or a little more, the status will change to 0%.  Last evening, because the status did not change to 0%, the time in the if statement triggered to program.  Has anyone encountered this issue and how have you worked around it.  My program is below.  Thanks for any help you can provide.  By the way, 

 

If
        From     9:30:00PM
        To      Sunrise + 30 minutes (next day)
    And Status  'Hall / Hall MD-Sensor' is On
    And $iEnable_Motion_Detectors_Night is 1
 
Then
        Wait  2 seconds
        Run Program 'MBR - Chime - On' (If)
        Send Notification to 'Home Email' content 'Hall_Motion'
        Wait  1 second
        Run Program 'Activate Siren - Hall' (Then Path)
 
Else
   - No Actions - (To add one, press 'Action')
 
 
 

 

Posted (edited)

 

I am new to the ISY community, so I apologize up front if my question should have been placed in a different location.

 

I am using 2842 -222 Motion Detectors throughout my house.  I had a false alarm last night and determined from reviewing the log, that one of my motion detectors held its "On" status for at least an hour.  As I reviewed the log, most of the time the motion detectors will show 100% then after a minute or a little more, the status will change to 0%.  Last evening, because the status did not change to 0%, the time in the if statement triggered to program.  Has anyone encountered this issue and how have you worked around it.  My program is below.  Thanks for any help you can provide.  By the way, 

 

If
        From     9:30:00PM
        To      Sunrise + 30 minutes (next day)
    And Status  'Hall / Hall MD-Sensor' is On
    And $iEnable_Motion_Detectors_Night is 1
 
Then
        Wait  2 seconds
        Run Program 'MBR - Chime - On' (If)
        Send Notification to 'Home Email' content 'Hall_Motion'
        Wait  1 second
        Run Program 'Activate Siren - Hall' (Then Path)
 
Else
   - No Actions - (To add one, press 'Action')

 

Welcome!

 

This sounds like you have your jumpers in the MS set to send 'Off' commands also. Most of us find that doesn't work well and move the jumper to not send any 'off' commands. The Off cycle is looked after by our ISY program logic. The downside? The MS device will never show off status on it's device page or in Mobilinc etc..

 

Comment

You are using 'status' to trigger your program. Status only triggers when the device state changes. 'Switch' triggers every time motion is sensed and can retrigger timers in the program to start over. This is usually used for lights so they never go off when people keep moving.

 

Now if you disable the 'off' in your MS units and your MS status is always true it will never trigger your program, but 'switches' will. Your 'from time' can trigger it if your $iEnable_Motion_Detectors_Night is 1 though. I doubt this is what you wanted.

 

Perhaps explain what you are trying to accomplish and some of the amazing logic brains here will help you out with things you never thought of.  Better yet start a new thread, post your program with your explanation of what you are trying to accomplish so you get the full attention for it.

Edited by larryllix
Posted

By "Switch' triggers every time motion is sensed" Larry means "Control is switched..."  The ISY supports both Status and Control events. These can often be interchangeable but there are some very specific differences that when understood, offer much greater control and flexibility in your programs.  I will attempt to explain here:

 

Status will trigger a program any time that the status of a device changes regardless of why the status of the device changed.  When triggered, status (and the rest of the IF statement as a whole) will be evaluated and a true(Then) or False(else) determination will be made and the appropriate branch of the program will be run.  any time a program containing a status test is triggered by other means, the status will still evaluate based on the current status of the device being tested.

 

Control requires specific manual operation of the device locally.  For instance, "IF Control 'Switchlinc' is switched On" will only trigger when someone manually presses the On paddle of the switchlinc.  It will not trigger if the switchlinc is turned on by a linked device.  It will not trigger if the switchlinc is manually turned Off, fade down,fast off,fast on, fade up etc.  Only On at the paddle.  If this "Control switched On" is used in an If with other triggers and is triggered by any of the other triggers, the if will evaluate false since this control event did not trigger.  Devices always have a status, control events only exist for the brief moment when they occur.

 

Hope this helps.

 

-Xathros

Posted

larryllix and Xathros

 

Thank you very much for your responses.  As larryllix suggested, I created a new topic to explain what I am trying to do.  I do follow both of you on this forum and have learned a lot from your contributions.  I am an old timer familiar with the old programming languages and it took me awhile to understand event triggered programming.  Your contributions helped me get there.  Thanks again.

Posted

As always, happy to help. :)

 

-Xathros

  • 3 months later...
Posted (edited)

Got more MSes from aartech.ca while they are on sale over the New Years time, so I am eliminating more X10 MS units from my system.

 

I have been attempting to improve the plain battery low sensor for the Insteon MS units with this program for each unit to be monitored. The Wait time needs to tuned for each application keeping in mind if the units sees day/night reliably, and expected motion gaps considering away times. Since these "extra" methods of detecting a dead battery and/or lack of MS function are additional to the usual LowBatt signal they are not required but should act as a back up reminder  to missed or forgotten notifications.

MS.LowBatt.LLand

If
        Control 'Lower Landing / Motion.LLanding / LowBatt.LLanding' is switched On
    And Control 'Lower Landing / Motion.LLanding / LowBatt.LLanding' is not switched Off
    And Control 'Lower Landing / Motion.LLanding' is not switched On
    And Control 'Lower Landing / Motion.LLanding / Dark.LLanding' is not switched On
    And Control 'Lower Landing / Motion.LLanding / Dark.LLanding' is not switched Off
 
Then
        Wait  5 minutes 
        $MS_Battery_Status  = $cLOWER_LANDING
 
Else
        Wait  150 hours 
        Run Program 'MS.LowBatt.LLand' (Else Path)
 


$cLower_Landing is one of many constant variables (Integer)  used to identify each room in passed parameters

$MS_Battery_Status is a state variable and triggers a program like this for notifications and reset.

MS Battery Low

If
        $MS_Battery_Status is not 0
 
Then
        Wait  5 seconds
        Send Notification to 'Text  Larry' content 'MS Not Sending'
        Wait  5 minutes 
        $MS_Battery_Status  = 0
        Run Program 'MS Battery Low' (Else Path)
 
Else
   - No Actions - (To add one, press 'Action')
 


The single notification message looks like this

ALERT! -  MS not sending.

${sys.date} @${sys.time24}
In room ${var.2.14}.

10=RecRm 12=AftBr 13=EveBr
14=Libr 16=Util 19=LLand
20=GathRm 21=MBR 29=MudRm
30=Shop
Edited by larryllix
  • 1 month later...
Guest
This topic is now closed to further replies.

×
×
  • Create New...