Changing a Capability definition is essentially impossible. SmartThings has no mechanism for putting new Capabilities through a review process let alone revising existing ones.
Reference: About the Capability Type Suggestions category - #7 by tgauchat
Capabilities are supposed to be an abstraction of a certain piece of common “Thing” Attributes and/or Commands so that it be unambiguously used by many SmartApps and many Things.
Each Capability does not need to be comprehensive, but there are qualities of a Capablity that help suggest how big or small (i.e., how granular) they should be. Reference: DRAFT: Guidelines for Capabilities (under construction...)
Now if you actually visited the two posts I reference above, you’ll quickly realize that anything that can simplify (i.e., minimize) a Capability definition is a good thing. What is important is that the Attributes and Commands are strictly specified and DTH’s implement them per that specification.
Obviously, this Topic here shows that “Capability Color Control” does not live up to that expectation.
To improve this Capability, the best thing we could do is reduce the number of redundant options in the documented specification, with everything being “use at your own risk”.
Ergo: Since RGB in the form of a hex triplet (“#rrggbb”) is completely sufficient to accurately describe a light color (in 24-bits), this capability should be reduced to that.
OK: Many SmartApps use hue
and saturation
instead (but we still don’t know if it is HSV or HSL). These can be converted in SmartApps to RGB. But because they already exist in the Capability, I’m sure they will continue to exist, with the existing ranges (0 to 100, 0 to 100).
What’s a good way to allow a Capability to support this type of expansion (i.e., taking degrees instead of percent for hue
)? All Commands and Attributes should have a “units” portion … i.e., all Commands and Attributes should use Maps: [ value, units ], so that if a new units is introduced, the SmartApps and DTH’s can slowly adopt the new units. It is up to each SmartApp to check if the Device Instance supports the desired units before using those units.