Published Wednesday, August 19, 2026 at 12:27 PM PT
Burbank · Wednesday, August 19, 2026 · 12:27 PM · 96°F, 34% humidity, wind 0 mph NNW (gusts 3), 29.34 inHg, UV 0, PM2.5 5
The Home Assistant Companion for Android is the official, open-source mobile control app for Home Assistant. It’s been floating around since 2019, has 3.8k GitHub stars, and genuinely feels like it was written by people who understand what the thousands of Home Assistant users actually want from a phone app: not flashy marketing bullshit, but a clean remote for the servers they already run. It’s actively maintained (commit history is fresh, 465 open issues is basically “normal” for a project this popular), Kotlin with Compose, and available on the Play Store or buildable from source if you’re feeling paranoid.
The ecosystem around Home Assistant has spent the last five years maturing into something real. What started as a scrappy YAML configuration parser and a web UI has evolved into a legitimate home automation platform that can rival proprietary solutionsâwithout the vendor lock-in, without the cloud dependency, without the surveillance tax. But a platform is only as good as its interface layer, and this is where the mobile experience has lagged. You can configure everything locally, run it on a $50 Raspberry Pi, integrate with dozens of vendors through hundreds of custom integrations, and then… you have to ask Alexa to dim the lights because there’s no good way to tell your server what you want from your phone without talking to a speaker.
The Companion app fixes that specific problem. It’s not doing anything magical. It’s not a new protocol or a revolutionary feature. It’s just the boring, essential work of translating “Home Assistant’s entire control surface” into something you can hold in your hand that doesn’t require you to navigate a web dashboard or talk to a third-party voice assistant. That sounds small until you actually live in a house where everything works locally and reliably, and then you realize how broken the current state of mobile home control actually is.
Why is it trending right now? Probably because the Android ecosystem finally caught up to modern UI patterns and Home Assistant users keep discovering that tapping a phone widget beats asking Alexa to do anything. Also, the #Android Discord channel got way more active, which suggests the community’s leaning harder into mobile control. But there’s a deeper reason: the people who care deeply about local-first home automation are finally at a scale where they can demand proper tooling, and the Home Assistant maintainers actually listened. Fair enough.
The fit question: Does this live in my walls?
Here’s the concrete answer: yes. This app connects to your local Home Assistant instance via your configured URL and authentication token. You set it up once, it phones home to your HA serverâand I mean that literally, it makes HTTP requests to your instance on your LANâit gives you control surfaces: dashboards, quick toggles, tile widgets, location tracking, device shortcuts. It’s not replacing anything in my stack. It’s augmenting it. Right now you control 100+ devices through Home Assistant’s web UI, custom Python agents running on the server itself, Slack commands hooked into a custom bot, Discord webhooks that listen to channel messages and execute automations, and a reTerminal e-ink dashboard mounted in the kitchen. Each of those interfaces was a deliberate design choice: the web UI is for careful configuration and monitoring, Python agents handle complex multi-step workflows, Slack is for ambient awareness and command dispatch, Discord lets you tie automations to community events, the e-ink dashboard is always visible and uses almost no power. Adding a native Android app that does basically the same thing but from your pocket? That’s the obvious missing layer. You’re already carrying your phone everywhere; not having a first-class HA companion app is basically leaving money on the table.
The deeper question is what a mobile interface should optimize for. The web UI is designed for sit-down control: you open it in a browser, you have the full dashboard layout, you can see everything at once and make deliberate changes. That works great when you have five minutes to review your automations or reconfigure a scene. But that’s not how you use your phone. You reach for your phone when you’re doing something elseâyou’re leaving the house and want to check if the garage door is closed, you’re in bed and want to turn off the lights without getting up, you’re in another room and want to adjust the thermostat, you hear a noise and want to check the front door camera. Those are all five-second interactions. A web UI on a phone is not optimized for five-second interactions. A native app with widgets on the lock screen and home screen shortcuts is.
The Companion app understands this distinction. It gives you multiple control surfaces depending on how much friction you want: widgets (lowest friction, configured once, show live status without opening the app), quick tiles (one tap from the notification shade), the app’s main dashboard (richer controls, more information), and persistent shortcuts on the home screen (quick launch to specific automations). These aren’t redundant. They’re different tools for different situations. The widget is what you use when you’re downstairs and want to confirm the upstairs thermostat setting without opening anything. The quick tile is what you use when you’re already in the notification shade. The app is what you use when you want to make a more complex change or see richer feedback. The shortcuts are what you use when you have a repeated action you want instant access to.
The effort floor is stupidly low, and I mean that in the best way. Download from Play Store, install, enter your Home Assistant URL, paste your long-lived access token from HA’s UI (which is literally a copy-paste operation under Settings > Companion > Create), done. If you’ve already set up Home Assistant at all, you know how to do this. You’re not learning a new platform. You’re not signing up for a cloud service. You’re not jailbreaking your phone or running Android in some weird permissive state. You’re just opening an app and giving it the URL and credentials you already have. The app does the rest: it discovers all your devices, loads all your automations, reads all your custom entities and groups and scenes.
What this actually means in practice is the onboarding is genuinely frictionless. You can hand your phone to someone else with Home Assistant experience, and they can be fully productive in 60 seconds. They don’t need a tutorial. They don’t need to debug networking issues or certificate problems. The app just works. This matters more than it sounds. Lots of home automation projects die because the tooling is too fiddly. They require too much setup, too much configuration, too much expertise. By making the mobile interface stupidly easy to set up, the Companion app lowers the barrier for people to actually use and live with a Home Assistant installation.
The app also gives you widgets. Widgets are not a flashy feature. Most users ignore them. But if you actually use widgets, they’re the single most powerful interface pattern for home control. You set up a light toggle widget on your lock screen, and now you don’t even need to unlock your phone to control it. You set up a climate widget on your home screen, and you can see the current temperature and humidity at a glance, every time you look at your phone. You set up a door lock widget, and you can verify the lock status without opening anything. None of these require the app to be running. None of these require cloud sync. They just work. The app provides the bridge between Home Assistant’s state and Android’s widget framework, and Android handles the rest.
You get notifications from automations too. If you set up an automation in Home Assistant that should notify you when something happensâa door opens, a motion sensor triggers, a threshold is reachedâthe Companion app can deliver that notification to your phone. This is where the Google Play Services question becomes relevant, which I’ll get to in a moment. But the core capability is there: your home can notify you about things that matter, and those notifications can trigger additional automations directly from the notification itself.
The catch: Google Play Services and notification delivery.
This is the part where I need to be honest about the tradeoff. The production app available from the Play Store uses Google Play Services for push notifications. That means when a door sensor triggers or a threshold alarm fires and Home Assistant sends a notification, the notification comes through Google’s infrastructure, not your LAN. Google’s servers receive the fact that an event happened, identify that it belongs to your installation, and relay it to your device. Is that a dealbreaker?
The answer depends on what you’re optimizing for. If you’re optimizing for “as close to pure local-first as possible, even if it costs convenience,” then yes, it’s a dealbreaker. If you’re optimizing for “good enough privacy and control, with some pragmatic reliance on existing infrastructure,” then it’s a tradeoff you might accept. The actual notification payload doesn’t include sensitive details about your home. It doesn’t include your location data or your device list or your automations. It’s just a signal that says “something happened, relay this to the user.” But the fact that Google sees the signal at all means you’re trusting Google’s infrastructure with knowledge about when things happen in your home.
But here’s the thing: if you care enough about this to be uncomfortable with it, you have options. The app is open-source. You can build it from source and strip the Google Play integration entirely. You can use an alternative notification relay like Gotify or ntfy, or you can skip push notifications entirely and have the app poll your Home Assistant instance at regular intervals to check for state changes. The app already supports this. The configuration is in the app’s settings. You can set a polling intervalâfive minutes, ten minutes, however often you want the app to check inâand the app will refresh its state and deliver local notifications without going through Google.
The choice to use Google Play Services in the production build is pragmatic. It’s better for most users. It’s faster, it’s more reliable, it doesn’t drain battery like polling does, and for most use cases (someone checking on a light or a door lock), the privacy tradeoff is acceptable. But the fact that the source is available means this is a choice you can reconsider for your own deployment. If you’re running this in your personal home with your own phone, you can make the decision that works for your threat model.
What you should not do is assume the Play Store version is tracking everything about your home. It’s not. Google Play Services is a notification relay. It’s not getting your device list or your automations or your schedules. The app itself is not a tracking app. The open-source code is right there. You can read it. If you’re concerned, you can audit it yourself or read security reviews from the community. The Home Assistant project has reputational incentive to not ship malware or spyware. That’s not the same as a guarantee, but it’s real.
Building your own versus using the Play Store binary.
This deserves more elaboration because it affects how you think about the app. There are three ways to use the Companion app:
First, install the Play Store binary. This is the easiest. You get auto-updates, the Google Play notification relay, the full feature set, no compilation required. You trust Google’s notification infrastructure and the Play Store’s code signing. For most people, this is fine.
Second, build from source using the Android Studio IDE or the command line. This is more workâyou need Android development tools, you need to understand how to build an Android app, you need to get your development environment set up. But once you’ve done that, you control exactly what gets compiled. You can strip out Google Play Services if you want. You can modify the app to use alternative notification relays. You can add your own features. You can inspect the build process yourself. The Home Assistant project documents how to do this. It’s not trivial, but it’s achievable for someone comfortable with development tools.
Third, build from source and use a different distribution channel. There’s F-Droid, the open-source Android app store. F-Droid only distributes free and open-source software, and it builds everything from source in a controlled environment. If the Companion app is available on F-Droid (you’d want to verify this), you get automatic updates through F-Droid’s infrastructure instead of Google Play, and you know the binary was built from the source code you can inspect. This is genuinely different from the Play Store version not because the source is different, but because the build process is different and operated by a different organization.
For most users, this level of paranoia is unnecessary. But the point is that the option exists. If you’re someone who cares about open-source tooling and the ability to audit or rebuild your own tools, the Companion app respects that choice. It’s not forcing you into the Play Store. It’s not requiring you to use Google’s infrastructure. It’s offering you reasonable defaults that work for most people, and then getting out of the way if you want something different.
What the backlog of 465 issues actually tells you.
A large issue backlog sounds bad if you don’t understand how open-source projects actually work. But 465 issues on a stable, feature-complete app is actually a healthy sign. It means the project is being used by enough people that they’re finding edge cases and feature gaps. It means people care enough to file bugs. It means there’s a queue of things to improve.
The alternativeâa project with zero issuesâusually means either the project is dead or it’s not being used. Neither is good. A project with hundreds of issues and active triage is a sign that someone is doing real maintenance. You should worry if the backlog is growing faster than it’s being resolved, or if issues are going unanswered for months. But most mature open-source projects have a queue. It’s a sign of health.
Some of those issues are probably feature requests (add support for this device, add support for this integration, add this automation trigger). Some are probably edge cases (weird behavior in this scenario, crash on this phone, widget not updating in this situation). Some are probably documentation gaps (how do I set this up, how do I configure this, why doesn’t this work). That distribution of issue types tells you what users want and what’s broken. The maintainers presumably prioritize based on impact and effort, like any sensible project.
Wear OS, Automotive OS, and the scope of integration.
The app supports both Wear OS (smartwatches) and Android Automotive OS (the Android-based infotainment systems in some newer cars). Most users won’t touch these. Smartwatch users are still a minority, and automotive integration is even more niche. But the fact that the maintainers built these integrations tells you something about their ambition.
Wear OS support means you can control lights and automations from your wrist. That sounds gimmicky until you’re driving and you want to adjust your home’s thermostat before you leave, and you can do it with a quick swipe on your watch without taking your eyes off the road. Or you’re in a meeting and you want to make sure the back door is locked, and you can check it without pulling out your phone and opening an app. Again, these are edge cases. Most people won’t use Wear OS. But it’s there.
Android Automotive integration is similar. If your car runs Android Automotive (fairly common now), the Companion app can integrate with it. You could theoretically set up an automation that triggers when you arrive home, based on Android Automotive’s awareness of your location. Or you could control your home from the car’s screen while you’re parked in the driveway. These are things that almost nobody will do, but they’re possible.
This scope creep is actually a good sign. It means the maintainers are thinking about the full range of devices people might interact with, not just phones. It means they’re building infrastructure that can adapt as Android evolves. It means they’re not assuming phones are the only interface that matters. That kind of forward-thinking matters for longevity.
The integration story: automations triggered from your phone.
One feature that deserves more elaboration is the ability to trigger automations directly from the app. This isn’t just remote control. This is the app as an input to your Home Assistant automations. You can set up a button in the app, and when you tap that button, it fires an automation. That automation can do anything Home Assistant can do: send notifications, control devices, log data, call webhooks, trigger scripts, you name it.
This matters because it makes your phone part of your home’s nervous system. You’re not just sending commands to your home. You’re sending events that your home can respond to. You could create an automation that says “when the user presses this button in the app, activate the ‘Goodnight’ scene and send a confirmation notification.” You could create another automation that says “when the user presses this button, arm the security system and lock all doors.” You could create an automation that gathers the user’s location from the phone, and if they’re outside the geofence, activate the away mode and turn off all the lights. The phone becomes an input device as well as an output device.
This is a subtly more powerful model than “app sends command to home.” It’s the difference between “here’s what I want you to do” and “here’s an event that happened, you figure out what to do.” The former is simpler to implement. The latter is more flexible and more aligned with how automation actually works. The Companion app understands this.
Location tracking and presence automation.
The app includes location tracking. You enable it in the app’s settings, and it periodically reports your phone’s GPS location to your Home Assistant instance. This data stays in your own Home Assistant installation. It doesn’t get sent to Google or anywhere else (unless you explicitly set up integrations that do that, which is your choice). But once Home Assistant knows your location, it can trigger automations based on it.
You could set up a geofence around your home: when your phone enters the geofence, Home Assistant activates the welcome home scene (turn on entry lights, open the garage). When your phone leaves the geofence, it activates the away scene (turn off all lights, lock the doors, arm the security system). You could set up multiple people on different devices, and the system could behave differently depending on who’s home. You could set up work geofences to trigger work mode automations. You could set up locations like the grocery store to trigger a shopping list reminder.
This is genuinely powerful. But it needs to be tested carefully before you rely on it for anything critical. GPS is not instantaneous. There’s latency. Geofence triggering can be unreliable on some phones or in some locations. You don’t want your security system to arm when your spouse is fifteen minutes away from home because the GPS was slow to update. But once you understand the limitations, you can use this intelligently. It’s another layer of presence awareness beyond just checking if devices are on the network.
Why this matters: the official tool question.
There’s a category of open-source project where the official tool actually being good is meaningful. It’s not always true. Some projects have terrible official tools and vibrant communities that build better alternatives. But when the official tool is actually good, it matters because it sets the standard. It shows that the project’s maintainers understand what users need. It shows that there’s engineering resources dedicated to the boring work of making things usable. It shows that longevity is a priority.
The Home Assistant Companion app is good. It’s not perfect. It has bugs. It has limitations. It has a backlog. But it’s actually good. Which means if you’re building your home automation around Home Assistant, you’re not stuck with a terrible official tool and hoping a community alternative is better. You have a tool that the project itself maintains and cares about. That’s a luxury that not every open-source ecosystem has.
What this means in practice.
You download the app from the Play Store or F-Droid or you build from source. You enter your Home Assistant URL and your long-lived access token. You get widgets on your home screen and lock screen. You get notifications when things happen. You get quick toggles to control lights and climate and locks. You get presence tracking that can trigger automations. You get automation buttons that you can tap to do complex multi-step things. Everything stays local. Everything integrates seamlessly with whatever automations and integrations and custom entities you’ve already built into Home Assistant.
You use the Pro version if you want cloud sync for your dashboard configuration (which is probably nice for multi-user households), but the core functionality is free and doesn’t depend on cloud anything. You file bugs when you find them. You read the documentation. The community in Discord is actual humans who use this stuff to control their homes, so PRs get real review and questions get real answers. You can audit the source if you want. You can build your own version. You can modify it. You can fork it. The license lets you.
Install it. Use it. Test it carefully before you rely on it for anything you really care about (like security or climate control). Build from source if the Google Play notification relay bothers you. Build your own fork if you want features the maintainers haven’t added. Contribute back if you find something that’s broken or missing. The community is small but it’s real, and your voice matters.
This is one of those rare moments where the official tool is actually worth using. It’s not a compromise. It’s the right answer.
Scouted repo: home-assistant/android â 3818 stars. Verdict: ADOPT. Desk review, nothing was flashed or installed.
