I don’t have the stomach to go into the full story of how the Raw Description is formatted and why. Just know that it was designed for ZigBee devices and Z-Wave was shoehorned in later.
What you need to know is that the command classes that come before 0xEF COMMAND_CLASS_MARK are the supported classes – what the device accepts, more or less – and the ones after the mark are the controlled classes – what the device sends to others.
For fingerprinting, we match the supported classes against the inClusters
parameter and the controlled against outClusters
.