Jump to content

Program status stays True


klebel

Recommended Posts

HI All,

 

I recently put together a program and linked it to a button on my keypadlinc.  I followed the directions in the wiki so I'm not quite sure what I am doing wrong.  I have the button set as non-toggle ON.

 

Here is the program.

 
If
        Control 'Living Room- F' is switched On


Then
        Set 'Master Bedroom - Indirect' Fade Up
        Set 'Master Bedroom - Hall' 50%
        Set 'Master Bedroom' Off
        Set Scene 'Master Bedroom / Master Fan - Medium' On
        Wait  1 minute 
        Set Scene 'First Floor Lights' Fade Down


Else
   - No Actions - (To add one, press 'Action')
Any ideas why the program stays true and the light stays lit on the keypadlinc?  Thanks all.
 
Kerry
 
 
Link to comment

First, status of a program represents last run.  If last program run is true, the program will stay true until run again AND false.

 

Second, your condition "Control 'Living Room- F' is switched On" will trigger only by an ON command and, thus, will ALWAYS run true.  There is no way this program can ever be false.

Link to comment

If its set for non-toggle on, then then all it can do is send an on. I would try these 2 changes:

  1. Set it for toggle mode
  2. Adding to what oberkc said, add a statement to turn Living room F off at the end of the program.  

You'll need to create a scene and add living room F button to it, and switch that off.

 

That will turn off button F, and the program should no longer be true, solving both problems.

 

The button would be off, you press the button

The program runs, 

The program turns the switch back off

Link to comment

If its set for non-toggle on, then then all it can do is send an on. I would try these 2 changes:

  1. Set it for toggle mode
  2. Adding to what oberkc said, add a statement to turn Living room F off at the end of the program.  

You'll need to create a scene and add living room F button to it, and switch that off.

 

That will turn off button F, and the program should no longer be true, solving both problems.

 

The button would be off, you press the button

The program runs, 

The program turns the switch back off

 

Interesting guys thanks for the feedback.  I guess part of where I was confused was with the Non-Toggle ON state.  I assumed that even though all it could do was send an ON.  But I thought that the Control function in the IF statement was looking for a "new" ON state when the button was pressed.  I was wrong. :)    Also, any idea why it is that you can change the state of a standard dimmer switch to OFF  in the THEN statement of a program but for a keypadlinc you have to add the key to a scene and adjust it in there?  I dont get it.  Seems lame you have to create a scene with a single button in it.

Link to comment

Interesting guys thanks for the feedback.  I guess part of where I was confused was with the Non-Toggle ON state.  I assumed that even though all it could do was send an ON.  But I thought that the Control function in the IF statement was looking for a "new" ON state when the button was pressed.  I was wrong. :)    Also, any idea why it is that you can change the state of a standard dimmer switch to OFF  in the THEN statement of a program but for a keypadlinc you have to add the key to a scene and adjust it in there?  I dont get it.  Seems lame you have to create a scene with a single button in it.

 

So after thinking about it, you might not have to use toggle mode. I've never used non-toggle mode, but maybe sending it an off will turn it off.  It's a fairly easy experiment to try. Depends on how if affects the functionality you want, and what the off does. .

 

I've had the scene thing explained to me before, but I don't recall the specifics. The reality is its not that hard to, so I've "accepted the thing I can't change" :D

Link to comment

What are  you wanting to happen?

 

What you currently have is a button that each time you press it, it sends an "on".  It will never shut off in non-toggle on mode.  So no matter what, when you hit the button, it will run the "then" command of that program.

 

Also

 

Are you expecting to also use this button to turn all that stuff in the program off?  If so, you would be better off creating a scene where the kpl button is a controller and all the other things are responders.  The only caveat to that is the 1 minute delay on the last item.  That would have to still be in the program.  But all the other stuff would respond much quicker if it were a scene and not a program.

Link to comment

I have several buttons in non-Toggle On mode because that's all I ever want the button to do. In particular, each entry/exit had a "Dine Out" button that turns most lights off and a few to a preset On-level. In addition the corresponding walk path lights (e.g., walkway to street, courtyard to garages). But I don't want the button always lit. So, a program turns off the scene that contains that button only. Here's why:

 

First, if I turn off the Dine Out scene, then all the devices in that scene will turn off (including the button) which is virtually every light in the house. I certainly don't want that.

 

Second, when a direct command is sent to a device it affects that device only, not any of the devices links. So sending a direct command to a primary button will turn on only the wired load. But sending a direct secondary button has no function, so there is no code for that in the Insteon protocol. Including any unneeded code leaves less room for a feature.

 

OTOH, all devices respond to scenes. That's how cross-linking buttons to create a virtual 3-way configuration works. Creating a scene with only a secondary button as a member allows you to turn the button on and off.

Link to comment

 

 

Also, any idea why it is that you can change the state of a standard dimmer switch to OFF in the THEN statement of a program but for a keypadlinc you have to add the key to a scene and adjust it in there? I dont get it. Seems lame you have to create a scene with a single button in it.

Yep - agreed. However, this is an Insteon limitation not an ISY one. You cannot send direct messages to KPL keys (other than the primary node) so you have to put the node into a scene as a responder then send the scene command.

Link to comment

The technical answer is a Direct command does not have have a placeholder for a Group number.  

 

A SwitchLinc has a Group number of 1 for the single node that represents the SwitchLinc device.

 

An 8 button KPL has 8 Groups (1- 8 ).  Each button of the KPL has its own Group number.   That is how Insteon knows which button is pressed and which button to operate on.

 

Main A - Group 1

B - Group 2

C - Group 3

.........

H - Group 8

 

Insteon assumes a Direct command is operating Group 1.  The Direct command has no field for Group.

 

Since the KPL requires a Group number to know which button to reference, a Scene is required as the associated Scene link record(s) has a field for Group.   A Scene can turn On a SwitchLinc which would use Group 1; KPL 1 button C which would use Group 3; KPL 2 button D which would use Group 4.   The Group number cannot be in the command itself as a Scene can control over 250 devices, each of which has a different Group requirement.

 

This may sound complex but it is pretty simple once the device requirement is understood. 

Link to comment

I am with apostolakisl...I am uncertain what you are trying to accomplish and how this fails, if at all.

 

If important, be aware that having a button in non toggle mode affects only what happens when the button is physically pressed. It does NOT prevent a scene command or direct command from putting in the opposite state.

Link to comment

If your desire is to have the button perform an action then turn off, it may be a better idea to set the button to Non-Toggle Off mode and adjust your program to accept a "Control is Switched Off" rather than On.  That way you won't need to use a scene to reset the button to off when the program runs.  The button will still blink twice when you press it to give you some feedback that it "Heard" you.

 

Hope this helps.

 

-Xathros

Link to comment

Wow guys lots of great feedback.  Much appreciated!  I finally understand how the Keypadlincs really work with that explanation from Lee.  The basic scenario of what I am trying to accomplish is pretty simple.  I have a Keypadlinc in our living room.  The living room is pretty much the last place we are in the evening before heading up to bed.  I built the program to turn on the lights in our bedroom, kick on the ceiling fan (Im a human furnace) and to light the way from the first floor to the second.  The after a period of time I wanted the program to turn every light on the first floor off.  Pretty simple I thought.  I was getting hung up on the keypadlinc button light ALWAYS being on.  I like Xathros idea of doing the button as non-toggle OFF.  I think I will give that a shot as well.

 

Thanks again to all...

 

Kerry

Link to comment

Xathros' idea is a good one.  Another option, if it doesn't conflict with other uses for scene "first floor lights" would simply be to keep the keypad button as non-toggle-on, but include that same button in the first floor lights scene.  When that scene turns off after the 1 minute wait, then the button would turn off, as well.  This has the potential value that when the keypad button is lit, you know the timer is active.

Link to comment

Archived

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


×
×
  • Create New...