Ava 0.6.3 - Night after night
Ava 0.6.3 focuses on making wall-mounted devices more autonomous, reliable, and easier to control from Home Assistant.
Please note: Ava Pro is designed for reliable, continuous, long-term operation. You do not need to worry about refreshing the app, restarting its services, or rebooting your device to keep it working properly. The system includes automatic clock correction, health monitoring, and service recovery, allowing it to detect common interruptions and restore normal operation without manual action. When you change a supported setting or enable a feature, the update takes effect immediately; there is no need to return to the home screen or repeatedly restart anything. Ava Pro also handles typical network changes, background transitions, and temporary system resource issues automatically. Its internal safeguards are built specifically for unattended, always-on use, so the app remains responsive and stable over extended periods. In short, Ava Pro manages its own timing, state, and recovery in the background, giving you a dependable experience without routine restarts, repeated service resets, or unnecessary device reboots.
The following are screenshots from long-term operation, showing continuous operation for 7 days and 62 days respectively.
Furthermore, maintaining program operation for over 14 days and a 1GB running Webiew screensaver without crashing are key screenshots, highlighting the strict design differences of Ava Pro.
Smart Power-Saving AOD
Simple Clock and the Quick Entity Panel can now fade to a minimal black always-on display after a configurable delay. The first touch wakes the interface without accidentally activating a control.
Web Screensaver dimming is configured separately. Discrete entity changes, such as a light or door changing state, can wake the display, while continuously updating sensors will not repeatedly disturb it.
Rooted devices can optionally use Smart CPU Throttle while the display is dimmed, restoring normal performance immediately when activity resumes.
This is an application-level display mode, not hardware AOD. AMOLED devices benefit most.
Thanks to @TWINKLY09 for the request and testing in [#142](#142).
Root option: Ava Settings -> Power User -> Smart CPU Throttle
Paths: Ava Settings -> Interaction -> Information & Scenes -> Simple Clock -> Appearance & Status
Ava Settings -> Screensaver -> Behavior & Wake
Ava Settings -> Interaction -> Quick Entity Control
Screensaver and Browser Control
The screensaver idle timeout is now exposed to Home Assistant as a number entity.
The screensaver switch now synchronizes in both directions. Turning it on starts the screensaver, while turning it off closes the current screensaver without disabling future automatic activation.
Browser settings now include Keep Screen On. It prevents Android from sleeping only while the browser is visible and releases the wake lock immediately after leaving the browser. It does not modify the device-wide screen timeout.
Thanks to @lone-baggie for [#146](#146), and to @xxtraPickles for reporting the missing browser control in [Discussion #149](#149) and [#151](#151).
Path: Ava Settings -> Browser -> Keep Screen On
Music Overlay Control from Home Assistant
Home Assistant can now display or hide Ava's expanded music overlay through a dedicated switch. The switch and the current expanded state remain synchronized in both directions.
Turning the entity on opens the expanded player. Turning it off collapses to the mini player when appropriate, or hides the overlay while preserving the current media session and metadata.
Only the expanded player is reported as active. The mini floating button does not leave the Home Assistant switch incorrectly enabled.
Thanks to @lone-baggie for the request in [#144](#144).
Path: Ava Settings -> Interaction -> Media Player -> Show in Home Assistant
Android Broadcast Intents
Ava's Home Assistant launch-intent control now supports Android broadcast intents.
You can use Home Assistant Companion-style intent fields or the simpler broadcast:ACTION_NAME format. Ordinary broadcasts do not require root or Shizuku, although Android still enforces protected broadcast permissions.
Thanks to @pantherale0 for [#143](#143).
Path: Ava Settings -> Interaction -> Android Intent Control
Voice Input and TTS Recovery
Ava no longer assumes that Home Assistant always uses port 8123, adding compatibility with the randomized and custom ports introduced in the latest Home Assistant 2026.8 beta. Ava learns the active port from addresses reported by Home Assistant, while legacy devices that do not provide updated port information continue to use 8123 as a compatibility fallback.
microWakeWord now performs a second offline verification before accepting a wake-word detection, reducing false activations in noisy environments.
Voice input also includes active health detection. On affected devices, Ava tests available microphone profiles, sources, and channel layouts during startup. If the selected source remains silent or produces invalid downmixed audio, Ava can rebuild the recording pipeline with a healthier configuration.
This improves microphone recovery on Portal+ Gen 1 devices reported in [#140](#140). Some Meta/Qualcomm audio HAL, privileged recording permission, and SELinux combinations may still depend on the installed ROM and require further device testing.
TTS playback has been comprehensively rebuilt across both classic and streaming modes. Long responses are no longer terminated by a fixed 20-second timeout. Ava now follows actual playback progress, uses duration information when available, and distinguishes active playback, rebuffering, network failure, and a genuinely stalled stream.
If streaming PCM provides no usable audio, stops unexpectedly, or misses an upstream completion event, Ava can recover through URL playback without playing both sources. Failed starts, prolonged buffering, audio-focus loss, and missing stream-end events are handled independently, allowing voice sessions to finish cleanly and media playback to resume normally.
A stale playback callback could previously terminate the next voice session immediately after a progressive TTS response. Playback state is now fully detached between sessions, fixing intermittent first-wake and follow-up wake failures. Testing confirms that long progressive responses can play beyond 20 seconds, finish correctly, and accept the next wake immediately.
Home Assistant installations serving TTS directly over HTTPS can now enable Use original TTS URL. Ava plays the address returned by Home Assistant instead of rewriting it to LAN HTTP, preventing the silent address timeout reported in [#152](#152). This option is disabled by default, leaving existing LAN configurations unchanged.
Thanks to @meiser79 for the detailed wake-word reports and testing in [#116](#116), and to @pantherale0 and @lone-baggie for continuing to provide Portal device logs and validation in [#140](#140).
Thanks to @bouracho for the HTTPS TTS logs in [#152](#152), to @lone-baggie for [#145](#145), and to @alexreddy78 for the original streaming TTS report in [#89](#89).
Path: Ava Settings -> Voice Replies -> Maintenance -> Use original TTS URL
Bluetooth Proxy Self-Recovery
The Bluetooth proxy now monitors for stale scanning and automatically attempts a controlled soft restart.
On rooted or Shizuku-enabled devices, Ava can perform deeper recovery when the Android Bluetooth stack becomes unresponsive. Recovery avoids interrupting active GATT connections, temporarily pauses conflicting BLE advertising when necessary, and is cancelled immediately when the Bluetooth master switch is disabled.
Ava also checks whether the system Bluetooth radio is disabled. Root, Shizuku, and device-owner installations can restore it silently; standard installations receive the normal Android confirmation prompt.
Thanks to @deergitseason for the continued testing in [#148](#148).
Floating Interface Reliability
The music mini button no longer prevents the screensaver from starting.
A cold-start floating button will not appear over an already visible screensaver, while the expanded player correctly remains in the foreground during active use.
Stopping Ava's master service now closes its floating interfaces consistently. Service restarts preserve passive overlays where appropriate instead of unexpectedly removing them.
This release also improves stuck back-button states, duplicate overlays, fade transitions, and window restoration.
AirPlay 1.0.63 and DLNA 1.5.9 add display-scale controls for better rendering across different screen sizes and densities.
Multi-Device Backup Identity
Backup and restore no longer copies the device name or generated MAC identity between installations.
Older backup files containing these fields remain compatible, but Ava ignores the identity values during import. This prevents restored devices from creating duplicate Home Assistant identities or receiving unnecessary numeric suffixes.
Thanks to @inventor7777 for reporting the problem in [#147](#147).
Remaining Display Limitation
Independent control of the Android status bar and navigation bar is not included in this release. These elements are still managed together because reliable separation varies significantly across Android versions and vendor ROMs.