Universal Thermostat is an advanced climate controller for Home Assistant that combines multiple heating and cooling devices into a single smart thermostat.
Built for real-world smart homes where different climate systems must work together seamlessly.
- 🔥 Combine multiple heaters and coolers into one thermostat
- 🎯 Advanced control: PID and PWM
- 🧠 Smart HVAC modes: auto, heat/cool
- 🪟 Window-aware logic with delays
- 🎛 Flexible preset system (eco, away, sleep, etc.)
- ⚙️ Easy setup via UI (config flow)
- 🧩 YAML support for advanced setups
- 🔄 Template support for dynamic configuration
Home Assistant does not provide a flexible way to combine multiple climate devices into a single thermostat.
This integration solves real-world tasks:
- combining floor heating + radiators + AC
- controlling multiple devices in one zone
- preventing heating/cooling when windows are open
- achieving precise temperature control using PID
- Install HACS if not installed yet
- Go to HACS → Integrations
- Open menu (⋮) → Custom repositories
- Add repository:
https://github.com/vaproloff/universalThermostat - Find Universal Thermostat and click Install
- Restart Home Assistant
- Copy folder:
/custom_components/universal_thermostatinto your Home Assistant config:<config_dir>/custom_components/universal_thermostatdirectory. - Restart Home Assistant
- Go to Settings → Devices & Services
- Click Add Integration
- Search for Universal Thermostat and choose it
- Complete basic setup:
- set friendly name
- choose temperature sensor
- Then go to integration entry options (⚙️), where you can
- configure heaters and/or coolers
- configure windows and presets
- configure settings
👉 No YAML required for basic usage
This integration supports two configuration methods:
- ✅ UI (recommended) – easy setup via Home Assistant interface
- ⚙️ YAML – for advanced configurations and full control
Most users should use the UI setup.
climate:
- platform: universal_thermostat
name: Living Room
target_sensor: sensor.room_temperature
heater:
- entity_id: switch.heater
cooler:
- entity_id: climate.ac- Combine floor heating + AC into one thermostat
- Control multiple heaters in large rooms
- Stop HVAC when windows are open
- Fine-tune temperature with PID control
- Use presets like eco / away / sleep
switch,input_boolean- basic toggling mode or PWM modeclimate- basic toggling mode or PID regulator modenumber,input_number– PID control (optionally withswitch)
👉 See full details: Advanced Configuration
Optionally link window sensors (or similar entities) to pause heating/cooling.
Features:
- multiple windows
- optional delays
- per-controller ignore option
👉 See configuration examples: Advanced Configuration
Flexible preset system (eco, away, sleep, etc.):
- temperature adjustments
- HVAC mode changes
- auto mode tuning
👉 See full configuration: Advanced Configuration
Supports:
heatcoolheat_coolauto
Behavior adapts automatically based on configured devices.
Learn how modes, target temperatures, and controllers behave: Behavior Guide
👉 Details: Advanced Configuration
Full YAML configuration with all options: 👉 See: docs/ADVANCED.md
If something doesn't work as expected, enable debug logs:
logger:
default: info
logs:
custom_components.universal_thermostat: debugThen reproduce the issue and check Home Assistant logs.
If you find a bug:
- Enable debug logs
- Reproduce issue
- Create GitHub issue with logs