Skip to content

v0.11.3 - HA 2026 Support & Reliability Improvements

Choose a tag to compare

@swingerman swingerman released this 21 Apr 15:03
c274a54

🎉 What's New in v0.11.3

This release brings Dual Smart Thermostat to Home Assistant 2026.3.2 on Python 3.14, and delivers a broad set of reliability fixes covering heat pump startup, heat/cool range mode, fan control, template presets, humidity persistence, and Fahrenheit support. If you've hit a "this worked yesterday" moment on any of these, this release is for you.


⚠️ Breaking Changes

🐍 Home Assistant 2026.3.2 + Python 3.14 Required

The integration now targets modern HA and Python versions.

  • Minimum Home Assistant: 2026.3.2 (up from 2025.1.0)

  • Python: 3.14 (up from 3.13)

  • If you're on HA 2025.x, stay on v0.11.2 until you upgrade HA

  • Details: #560


✨ New Features

🧪 Template-Aware Preset Temperatures

Presets can use templates for target_temp, target_temp_low, target_temp_high, and target_humidity.

Templates are evaluated every time the preset is activated, so you can drive presets from input_number helpers, schedules, seasonal logic, or any other dynamic source.

away:
  target_temp: "{{ states('input_number.away_temp') }}"
  target_temp_low: "{{ 16 if is_state('sensor.season', 'winter') else 20 }}"

🐛 Bug Fixes

🔧 Target Humidity Now Survives Restarts

Previously the target humidity always snapped back to 50% after restarting Home Assistant, even if you'd set it to something else. It now restores properly from the saved state — just like target temperature has always done.

🔧 Heat Pump Now Respects initial_hvac_mode

Heat pump setups were ignoring initial_hvac_mode and always starting in OFF, because the HEAT and COOL modes weren't registered yet when the initial mode was applied. Now the initial mode is applied after modes are set up, so the thermostat comes online in the state you configured.

🔧 Tolerance Now Respected in Heat/Cool Range Mode

In HEAT_COOL range mode, the heater was turning off at exactly target_temp_low and the cooler at exactly target_temp_high — completely ignoring hot_tolerance and cold_tolerance. This caused rapid short cycling. Tolerance is now honored on both the turn-on and turn-off sides.

Example: With target_temp_low: 20 and hot_tolerance: 0.5, the heater now stays on until 20.5°C instead of cutting out at 20°C.

🔧 No More Phantom Turn-Offs in Heat/Cool Mode

Fixed a regression where idle switches in heat_cool mode would receive spurious turn_off commands, immediately cancelling the mode that had just been activated. This especially affected setups using two virtual switches (one for heat, one for cool) controlling a single physical AC unit.

🔧 Fahrenheit Tolerance Input Works Again

Fahrenheit users couldn't enter round tolerance values like 1.0°F or 0.5°F in the Configure dialog, because the step size was stuck at 0.09°F. Tolerance fields now use delta scaling (not absolute temperature conversion) and accept the values you'd expect.

🔧 Fan Hot Tolerance Validation

Setting fan_hot_tolerance: 0 used to silently break fan control — it created a zero-width band that meant the fan could never trigger. The value 0 is now rejected with a clear error. Additionally, a warning is now logged if fan_hot_tolerance is configured without a cooler entity or ac_mode: true, since the feature can't work without one.

🔧 Template Presets No Longer Log Deprecation Warning

Fixed a deprecation warning — "Detected that custom integration 'dual_smart_thermostat' creates a template object without passing hass" — that would have become a hard error in HA 2025.10. Preset template validation now uses HA's sanctioned validator which properly passes the event loop context.

📖 Corrected Preset Examples in Docs

YAML examples showing floor-temperature limits in presets used invalid flat keys (away_max_floor_temp). The correct nested format is now documented.


📊 By the Numbers

  • 1 new feature — template-aware preset temperatures
  • 8 bug fixes — humidity restore, heat pump init, heat/cool tolerance, phantom turn-off, Fahrenheit input, fan validation, template deprecation, preset docs
  • 1 platform upgrade — Home Assistant 2026.3.2 + Python 3.14
  • 1,376 tests — all passing
  • Configuration compatible — no config changes required for existing setups

🔄 Migration Guide

Upgrade your Home Assistant first.

  1. Make sure you're running Home Assistant 2026.3.2 or newer before updating this integration. Users still on HA 2025.x should stay on v0.11.2.
  2. Update the integration via HACS (or pull the latest).
  3. Restart Home Assistant.

Existing configurations work as-is — no YAML or config entry changes needed.

If you were previously hitting any of the bugs above (humidity snapping back to 50%, heat pump starting in OFF, Fahrenheit tolerance errors, phantom AC turn-offs, fan not triggering), they'll simply start working correctly after the upgrade.


💝 Support This Project

If this integration makes your home smarter and more comfortable, consider supporting development:

Donate
coffee

Your support helps maintain this integration and develop new features! ☕️


Full Changelog: v0.11.2...v0.11.3


💙 Enjoying this integration? Help others discover it:

  • ⭐ Star the repository
  • 🐛 Report issues you encounter
  • 💬 Share your success stories
  • 📣 Recommend to the Home Assistant community