Fingerprint help - Z-Wave Manufacturer vs Z-Wave Generic

I’m having a problem trying to pair Leviton devices with my driver. I am dealing with 3 different devices which I would like to match the fingerprint for two of them and omit one. Here are their signatures:

  1. Leviton VRCS4-M0Z
zw:L type:0100 mfr:001D prod:0802 model:0261 ver:0.02 zwv:2.97 lib:01 cc:85,2D,7C,77,82,73,86,72,91 ccOut:2B,2C

2a: Leviton VRCS4-MRZ (Controller)

Raw Description zw:L type:0100 mfr:001D prod:1302 model:0243 ver:0.02 zwv:2.67 lib:07 cc:85,2D,7C,77,82,73,86,72,91 ccOut:2B,2C

2b: Leviton VRCS2-M0Z (Internal Load)

Raw Description zw:L type:1000 mfr:001D prod:1302 model:0243 ver:0.02 zwv:2.67 lib:07 cc:25,85,72,86,77,2B,2C,73,91 ccOut:82
  1. Leviton VRCS2
Raw Description: zw:L type:0100 mfr:001D prod:1102 model:0243 ver:0.01 zwv:2.67 lib:07 cc:85,2D,7C,77,82,73,86,72,91 ccOut:2B,2C

Here is my conundrum

My driver should support case 1 and case 2 but not pair with case 2a or 3.

A. Using the Z-Wave Manufacturer fingerprint, I can include device (1) with mfr/prod/model.
B. If I, however, try to use the Manufacturer fingerprint on device 2a, then it will also pair with device 2b as they have the same mfr/prod/model but one is a Controller and the other is a switch. I therefore used the z-WAVE generic fingerprint, which paired with 2a but not 2b. I use the command class supported of 2D to differentiate 2a (allowed) from 2b (not allowed).
C. Now device (C) also pairs with my driver because it supports an identical set of command classes with the only different the product id.

Note that the Leviton VRCS2 is a very different beast and MY ONLY GOAL is not to pair it with my driver. Trying to support this device is not in the cards because its implementation is very different than the S4 models.

Any advice about how I could support 1 and 2a but exclude 2b and 3?


Is the type actually different for 2b or is that a typo?

Did you ever establish if that equates to genericType and specificType for fingerprinting?

This is not a type, the M0Z actually exports two devices (one controller and one switch) with the same mfr/prod/type. TYPE is difference and yes I have related these back to genericType and specificType for fingerprinting?


which shows values for generic types.

Generic Type Controller is 01
Generic Type Binary Switch is 16 (or x10)

That’s how I got a fingerprint match for the VRCS4-M0Z and the VRCS4-MRZ (Controller) but not the switch device VRCS4-MRZ (case 2a).