🚀 New Features
-
Derivative Low-Pass EMA Filter: Added a First-Order Low-Pass Exponential Moving Average (EMA) filter (
derivative_filter) to smooth out sensor noise and quantization steps on the derivative term ($D$), preventing output spikes on high-frequency sensors (closes #67, #180).- Configurable via YAML and Config Flow UI (duration selector).
- Includes new service
smart_thermostat.set_derivative_filterfor dynamic adjustment.
-
Improved Hysteresis Mode (
#328): Refactored PID and hysteresis logic so that settingpid_mode: offcompletely bypasses PID calculations and outdoor compensation ($K_e$), enforcing pure hysteresis bounds (hot_tolerance/cold_tolerance).
🐛 Bug Fixes & Stability Improvements
- Startup Watchdog Fix (
#220): Fixedsensor_stallwatchdog so it correctly triggers safety mode (output_safety) even if the temperature sensor isunavailableorunknownright from Home Assistant startup. - Startup Stability (#343): Ignore control loops and output calculations until Home Assistant has fully started to prevent unwanted trigger spikes or invalid initial states on boot. (@jandado in #343)
- Cycle Duration Enforcement (#337): Enforce
min_cycle_durationon refreshes and at startup to strictly respect minimum cycle times (closes #316). (@jandado in #337) - Actuator Command Fallback (#342): Fall back to generic
homeassistantservices for ON/OFF commands when domain-specific services are unavailable. (@jandado in #342)
🌐 Translations & Docs
- Updated localization files (
fr.json,it.json,de.json) with new UI option strings and data descriptions. - Added detailed documentation and sensor tuning guidelines for
derivative_filterinREADME.md.
Full Changelog: 2026.11.0...2026.11.1