WTH - inhibit for climate/thermostat (e.g. to ease up turning heating off when windows are open)

Would be nice if the Climate integration and the corresponding Generic Thermostat platform would have some sort of inhibit or gate that controls turning off/on the output to the actual heater. Sort of like a pause for the heater.

The use case would be to pause heating when a window (or group thereoff) is open. Workarounds are there (using some helpers etc.) but it would be much simpler if that gate could be en-/disabled depending on the state of the windows. Like specifying the sensor and heater device, just add one more reference to a binary sensor for the gate.

Reflecting the state of the inhibit/gate could be either done by an additional value of the device state (inhibit) and/or an additional attribute.

Along this topic, I do not fully understand the logic of climate.on/off vs. climate.set_hvac_mode. Seems at least for the generic_thermostat (I don’t have any other climate device) it looks like they do exactly the same - climate.on turns the thermostat on, climate.set_hvac_mode: heat does exactly the same. And vice versa for off. Shouldn’t they be more independend ? In that case one could leave the thermostat in the on state but set the hvac mode to ínhibt/pause - for my scenario above.

Check out Heating X2: Schedule Thermostats with Calendars, which includes the facility to turn off heating if a door or window is open, or if the room is left unoccupied for a while.

Heating X2 features:

  • Schedule by calendar: set the temperature of each room with a local calendar and as many heating events as you like
  • Multiple thermostats: One or more thermostats per room: multiple thermostats are synchronised together. Works with smart TRVs, any smart thermostat, or Generic Thermostat
  • Manual override: a change on the thermostat, dashboard or by voice assistant remains in effect for a defined period (default 2 hours)
  • Door or window open: heating turns off heating in the room if any door or window is left open for a defined period (default 3 minutes) – optional list of zero or more closure sensors.
  • Occupancy: heating turns off heating if a room is left unoccupied for a defined period (default 1 hour) – optional list of zero or more motion or human presence sensors.
  • Warmup period: occupancy is ignored for a defined period at the start of a calendar event (default 2 hours)
  • Away mode: set all rooms to a temperature specified per room (default 5C) when there is no one at home
  • Background temperature: used when there is no calendar event (default 5C but specified separately from the frost and away temperatures)
  • Zone control: can switch one or multiple heating zone valves, or a boiler that needs a heat demand switch, based on heat demand from a group of thermostats
  • Notifications: if thermostats do not respond to a new setting, go offline, or come back online
  • Robust: Graceful degradation when a thermostat or a sensor is offline
  • Battery-efficient: conserves TRV battery life by only transmitting real changes
  • Code generator: uses mail merge (!) to automatically generate YAML code for helpers, timers, template sensors, groups, automations, and dashboard cards from a single EXEL spreadsheet that lists zones, rooms and thermostats

About your question of climate on/off VS hvac mode: There are more complex climate systems than simple on/off thermostats that switch a relay. Some systems can do heating or cooling, which are different hvac modes. Some have multiple levels of heating. Some make a difference between ‘idle’ (regulating but not heating) and ‘off’ (not regulating). Not all climate devices allow switching of the Hvac mode directly, it is read only.
So in general, hvac mode is definitely not the same as on/off.