Breaking Changes:
- No support for BT UI Card < 3.0
- Eco Mode Services Removed, we use Presets for all kind of modes, inc. Eco mode.
Main Changes:
WIP This is not the complete list, there are more changes.
-
New Features
- Added configurable preset temperatures (eco, away, boost, comfort, home, sleep, activity).
- Introduced advanced calibration algorithms: MPC Predictive, PID Controller, TPI Controller.
- New number entities for PID parameter tuning per TRV.
- New switches for PID auto-tune and child-lock control.
- Added sensor entities for external temperature filtering, heating power, heat loss, and algorithm diagnostics.
- New services: run valve maintenance and reset PID learnings.
- TRV "ignore_trv_states" option to prevent unwanted state adoption.
-
Improvements
- Dynamic algorithm-aware sensors that auto-create and clean up related entities.
- Safer, more robust device handling, reduced redundant commands, and improved boost/safety valve behavior.
- README/docs and UI text streamlined.
- Improved robustness in None-state handling across adapters.
- Enhanced temperature filtering with exponential moving average.
- Better calibration offset handling for SELECT and NUMBER entities.
-
Bug Fixes
- Aggressive calibration now skips inappropriate tolerance adjustments; improved calibration value parsing.
- Use language-independent identifiers to find the releated entities to prevent erros in missing controls valve / offset / etc.
-
Chores
- Switched from Black/Flake8 to Ruff for code linting and formatting.
- Updated minimum Home Assistant version to 2024.12.0.
- Added comprehensive test coverage and updated translations.
Changelog
- [EL] Create el.json added Greek Translation by @apo-mak in #1618
- add "temperatur_offset" as a possible offset entity by @DavidBadura in #1623
- Feature/refactor by @wtom in #1662
- Add configurable preset temperatures for comprehensive scheduler-card integration by @Copilot in #1639
- Fix infinite loop and prevent control operations when TRV becomes unavailable by @Copilot in #1666
- Fix infinite wait loop on startup by zeroing out local_temperature_calibration when unavailable by @Copilot in #1665
- Fix KeyError: 'advanced' when adding new devices in v1.7.1beta3 by @Copilot in #1669
- Fix/hvac mode by @wtom in #1670
- refactor by @wtom in #1686
- Add Italian translations for Better Thermostat by @echopage1964 in #1689
- Use new Weather API as the old one has been removed by @Skyslycer in #1682
- Add retries to delegate.py by @imbaczek in #1619
- Implement HVAC mode tolerance handling by @tasomaniac in #1711
- [TASK] implement eco mode and fix some main code by @KartoffelToby in #1721
- Fix ECO mode using separate saved temperature variable to avoid conflicts by @Copilot in #1722
- Fix sets option flow config_entry explicitly, which is deprecated in 2025.12 by @KartoffelToby in #1726
- MPC calibration mode by @wtom in #1727
- Feature/tpi by @wtom in #1751
- pi_heating_demand valve control by @wtom in #1741
- Add Turkish translation support by @muminkoykiran in #1743
- Fix crash when calibration offset is unknown or invalid by @carlosbaraza in #1738
- Preset Modes by @KartoffelToby in #1732
- bugfixes by @wtom in #1757
- Feature/mpc tuning by @wtom in #1759
- Feature/mpc tuning2 by @wtom in #1769
- Fix AI Time Based mode broken by unbounded heating_power learning by @Copilot in #1763
- feat: Add degraded mode for unavailable optional sensors by @cl445 in #1764
- general bugfix by @wtom in #1775
- mpc tuning by @wtom in #1776
- Fix NoneType errors in calibration initialization and control_queue task cleanup by @Copilot in #1778
- allow to run mpc and tpi compute while window open by @wtom in #1779
- config_flow bugfixes, sensors and input numbers for PID, eco temperat… by @wtom in #1780
- Fix climate.set_temperature not working when thermostat is OFF by @Copilot in #1782
- Improve algorithm descriptions: user-friendly UI text and comprehensive documentation by @Copilot in #1786
- Remove front matter from algorithms.md by @wtom in #1787
- mpc penalties by @wtom in #1788
- mpc eco penalty by @wtom in #1793
- Update sk.json by @misa1515 in #1783
- Fix NoneType AttributeError when entities are unavailable by @cl445 in #1800
- Fix apply_pid_defaults in reset_learned_pid_state service by @cl445 in #1799
- Remove unused imports and variables by @cl445 in #1797
- Fix type errors and incorrect API usage by @cl445 in #1796
- Fix preset modes not available when config has empty list by @cl445 in #1815
- Add minimum Home Assistant version to manifest by @cl445 in #1807
- Fix wrong battery entity selected for grouped window sensors by @cl445 in #1816
- Fix grouped TRV calibration not updating all TRVs by @cl445 in #1814
- Fix infinite loop when TRV is unavailable by @cl445 in #1813
- Fix wrong model detection from Z2M by @cl445 in #1806
- fix: preserve temperature precision in convert_to_float by @cl445 in #1805
- Fix cooler entity min/max temp not considered in range calculation by @cl445 in #1810
- Fix TRV staying at min temp after window closes by @cl445 in #1808
- mpc eco penalty by @wtom in #1821
- Valve Based Calibration Type and Config flow improve by @KartoffelToby in #1795
- chore: migrate from black/flake8/pyupgrade to ruff by @cl445 in #1801
- chore: fix all ruff linter errors by @cl445 in #1804
- fix: apply system_mode logic in fallback mode by @cl445 in #1809
- Quickfix: revert unsupported homeassistant key in manifest.json by @cl445 in #1822
- Fix PID tests and add Hold-Time tests by @cl445 in #1824
- Reduce outdoor sensor warning noise during startup by @cl445 in #1826
- Add off_temperature attribute to climate entity with test coverage by @Copilot in #1843
- TRVZB by @wtom in #1861
- mpc loss by @wtom in #1877
- small fixes by @wtom in #1889
- fix: ignore TRV target temp changes during active communication by @cl445 in #1882
- fix: change HEAT to HEAT_MODE if not in available modes by @alawresz in #1880
- fix: don't update cooler state if no change is needed by @alawresz in #1879
- fix: translate HEAT_COOL mode on TRVs when AC entity is connected by @alawresz in #1878
- Fix issue with translated entities use translation_key by @KartoffelToby in #1896
- feature/dynamic entity cleanup by @KartoffelToby in #1897
- Fix aggressive calibration not applied in hysteresis band by @cl445 in #1823
- fix: implement HA best practices for MPC sensor availability by @florianmulatz in #1899
- fix: Prevent complex number crash in heating_power_valve_position by @cl445 in #1870
- fix: Add boost mode support for available TRVs by @cl445 in #1873
- fix: Handle TypeError in check_float for None and invalid types by @cl445 in #1869
New Contributors
- @apo-mak made their first contribution in #1618
- @DavidBadura made their first contribution in #1623
- @Copilot made their first contribution in #1639
- @echopage1964 made their first contribution in #1689
- @Skyslycer made their first contribution in #1682
- @imbaczek made their first contribution in #1619
- @muminkoykiran made their first contribution in #1743
- @carlosbaraza made their first contribution in #1738
- @cl445 made their first contribution in #1764
- @alawresz made their first contribution in #1880
- @florianmulatz made their first contribution in #1899
Full Changelog: 1.7.0...1.8.0-Beta-10