Skip to content

Support Home Assistant templates for static configuration options #317

Description

@ScSCico

First of all, thank you for this excellent integration. I have been using HASmartThermostat extensively and it has been working very well.

I would like to propose a feature that would make the integration much more flexible while remaining fully backward compatible.

Motivation

Currently, several configuration options are evaluated only once during startup and remain static for the lifetime of the entity, for example:

  • ac_mode
  • min_temp
  • max_temp
  • target_temp

In many Home Assistant installations these values depend on other entities and may need to change over time.

A common example is a seasonal installation where the same thermostat is used for both heating and cooling.

For example:

  • Winter

    • Heating mode
    • Temperature range: 16°C – 24°C
  • Summer

    • Cooling mode
    • Temperature range: 23°C – 28°C

Today this requires creating duplicate thermostat entities, frontend workarounds, or custom automations.

Proposed solution

Allow these configuration options to accept Home Assistant templates instead of only static values.

For example:

climate:
  - platform: smart_thermostat
    name: Living Room

    ac_mode: >
      {{ is_state('input_select.season_mode', 'Summer') }}

    min_temp: >
      {{ 23 if is_state('input_select.season_mode', 'Summer') else 16 }}

    max_temp: >
      {{ 28 if is_state('input_select.season_mode', 'Summer') else 24 }}

    target_temp: >
      {{ 26 if is_state('input_select.season_mode', 'Summer') else 20 }}

Whenever one of the referenced entities changes, SmartThermostat would re-evaluate the templates and update its internal configuration and exposed climate attributes.

Benefits
No duplicated thermostat entities.
No frontend workarounds.
No custom automations.
Thermostat cards automatically display the correct temperature range.
Existing YAML configurations remain fully compatible.
More flexibility for advanced Home Assistant users.

I believe this would make SmartThermostat even more powerful while preserving its current behavior for users who prefer static configuration.

Thank you for considering this feature.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions