MrT Posted December 22, 2013 Posted December 22, 2013 I have been trying to create a program on my ISY/99 to check my Garage door I/O Linc Sensor to email me if someone forgot to close it for more than 30 minutes. Sometimes I came back home and noticed that my garage door have been left open all day.. I do not want to auto-close the garage door in 30 minutes. I do not want to notify me every time the garage door is open. I only want to notify/email me when the garage door (I/O Sensor status is ON) is left open for more that 30 minutes or longer. Any ideas to program the ISY, please let me know..
KMan Posted December 22, 2013 Posted December 22, 2013 Did you try something like this: If Status 'Garage Door Sensor' is On Then Wait 30 minutes Send Notification to 'Default' Else - No Actions - (To add one, press 'Action') You also need to go into "Configuration -> Emails/Notifications -> Settings/Groups" and configure a group correctly. The group I used in the example above is named "Default". The important thing in the above program is that whenever the Garage Door Sensor status changes, the program will start (or re-start) running, even if it was already running. So if the sensor goes 'off' while in the 30 minute wait, the program will re-start and run the 'Else' clause, rather than finishing the 'Then' clause, and you won't get notified.
MrT Posted December 22, 2013 Author Posted December 22, 2013 Thanks a lot. It works great. It even only email me once time only, not every 30 minutes the door is not closed. I thought you need to use a variable or 2nd program to work. Easier then I thought. Now I can set any lights that my kids forgot to turn off during the daytime to notify me when I am away from home. Thanks again.
whlatimer Posted December 23, 2013 Posted December 23, 2013 Thanks a lot. It works great. It even only email me once time only, not every 30 minutes the door is not closed. I thought you need to use a variable or 2nd program to work. Easier then I thought. Now I can set any lights that my kids forgot to turn off during the daytime to notify me when I am away from home. Thanks again. Take it one step further: If you were sent the "Door is Up" alert email that the door has been open for 30 minutes, then have another program send you the "Door is Down alert when the door is closed. You ONLY want to get the down alert if the door was open for more than the interval, i.e. if you get the up email, you want to get the down email. The trick is to set an integer (not state) variable and set it to 0 (false) when the door goes up then to 1 (true) when the up email is sent. Create another program that reacts when the door goes down AND the variable is 1 (true) to send another email alert that the door is down. And useful feature of ISY programming: programs can be set to "disabled" to control when they run. Programs can execute disabled programs but conditions or status changes cannot.
KHouse Posted December 23, 2013 Posted December 23, 2013 Thanks a lot. It works great. It even only email me once time only, not every 30 minutes the door is not closed. I thought you need to use a variable or 2nd program to work. Easier then I thought. Now I can set any lights that my kids forgot to turn off during the daytime to notify me when I am away from home. Thanks again. Take it one step further: If you were sent the "Door is Up" alert email that the door has been open for 30 minutes, then have another program send you the "Door is Down alert when the door is closed. You ONLY want to get the down alert if the door was open for more than the interval, i.e. if you get the up email, you want to get the down email. The trick is to set an integer (not state) variable and set it to 0 (false) when the door goes up then to 1 (true) when the up email is sent. Create another program that reacts when the door goes down AND the variable is 1 (true) to send another email alert that the door is down. And useful feature of ISY programming: programs can be set to "disabled" to control when they run. Programs can execute disabled programs but conditions or status changes cannot. I hate to ask, but being totally new to ISY and having only had a very basic programming class in highschool...I can't figure out what this program should look like. Would you mind sharing? This is a great idea to get the notification once it's down after that 30 min window that it was up.
KMan Posted December 23, 2013 Posted December 23, 2013 I'll take a shot: First, create a new variable ... "Garage Left Open" .... Then modify the program above to be: If Status 'Garage Door Sensor' is On Then Wait 30 minutes Send Notification to 'Default' content 'Garage.LeftOpen' $Garage_Left_Open = 1 Else - No Actions - (To add one, press 'Action') Then, create a second program: If Status 'Garage Door Sensor' is Off And $Garage_Left_Open is 1 Then Send Notification to 'Default' content 'Garage.Closed' $Garage_Left_Open = 0 Else - No Actions - (To add one, press 'Action')
KHouse Posted December 23, 2013 Posted December 23, 2013 Thanks Kman. My garage sensor arrived today actually, so this thread is perfect timing. I'll try to get everything setup tonight...and report back. Sent from my iPhone using Tapatalk
MrT Posted December 24, 2013 Author Posted December 24, 2013 Thanks for taking this further. Now when I called home to tell me kids to close the garage, I can make sure they did it. ISY99i is great for beginners programmer.. Thanks a bunch! p/s: I plan to upgrade to ISY994i. Any advantages or shall I wait?
MrT Posted January 31, 2014 Author Posted January 31, 2014 I like to make some changes to this program. How do I get ISY to email me again if the garage door is not closed and left open for another 30 minutes, I want to be notify until the garage is closed..
Xathros Posted January 31, 2014 Posted January 31, 2014 I like to make some changes to this program. How do I get ISY to email me again if the garage door is not closed and left open for another 30 minutes, I want to be notify until the garage is closed.. Modify the first program as to add a repeat as follows: If Status 'Garage Door Sensor' is On Then Wait 30 minutes $Garage_Left_Open = 1 Repeat every 30 minutes Send Notification to 'Default' content 'Garage.LeftOpen' Else - No Actions - (To add one, press 'Action') -Xathros
larryllix Posted January 31, 2014 Posted January 31, 2014 No code supplied but.... What if you are home and forgot the door was open? Perhaps went to bed? Been there on that one. You could flash some lights or make some noise as a reminder and then if the door doesn't get closed in the next 5 to 10 minutes then send the email 'cause you're not home. If it's late at night close the door automatically as a last resort.
gatchel Posted January 31, 2014 Posted January 31, 2014 p/s: I plan to upgrade to ISY994i. Any advantages or shall I wait? Yes. More code memory. Support for current / newer Insteon Devices. Advantages....you'll have to decide if you need it yet or not. If you plan on buying newer devices you may need to upgrade.
MrT Posted February 1, 2014 Author Posted February 1, 2014 It works great thanks! If I want to send the notification to include the first time the garage door left open timestamp on the email is that possible to do.
gatchel Posted February 1, 2014 Posted February 1, 2014 It works great thanks!If I want to send the notification to include the first time the garage door left open timestamp on the email is that possible to do. In the email subject or body you can insert a date and time variable from the option at the bottom.
MrT Posted February 1, 2014 Author Posted February 1, 2014 How do I insert the timedate variable on the email. I did not want the time the email sent. I want it to show the time of the first time the door is open. Maybe using a variable to store this when the garage door is open. Any sample codes will be appreciated.
larryllix Posted February 2, 2014 Posted February 2, 2014 How do I insert the timedate variable on the email. I did not want the time the email sent. I want it to show the time of the first time the door is open. Maybe using a variable to store this when the garage door is open. Any sample codes will be appreciated. You would have to use all or a good portion of this software http://wiki.universal-devices.com/index.php?title=ISY-99i_Generic_Calendar_Using_Programs_and_Variables or hopefully UDI will add system variable access in one of the next version releases as per my request here. http://forum.universal-devices.com/viewtopic.php?f=7&t=13530. More voiced support never hurts their priority list.
MrT Posted February 6, 2014 Author Posted February 6, 2014 This is not what I want to program to do. I want to insert the timedate variable on the email. I did not want the time the email sent. I want it to show the time of the first time the door is open on the email.. Maybe using a variable to store this when the garage door is open.
Xathros Posted February 6, 2014 Posted February 6, 2014 There are no string variables yet. Version 5 may allow for this when it is released. The simple solution for now would be to send a message when the door is opened that includes the current time: If Control GD_IOLinc_Sensor is Switched On Then Send Notification To Content GarageDoorOpened For the custom notification: Garage door opened at: ${alert.time12}} on ${alert.date} Leave you "Still Open" reminders as they are. When V5 comes out, hopefully you will be able to modify the above to simply store the date/time in variables when the door is opened then use those variables in your reminder messages. It's been a while since I looked at apostolakisl's date programs and I don't remember if he tracks time as well as date. It may be possible that you could grab integer Hour and Minute from them to store in variables now but unless you have other uses for those programs, it's a lot of effort for this single use. -Xathros
Big517 Posted February 7, 2014 Posted February 7, 2014 I'm wondering if it would it be better to use a state variable and change the init and current state together so the program would survive a power cycle? I'm still learning and use something similar with state variable but wasn't sure if there was a downside to that.
Xathros Posted February 7, 2014 Posted February 7, 2014 I'm wondering if it would it be better to use a state variable and change the init and current state together so the program would survive a power cycle? I'm still learning and use something similar with state variable but wasn't sure if there was a downside to that. Big517- Any place a value is critical, regardless of state or integer, setting the init value is a good idea for just that reason. -Xathros
Teken Posted February 13, 2014 Posted February 13, 2014 If Status 'IO Linc Garage Door-Sensor' is On And From 7:00:00PM To 11:59:00PM (same day) Then Resource 'Garage Door: Has been left open ' Else - No Actions - (To add one, press 'Action') What is the expected behavior in this program? If the door is open from 7-11:59 PM an alert message will arrive? I am trying to redo a auto close feature for the GDO. But, want to ensure safeties are in place so this works as intended. Right now I have a program and a separate device that locks out the GDO when the alarm security system is in lock down mode. Teken . . .
MrT Posted March 16, 2014 Author Posted March 16, 2014 The repeat function works great. But I got annoyed when I got repeated email forever. How can I make it better by only repeat the send email for only 3 times and stop send me any more email. And after the garage door is close, I want to send me email that the door is closed. Any ideas.. I could not find any feature in 99i that allow me to repeat for x number times for every hour..
oberkc Posted March 16, 2014 Posted March 16, 2014 I want to send me email that the door is closed. Any ideas. I am in no position to check right now, but I thought the repeat could be defined for X number of times. Combined with a one-hour wait would , in my mind, accomplish your goals.
Xathros Posted March 16, 2014 Posted March 16, 2014 Then Repeat 3 times Notify Wait 1 Hour -Xathros Sent from my iPhone using Tapatalk
Recommended Posts