v3.5b1: Volume timing fixes, TTS cache improvements, diagnostics
Pre-release
Pre-release
Bug Fixes
Volume Restoration Timing
- Fixed volume being restored too early when using chime or normalize features
- Volume restoration now correctly waits for full playback duration
- Added platform-specific timing buffers (Sonos: 500ms, Cast: 700ms)
Chime Configuration
- Fixed chime settings not being applied from entity configuration
- Service now reads chime/normalize settings from TTS entity subentry config
Voice Change Bug
- Added
default_optionsproperty to TTS entity - Voice/model/speed changes in config now properly invalidate HA's TTS cache
New Features
Duration Metadata with Mutagen
- Added reliable MP3 metadata embedding using mutagen library
- Duration stored in ID3 TXXX:duration_ms tag
In-Memory Duration Cache
- Added MESSAGE_DURATIONS_KEY for fast duration lookups
- Shared cache across all TTS entities
Diagnostics Support
- New diagnostics.py for troubleshooting
- Exports config entry data (API key redacted)
Code Quality
- Fixed deprecated
asyncio.get_event_loop()calls - Fixed bare
except:clauses - Removed duplicate constant definitions
- Added type annotations