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.
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.
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