I have had a situation where I needed to control my floor heating and AC’s in several rooms and did not find a ready component that can handle them in one thermostat with one dual dial in the UI.
I’ve created a dual-mode smart thermostat in order to be able to control two separate devices (heater, cooler).
It’s based on the generic_thermostat
component making use of Home Assistant’s built-in climate component so no front end hack was done.
This component can run in three modes: heat_cool, heat, cool.
If you don’t set the cooler_id
it’s basically a generic thermostat, but if you set it the Lovelace card will support min and max temperatures.
https://github.com/swingerman/ha-dual-smart-thermostat
The thermostat can consume door/windows (openings) entities so until a door or windows is open the thermostat will go idle.
Hope it helps someone else too.
Example config
climate:
- platform: dual_smart_thermostat
name: Heat Cool Room
heater: switch.heater
cooler: switch.cooler
target_sensor: sensor.room_temp
openings: # <-- open door/window detection
- binary_sensor.window1
- binary_sensor.window2
min_temp: 15
max_temp: 28
max_floor_temp: 28 # <-- floor overheat protection
target_temp: 23
target_temp_high: 26
target_temp_low: 23
cold_tolerance: 0.3
hot_tolerance: 0
min_cycle_duration:
seconds: 5
keep_alive:
minutes: 3
initial_hvac_mode: "heat_cool"
away_temp: 16
precision: 0.1
Planned (smart) features:
-
optional floor temperature input and some logic based on it -> floor overheat protection
-
opening (window/door) sensor input and logic based on it
-
outside temperature sensor input and logic based on it
-
wind speed sensor input and logic based on it