My wife has an iPhone which she adamantly insists on leaving data usage off when away from home, mostly due to terrible battery life. Of course this leads to the device tracker not updating and marking her as home though she is away. To combat this I have the custom integration iphonedetect added as a device tracker to her person.
Even though the stationary iphonedetect-tracker is marked as away on her person, it’s not updating her state, instead marking her as home based on the GPS-tracker from 11 hours ago.
I also have the same issue. I use a rude method to over come it. First I have created a mqtt device tracker of source type router. then i added it to person integration. After that I use an automation like below to push home and away status.
The logic of the automation is like this. it is triggered when there is a change of state of iphonedetect-tracker. when triggered it waits for 10 seconds. Then checks if the icloud gps location is still home. If its still home it will push an away payload to the mqtt device tracker. Since this is a router based system it will be updated in person until or unless a valid gps coordinate outside home comes from icloud.