Jump to content

New ISY User need some help with first program


Ajax

Recommended Posts

Guys not sure what I am doing wrong but why would this program make my lights flash instead of running? 

 

Exterior Lights - [iD 0003][Parent 0001][Not Enabled]
 
If
        From    Sunset  + 30 minutes
        To      11:30:00PM (same day)
    And Status  'Garage Exterior' is Off
 
Then
        Set Scene 'Exterior Lights' On
 
Else
        Set Scene 'Exterior Lights' Off
Link to comment

Try it with the "Else" function blank (no action) and see what happens.

 

If
        From    Sunset  + 30 minutes
        To      11:30:00PM (same day)
    And Status  'Garage Exterior' is Off
 
Then
        Set Scene 'Exterior Lights' On
 

Else

        - No Actions - (to add one, press "Action")

Link to comment

Yes not sure why but for some reason I could not select a scene for status so I just used one of the devices (Garage Exterior) that is in a 3-way scene (Exterior Lights). If I leave the else statement blank and the lights were turned on my before the program triggered will it still shut off the lights at 11:30 or do I write another program?

Link to comment
Yes not sure why but for some reason I could not select a scene for status so I just used one of the devices

 

It is because scenes have no status in insteon.  Only devices have a status.

 

Your program is, in effect, creating an endless loop.  The program triggers, it changes the state of the device (as part of the scene), which triggers the program, which changes the state of the device, which triggers the program, which...well...you get the point. 

 

Remove the STATUS condition from the program.  It really serves no purpose, anyhow.

Link to comment

I run a program which checks to see if any of the individual lights included in the scene are on.  The lights are enumerated individually.  If none are on, then the program runs the "then" statement, the scene executes, and all of the lights in the scene are turned on to a predetermined level.  If any one is on, then the program "then" statement doesn't turn on the scene.  It works fine.

 

 

post-2800-0-08785700-1472254212_thumb.png

Link to comment

I run a program which checks to see if any of the individual lights included in the scene are on.  The lights are enumerated individually.  If none are on, then the program runs the "then" statement, the scene executes, and all of the lights in the scene are turned on to a predetermined level.  If any one is on, then the program "then" statement doesn't turn on the scene.  It works fine.

This program is a little different than the original-posted program.  Yours has a "if time is..."  Ajax' program has a "if time is from/to".  Your program works fine because there is only a specific moment in time that it can be true.  Ajax program can be true over a period of several hours.  Obviously, Ajax' program also has a non-empty ELSE path.

 

 

There are several ways to approach Ajax program.  One could use two programs.  One could use a single program as he is trying.  If the condition "status exterior light is off" turns out to be important, then it might be necessary to break his into two programs.  But, the original intention seemed to be check whether the scene was on, instead using a device within the scene as an indicator.  In my estimation, if a scene is ON, there is no harm in turning it on again. 

Link to comment

Here's the last in the series of programs.  The interim program adjusts the lights to the "If" requirements.  So, if I'm watching TV and I have changed the lighting intensity, etc., then this program won't execute.  If not, it executes.  Also, this one has an off time.  It works great, too.

post-2800-0-90538200-1472256502_thumb.png

Link to comment

This program is a little different than the original-posted program.  Yours has a "if time is..."  Ajax' program has a "if time is from/to".  Your program works fine because there is only a specific moment in time that it can be true.  Ajax program can be true over a period of several hours.  Obviously, Ajax' program also has a non-empty ELSE path.

 

 

There are several ways to approach Ajax program.  One could use two programs.  One could use a single program as he is trying.  If the condition "status exterior light is off" turns out to be important, then it might be necessary to break his into two programs.  But, the original intention seemed to be check whether the scene was on, instead using a device within the scene as an indicator.  In my estimation, if a scene is ON, there is no harm in turning it on again. 

So I did use a device (Garage Exterior) to check if the scene "Exterior Lights" are one-Is that the correct way to check? I will remove the "Status" Since yes in theory what's it going to do just turn in on. But how would I have done that if I did want to check a status first? Since mine looks very similar to the one below but does not work

 

Here's the last in the series of programs.  The interim program adjusts the lights to the "If" requirements.  So, if I'm watching TV and I have changed the lighting intensity, etc., then this program won't execute.  If not, it executes.  Also, this one has an off time.  It works great, too.

 

 Thanks guys

Link to comment

But how would I have done that if I did want to check a status first?

 

Probably use an approach similar to haroldunger, but you would have to use two programs.  The big difference is that the time condition is a single, discrete, time rather than a range.

 

If

time is sunset + 30

and status garage exterior is OFF

then

turn lights on

else

nothing

 

if

time is 1130pm

then

turn lights off

else

nothing

 

One of the big things to be aware of is when a program action can cause the program to retrigger (as your original program did) and get in a never-ending loop.  A simple and obvious example would be:

 

if

status LIGHT is OFF

then

turn LIGHT ON

else

turn LIGHT OFF

 

While easy to see in this case, it is often hard to see when this is happening in more complicated programs.  I believe it was happening in your case (but only between the time range specified). 

Link to comment

Thanks Oberkc, Quick question with doing 2 programs just for turning lights on and off, how many programs total do most guys run? I mean I know it is going to vary, but it seems I am going to spend days just creating the most basic functions

Link to comment

Thanks Oberkc, Quick question with doing 2 programs just for turning lights on and off, how many programs total do most guys run? I mean I know it is going to vary, but it seems I am going to spend days just creating the most basic functions

I have no idea about "most" or average. Personally, I have well fewer than 100 programs, but I have no doubt those crazy guys can have orders of magnitudes greater than that. Useing the program folders and comments, it is pretty easy to manage, in my estimation.

 

Which is another reason I prefered my original suggestion (remove the status condition) and do it in a single program. I suspect you will also find means opportunity to combine programs. For example I might have several programs to turn lights on any given day, but only one to turn all off.

 

For the most part, I have not found this sort of thing to be a constraint.

Link to comment

Archived

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


×
×
  • Create New...