Repository navigation
Releases
Kellie's Voice v0.17.5
Kellie's Voice v0.17.5
Maintenance release for the Home Assistant pairing review, with matching Android TV and Home Assistant versions.
- Android TV:
versionCode 63,versionName 0.17.5(no TV UI feature changes). - Home Assistant HACS integration:
0.17.5.
Fixes
- Secure Home Assistant-first pairing: Use the canonical
v3/pairing_v3_wire.pytransport in the production config flow. The old transport refused/v3/pair/owner-receipt,/v3/pair/token-stage, and/v3/pair/token-commit, making approved v3 pairing fail after the one-time owner claim was consumed. Removed the three stale duplicate modules to prevent another drift. - Home Assistant responsiveness: Move P-256 key initialization and ECDH work for comparison codes, remote approval proof, owner receipts, and credential handoff to Home Assistant's executor.
- Regression protection: Add tests for actual allowed owner/token routes, the production import, executor-backed ECDH and updated canonical Python fixture paths.
Compatibility and validation
Existing paired TVs and legacy manual pairing are not intentionally changed. If a previous secure pairing attempt failed, start a new two-minute pairing session; the consumed one-shot owner claim is not restored.
CI and offline synthetic pairing tests do not replace verification of a fresh Home Assistant-first pairing on a real TV. A full fresh-install TV hardware test is still required before claiming universal compatibility.
Upgrade
Update Kellie's Voice in HACS to 0.17.5 and restart Home Assistant. The TV app can be upgraded using the officially signed 0.17.5 APK or signed in-app updater after the GitHub Release is published. Install over the existing app; do not uninstall or clear app data. Existing connected TVs do not need re-pairing.
Kellie's Voice v0.17.4
Kellie's Voice v0.17.4
One combined update, rather than separate v0.17.4, v0.17.5 and v0.17.6 releases.
- Android TV:
versionCode 62,versionName 0.17.4. - Matching Home Assistant HACS integration:
0.17.4. - Validation: six checks on PR #300 passed; signed v0.17.4-dev.3 was tested on two Philips TVs with matching HACS integration. Other Android TV hardware and non-Lovelace dashboards were not verified by that tester.
Changes
Smoother Home Assistant dashboard loading
When opening an HA dashboard (rather than the Frigate website), Kellie's Voice masks the initial WebView behind a black loading screen while the HA frontend navigates through login, its default page and the saved dashboard. It reveals the target only after the configured path and an actually rendered Lovelace dashboard are present, with a short route-stability hold. The HA application shell, startup screen, or a default-dashboard redirect is not sufficient, and SPA history changes reset the gate. This addresses the Philips v0.17.4-dev.2 report in Issue #261. Custom non-Lovelace pages may require further device-specific handling. If automatic login stalls, a Sign in manually button becomes available after about 15 seconds, avoiding an inaccessible login on TVs that require interactive sign-in. This does not bypass authentication, enable untrusted navigation or pass credentials in the URL.
Show/hide the configured TV dashboard from Home Assistant
The companion integration adds kellies_voice.show_dashboard and kellies_voice.hide_dashboard actions. Both require one TV pairing ID. Use Home Assistant → Developer tools → Actions:
action: kellies_voice.show_dashboard
data:
device_id: YOUR_TV_PAIRING_IDaction: kellies_voice.hide_dashboard
data:
device_id: YOUR_TV_PAIRING_IDOptionally add dashboard_path: /mobile-command/bedroom (or another same-server route) to open a different HA dashboard from each trigger. Changing the route while an on-demand dashboard is open switches views. dashboard_path is a path only, never a full hostname, URL, token, query string or redirect target. Omit it to use the TV's default configured source. The TV uses its already configured Home Assistant server/screensaver source. The service payload is limited to the authenticated, read-authorized TV event subscription and includes only the matching TV ID. No arbitrary URL, token, or browser control is accepted by these actions. hide_dashboard closes only a dashboard opened on demand, never disables ambient mode or automatically closes a running Android dream.
Prerequisites: Enable the on-TV screensaver, configure its source, allow Display over other apps, enable TV alerts, and verify the TV alert receiver is connected. Install the matching TV app and HACS integration. Android/TV firmware can still prevent background overlays or foreground-service launch; HDMI behavior varies.
Philips OLED documentation / compatibility notes
A community report on Issue #261 confirmed dashboard trusted-network login, D-pad/Back controls, overlays on TiviMate and HDMI, and camera popups on a Philips 55OLED856/12 OLED and 65PUS8507/12 LED.
The OLED TV can display a Philips vendor bouncing logo above an otherwise-running Kellie's Voice screensaver. The tester used a one-minute Android timeout and a changing HA dashboard; these are not guaranteed panel protection and should not disable manufacturer safeguards. One unreproduced whole-TV freeze was reported with an unknown cause. On signed v0.17.4-dev.3, both Philips TVs passed full-reboot automatic idle screensaver and trusted-network login with cameras showing, plus the automatic-idle, Somnambulator and on-demand Lovelace loading-mask transitions without startup/default-dashboard flashes. The occasional white driveway tile was not reproduced on dev.3, but intermittent regressions remain possible. These are tester-specific results, not guarantees on every TV. Full Philips v0.17.4-dev.3 report. Full Philips caution and diagnostics.
Hardware acceptance evidence and remaining coverage
- PR checks: Android JVM tests, Java/Kotlin compile, native debug APK build, HA tests, HACS/hassfest and documentation links.
- Onn 4K Pro: HTTP trusted-network and optional secure HTTPS HA dashboard transition has no login/default-dashboard flashes.
- Onn 4K Pro:
show_dashboardopens on command over TV playback;hide_dashboardreturns to playback, repeated calls safe. - Ordinary Android dream / Frigate website / HA four-camera grid still work after idle, Back and reboot; show/hide must not close an automatic dream.
- Non-admin TV users can receive the scoped actions; unknown TV IDs, unconfigured dashboard and denied Android overlay permissions do not bypass checks.
- Philips tester: OLED vendor-logo behavior, D-pad/OK/Back, multi-route loading, HDMI/TiviMate overlays, camera popups, reboot/startup (signed dev.3); the app does not control manufacturer panel protection.
Installation after release: Update HACS to 0.17.4, restart Home Assistant, then update each TV using the officially signed 0.17.4 APK (or signed in-app updater). Install over the current signed app. Do not uninstall/erase app data or re-pair.
Kellie's Voice v0.17.4-dev.3 (DEV / Beta)
Development prerelease for opt-in Home Assistant HACS and Android TV testers.
Stable stays the default. To opt into beta update checks, enable
Kellie's Voice's per-repository Pre-release switch in Home Assistant.
For a one-off install: HACS → Kellie's Voice → ⋮ → Redownload →
Need a different version? → Release → select this prerelease.
Restart Home Assistant after installing the matching integration.
Android TV: choose Development (opt-in) only on a test device,
manually check/install the attached same-signed APK. It never
auto-installs. Android versionCodes cannot be downgraded in place:
wait for a later stable build if returning from this beta.
Review docs/BETA_TESTING.md before testing. Home Assistant backup
recommended. Public stable Latest remains unchanged.
Kellie's Voice v0.17.4-dev.2 (DEV / Beta)
Development prerelease for opt-in Home Assistant HACS and Android TV testers.
Stable stays the default. To opt into beta update checks, enable
Kellie's Voice's per-repository Pre-release switch in Home Assistant.
For a one-off install: HACS → Kellie's Voice → ⋮ → Redownload →
Need a different version? → Release → select this prerelease.
Restart Home Assistant after installing the matching integration.
Android TV: choose Development (opt-in) only on a test device,
manually check/install the attached same-signed APK. It never
auto-installs. Android versionCodes cannot be downgraded in place:
wait for a later stable build if returning from this beta.
Review docs/BETA_TESTING.md before testing. Home Assistant backup
recommended. Public stable Latest remains unchanged.
Kellie's Voice v0.17.4-dev.1 (DEV / Beta)
Development prerelease for opt-in Home Assistant HACS and Android TV testers.
Stable stays the default. To opt into beta update checks, enable
Kellie's Voice's per-repository Pre-release switch in Home Assistant.
For a one-off install: HACS → Kellie's Voice → ⋮ → Redownload →
Need a different version? → Release → select this prerelease.
Restart Home Assistant after installing the matching integration.
Android TV: choose Development (opt-in) only on a test device,
manually check/install the attached same-signed APK. It never
auto-installs. Android versionCodes cannot be downgraded in place:
wait for a later stable build if returning from this beta.
Review docs/BETA_TESTING.md before testing. Home Assistant backup
recommended. Public stable Latest remains unchanged.
Kellie's Voice v0.17.3
Kellie's Voice v0.17.3
Android TV: signed versionCode 58. Home Assistant integration: 0.17.3.
This maintenance update delivers PR #298, with the following fixes:
- Actually compact Small voice overlay: shrinks the reserved answer region, waveform, panel padding, buttons, and width for the Small layout, including Neon Obsidian. Longer responses remain scrollable with the remote; Medium and Large use their previous layout.
- Community themes in Home Assistant: fixes the rejected installed-theme-list update caused by routing the theme inventory through Frigate-only validation. The Home Assistant integration validates and accepts bounded printable theme names; camera URL and entity validation stays strict.
- Adds regression tests for accepted and rejected community theme inventory values.
Update both components: install the signed Android app-release.apk over your current Kellie's Voice app (or use the in-app updater once this GitHub Release is published); update the Kellie's Voice custom integration in HACS to 0.17.3 and restart Home Assistant. Keep app data, your paired TV and preferences. Do not uninstall or re-pair.
This release does not itself change Home Assistant automations or device areas. Source CI and integration validation passed on PR #298; actual Small-overlay geometry on each TV/display must still be checked after installation. The owner previously verified CleanMyTV/Ambient Mode compatibility on an onn 4K Pro; this change targets the voice overlay, not the screensaver.
Kellie's Voice v0.17.2
Kellie's Voice v0.17.2
Android TV: signed versionCode 57. Home Assistant integration: 0.17.2.
This maintenance release includes the HACS / Marketplace catalog-readiness changes merged in PR #199 after v0.17.1.
- Adds hassfest validation and runs HACS validation without ignored checks.
- Declares the integration's UI-only configuration schema and intent ordering dependency.
- Corrects isolated developer QA integration metadata and its offline test fixture.
- Documents catalog submission, separate TV APK installation, and in-place updates.
Android behavior is unchanged from current v0.17.1 source; the build number advances for a correctly versioned signed release. Existing config entries, TV pairing and preferences are preserved. Do not uninstall, clear app data, or re-pair to update.
HACS / Marketplace catalog review is pending; publishing this release does not establish official catalog inclusion. Home Assistant 2026.11 migration and independent pairing/first-install security review remain unverified. No live Home Assistant or TV installation was changed to prepare this release.
Kellie's Voice v0.17.1
Kellie's Voice v0.17.1
Android TV: signed versionCode 56 · Home Assistant HACS integration: 0.17.1.
Hotfix
- Fixed Okay Nabu wake word activation showing "Configure Home Assistant before enabling the wake word" when a TV was already paired through the new owner-approved renewable login introduced in v0.17.0.
- The Compose Settings switch, the legacy Settings dialog, the wake-word background service and foreground-relaunch restoration now share one token-free check. An active owner-approved TV grant is accepted without a manually entered Home Assistant URL/token.
- Existing manual Home Assistant connections still work. If the renewable login was revoked, expired beyond recovery, or never activated, the wake word remains blocked. Crucially, a revoked renewal grant never falls back to an older saved manual token.
- Added Android JVM and HA repository regression tests for both login modes and the previously inconsistent Settings screen.
- No changes to wake phrase/model, microphone permission handling, camera feeds, dashboard URLs, Quick Actions or user preferences.
Updating from 0.17.0
- Update Kellie's Voice in HACS to 0.17.1 and restart Home Assistant (the HA component is otherwise unchanged; this keeps version labels matched).
- In the TV app, use Settings → Check for updates, or install the official signed v0.17.1
app-release.apkover the existing signed installation. - Do not uninstall, clear data, re-pair, paste a new token, or delete the working owner-approved login.
- Open Settings → Voice & microphone → Wake word (Okay Nabu) and enable it. Grant microphone and Display over other apps permission if Android asks.
- The saved wake-word opt-in should be restored on a visible app launch after reboot where Android allows microphone foreground services; Android 14+ may prevent immediate microphone start directly at boot.
See v0.17.0 release notes for all new public features and known owner-approved pairing limitations.
Kellie's Voice v0.17.0
Kellie's Voice v0.17.0
Android TV: signed versionCode 55 · Home Assistant integration: v0.17.0. Install both matching components; HACS and the TV app update independently.
Highlights
- Refreshed TV settings. A two-column Compose Settings experience groups Home Assistant, voice/microphone, overlays, alerts/cameras, screensaver and updates/account. Multiple local themes and clearer remote focus are designed for the couch, not a touchscreen.
- Home Assistant Quick Actions. Configure TV shortcut labels, target entities and actions from Home Assistant. Icons and theme preview options are available, with behavior depending on paired integration/app capabilities.
- Community theme gallery and custom JSON imports. Six shareable JSON packs are included in the APK and can be installed directly from Settings, even on TVs lacking Android's document picker. Optional system-picker imports remain for compatible TVs; a scoped, app-owned ADB theme-import folder supports advanced custom files without broad storage permission. See Community Themes.
- Home Assistant dashboard screensavers. A configured HA dashboard can appear automatically when Google TV enters idle mode. Improvements include trusted-network browser login handling, a TV-remote pointer with page scrolling, one-press Back exit, and removal of redundant Close/Select camera buttons on HA dashboard pages only. Frigate/native camera screens retain the controls needed for camera selection.
- More reliable watcher startup. The opted-in screensaver watcher attempts recovery after a full TV reboot, records boot/startup diagnostics and provides a visible-activity fallback on devices that restrict background starts.
- Camera and alert improvements. Existing direct Home Assistant services such as
kellies_voice.show_live_camera,show_camera,hide_camera, andannounceremain available independently of any LLM. The camera popup and live playback can be tested directly through Home Assistant. - Home Assistant-first secure pairing. The normal
kellies_voiceHACS component and production APK source now contain the previously hardware-tested v3 pairing protocol. Start secure pairing from the TV, select the discovered device in Home Assistant, compare the matching eight digits, press OK on the TV remote and approve a dedicated, renewable non-admin TV account from the signed-in Home Assistant owner panel. No HA URL or token needs to be typed on the TV. Existing manually configured connections remain available. The normal public first-install flow and credential lifecycle still require review before release. Non-admin Home Assistant Users accounts can control all entities; the owner must explicitly accept that permission scope. Renewable login currently requires an HTTPS HA URL (which can be entirely local, without Cloud); HTTP-only automatic renewal is not supported yet (#262). - Existing features remain. Optional Okay Nabu wake word, Talk button, speech replies, timer and announcement overlays, Frigate/HA camera popups, live four-camera screensaver and TV audio ducking.
Hardware validation and limitations
Physical Onn 4K Pro QA on the combined v0.17 build verified automatic HA Mobile Command appearance after full reboot without opening the app or manually resyncing; previously confirmed trusted-network dashboard login persistence, D-pad pointer scrolling, no unnecessary HA dashboard controls, and one-press Back exit. A direct kellies_voice.show_live_camera doorbell call bypassed the conversation LLM and visibly played live video.
On the signed v0.17.0 combined QA build, the owner additionally confirmed all four live screensaver camera feeds start automatically without Resync, and fullscreen selected-camera video plays with audio. Other Android TV models, including Philips devices, still need volunteer testing. Microphone availability depends on Android hardware; Google's remote Assistant microphone is not necessarily accessible to third-party apps. On Android 14+, rearming a microphone wake service at boot may require opening the TV app.
The maintainer's separate Home Assistant LLM sometimes hit a 20-tool-call limit while processing natural-language camera requests. This is an agent configuration issue; the direct HA live-camera path passed and does not depend on the LLM.
Secure pairing preview and known limits
Home Assistant-first credential pairing is opt-in public testing in v0.17.0. The owner successfully completed the encrypted owner-approved login and Assist light command on real Onn hardware in the isolated QA integration; the matching public HACS and Android sources passed automated tests, but fresh public installations, HA/TV restart recovery and independent security review have not been independently verified end to end. Issue #214 tracks the remaining security review. A dedicated non-admin HA Users account can still control all entities: approve only TVs you trust. HTTPS is required for renewable login; plain HTTP-only HA users should retain the existing manual connection path or set up local HTTPS. No Cloud subscription is required for properly configured local HTTPS.
Update and compatibility
- Install the official signed release APK over the prior signed stable version without uninstalling or clearing app data. Do not replace it with an Actions
app-debug.apk. - Update the matching
kellies_voiceHACS integration, then restart Home Assistant. The Android TV APK and HACS integration are separate components. - Leave existing opt-in microphone, wake-word, alert and screensaver preferences in place. Review Android permissions if the OS asks again.
- For Home Assistant web dashboards, use a trusted TV account and a matching, properly configured HA origin. Do not paste tokens in web dashboard URLs.
- Read Installation, Beta/testing guidance, camera screensaver guide and troubleshooting.
Kellie's Voice v0.16.14
Kellie's Voice v0.16.14
Android versionCode: 54 · Home Assistant integration: 0.16.14 · Release type: stable with experimental, opt-in hands-free wake support.
Headline: "Okay Nabu" hands-free wake-word support for Android TV. This is an opt-in feature; you can still use the normal TALK button without any wake phrase. The app uses your existing Home Assistant Assist pipeline, with no required cloud model or bundled Ollama server.
What's new
- Say "Okay Nabu" to talk hands-free. An on-device microWakeWord model detects the phrase. Say your request immediately afterward, for example "Okay Nabu, turn on office lights", without waiting for a second prompt. Kellie's Voice opens its normal overlay and passes the spoken request to your configured Home Assistant Assist pipeline. Wake-word detection runs locally on the TV.
- Faster responses after wake. While wake listening is enabled, Kellie's Voice can keep a Home Assistant WebSocket authenticated and ready, without streaming microphone audio over that connection before detection.
- Optional wake audio ducking. Under Settings → Voice & microphone → Wake word → Wake audio ducking, choose Off (default), 25%, 50%, or 75% quieter. After the wake phrase is detected, the app attempts to reduce local media volume during the request and restore it when the overlay closes. The exact amount depends on Android volume steps; some HDMI-CEC or fixed-volume audio setups may ignore it. It cannot help the TV hear the wake phrase before detection.
- Safer microphone controls. Wake listening defaults OFF. Turning it on requires a deliberate action, a working microphone route, microphone permission, overlay permission, and a saved Home Assistant connection. A separate Disable microphone capture setting blocks wake listening; turning microphone capture back on does not silently arm the wake listener. Forget Home Assistant login also disarms it. Android's microphone-use indicator is shown while capture is active.
- Remembered wake preference after restart. When deliberately enabled in this version, the ON choice is retained after app updates and TV reboots. On supported Android versions, opening Kellie's Voice after reboot automatically resumes the opted-in listener without toggling Wake word again. Android 14+ restricts starting a microphone foreground service directly at boot, so the app may show a reminder to open it. Zero-touch listening immediately after power-on, before opening the app, is not supported yet (tracking issue #163). Owners upgrading from an older experimental wake build must explicitly re-enable/resume wake once to approve the new persistence behavior.
- Better organized TV Settings. A remote-friendly settings hub groups Home Assistant, Voice & microphone, Overlay & appearance, Alerts & cameras, Screensaver, and Updates & account. Okay Nabu and audio ducking are found under Voice & microphone, with D-pad focus and Back navigation.
Tested on hardware
The maintainer tested an experimental combined build on an onn 4K Pro: a single-breath "Okay Nabu, turn on office lights" command worked, YouTube media playback became quieter while Kellie responded and returned to its previous level afterward, Disable microphone capture prevented wake activation, and re-enabling microphone capture alone did not re-arm wake listening. Deliberately enabling the listener again restored the command.
Additional testing recommended (and not yet fully verified on the final signed build): automatic wake resumption when the app opens after a TV reboot, explicit OFF surviving reboot, Forget/revoked permissions, interruption and failure recovery, false activations, and behavior on other TV hardware. These results do not establish compatibility with every Google TV, Android TV or Fire TV device.
Important limitations and privacy
- The wake-word engine needs a usable 16 kHz microphone input. Some TV remotes expose their microphone only to Google Assistant; Kellie's Voice cannot take over Google's microphone button or its low-power hotword engine.
- While LISTENING, the microphone captures locally to detect the wake phrase. That pre-wake audio is not sent to Home Assistant. After detection, command audio is sent to the selected Assist speech pipeline, which may use local or cloud speech recognition. An accidental wake can therefore start an Assist capture.
- The warmed Home Assistant connection carries authentication and connectivity traffic, not background microphone audio. Turn Wake word OFF to stop always-on listening.
- A reboot or app update does not guarantee unattended microphone listening immediately at the Android TV home screen. A visible app launch may be needed. Avoid assuming a status of ON means the recorder is active; check for LISTENING.
- Advanced camera layouts, decoding and microphone behavior may differ by TV. No custom wake-word editor or alternative phrase is included in this version.
Install or upgrade
- Install the official signed Android TV APK from the v0.16.14 GitHub Release over the existing signed app from the published release; do not uninstall or erase its storage. Experimental GitHub Actions debug APKs have a different package name and are not replacements for signed stable builds.
- Update the matching v0.16.14 Kellie's Voice HACS integration and restart Home Assistant. HACS and the TV APK are separate components. Do not install the HACS development version merely because the Android version has advanced.
- Open the TV app and check Settings → Voice & microphone → Wake word. The default is OFF. Turn it ON only if you want local hands-free listening, then try "Okay Nabu, turn on office lights" with a device you have exposed to Home Assistant.
- To hear YouTube lower during your question, choose a nonzero Wake audio ducking percentage. It takes effect after detection, and volume should return when the voice overlay closes.
For troubleshooting and detailed privacy behavior, see Wake-word guide, TV Settings guide, and issue #163.
Versioning note: v0.16.13 was not retained as a public stable release and its Git tag is already occupied; the next public version is v0.16.14.