ZWave Handler for ManufacturerProprietary Command Class

Trying to add a z-wave handler for the ManufacturerProprietary Command Class.

Tried various formats like:

[cc.MANUFACTURER_PROPRIETARY] = {
  [ManufacturerProprietary] = proprietary_handler

for the zwave_handler in the driver template.

Alternatively, how can I handle an event such as this:
“Z-Wave xxx Received event with handler unnamed”

Any hints?

Thanks

But I can’t seem to find the

Use the hex code for the z-wave command being received in place of where you have ManufacturerProprietary. So if your device is sending command 9100 (Manufacturer Proprietary cc, command 00), you would use:

[cc.MANUFACTURER_PROPRIETARY] = {
  [0x00] = proprietary_handler
}
2 Likes

Tried this with no luck. I know that the command should be "9100 (Manufactured Proprietary CC 91, command 00) but still getting an “event with a handler unnamed”.

I tried to add the error field in the driver template spec but this didn’t work as most probably I didn’t enter the field in the right place.

Any help would be appreciated.

Could you post logs including the line showing the actual zwave command being received through where it says the thread was handled?

Assuming you have the correct cc and command then what I posted above should work. I have an example in use that you can see at the link below.

Thanks for this, I got the handler to work.

That said, I can’t seem to get the command to be accepted.

Relevant portions are:

local ManufacturerSpecific = (require “st.zwave.CommandClass.ManufacturerSpecific”)({ version = 1})

device:send(ManufacturerSpecific:Get())


log gets

2023-01-08T00:40:25.470830172+00:00 ERROR Z-Wave Leviton 4-Button Scene Controller  Leviton 4 Button Switch thread encountered error: [string "st/dispatcher.lua"]:233: Error encountered while processing event for <ZwaveDevice: 4e5febe7-adcc-4cbc-b4eb-0c21a001b19c [32] (Leviton 4 Button Switch)>:
    arg1: init
[string "st/zwave/init.lua"]:479: bad argument #1 to 'rawget' (table expected, got nil)

Thanks for your help.

Note the added braces:

device:send(ManufacturerSpecific:Get({}))

1 Like