![]() | ![]() | |
| Make/Model | Device Version | Connection Type |
| Lutron/Homeworks | ??? | Serial or IP |
This driver controls the Lutron Homeworks system, which is a commonly used hardwired lighting system. The Homeworks system supports multiple processors, each of which can manage various dimmers, keypads, and so forth. This driver doesn't support nearly all of the functionality available on this device, but a lot of it wouldn't necessarily be the kind of things you'd need for day to day control. But it provides the core features required.
This driver has a client side interface that allows you to configure which buttons, dimmers, and LEDs you wish the CQC driver to provide access to. In many cases you will not need the driver to have access to anywhere near all of the installed bits. You can add or delete items in each list. If you want to edit one, just double click on it. When you have made changes, the Send/Clear buttons will be enabled, allowing you to send the changes to the driver or to discard any changes you've made.
The driver will do basic validation of the entered Lutron address and button/LED number, but it cannot know if they are actually correct or not. So be careful to enter the correct values. It will not allow you to use the same name or address more than once within a given list. For buttons and LEDs the address includes the button or LED number when checking for duplicates.
This driver will send User Action events for each press/release of any buttons you configure. This allows you to have CQC react to button press/release events from the Lutron system. As with all User Action events, it will be identified by the driver moniker, and a type/data values. The types will be ButtonPress and ButtonRelease and the data value will be the configured name of the button. This allows you to selectively react to specific buttons and press/release events. Note that the configured buttons do not drive the creation of any driver fields. You merely configure them so that the driver will know which buttons you have an interest in reacting to, and so that you can refer to them by name in the InvokeCmd field, when sending the Lutron button press simulation commands.
This driver's server side component is CML based. The server driver classes for this device are in the MEng.System.CQC.Drivers.Lutron.Homeworks scope.
If an LED is configured such that its state cannot be set via the control interface, it doesn't give any error to indicate that the setting of the state is not going to work. So the driver doesn't know if it worked or not except to see a new LED status message come in. So you may see the state of the LED flip quickly to the new written state and then back to its previous state when the status message comes in with the old state in it.
The Series 4 Homeworks systems appear to have hardware flow control hardwired in and you cannot change it. For these systems you will want to use a 3 wire connection, and do a standard flow control cheater loopback connector on the Lutron side to avoid this issue. You do NOT want to have hardware flow control enabled in the CQC driver since it can lock up the driver if the device stops responding for some reason.
This driver supports both serial and IP based connections. There are separate driver manifests for the two connection types, so be sure to select the correct one for the desired connection type.
The serial connection supports a number of baud rates and can be configured to use hardware flow control or no flow control. This driver is written use the fastest baud rate, 115.2K, and no flow control. So be sure to configure your Homeworks system to expect this type of connection.
This section lists the fields that the driver makes available, their types, minimum and maximum values, etc...
Name Type R/W Description/Limits Dim_XXX Card R/W For each configured dimmer named XXX, the driver will create a field named Dim_XXX. It is a cardinal field, with a range of 0 to 100, since it represents a percentage level for the dimmer. So read it to get the dimmer level, and write to it to set the level. Setting the level this way is an instant change. For a ramped change, see the InvokeCmd field. LED_XXX String R/W For each configured LED named XXX, the driver will create a field named LED_XXX. It's an enumerated string field, with the values: Off, On, Flash 1, Flash 2. Read it to get the LED state, and write to it to set the state. See the Quirks and Limitations section above. InvokeCmd String W An open ended command field which allows you to send formatted strings to invoke more complex control. The syntax is described below.
The InvokeCmd field in the table above allows you to send the driver more complex commands via a formatted string. The format of the string written to this field is:
Cmd : Parm1, Parm2, ..., ParmXWhere Cmd is the command to perform, and Parm1 through Parmx are the command parameters, comma separated. The parameter fields are interpreted differently according to the command. Spaces around the command or parameters are ignored and upper/lower case makes no difference, so you can do "Cmd:p1,p2" or "CMD : P1 , P2", and they will be seen as the same thing.
- When referring to the name of dimmers, LEDs, etc... below, use the configured name, not the Dim_XXX or LED_XXX field names.
The possibilities are listed below.
ButtonSim : name, [Press|Release]
This command simulate a button press or release event on the indicated named button. As a rule, unless there is a particular reason you need to generate a release, a press is all that is required to invoke the button.
FlashDimmer : name, percent, seconds
This command will flash the named dimmer between zero and the indicated percent value, flashing back and forever ever indicated number of seconds. The seconds value is from 0 to 30.
SetDimmer : name, percent, seconds
This command will set the named dimmer to the indicated percent, ramping over the indicated number of seconds. The seconds value is from 0 to 30.
StartDimAdjust : name, [Up|Down]
This command will start the indicated dimmer ramping up or down, depending on the second parameter. It will continue to ramp up or down until you send it a StopDimAdjust. The Up/Down parameter is case sensitive!
StopDimAdjust
This command will stop a previously invoked StartDimAdjust command. Normally, you would use a user interface command button's OnPress/OnRelease events with these commands. OnPress would start the up/down ramp, and OnRelease would stop the adjustment.