What's Changed
- Config Flow Redesign: Automatic port configuration based on TLS setting, new menu-based options flow with organized sections, and quick reconfigure flow for connection updates
- Improved Connection Monitoring: New central state machine with DEGRADED and RECOVERING states for better visibility into connection issues
- Faster Reconnection: Staged reconnection with TCP port checks recovers from CCU restarts in ~10 seconds instead of fixed 60-second delays
- Climate Schedule Support: Get and set weekly thermostat schedules with caching and validation, simplified schedule format
- OpenCCU Backup: New button entity and action for creating and downloading complete CCU system backups
- Device Management: Install mode support with countdown timers, device inbox for handling pending pairings, rename devices and channels via API
- Backend Detection: Automatic detection of CCU type (CCU3, RaspberryMatic, Homegear)
- Firmware Updates: Check for updates and trigger firmware installation on OpenCCU systems, improved firmware data refresh
- Better Error Handling: Exponential backoff retry strategy (2s→120s), login rate limiting, circuit breakers to prevent retry-storms
- Simplified Event System: Modern event architecture with 4 focused event types replacing 9 legacy events for better performance
- Enhanced Internationalization: Translatable exceptions and log messages, translations for button press events
- Improved Type Safety: Strict mypy mode enabled throughout codebase with protocol-based typing
- Memory & Performance: Automatic cleanup of event subscriptions, request coalescing for concurrent calls, resource limits to prevent unbounded growth
- Action Renaming: Climate schedule actions renamed for clarity (get_schedule_profile_weekday → get_schedule_weekday)
Bump aiohomematic to 2025.12.29
- Reliability & Reconnection
- Improved CCU reconnection: Staged reconnection with TCP port checks for faster recovery after CCU restart (10s initial + warmup vs fixed 60s delay)
- New central state machine: States now include DEGRADED (partial connectivity) and RECOVERING for better status visibility
- Circuit breakers: Prevent retry-storms during CCU outages; auto-reset after successful reconnect
- Exponential backoff: Smarter retry timing (2s→120s) reduces load during connection issues
- Device Management
- Install mode support: Per-interface install mode with countdown timer for HmIP-RF and BidCos-RF
- Device inbox handling: Accept/rename new devices pending pairing via accept_device_in_inbox()
- Device renaming: Rename devices and channels directly via rename_device() / rename_channel()
- Backup & Firmware
- CCU backup: Create and download system backups with descriptive filenames (hostname + version)
- Firmware updates: Check for updates and trigger firmware update on OpenCCU systems
- Firmware refresh fix: Device firmware data now properly updates after refresh calls
- Simplified Event System
- 4 focused integration events replace 9 legacy events:
- SystemStatusEvent: All infrastructure/lifecycle changes (connection, client, callback states)
- DeviceLifecycleEvent: Device creation, removal, availability changes
- DataPointsCreatedEvent: New entity discovery
- DeviceTriggerEvent: Button presses, sensor triggers
- 4 focused integration events replace 9 legacy events:
- CLI Enhancements
- New subcommand structure: list-devices, list-channels, device-info, get, set
- Interactive REPL mode: Command history and tab completion
- Shell completion: Generate scripts for bash, zsh, fish
- Architecture Improvements
- Protocol-based dependency injection: Components use minimal protocol interfaces
- Coordinator pattern: Direct access via central.device_coordinator, central.cache_coordinator, etc.
- DeviceProfileRegistry: Centralized device-to-profile mappings (117 device models)
- Handler classes: Client operations split into focused handlers (Backup, Firmware, Programs, etc.)
- Week Profile / Climate
- Schedule caching: Climate schedules cached for faster get/set operations
- Simple schedule format: Easier-to-use schedule representation for thermostats
- Memory & Performance
- Automatic EventBus cleanup: Subscriptions auto-removed when devices/data points removed
- Request coalescing: Deduplicates concurrent RPC calls during device discovery
- Resource limits: Collection size limits prevent unbounded memory growth
Full Changelog: 1.91.0b30...1.91.0b31