---
title: "Dual Smart Thermostat"
description: "Dual Smart Thermostat is a Marketplace integration for Home Assistant. It has 615 installs sharing analytics, works locally and was last updated October 23, 2026."
canonical: "https://vulpo.app/integrations/marketplace/swingerman-ha-dual-smart-thermostat"
url: "https://vulpo.app/integrations/marketplace/swingerman-ha-dual-smart-thermostat.md"
last-updated: "2026-10-23"
version: "1.4"
---

# Dual Smart Thermostat

> Dual Smart Thermostat is a Marketplace integration for Home Assistant. It has 615 installs sharing analytics, works locally and was last updated October 23, 2026.

Dual Smart Thermostat is a climate integration that switches a heater and an air conditioner from a temperature sensor. It extends the generic thermostat with heat only, cool only, heat and cool, heat pump and two stage heating setups. Settings cover tolerances, a minimum cycle duration, a keep alive interval and temperature limits. Optional features include a fan, humidity control with a dehumidifier, window and door sensors, floor temperature limits and presets such as Away, Eco and Sleep. It works locally and is set up in the UI.

Automatic summary of the README and code of swingerman/ha-dual-smart-thermostat. Something wrong, or are you the maintainer and want your own text here? [Get in touch](https://vulpo.app/contact)

[Open in My Home Assistant](https://my.home-assistant.io/redirect/hacs_repository/?owner=swingerman&repository=ha-dual-smart-thermostat&category=integration)

On Home Assistant 2026.11 or newer? [Open it in the Marketplace](https://my.home-assistant.io/redirect/marketplace_repository/?owner=swingerman&repository=ha-dual-smart-thermostat&category=integration)

## Supports

- **Works locally**: Talks to your devices on your own network. No vendor cloud in between.
- **From the Marketplace**: Installed through the Marketplace, formerly HACS.
- **Actively maintained**: Its author released or pushed a change in the last six months.

## Setting it up

Install it from the Marketplace and restart Home Assistant, then add it under Settings, Devices and services.

### System Type Selection

- **System Type**: Select the system type that best matches your HVAC setup.

### Basic Configuration

- **Name**: \[Basic Information\] Name of the thermostat entity (default: Dual Smart).
- **Heater switch**: \[Control Devices\] Entity ID for heater switch, must be a toggle device. Becomes air conditioning switch when AC mode is enabled.
- **Temperature sensor**: \[Sensors\] Entity ID for temperature sensor that reflects the current temperature. The sensor state must be temperature.
- **Heat/Cool mode**: \[Control Settings\] Enable heat/cool mode with dual temperature control. When enabled, allows automatic switching between heating and cooling to maintain a comfortable temperature range.
- **Cold tolerance**: \[Temperature Settings\] Minimum temperature difference between sensor reading and target before turning on heating. For example, if target is 25°C and tolerance is 0.5°C, heater starts when sensor reaches 24.5°C or below (default: 0.3°C).
- **Hot tolerance**: \[Temperature Settings\] Minimum temperature difference between sensor reading and target before turning off heating or turning on cooling. For example, if target is 25°C and tolerance is 0.5°C, heater stops when sensor reaches 25.5°C or above (default: 0.3°C).
- **Minimum cycle duration**: \[Temperature Settings\] Minimum time the switch must stay in its current state before being switched. Prevents rapid on/off cycling and protects equipment.
- **Cold tolerance**: Minimum temperature difference between sensor reading and target before turning on heating. For example, if target is 25°C and tolerance is 0.5°C, heater starts when sensor reaches 24.5°C or below (default: 0.3°C).
- **Hot tolerance**: Minimum temperature difference between sensor reading and target before turning off heating. For example, if target is 25°C and tolerance is 0.5°C, heater stops when sensor reaches 25.5°C or above (default: 0.3°C).
- **Minimum cycle duration**: Minimum time the heater switch must stay in its current state before being switched. Prevents rapid on/off cycling and protects heating equipment (default: 300 seconds).

### Basic Configuration

- **Name**: \[Basic Information\] Name of the thermostat entity (default: Dual Smart).
- **Air conditioning switch**: \[Control Devices\] Entity ID for air conditioning switch, must be a toggle device. Used for cooling when temperature rises above target.
- **Temperature sensor**: \[Sensors\] Entity ID for temperature sensor that reflects the current temperature. The sensor state must be temperature.
- **Cold tolerance**: \[Temperature Settings\] Minimum temperature difference between sensor reading and target before turning on heating. For example, if target is 25°C and tolerance is 0.5°C, heater starts when sensor reaches 24.5°C or below (default: 0.3°C).
- **Hot tolerance**: \[Temperature Settings\] Minimum temperature difference between sensor reading and target before turning off heating or turning on cooling. For example, if target is 25°C and tolerance is 0.5°C, heater stops when sensor reaches 25.5°C or above (default: 0.3°C).
- **Minimum cycle duration**: \[Temperature Settings\] Minimum time the switch must stay in its current state before being switched. Prevents rapid on/off cycling and protects equipment.
- **Cold tolerance**: Minimum temperature difference between sensor reading and target before turning off cooling. For example, if target is 25°C and tolerance is 0.5°C, cooling stops when sensor reaches 24.5°C or below (default: 0.3°C).
- **Hot tolerance**: Minimum temperature difference between sensor reading and target before turning on cooling. For example, if target is 25°C and tolerance is 0.5°C, cooling starts when sensor reaches 25.5°C or above (default: 0.3°C).
- **Minimum cycle duration**: Minimum time the cooling switch must stay in its current state before being switched. Prevents rapid on/off cycling and protects cooling equipment (default: 300 seconds).
- **Keep alive interval**: Maximum time between updates for the target temperature sensor. Forces periodic switching to ensure the cooling device doesn't turn off unexpectedly (default: 300 seconds).

### Features Configuration

- **Configure fan settings**: Enable configuration of fan settings. This allows you to set up a separate fan entity that can run independently for air circulation.
- **Configure humidity control**: Enable configuration of humidity monitoring and control. This allows you to set up humidity sensors and dry mode operation.
- **Configure window/door sensors**: Enable configuration of window and door sensors so the thermostat can pause operation when openings are detected.
- **Configure temperature presets**: Enable configuration of temperature presets like Away, Comfort, and Eco for quick mode changes.
- **Configure floor heating protection**: Enable configuration of floor temperature protection. When enabled you can set a floor sensor and max/min limits to protect your flooring.

### Basic Configuration

- **Name**: \[Basic Information\] Name of the thermostat entity (default: Dual Smart).
- **Heater switch**: \[Control Devices\] Entity ID for heater switch, must be a toggle device. Used for heating when temperature falls below target.
- **Cooler switch**: \[Control Devices\] Entity ID for cooler/AC switch, must be a toggle device. Used for cooling when temperature rises above target. Can be the same as heater for heat pump systems.
- **Temperature sensor**: \[Sensors\] Entity ID for temperature sensor that reflects the current temperature. The sensor state must be temperature.
- **Heat/Cool mode**: \[Control Settings\] Enable heat/cool mode with dual temperature control. When enabled, allows automatic switching between heating and cooling to maintain a comfortable temperature range.
- **Cold tolerance**: \[Temperature Settings\] Minimum temperature difference between sensor reading and target before turning on heating. Creates a buffer zone to prevent frequent switching.
- **Hot tolerance**: \[Temperature Settings\] Minimum temperature difference between sensor reading and target before turning on cooling. Creates a buffer zone to prevent frequent switching.
- **Minimum cycle duration**: \[Temperature Settings\] Minimum time the switches must stay in their current state before being switched. Prevents rapid on/off cycling and protects equipment from damage.
- **Cold tolerance**: Minimum temperature difference between sensor reading and target before activating heating or deactivating cooling. For example, if target is 25°C and tolerance is 0.5°C, changes occur when sensor reaches 24.5°C or below (default: 0.3°C).
- **Hot tolerance**: Minimum temperature difference between sensor reading and target before activating cooling or deactivating heating. For example, if target is 25°C and tolerance is 0.5°C, changes occur when sensor reaches 25.5°C or above (default: 0.3°C).
- **Heat tolerance**: Mode-specific tolerance for heating operations. Overrides cold\_tolerance when in heating mode for finer control. When set, this value determines when heating activates instead of using cold\_tolerance (default: uses cold\_tolerance if not specified).
- **Cool tolerance**: Mode-specific tolerance for cooling operations. Overrides hot\_tolerance when in cooling mode for finer control. When set, this value determines when cooling activates instead of using hot\_tolerance (default: uses hot\_tolerance if not specified).
- **Minimum cycle duration**: Minimum time the system switch must stay in its current state before being switched. Prevents rapid on/off cycling and protects equipment (default: 300 seconds).

### Heat Pump Configuration

- **Name**: \[Basic Information\] Name of the thermostat entity (default: Dual Smart).
- **Heat pump switch**: \[Control Devices\] Entity ID for heat pump switch. Controls the heat pump unit for both heating and cooling. The same switch is used regardless of mode.
- **Temperature sensor**: \[Sensors\] Entity ID for temperature sensor that reflects the current temperature. The sensor state must be temperature.
- **Cooling state sensor**: \[Control Devices\] Entity ID for cooling state sensor (sensor, binary\_sensor, or input\_boolean). When 'on', the heat pump operates in cooling mode. When 'off', it operates in heating mode. This sensor determines which mode the heat pump uses. Can be a manual input\_boolean for control or an entity provided by your heat pump system.
- **Cold tolerance**: \[Temperature Settings\] Minimum temperature difference between sensor reading and target before switching heat pump to heating mode. For example, if target is 25°C and tolerance is 0.5°C, heating starts when sensor reaches 24.5°C or below (default: 0.3°C).
- **Hot tolerance**: \[Temperature Settings\] Minimum temperature difference between sensor reading and target before switching heat pump to cooling mode. For example, if target is 25°C and tolerance is 0.5°C, cooling starts when sensor reaches 25.5°C or above (default: 0.3°C).
- **Minimum cycle duration**: \[Temperature Settings\] Minimum time the heat pump must stay in its current state before being switched. Critical for heat pump protection as frequent switching can damage the compressor (default: 300 seconds).
- **Cold tolerance**: Minimum temperature difference between sensor reading and target before switching heat pump to heating mode. For example, if target is 25°C and tolerance is 0.5°C, heating starts when sensor reaches 24.5°C or below (default: 0.3°C).
- **Hot tolerance**: Minimum temperature difference between sensor reading and target before switching heat pump to cooling mode. For example, if target is 25°C and tolerance is 0.5°C, cooling starts when sensor reaches 25.5°C or above (default: 0.3°C).
- **Heat tolerance**: Mode-specific tolerance for heating operations. Overrides cold\_tolerance when in heating mode for finer control. When set, this value determines when heating activates instead of using cold\_tolerance (default: uses cold\_tolerance if not specified).
- **Cool tolerance**: Mode-specific tolerance for cooling operations. Overrides hot\_tolerance when in cooling mode for finer control. When set, this value determines when cooling activates instead of using hot\_tolerance (default: uses hot\_tolerance if not specified).
- **Minimum cycle duration**: Minimum time the heat pump must stay in its current state before being switched. Critical for heat pump protection as frequent switching can damage the compressor (default: 300 seconds).

### Basic Configuration

- **Name**: Name of the thermostat entity (default: Dual Smart).
- **Primary heater switch**: Entity ID for primary heater switch, must be a toggle device. This will be the first stage heater that operates most of the time.
- **Temperature sensor**: Entity ID for temperature sensor that reflects the current temperature. The sensor state must be temperature.
- **Cold tolerance**: Minimum temperature difference between sensor reading and target before turning on primary heating. For example, if target is 25°C and tolerance is 0.5°C, primary heater starts when sensor reaches 24.5°C or below (default: 0.3°C).
- **Hot tolerance**: Minimum temperature difference between sensor reading and target before turning off heating. For example, if target is 25°C and tolerance is 0.5°C, heater stops when sensor reaches 25.5°C or above (default: 0.3°C).
- **Minimum cycle duration**: Minimum time the primary heater must stay in its current state before being switched. Prevents rapid on/off cycling and protects equipment.

### Change the connection

- **System Type**: Select the system type. Keep the current type to modify settings, or choose a different type to start with a fresh configuration.

### After setup

- **Cold tolerance**: Minimum temperature difference below target before activating heating. Lower values make heating more responsive (default: 0.3°C).
- **Hot tolerance**: Minimum temperature difference above target before activating cooling. Lower values make cooling more responsive (default: 0.3°C).
- **Minimum temperature**: Minimum allowed temperature setting. Sets the lower bound for target temperature adjustments.
- **Maximum temperature**: Maximum allowed temperature setting. Sets the upper bound for target temperature adjustments.
- **Target temperature**: Default target temperature when no preset is active.
- **Temperature precision**: Temperature precision for display and control. Determines the decimal precision for temperature values (0.1, 0.5, or 1.0 degrees).
- **Temperature step**: Temperature step size for adjustments. Controls how much the target temperature changes with each adjustment.
- **Minimum cycle duration**: Minimum time equipment must run before switching off. Prevents rapid on/off cycling and protects equipment from damage (default: 5 minutes).
- **Keep alive interval**: Keep alive duration for periodic switching. Set this if your switch needs a heartbeat to keep it 'alive'.
- **Initial HVAC mode**: Initial HVAC mode when starting Home Assistant. Sets the default operation mode on startup.
- **Target temperature (high)**: Upper target temperature for dual-temperature systems (heat/cool mode).
- **Target temperature (low)**: Lower target temperature for dual-temperature systems (heat/cool mode).
- **Heat/Cool mode**: Enable heat/cool mode with dual temperature control. When enabled, allows automatic switching between heating and cooling to maintain a comfortable temperature range.
- **Heat tolerance**: Tolerance for heating operations. Overrides the legacy cold\_tolerance setting specifically for heating mode. When set, this value is used instead of cold\_tolerance to determine when heating activates (default: uses cold\_tolerance if not specified).
- **Cool tolerance**: Tolerance for cooling operations. Overrides the legacy hot\_tolerance setting specifically for cooling mode. When set, this value is used instead of hot\_tolerance to determine when cooling activates (default: uses hot\_tolerance if not specified).
- **Configure fan settings**: Enable configuration of fan settings. This allows you to set up a separate fan entity that can run independently for air circulation.
- **Configure humidity control**: Enable configuration of humidity monitoring and control. This allows you to set up humidity sensors and dry mode operation.
- **Configure window/door sensors**: Enable configuration of window and door sensors so the thermostat can pause operation when openings are detected.
- **Configure temperature presets**: Enable configuration of temperature presets like Away, Comfort, and Eco for quick mode changes.
- **Configure floor heating protection**: Enable configuration of floor temperature protection. When enabled you can set a floor sensor and max/min limits to protect your flooring.
- **Air conditioning switch**: Entity ID for air conditioning switch, must be a toggle device. Used for cooling when temperature rises above target.
- **Temperature sensor**: Entity ID for temperature sensor that reflects the current temperature. The sensor state must be temperature.
- **Temperature sensor**: Entity ID for temperature sensor that reflects the current temperature. The sensor state must be temperature.
- **Cold tolerance**: Minimum temperature difference between sensor reading and target before turning off cooling. For example, if target is 25°C and tolerance is 0.5°C, cooling stops when sensor reaches 24.5°C or below (default: 0.3°C).
- **Hot tolerance**: Minimum temperature difference between sensor reading and target before turning on cooling. For example, if target is 25°C and tolerance is 0.5°C, cooling starts when sensor reaches 25.5°C or above (default: 0.3°C).
- **Heat/Cool mode**: Enable heat/cool mode. The first stage heater 'heater' becomes cooling and the second stage 'heater\_2' becomes heating. Allows simultaneous heating and cooling control.
- **Minimum cycle duration**: Minimum time the cooling switch must stay in its current state before being switched. Prevents rapid on/off cycling and protects cooling equipment.
- **Cold tolerance**: Minimum temperature difference between sensor reading and target before activating heating or deactivating cooling. For example, if target is 25°C and tolerance is 0.5°C, changes occur when sensor reaches 24.5°C or below (default: 0.3°C).
- **Hot tolerance**: Minimum temperature difference between sensor reading and target before activating cooling or deactivating heating. For example, if target is 25°C and tolerance is 0.5°C, changes occur when sensor reaches 25.5°C or above (default: 0.3°C).
- **Minimum cycle duration**: Minimum time the system switch must stay in its current state before being switched. Prevents rapid on/off cycling and protects equipment (default: 300 seconds).
- **Secondary heater switch**: Entity ID for auxiliary/secondary heater switch. Provides additional heating capacity when needed.
- **Secondary heater timeout**: Time to wait before activating secondary heater after primary heater starts.
- **Dual mode operation**: Enable both primary and secondary heaters to work simultaneously when needed.
- **Floor temperature sensor**: Entity ID for floor temperature sensor. Monitors floor temperature for safety and control.
- **Maximum floor temperature**: Maximum allowed floor temperature for protection. Prevents damage to flooring materials. (Default: 28°C)
- **Minimum floor temperature**: Minimum floor temperature to maintain. Provides freeze protection for the floor heating system. (Default: 5°C)
- **Fan switch**: Entity ID for fan switch. Used to control air circulation and improve temperature distribution.
- **Fan mode**: Enable fan as a separate HVAC mode. Allows fan-only operation.
- **Fan with AC**: Automatically turn on fan when cooling (AC) is active. Improves cooling efficiency.
- **Fan with heater**: Automatically run the fan while the heater or heat pump is active. When off, the fan only runs in fan mode.
- **Fan air outside**: Enable outside air circulation when outside temperature is more favorable than inside temperature.
- **Fan hot tolerance**: Temperature range above target where fan is used instead of AC. Default: 0.5°C.
- **Fan tolerance toggle**: Optional entity ID for input\_boolean to toggle the fan\_hot\_tolerance feature on/off.
- **Humidity sensor**: Entity ID for humidity sensor. Enables humidity control features and humidity-based presets.
- **Dryer/Dehumidifier switch**: Entity ID for dryer/dehumidifier switch. Used to control dehumidification when humidity levels exceed targets.
- **Target humidity**: Target humidity level to maintain (percentage). Default humidity target when no preset is active.
- **Minimum humidity**: Minimum allowed humidity level (percentage). Humidity will be increased if it drops below this value.
- **Maximum humidity**: Maximum allowed humidity level (percentage). Humidity will be decreased if it rises above this value.
- **Dry tolerance**: Minimum humidity difference below target before activating humidification or deactivating dehumidification.
- **Moist tolerance**: Minimum humidity difference above target before activating dehumidification or deactivating humidification.
- **Away preset**: Energy-saving preset for when nobody is home. Typically set to lower temperatures to save energy.
- **Comfort preset**: Maximum comfort preset for optimal temperature control when comfort is the priority.
- **Eco preset**: Energy-efficient preset that balances comfort with energy savings.
- **Home preset**: Standard preset for daily activities when people are home and active.
- **Sleep preset**: Optimized for sleeping conditions, often set slightly cooler for better sleep quality.
- **Anti-freeze preset**: Minimum temperature preset to prevent freezing in unoccupied spaces or during extended absences.
- **Activity preset**: Higher temperature preset for periods of high activity or when extra warmth is needed.
- **Boost preset**: Quick heating preset for rapidly bringing temperature up to a higher level.

Texts from the code of [swingerman/ha-dual-smart-thermostat](https://github.com/swingerman/ha-dual-smart-thermostat).

## Actions

- **Set HVAC Action Reason**: Sets HVAC action reason.
  Fields: HVAC Action Reason

## From the README

> The dual\_smart\_thermostat is an enhanced version of generic thermostat implemented in Home Assistant.

From the README of [swingerman/ha-dual-smart-thermostat](https://github.com/swingerman/ha-dual-smart-thermostat#readme), [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html). Shortened.

## At a glance

- Kind: Marketplace integration
- Category: [Climate](https://vulpo.app/integrations/category/climate.md), Thermostats and heating
- Number: 615 installs sharing analytics; 239 GitHub stars
- Connection: Works locally
- Upkeep: Updated in the last 6 months
- Needs: Needs the Marketplace (HACS on 2026.10 and older)
- Latest version: v0.13.2, last updated October 23, 2026
- Domain: `dual_smart_thermostat`
- Source: <https://github.com/swingerman/ha-dual-smart-thermostat>
- Issues: <https://github.com/swingerman/ha-dual-smart-thermostat/issues>

In Vulpo: Climate card, Chart card, Apple Watch, Climate Live Activity (Pro)

[Widgets & Live Activities in Vulpo](https://vulpo.app/features/widgets-and-live-activities)

Independent directory, made by the developer of Vulpo. Not affiliated with Home Assistant or the Open Home Foundation. [About these numbers](https://vulpo.app/integrations/about)

Last updated 2026-10-23. Source: https://vulpo.app/integrations/marketplace/swingerman-ha-dual-smart-thermostat

---

- HTML version of this page: https://vulpo.app/integrations/marketplace/swingerman-ha-dual-smart-thermostat
- Site index for agents: https://vulpo.app/llms.txt
- Everything in one document: https://vulpo.app/llms-full.txt
- All pages: https://vulpo.app/sitemap.xml
