Android: constant Firebase crash (because Google Play Services is not installed on phone with custom ROM)

type: crash
osVersion: google/sunfish/sunfish:13/TQ3A.230805.001/2023100300:user/release-keys
package: com.hubitat.app:136
process: com.hubitat.app
processUptime: 40454 + 844 ms

Caused by: java.io.IOException: TIMEOUT
	at com.google.android.gms.cloudmessaging.zzy.run(com.google.android.gms:play-services-cloud-messaging@@17.0.0:1)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:463)
	at java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
	... 1 more

looks like you're trying to use Google Play Services, which isnt installed on my phone. please make your app work without that or Firebase. you can do notifications using a persistent notification like Forkgram does.

Currently, as you've pointed out, the Android app supports standard Android ROMs, for instance the ones on mobile devices from Google and Samsung.

I don't know if there are plans to support custom ROMs that don't use Google Play Services, so I'll tag the Hubitat SME for mobile apps for a definitive answer - @moncho1138.

Thanks. For reference I'm using GrapheneOS. I think since one of the main selling points of hubitat is that it's not cloud-connected, it stands to reason that many users won't want to be using cloud-connected phones.

The Android app seems to work perfectly fine on my old Fire HD 8 with Google Play Services side-loaded (gapps nano package I believe)

I wouldn't exactly say that. One of its main selling points is that it isn't cloud DEPENDENT, but it most definitely IS cloud connected. In fact, I'd go even further and say it IS actually cloud dependent to a good extent, even if you run ALL your automation locally with no external cloud services. The mobile app relies on the cloud if you're not on local LAN (unless you use a personal VPN) and you still must rely on Hubitat cloud for platform updates. There is no method (that I'm aware of) for downloading and manually updating the Hubitat to keep it up to date. You can't even use Hubitat without first setting up a Hubitat account and registering it with their cloud..

So yeah, while you can run it disconnected from the Internet (after initially registering it online) and still automate your house, you still need the Internet to keep it up to date or to interact with it from outside your network.

2 Likes

Indeed i only want local lan access, and i only plan on controlling local zwave devices. I totally believe it will work if you sideload Google spyware.

Tons of people are trying to minimize their interaction with Google, and almost every other app works fine without firebase. Almost no other app crashes without firebase. Simply throwing a try/catch around that would resolve my issue in the short term at least. Long term a persistent notification solves the issue.

There really should be a manual firmware write feature. That would likely resolve my other issue, which is a broken Rule Machine due to some version mismatch. I'd like to be able to downgrade until that feature works again.

I appreciate your comments!

Then you don't really need the app at all. You can access dashboards from any device with any browser (links for the local dashboards can be found in the settings Ui for each dashboard on the Apps. Furthermore, the cloud versions of the dashboards can be disabled from here too)

The only other thing the app is useful for is notifications, but those are entirely cloud dependent if using the app. So a local-only solution could be a dashboard with a tile to display current notifications, or using a speech device with local TTS capabilities to announce notifications out loud, or integrate Hubitat with some local messaging server of you own like Jabber or something.

1 Like

Right I can work around it. But it should be fixed.

I believe other users have pointed this out before (or similar issues related to not using google play services), but I’m not sure it’s considered a priority since most Android users use standard roms.

You can always make a feature request here in the forum, though.

1 Like

I would agree with this, except I'd substitute "most" with "the vast majority". Also, there seems to be a misinterpretation of what "local" means in the context of automation.

However, as you've pointed out, there's nothing lost by making a feature request.

2 Likes

I get the importance of running local automation. This was one of my reasons for choosing Hubitat over other systems (I came to Hubitat from Savant and Control4) But I think it's important to acknowledge that Hubitat absolutely relies on Hubitat's cloud for many important services, including updates and initial setup. I personally, don't see this as much of an issue at all, but it does seem that some people actually want complete local everything. As in, you can buy it, set it up, and keep it up to date without ever having the device phone home or setting up a cloud account with the manufacturer, which is not the case with Hubitat. Anybody running a custom ROM on Android designed specifically to work around cloud products seems like they would fall into this camp, so I just wanted to be explicit that Hubitat may not qualify for complete "cloudlessnes" for this particular group of people.

So don't use the mobile app? You can send a dashboard link to your phone and interact with the dashboard via any internet browser if you use those specific links.

You lose geolocation and a couple other things that the app handles, but it sounds like you won't want to use those features anyway.

I think complete lack of "cloud" anything in the context of automation is pretty limiting. I have some Lutron stuff, but just the basic hub so separate from Hubitat.

The companies I am avoiding are intrusive to privacy. Google, Amazon, Facebook, and all the companies they own (Ring, etc) are looking to record your actions, face, voice, etc. for marketing and more nefarious purposes. Any device that records video, audio, text needs to be local only or not used at all in my life.

Hubitat seems to allow me to do some of that provided i can get things working. I used HomeAssistant for a while but it's just too clunky and fiddly for me.

1 Like

I am pretty privacy minded too, but can't live without Google services. So I use a combination of PiHole and VPN to let me use Google Services while still blocking 99% of their tracking and analytics. Same for Amazon, streaming services like Netflix, Hulu, etc. The only downside of completely stopping tracking is that none of my streaming services ever show any history. Every time I start Netflix, it's like the first time. No viewing history, etc. If I stop a show midway thru an episode and restart Netflix later, it has no idea where I left off or even that I ever watched that show before.

I get that. Except Hubitat has never claimed to be cloud-independent. Their claim, which I agree with, is that they support fully local automation - specifically in the context of locally connected sensors and actuators.

1 Like

Agreed. I only elaborated further because I saw this:

1 Like

That would’ve been my assumption, but it’s not like I looked up numbers to verify. Plus I was trying to be polite :slightly_smiling_face:.

Ultimately, I agree this is an (extreme) edge case.

That’s in no way meant to suggest it isn’t important to the OP (or to others in a similar boat).

But it would understandably be a major consideration for staff when prioritizing feature requests.

1 Like

I need the mobile app to add zwave devices by qr code, and for device notifications. I thought perhaps developers might like to know about an embarrassing crash that 99.9% of other apps don't have. I'm not looking for workarounds; I'm already working around it.

I'm simply trying to get phone notifications if a door is left open. I'm starting to think this is beyond the hubitat to provide unless I lock into the very system I'm trying to avoid by using GrapheneOS.

Its a try/catch in java. 3 lines of code. "Major consideration" HA!

The effort involved is no doubt part of how feature requests are evaluated by the staff. But that’s not what I was referring to.

2 Likes