I have some more questions regarding fingerprinting.
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 ?
If I have a device with multiple endpoints do I have to add a fingerprint for every endpoint ?
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.
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.
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 ?
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.