ThermostatMode capability ought to have supportedThermostatModes attribute

I am surprised to see in the Hubitat driver capability list that the ThermostatMode capability does not have a supportedThermostatModes attribute. This is a departure from the SmartThings capability of the same name. Was this an intentional omission?

1 Like

It's part of the Thermostat capability. I'm guessing you know that... but I mention it because I'm not sure what you're asking. :slight_smile:

supportedThermostatModes - JSON_OBJECT

1 Like

It is precisely because the supportedThermostatModes attribute exists in the Thermostat capability that I would expect it also to exist in the ThermostatMode capability; the ThermostatMode capability is supposed (to my mind, at least) to contain the parts of the Thermostat interface related to modes, and the supportedThermostatModes attribute certainly seems to qualify as a part of the Thermostat interface related to modes.

If there is some good reason why the supportedThermostatModes attribute is not included in the ThermostatMode capability, then it ought to be added to some other capability (possibly a newly-created capability whose sole purpose is to contain it), in order to honor the principle that the Thermostat capability ought to be the composition of some set of other capabilities. At the moment, the supportedThermostatModes attribute exists in only one capability, namely, the Thermostat capability.

I suspect that the ThermostatMode capability actually does contain the supportedThermostatModes attribute, and that the documentation's failure to mention it is merely an error in the documentation.

I am hoping either that Hubitat will amend the documentation of the ThermostatMode capability to mention the supportedThermostatModes attribute, or else will clarify why the supportedThermostatModes attribute is not included among any of the broken-out thermostat-related capabilities.

When I say "broken-out thermostat-related capabilities", I mean all the thermostat-related capabilities except the monolithic Thermostat capability, namely the ThermostatCoolingSetpoint, ThermostatFanMode, ThermostatHeatingSetpoint, ThermostatMode, ThermostatOperatingState, ThermostatSchedule, and ThermostatSetpoint capabilities . Except for the apparently missing supportedThermostatModes attribute, the Thermostat capability is the composition of all of the broken-out thermostat-related capabilities.

I created a driver that has "capability ThermostatMode" and then checked it's Capability/Attributes/Commands (via my Get Attributes App) and can confirm the attribute isn't included.

Screen Shot 2021-12-05 at 5.10.32 PM

Because I maintain a Thermostat driver for the Community, I don't have an unbiased view... I'm not sure I understand the need for all the broken out capabilities. Maybe the docs will be updated to add "Deprecated" to them :smiley:

2 Likes

That attribute is just missing and hasn't come up before since all our drivers use the thermostat capability.

1 Like

Fair enough. Thank you for the rapid and thorough response, as always.

The SmartThings documentation (which is admittedly not hugely authoritative any more, particularly for Hubitat matters) says that the monolithic Thermostat capability is "deprecated". This led me to believe that the broken-out thermostat-related capabilities were the wave of the future. Hence, my interest in the broken-out Thermostat capabilities.