How to use zwave_js set_config_parameter with partial parameters?

I’ve been outta the loop for a few weeks, come back and update everything and now I cant set parameter 16 on my inovelli red series dimmer like I used to be able it. It appears to be a set of partial parameters now. How do I refer to these in set_config_parameter service now?

I know i have to do a bitmask but I dont know how to figure that part out.

Heres how I see it now, with paramter 16 broken 4-ways

Heres how it was when I last checked a few weeks ago. Just one single parameter
image

If you remember, it doesn’t work for inovelli devices because of the same issue you ran into here.

@petro but thats the just the thing, something changed caused what was working 2 weeks ago setting it through MQTT like you showed me; isnt working now.

So now I CAN set partials through the service call. Heres a working flow where I can set the dimmer bar to either red fast blink or green pulse. I had to add the 500ms triggers between each one or else sometimes not all 4 would get set. For example, it would change to pulse, but still be red instead of green.

[{"id":"dc1548ad.4a9b68","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"d7127d68.6b7a9","type":"change","z":"dc1548ad.4a9b68","name":"Set color","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"},{"t":"set","p":"parameter","pt":"msg","to":"16","tot":"num"},{"t":"set","p":"bitmask","pt":"msg","to":"255","tot":"str"},{"t":"set","p":"value","pt":"msg","to":"0","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":501,"y":162,"wires":[["85478289.2e904","f331b6bc.c62958"]]},{"id":"eb86bdc1.1794a","type":"change","z":"dc1548ad.4a9b68","name":"Set effect","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"},{"t":"set","p":"parameter","pt":"msg","to":"16","tot":"num"},{"t":"set","p":"bitmask","pt":"msg","to":"0x7f000000","tot":"str"},{"t":"set","p":"value","pt":"msg","to":"3","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":511,"y":369,"wires":[["85478289.2e904"]]},{"id":"2a98b42c.ee3d2c","type":"inject","z":"dc1548ad.4a9b68","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":304,"y":162,"wires":[["d7127d68.6b7a9"]]},{"id":"85478289.2e904","type":"api-call-service","z":"dc1548ad.4a9b68","name":"Office","server":"456659de.370498","version":1,"debugenabled":false,"service_domain":"zwave_js","service":"set_config_parameter","entityId":"light.office","data":"{\"bitmask\":\"{{bitmask}}\",\"parameter\":\"{{parameter}}\",\"value\":\"{{value}}\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1112,"y":486,"wires":[[]]},{"id":"f1cd0abc.330a98","type":"change","z":"dc1548ad.4a9b68","name":"Set brightness","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"},{"t":"set","p":"parameter","pt":"msg","to":"16","tot":"num"},{"t":"set","p":"bitmask","pt":"msg","to":"0xff00","tot":"str"},{"t":"set","p":"value","pt":"msg","to":"10","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":521,"y":234,"wires":[["85478289.2e904","41ffe538.85c91c"]]},{"id":"b729bce5.58fe5","type":"change","z":"dc1548ad.4a9b68","name":"Set duration","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"},{"t":"set","p":"parameter","pt":"msg","to":"16","tot":"num"},{"t":"set","p":"bitmask","pt":"msg","to":"0xff0000","tot":"str"},{"t":"set","p":"value","pt":"msg","to":"255","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":521,"y":297,"wires":[["85478289.2e904","20de4124.ffb99e"]]},{"id":"4935c84d.ec2718","type":"change","z":"dc1548ad.4a9b68","name":"Set color","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"},{"t":"set","p":"parameter","pt":"msg","to":"16","tot":"num"},{"t":"set","p":"bitmask","pt":"msg","to":"255","tot":"str"},{"t":"set","p":"value","pt":"msg","to":"85","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":501,"y":540,"wires":[["85478289.2e904","890ccb26.a26228"]]},{"id":"119ca5df.efc02a","type":"change","z":"dc1548ad.4a9b68","name":"Set effect","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"},{"t":"set","p":"parameter","pt":"msg","to":"16","tot":"num"},{"t":"set","p":"bitmask","pt":"msg","to":"0x7f000000","tot":"str"},{"t":"set","p":"value","pt":"msg","to":"5","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":756,"wires":[["85478289.2e904"]]},{"id":"b5aae5da.519d48","type":"inject","z":"dc1548ad.4a9b68","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":304,"y":540,"wires":[["4935c84d.ec2718"]]},{"id":"b55e0823.1ad618","type":"change","z":"dc1548ad.4a9b68","name":"Set brightness","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"},{"t":"set","p":"parameter","pt":"msg","to":"16","tot":"num"},{"t":"set","p":"bitmask","pt":"msg","to":"0xff00","tot":"str"},{"t":"set","p":"value","pt":"msg","to":"2","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":521,"y":612,"wires":[["85478289.2e904","368ec422.543bec"]]},{"id":"af47795f.b7e268","type":"change","z":"dc1548ad.4a9b68","name":"Set duration","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"},{"t":"set","p":"parameter","pt":"msg","to":"16","tot":"num"},{"t":"set","p":"bitmask","pt":"msg","to":"0xff0000","tot":"str"},{"t":"set","p":"value","pt":"msg","to":"255","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":521,"y":684,"wires":[["85478289.2e904","ec92a8a6.355e28"]]},{"id":"890ccb26.a26228","type":"trigger","z":"dc1548ad.4a9b68","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"500","extend":false,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":521,"y":576,"wires":[["b55e0823.1ad618"]]},{"id":"368ec422.543bec","type":"trigger","z":"dc1548ad.4a9b68","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"500","extend":false,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":521,"y":648,"wires":[["af47795f.b7e268"]]},{"id":"ec92a8a6.355e28","type":"trigger","z":"dc1548ad.4a9b68","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"500","extend":false,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":521,"y":720,"wires":[["119ca5df.efc02a"]]},{"id":"41ffe538.85c91c","type":"trigger","z":"dc1548ad.4a9b68","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"500","extend":false,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":521,"y":270,"wires":[["b729bce5.58fe5"]]},{"id":"f331b6bc.c62958","type":"trigger","z":"dc1548ad.4a9b68","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"500","extend":false,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":521,"y":198,"wires":[["f1cd0abc.330a98"]]},{"id":"20de4124.ffb99e","type":"trigger","z":"dc1548ad.4a9b68","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"500","extend":false,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":521,"y":333,"wires":[["eb86bdc1.1794a"]]},{"id":"21ade9e5.634116","type":"comment","z":"dc1548ad.4a9b68","name":"Red, 100%, indefinite, fast blink","info":"","x":576,"y":126,"wires":[]},{"id":"bf68757c.785198","type":"comment","z":"dc1548ad.4a9b68","name":"Green, 20%, indefinite, pulse","info":"","x":553,"y":504,"wires":[]},{"id":"456659de.370498","type":"server","name":"AvilaSmartHome","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

I used this page, which I just found out about and really helps with parameters.
https://devices.zwave-js.io/?jumpTo=0x0086:0x0003:0x003e:0.0#

nothing changed, MQTT is still working. I’m still using it and I’m up to date. You sure you didn’t turn off MQTT?

Well I am now on my production rig. Previous was just my test rig. But I went through same steps on production that I did when setting up my test.

I can open MQTT explorer, point it to my production rig, and I see all the entities come through, etc. Ill keep looking to see if some setting isnt the same. But I’m very excited that you can set partials through the service call.

just remember that you can’t set bulk partials so that service is pretty useless for most inovelli partial params.

What do you mean by that? Bulk partials?

Exactly what I said in the other post on the inovelli forums. You can only send 1 partial at a time (with the zwave_js service). This causes the full parameter to behave erratically. You need to set all the partial parameters in a single push.

Oh ok, I misunderstood before then. I thought you had meant you physically cant set partial parameters with the service call. But you meant you physically can, it just may not behave right. Gotcha

It depends on what the parameter is currently set to. For example, if your param is currently set to zero and you try and set the partial color or the partial effect, nothing will happen because you need both at the same time.

Ok. Well maybe because I previously had them all set already, but the following flow works for me, just setting 1 partial at a time. I can put the trigger at any length and the end result will be correct.

It brings the z wave down to a crawl for about 10 sec, if I am doing anything else z wave related, but this type of mass setting is done once in a great while.

This will work for me until I figure out why I cant set like I used to.

So heres the flow. The subflow is then setting 33 switches


Yes, but if you were to get a factory device and use this method, it wouldn’t work because the default is 0.

Yep, because you’re sending multiple partials. That’s why I still use the ZwaveJS2MQTT set config call script that I made because it makes 1 call for all the partials.

Yeah i just want to get everything up right now then gotta figure out why the change.

What version of JS2MQTT are you on? Because the one on my test right and production arent the same. Im thinking maybe thats why? But you said you were updated which means you’d be on 0.8 as well.

Im on 0.8 on production and it lists 16 as partials.
image

Im on 0.7 on test and it lists 16 as one.
image

that doesn’t matter for the script that I provided. This is something you can’t get around. You have to use the MQTT calls to provide a single full param when partials are involved.

I just posted something similar and the came across this thread. It broke all of my notifications as well.

The config files were updated and someone turned the params into partial params. Partial params with zwave_js.set_config_parameter has been broken if the param requires more than 1 partial to be set.

@gregg098 yeah since parameter 16 is a partial parameter consisting of 4 parts (color, brightness, duration, effect), you can no longer set it with the 1 single value that was given in Nathans toolbox.

You can only use that single value if setting through MQTT which petro’s script covers (assuming you have ZWAVEJS2MQTT), or I found out you can still do it at least through node red (assuming certain things were already set as petro says in reply 11)

I wouldent know exactly how to translate it into yaml though, sorry. If you read through this thread, reply 10 is how I am doing it for the time being.

Hope that clears it up.

I did figure out yesterday that as long as I dont change the notification type or length, I can just set the color and it will just do the last notification sequence (type, length, etc.) with the color input. Kind of gimps the whole aspect of these switches, so I hope that this gets resolved.

The real issue is that inovelli doesn’t allow you to set a single parital parameter unless the whole parameter is valid. Anyways, a dev is looking at a solution for users to provide a full parameter to partialed parameters with the zwave_js.set_config_paramater service.

2 Likes