iOS app won't use Internal URL

The new 2.0 iOS app only appears to use the external URL even when I’m on my local network. I specified the SSID for my network and still not using internal URL. This is a problem for me because my router doesn’t route public URL’s back into the LAN, so I have to keep shutting off the WiFi on my phone to access my Home Assistant. I was having this same behavior in the previous app, but I didn’t realize at the time it wasn’t trying to use the internal URL. Is the app unable to detect that I’m on the LAN?

3 Likes

I’m having the same problem, the connection screen says ‘external URL’
The documentation mentioned something about location services and being able to see the SSID.
The App found my home SSID and populated the internal SSID field on it’s own.
Also it is tracking my SSID in sensor.ssid so I assume the permissions are correct?

1 Like

I see the same.

It works on our two iPads.

But it will only use external URL on our two iPhones. And I have changed the location permissions to Always

Mine works fine if I’m on wifi (the specified SSID) it is connecting via the internal URL. If I disable wifi on my iphone it uses the external URL

Follow up. I just noticed that our iPhones had a pending IOS update. I updated them to 13.2.3 and now they both connect locally and report SSID.
So either it was the IOS update or just the fact that they were rebooted in the upgrade process.

1 Like

I’ve had same problem on and off for the last few weeks and since updating to the release and rebooting the phone after changing the location services to Always for the app it’s detecting between internal and external.

We’ll see how long it lasts…

I’ve had the same issue. It does seem to be “fixed” temporarily by rebooting the device. How long it works for, I’m not sure. I did see a mention from robbie about ios not allowing apps to use the ssid information anymore, so maybe it has something to do with location reporting.

I just found this reference:

“Due to a privacy change in iOS 13, the app requires location permissions to check if you are connected to a local network, the location permission must be granted before the app can attempted to discover local instances.”

Listed here:
https://companion.home-assistant.io/en/getting_started/index.html

2 Likes

@KennethLavrsen thanks for mentioning the pending iOS update. Installing that update seems to have resolved it for me. I didn’t think to try rebooting first until after I had already initiated the update install, so as you said it may have been the reboot that did the trick. Hard to say.

My wife’s phone had same problem and rebooting solved it. Might not require installing latest iOS update.

mine always says using external url, even when on my home wifi, and unfortunately show that i am away, not home in my home / away icon on my hassio home screen.

in the previous app, i would have to update my location for the icon on my home screen to show that i was home and not away fairly often. i don’t see a way to update my location, and i am indeed home right now and my hassio home screen says i’m away. under app configuration / Location / Location it shows i am in the center of my location boundary, but it still shows me away. my guess is this is related to the internal / external URL problem?

I tried rebooting my iPhone and no change.
App still thinks I’m external.

What I just did try though is to change the default internal URL (http://homeassistant.local:8123) to just the IP of the server. (http://192.168.1.23:8123) and that worked.

figured out the part about home assistant showing me away instead of home. my device tracker name had changed so i had to update the name in the raw config to the name showing under home assistant / configuration / persons. shows me home now :grinning:

i tried that but got the error i had received when i first tried to setup the iOS 2.0 app… error: the certificate for this server is invalid. etc. because i am running duck dns but so it’s related to that for sure. the internal url is defaulting to the http://hassio.local:8123 so there are some special settings for using this with duck dns that i have wrong, evidently.

This issue still exists. I arrived home last night and was shown as “home” and the app would NOT use my internal ip. It’s very frustrating as my home internet is somewhat slow. UGH

Try using the IP of the server as the internal URL.
The bad cert you’re getting is probably the router’s cert, it’s getting confused by getting a request for an internal resource from inside and it’s trying to talk directly to you.

Check the sensor.ssid is updating

after strugling with this same issue I finally find out what was happening: you have to grant Device Location to the app , and, Device Location HAS TO BE turned on for the app to understand that the device is at home. Hope this helps

same issue here, app always using external url. location access is set for always for the app.
External url: https://(mything).duckdns.org
Internal url: https://(mything).local:8123

I use chrome to connect locally, I get a warning about the certificate, I pass it and all works fine.
if i try to connect using HTTP instead of HTTPS as expected there is no response.

in the app, the internal url is empty, and when I try to specify it it. I get an error "the certificate for this server is invalid. You might be … " and there is no way to go past this error.

any ideas how I can work this out?

I am having the same exact issue as you are. I can browse on my pc in my network via google chrome and just bypass the untrusted ssl but I do have to browse https anyways or it won’t find it.

Via the app it gives the certificate error and doesn’t let me proceed. So the only way for me to connect to the app on iphone is to turn off my wifi currently. I had this working before and thought a home assistant release update caused the issue but I reverted back to my snapshot before the upgrade and still the same issue.