For a binding of mine, I’m communicating with a system that gives a list of “devices” attached to it, all with a unique identifier that is only discoverable via that API call.
I can thus place the identifier in a property associated to the discovery result and when the user adds the thing from that result, the property is propagated. All is well.
But, when the user adds a new thing via MainUI, it’s impossible for them to figure out which value is to be given for the identifier and the Thing remains in an unconfigured state that cannot be changed.
To avoid this confusing situation, I would like to prevent the thing type to be visible in MainUI so that a user cannot manually create things for it.
I think the preferred way to approach this is not to prevent manual thing creation, but instead
To make that identifier value a configuration value instead of a property and
To provide a OH console command to list the devices (essentially doing the same thing the discovery does and just printing the output to the console)
That way users can still create the thing manually if they desire, getting the identifier either from the console command or from a manual discovery run.