Fingerprinting


(Serge Sozonoff) #1

Hi,

I have some more questions regarding fingerprinting.

  1. Some threads I have read seem to indicate that the only fields required for fingerprinting are inClusters and outClusters. Many of examples I read about include other fields like profileId, deviceId and so forth. Is there a definitive answer on how or what gets matched up for the fingerprinting to work ?

  2. If I have a device with multiple endpoints do I have to add a fingerprint for every endpoint ?

Thanks,
Serge


#2

Different device classes have different required fields.

ProfileID is for zigbee, so you can distinguish between a device certified for the Zigbee Home Automation standard and one certified for zigbee Light Link, etc.

DeviceID is for zwave device class.

http://docs.smartthings.com/en/latest/device-type-developers-guide/anatomy-of-a-device-type.html

See if this topic from the archives helps any, it was started by a guy who was building his own physical device as well:

edited to add Just realized you’re not building a device, you’re trying to get an existing one to work with ST, right?

If so, the device is already broadcasting its zigbee fingerprint, although you may have to tweak the ST smart device type.


(Serge Sozonoff) #3

edited to add Just realized you’re not building a device, you’re trying to get an existing one to work with ST, right?

If so, the device is already broadcasting its zigbee fingerprint, although you may have to tweak the ST smart device type.

Thanks and correct I am working with a ZLight2 module. It has 3 Endpoints but its not clear if I have to add a finger print for each or not. It is a ZLL device but also has a 0104 profileID on another Endpoint.

trace cp desc: ep_cnt:3, ep:0C 0B 0D
    
trace cp desc: desc: 0B 0104 0102 02 07 0000 0003 0004 0005 0006 0008 0300 00
trace cp desc: desc: 0C 0104 0200 02 00 00
trace cp desc: desc: 0D C05E E15E 02 01 1000 01 1000

So endpoint
0D is a ZLL profile with cluser 1000 which is for “linking” I think
0B is an HA profile with the light control cluster
0C is an HA prfile with a “shade” cluster it seems ??

So do I have to create a fingerprint for each one ?

Thanks,
Serge


(Serge Sozonoff) #4

OK so it seems I have got the fingerprint ok since the correct device type is getting created.

fingerprint endpointId: "0B", profileId: "0104", deviceId: "0102", inClusters: "0000 0003 0004 0005 0006 0008 0300"
fingerprint endpointId: "0D", profileId: "C05E", inClusters: "1000", outClusters: "1000"
fingerprint endpointId: "0C", profileId: "0104", deviceId: "0200"

Now I just need to figure out why I cant turn the light on and off with the simple command.

st cmd 0x${device.deviceNetworkId} ${endpointId} 6 1 {}

One thing I am unclear on is how the ${endpointId} is picked up. As mentioned previously there are 3 endpoints so how does this code know which one to use when sending the command ?

Looking around various code examples it seems some people are hard coding it and other use this mysterious variable… probably cut’n’pasted from smaerthings examples.

Serge