Trying to understand Zwave command

I learning about device drivers by a ST driver. I would like to know where to find the meaning of "2003" in command: 2003.

I downloaded the ST driver "ST Dimmver Switch.groovy" and am slowly going through each group trying to understand the language and function.

I'm currently learning the parse function and it would help me to know the actual command reported as "2003" (see below). I think in actuality I could get by without knowing as it seems the zwave.xxx function will convert it to the correct command. However it would help me wrap me head around the functions if I understood the in between meanings.

Thanks
John

def parse(String description) {
def result = null
if (description != "updated") {
	log.debug "parse() >> zwave.parse($description)"
                         // (zw device: 08, command: 2003, payload: 00 )  <------ from log file entry
	def cmd = zwave.parse(description, commandClassVersions)
	if (cmd) {
		result = zwaveEvent(cmd)
	}
}
if (result?.name == 'hail' && hubFirmwareLessThan("000.011.00602")) {
	result = [result, response(zwave.basicV1.basicGet())]
	log.debug "Was hailed: requesting state update"
} else {
	log.debug "Parse returned ${result?.descriptionText}"
}
return result

After searching I found this thread that explains the "command" values.

https://community.smartthings.com/t/help-understanding-zwave-parse/103037/3

1 Like

The documentation for zwave is available online here: Z-Wave Mesh Network Protocol Specification - Silicon Labs

I believe you need to create a login before you can access it.
For a command, as your example: "command: 2003" the first 2 digits are the Command Class in this case "20" and that means Basic Command Class" there is a link on the page above "List of Z-Wave Command Classes" that is a spreadsheet with the various command classes.
The second 2 digits "03" specify the command, in the case of Basic, it is a "Basic Report". You will find that in the same spreadsheet but on the "Commands" tab.

Beyond that, you will start getting into the structure of the zwave message and that is quite complicated but there are more documents on that page will will explain each one. Keep in mind it is not the easiest to understand so don't be surprised if none of it makes sense! :slight_smile:

2 Likes

@chuck.schwer,

Thank you for the followup. I apologize, when I posted the link I didn't remember that I needed to log in to access the thread.

BTW I found my Samsung Tablet login credentials worked on the ST site.

I have already copied the Zwave commands to Excel (not sure why they picked such a small font!) and am on my way. I found @mike.maxwell post eye opening and have made a lot of progress since reading it.

If I succeed and can actually meaningfully modify a driver I will try to summarize my journey for others.

John

1 Like