From the Driver Capability List:
Thermostat
Device Selector
capability.thermostat
Driver Definition
capability "Thermostat"
Attributes
coolingSetpoint
- NUMBER, unit:°F || °C
heatingSetpoint
- NUMBER, unit:°F || °C
schedule
- JSON_OBJECT (Deprecated)
supportedThermostatFanModes
- JSON_OBJECT
supportedThermostatModes
- JSON_OBJECT
temperature
- NUMBER, unit:°F || °C
thermostatFanMode
- ENUM ["on", "circulate", "auto"]
thermostatMode
- ENUM ["auto", "off", "heat", "emergency heat", "cool"]
thermostatOperatingState
- ENUM ["heating", "pending cool", "pending heat", "vent economizer", "idle", "cooling", "fan only"]
thermostatSetpoint
- NUMBER, unit:°F || °C
Note that one of the options for thermostatOperatingState is "fan only". My understanding of when this operating state should be selected is when thermostatMode is set to "on" and no heating or cooling is required. In contrast, when thermostatMode is set to "auto", thermostatOperatingState should be "idle" when no heating or cooling required. Frankly, I'm not sure what "circulate" should do.