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?
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.
supportedThermostatModes
- JSON_OBJECT
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.
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
That attribute is just missing and hasn't come up before since all our drivers use the thermostat capability.
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.