Kentinada Posted March 9, 2019 Posted March 9, 2019 I am trying to have a program automatically close my garage door at night in case I forget to close it. This happened just recently and the garage door was open all night. We live in the woods so this just invites critters into our garage. I've attached a screen shot of the code I have. Will the THEN code work? The ELSE code does not. I didn't get a text last night saying the door was already closed which I assume is because I'm still not getting how the conditional firing of the program works. I should have this figured out by now. I've had this ISY for a long time but I obviously need some help so I'm asking. Thanks.
paulbates Posted March 9, 2019 Posted March 9, 2019 An alternative is to provide a reminder. I have a repeat loop that beeps the keypad by the door with the garage door key on it periodically until someone closes the door. I want a person to manage pressing the button as opposed to the door operating on its won For the "then" in your program, I don't understand why there are two set commands back to back? If this is an iolinc, fast off and on don't do anything different than on or off; iolinc is not dimmable. For my opener, that would most likely start the door, than stop it. Paul 1
Kentinada Posted March 9, 2019 Author Posted March 9, 2019 So maybe a better idea is to check to see if the door is open at 10pm and then text me if it is. Suggestions on doing it that way? Sent from my iPad using Tapatalk
mwester Posted March 9, 2019 Posted March 9, 2019 Here's what I use for the one door that still uses an IOLinc: AlertDoorLeftOpenShed - [ID 007E][Parent 0013] If Time is 9:44:09PM And 'Shed Overhead Door-Sensor' Status is On Then Send Notification to 'AlertEmail' content 'ShedDoorOpen' Else - No Actions - (To add one, press 'Action') 1
larryllix Posted March 9, 2019 Posted March 9, 2019 (edited) I have a corner lamp flash red every 5 to 8 seconds while any garage door is open. If the gathering room lights are turned off and the MBR lights are turned on, that lamp begins to flash brightly then. Edited March 9, 2019 by larryllix
paulbates Posted March 9, 2019 Posted March 9, 2019 This is the one I use Garage Alert Left Open - [ID 008E][Parent 004C] If 'Garage / Door Sensor' Status is On Then Wait 30 minutes Repeat 10 times <this goes for ~ 2 hours, allows for yardwork, etc> Set 'Kitchen / Backdoor.Outside' Beep Wait 10 minutes Repeat 0 times <Repeat 0 times canceles the last repeat statement> Resource 'Pushover Garage Door Left Open' <Put your text message here> Repeat Every 15 minutes <Keep nagging until somebody closes it> Set 'Kitchen / Backdoor.Outside' Beep Else - No Actions - (To add one, press 'Action')
jec6613 Posted March 9, 2019 Posted March 9, 2019 I just have a keypad in our bedroom with a, "Garage," button that is lit whenever the door is open. Push it and it closes or opens it - lets me remote start the car on cold mornings, too.
kclenden Posted March 9, 2019 Posted March 9, 2019 (edited) 9 hours ago, Kentinada said: I'm still not getting how the conditional firing of the program works. There are two things to consider about a program conditional: What triggers the IF to be evaluated What causes the IF to be TRUE (and run the then) or FALSE (and run the else) Whether the IF evaluates to TRUE or FALSE only matters if the program is triggered to evaluate the IF Let's consider what triggers the IF in your program to be evaluated: If it's 10:00PM Maybe if $Garage_Door changes to a value of 1 from some other value. I can't tell for sure because I can't tell whether $Garage_Door is a state variable or an integer variable. Only changes to state variables cause a program to trigger. A lot of people use a convention whereby they start a variable with an "s" if it is a state variable or an "i" if it is an integer variable. So depending on which type it is, your variable would either be $sGarage_Door or $iGarage_Door. You right-click on the program and choose "Run (If)" Now let's consider what causes the IF in your program to be TRUE: When it's 10:00PM AND when $Garage_Door is equal to 1 Based on all of the above, if we assume your variable, $Garage_Door is a state variable then the IF will trigger, and either the THEN or the ELSE will run and you should receive one of your two text messages under these to conditions: It's 10:00PM $Garage_Door changes to 1 from some other value If $Garage_Door is an integer variable (which is what I think you want), then the IF will trigger, and you should receive one of your two text messages, only once a day at 10:00PM. I'm unclear about whether you're saying that you tried the program and it didn't send a text message. If that's the case then I can think of the following possible causes: Your outbound communications are not working. You can check this by right-clicking on the program and choosing "Run (Else)". You have accidentally disabled the program. Disabled programs have a small red circle with a slash on their icon. Edited March 9, 2019 by kclenden
oberkc Posted March 10, 2019 Posted March 10, 2019 Kentinada, in my mind your program is pretty simple and should work. At 1000, it will trigger and, depending on value of variable, run THEN or run ELSE. I see no problem with this particular program. The only thing that I might be cocnerned about is if the door was open, and your program closes it at 10:00, the variable state chanes in a few seconds, retriggering the program. For this reason, please ensure your variable is the type “integer”. if you are getting unexpected results, try narrowing down your problem. Right-click on your program and choose to run the else path. Did you get your reminder? The answer to this question could point you in a particular direction. Have you confirmed that an open door results with a variable=1? Have you confirmed that a closed door results in a different value? Do you know how to confirm whether the program ran at 10:00, or whenever it last ran? Do you know how to determine whether it ran TRUE or FALSE? If so, check that out next time the clock strikes 10. is it possible that your program is disabled, or in a folder that is disabled?
Kentinada Posted March 10, 2019 Author Posted March 10, 2019 I really appreciate the expertise here. I guess I'm still not understanding what triggers a program. For the code below, does the IF clause get triggered: 1. When it's 10pm 2. When the status of Garage Door-Sensor changes 3. Only when it's 10pm AND the Garage Door-Sensor is On Close Garage Door - [ID 0035][Parent 0001] If Time is 10:00:00PM And Status 'Outdoors / Garage Door-Sensor' is On Then Send Notification to 'Kent Txt' content 'Garage Door Night Closure' Wait 1 minute Send Notification to 'Kent Txt' content 'Garage Door Night Closure' Else Send Notification to 'Kent Txt' content 'Garage Door Already Closed' I eliminated the variable from the program because I think I should be able to do what I want with the Garage Door-Sensor. Obviously still learning here. Thanks!
larryllix Posted March 10, 2019 Posted March 10, 2019 (edited) If gets evaluated at both times..10 and/or the garage door status changes. If the whole If section is True then the Then section gets executed. If False then the Else section gets executed. When the garage door status changes the if section can never be true and else will always run. Edited March 10, 2019 by larryllix
Kentinada Posted March 10, 2019 Author Posted March 10, 2019 Thanks Larry. So the THEN clause only fires when it's 10pm AND the Garage Door-Sensor is in the ON state. Any other time of day, when the Garage Door-Sensor changes state, it will run the ELSE clause. Do I have that right?
larryllix Posted March 10, 2019 Posted March 10, 2019 14 minutes ago, Kentinada said: Thanks Larry. So the THEN clause only fires when it's 10pm AND the Garage Door-Sensor is in the ON state. Any other time of day, when the Garage Door-Sensor changes state, it will run the ELSE clause. Do I have that right? Yes correct. Unless the 10 pm is causing the evaluation it is not true itself.
oberkc Posted March 10, 2019 Posted March 10, 2019 (edited) 2 hours ago, Kentinada said: I eliminated the variable from the program because I think I should be able to do what I want with the Garage Door-Sensor. Of course, with the elimination of the variable, this program will trigger every time the door changes state, regardless of time. Each time it is triggered by the sensor changing state, it will run false and send you a notification. Is this what you want? This is one advantage a variable may offer in your case. Integer type variables do not trigger programs (which was the reason a couple of people suggested using them here). I am assuming you want this program only to run once per day, at 10:00, correct? Edited March 10, 2019 by oberkc
Kentinada Posted March 10, 2019 Author Posted March 10, 2019 oberkc, yes I wanted this to run only once a day at 10pm. So based on your comment about integer variables not triggering programs, I went back to that. The integer variable is set by another program: 0 = closed, 1=open. So will this program below only be triggered one time a day and only if it is 10pm AND the integer variable iGarage_Door=1? That is what I was trying to do originally. Thanks. Close Garage Door - [ID 0035][Parent 0001] If Time is 10:00:00PM And $iGarage_Door is 1 Then Send Notification to 'Kent Txt' content 'Garage Door Night Closure' Wait 1 minute Send Notification to 'Kent Txt' content 'Garage Door Night Closure' Else - No Actions - (To add one, press 'Action')
oberkc Posted March 10, 2019 Posted March 10, 2019 7 minutes ago, Kentinada said: So will this program below only be triggered one time a day and only if it is 10pm AND the integer variable iGarage_Door=1? This program will be triggered only once per day. It will be triggered at 10:00. It will be triggered regardless of value of variable. Once triggered, whether it runs true or false will be based upon both conditions. Since it was triggered at 10:00, that part of the condition is, obviously, true. Whether or not the variable condition is true will depend upon whether it is a "1" (true) or anything else (false). Both conditions must be true (logical AND) for your THEN clause to run. Otherwise, your ELSE clause will run. Why do you have two notifications, separated by a minute?
Kentinada Posted March 10, 2019 Author Posted March 10, 2019 Trying to create something to bug me in case I missed the first notification. What would you suggest?
oberkc Posted March 10, 2019 Posted March 10, 2019 (edited) 14 minutes ago, Kentinada said: Trying to create something to bug me in case I missed the first notification. What would you suggest? That would certainly bother me. Sounds like you have succeeded. In case it is not obvious, it will send you two notifications, regardless of whether you close the door after the first message. Personally, I just have the ISY close the garage door (as I thought you were originally trying to do). Edited March 10, 2019 by oberkc
Kentinada Posted March 10, 2019 Author Posted March 10, 2019 oberkc, I was originally going to have it close the door and then thought against it for safety reasons although the risk is pretty slim. Might end up doing that anyway.
larryllix Posted March 10, 2019 Posted March 10, 2019 21 minutes ago, Kentinada said: oberkc, I was originally going to have it close the door and then thought against it for safety reasons although the risk is pretty slim. Might end up doing that anyway. Some of the newer GDOs have automatic closing built in to the units but they issue some warning sounds before closing. I am not sure that would make any difference to some toddler going back for his push car, though.
oberkc Posted March 10, 2019 Posted March 10, 2019 24 minutes ago, Kentinada said: oberkc, I was originally going to have it close the door and then thought against it for safety reasons although the risk is pretty slim. Might end up doing that anyway. I understand. There has been an ongoing debate about that around here, and also about the security risks associated with having an automation system having this ability. I assume yours has the safety interlocks built in, so it should not close on a child or pet. Since you seemed concerned mostly with critters (probably my biggest risk as well), it seemed you were well suited to an automatic solution. Thanks for satisfying my curiosity. 5 minutes ago, larryllix said: Some of the newer GDOs have automatic closing built in to the units but they issue some warning sounds before closing. I am not sure that would make any difference to some toddler going back for his push car, though. Hopefully, the interlocks will also come into play here. They certainly work well for my doggies.
mwester Posted March 10, 2019 Posted March 10, 2019 Of course, just to be clear on this -- it's not just toddlers and pets. For example, on my shed door, the optical sensors are low enough that they can peek beneath the truck. And while it has an auto-reverse on it, it'll still leave at least a mark if not outright scratches in the paint on the roof or hood of the vehicle. I prefer to be notified -- I've a camera in the shed that I can use to double-check, and a button on the kitchen KPL that I can press to close it. (And yes, we've beaten this issue to death, just want to make sure that nobody has false expectations for their automation...) 1
larryllix Posted March 10, 2019 Posted March 10, 2019 In the last ten years since mine and the neighbour's house was built, I have seen their garage door crumpled three times now. Large kids toys were reported twice. I didn't ask about the third time. It's very interesting to see a non-insulated door crumple like it was tinfoil. It costs lots of money to have them replaced! To further mwester's point, I now have a hatchback style tailgate on a Honda CR-V that opens up. The sensors will not see that. While it could possibly push the tailgate door shut the hinge mechanisms would rip the paint and maybe metal, windshield wiper arm, and/or windshield glass, and cost me big bucks. It doesn't take much to cost $3-4000 for these mishaps. 2
Recommended Posts