Detecting Optimum Driver

I asked about this 2 years ago - but I return to my original question/feedback.

Recently, one device of mine was not acting correctly. I ran the old trick - change it's driver to 'Device'. button mash the new buttons for it, save preferences and then put the driver back.

Then I realized I didn't remember what driver it was previously set too. Was it 'Generic zigbee Motion with no temp? with Temp? with humidity?
The device is unique - I've had it since early SmartThings days and it is one of a kind in my network. OBVIOUSLY - I could note rules and such to see what attributes it had.

The weakness herein uncovered is there isn't a clear way to 'auto-detect' best driver to existing devices.

When I queried about this a few years ago the answer was 'check the compatibility list' etc etc. Basically, manually go, identify each device and model, then compare that to user and hubitat release notes over the last 4 years, check the compatibility list ... See where this is going?

While we all know that sadly many drivers might work for a given device. Then there is the 'if its working - dont mess' POV. But my FEEDBACK is I think it would be beneficial to have the ability to looked at all your devices, in a clear listing that showed the recommended driver, and the currently used driver. One clear example recently was I learned one of my devices supported Temperature - but the generic driver I was using (at time of pairing - auto connected) did NOT put a driver that had temp attribute. This stumbling only occurred because I looked at a device list sorted by driver and noted this one device was different from 4-5 others. How it got wrong? don't know dont care. thats not my feedback. My feedback again is 'it would be beneficial to have a device driver review page that attempted to help me see my network and review, optimize and improve it. It would be here I would offer 'Update Firmware' btw.

1 Like

How would the hub decide which driver is the recommended one for the user?

Some kind of match-up of device capabilities vs. capabilities available in a driver?

being a hack, I think like a hack - my first instinct is 'what did it do on the initial pairing?' Never having looked at the 'supported devices list', and rarely reading release notes - Doesn't the HE device compatibility list have a starting point reference? I truly don't know!
Currently, I slap generic first, and when that fails I start reading forums... so this part is above my pay grade. How do you do it?

My understanding is that each compatible device has a fingerprint assigned to a driver.

That’s what gets assigned when a device is paired.

For devices that can potentially work with more than one driver (perhaps partially in some cases), I assume a decision had to be made which one is “recommended.”

Would restoring the driver assigned on pairing work for what you’re suggesting? Or are you still envisioning a list of all possible alternative drivers?

Having stuffed fingerprints into drivers myself, that if set the driver to 'Device' (listed as a System driver assumedly thats native HE), button mash then select 'Get info' you'll pump a log entry of the device fingerprint. Then snagging that string, with a little cleanup you drop that into a custom driver and the driver will autodetect next device you pair with the same fingerprint. However, when two drivers have the fingerprint, I've no clue what prioritization happens.
So thinking it out, one could create some driver scanner that parsed fingerprints as a method to Identify customized table of driver info that would be useful in an app that allowed basic driver management/optimization. Above my skill set tho.