Inovelli Z-Wave Red Series Notification LED

All the Inovelli XML configs live here:

This is such a n00b question that I’m almost embarrassed to task it, but is any of this possible without connecting the switch through a USB stick? I currently have mine connected through my SmartThings hub and I can’t add the Z-Wave or OZW integrations without providing a physical address.

Dont feel embarrassed to ask any question! We all started out knowing nothing and that’s a valid question. In your situation, you would have to unpair your current device from your SmartThings, then you’ll be able to add the device to the stick. It can only be paired with one hub at a time.

Hope that helps!

I think that’s where my confusion is coming from. Isn’t my switch connected to the SmartThings hub via Z-Wave? Is it that HA can’t interact with Z-Wave devices connected to a different hub?

It’s a little more nuanced than that. HA interacts with SmartThings and can control your smartthings connected z-wave devices, but HA at that point doesn’t know that they are z-wave since they are connected through a totally different integration. Additionally I think the only way to control z-wave parameters with automation in SmartThings is via WebCore(that is how you’d change the LED settings).

zwave_js.set_config_parameter was added to Home Assistant version 2021.03 (which is in beta as of this writing). So the updated script replaces OpenZwave service call with the zwave_js version.

3 Likes

…And that’s the last piece I’ve been waiting for! Time to switch to zwave js! Thanks for doing this script, @BrianHanifin. My family get’s a TON of usage out of it.

1 Like

Thanks Kevin, that’s nice to hear! Just make sure you are running the latest Home Assistant 2021.03.0 beta version (b2 at the moment).

You might also try keep your Z-Wave JS server of choice as up to date as possible as well. I was having Z-Wave devices disconnecting from the network, and updating this morning to Z-Wave JS Server version 1.1 appears to have stabilized things. (Talk about bleeding edge.) :wink:

Holy Bananas YESSSSS! Such an easy change for NR nodes as well!!!

Can I just say you guys are amazing? Man, I may not always know what you’re saying and/or doing, but I love seeing how passionate you guys are in making things work. It’s truly inspiring.

Thanks @BrianHanifin for quarterbacking this. Excellent work.

4 Likes

Good to know. For those running the docker container, that’s tag 2.0.0 (or “latest”).

2 Likes

Today’s changes:

  1. Added zwave_integration at top of “variables:” section to allow users to define which integration is installed (“zwave”, “ozw”, “zwave_js”). I just don’t see a simple way to auto-detect this.
  2. Added a comment describing the “model” variable.
  3. Replaced personal “script.debug” service call with universal “persistent_notification.create”. Unremarking these lines could help you troubleshoot why something isn’t working as expeceted.
  4. Updated broken spreadsheet link with public copy stored in my Google Docs account. Thanks for the heads up @kschlichter!
2 Likes

Hi again!

I’m trying to get this to work with Zwave JS. I’m not sure it’s possible yet. I think your script will work but I can’t get it to work manually with the configuration piece. Has anyone tried this with Zwave JS? I know they just allowed the ability to use the configuration parameter in the last release. Also btw I did get the scenes working, thanks again for helping me with your code!

I haven’t tried this script specifically, but if you have any of the Red on/off switches (LZW30-SN) it could be that Parameter 8 on the zwaveJS side is broken up into multiple parameters. I had a similar script I had to break out into four service calls to get the notification light to work. Check this out for more info: https://github.com/zwave-js/node-zwave-js/pull/1411

1 Like

Thank you for forwarding the information. Not sure if it’s possible yet based on the information you provided or I might need to play around with it more since Parameter 8 is broken up.

You can’t set the “raw value” just yet, so you’ll have to break them up.

Do you happen to have an example of that? I haven’t been successful in breaking it up. Sounds like id need to create a script with the 4 parameters.

I can confirm that the script doesn’t work with my LZW30-SN because of the parameter 8 thing. Thanks for pointing us to that GitHub PR @DaveCo1701. I’ll keep an eye on developments there.

Here’s the script I created for this. I’m sure there is a more elegant way to do this, but it works.

switch_light_alert:
  alias: VISUAL ALERT - Switch LED
  sequence:
  - target:
      entity_id:
      - switch.front_porch_light_switch
      - switch.living_room_switch_outlet
      - switch.master_bed_switch_outlet_switch
    data:
      parameter: '8'
      bitmask: 2130706432
      value: 0
    service: zwave_js.set_config_parameter
  - target:
      entity_id:
      - switch.front_porch_light_switch
      - switch.living_room_switch_outlet
      - switch.master_bed_switch_outlet_switch
    data_template:
      parameter: 8
      bitmask: 255
      value: "{% if is_state(\"group.exterior_doors\", \"on\") %}\n  0\n{% elif is_state(\"\
        alarm_control_panel.simplisafe_alarm\", \"disarmed\") and now().hour >= 19\
        \ %}\n  Yellow\n{% elif is_state(\"alarm_control_panel.simplisafe_alarm\"\
        , \"disarmed\") and now().hour <= 6 %}\n  Yellow\n{% else %}\n  0\n{% endif\
        \ %}\n"
    service: zwave_js.set_config_parameter
  - target:
      entity_id:
      - switch.front_porch_light_switch
      - switch.living_room_switch_outlet
      - switch.master_bed_switch_outlet_switch
    data_template:
      parameter: 8
      bitmask: 65280
      value: "{% if is_state(\"group.exterior_doors\", \"on\") %}\n  10\n{% elif is_state(\"\
        alarm_control_panel.simplisafe_alarm\", \"disarmed\") and now().hour >= 19\
        \ %}\n  10\n{% elif is_state(\"alarm_control_panel.simplisafe_alarm\", \"\
        disarmed\") and now().hour <= 6 %}\n  10\n{% else %}\n  0\n{% endif %}\n"
    service: zwave_js.set_config_parameter
  - target:
      entity_id:
      - switch.front_porch_light_switch
      - switch.living_room_switch_outlet
      - switch.master_bed_switch_outlet_switch
    data_template:
      parameter: 8
      bitmask: 16711680
      value: "{% if is_state(\"group.exterior_doors\", \"on\") %}\n  0\n{% elif is_state(\"\
        alarm_control_panel.simplisafe_alarm\", \"disarmed\") and now().hour >= 19\
        \ %}\n  0\n{% elif is_state(\"alarm_control_panel.simplisafe_alarm\", \"disarmed\"\
        ) and now().hour <= 6 %}\n  0\n{% else %}\n  0\n{% endif %}\n"
    service: zwave_js.set_config_parameter
  - target:
      entity_id:
      - switch.front_porch_light_switch
      - switch.living_room_switch_outlet
      - switch.master_bed_switch_outlet_switch
    data_template:
      parameter: 8
      bitmask: 2130706432
      value: "{% if is_state(\"group.exterior_doors\", \"on\") %}\n  3\n{% elif is_state(\"\
        alarm_control_panel.simplisafe_alarm\", \"disarmed\") and now().hour >= 19\
        \ %}\n  3\n{% elif is_state(\"alarm_control_panel.simplisafe_alarm\", \"disarmed\"\
        ) and now().hour <= 6 %}\n  3\n{% else %}\n  0\n{% endif %}\n"
    service: zwave_js.set_config_parameter
  mode: single
4 Likes

Thank you! I will see if I can copy this until Zwave JS is updated and then can leverage BrianHanifins code. Much appreciated