Home Assistant - 2nd Gen Switch RGB working!

Hey @mattp - glad you found it. You can also double-tap the config button (granted this is a temporary clear as the notification will trigger again, but just wanted to throw it out there).

Sure. I just published a new version that fixes a duration issue (I set the max too high, 255 should turn it on indefinitely until changed) as well as displaying a node status w/ the current color that it sent downstream for reference (the number representation of it at least).

Basic scene setting (trigger the node and set it directly to one switch)
[{“id”:“f651da8c.4816f8”,“type”:“tab”,“label”:“Flow 1”,“disabled”:false,“info”:""},{“id”:“e23e089f.6aecb8”,“type”:“inject”,“z”:“f651da8c.4816f8”,“name”:"",“topic”:"",“payload”:"",“payloadType”:“date”,“repeat”:"",“crontab”:"",“once”:false,“onceDelay”:0.1,“x”:680,“y”:240,“wires”:[[“b38bd8b8.5a2af8”]]},{“id”:“b38bd8b8.5a2af8”,“type”:“inovelli-status-manager”,“z”:“f651da8c.4816f8”,“name”:"",“nodeid”:“1”,“color”:“107”,“level”:10,“duration”:30,“display”:“2”,“x”:910,“y”:240,“wires”:[[“531f74fb.6c3d3c”]]},{“id”:“531f74fb.6c3d3c”,“type”:“api-call-service”,“z”:“f651da8c.4816f8”,“name”:"",“server”:"",“service_domain”:“zwave”,“service”:“set_config_parameter”,“data”:"",“mergecontext”:"",“x”:1200,“y”:240,“wires”:[[]]}]

Setting multiple switches w/ the same scene (e.g. if your garage door is open and you want the status on all your inovelli switches to be red)
[{“id”:“f651da8c.4816f8”,“type”:“tab”,“label”:“Flow 1”,“disabled”:false,“info”:""},{“id”:“e23e089f.6aecb8”,“type”:“inject”,“z”:“f651da8c.4816f8”,“name”:"",“topic”:"",“payload”:"",“payloadType”:“date”,“repeat”:"",“crontab”:"",“once”:false,“onceDelay”:0.1,“x”:680,“y”:240,“wires”:[[“b38bd8b8.5a2af8”]]},{“id”:“b38bd8b8.5a2af8”,“type”:“inovelli-status-manager”,“z”:“f651da8c.4816f8”,“name”:"",“nodeid”:"",“color”:“107”,“level”:10,“duration”:30,“display”:“2”,“x”:910,“y”:240,“wires”:[[“531f74fb.6c3d3c”,“7c297c51.a04874”,“b723e1f.8abd12”,“d010294e.c69128”]]},{“id”:“531f74fb.6c3d3c”,“type”:“api-call-service”,“z”:“f651da8c.4816f8”,“name”:“node 1”,“server”:"",“service_domain”:“zwave”,“service”:“set_config_parameter”,“data”:"{ “node_id”: 1 }",“mergecontext”:"",“x”:1150,“y”:200,“wires”:[[]]},{“id”:“7c297c51.a04874”,“type”:“api-call-service”,“z”:“f651da8c.4816f8”,“name”:“node 2”,“server”:"",“service_domain”:“zwave”,“service”:“set_config_parameter”,“data”:"{ “node_id”: 2 }",“mergecontext”:"",“x”:1150,“y”:240,“wires”:[[]]},{“id”:“b723e1f.8abd12”,“type”:“api-call-service”,“z”:“f651da8c.4816f8”,“name”:“node 3”,“server”:"",“service_domain”:“zwave”,“service”:“set_config_parameter”,“data”:"{ “node_id”: 1 }",“mergecontext”:"",“x”:1150,“y”:280,“wires”:[[]]},{“id”:“d010294e.c69128”,“type”:“api-call-service”,“z”:“f651da8c.4816f8”,“name”:“node 4”,“server”:"",“service_domain”:“zwave”,“service”:“set_config_parameter”,“data”:"{ “node_id”: 1 }",“mergecontext”:"",“x”:1150,“y”:320,“wires”:[[]]},{“id”:“2f9b477.d2230b8”,“type”:“comment”,“z”:“f651da8c.4816f8”,“name”:"",“info”:“Note: node id is not set on the status manager, it is set on the svc calls and the svc call only inherits the value and other params”,“x”:860,“y”:200,“wires”:[]}]

example flow where you want to programatically override settings (e.g. in a certain case you want to set a different color or blink/pulse instead of solid or whatever)
[{“id”:“f651da8c.4816f8”,“type”:“tab”,“label”:“Flow 1”,“disabled”:false,“info”:""},{“id”:“b38bd8b8.5a2af8”,“type”:“inovelli-status-manager”,“z”:“f651da8c.4816f8”,“name”:"",“nodeid”:"",“color”:“107”,“level”:10,“duration”:30,“display”:“2”,“x”:910,“y”:240,“wires”:[[“531f74fb.6c3d3c”]]},{“id”:“531f74fb.6c3d3c”,“type”:“api-call-service”,“z”:“f651da8c.4816f8”,“name”:“node 1”,“server”:"",“service_domain”:“zwave”,“service”:“set_config_parameter”,“data”:"{ “node_id”: 1 }",“mergecontext”:"",“x”:1110,“y”:240,“wires”:[[]]},{“id”:“2f9b477.d2230b8”,“type”:“comment”,“z”:“f651da8c.4816f8”,“name”:"",“info”:“You can send payload parameters to override status manager settings (e.g. programatically setting a color or pulse type)”,“x”:700,“y”:200,“wires”:[]},{“id”:“e23e089f.6aecb8”,“type”:“inject”,“z”:“f651da8c.4816f8”,“name”:"",“topic”:"",“payload”:"",“payloadType”:“date”,“repeat”:"",“crontab”:"",“once”:false,“onceDelay”:0.1,“x”:540,“y”:240,“wires”:[[“35c95880.f6fe18”]]},{“id”:“35c95880.f6fe18”,“type”:“function”,“z”:“f651da8c.4816f8”,“name”:"",“func”:“return {\n payload: {\n color: 1,\n display: 3,\n }\n}”,“outputs”:1,“noerr”:0,“x”:690,“y”:240,“wires”:[[“b38bd8b8.5a2af8”]]}]

Wow… this is cool stuff. I will try out today… thanks…

Dang this is next level. Really cool @pdong!

I took a slightly different approach to setting LED colors. I am not familiar with node-RED, so I created a script in home assistant that I can just call when needed.

When the script is called from an automation, I can just pass some variables to the script, and it will calculate the correct value.

  • Color = red, orange, green, blue, yellow, cyan, or 0-255
  • duration =0-255, or “on”
  • effect = off, solid, fast_blink, strobe, slow_blink, pulse
  • level = 1-10
  • node_id = the node# to pass the parameter to
3 Likes

For those of you not using node-red I put together a simple visual calculator web app that can be accessed here: https://nathanfiscus.github.io/inovelli-notification-calc/ . Still a work in progress, but gives you an idea of what the output will look like before sending the notification to the switch.

17 Likes

Here’s a more complete list of scene event data. This includes the hold/release events.

Button Press Scene ID Scene Data
1 x Up 2 7680
1 x Down 1 7680
2 x Up 2 7860
2 x Down 1 7860
3 x Up 2 7920
3 x Down 1 7920
4 x Up 2 7980
4 x Down 1 7980
5 x Up 2 8040
5 x Down 1 8040
1 x Config 3 7680
Hold Up 2 7800
Release Up 2 7740
Hold Down 1 7800
Release Down 1 7740
6 Likes

Dude… just seeing this… holy crap this is next level man. Even @EricM_Inovelli was blown away and he’s hard to impress!

Do you mind if we direct people here from our site?

We have a cool spreadsheet we put together, but this really makes it easier to visualize what the switch looks like.

Nice job and thanks again!

2 Likes

Thank you. And I do not mind at all. :+1:

I wanted to share the config change that I had to make in order for my switch to work. I needed to add in the node_id to the event data. Without the node_id, HASS wasn’t operating properly. Here is the automation event configuration taken from the automations.yaml file in the HASS config directory.

  trigger:
  - event_data:
      entity_id: zwave.inovelli_lzw30_sn_switch_red_series
      node_id: 4
      scene_data: 7680
      scene_id: 2
    event_type: zwave.scene_activated
    platform: event

I hope this helps someone else new to integrating the lzw30 with Home Assistant in the future!

Interesting. I have several switches and haven’t needed to do include nodeId in the automation trigger. Others here haven’t needed to either. Are you running an older version of HomeAssistant or something? But hey, whatever works! :+1:

I thought it was adding the node id that fixed it… It could have been where some quotes were too. Either way, can confirm the above trigger code works in v 0.100.3

I followed the directions here and using the following settings, my switch triggers the scene any time I do a single click on up, down, or the config button. Seems like it’s ignoring the scene_id. Any ideas?

image

<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="4" innif="true" scenecount="0"> <Instance index="1" /> <Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" /> <Value type="int" genre="user" instance="1" index="1" label="Top Button Scene" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="7680" /> <Value type="int" genre="user" instance="1" index="2" label="Bottom Button Scene" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="7680" /> <Value type="int" genre="user" instance="1" index="3" label="Config Button Scene" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="7680" /> </CommandClass>

Remove all the quotes in your Event data section.
It should look like:

entity_id: zwave.inovelli_unknown_type_0001_id_0001
scene_data: 7680
scene_id: 3

1 Like

Thanks, that worked perfectly! I think there were quotes in your example that I copied from - may want to update your previous post so others don’t have the same confusion. Thanks again for helping people get this working!

I updated the post… I didn’t realize I typed the example that way. Thanks.

1 Like

That visual calculator is so cool. Thank you.

I’m having some issues with the duration of time the notification light is lasting. I currently have my notification value set to 2 min and it is lasting much longer than that. Any suggestions?

I was able to reproduce belgian_style’s issue, I timed it for at least 2:30 and it was still going. I’ll leave the notification going and see how long it stays.

I am using parameter: 16 since it is the correct parameter for “LED Strip Effects” on the dimmer version

Settings
node_id: 20
parameter: 16
size: 4
value: 74975765


I manually entered 21, which is why it still says Pink in the screenshot

@EricM_Inovelli anything we can do to troubleshoot further?