Red Switch LED Notifications script - Zwave JS

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.

Heres my webui settings


Did you remember to add the “/set” to the end of the topic?

zwave/nodeID_3/configuration/endpoint_0/Dimming_Speed is for the current value.

To change the value, you should be posting to zwave/nodeID_3/configuration/endpoint_0/Dimming_Speed/set

Doing that adds this, doesnt affect device. Tried capital and lowercase s.

image

Reinstalled the add-on, tried /set again and it worked. Weird…

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.

I haven’t found an alternative but I see it is on the roadmap for zwave JS. I don’t know it’s priority but im waiting patiently.

4 posts were split to a new topic: LED Strip in zwavejs2mqtt

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?

2 Likes

Last I heard, there was going to be a PR to combine them. But for now, yes. Dimmer switches are fine (one parameter), it’s just the on/off switch.

1 Like

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.

3 Likes

The latest update for Home Assistant Add-on: Z-Wave JS updates it to 6.6.3.

Changelog
0.1.13
Bump Z-Wave JS Server to 1.2.1
Pin Z-Wave JS to version 6.6.3
Unpin Z-Wave JS dependencies

I haven’t created a blueprint yet and I don’t feel ready to start with this one. Does anyone feel like creating a blueprint for this?

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.

Sweet dude! Can we mark this as solved? Nice work :slight_smile:

1 Like

I marked it as solved! Thank you so much for your help and products!

1 Like

Awesome! That’s great news – we couldn’t build these products without you – team effort!

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.

  - service: zwave_js.bulk_set_partial_config_parameters
target:
  entity_id:
  - light.inovelli_lzw31_sn_dimmer_red_series_level
  - light.inovelli_lzw31_sn_dimmer_red_series_level_2
  - light.inovelli_lzw31_sn_dimmer_red_series_level_3
  - light.inovelli_lzw31_sn_dimmer_red_series_level_4
  - light.inovelli_lzw31_sn_dimmer_red_series_level_5
  - light.dining_room
data:
  parameter: '16'
  value:
    '255': Red
    '65280': 100%
    '16711680': 255
    '2130706432': Slow Blink

You can find the list of partial values for parameter 16 on the following page: https://devices.zwave-js.io/

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.

7 Likes

Just followed your solution here. This worked great and is way easier than it used to be. Thanks!

1 Like

Just found this and wanted to say that it is exactly what I was looking for! Thank you!

1 Like

Using this simple service call in Home Assistant worked great. Thank you!