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

  1. it will take a minute or so. you can go to the log screen in the IDE and
    see we what it is doing

  2. see posts at the top of the thread

  3. it is preset in the device. Can’t be changed as far as I know

  4. if the indicator is off it will send on commands when button is pushed.
    it will send off commands if the indicater is on. I say it this way
    because it is somtimes useful to change the state of an indicator light via
    a program like webcore.

@sainsworth, @JDRoberts,

What do you guys think about the Cooper controller against a bank of Zwave blinds? Specifically the Graber VirtualCord shades from ZebraBlinds?

Installed the blinds and the wife really wants a ‘hard button’ as she calls it in the box in the room the blinds are in. (so that rules out things like the Aeotec or the Remotec) This box is in an easy place to expand an existing single gang with a GE Jasco in it to dual, so that’s not an issue.

I’m still researching if the Graber blinds are scene capable, I believe they are due to the way the Somfy remotes had to pair with ST…

I’m specifically wondering about the device’s function of ‘dims and brightens a scene when holding a button’ and how that would translate to the blinds and given that what would be the optimal setup.

While I would like the device to operate with no active 'net connection, but I’m worried about creating a confusing use case for lay users.

Thoughts?

I think it will work fine. The cooper controller will work via scenes or association. So even if the the scene commands are not properly supported the it will work via association and the basic CC. I think once you set your high and low limits for the blind the controller can use the basic command class to send a value of 0 to 99 for range of positions in between. This works just like a dimmable light (except you have to set the limits). A button hold on the controller should move the shade up and down for custom adjustment. Like a light the first hold moves one way (dimmer) the second goes the other (brighter).

Once you configure the Cooper via the DH the cooper should directly control the shades without need of the hub.

Don’t have any shades to test this on, so please report back how it works.

Will do. Now to find a source for the white decorator variant… Wife doesn’t like the one with the curved feature on the faceplate… At least the LED are blue. :slight_smile:

If I understood correctly, can you use the hold function without setting the device via scene commands, rather just using association?

“So even if the the scene commands are not properly supported the it will work via association and the basic CC”…

Could you explain to me please what do all the variables on a scene capable device mean?

dimStartLevel
groupThreeEnable
groupTwoEnable
ledFlicker
ledIndicator
sceneLevel
sceneNum
switchInversion

sorry for being noob :slight_smile:

The hold function should work with any dimmer device connected directly via zwave (association or scene). It does not work for functions that have to go through the smartthings hub.

Most of these are from the linear/go control DH I started with. I’ll try to answer.

dimStartLevel - The level the light goes to when you actuate it directly.
groupThreeEnable - I believe these switches can actuate other switches via association with a double or triple push. I’ve never messed with it.
groupTwoEnable - see above
ledFlicker - I believe it enables or disables led flicker during communications with the device.
ledIndicator - set the indicator on for switch on or on for switch off, or always off.
sceneLevel - The brightness level for a programed scene. 0-99. 0 will disable a previously programed scene number.
sceneNum - The number of the scene to be programed.
switchInversion - flips the function of the paddle. down is on vs up is on.

Hope that helps.

But will the hold function work for devices connected via association that do not support the scene feature?

I be believe so but I’m not positive. I see the button held commands being
sent to the hub. The hub set up via association. So it is sending the
commands. Right now I have my dimmers set up via scene commands on the
Cooper. However I frequently control those same dimmers with a minimote via
association. Therefore I believe it will work.

Does anybody knows if there’s any place on the ST API that I could check all of my scene ID’s and its associations?

This data is stored in the devices themselves. Therefore you will need to get the information from the devices themselves. RFWC5 DH will tell you but only because it hangs on to what it programs into the device.

Zwave tweaker will let you investigate associations in any zwave device.

Scott, just to close the loop. The Graber shades both respond to direct association and scene. They seem to work better as a unit when specifying them as devices by association with levels.

Now to finish programming the scenes and improve WAF!

Scott,

I’m seeing a little weirdness playing with the indicator lights through WebCoRE. I’m reacting to a button press event, polling the indicator lights, stuffing them all in a set of integer variables and then resetting the lights based on the result of a predefined set of rules.

(Basically I have in my bank of blinds, I have top and bottom blinds, spouse wants scenes for all, top, bottom, pressing the All button to activate the scene should illuminate its button AND the button for the Top and Bottom, because, they’re set to 100% as well. Pressing Top when the indicator light is on, resulting in turning off the top bank, should also turn off the All light… etc.)

Short version, If I let the device sit a while, I seem to miss button press events.
When I press button 1, which results in having to set indicators for #2 and 3 in succession, only one of the lights gets tripped.

Are there any signaling delays built into the device / DTH I need to be aware of or could I be looking at a faulty device?

EDIT: I just cracked the code open in the DTH and saw this:

// because of delay in getting state.lastindval delays of at least 1 second should be used between calling this command.
def IndicatorSet(Inumber, OnorOff){

Soooo I guess that’s a yes. *goes back to add some wait states.

The device is very slow to respond. If you need to set several indicators
it is best to set them all with the indicatorallset command. Here is an
example I use.

You can use similar logic and trigger it with a button push on the cooper
device. In the above example I trigger off the devices themselves because
several of the lights are controlled elsewhere and I want it to act like a
3 way switch.

1 Like

So it IS a bitmask - gotcha… I was wondering why the indicator variable read like that.

You’re storing indicators as an integer, then just feeding that to IndicatorAllSet? It handles the binary conversion and - pop… Hmmm - I still need the case statement and ‘if’s’ for the logic, but maybe I just feed everything into my vars, do the math and write once a the end of the routine… Sound about right?

That’s it. I tried what you were doing and had lots of issues with indicators getting missed. This works much better but it can still get ahead of the cooper device if you trigger on button pushes and then polk 3 or 4 buttons quickly.

1 Like

This looks interesting, could you explain how it works?

I assume you are referencing:

It is a bit of WebCore code. I won’t explain webcore as there is much about it in its own discussion. I will recommend it though.

The routine I posted keeps the indicators on my Cooper controller in sync with the state of the devices it controls. In this case all the lights have other switches that can activate them. On its own the cooper controller has no way to know they came on and its indicators remain off. The user would have to push the button once to activate the scene and then again to deactivate it. Having the indicators properly set allows the user to deactivate the scene with a single push.

With WebCore this routine monitors those devices. If one has a state change then the routine pings all the devices to ensure ST knows their current state. It then tests the state of the devices associated to each button on the Cooper to see if they are on. If they are on it add the bit mask value to indicators variable. After testing all devices for each button (note the bogus test “if 1 is 0” for button 5 as I’m not using it) It then uses the IndicatorAllSet command to write the bit mask to the Cooper scene controller setting the proper state of the indicators.

The result is that if I turn on a light as come in from one end of the room the proper indicator will be lit up on the Scene Controller on the other end of the room so I can turn it off. Just like a 3 way switch.

1 Like