larryllix Posted September 29, 2014 Posted September 29, 2014 (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 OffThen Wait 26 hours Run Program 'MudRm MS.OK' (Else Path)Else Wait 5 minutes $MS_Battery_Status = $cUTILITY_ROOM -------------------- Thanks! Edited September 29, 2014 by larryllix
Xathros Posted September 29, 2014 Posted September 29, 2014 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
larryllix Posted September 29, 2014 Author Posted September 29, 2014 (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 September 29, 2014 by larryllix
BigMoose Posted September 29, 2014 Posted September 29, 2014 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')
larryllix Posted September 29, 2014 Author Posted September 29, 2014 (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 September 29, 2014 by larryllix
Xathros Posted September 30, 2014 Posted September 30, 2014 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
BigMoose Posted September 30, 2014 Posted September 30, 2014 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.
larryllix Posted January 5, 2015 Author Posted January 5, 2015 (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 January 5, 2015 by larryllix
jrbenito Posted February 7, 2015 Posted February 7, 2015 Hi there, I just posted here http://forum.universal-devices.com/topic/15079-motion-sensor-low-battery-event-or-lack-thereof/a information on how to query devices on trigger. Maybe it can be helpful On the other hand, this same method did not worked with Hidden Door Sensor 2845-222 but this device has heartbeat Regards, Benito
Recommended Posts