[OBSOLETE] Cooper Aspire Scene Controller RFWC5 and RFWC5D Device Handler [beta release]

Here is a link to the DH for the cooper aspire scene controller device handler. I have done limited testing with my two controllers. If you have one of these controllers please give it a try. The file can be found on git hub at the repository below.

The path below is the git hub location for 1.9.

It sounds like you have it set right. The configuration process is slow and will take several minutes. It’s best just to watch in the logs and don’t touch any buttons. Push the configure scenes button again and wait for it to complete before testing.

The scene controller DH can provide the following functions via smartThings:

  1. It will provide 5 buttons with button pressed events that can be used to trigger events in ST. This functionality works with the Smart Lighting app.

  2. It provides five attributes for indicators showing their current state (on off). Applications can be triggered via a button press and then use the indicator attributes to determine/check the current on off state. This will work well with CoRe and other apps that allow access to device handler attributes.

  3. It provides commands to toggle or set the indicators. These work with CoRe and other apps that have access to commands. There are 5 toggle commands that change the state of the associated indicator. The IndicatorSet command requires two parameters: Indicator number (1-5) and on or off (1 or 0).

  4. It can be configured to control zwave devices directly via association. The user must enter node ids and desired levels/states in the preferences per instructions.

  5. It can be configured to control zwave devices directly via scene commands. For this to work the target devices must support the Scene Activation 0x2B command and they must be configured with the scene Scene Actuator Conf 0x2C command separately. Check your device Raw Description for 2B and 2C. A custom device handler is need to set these devices up (see below for an example).

  6. Devices actuated via 4 and 5 above will continue to function without the smartThings hub online. (This is useful for applications where things are dedicated. I have a controller at the nexus of the kitchen, living and dining rooms right where the builder should have put a bank of switches but didn’t. I would not want this to stop working if ST or the internet stopped working).

I’ve tested this device handler with some Linear Dimmers (scene controlled) and some GE, and zwave4less switches via association. I’ve done some testing of the interaction with smartThings. I see three modes of use available to the user:
A. Use the default config settings and use smartThings app like CoRe to activate any other SmartThings devices.
B. Use a scene/association configuration and let the controller send commands to devices.
C. Use a combination of A and B and let SmartThings extend the controllers capabilities to non-zwave devices.

I’ve forked the device handler by snailium for the gocontrol-linear-2gig-dimmer-switch and added scene configuration capabilities. There seems to be some bugginess with updating the tiles but the configuration works. I’ve boxed the code I added with comments so if you want to copy it to mod another DH you can. Below is a link to the github fork.

Please take a whack at using this and let me know how it works. I am new to programming this stuff and I know the code needs some cleaning up and likely bugs fixed so any help is appreciated. There are a few limitations:

  1. The 6th button on the controller is an all off button. It is intentionally not supported as a separate button in the DH. However, it works as intended by the device designers. It signals an off command for all other buttons that are on. The indicators and button presses for the other five will report to ST their status properly.
  2. The device uses button hold to dim or brighten scene controlled zwave devices. There is no support for ST in the DH for button holds as I could not find a way to determine which button was held. Perhaps future support.
  3. A better implementation would be a 5 switch parent/child DH. The was beyond my skill set for programming currently. Perhaps it can be implemented in the future.
  4. There is no support for remotely activating a button. I could not find a way get the device to respond on any such commands. The indicators can be turned off and on. The button will respond appropriately when pressed following a remote change of the indicator. Pressing a button after turning the indicator off will turn on the “scene”. Pressing a button after turning the indicator on will turn off the “scene”. While setting the indicators does not control devices it will be useful for setting the desired button state. If your group of devices are turned off via ST by other means then turn the indicator off and the RFWC will be ready to activate those lights again.

Have fun

This is incredibly promising. Unfortunately I haven’t gotten it to work yet. I tried to get it to control an Evolv switch (I think they are go-control now) and I must be doing something wrong. For button one I set:
Button 1 scene ID: 100
Button 1 scene dimming duration: 10
Button 1 scene Capable Devices: 03 (the ID of the Evolv switch I’m trying to control)
Button 1 Devices via association: 03 (again, the ID of the Evolv switch I’m trying to control)

Am I not understanding something correctly?

Nortek is one of the largest manufacturers of zwave equipment in North America. They sell their devices under many different brand names, including Linear, 2gig, and GoControl. But they do not make the Evolve switches.

I’m messing with it right now myself but I’m finding some bugs and don’t have time to fix right now.

From your inputs it looks like you have added your device twice. You need to set it up via scenes or via association. The dimming duration is only valid if using scene commands. If you are using scene commands the device its self must be configured with the scene number and the brightness level. See the sample device driver for linear devices.

I had a type casting error on the level setting being set to the configuration.set command. Give it a try now.

I stand corrected. Must have been Linear/GoControl that I was thinking of. Thanks for setting the record straight.

1 Like

Nope…still nothing. And just to be clear, I only have the Cooper Aspire RFWC5 switch. I do not have the Cooper control unit. Here’s what the logging is saying:

0d1e10bf-1faf-42e4-9c67-ca40f80c7866 8:48:23 PM: error java.lang.NullPointerException: Cannot invoke method and() on null object @ line 171
0d1e10bf-1faf-42e4-9c67-ca40f80c7866 8:48:22 PM: debug Parsed BasicSet(value: 255) to []
0d1e10bf-1faf-42e4-9c67-ca40f80c7866 8:48:16 PM: error java.lang.NullPointerException: Cannot invoke method and() on null object @ line 171
0d1e10bf-1faf-42e4-9c67-ca40f80c7866 8:48:16 PM: error java.lang.NullPointerException: Cannot invoke method and() on null object @ line 171
0d1e10bf-1faf-42e4-9c67-ca40f80c7866 8:48:15 PM: debug Parsed BasicSet(value: 0) to []
0d1e10bf-1faf-42e4-9c67-ca40f80c7866 8:48:14 PM: debug Parsed BasicSet(value: 0) to []
0d1e10bf-1faf-42e4-9c67-ca40f80c7866 8:47:59 PM: error java.lang.NullPointerException: Cannot invoke method and() on null object @ line 171
0d1e10bf-1faf-42e4-9c67-ca40f80c7866 8:47:59 PM: debug Parsed BasicSet(value: 255) to []
0d1e10bf-1faf-42e4-9c67-ca40f80c7866 8:47:54 PM: error java.lang.NullPointerException: Cannot invoke method and() on null object @ line 171
0d1e10bf-1faf-42e4-9c67-ca40f80c7866 8:47:54 PM: error java.lang.NullPointerException: Cannot invoke method and() on null object @ line 171
0d1e10bf-1faf-42e4-9c67-ca40f80c7866 8:47:54 PM: debug Parsed BasicSet(value: 0) to []
0d1e10bf-1faf-42e4-9c67-ca40f80c7866 8:47:54 PM: debug Parsed BasicSet(value: 0) to []

Yes I had that same thing. It has to do with a global state being tested prior to it being created (I think). I added a statement in the initialize routine that seemed to fix it on my end. Try reinstalling the DH in your IDE again. It should initialize if you are running the latest. ( I guess I should put a version number in there)

I made a few more edits to the code this evening and posted it to get hub. I’ll update the link above.

I learned tonight that unit does not seem to send button held commands to anything that is activated via association, only scene activated devices as far as I can tell. That’s a bit of a let down as I was hoping to control my GE Fan control.

I fired up another controller tonight. At this point I only have one on/off switch associated to the switch. Install and setup went flawlessly.

Below is a simple webCoRe piston that demonstrates setting indicators on the RFWC.

The piston simply causes indicator 3 to follow indicator 1.

Still haven’t gotten it to work. Could you provide some clarification. I should be able to assign a z-wave device to the button and it should activate it, correct? Maybe I don’t have something right…does this look correct:

It looks like you are attempting to set up device via association so I will address it that way.

The entries in assoccap1 must be followed by a comma and level like this 03, 255.

Use 0 for off, 255 for on with switches, and 0 to 100 for dimmers.

If you have more than one device to activate with a button make a list: device1, level1, device2, level2, …

The dimdur value is only used for scene capable devices. The scene number need only be set if using scene capable devices. So both of those can be blank.

Any feedback on making the instructions in the DH more clear would be appreciated.

Definitely willing to help out with the instructions as soon as I understand it and get it working. I think I understand now, but it’s still not triggering any of the other z-wave devices. I have button one set to bring up the light on z-wave 03 to 100% and button five to bring up both z-wave 03 and 05 to 100% (both are Evolve dimmers):

Here are the two devices:

And the log entry:

That switch doesn’t appear to have association capabilities. ( I know some of the product description materials say it does, but the actual device as manufactured Has some versions that don’t. You can see from the list of commandsets supported in the raw description that it doesn’t have the association commandsets.) it does have the local scene commandsets.

See page 10 in the official spec for the list of commandset values:

Updated to correct: that’s what I get for answering late at night. I just got confused between the target and the recipient. My bad. :stuck_out_tongue_winking_eye: Carry on.

Hmmmm…I’ve associated the slave (11) with the master (05) dimmer using the Aeon Minimote. Or is that a different type of association that what you are speaking of?

I can do that when I’m not tired and when the better half will be gone for an extended amount of time. Something else I’ve found interesting is that the RFWC5 is only registering (showing up in logs) when I press button five. Buttons 1-4 never hit the logs. Should I remove the device from ST and readd it to the network?

First thing, check that you have the latest code for the RFWC controller. I should say version 1.4 in the comments section at the top of the code. If you do you should be able to hit the configure button to get things set up. If that does not work try a reinstall.

Second, Your entries look correct for using association. It should be turning the devices on. The above should work cure that. The devices that are controlled via association need only be able to respond to Basic commend set to work.

JD is correct you do have scene capable devices. They have the 2B and 2C command sets. You will be happier if you set them up via scenes as you will be able adjust the brightness via the RFWC with a button hold. You will need to use the DH for the dimmers I modified. I have modified the type line in the DH to recognize the Evolve dimmer.


You must enter the same scene numbers in the RFWC and the dimmers for this work. The dimmers can respond to more than one scene. Just set the parameters for one. Then hit the Set Scene button. The change the parameters and hit the button again. The tile the reports the scene will only report the last one set.

I sure appreciate you working to sort this out.

1 Like

Happy to help and thank you for your patience as well. The RFWC code I have is .14 (not 1.4…but I assume that is just a typo). I just updated the dimmer I am trying to control to your custom DH. I verified it works through the ST app (on, off, set a specific percentage, etc)…so that’s good news. However, the RFWC still has no effect on it.

I’m okay with switching to scenes. I thought associations would be best since they can operate while offline and I thought it would work since I have already associated the same type of switch with a slave switch using the minimote.

You’ll have to forgive me…I’m not very familiar with scenes. I had a Vera for years and just switched to ST about six months ago. Still learning…so I have some questions:

  1. For scene ID, can I just pick any arbitrary number between 0 and 255? And if so, is there an easy way to keep track of them short of doing it manually via a spreadsheet or something?

  2. Dimming duration is self-explanatory (I think…I hope)

  3. For the setting for “Button 1 Scene Capable Devices -example (A3, 2C, 25) - Tap to set”…what do I enter here? The z-wave device number? The example says “(A3, 2C, 25)” which looks like command codes…so I’m not sure if I enter those…or the device number. If I enter the command code…how does it know which dimmer to activate?

Again…I appreciate your help. I bought the RFWC when I had the Vera and the same week the Vera died and I moved to ST. I had become irritated by the Vera firmware update failures and their backend stability so I jumped on the ST bandwagon. ST has been awesome, but the RFWC5 has been nothing more than a pretty, but non-functioning, device on the wall until I found this…it will be so nice to hit one button to perform many settings at once.

BTW, I have not done the tweaker yet…just have to find some uninterrupted time to explore that.

ZWave scenes will also work offline.

  1. Yes any number works. Avoid 251 thru 255 those are used for buttons not yet configured by you (defaults). I have several controllers so I use 1-5, 11-15, and 21-25. Just to keep organized.

  2. Yes should bring all the lights up to specified level over that time frame.

  3. Z-wave device number. – I see that could be confusing they are both in hexadecimal, I will update the examples

Note that the light level is entered in the device handler for each device.

1 Like