When will there be an official Home Assistant for Android app???

Thing is that I’ve even wanted to give your app second chance and it’s so not userfriendly at the beginning… I have to give WiFi name even if I have my own network configured to sort out either it’s local or remote connection… Also had issues with the token (why still bother with users with api_password as it’s deprecating)?
I didn’t even get thru first few steps to be able to try it out.

Did you consider ReactNative? You’d be able to share much/most of the code between iOS and Android.

Indeed the setup process can be a little confusing but i believed that its explained enough in order to complete the connection. I know that api_password is deprecated, but unfortunately this doesn’t mean that its permanently removed so users will tend to use it. Please use the Ariela discussion thread if you want to give more details on what didn’t worked on your end to setup, in order to not spam this thread. Thank you.

The majority functionality planned to be provided by the “official app” involved some sort of Android native feature, it would not be an UI-rich apps, therefore I don’t think any cross-platform solution will help.

This just means that us iOS users need to donate more than Android users to keep @robbiet480’s focus in the right direction! :wink:

(jk, but seriously consider donating/contributing, software doesn’t write itself)

1 Like

Okay, finally getting around to replying to this…

In no way, shape, or form was this announcement targeted directly at Ariela, let alone any other Home Assistant Android app. @balloob and I are in complete agreement that any and all apps are more than welcome to integrate Home Assistant in whatever way they see fit (excepting blatant ripoff of logos or the name and egregious security decisions, and no, that list is not exhaustive and could change at any time).

Paulus and @Ionut have already expanded on the reasons why we didn’t want to accept Ariela as the “official” Home Assistant Android app, but let me add two more:

  1. From my own technical perspective, it would take a lot of work to adapt Ariela to our vision. It would be unfair of us to ask @Ionut to do that, as well as unfair to users who may be using those features (such as the native UI or the MQTT integration). Here’s just some of the things that I believe would be necessary to align it with our standards:

    1. Migrate all MQTT sensors to new mobile_app sensors (To clarify our issues with MQTT, from what we have been told and seen ourselves, Ariela does not actually have a MQTT client embedded in it. Instead, it calls the mqtt.publish service in Home Assistant, effectively faking “MQTT”. We both don’t want an official app to use MQTT as its just another barrier to entry and don’t want them using workarounds such as this.)
    2. Figure out a replacement for the MQTT camera support, whether making a new camera platform for mobile_app or something else.
    3. Redo authentication to only use the browser as per Section 8.12 of RFC 8252 “OAuth 2.0 for Native Apps” for security reasons. Right now, using the native UI and asking users to enter a username/password directly into Ariela is a security risk as Ariela could take those credentials and use them for nefarious purposes. To be 100000% clear, We have exactly 0 information or reason to think Ariela is doing this at any time past or present or would in the future. It’s just something that we would require of a official app because they should be held to the absolute highest standards.
    4. Adapt to the new mobile_app notify platform that will be in 0.91 and uses Firebase Cloud Messaging as the backend, instead of HANotify.
    5. Removal of all native UI components that attempt to replicate the web UI/Lovelace inside of the app. Existing widgets and things external to the app are fine as is.
    6. Open source the app, relicense all code under the Apache 2.0 license, transfer the repository into the Home Assistant GitHub.
    7. Remove all ads from the app, as well as the paid version, from the Play Store. We don’t have any issue with @Ionut retaining his Patreon and adding a tip jar into the app, just like the iOS app. We would even be more than happy to promote the Patreon on social media, the blog, the forums, etc.
  2. I don’t think it would be right of “us” (speaking as Home Assistant, the entity) to co-opt someone else’s work and effectively remove their name from being publicly visible. For example, the repository would need to be under the Home Assistant organization and we would probably want to transfer the app onto a Play Store developer account that is at least partially controlled by someone other than @Ionut, just in case the worst happens and he is no longer available to us (or doesn’t want to be). Full disclosure, Paulus and another friend of mine have access to my Apple Developer account for similar reasons. Obviously it’s not like we would intentionally remove @Ionut’s name and would credit where possible but he would be recognized less just due to moving stuff around.

Overall, I personally made this decision from the stance of “what is most fair to everyone involved”. What is most fair to the developers, what is most fair to existing users of the apps and what is most fair to the community. I think if you read all of the above and think about it for a minute, few people here would want to be in the position that I and Paulus would’ve been in where we ask someone randomly to effectively upend their entire app that they’ve put a lot of time and a lot of effort into for a long time and in some respects make their apps drop features in favor of a simpler experience, let alone making a developer just outright delete code entirely.

If @Ionut or @estevez wanted to go to all of that trouble, then I think we would welcome it. To be clear to both of them, the list above is probably the majority of the changes necessary but there could be more as we work through the process. I have no problems with either of them. I’ve met and spoken to them both recently, know that they’ve done good work and have been very active members of the community for a long time, doing a sometimes very thankless job (trust me, I probably know this better than anyone other than them or our BDFL @balloob).

Now, speaking for a majority rarely heard from here: I’ve been friends for a while now with, what is effectively, the Paulus of China, in that he is one of if not the actual leader of Home Assistant in China. He runs a popular forum as well as the largest Home Assistant chat group on QQ and WeChat. He believes, and I agree with him, that there is a large market of Android users in China that would like to see an official app, as what they have now is limited in functionality. Here’s the problem though, China can’t use the Play Store, or more importantly, Google Play Services (including Firebase Cloud Messaging), so alternatives have to be sought. This wasn’t going to be something to do in version 1 of the official app, but it is on my short term road map (for perspectives sake, bbs.hassbian.com saw 40,000 unique users in roughly the last 30 days. I’ve had 8,000 installs of the iOS app from China. So just assuming that every user that has installed my iOS app also has visited the forum in the last 30 days leaves us with at least 32,000 Android users in China). The iOS app already works very well in China in terms of push notifications and localization. Android will be a bit of a tougher issue because Google Play Services provides push notifications via Firebase Cloud Messaging as well as a significantly better location system over the native Android APIs. Bonus of finding alternatives to Google Play Services: Some devices don’t have them installed, namely Amazon devices or those based on AOSP, and some people just don’t want to run them. Final point on this, do not read this and think that a non-Google Play Services version of the app is happening now or ever. It’s a personal goal of mine that is a nice to have, not a must have.

I also wanted to quickly throw out there just to get ahead of it (not that i’ve had any indication that people have been thinking this, but what can I say, I have anxiety), obviously I did not build mobile_app to be able to just turn around instantly and tell Android app developers they can’t be the official app. Everything just kind of naturally came together over the last few weeks, somewhat unexpectedly, as I was finishing development of the iOS app.

Finally, everyone has been asking and worried about @Ionut and Ariela. I also wanted to throw out that we reached out at the same time as we did to @Ionut to the author of HA Client, @estevez. He expressed very similar concerns and queries as @Ionut did. Both of them should be absolutely commended for their work.

That’s all I’ve got for now, I’ll be interested to hear your feedback. Thanks as always for your support.

30 Likes

Thanks for the very detailed response @robbiet480

1 Like

Hi all. I want to thanks all of you who mentioned HA Client here, and @robbiet480 for his answer.
I decided to continue my work on HA Client as an third party app, not an official one. I will do my best to support highest security standards required by HA. OAuth is coming in next release by the way )

5 Likes

Thanks for chiming in @estevez. Also just wanted to add that we are planning to update existing mobile_app developer docs with a best practices guide covering the standards we hope all apps will adopt.

If you get stuck and the docs don’t help, hit me up on discord.

3 Likes

I am also more than happy to help of course!

1 Like

That’s what I really waiting for now. Thanks.

2 Likes

Really interesting here… Would be good to have an official app… That’s what lots of users do when they look for new software… Is there an app…?? That’s also something what I do…

Well, one suggestion for me, please include to read NFC tags, like the app “Hass NFC”

About time :wink:

1 Like

Will the Android app have support for an internal URL, the same as the iOS app? It would be nice to be able to have it use the local address when I’m on my local WiFi and only use the remote URL when I’m away from home.
Built-in support for remote access via Home Assistant Cloud would also be good, so we could log in using the Nabu Casa login details and it automatically pick up the remote URL - I know we could always just enter the remote endpoint as the URL, but this would make it easier.

1 Like

you can make some dnsmasq on your router so your HA installation would resolve as your internal IP in WIFI and as an public IP on different DNS’es.

I don’t think that’s possible with my router. I’m with Virgin Media and use the Hub 3.

You can put your VM superhub in modem only mode and build yourself a hardware security appliance, like pfsense or opnsense. Or alternatively just buy another decent router. I personally opted for pfsense after 1 day of using the VM superhub, it’s a terrible router!!!

I bought Orbis and they are fantastic

1 Like

Since we are talking about Android, Pie has a function called “private DNS” which forces the phone to use a external dns server and goofs up the whole plan of having your router resolve to the internal address… on my phone it was turned on by default.