Jump to content

why WAIT?


Zellarman

Recommended Posts

It seems that more than a small handful of example programs I've seen posted use 'wait' before first executing a command, or 'wait' a period of time and then re-execute the same command.

 

Why is this? In some of the explanations they say it's to avoid too much signal traffic, and or insure the comand is executed. I've been lightly playing around w/ Insteon for about a year now, and still quite a newbie, but based on my limited experience and understanding of Insteon, doesn't just the basic principal of Insteon (repeating of commands until a confirmation response is received) make this unecessary?

Link to comment
It seems that more than a small handful of example programs I've seen posted use 'wait' before first executing a command, or 'wait' a period of time and then re-execute the same command.

 

Why is this? In some of the explanations they say it's to avoid too much signal traffic, and or insure the comand is executed. I've been lightly playing around w/ Insteon for about a year now, and still quite a newbie, but based on my limited experience and understanding of Insteon, doesn't just the basic principal of Insteon (repeating of commands until a confirmation response is received) make this unecessary?

 

There are cases when writing a program that a wait is necessary. For instance, if you write programs that are watching states of devices so that an action can be taken. Without a "wait" being inserted, problems can occur.

 

I have programs that use a KPL button as both a group controller and to monitor the statuses of the devices in that group via a program. Without a "wait" of about 2 seconds, the program sees the controller status change prior to all the device statuses being read back. This causes the program to get into some feedback loops with the various devices' statuses, causing the KPL button to start "blinking" instead of just changing states

 

And one time when I left the "wait" out completely, the entire KPL went nuts, flashing very rapidly and then turning itself completely off! I had to do an air gap to bring it back.

 

There are other cases, such as when using "repeat" commands that need "waits". Some of the other members can probably give examples for those.

 

Sometimes if an Insteon network is not "pristine", more than one hop is required for a command to get all the way through. And then the group cleanups are issued after the commands are received. So signals can be flying around for a while.

 

Best wishes,

Link to comment
Yardman,

 

can you post some details about your need to wait.

 

I am trying to get a keypad to work and it blinks a lot. I thought it was having a problem communicating but it may be that I need to add a wait to my programming.

 

Scott

 

Hello Scott:

 

Yes, what you are seeing can be precisely because you need the proper "wait" to be inserted. At least, that is one factor that can cause KPL "blinking". I've also seen it cause RTL (RemoteLinc) blinking.

 

I won't have access to my network until this weekend. I'll make a note to myself to post copies of my status update programs with the "waits" included when I get a a chance.

 

Best wishes,

Link to comment

Hello Scott:

 

As promised, here are some of my programs where I use the "WAIT" command:

 

___________________________________________________________________

 

Here's an example of a program that turns on the status light of my Kitchen KPL G button. This same button actually controls the same devices that are reporting back to it in this program.

 

I wrote the program so that if anyone turned any of these basements lights on from the basement, I would see the G button light up in the kitchen. In that way I both know that a basement light is on, and it also gives me the ability to then turn the entire basement off with a single push of the Kitchen KPL G button:

 

Program: "Turn Kitchen KPL G ON"

 

If

Status 'Kitch KPL G - Lower Level' is Off

And (

Status Bsmt Entry Dimmer - 3G' > Off

Or Status 'Bsmt Game Dimmer - 3G' > Off

Or Status 'Bsmt Sconce Relay - 3G' is On

Or Status 'Bsmt KPL A - Soffit Dimmer' > Off

Or Status 'Bsmt Family Dimmer - 3G' > Off

Or Status 'Bsmt Stairway Dimmer' > Off

)

 

Then

Wait 2 seconds

Set Scene 'Kitchen KPL G Group' On

 

Else

- No Actions - (To add one, press 'Action')

 

 

And here's the program that turns off the KPL G status light:

 

Program: Turn Kitchen KPL G OFF

If

Status 'Kitch KPL G - Lower Level' is On

And (

Status 'Bsmt Entry Dimmer - 3G' is Off

And Status 'Bsmt Game Dimmer - 3G' is Off

And Status 'Bsmt Sconce Relay - 3G' is Off

And Status 'Bsmt KPL A - Soffit Dimmer' is Off

And Status 'Bsmt Family Dimmer - 3G' is Off

And Status 'Bsmt Stairway Dimmer' is Off

)

 

Then

Wait 2 seconds

Set Scene 'Kitchen KPL G Group' Off

 

Else

- No Actions - (To add one, press 'Action')

 

 

Now here's one that I wrote to "cleanup" the status lights on my basement KPL secondary buttons. This is because I have scenes that turn some basement lights "on", and others "off", when a scene controller is turned "on". Historically, KPLs have not liked this, and will turn "on" every secondary that is part of that scene: there is no way to specify that you want some secondaries turned off.

 

So I have a program folder called "Cleanup", and I have several programs that I wrote to have the ISY turn the secondary lights off by including the secondaries in separate groups. So here's the example:

 

Program: "Cleanup Basement Normal"

If

Control 'Kitch KPL G - Lower Level' is switched On

Or Control 'Kitch KPL G - Lower Level' is switched Off

Or Control 'Bsmt RTL 5 - Normal Preset' is switched On

Or Control 'Bsmt RTL 5 - Normal Preset' is switched Off

 

Then

Wait 3 seconds

Set Scene 'Basement Normal Cleanup' Off

 

Else

- No Actions - (To add one, press 'Action')

 

 

Finally, here's an example of a program where I have Insteon and X10 controls included. To make certain that I have 100% reliability on the X10 signals, I use "WAIT" to send the command more than once. I think that I could use "REPEAT" in conjunction with WAIT, instead of the way that I'm doing it here:

 

If

From Sunset - 10 minutes

For 1 hour

 

Then

Set 'Hall KPL A - Porch Light' 50%

Wait 3 seconds

Send X10 'E1/On (3)'

Wait 2 seconds

Send X10 'E1/On (3)'

Wait 2 seconds

Send X10 'E1/On (3)'

Wait 10 seconds

Send X10 'E2/On (3)'

Wait 2 seconds

Send X10 'E2/On (3)'

Wait 2 seconds

Send X10 'E2/On (3)'

 

Else

- No Actions - (To add one, press 'Action')

 

 

Best wishes,

Link to comment

Frank,

 

I am also using waits with an X10 device to repeat the command several times. It seems to work well for me.

 

I also have a KPL where I also am trying to clean up the button lights. Sometimes it works and sometimes I see a flashing button after a few seconds. I'll have to look at your examples more to see if I can get mine to work better.

 

Thanks for your help.

 

Scott

Link to comment

Archived

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


  • Recently Browsing

    • No registered users viewing this page.
  • Forum Statistics

    • Total Topics
      36.9k
    • Total Posts
      370.2k
×
×
  • Create New...