The HS-WD200+ is Home Seer’s latest wall dimmer. In addition to all the commands and support of the WD100+ dimmer it adds 2 more central scene gestures. Note that the gesture codes are different between the 2 switches however. It can send us the 4 click and the 5 click gestures. See the article on the WD100 for more info on it’s central scene handling and how to work with that in XTension. The available Central Scene gesture codes on the WD200+ dimmers are
|Release of Hold||129|
The button code of the UP paddle is always 1 and the down paddle 2 so the combination of those two data points will let you trap any gesture from either paddle and perform different actions based on them.
The single click always controls the local load, but the other multi-clicks do not control the local load but only send the centra scene event. If you wish to do a sort of “all off” with a double click down you will have to script the changing of the load as well.
Something like this example might be used to control all the rooms lighting with a double click while still being able to control the dimmer locally without affecting the whole room if you wish.
on centralScene( theButton, theGesture) if theButton is equal to 1 then write log “the top paddle was pushed" if theGesture is equal to 131 then -- the switch was double clicked on write log “double click ON, turning on room lights" -- since the switch doesn’t control it’s local load when doing a double click the first thing we should do is control it turnon (thisUnit) brighten “other room light” to 75 turnon “yet another light in the room" end if else if theButton is equal to 2 then write log “the bottom paddle was pushed" if theGesture is equal to 131 then write log “double click OFF. turning off the room lights" turnoff (thisUnit) turnoff other room light" turnoff “yet another light in the room" end if end if
The other new feature of the WD200+ is the ability to change the color of the LED’s that display the level, or to control the color and the flashing of them individually to give a status display. XTension 9.4.6 adds support for changing all those settings via the new setData command
This is a low level command that sets parameter or variable data directly in the devices memory. If you get the parameter index wring or send bogus data it is entirely possible to brick the dimmer or cause other problems. If you send a command meant for one kind of device to one that doesn’t support that the results will be unpredictable at best. XTension so far does no validation of the data being sent.
The format of the Set Data command is this:
tell xUnit “name of a unit” to setData( parameterIndex, byteCount, theData)
to change the default color of the LED’s in the WD200 to blue you’d issue a command to parameter 14 with a single byte of data indicating the color, something like:
tell xUnit “name of a WD200+ unit” to setData( 14, 1, 3)
valid values for the color data are:
The User Manual lists many parameters I’ll include the most useful ones in this table. All parameters are single bytes so the middle value in the SetData command for all these would be 1. Be careful when sending these commands. All manufacturers and possibly different models of the same switch may have different parameters for the same functions. Sending an out of range or incorrect value to a parameter could have unpredictable results or could brick your switch. It’s nice to note however that the WD100 an WD200 share the same parameter number for orientation and it’s other parameters go up through 10, the other WD200 parameters start at 11 so if you confuse the 2 device types when setting data they happily ignore the out of range parameters and do not do anything damaging.
|4||Switch Orientation||0=normal, 1=upside down||setData( 4, 1, 1) to turn it upside down|
|11||Ramp rate for remote commands||0-90 the number of seconds to reach the new light level when being controlled remotely||setData( 11, 1, 10) would set a 10 second ramp rate|
|12||Ramp rate for local control||0-90 the number of seconds to reach the new level when controlled from the switch manually||setData( 12, 1, 0) would set an instant transition with no fade|
|13||Led Display Mode, can be normal to display the local load level, or “status” mode where you can control each LED and color individually||0=Local load level 1=Status Mode||setData( 13, 1, 1) puts you into status display mode so you can control the LED’s|
|14||Sets the Normal Mode LED display color as used to show the local load level||0-6 to indicate color as already listed above||setData( 14, 1, 3) sets the default color to blue|
|21||Status Mode color of LED 1 (bottom)||The color of this LED when in Status mode as set by parameter 13. Possible values are from 0 to 7. 0=Off, 1=red, 2=green, 3=blue, 4=magenta, 5=yellow, 6=cyan, 7=white|
|22||Status Mode Color of LED 2|
|23||Status Mode Color of LED 3|
|24||Status Mode Color of LED 4|
|25||Status Mode Color of LED 5|
|26||Status Mode Color of LED 6|
|27||Status Mode Color of LED 7|
|30||Flash Speed. Any of the LED’s can be assigned to flash or not flash. Only 1 flash speed is supported at a time via this parameter.||0=No Blinking, 1=100ms rate (fast blink) valid values from 0-255 but useful values are probably up to 10 or so.||setData( 30, 1, 1) sets a fast alert flash|
|31||Bitmask to turn on or off blinking for each LED. You could use the text to number command to build the bits.||valid values are from 0 to 127||setData( 31, 1, text to number “&b0010000”) would set only the 5th led to flashing. text to number “&b1111111” would set all LED’s to flashing. setData( 31, 1, 0) would stop all flashing.|
While there doesn’t seem to be a way to make the lights not show at all you can now do that with the status mode. Turnon the status mode instead of the level mode and just set every LED to off.