Instant Notifications All Switches Using Multicast on HA

I’m talking to the guys over on their discord. I think the issue is that my parameter 16 is KNOWN to have partials in it since I interviewed in the early days of the HA integration. I believe they now have it all under one value now, so it works, but mine don’t because it’s 4 with different property keys. Alas, the discussion continues!

1 Like

Interesting, so excluding and re-including a switch should fix it?

Not sure. Join the conversation!: Discord

1 Like

Unfortunately I tried excluding and re-including the switch and param 16 still doesn’t work with multi-cast :frowning:

The Discord link didn’t seem to work for me:

Its the zwave channel under the HA discord. That’s the best I can do. @firstof9 is working through a possible solution.

2 Likes

Hopefully this helps you guys out :slight_smile:

Disclaimer: You’ll now have to monitor changes to the modified config files on your own. (At least till there’s a internal workaround/fix of some kind)

Cheers! :beers:

Did you forget to post the solution? :slightly_smiling_face:

1 Like

@kreene1987 posted the link to the discord discussion here.

Below is a quick guide to help anyone else who stumbles across this post.

  1. In zwavejs2mqtt, under store tab create a config under the root store folder
  2. Create the following files under the config folder, pasting the latest JSON from the associated link
    a. lzw30-sn.json (config json)
    b. lzw31-sn.json (config json)

It should look like this:

Now we need to update the config files to give the ability to multicast the param with a single value:

For the on/off switch:

  1. Open the lzw30-sn.json created before
  2. Scroll to the bottom and after the JSON entry for 8[0x7f000000] add:
    "8": {
        "label": "Bulk set Param 8",
        "valueSize": 4,
        "minValue": 0,
        "maxValue": 100600575,
        "defaultValue": 0,
    }
  1. Save the changes

For the dimmer switch:

  1. Open the lzw31-sn.json created before
  2. Scroll towards the end of the file and after the JSON entry for 16[0x7f000000] add:
     "16": {
        "label": "Bulk set Param 16",
	    "valueSize": 4,
        "minValue": 0,
        "maxValue": 100600575,
        "defaultValue": 0,
     },
  1. Save the changes

Re-start zwavejs2mqtt and re-interview the nodes, and if it worked for the on/off switches you’ll see:

And for dimmers it’ll be:

Now you can use the multi-cast call to change notifications:

On/Off:

action:
  - service: zwave_js.multicast_set_value
    target:
      entity_id:
        - switch.garage_lights
        - switch.pantry_lights
    data:
      command_class: '112'
      property: '8'
      value: 16712960

Dimmer:

action:
  - service: zwave_js.multicast_set_value
    target:
      entity_id:
        - light.deck_lights_dimmer
        - light.front_lights_dimmer
        - light.garage_entryway_dimmer
    data:
      command_class: '112'
      property: '16'
      value: 16712960

As @firstof9 mentioned, zwavejs2mqtt will now be using your customized JSON config file for those devices and you’ll no longer get automatic updates for, so you’ll want to keep an eye on if these configs are changed in future. Hopefully there will be a longer-term fix that avoids the need for this workaround but for now it does the trick.

Really appreciate the help from all the folks involved!

6 Likes

Thanks for making this for everyone! The part I don’t understand is why is it working for me and others without doing this extra json params? I may have followed the guide here from Inovelli… I don’t recall to be honest https://support.inovelli.com/portal/en/kb/articles/installation-setup-lzw31-dimmer-black-series-gen-2-home-assistant-hass-io

Yeah I’m not sure :confused: That guide is quite old and uses the now deprecated OpenZwave integration, so could be the configs you had were already different from the ones that ship with zwavejs

Your solution works perfectly! I just changed my nodered flow to use multicast and it’s amazing the difference in speed of setting the notifications! Thank you!! Have you ever looked into what would be needed to make this work with LZW36 fan/light combo’s?

1 Like

I don’t have any of them, but I’d imagine it would work the same. All the Inovelli configs can be found here and just a matter of grabbing the config for the lzw36 and finding which param ID is used for notifications and creating a bulk set entry.

EDIT: Just had a look at the config for lzw36 and you’d want to create two bulk set entries, one for param 24 and the other for 25 and then you should be able to multicast set them

1 Like

24 for the light, 25 for the fan, so I assume it would need 2 entries. I’ll play with it tmr.

It would be GREAT if every device controlled the notification using the same parameter. With switches, dimmers, and the fan/light combo I need to do it on 4 different nodes.

Yeah it’s a bit of a pain, I have a mixture of dimmers and switches and need to have two separate multicast service calls.

Probably a script that you could pass all entities to and it would group them by device type and make the multicast service calls with the appropriate parameter number would make it a little easier to use throughout automations.

Also for anyone who uses Node-Red, I found an awesome add-on that makes it easier to set the notifications using multicast.

I’ve been using that set of nodes without multicast for months.
Put in a FR with the dev last night to add multicast and he added it right away. He doesn’t have any dimmers or fan/light combo’s so I’ll do the testing on those with multicast tonight.

EDIT: Tested on the LZW30-SN, LZW31-SN and LZW36 and this node pallet is working perfectly with multicast. This is by far the best way for anybody using nodered.

4 Likes

I took a stab at the LZW36 tonight.

Follow the same steps as posted above
Create lzw36.json (config.json)

For the fan/light combo switch:

  1. Open the lzw36.json created
  2. Scroll about 3/4 of the way down after the JSON entry for 24[0xff] add:
		"24": {
			"label": "Bulk set Param 24",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 100600575,
			"defaultValue": 0,
		},
  1. Scroll a bit further down and after the JSON entry for 25[0xff] add:
		"25": {
			"label": "Bulk set Param 25",
			"valueSize": 4,
			"minValue": 0,
			"maxValue": 100600575,
			"defaultValue": 0,
		},
  1. Save the changes

Re-start zwavejs2mqtt and re-interview the nodes. You’ll now see Bulk set Param 24 and Bulk set Param 25.

2 Likes

@kreene1987 @garymcl I’ve finally found why my switches had the additional param that yours did not. I’m doing a new install of HA and have confirmed that if you first do a bulk set partial param config to a switch and then restart zwavejs2mqtt the new param will appear without having to edit configs manually. Doesn’t help either of you but I’ll add it to my original post.

2 Likes

Confirmed this works for me!

1 Like