What's Changed
Bug Fixes
- Fix Translation Error on Duplicate CCU Configuration: Fixed "The intl string context variable 'serial' was not provided" error when attempting to add a CCU instance that is already configured. The abort message now correctly displays the serial number.
- Fix Unwanted Integration Reload on Action Select Change: Action select values (e.g., siren tones, light patterns) are now stored in a separate storage file instead of the config entry. Previously, changing an action select value triggered
async_update_entry()which caused a full integration reload via theupdate_listener. This fix eliminates unnecessary restarts when selecting different tones or patterns. Existing values are automatically migrated from config entry to the new storage file.
Internal
- Migrate to Capabilities Pattern: Updated all
supports_*properties to the new unified Capabilities pattern from aiohomematic. Static capabilities now usecapabilities.*(e.g.,capabilities.brightness,capabilities.open), while dynamic properties usehas_*(e.g.,has_hs_color,has_effects). This affects light, lock, siren, and MQTT entities. - Config Entry Version 13: Added migration to remove
action_select_valuesfrom config entry data. - Default Entity Descriptions for Update Entities: Added default descriptions with
UpdateDeviceClass.FIRMWAREforUPDATEandHUB_UPDATEdata point categories. - Interface Connectivity Binary Sensors: Added entity description rule with
BinarySensorDeviceClass.CONNECTIVITYfor the new hub-level interface connectivity sensors.
Bump aiohomematic to 2026.1.28
New Features
- Faster Connectivity Detection: Improved connection loss detection from ~240s to ~20s with new
ping_timeout(10s) andconnectivity_error_threshold(1). Devices are now marked unavailable immediately when client state changes to DISCONNECTED/FAILED. System health score now correctly shows 0% before connections are established. - Interface Connectivity Binary Sensors: New hub-level binary sensors showing per-interface connectivity status (HmIP-RF, BidCos-RF, etc.). Shows ON when connected and operational, OFF when disconnected or failed. Always available since its purpose is to show the connection state itself.