[RELEASE] Cooper Eaton Aspire RFWC5 Keypad driver for Hubitat

I am still having my lights sometimes go on/off after pressing the buttons.

Not sure if relavent, but when I run configure, I get the following debug output:

dev:742020-07-15 05:26:38.826 am debugUNPARSED CMD: SceneControllerConfReport(dimmingDuration:0, groupId:5, sceneId:255)

dev:742020-07-15 05:26:35.347 am debugUNPARSED CMD: AssociationReport(groupingIdentifier: 5, maxNodesSupported: 232, reportsToFollow: 0, nodeId: [1])

dev:742020-07-15 05:26:14.265 am debugUNPARSED CMD: SceneControllerConfReport(dimmingDuration:0, groupId:4, sceneId:254)

dev:742020-07-15 05:26:10.708 am debugUNPARSED CMD: AssociationReport(groupingIdentifier: 4, maxNodesSupported: 232, reportsToFollow: 0, nodeId: [1])

dev:742020-07-15 05:25:49.572 am debugUNPARSED CMD: SceneControllerConfReport(dimmingDuration:0, groupId:3, sceneId:253)

dev:742020-07-15 05:25:46.044 am debugUNPARSED CMD: AssociationReport(groupingIdentifier: 3, maxNodesSupported: 232, reportsToFollow: 0, nodeId: [1])

dev:742020-07-15 05:25:24.947 am debugUNPARSED CMD: SceneControllerConfReport(dimmingDuration:0, groupId:2, sceneId:252)

dev:742020-07-15 05:25:21.394 am debugUNPARSED CMD: AssociationReport(groupingIdentifier: 2, maxNodesSupported: 232, reportsToFollow: 0, nodeId: [1])

dev:742020-07-15 05:25:00.316 am debugUNPARSED CMD: SceneControllerConfReport(dimmingDuration:0, groupId:1, sceneId:251)

dev:742020-07-15 05:24:56.811 am debugUNPARSED CMD: AssociationReport(groupingIdentifier: 1, maxNodesSupported: 232, reportsToFollow: 0, nodeId: [1])

Those messages are fine.

Let me recap, and make sure I'm understanding your setup:

  • You're using my driver, set up with buttons as the child devices
  • You're using Rule Machine to respond to those button presses?
  • When a rule fires, it toggles a smart switch?

thanks!

Correct, well currently it is set up as virtual switches because I wanted to give that a try to see if it did that then as well and it continues to toggle multiple times for a single press. Buttons are the desired behavior though.

not sure if this helps, but I put debug messages in both

def zwaveEvent(hubitat.zwave.commands.basicv1.BasicSet cmd) {
// Fired twice when a button is physically pushed off

and:

def zwaveEvent(hubitat.zwave.commands.sceneactivationv1.SceneActivationSet cmd) {
// Fired twice when a button is physically pushed on

the off event fires multiple times as demonstrated below:

dev:742020-07-14 08:39:04.360 pm debugoff

dev:742020-07-14 08:39:04.289 pm debugoff

dev:742020-07-14 08:39:03.919 pm debugoff

dev:742020-07-14 08:39:03.839 pm debugoff

dev:742020-07-14 08:39:03.780 pm debugoff

dev:742020-07-14 08:39:03.411 pm debugoff

dev:742020-07-14 08:39:03.376 pm debugoff

dev:742020-07-14 08:39:03.346 pm debugoff

dev:742020-07-14 08:39:03.181 pm debugoff

That's very odd, and unfortunately difficult to debug remotely. It really looks like the device is sending multiple reports back. Unfortunately, I've gotten other reports from other folks about devices with slightly different firmware and sending different combinations of reports back.

You may have to debug this yourself, but if you're comfortable doing it, look at line 88, the "Simplification figured out by tchandle". If you put more log statements throughout the parse() method, you might be able to figure out what path it's taking in there for each of the messages.

I got a little more information, looks like it is actually sensing multiple pushes... If this was not happening on two different keypads, I would think it may be a hardware issue. Also, the intermittent nature makes debugging it hard to do. All of this was from a single key press.

dev:692020-07-19 07:49:46.298 pm infoDave's Lamp was turned on

dev:692020-07-19 07:49:46.290 pm infoDave's Lamp was turned on

dev:3612020-07-19 07:49:45.944 pm infoDave's Switch (Virtual Button) button 1 was pushed

dev:672020-07-19 07:49:45.930 pm debugpush

dev:672020-07-19 07:49:45.917 pm debugCMD: SceneActivationSet(dimmingDuration:0, sceneId:251)

dev:672020-07-19 07:49:45.913 pm debugDESCRIPTION: zw device: 03, command: 2B01, payload: FB 00 , isMulticast: false

dev:692020-07-19 07:49:43.744 pm infoDave's Lamp was turned off

dev:3612020-07-19 07:49:43.339 pm infoDave's Switch (Virtual Button) button 1 was pushed

dev:672020-07-19 07:49:43.307 pm debugpush

dev:672020-07-19 07:49:43.271 pm debugCMD: SceneActivationSet(dimmingDuration:0, sceneId:251)

dev:672020-07-19 07:49:43.267 pm debugDESCRIPTION: zw device: 03, command: 2B01, payload: FB 00 , isMulticast: false

dev:692020-07-19 07:49:42.212 pm infoDave's Lamp was turned on

dev:692020-07-19 07:49:42.196 pm infoDave's Lamp was turned on

dev:3612020-07-19 07:49:41.799 pm infoDave's Switch (Virtual Button) button 1 was pushed

dev:672020-07-19 07:49:41.777 pm debugpush

dev:672020-07-19 07:49:41.757 pm debugCMD: SceneActivationSet(dimmingDuration:0, sceneId:251)

dev:672020-07-19 07:49:41.752 pm debugDESCRIPTION: zw device: 03, command: 2B01, payload: FB 00 , isMulticast: false

IMPORTANT UPDATE: These RFWC5 drivers can now be installed from Hubitat Package Manager. This is the best way to make sure you keep up-to-date with bug fixes and new features.

Can you try something for me?

Disable all the automation that is firing off of the events. (So disable whatever is turning "Dave's Lamp" on and off.) This is so we can test the keypad in isolation.

Then retry your test and send me the new logs.

Looking forward to trying this device handler. I've got one of these devices on order.

dev:3612020-07-26 04:24:19.214 pm infoDave's Switch (Virtual Button) button 1 was pushed

dev:672020-07-26 04:24:19.181 pm debugpush

dev:672020-07-26 04:24:19.147 pm debugCMD: SceneActivationSet(dimmingDuration:0, sceneId:251)

dev:672020-07-26 04:24:19.144 pm debugDESCRIPTION: zw device: 03, command: 2B01, payload: FB 00 , isMulticast: false

dev:3612020-07-26 04:24:18.191 pm infoDave's Switch (Virtual Button) button 1 was pushed

dev:672020-07-26 04:24:18.139 pm debugpush

dev:672020-07-26 04:24:18.106 pm debugCMD: SceneActivationSet(dimmingDuration:0, sceneId:251)

dev:672020-07-26 04:24:18.103 pm debugDESCRIPTION: zw device: 03, command: 2B01, payload: FB 00 , isMulticast: false

Sorry for the delay, it does look like even with the rule paused, it still registers multiple pusches from a single physical press. I notice when I do it, too, it seems like the indicator light takes longer to go off.

Has anyone updated to 2.2.3.132+ on a C-7 hub and still have the keypads working? I'm using two separate keypads with @jwetzel1492's driver configured as virtual switches. I can turn the virtual switches ON by pressing the keypad but pressing them again to turn OFF does nothing to the virtual switches. I downgraded to 2.2.3.119 and it works great. Upgrading breaks it.

Here's the logs after physically pressing a button to turn it off on 2.2.3.119
1598943312963_image

Here's the same on 2.2.3.135
image

The IndicatorReport is not showing up in .135. I sent a message to hubitat support but they asked I check with the developer and ask them to confirm and have them let support know directly if it's suspected to be a platform, so here I am :slight_smile: @jwetzel1492 does it work for you on .135?

1 Like

It does work for me on .135 and .142, but I'm on a C4. I don't have a C7 hub. Have you tried .142 yet?

I have been having some problems, also. I'll post some additional details, but off the top of my head, if I try and configure child devices as virtual buttons, only on child device appears in the devices list and an error occurs in the log. There has also been inconsistent behaviour when configuring as virtual switches. As I say, I'll post more later, but any immediate thoughts? I'm running a C-5 with v2.2.3.118. The driver was installed using the Hubitat Package Manager and the device is a RFWC5D.

Thanks in advance for any assistance you can offer!

Oh, didn't see .142 yesterday. Just tried it and it works now! Thank you and thank you for making this driver! I made a smart app that uses the keypad with virtual switches to act as a Bathroom Fan timer (so button 1 is 5 min, next is 15, etc) and it works well!

1 Like

@ddalder, can you post the error?

I am having a similar problem to @tinypocket and I'm thinking I might have a faulty keypad. I have installed the @jwetzel1492 drivers and and configured it as virtual switches. I am using a RFWC5AW (the curvy one). I can view all the switches as devices and change the status with no problem, however, I can only turn the top switch off at the keypad. If I hit the "all off" button it turns all the LED's off but the switches still indicate on as a device. I cannot turn any of them back on at the keypad. The LED will turn on for a second but will not stay on and when I check the device status it shows the switch as "off" still. If I switch any of them on from the device list the switch LED will indicate on and remain on. I was running 2.2.3.132 and I just updated it to 2.2.3.148 on the C-7 but this didn't correct it. It seems the keypad does not want to change states from off to on for any of the switches and it will only turn from on to off for the top switch (switch 1). Any ideas?

I tried excluding it and re-discovering it and then went through the set up procedure.
When I hit configure, I went to the log page and it only got one line and an error. Any idea what I should do?
There error is "java.lang.NullPointerException: Cannot execute null+1 on line 512 (configure)"

What do you have in your "Scene Starting Index" preference?

251

I think I found something. Even though the 251 was pre-loaded, I never hit the "save preferences" button. I hit save preferences and then tried configure again. It looks like it's going through the configuration correctly now.

2 Likes

It all works correctly now except for the "all off" button. It turns the LED's off but the switches stay on. Not a big deal as all the switches work which is what I needed. Thanks for creating the code to run this.