Halfway there at least. I’ll post an update after I work on it some more.
Looks like this is as far as we can go at this point in time due to python-openzwave not having full indicator support. There’s no way to send the “INDICATOR_SET” and “INDICATOR_GET” Zwave commands at this time.
Makes sense - is that library maintained by the OZW project? Thanks for looking into it.
As far as I can tell yes, it’s maintained by the OZW devs.
They seem to have been making progress, as there is a “can_set_indicator()” function in their API. So looks like it’s just a waiting game at this point.
Free bump.
And another one.
Hi @murphys_law and @wohlraj,
If you install 0.80 or greater, this should be implemented.
Here’s a feature request thread w/ more info: Event support for Scene Controllers
The gist is that the indicators should get their own entity now, and can be set using a new service (zwave.set_node_value), which takes the z-wave node-id, value-id for the indicator, and the value you want to set. Likewise, there is service for getting the values (zwave.get_node_value).
You can get the value_id and node_id of the indicator entity using a template and the state_attr function.
Here’s a pretty good example of using this to control the indicators of a scene controller: https://www.home-assistant.io/docs/z-wave/device-specific/#rfwdc-cooper-5-button-scene-control-keypad
This is pretty easy to play around with using the developer tools for services and states.
I did run into an issue w/ my setup where my Cooper RF9517 didn’t have the indicator entity created, so I ended up turning on debug logging (probably only necessary to enable for the zwave component), and dug through the log to find the value_id of the indicator. I hard coded the value_id into my config & it has been working since. You can also use the zwave.print_node service to have the node you’re interested in printed to the log & dig through that output–the below pyp one-liner will give you the value_id for the indicator of the last node you called that service on:
grep -A 1 "FOUND NODE" home-assistant.log | tail -1 | pyp "p.replace('<', '\'<') | p.replace('>', '>\'') | eval(p) | dict([(p['values'][value_id]['command_class'], value_id) for value_id in p['values'].keys()])[135]"
Cheers!
I found a way to set the attributes via a script recently and have been using that. I’ll take a look at this to see what it means, but it looks nice.
Tested and works with the Dome Siren. I was able to get the Value ID from the Z-Wave Config panel - it took some fumbling around to find where it’s stashed. (Click ENTITY INFORMATION below the entity drop-down to see the pop-up box with the Value ID.)