These modules are used to control all load and keypad aspects of a Lutron lighting system through multiple touch panels. Homes with over five hundred loads and over five hundred keypad buttons have been controlled this way without taxing the NetLinx processor. Light loads can be toggled on/off with constant feedback and intensity can be adjusted using a bargraph. Keypad buttons can be toggled on/off with constant feedback for off, on, or flash states. A keypad button's assigned loads can be raised and lowered and their scene can be saved/restored and the new scene will effect the physical keypad button (scene feature on Homeworks Interactive and P5 only). 'Feedback Only' keypad buttons can also be used. These are useful when supplying a floorplan of which floors, wings, or rooms have lights which are 'on'.
Light loads are described to the program in terms of load control ids, and keypad buttons are described in terms of button ids. In this way a group of button ids can be combined to represent a keypad (either virtual or physical) and each button's text can be displayed on the touch panel automatically. If multiple keypads are located in a single room, they can be represented by buttons to select from, and popups used to represent each keypad type (currently only the 5 button and 10 button keypads are available). Feedback is provided to show which keypad is currently selected, and the keypad popup which represents it will be populated with the buttons that are on the keypad including their descriptive text (if desired). Keypad button feedback is provided only for those buttons currently visible.
Because all these lighting control issues are very much based upon the individual project being programmed and the number of touch panels being used, the lighting control software has been broken down into two modules: One contains the code that actually interacts with the touch panels based upon user interaction. This module can be used as is in many projects. The other loads the proper data structures based upon which lighting page is currently being viewed. This second one is specific to a given project and is where the light load control ids and light keypad button ids are specified. A pair of these two modules is defined in the control program for each panel to be individually controlled. Note that if a number of panels were combined with one virtual device, then only one pair of lighting control modules would be needed.
| Type | Name | Description |
| Dev | vdvMod | Virtual device for the module |
| Dev | vdvTpMain | Main panel device (used for popup control) |
| Dev | vdvTpLites | Lighting panel device (could be same as vdvTpMain) |
| Integer[] | cTpKpdSelect | Channels used for keypad selection for a given TP page |
| Integer | cTpKpdDeselect | A channel used to deselect the currently selected keypad |
| Integer[] | cTpKpdBtnControlSelect | Channels used for keypad button selection |
| Integer[] | cTpKpdBtnFdBkOnly | Channels used for keypad button feedback only values |
| Integer | cTpLitesOff | A channel used to turn all lights off on a given TP page |
| Integer | cTpKpdBtnDescription | Keypad button adjust - button description |
| Integer | cTpKpdBtnToggle | Keypad button adjust - button toggle |
| Integer[] | cTpKpdSceneAction | Keypad button adjust - button scene save/restore |
| Integer[] | cTpKpdBtnRaiseLower | Keypad button adjust - button raise/lower |
| Integer | cTpKpdBtnAdjustSelect | Keypad Button adjust/toggle state selection |
| Integer[] | cTpLtLdBtnControlSelect | Channels used for light load button selection |
| Integer | cTpLtLdBtnDescription | Load button adjust - button description |
| Integer[] | cTpLtLdBtnOnOff | Load button adjust - button on/off selection |
| Integer[] | cTpLtLdBtnRaiseLower | Load button adjust - button raise/lower |
| Integer | cTpLtLdLvlAdjust | Load button adjust - button associated with the level |
| Integer | lTpLtLdLvlAdjust | Load button adjust - button level for intensity adjust |
| Integer | cTpLtLdBtnAdjustSelect | Load Button adjust/toggle state selection |
| Integer | Flash | Volatile flash variable |
| Char[][] | KpdLed | Keypad LED states |
| Integer[] | KpdAddrKey[] | Keypad address keys |
| Char[][] | KpdBtnsDescription | Keypad button descriptions |
| Integer[] | KpdBtnsKpdIndex | Keypad index of each keypad button |
| Integer[] | KpdBtnsAddrKey | Keypad address key for each keypad button |
| Char[] | KpdBtnsButton | Keypad button number of each keypad button |
| Integer | CurrKpdSelected | Index of current keypad selected |
| Integer[] | MaxKpdTextBtn | Max number of text buttons per keypad |
| Integer | LitesOffBtn | Current keypad OFF control id |
| Integer[][] | KpdBtnList | List of keypad button control id indices currently assigned to TP buttons in index order for each keypad in the room |
| Char | KpdBtnAdjustOn | True when a keypad button is to be adjusted instead of toggled. |
| Char[][] | LtLdDescription | Description of each light load |
| Char[] | LtLdType | Type of light load |
| Char[] | LtLdIntensity | Current intensity of each light load |
| Char[] | LtLdPrefIntensity | Preferred intensity for each load |
| Integer[] | LtLdProcAddr | Numeric representation of each light load's processor address |
| Integer[] | LtLdBtnLoad | Key to light loads by control id |
| Integer[] | LtLdBtnList | List of light load control ids currently assigned to TP buttons in TP button array order |
| Char | LtLdBtnAdjustOn | True when a light load button is to be adjusted instead of toggled |
| Char[] | TpCurrPage | Name of the current page for this TP |
| Char[] | TpCurrPopup | Name of the latest popup with activity |
| Integer | TpNewPage | True when the current page has just changed |
| Integer | TpNewPop | True when a popup has just appeared or disappeared |
| Integer | TpPopup | True if appearing, false if disappearing |
| Type | Name | Description |
| Dev | vdvTpMain | Main panel device (used for popup control) |
| Dev | vdvTpLites | Lighting panel device (could be same as vdvTpMain) |
| Integer[] | cTpKpdSelect | Channels used for keypad selection for a given TP page |
| Integer[] | cTpKpdBtnControlSelect | Channels used for keypad button selection |
| Integer[] | cTpKpdBtnFdBkOnly | Channels used for keypad button feedback only values |
| Integer[] | cTpLtLdBtnControlSelect | Channels used for light load button selection |
| Integer | Flash | Volatile flash variable |
| Char[][] | KpdLed | Keypad LED states |
| Integer[] | KpdBtnsKpdIndex | Keypad index of each keypad button |
| Char[] | KpdBtnsButton | Keypad button number of each keypad button |
| Integer | CurrKpdSelected | Index of current keypad selected |
| Integer[] | MaxFdBkKpdCntlBtn | Max number of control buttons to provide feedback to for each keypad in a room |
| Integer[] | MaxKpdTextBtn | Max number of text buttons per keypad |
| Integer | LitesOffBtn | Current keypad OFF control id |
| Integer[][] | KpdBtnList | List of keypad button control id indices currently assigned to TP buttons in index order for each keypad in the room |
| Char[] | LtLdIntensity | Current intensity of each light load |
| Integer[] | LtLdBtnLoad | Key to light loads by control id |
| Integer[] | LtLdBtnList | List of light load control ids currently assigned to TP buttons in TP button array order |
| Char[] | TpCurrPage | Name of the current page for this TP |
| Integer | TpNewPage | True when the current page has just changed |
| Dev | vdvTpHelp | TP device where help is displayed/controlled |
| Integer | HelpTextLineCount | Number of help text lines (not counting Title and Subtitle) |
| Integer | cTpHelpTextStart | First channel number is 'Title', then 'Subtitle', then text lines (all sequential) |
| Integer[] | cTpHelpCmds | Four commands: Start, Restart, Next, End |