Event support for Scene Controllers

I’m using this 5-button scene controller:

And I’d like to get button press events to trigger automation, like this here:

A little confused, for some people it seems to just work, other applications need steps as follows:

It looks like the scene indicator lights can even support feedback:

Found a little more on how to create actionable events on a scene controller button-press (unfortunatly not all support this trick):

Cooper Wiring is the only company to really make sense of this and combine the shortcomings of the scene class with hardware to come up with a solution. Unlike Leviton, Cooper provided to us a way through the indicator class to allow HomeSeer to take a reading and find out which buttons have lights on them, which means we can tell which buttons on the controller are ON or OFF. So, when we receive the scene activation command, we use the scene ID to map to the button that was turned ON and we turn on the corresponding device in HomeSeer. When we receive an OFF command, we query the controller to find out which buttons are OFF, compare that to the state of the device in HomeSeer, and if there is a device in HomeSeer that is ON when its corresponding button on the controller is OFF, then we make the change and trigger events (if any) in HomeSeer.

I could be mistaken but, it appears what they have done is to make a scene with HA’s controller in it and any time they receive the Scene or Basic events from the scene controller they check the Indicator class command.

Unfortunately I have no idea how any of this really works, otherwise I’d love to help. Still trying to figure out what the zwcfg should look like to enable indicators.

Is there any way to put a bounty on this?

Have you tried writing automations based on the Zwave scene activated event?

Assuming you have the device paired and in scene mode (if applicable), you should see the events in the OZW log and go from there.

1 Like

That works great for my devices which implement central scenes. In this case the device is a scene controller so it uses a combination of the scene command class (on) and basic command class (off). The more that I look in to it, it seems like most of the automation here could be accomplished with support for the get/set indicator command class. I wanted to make z-wave services for these but, I still haven’t figured out exactly how the HA component is decoding the node information (capabilities) when it is received and how I would direct the service call back to the indicator command class object in OZW.

This approach would be good as well since it would allow me to sync up indicators on accessory node, as these tend to not get updated when the controller performs an automation against the switch node that it is associated with.

I was under the impression that OZW (and by extension Home Assistant) didn’t support central scenes? https://github.com/OpenZWave/open-zwave/pull/1125

Yep, they definitely work!

How can I add the scene patch above with my python openszwave I see scene I’d but not the value. OZW log says no value

Fork the OZW repo, merge the PR, recompile OZW and replace your current OZW with it. It would be more appropriate to seek assistance from OZW resources directly than on this forum.

But patch has not been made for python ozw. How do I have to this? Sorry for dumb question

It may not be required to use central scenes with your device, Have you tested your devices with current release?

Here’s my previous post where I first was able to have this working…

I only get scene Id and this won’t work with zwave. Event

Make sure it uses central scenes and that you have your zwcfg setup right for the device. Notice I had to make updates do the config in the thread I linked before.

I added 6 values in city command class scenes. How do I know what to out there. Seems the same for me for each devices .

Like I said.I see scene id=1 service event notification but has won’t recognize it

I also have the keyfob XML file with all config parameters but my device still shows unknown in has and ozwcp

“receivedDups”: 0,
“averageResponseRTT”: 0,
“is_failed”: false,
“averageRequestRTT”: 0,
“node_name”: “FIBARO System Unknown: type=1001, id=1000”,
“is_info_received”: true,
“manufacturer_name”: “FIBARO System”,
“receivedTS”: "2018-01-04 00:53:01:780 ",
“lastResponseRTT”: 0,
“is_ready”: false,
“node_id”: 35,
“sentTS”: "2018-01-04 01:02:38:540 ",
“query_stage”: “CacheLoad”,
“battery_level”: 35,
“receivedUnsolicited”: 0,
“max_baud_rate”: 40000,
“sentCnt”: 1,
“wake_up_interval”: 0,
“receivedCnt”: 0,
“capabilities”: [
“friendly_name”: “FIBARO System Unknown: type=1001, id=1000”,
“old_entity_id”: “zwave.fibaro_system_unknown_type1001_id1000_35”,
“new_entity_id”: “zwave.fibaro_system_unknown_type1001_id1000”,
“product_name”: “Unknown: type=1001, id=1000”,
“lastRequestRTT”: 0,
“sentFailed”: 1,
“is_zwave_plus”: true,
“retries”: 0,
“is_awake”: false

fastest way to get this working may be to add the values to the command class description of the node in you active zwcfg. Not familiar with your device but something like this is an example of what worked for me:

Once you get that working in the zwcfg you can add the device to you OZW config device database and the same configuration will be applied on discovery of new nodes.

The device is already included.if I exclude it this section normally gets deleted. So backup and restore a after remove and re include?

Yeah! Got it running. Amazing… Thsnjs for all the help. Best community ever :wink:

@Devanl I am trying to figure out if you ever got that Cooper Aspire 5-button scene controller to work…I’m not clear from your above comments. I have been searching for a LONG TIME for some in-wall multi-button switch I can use to trigger automations in HA, and if you’re telling me this one works I would be incredibly happy :smiley:

1 Like

I do not have it working, at a minimum I think we would need to add support for the indicator get/set command class in HA.

I made this feature request that could enable this as well but, also it works for other devices.

Couldn’t hurt to upvote either :wink: