better_thermostat GitHub Details, Stars and Alternatives | OpenRepoFinder
KartoffelToby / repository
better_thermostat
This custom component for Home Assistant will add crucial features to your climate-controlling TRV (Thermostatic Radiator Valves) to save you the work of creating automations to make it smart. It combines a room-temperature sensor, window/door sensors, weather forecasts, or an ambient temperature probe to decide when it should call for heat and automatically calibrate your TRVs to fix the imprecise measurements taken in the radiator's vicinity.
A transparent discovery signal based on current public GitHub metadata.
Recent activity35% weight
100
Community adoption25% weight
61
Maintenance state20% weight
85
License clarity10% weight
100
Project information10% weight
100
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Minimum required Home Assistant version: 2025.12
(continuously tested against Home Assistant)
Companion UI
We've created a companion UI element which can display more information than the default thermostat element in Home Assistant. Check it out via HACS: better-thermostat-ui-card
If you have a question or need help please create a new discussion or check if your question is already answered
If you have a suggestion, found a bug, or want to add a new device or function create a new issue
If you want to contribute to this project create a new pull request
Features
This integration brings some smartness to your connected radiator thermostats setup:
Uses a temperature sensor far away from the radiators to measure the real room temperature
Makes your TRVs fully compatible with Google Home
Let your windows disable your heating (avoid programming this via an automation)
Your weather forecast provider will turn your heat on/off
Or an outside air temperature sensor can do this as well
Does some valve maintenance automatically, to avoid them getting stuck closed over the summer
Group multiple TRVs to one (e.g. for a room with multiple radiators)
Enhance the default TRV Algorithm with some smartness to reduce energy consumption
Dynamic preset temperature learning & persistence (baseline/"no preset" remembers the last temperature you set and survives restarts)
Advanced Control Algorithms: Choose between MPC, PID, TPI, AI Time Based or simple target temperature matching for precise control.
Selectable Presets: Configure which preset modes are available for your thermostat during setup.
Advanced Control Algorithms
Better Thermostat now supports multiple advanced control strategies to optimize your heating:
MPC (Model Predictive Control): Uses a physical model of your room and radiator to predict future temperature changes and optimize valve opening.
PID Controller: A classic Proportional-Integral-Derivative controller that learns your room's characteristics to maintain a stable temperature. It features auto-tuning (currently in beta) to automatically find the best parameters (Kp, Ki, Kd) for your room.
TPI (Time Proportional Integral): A control method that cycles the valve on and off (or modulates it) to maintain a stable temperature, reducing overshoot.
AI Time Based: Uses a custom algorithm based on simple measurements and calculations (not actual AI) to calculate the required heating power and adjusts the TRV calibration to achieve it. This improves upon the standard TRV internal algorithm.
These modes can be selected in the advanced configuration of the device.
Preset Temperature Configuration
Preset temperatures are now fully configurable via dedicated number entities.
How it works:
During setup or configuration, you can select which Presets you want to enable for this thermostat.
For each enabled preset mode (e.g. Eco, Comfort, Sleep), a corresponding number entity is created (e.g., number.better_thermostat_preset_eco).
These entities are located in the Configuration category of the device.
You can adjust the temperature for each preset directly using these number sliders.
The values are automatically persisted across Home Assistant restarts.
Changing a preset temperature via the number entity immediately updates the thermostat if that preset is currently active.
Default starting values:
Away: 16.0 °C
Boost: 24.0 °C
Comfort: 21.0 °C
Eco: 19.0 °C
Home: 20.0 °C
Sleep: 18.0 °C
Activity: 22.0 °C
Which hardware do we support?
We support all thermostats which are compatible with Home Assistant as long as they are shown up as a climate entity.
Integrations that are tested
Zigbee2Mqtt
Deconz
Tado
generic_thermostat
How to setup
Install this integration via HACS or copy the files from the latest release