Skip to content

2026.05.20

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 May 17:34
· 345 commits to main since this release

Reboot before updating

Due to some internal changes, HACS may need to be reloaded in order to find manifest.json.
Simply reload/reboot Home Assistant and you should be able to install the latest version.

Issue #614 has been created to ask for help.

Change log 2026.05.20

@kiall fixed the firmware update text. Nice to see new people jump in and help fix things.

@siedi added the option to change the IP address in the integration's configurations. Nice quality of life improvement.

@rhammen added continues thermal disinfection to the list of options. Check the manual if this is something you want to use and share your findings on the forum or add it to the documentation of this repository.
@rhammen made some small changes to the efficiency pump variables. Keep an eye on it if you are using this entity in an automation.

@svasek made a HUGE set of code quality improvement to bring the integration up to par with the latest home assistant standard and best practices. Everything has been carefully reviewed and tested, but we should still keep an eye out for bugs.

The release now ships as a zip archive. This allows HACS to count the number of downloads. Don't be alarmed by the low number. It's not a new integration. We just started counting as of today.

What's Changed

  • Fix Firmware Update Text by @kiall in #533

  • Add Changelog to Update notice by @kiall in #535

  • refactor: ♻️ apply pyupgrade modernization by @svasek in #549

  • fix(coordinator): 🐛 preserve exception chain with raise from by @svasek in #550

  • refactor: ♻️ simplify code patterns by @svasek in #551

  • style(ruff): 🎨 apply ruff format and clean up unused imports by @svasek in #553

  • style: 🎨 fix ruff format regressions from merge commits by @svasek in #556

  • fix #539: allow IP change via options dialog and auto-discovery by @siedi in #540

  • fix: 🐛 fix shared mutable class attributes and NoneType crashes by @svasek in #562

  • fix(water_heater): 🐛 fix max_temp returning None when key does not exist by @svasek in #564

  • fix: 🐛 fix service double-registration on multiple config entries by @svasek in #565

  • fix: 🩹 use HA aiohttp session and replace deprecated async_timeout by @svasek in #567

  • fix(select): 🐛 import ENTITY_ID_FORMAT from correct module by @svasek in #563

  • fix: 🩹 remove ConfigEntryNotReady from platform setup functions by @svasek in #568

  • fix: 🩹 update FlowResult to ConfigFlowResult and aiohttp timeout type by @svasek in #575

  • fix: 🩹 import EntityCategory from homeassistant.const by @svasek in #576

  • fix: 🐛 add None guards to prevent runtime crashes by @svasek in #580

  • fix(model): 🩹 align dataclass frozen status with HA EntityDescription by @svasek in #582

  • chore(translations): 🌱 add missing Czech translation keys by @svasek in #572

  • fix: 🔒️ add parameter validation to SERVICE_WRITE by @svasek in #566

  • fix: 🩹 reduce missing Luxtronik key log level from warning to debug by @svasek in #573

  • fix(base): 🐛 align _handle_coordinator_update base signature with overrides by @svasek in #579

  • fix(lux_overrides): 🐛 Isolate library instance data for multi-hub support by @svasek in #585

  • fix(number): 🏷️ use NumberDeviceClass instead of SensorDeviceClass by @svasek in #586

  • refactor(evu): ♻️ replace heterogeneous cache dict with typed attributes by @svasek in #587

  • fix(coordinator): 🏷️ add type safety and None guards by @svasek in #588

  • fix(lux_helper): 🏷️ add socket None guards and fix unbound variable by @svasek in #589

  • refactor: ♻️ migrate to entry.runtime_data for config entry data by @svasek in #570

  • fix(config_flow, init): 🏷️ fix type errors and remove invalid await by @svasek in #590

  • fix(typing): 🛡️ add type safety guards and narrow types by @svasek in #593

  • fix(misc): 🏷️ add generic type args and fix parameter types by @svasek in #591

  • Change efficiency pump variable to percentage iso Volt by @rhammen in #601

  • fix(select): 🐛 add migration to fix duplicate select entities by @svasek in #600

  • docs: 📝 add copilot-instructions for AI-assisted contributions by @svasek in #597

  • ci: 👷 add ruff auto-fix job to linter workflow by @svasek in #602

  • refactor: ♻️ rename integration folder to match domain by @svasek in #598

  • fix(typing): 🏷️ resolve final basedpyright errors and add CI type-check workflow by @svasek in #596

  • test: ✅ add comprehensive test suite with 100% coverage by @svasek in #604

  • Add "Continuous" Thermal Desinfection option by @rhammen in #607

  • fix(translations): 🐛 remove unsupported placeholders from state translations by @svasek in #616

New Contributors

Full Changelog: 2026.3.5-beta...2026.05.20