github knoop7/Ava-Pro 0.6.4

latest releases: 0.7.6, 0.7.5, 0.7.4...
one month ago
0 6 4

Ava - Dawn +

rethinks both sides of a wall panel: what it shows while resting and how its screen can be used while active. The new Dawn magazine screensaver combines changing artwork with Home Assistant weather and entity states. The browser's new dual-WebView layout then turns one display into two simultaneous, independently focused web workspaces, with an adjustable split for dashboards, controls, charts, cameras, and everyday information.

The new Software Update center also brings release notes, version selection, downloads, and installation together on the device. Guided voice-satellite setup, delayed core-service startup, echo cancellation, Sendspin synchronization, Bluetooth recovery, lyrics, media overlays, compact displays, and translations all receive targeted improvements.

Dawn · Magazine Screensaver

The former Xiaomi-style screensaver has been rebuilt as Dawn · Magazine Screensaver. It presents a rotating wallpaper with the current time, date, and a short quote, then adapts the rest of the composition to the information that is available and to the screen orientation.

Dawn was designed around a different idea from a conventional smart-home dashboard. A wall panel spends much of its life being seen from across a room, when a dense grid of controls is neither inviting nor easy to read. Dawn therefore treats the idle screen like a new magazine page at the start of the day: the image and typography establish the atmosphere, while time, weather, and a few chosen Home Assistant states remain glanceable without taking over the composition. The result is intended to feel calm enough to leave on, personal enough not to become another static clock, and still useful before anyone touches the screen.

Dawn 1 Dawn 2
Dawn layout 1 Dawn layout 2
Dawn 3 Dawn 4
Dawn layout 3 Dawn layout 4
Dawn 5
Dawn layout 5

Up to four Home Assistant entity slots can be configured. Sensors, binary sensors, lights, and switches appear as compact status capsules with icons inferred from their entity type and name. A weather entity is treated specially: instead of becoming another capsule, it supplies a forecast strip along the bottom when forecast data is available. Dawn automatically selects a corner, centered, or dashboard layout according to the weather data, status capsules, and portrait or landscape space.

The wallpaper source is configurable. It can point to a JSON API or to an address that directly returns a random image; leaving it empty uses Ava's default source. Images are preloaded before a transition, and the last successful content can be replayed from cache during startup or a temporary network outage. Compatibility handling for older Android WebView versions and an initial Home Assistant data push keep the page useful on the older wall panels that Ava commonly supports.

Path: Ava Settings -> Screensaver -> Magazine & Content

Dual Pages in the Browser

The browser's major new capability in 0.6.4 is Dual Pages. Instead of treating a large display as one oversized phone page, Ava can turn it into two live web surfaces that remain visible and usable at the same time. They sit side by side in landscape and stack vertically in portrait. This is not a tab switcher or a static preview: both System WebViews stay present, and either one can become the active working page with a tap.

The size of the two panes can be adjusted rather than being locked to a half-screen layout. The default is 5:5, while independent weights from 1 to 9 let one page become the primary workspace and the other a narrow companion. A wall tablet can therefore use equal dashboards when both matter, a wide control panel beside a slim status column, or a large chart with a smaller set of actions without rebuilding either website.

The existing Home Assistant browser URL entity continues to control the left or upper page, preserving current automations. A second entity controls the right or lower page. Tapping either page gives it focus, after which URL editing, refresh, cache cleanup, and Web Console actions apply to that page. Console messages carry [L] or [R] markers, while settings such as page scale, text size, and User Agent refresh both pages when necessary.

This opens up combinations that previously required a second display or constant navigation:

  • Two Home Assistant dashboards: keep a whole-home overview on one side and a room-specific dashboard on the other. For example, lights and climate can remain beside energy, security, or family status, with each dashboard retaining the layout built for its job.
  • Live context beside controls: place a camera, doorbell, solar-production chart, music interface, or device diagnostics next to the Home Assistant controls that act on it. The larger pane can follow whichever side needs attention, while the companion page remains visible.
  • A shared information display: combine a household dashboard or calendar with a stock-market page, news feed, transit board, weather radar, or another web service. Ava is only hosting the pages, so existing authenticated web tools and purpose-built dashboards can be paired without Ava needing a separate integration for each source.

Each pane has its own pull-to-refresh path, and page-specific tools follow the pane currently in focus. This keeps the two-page layout practical for interaction and troubleshooting, not just passive viewing. The release also connects the existing Allow scrolling preference to the browser input path so disabling it now takes effect as configured.

Dual Pages is available for System WebView and is hidden while the Gecko engine is selected.

Path: Ava Settings -> Browser -> Page Display -> Dual Pages

Software Update Center

A new Software Update page brings the complete update flow into Device Services. It shows the installed version, loads the full GitHub release notes, and lists every published Ava release that includes an APK. The latest version can be updated or reinstalled, and an older release can be selected manually when troubleshooting requires it.

Download, verification, installation, and their progress are handled as one continuous task. Automatic updates, checks at startup, the Home Assistant update entity, and reopening Ava after an update are enabled by default. Starting Ava's core services after installation remains optional and is disabled by default. Ignore Updates and Auto Update are mutually exclusive so that the device cannot be configured to both install and ignore the same release.

Ava can use its built-in downloader or the Android system downloader. Android may still show its normal installation confirmation when Root, Shizuku, or Device Owner privileges are unavailable. Android also prevents installing an older version over a newer one; to downgrade in that case, export the Ava configuration, uninstall the current version, install the older APK, and import the configuration again.

Thanks to @realroywalker for requesting improved update controls in #156.

Path: Ava Settings -> Device Services -> Software Update

Core Service Startup Controls

The new Start Core Service on App Open option is designed for panels where Ava may be opened manually, by a launcher, or by another automation while its voice service is not yet running. When enabled, Ava displays a full-screen circular countdown and starts the core service when it reaches zero. The delay can be adjusted from 3 to 30 seconds, with 7 seconds as the default, allowing the Android system and device hardware time to settle before microphone, Bluetooth, and Home Assistant components start. The countdown scales to the screen and uses a deep veil so it remains readable on phones, square panels, and large displays.

This option is off by default and remains separate from Auto Restart. The boot-start card now includes a usage guide covering system auto-start and background permissions, battery optimization, the non-Root boot-broadcast path, Shizuku assistance for vendor background limits, Accessibility fallback on difficult devices, and the additional Magisk boot script available with Root.

Path: Ava Settings -> Device Services -> Auto Restart

Better Lyrics Matching and Synchronization

LRCLIB is now Ava's primary lyrics source. A request that times out after five seconds, returns no useful result, or fails validation automatically falls back to QQ Music; the QQ Music path also performs one short retry when needed.

Matching now considers track duration and multiple artists more carefully, reducing cases where a different recording with the same title supplies the lyrics. Known spoken-track and no-lyrics placeholders are filtered out, and a new track without artist metadata no longer inherits the previous track's artist.

Small one- or two-second progress corrections from the upstream player now use hysteresis, keeping the lyric window from jumping backward and forward around a line boundary. Deliberate, larger seeks still realign the lyrics immediately.

Microphone Routing and Negative Gain

Software microphone gain now ranges from -24 dB to +24 dB. Positive values amplify a quiet input, while negative values attenuate a microphone that is too loud or captures too much background noise. The default remains 0 dB.

Recording device routing is now a separate choice from Android's AudioSource mode. Ava can select Auto, Built-in microphone, or USB microphone, with a safe fallback when the requested USB device is unavailable. Related AudioSource labels and translations have also been clarified.

Thanks to @lone-baggie for the detailed microphone recordings and feedback that guided negative gain, USB routing, and echo-cancellation improvements in #157.

Path: Ava Settings -> Voice Config -> Microphone

Echo Cancellation Technology

Microphone settings now open a dedicated Echo Cancellation page, with software and hardware processing kept in separate cards. Software AEC removes Ava's own music and TTS playback from microphone audio so wake words and voice recognition can continue while the speaker is active; hardware AEC remains independently available for devices that provide a cleaner system implementation.

When Software AEC is enabled, a new optional Pause while speaking control appears. It is off by default. When enabled, Ava keeps echo cancellation active around playback and wake handling, temporarily bypasses it while the user's speech is streamed to Home Assistant, then resets and resumes the processor as soon as streaming ends. This is useful on devices where software echo cancellation prevents feedback but leaves audible processing artifacts in the captured speech.

Path: Ava Settings -> Voice Config -> Microphone -> Echo Cancellation

Guided Home Assistant Voice Setup

When Home Assistant enters its voice-satellite wake-word configuration step, Ava now recognizes the configuration intercept and displays a responsive teaching overlay instead of leaving a new user with an apparently stalled wizard. The guide appears for every configuration event and explains the two supported ways forward: refresh the Home Assistant page to skip the current wake-word test, or say the wake word twice to complete and assess the test, then refresh once more to synchronize the page and satellite state.

A second step introduces the on-device voice engines available from the Mod Store: HA Edge TTS on Wyoming port 10301 and HA STT Engine on port 10300. It explains adding the Wyoming integration and selecting the engines in a Home Assistant voice pipeline. The overlay supports portrait and landscape screens, follows Ava's light or dark appearance, and uses fast fade transitions so the guidance feels part of the setup flow rather than a persistent system dialog.

Broadcast Intent Compatibility

The Home Assistant launch_intent action now exposes only intent_uri. ESPHome cannot mark individual service arguments as optional, so the previous multi-field schema incorrectly made every intent property mandatory in Home Assistant. Ava now parses the action, package, class, and extras from the single URI instead.

The launcher accepts an implicit broadcast:ACTION, a targeted broadcast:ACTION?package=PACKAGE, a query-style broadcast URI, or an Android intent:#Intent URI. This also fixes the earlier regression where a package supplied alongside a broadcast URI could be discarded. Reload the ESPHome integration after upgrading so Home Assistant replaces its cached service schema.

Thanks to @pantherale0 for reporting the regression in #155.

Media Overlay Pause Recovery

The media overlay no longer gets caught between a paused state and its idle timer. In minimal mode with the floating button disabled, pausing playback now fades the overlay out after 20 seconds. If the upstream player is still not ready to resume 10 seconds later, Ava clears stale title and artist identity and waits for fresh metadata instead of leaving old media information stuck on screen.

When the floating button is enabled, or when the detailed player is used, the established 10-second pause behavior remains unchanged. Resuming playback cancels the pending cleanup.

Sendspin Multi-Room Synchronization

Sendspin now corrects room-to-room drift from actual playback-timeline lateness instead of chasing jitter-buffer depth. Small rate changes are smoothed and kept deliberately narrow, allowing a lagging device to catch up without the audible stepping or repeated slow-down that buffer-driven correction could create. Cold-start correction begins earlier, while frames that are only slightly late use one consistent play-through budget instead of being accepted and then dropped by a second, stricter check.

Hard cuts and forced resynchronization are reserved for sustained, severe delay. The result is less gradual drift during long playback and fewer clicks or gaps while several Ava devices remain grouped.

Bluetooth Presence and Proxy Recovery

Bluetooth recovery is now more conservative on Android 8 and newer. A quiet scan period is observed before recovery begins, several soft scanner restarts are attempted before Ava considers restarting the Bluetooth process, and privileged process restarts use an escalating five-to-ten-minute cooldown. Android 7 and older retain the stronger legacy recovery required by their long-running scan behavior.

On ROMs that declare A2DP Sink or AVRCP Controller support but omit the corresponding Bluetooth services, Ava can use Shizuku or Root to disable only those missing profiles before bringing the radio back up, avoiding repeated classic-Bluetooth startup timeouts. Presence Detection also reevaluates active devices immediately when the away-delay setting changes, while continuous proxy scan hits now refresh presence without waiting for a separate scan cycle.

Compact Display and Translation Fixes

The Mini launcher keeps its four-button layout within compact square displays around 480 x 480 instead of allowing controls to overflow the screen.

Don't miss a new Ava-Pro release

NewReleases is sending notifications on new releases.