Need help with a zwave configurationSet code issue

Ok, I need some help. I'm probably missing something stupid... But I just can't see what.

Have a driver I'm working on, and need to set some parameters via preferences, or a command button. Neither way is working, so I thought I would show my simpler of the two - the command button I'm using for troubleshooting.

Any thoughts?

def ChangeDuration(){ "ChangeDuration"
	def cmds = []
	cmds << zwave.configurationV1.configurationSet(scaledConfigurationValue: 22, parameterNumber: 8, size: 2)
	cmds << zwave.configurationV1.configurationGet(parameterNumber: 8) "Cmds: " + cmds
	delayBetween(cmds, 1000)
	// This does not work----> delayBetween(cmds, 1000)
	// This works---->   zwave.configurationV1.configurationSet(scaledConfigurationValue: 99, parameterNumber: 8, size: 2).format()

The delayBetween command runs fine, well at least no errors. But as you can see from the log below (top line is result from basic zwave tool), it doesn't actually set the value... It was 99, and should have been set to 22... But it is clearly still 99.

The command line value is size 2, so that makes extra brackets in the cmds list (as seen in the log printout of the cmds list below), but I wouldn't think that would break it (?).


dev:3912019-01-23 07:46:44.428 pm infoConfigurationReport- parameterNumber:8, size:2, value:99

dev:3912019-01-23 07:46:32.360 pm infoCmds: [ConfigurationSet(configurationValue:[0, 22], defaultValue:false, parameterNumber:8, scaledConfigurationValue:22, reserved11:0, size:2), ConfigurationGet(parameterNumber:8)]

dev:3912019-01-23 07:46:32.356 pm infoChangeDuration

You need to add .format() to the end of each command


I swear I tried that... Multiple times. At least I thought I did.

But, yes, you are correct - that works. Thanks for pointing out the obvious to me.

One last question.... Do you ALWAYS use .format() on any zwave command? Even on things like association commands?

Or are there cases when you don't?

EDIT: All of the examples I see in the ST driver tutorial use format, including association. It makes sense I guess, as otherwise the command wouldn't get re-encoded.