Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| inst_keypadlinc_buttons [2011/01/31 17:25] – jay | inst_keypadlinc_buttons [2026/04/07 18:27] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== KeypadLinc Buttons ====== | ||
| + | KeypadLinc buttons, and how you use them, is a pretty complex topic for a variety of reasons. One, while the buttons are directly addressable from Indigo on newer KeypadLincs, | ||
| + | |||
| + | Another complexity is how to keep buttons on multiple KPLs in sync when they are representing the same state. There are a variety of ways of doing this (again, see below for another option), but you can use Insteon links to link those buttons together so that when, say, button 4 is pressed on KPL#1, button 5 on KPL#2 lights up as well. You can link those buttons together via the KPL instructions, | ||
| + | |||
| + | One thing to keep in mind about KPLs: they come in 6 and 8 button configurations. On an 8 button KPL, Indigo refers to the buttons like this: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | When you refer to a button on a 6 button KPL in Indigo, you refer to the buttons like this: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Note - the KPL will never send a button 2 or 8 in 6 button configuration. | ||
| + | |||
| + | There are two major tasks that you'll likely find yourself wanting to do: execute Indigo actions when a button is pressed and manage the state of a button (on/off) with Indigo. | ||
| + | |||
| + | ===== Triggering when a KeypadLinc Button is pressed ===== | ||
| + | OK, so, you just bought a KeypadLinc (KPL for short). And, you've got it wired up and controlling the load. Now, how the heck do you use those wonderful extra buttons? Having Indigo execute commands when a KeypadLinc button is pressed is quite simple (for example, looking for button 3): | ||
| + | |||
| + | - Select **'' | ||
| + | - Click the **'' | ||
| + | - Name the trigger whatever you want | ||
| + | - Select **'' | ||
| + | - Select the KeypadLinc in the popup list beside the **'' | ||
| + | - Select **'' | ||
| + | - Select **'' | ||
| + | - Click the **'' | ||
| + | |||
| + | That would execute whenever button 3 is pressed and turns ON. Create a similar trigger that fires when the button goes OFF to perform some other set of actions. If you don't want the button to toggle between ON and OFF (but rather just always perform the same action) then you can [[indigo_6_documentation: | ||
| + | |||
| + | ===== Managing KeypadLinc button status from Indigo ===== | ||
| + | Managing the button states from Indigo is a more complex task, though not significantly so. First thing you're gonna want to do is carefully read [[inst_button_basics|INSTEON Button Basics]]. It's **__critical__** that you understand how INSTEON Groups/ | ||
| + | |||
| + | Woohoo, you're now done with that. Head spinning? You might want to stew on that for a few minutes before you proceed. Grab a cup of tea. Achieve a nice Zen state. | ||
| + | |||
| + | So, let's walk through a couple of scenarios, each building on the last and each becoming more complex. These How-To' | ||
| + | |||
| + | ==== Scenario 1 - Linking a KPL button to an INSTEON light ==== | ||
| + | - Select '' | ||
| + | - Select your KPL in the list | ||
| + | - Click the '' | ||
| + | - In the '' | ||
| + | - In the '' | ||
| + | - Select the button number on your controller you want to link the device to - on an 8 button KPL, the button numbering is obvious - start at the top left, then top right, then next row, etc. On a 6 button KPL, the large top button (load ON) is 1, the second row of 2 buttons is 3 and 4, next row 5 & 6, and the large bottom button (load off) is 7. | ||
| + | - Select the device you want to link the button to: many devices work but some don't (sprinklers, | ||
| + | - Click on the '' | ||
| + | \\ | ||
| + | OK, so, now, when you press the button on the KPL, it should control the device as you specified. Hold the button down to dim/ | ||
| + | |||
| + | Now, the KPL is directly controlling a device, and Indigo can see those button presses. On to the next scenario. | ||
| + | |||
| + | ==== Scenario 2 - Controlling a KPL button from Indigo ==== | ||
| + | Before we jump in, let's discuss why one would want to have Indigo turn on/off a button on a KPL. There are several possible reasons: | ||
| + | |||
| + | * You want the KPL button to represent the status of an X10 device | ||
| + | * You want the KPL to represent the state of some external device or software state | ||
| + | * You want to be able to flash it to impress your friends! | ||
| + | \\ | ||
| + | Anyway, now that you have some ideas. here's what you'll want to do if you want to control, say, button 3 on your KPL (Indigo 5 and later only): | ||
| + | |||
| + | - In the Actions tab of a Trigger, Schedule, Action Group, or Control page, select **'' | ||
| + | - Select **'' | ||
| + | - Select your KPL from the **'' | ||
| + | - Select **'' | ||
| + | |||
| + | This action will turn on the LED for that button. To turn it off instead, select **'' | ||
| + | |||
| + | \\ | ||
| + | If you're using Indigo 4 or greater (yes, it works equally well in Indigo 5+ and is in fact a bit faster), here's what you'll want to do: | ||
| + | |||
| + | - Select '' | ||
| + | - Select an unused group number from the '' | ||
| + | - Select your KPL from the '' | ||
| + | - Select the '' | ||
| + | - Click the '' | ||
| + | |||
| + | Great! Now, you can send the PowerLinc Group named "KPL button 3" an ON command to turn on the LED behind KPL's button 3 and OFF to turn it off. Repeat these steps with any button whose status you want to control via Indigo. NOTE: for the buttons that control the load (1 on an 8 button KPL or 1/2 & 7/8 on a 6 button KPL), you don't need to do that - you can simply send an ON/OFF to the KPL directly. | ||
| + | |||
| + | \\ | ||
| + | Now you have a couple of options for controlling the KPL from Indigo. | ||
| + | |||
| + | ==== Scenario 3 - Keeping a button in sync with iTunes playstate ==== | ||
| + | This scenario assumes you have already defined an iTunes Server device (provided by the [[https:// | ||
| + | |||
| + | So, here's the scenario: you want to have a button on your KPL that toggles iTunes play/pause, and that stays in sync with the current state of iTunes regardless of how it was changed (paused at the computer, via Apple' | ||
| + | |||
| + | - Select '' | ||
| + | - Click '' | ||
| + | - Name the trigger, and select '' | ||
| + | - Select your iTunes Server device from the '' | ||
| + | - Select '' | ||
| + | - Select the '' | ||
| + | - Select the '' | ||
| + | - Select '' | ||
| + | - Leave '' | ||
| + | - Select the PowerLinc Group/Scene that you want to control (remember, from above, it's the group named "KPL button 3" - it's the one that represents the button on the KPL) | ||
| + | - Click '' | ||
| + | \\ | ||
| + | That trigger will now turn on the button' | ||
| + | |||
| + | Next is the easy part - making the button play/pause iTunes: | ||
| + | |||
| + | - Select **'' | ||
| + | - Click the **'' | ||
| + | - Name the trigger "KPL - Play iTunes" | ||
| + | - Select **'' | ||
| + | - Select **'' | ||
| + | - Select the KPL in the popup list beside the **'' | ||
| + | - Select the button/ | ||
| + | - Click the **'' | ||
| + | - Select **'' | ||
| + | - Make sure the **'' | ||
| + | - Select **'' | ||
| + | - Type the following script into the text area below **'' | ||
| + | itunesPlugin = indigo.server.getPlugin(itunesId) | ||
| + | if itunesPlugin.isEnabled(): | ||
| + | itunesPlugin.executeAction(" | ||
| + | - Click **'' | ||
| + | - Click the **'' | ||
| + | - Name the trigger "KPL - Pause iTunes" | ||
| + | - Select **'' | ||
| + | - Select **'' | ||
| + | - Select the KPL in the popup list beside the **'' | ||
| + | - Select the button/ | ||
| + | - Click the **'' | ||
| + | - Select **'' | ||
| + | - Make sure the **'' | ||
| + | - Select **'' | ||
| + | - Type the following script into the text area below **'' | ||
| + | itunesPlugin = indigo.server.getPlugin(itunesId) | ||
| + | if itunesPlugin.isEnabled(): | ||
| + | itunesPlugin.executeAction(" | ||
| + | - Click **'' | ||
| + | \\ | ||
| + | That's it! Now, you have a button that controls iTunes Play/Pause, and always reflects the state of iTunes regardless of where it was last controlled from. | ||