Hey, device type devs. Yesterday’s deploy introduced a new format for fingerprinting Z-Wave devices based on the new device description that was added in 0.14.39. You can finally fingerprint devices based on manufacturer info instead of just type and command classes. We still need to get this working on hub v1 before you can rely on it, but we decided to make it available now so you can try it out and help us test.
Here are some ways you can fingerprint Z-Wave devices now, assuming you’re adding them to a v2 hub:
fingerprint mfr: "0086", prod: "0102", model: "004A" fingerprint type: "0701", cc: "71,85" fingerprint cc: "5E,86,72,98", sec: "25,70,27,32,81,85,59,7A,73", secOut:"5A,82"
The available fields are:
- type: the device type code
- cc: the supported command classes
- ccOut: the controlled command classes
- sec: the command classes supported only via secure encapsulation
- secOut: the command classes controlled via secure encapsulation
- mfr: the manufacturer ID
- prod: the product type ID
- model: the product ID
- ver: the device firmware version
- deviceJoinName: if the device joins with this fingerprint, the name will be set to this value (like ZigBee has had for a while)
Some things to note:
modelfields are the 3 ID codes that almost every Z-Wave device provides via the ManufacturerSpecific command class. These can generally be counted on to be the same for all devices of a single model.
- You can usually find the
modelvalues on products.z-wavealliance.org where they are called (their real names) Product Type ID and Product ID respectively.
- All values except versions are hexidecimal strings – we dropped the “0x” prefix for convenience.
- The type field is an alias for deviceId, so you can put the same thing in there as before, or you can use the
uivalues from the raw description, which correspond to Z-Wave Plus GUI recommendations, and are sometimes more useful.
- The new fields, including deviceJoinName, won’t work for older firmware versions until we finish an auto-conversion adapter that’s in progress.