@zhouse,
I've read through this conversation, and Garrett is correct. Everything else is a hack, and something that has a likelihood of breaking in a future release of MiOS.
Garrett's suggestion is merely to call, out of band, to get the additional supporting metadata when you first see a new device. This can then be cached to a persistent store, within in the device, so that no subsequent calls need ever be done, ever.
For example, both SQRemote and AutHomation both have similar caches. Although they're done differently, the caching/intent is the same - not forcing plugin changes, not utilizing something that'll break in future MiOS releases, and to maintain overall performance with minimal first-time-only impact to the user. I'm sure a number of the other control points are doing the same thing.
Seems like a reasonable internal architecture to have, no?