AlejandroPadilla
(Please contact @nayelyz or @Luis_Humberto_Medina )
21
Yes, that is the reason, one thing you can do is connect your device to SmartThings without the driver, more than likely, the device will be added as a Matter thing. That means your device didn’t match with an official driver, but SmartThings detects that it is a Matter device. After that, you can use my.smartthings.com to check how the device was added and use that information to create the fingerprint.
This is very common when people buy devices that are not certified and they want to create a custom driver.
Why does he need a ProductID and VendorID to package the driver? Can’t he just use a generic fingerprint based on Matter device type like you previously mentioned? I know that the Matter button and media drivers have no vendor/product specific fingerprints defined.
AlejandroPadilla
(Please contact @nayelyz or @Luis_Humberto_Medina )
23
I’m sorry if I didn’t make myself clear, he can, for example, I made a test with this fingerprint, and work correctly at the moment to run smartthings edge:drivers:package
Glad my understanding is correct. As long as his Matter device’s endpoint[1] returns an application device type that is defined in the Matter Device Library, it should match his driver generic fingerprint for that device type and be installed (assuming a valid profile is defined).
One thing to note is that the ST Advanced Web App does not provide the vendorID nor the ProductID for Matter devices (hint…it should). You can find that information in the community developed API Browser+. It also shows the endpoints available for the device and the device types for those endpoints.
My device is basically a combination device that contains a switch, bulb, plug, temperature sensor and a couple other things that are all standard devices, but mine has them all in one.
It sounds like I basically need to just make sure it exposes all those things in the right way and then the fingerprint will match it if I follow that method of connecting the device and then looking on my.smartthings.com.
I will give that a try and see how far it gets me.
You’re going to have to define a profile that includes all those components and create a fingerprint using VendorID and ProductID once you know what those are. Using the generic matching method, the driver will use the endpoint[1] device type to assign the profile and only the components defined in that profile will show up in the ST app. For example, I have the THIRDREALITY Smart Color Nightlight which is primarily a color changing bulb with dimmer leveling. The profile selected exposes those capabilities. It also has a illuminance sensor and motion/presence sensor. Those capabilities are not exposed in the ST app. I’m working on creating a device specific fingerprint and profile for it. I’ll let you know how that goes.
Also, the ST website will not show the VendorID and ProductID. Use the community developed website I referenced in my previous post to see those as well as the endpoints and device types your device provides.
You might be able to use a fingerprint with multiple device types included like this:
- id: "matter/color/temp/light/2"
deviceLabel: Matter Color Light
deviceTypes:
- id: 0x0100 # OnOff Light
- id: 0x0101 # Dimmable Light
- id: 0x010C # Color Temperature Light
- id: 0x010D # Extended Color Light
deviceProfileName: light-color-level
or this:
- id: "matter/media/video-speaker-player"
deviceLabel: Matter Video Player with Speaker
deviceTypes:
- id: 0x0022 # Speaker
- id: 0x0028 # Basic Video Player
deviceProfileName: media-video-speaker
But you’re still going to need a custom profile to include all the components your device supports.
1 Like
AlejandroPadilla
(Please contact @nayelyz or @Luis_Humberto_Medina )
29
A device profile looks like
name: deviceprofile-name # This needs to be the same as deviceProfileName on your fingerprint
components:
- id: main
capabilities:
- id: switch
version: 1
- id: switchLevel
version: 1
- id: anotherCapability
version: 1
- id: anotherCapability2
version: 1
categories:
- name: category-name
You can add the capabilities that you want but your driver must be able to handle it Capabilities Documentation.
For example, as you mention your device has a temperature sensor, so you must be interested in using the capability temperatureMeasurement
That makes sense and is what I was thinking before. I was just confused again when you said I would need a vendor and product id again in your last post.
Yeah, I probably should have said “you’re going to want to use ProductID and VendorID or you’ll have to use multiple device types”. Sorry for the confusion.
I went to my.smartthings.com and see my hub, but can’t figure out how to upload my custom profile to it. I was not able to publish it because I still don’t have a vendor or product id.
So how / where do I upload my custom driver without a vendor or product id and install it into my smartthings hub?
I packaged my driver and was able to upload my driver to my hub using the ST CLI.
As we’ve been discussing, you can have a fingerprint that matches solely on device types. With this method, you can package and install a driver that has no vendorID or productID defined in the fingerprints.yml.