A modern Home Assistant client for Android, built with Jetpack Compose and Material 3.
Status:
1.3.0. Issues and feedback are welcome.
📖 Documentation — setup guide, feature reference, FAQ and troubleshooting.
☁️ HKI 7 Cloud Component — the optional Home Assistant integration behind family sharing, parental controls and presence.
💬 Home Assistant Community thread — questions, screenshots and feature requests.
Connects to your own Home Assistant server and nothing else — no developer servers, no analytics, no ads, no tracking. Not set up yet? A built-in demo home runs without a server or an account. Running more than one Home Assistant? Connect to all of them.
- Automatic import — builds a dashboard from your existing Home Assistant setup, then gets out of the way so you can rearrange it
- Rooms — per-room device detail and controls, with motion, presence and people counters
- Design your own — buttons, button stacks, badges, and custom popups, each with its own layout (Standard, Square, Tile, Centered), width, corner radius, icon and background
- Icon packs — the complete Material Design Icons and Simple Icons sets, rendered from bundled webfonts with no network dependency
- Every domain — lights, climate, covers, fans, locks, media players, vacuums, humidifiers, alarms, cameras and more, each with a dedicated dialog rather than a generic more-info sheet
- Dedicated screens — climate, energy, security, vacuum and battery overviews
- Live camera streams, and live cleaning maps for Valetudo robots
- Adaptive Lighting — per-room controls for the adaptive_lighting integration
- Global search across every entity
Weather, clock, calendar, media player, sensor graphs, markdown, parcels, waste collection, iFrame, shared to-do lists, Find my devices, and Formula 1 (via F1 Sensor).
- Push notifications from your own server, including the
actionsbuttons the official app supports — tapping one fires the samemobile_app_notification_actionevent, so automations written for the official app work unchanged - Event timeline — a feed of what the house has been doing, read live from Home Assistant's logbook: the front door opening, a light going off, someone arriving home, each with the time and who caused it
Optional, and powered by the companion HKI 7 Cloud integration — which stores everything on your own Home Assistant, so none of this leaves your home.
- Shared dashboards — an admin builds one and publishes it to specific people, or everyone
- Parental controls — hide views, rooms or individual entities from particular family members
- Per-user permissions for editing, global search, and switching or creating dashboards
- Room following — open the room someone is in, from an ESPresense or
mqtt_roompresence sensor (nothing in the app talks to MQTT; those publish the room name as an ordinary sensor state) - Devices — which HKI version each family device runs, with an optional household minimum that prompts anyone behind to update through Google Play
Parental controls are UX-level hiding for a friendlier dashboard, not a Home Assistant security boundary. Home Assistant has no per-entity read permission for non-admin users, so anyone in the household can still reach those entities through Home Assistant directly.
- Event-driven location — geofences and WorkManager rather than continuous tracking, designed for battery parity with the official app
- Fully optional; the app works without location access
- Backups — to your own Google Drive, or to your own Home Assistant
- NFC tags — read and write the same tags as the official app, firing Home Assistant's
tag_scannedevent; tags can open HKI 7 directly even while it is closed - 36 languages — English, Dutch, German (also Austrian and Swiss), French, Spanish (also Latin American and Mexican), Italian, Portuguese (and Brazilian), Turkish, Japanese, Korean, Chinese (Simplified and Traditional), Norwegian, Swedish, Danish, Finnish, Estonian, Latvian, Lithuanian, Polish, Czech, Slovak, Hungarian, Romanian, Bulgarian, Croatian, Greek, Russian, Thai, Arabic and Hebrew — with the whole interface mirrored right to left for Arabic and Hebrew
- Guided onboarding — Home Assistant discovery and a quick-start setup flow
- Android 12+ (minSdk 31)
- A reachable Home Assistant instance (local URL, remote URL, or Nabu Casa)
- Family sharing additionally needs HKI 7 Cloud
0.10.0or newer, installed on your Home Assistant via HACS
Open the project in a recent Android Studio and run the app configuration, or build from the
command line:
./gradlew assembleDebug
The debug APK lands in app/build/outputs/apk/debug/.
Release notes live in CHANGELOG.md and, for the in-app "What's new" dialog, in the
cr_whats_new_* string arrays. New user-facing strings ship in values/ (English) only —
tools/localization/ holds the scripts that translate and backfill the other thirty-five locales, and
verify_translations.py is what decides whether a locale is complete.
The full development setup, project layout and localization workflow are in the contributing guide.
Most of the thirty-six languages started out machine-translated, so they are complete without
always being right. translations/ has one CSV per language — every string in
the app, English beside the translation — so a native speaker can read their whole language in one
file and fix what reads wrong, without touching any Android code.
🌍 How to translate · report a wording problem
The docs site is MkDocs with
Material for MkDocs; sources live in docs/ and
mkdocs.yml. Pushing to main publishes it to GitHub Pages. To work on it locally:
pip install -r docs/requirements.txt
mkdocs serve
HKI 7 uses an open-core model: the community source code in this repository is licensed under the Mozilla Public License 2.0, while separately marked premium assets remain proprietary. See LICENSE for details.
Home Assistant is a trademark of its respective owners; this project is an independent client and is not affiliated with or endorsed by Home Assistant.
This project was created with help of AI like Claude and OpenAI. If you dislike AI being used in projects, then do not install this!