Jump to content

Close Garage Door at Night


Kentinada

Recommended Posts

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. 

Screen Shot 2019-03-09 at 8.43.41 AM.jpg

Link to comment

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

Link to comment

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')
 

 

Link to comment

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')
 

 

Link to comment
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:

  1. What triggers the IF to be evaluated
  2. 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:

  1. If it's 10:00PM
  2. 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.
  3. You right-click on the program and choose "Run (If)"

Now let's consider what causes the IF in your program to be TRUE:

  1. 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:

  1. It's 10:00PM
  2. $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.

 

Link to comment

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?

Link to comment

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!

Link to comment

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.

Link to comment
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.

Link to comment
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?

Link to comment

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')
 

 

Link to comment
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?

Link to comment
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).

Link to comment
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.

Link to comment
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.

Link to comment

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...)

Link to comment

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.

Link to comment

Archived

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


×
×
  • Create New...