Is the Z-Wave command class "Simple AV Control" fully supported?


I want to write a driver for a Z-Wave device that supports the Simple AV Control v4 command class.
Now I have looked at the latest libs api and edge driver reference for Z-Wave


and it seems that there is only one entry in the CC list, but there are no generated CC functions for this class.

Does this mean that it is not supported or do I need to implement these functions in the driver itself?
A few examples where this has been implemented in a similar way would be very helpful.

I guess that was definitely supported in the past. I found some old DTH stuff here:

ZXT-310 is also a device that works with IR to send commands to other paired devices that support IR communication.

Tagging @posborne

1 Like

Hi @ronie_pilot, you are correct that we don’t provide generated code for this command class, though I’m not aware of any particular reason why and I’m not aware of any reason you should be prevented from interacting with this command class, there just isn’t generated helper code in the bundled st lua libs.

Ideally, we have wanted to provide the codegen and input files for codegen that we use but the licensing of these from the Z-Wave alliance is challenging to work with and isn’t clearly distributable to non-alliance members. Anyway, I took a quick pass at generating the code for this command-class that you are welcome to use. I’ll check with the team to see if we can add this to lua_libs in future version; I believe some command-classes are just not codegen’d in order to reduce flash space, etc. for clusters that are less commonly used.

This is completely untested but uses the same generation based on base definitions that we use for other clusters, feel free to use in your driver as you see fit in compliance with the license: Generated Simple AV Controller Command Class Code for SmartThings Edge · GitHub


@posborne Awesome! Thank you!

Am I right that I can use it like follows in my init.lua after adding the file to e.g package/SimpleAvControl.lua"?

--- @type SimpleAvControl
local SimpleAvControl = (require "SimpleAvControl")({version=4})

If there is a better practice, please let me know :slight_smile:

What about the WWST? Can an edge driver with such a workaroud get a certification or is it necessary that the CC must first be fully implemented in the ST-Lib?

1 Like

@ronie_pilot I’ve created a ticket internally to discuss further but I would continue to use what I provided in the interim and go into submitting a PR and cert request using that generated code. In review, we can see if it is no longer necessary or we should otherwise have logic to only use it for older environments.


@posborne sounds good, thanks for your help!