Location Tracking w/out Companion App

Does anyone have a good suggestion for tracking location in HA without a phone w/ the HA app? We would like to be able to see the approximate location of our child at a reasonable interval when away from home with a caretaker. We use Android phones in our homes.

I looked at all the Bluetooth tracker options. My understanding is that AirTags require a manual refresh or always-unlocked Apple device to pass the location. I haven’t seen a way to integrate the Google Find My Device network aside from an iFrame that requires the viewer to be logged in to an account with access. The Tile integration seems to no longer work. I haven’t seen any Bluetooth trackers that use a network robust enough to be reliable (Apple, Google, or Life360) that also integrate.

We are hoping to avoid the GPS/cellular devices with monthly subscriptions. Most of the tracking we care about is away from home, so local BLE tracking doesn’t help.

I was surprised some clever people in the community haven’t figured out a way to do this yet. But I’ve been trying to come up with ideas and have been stumped.

Does anyone have a suggestion or solution that I’ve missed?

You could look into something like this if nothing else fits your requirements:

Thanks for that! Looks promising if I can find a way to do it without having to charge a battery almost daily on some device.

Tile is not dead yet.
I used an old Tile in my son’s bag to know if he was home or not, but a few times it updated with the position of the school.
So someone at school used the app.

But doesn’t Samsung also have their own trackers?

Google now has a “Find My Devices” network similar to Apple’s. Both are based on the idea that phones passively detect BLE broadcasts and, if they are from a tracker tag, upload the location anonymously. Neither requires a device to be always-unlocked or an app installed / manually refreshed, everything happens in the background seamlessly as long as bluetooth is enabled — which is what makes these networks superior to Life360 / Tile, which require the anonymous phones to have an app installed and running.

Your Android phone will have access to all your tags’ locations, but I don’t see a way to feed these updates into HA as of today (tasker, maybe?). Even with AirTags, although their position is uploaded to iCloud, it is not part of the family sharing API used by iCloud3 integration. Both networks are highly concerned about privacy and illicit use, given how affordable they are, so the APIs relatively locked down.

For an annual fee, you can purchase a prepaid SIM card for a cheap Android phone running OwnTracks or Locative which posts to a (private) server at set intervals. I used an Invoxia GPS tracker on my eBike, which uses 4g cellular and lasted about 3 months on a charge. The subscription fee just went up, but still only $67 a year, and there is a 3rd-party integration to get the data from the Cloud to HA.

Have a look at the Bermuda integration, which works with any Bluetooth tracker (I have three from Tile!). It provides Home/Away data as well as room presence.

Yeah, I’m well aware of the Google network. But my hope was to integrate with HA in one device. For home/away etc so the alarm doesn’t arm and HVAC go to away and all the lights stop working automatically when I leave and she’s at home with our son.

Maybe I should give up and go for a device tracker and a separate home/away detection. But I was hoping to do it all in one.

Bermuda is for locating devices in your home. The requirement is for

But think about it @bradarussell - you need connsctivity between whatever your child is carrying and your home assistant machine. Effectively that is going to need a cellular device, or something communicating through a cellular device. Aside from LoRaWan there is simply nothing else with the range you need.

One thought is to create a DIY device with a raspberry pi 2040 attached to a sim800 and a GPS chip. It wakes up every [time interval], gets a GPS fix and then sends an sms message with the location. Or something like that.

So reading all this it’s still unclear to me…

does your child carry a phone with them or not?

if yes then you can use the Life360 service at the free level that has a (for now) working custom integration.

FWIW, I’ve created three custom integrations that you might find useful:

Life360

Enhanced Google Maps

Enhanced GPSLogger

I’ve used all three with Android devices (and the first two with iOS devices.)

And if you use more than one on a single device, I also created the following to combine them into a single device tracker entity:

Composite Device Tracker

2 Likes

Hi, I have a question about the GPSLogger.

I want to use the anhanced google maps and the enhances GPSLoger in comination with the composite device tracker. And I think I set everything correct up. Google Maps works and the composite device tracker also. Only the GPSLogger is not working properly I think.
I did everything like the configuration setup says, but I get no device_tracker entity in HA from the integration. So how can I add the device in the Composite Device Tracker?

You can’t. You’ve got to get the GPSLogger integration working so that it creates a device_tracker entity first.

GPSLogger can be a bit tricky to get working. To see if you’re getting any data from the GPSLogger app on your Android phone, you can enabled debug in HA for homeassistant.components.webhook. If you’re not sure how to do that, see the Logger documentation. (Don’t forget to restart HA after changing configuration.yaml.)

When you get data, you should see something like this in home-assistant.log:

2025-02-05 08:03:27.449 DEBUG (MainThread) [homeassistant.components.webhook] Handling webhook POST payload for <webhook>

Where <webhook> is the webhook ID indicated when you set up the GPSLogger integration in HA.

Don’t forget that GPSLogger generally only sends data when the phone moves. There may be a better way, but the way I use to force it to send data is to click STOP LOGGING and then START LOGGING. Once it acquires enough satellites it should send data (and fill in the fields on the screen.)

I get this logging:

2025-02-05 15:31:51.250 DEBUG (MainThread) [homeassistant.components.webhook] Handling webhook POST payload for MY_WEBHOOK_ID
2025-02-05 15:31:51.250 INFO (MainThread) [homeassistant.components.webhook] Received message for unregistered webhook MY_WEBHOOK_ID from MY_PUBLIC_IP
2025-02-05 15:31:51.250 DEBUG (MainThread) [homeassistant.components.webhook] b'latitude=XXX&longitude=XXX&device=my_handy&accur'

That’s it, so HA get the webhook message, but it seems to cut off?

Normally you’d only see that first message. The fact that you’re getting the two other messages, especially the one that says, “Received message for unregistered webhook …”, implies that the GPSLogger integration is not set up correctly, or is disabled or something. Otherwise, it would “consume” the webhook and you wouldn’t see the last two messages in the log.

Are you sure the GPSLogger integration is set up, configured and enabled?

Unfortunately, once the integration is added/configured, the UI does not provide a way to go back and see what the webhook ID was (if you didn’t copy and save it somewhere before you finished), so it’s kind of hard to tell that the integration and the Android app are using the same webhook ID. But if you know how to read HA’s hidden files, you can find it. Specifically, look at /config/.storage/core.config_entries. (E.g., grep config/.storage/core.config_entries -e GPSLogger.) You can find the ID after "webhook_id". Make sure the value in this file is the same as you’re using in the Android app’s custom URL.

Or, if you don’t know how to do that or don’t want to, simply remove the GPSLogger integration config entry and add it again. But this time, make sure to copy & save the webhook ID. Then change the custom URL in the Android app to match the new webhook ID.

I saved the webhookID when I add the integration and use this one in the Android App. I know that must be the right ID.

But of course I can remove and add the integration again. Maybe I copied s.th. wrong.

Now I have the same behaviour with the new webhookID, same logging entries, but with the new ID. I don’t know what I am doing wrong. But I have to, I think.

I checked every single step in the configuration of the android app and I did everything like in the description. Do I have to do something with the integration? I add it and get the webhookID and after that,do I have to do something with the integration or just add the ID in the android app?

Well, it’s been a while since I set up the integration in my system, but as I recall, no, there should be nothing else you need to do with the integration.

If you go to Settings → Devices & services → GPSLogger, what do you see for devices & entities? E.g., in my system, I see this:

I see two devices & entities because I used it with an older phone, then used the same URL/webhook on a newer phone. I just haven’t gotten rid of the older entries. You should see one device & entity I would think.

I thought that I have to see devices or in my case one device, but my integration is “empty”, no devices added.

I dont undertand why the webhook ist working but the GPS Integration doesnt recognize it so that IT creates the device_tracker.
I dont know whats wrong.

I have an Idea maybe:
When I add the Integration I got the webhook ID Like this:
https://hooks.nabu.casa/gAAAAA… and I take only the gAAAAA… part its extremly Long and put it like this:
https://MY_DOMAIN/api/webhook/gAAAAA…

Is that correct?