I edited the post 3 times, lol. I got the topics to look the same, but changing the value either through node red or directly though MQTT explorer is not affecting the device. I am seeing the value change in MQTT explorer.
Heres my mqtt explorer now. Topic names, just values.
Is there actually a way to change LED notifications in conjunction with automations currently? Zwave js doesn’t currently support parameter changes thru service calls, so wanted to see if anybody had figured out a way around this to still use the LEDs.
Now that ZwaveJS and Home Assistant (2021.3.0) support the zwave_js.set_config_parameter service (which is awesome!) I’m seeing that my Inovelli Red switch LED parameters are split into several:
One for color,
One for brightness,
One for effect,
etc.
With the prior OpenZwave I could set everything at once such as value: 33556983 meaning one zwave call and changes were instant. Does the zwaveJs implementation mean I have to make several calls to achieve the same?
Just another item to add here. I think that even setting the color only of the LED isn’t correct in HA/zwavejs. The color defines and enumeration of names that correspond to values. For some devices these named values are the only valid ones, whereas for the color case with the LED these are names are just shortcuts for some popular values. There is a field in the device definition for zwavejs that handles this called allowmanualentry. If set true any numeric value in range should be allowed. It looks like the current version (HA2021.3.3) of the python wrapper doesn’t honor this setting and so throws an error if you try to set a color value that isn’t equal to one of the named values. I filed an issue (zwave_js doesn't appear to be honoring the "allowManualEntry" setting for enumerated parameter values · Issue #47742 · home-assistant/core · GitHub) for this. So if you get that error message when trying to set just the color that would seem to be the cause.
The newest version of node-zwave-js now has the updated configs for the LED notifications. I created a script to set the various options, and a template device that should handle calculating duration.
I have tested and confirm you can set a property with Zwave JS.
You need to do one property at a time, my script below is basic and turns the LED of a dimmer switch to green and makes it flash.
alias: TEST Change LED
sequence:
- service: zwave_js.set_config_parameter
data:
value: 3
parameter: ‘16’
bitmask: 2130706432
target:
entity_id:
- light.globe
- service: zwave_js.set_config_parameter
data:
parameter: ‘16’
value: 0
bitmask: 65280
target:
entity_id: light.globe
- service: zwave_js.set_config_parameter
data:
parameter: ‘16’
value: 255
bitmask: 16711680
target:
entity_id: light.globe
- service: zwave_js.set_config_parameter
data:
parameter: ‘16’
value: 10
bitmask: 65280
target:
entity_id: light.globe
mode: single
This is straight ZwaveJS and not using MQTT or nodered.
Home assistant added another way to set partial parameters which is more efficient. I just switched to zwavejs and it took me awhile to find a solution so sharing it here in case anyone else stumbles on this thread.
I think you can enter either the value or the label ( ex 0 or Red). In my case, I used the labels so it’s easier to follow.
The configuration also lists 0xff, 0xff00, etc as the mask value which I used initially but then it set to the integer value (255, 65280, etc) after I saved the automaton.
I also like how I can list multiple target entity for the same notifications.