home-assistant / iOS

:iphone: Home Assistant for Apple platforms
https://companion.home-assistant.io
Other
1.51k stars 290 forks source link

iPhone app go to blank screen using Nabu Casa #2259

Open szmidtpiotr opened 1 year ago

szmidtpiotr commented 1 year ago

iPhone 11 max pro iOS 16.1.1

app: official & beta

After lounching app it goes to default dashboard, and after 2-3s realods it, and after another secound it goes to blanks white screen

szmidtpiotr commented 1 year ago

https://youtube.com/shorts/P7OiR4TFEOo?feature=share

scottrhoyt commented 1 year ago

The blank screen issue appears to be when the app has a problem rendering the front end--usually a specific dashboard. Unfortunately, this happens on the default dashboard quite a bit and when the front end fails to render, you cannot access the settings menu to switch to another dashboard or switch your default dashboard. Here is my workaround (iOS):

A solution for the app developers would be to detect the failure of rendering the front end, pop an alert, and offer to fallback to a known working page like profile or settings.

szmidtpiotr commented 1 year ago

@scottrhoyt thank you for suggestions, but unfortunetly it fail on the first point. When I try to enter url you provided (also with IP, and .local) it fails. Recive error 404: Not Found

EDIT: ive hanged defult Dashboaard from Dwains Dashboard to Lovelace and then uninstal app from iOS and reinstall it. Now it work for some reason

scottrhoyt commented 1 year ago

Sorry it didn't work for you. The URL here doesn't map to anything on your local network. It is formatted to be a URL that the HA iOS app is registered to handle (homeassistant:// url scheme) followed by a deep linking path that asks the app to navigate to a certain page on the front end (in this case your profile page). If you are getting a 404, it sounds like the HA app may not have successfully registered its URL schemes for some reason.

Moustik2002 commented 1 year ago

The blank screen issue appears to be when the app has a problem rendering the front end--usually a specific dashboard. Unfortunately, this happens on the default dashboard quite a bit and when the front end fails to render, you cannot access the settings menu to switch to another dashboard or switch your default dashboard. Here is my workaround (iOS):

* Open the following url on your mobile device (e.g. from Safari): homeassistant://navigate/profile

* If you haven't done this before, the app will ask you to allow opening of URLs, select `Always`, and if the app fails to open the profile page, force close it and reopen the above link.

* In the profile page, scroll down to default `Dashboard` section and select a known working dashboard on mobile for default (usually not the default overview dashboard).

* (optional) In the app, go to `Settings->Companion App->General`. Disable `Remember Last Page` to avoid the app getting stuck in another loop trying to open a non-rendering page. Enable `Confirm before opening URL` to re-enable the URL opening check that we disabled above.

* Force close the app and reopen and you should be back in business.

A solution for the app developers would be to detect the failure of rendering the front end, pop an alert, and offer to fallback to a known working page like profile or settings.

I had hope on this solution but still in 2023, behavior is the same unfortunately ...

EDIT: i've found out that if i set a dashboard without layout-card "mod" issue seems to be fixed (crossing fingers) --> add comment on issue here : https://github.com/thomasloven/lovelace-layout-card/issues/225

Minique85 commented 1 year ago

I had hope on this solution but still in 2023, behavior is the same unfortunately ...

EDIT: i've found out that if i set a dashboard without layout-card "mod" issue seems to be fixed (crossing fingers) --> add comment on issue here : thomasloven/lovelace-layout-card#225

Same issue for me and my wife. We both have iPhone with companion apps and this remains a problem. I have documented it in this thread on the HA forum: https://community.home-assistant.io/t/home-assistant-app-showing-a-blank-screen-chrome-safari-on-ios-crash/469565/8?u=dcc

I use Mushroom as a front end design, would it include the above mod by unfortunate luck? I do not use that mod on its own.

Moustik2002 commented 1 year ago

I had hope on this solution but still in 2023, behavior is the same unfortunately ... EDIT: i've found out that if i set a dashboard without layout-card "mod" issue seems to be fixed (crossing fingers) --> add comment on issue here : thomasloven/lovelace-layout-card#225

Same issue for me and my wife. We both have iPhone with companion apps and this remains a problem. I have documented it in this thread on the HA forum: https://community.home-assistant.io/t/home-assistant-app-showing-a-blank-screen-chrome-safari-on-ios-crash/469565/8?u=dcc

I use Mushroom as a front end design, would it include the above mod by unfortunate luck? I do not use that mod on its own.

No i'm using Mushroom too and it doesn't reproduce the issue.

Minique85 commented 1 year ago

Thanks @Moustik2002 for the feedback - I went through the procedure again today, changing the settings while on my WIFI connections before trying over 4G with VPN. Now it works... Let's see if it holds and if there is a manipulation that brakes it. I only have that issue when using the VPN.

Minique85 commented 1 year ago

So today the issue is back. When yesterday it worked. The difference: I am accessing via 4G from a foreign country, not my home country.

I do not understand why that would make a difference but that’s a fact I verified twice now. When I access it via 4G in my country, all is well. When I am abroad, I get this blank screen dashboard. Since I leave near a border and cross often this is really annoying.

Maybe someone can figure out why!

BobC76 commented 1 year ago

I've landed up here suffering the same thing.

I have tested with a completely blank dashboard except one standard entity card, showing a very static sensor (Samba version as it happens), set as default dashboard to the user account which is logged in on the device. I find that having initially loaded the dashboard, after about 1-2 mins the sidebar and header remain but the cards section is blank. It seems to happen on any dashboard. I've tried the workaround of disabling Remember Last Page. I had browser-mod integration running, so disabled that and restarted just to try to eliminate that as a potential cause, which didn't make a difference.

However, when I switch to a view, containing exactly the same one entity card, off the dashboard, it seems stable! So my workaround appears to be: put my dashboard into a view.

I have attempted to scan the debug logs from the app to look for anything untoward, and the error rows reproduced here in case they trigger something to someone:

2023-08-10 14:21:51.070 [Error] [main] [Environment.swift:72] init() > WebSocket: Error: Optional(POSIXErrorCode: Software caused connection abort)

2023-08-10 14:21:52.351 [Error] [main] [ZoneManager.swift:112] perform(event:) > final error for ZoneManagerEvent(locationChange([<lat,long> +/- 65.00m (speed -1.00 mps / course -1.00) @ 07/08/2023, 02:12:14 British Summer Time])): duringOneShot

2023-08-10 14:21:52.624 [Error] [main] [WebViewController.swift:1068] handleExternalMessage(_:) > unknown: result

2023-08-10 14:21:53.145 [Error] [webhookmanager-data] [WebhookManager.swift:540] responseInfo(from:) > no persisted info for LocalUploadTask <082E0990-DD08-4159-8626-3BEBF5256411>.<113> (nil)
2023-08-10 14:21:53.278 [Error] [main] [HAAPI+RequestHelpers.swift:15] handleResponse(response:seal:callingFunctionName:) > Error on GetMobileAppConfig() request: responseValidationFailed(reason: Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(code: 404))

2023-08-10 14:25:09.905 [Error] [main] [Environment.swift:72] init() > WebSocket: Error: Optional(POSIXErrorCode: Software caused connection abort)
vinter-wu commented 10 months ago

I've landed up here suffering the same thing.

  • HA App and Safari browser on a 12.5.7 iOS iPad 2 mini.
  • Home Assistant 2023.8.1
  • Supervisor 2023.08.1
  • Operating System 10.4
  • Frontend 20230802.0 - latest

I have tested with a completely blank dashboard except one standard entity card, showing a very static sensor (Samba version as it happens), set as default dashboard to the user account which is logged in on the device. I find that having initially loaded the dashboard, after about 1-2 mins the sidebar and header remain but the cards section is blank. It seems to happen on any dashboard. I've tried the workaround of disabling Remember Last Page. I had browser-mod integration running, so disabled that and restarted just to try to eliminate that as a potential cause, which didn't make a difference.

However, when I switch to a view, containing exactly the same one entity card, off the dashboard, it seems stable! So my workaround appears to be: put my dashboard into a view.

I have attempted to scan the debug logs from the app to look for anything untoward, and the error rows reproduced here in case they trigger something to someone:

2023-08-10 14:21:51.070 [Error] [main] [Environment.swift:72] init() > WebSocket: Error: Optional(POSIXErrorCode: Software caused connection abort)

2023-08-10 14:21:52.351 [Error] [main] [ZoneManager.swift:112] perform(event:) > final error for ZoneManagerEvent(locationChange([<lat,long> +/- 65.00m (speed -1.00 mps / course -1.00) @ 07/08/2023, 02:12:14 British Summer Time])): duringOneShot

2023-08-10 14:21:52.624 [Error] [main] [WebViewController.swift:1068] handleExternalMessage(_:) > unknown: result

2023-08-10 14:21:53.145 [Error] [webhookmanager-data] [WebhookManager.swift:540] responseInfo(from:) > no persisted info for LocalUploadTask <082E0990-DD08-4159-8626-3BEBF5256411>.<113> (nil)
2023-08-10 14:21:53.278 [Error] [main] [HAAPI+RequestHelpers.swift:15] handleResponse(response:seal:callingFunctionName:) > Error on GetMobileAppConfig() request: responseValidationFailed(reason: Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(code: 404))

2023-08-10 14:25:09.905 [Error] [main] [Environment.swift:72] init() > WebSocket: Error: Optional(POSIXErrorCode: Software caused connection abort)

@BobC76 Does this method still work?