Inovelli Z-Wave Red Series Notification LED

Up to day version of the scripts can be found below:


Update #13:

  1. This is the first release only supporting Z-wave JS!
  2. Added support to send the same notification to multiple Inovelli switches and dimmers. (Thanks to Danny Schuh)'s contribution to the blueprint.)

Update #12:

  1. Added support for White LED color.
  2. Last release to support the deprecated OpenZWave and ZWave integrations.

Update #11: Merged Github user Dan0maN’s (Danny Schuh) contribution: Added support for multiple entities to be selected and passed to the blueprint.

Update #10: Added Brightness “level” parameter to fields + created Blueprint version of this script!

Update #9: Automatic Z-Wave Integration detection! Reliable automatic model name detection.

Update #8: Thanks to @koconut for the correct “Off code”.

Update #7: Thanks for @firstof9 I have implimented ZWave JS’s new zwave_js.bulk_set_partial_config_parameters command + fields for friendly Developer Tools > Services use.

Update #6: zwave_integration variable to make it easy to use any of the 3 Z-Wave Integrations: (zwave, ozw, or zwave_js).

Update #5: Z-Wave JS support added for Home Assistant 2021.03.0 beta and later.

Update #4: New script to set default LED color & brightness

Update #3: Completely refactored code for 0.115

Update #2: I now have a OZW version of the inovelli_led script.

Update #1: thanks to @flyingsubs’s observation I modified the code examples on my site to work for dimmers as well as switches.

@flyingsubs also discovered that renaming your zwave entity to a shorter name may be necessary.

Not only can the Inovelli LZW31-SN Red Series Dimmer (and LZW30-SN Switch) trigger scenes with up to 5 taps (up and down), it has a really slick Status LED strip built in. It is possible to both change the color and animate it!

What surprised me was how complex the math was required for the task. Luckily the manufacturer provided a spreadsheet with the calculations. So I converted the spreadsheet math to a Home Assistant script template math. The result is a script with simple parameters named inovelli_led. Here is an example.

- service: script.inovelli_led
  data:
    entity_id: zwave.dimmer_family_room
    color: purple
    duration: 10 seconds
    effect: chase
    level: 10

Essentially my script passes the correct information to the zwave.set_config_parameter service, including a tricky math formula to set the color, effect, duration, and brightness. If you are interested I did a brief write up on my blog with commented automations and scripts.

17 Likes

I can’t seem to get it to work, first I had an issue with Node Id but then I hard coded it and it still didn’t work. Did you just secure pair the switch to Home Assistant? Are there any other things that you set up?

So I got it to work by changing the parameter from 16 to 8 and hard coding the entity ID. Why are our parameters different when I have a LZW30-SN. I have the ON/OFF red switch. Do you have the dimmer version?

Also great work on the script! I just bought one of these switches for the notification light!!

1 Like

Nice work! I’ll likely give the script a shot this weekend. It looks much easier than specifying everything manually. Thanks! Now if only we could get feedback into Home Assistant about what the z-wave config parameters are set at…

1 Like

You can see Z wave parameters in the Zwave setting for the device. It’s under Node Config Options.

Yes, but those settings cannot be using in any sort of way in Home Assistant(automations)…which is the issue.

Right right, I think you’d have to build scripts like this one as a work around.

Yes, I have the LZW31-SN dimmer. I’m glad that you got it working.

Thank you! I often make my scripts a bit more complex so I don’t have to think so hard when I am trying to make use of it later. I even added a couple of alternate names for animations (eg. “Pulse” and “Breath”) to make it less likely that I will type in an invalid name. :slight_smile:

1 Like

Yes, I’m fairly close! Ok so the parameter makes sense because you have the dimmer switch.

The part of your script that I can’t get working is the entity id. I keep getting an error for the line of code starts with node_id. Is this the latest version of the code? Everything else works, I just don’t want to have to hard code the node is field.

So awesome you put this together, since I just got the switch! I love the extra code, makes it more flexible!

1 Like

The nice thing about scripts are, you can pass variables to them so you can reuse the same code for multiple purpose. Make sure you pass the zwave. entity instead of your switch (or light) entity. In my example notice that I pass zwave.dimmer_family_room. I renamed that on the integrations page so it would be easier to identify should I ever get more.

service: script.inovelli_led
data:
  entity_id: zwave.dimmer_family_room
  color: purple
  duration: 10 seconds
  effect: chase
  level: 10

Ok! So I figured something out that might be helpful. There seems to be some limitation on entity_id character limit. Once I renamed the entity_id to something shorter I got this to work! Thank you for the hard work. Now I can have fun with some notifications!

1 Like

Thanks for letting me know the switch uses parameter: 8 instead of 16.

With that knowledge I believe I have modified script.innovelli_led to make it work with both the dimmer and the switch. Change your parameter: 8 line to the following. It should work for your switch, but allow you to use the unmodified script with a dimmer in the future.

parameter: >
  {# Set a default value so this parameter may be omitted. #}
  {% set dimmer = dimmer|default('false') %}
  {{ "16" if dimmer == "true" else "8" }}

Since the above code defaults the dimmer to “false”, you don’t have to modify anything else. But when you are ready to add a dimmer add dimmer: "true" like the following.

service: script.inovelli_led
data:
  entity_id: zwave.dimmer_family_room
  color: purple
  dimmer: "true"
  duration: 10 seconds
  effect: chase
  level: 10

What a great idea! That’s awesome! I just set this up to work with my alarm system

1 Like

Just chiming in to say thank you! I (a beginner) was able to get your example working on my system with little effort. I appreciate the time you took sharing everything. Now the fun part: I have to think of ways to utilize this new tool

1 Like

I’m glad you were able to make use of it! Great job!

Thank you @BrianHanifin!

You could even skip the dimmer parameter and infer the device type from the product_name attribute. I did this:

parameter: "{{ '16' if 'LZW31' in state_attr(entity_id, 'product_name') else '8' }}"
1 Like

This is awesome, set it up tonight, they are green when my alarm is off and red when my alarm is on, will play to add other things…

I had some weird issues, I was triggering them on alarm_disarmed and “alarm_armed” events, and I had to move the scripts above other calls like locking locks, etc… Or maybe it just doesn’t work sometimes and it’s random? Not sure yet…

Also, I could just test this and will tomorrow, but can you run script with multiple entities or do you need to call it for each zwave entity?

Meaning…

data:
entity_id: zwave.hallway_light

Or could you make it work with…

entity_id:
- zwave.hallway_light
- zwave.hallway_bathroom_light
- zwave.master_bedroom_light

Right now I copy/pasted the call for each entity like the example…

David

1 Like

I also noticed if you use the switch, it goes back to the default Blue, can you turn that off?

Brand new to HA but have 30some Inovelli switches in the house. This is a known firmware bug with the switches and there’s actually a beta firmware release on their site right now for the red series switch and dimmer that should address this.

Over on Hubitat I went away from using the Inovelli drivers and used a third party one which would allow me to setup automations to modify the default LED colour. So in my case when alarm is armed, default LED colour changes to red, when disarmed default LED colour changes to blue. This would allow it to stay through switch presses or zwave commands but you lose the functionality of blinking/flashing or any of the other notification “animations” there are. Solid colour only. Not sure if anybody has gone down that road yet on HA.

1 Like

I just saw that Beta firmware, I’m thinking about loading it up now and testing on 1 switch

@BrianHanifin, thanks for gathering the relevant Inovelli posts and putting together this script! I have both switches and dimmers and noticed that the effects didn’t work quite right on the switches. In particular the “pulse” effect would just stay solid (I didn’t test the blink effects). It’s possible this is something in my revision of firmware, or with the Inovelli XML files I used to set up my switches and dimmers in Home Assistant. Nobody else seems to be complaining about the switch ‘pulse’ effect not working. Anyway, I have a fix for it.

I also noticed that using the “solid” effect doesn’t make use of the gradient in the LED strip on the dimmer if the lights are <100% power and, if you use the lights the effect is lost and they go back to their default blue. I really wanted to set my LEDs to red and make them dimmer at night, then change them back to some other color and brightness in the day.

I’m happy to share the code, and I can submit a merge request against your git repository if you’re interested.

Update: I posted my script on github in case anyone is interested: https://github.com/kschlichter/Home-Assistant-Inovelli-Red-Dimmer-Switch

1 Like