Google FindMy / Find Hub Integration

Greetings!

This is my first integration ever. It brings Google FindMy Network trackers to Home Assistant as device trackers! This is Google’s relatively new version of AirTags.

Please note that the integration is still under heavy development!

Google FindMy / Find Hub

Link to GitHub

Installation:

See my GitHub repo for detailed instructions. Note that authentication can be a bit tricky the first time you do it. Don't be afraid to stop by the GitHub repo Discussion board and ask for help if you get stuck!

Features:

  • Real-time (ish) tracking of Google FindMy supported trackers
  • Play sound on tracker from device information page (via service as well)
  • Add/remove trackers from integration options
  • Adjust polling intervals
  • Adjust accuracy and movement threshholds
  • Filter out Google Home devices from recorder/logbook using custom keywords
  • Service to manually poll specific devices
  • Location selection based on Accuracy, Recency, and Source (your device or network) of data

Acknowledgement

I want to acknowledge the amazing work of a of developer that laid the foundation for this project.

Leon Böttger, developer of https://github.com/leonboe1/GoogleFindMyTools. This project would NOT have been possible without your brains!

Special thanks to some AMAZING contributors!

Thanks everyone!

15 Likes

That sounds interesting. I am wondering whether it is possible to get the data from the location sharing service. In Google maps it is possible to share your location permanently with a contact to let them know where you are. My SO and I do this. It would be nice if it was possible to get this information. However, I think this is a different system than the FindMy service.


Nevertheless, it is always nice to see someone work on lowering the barriers of Google (and co) and making data more accessible. Appreciate it!

This looks to be awesome and right as I was looking for exactly something like this. However I’ve tried the GoogleFindMyTools on two different machines and still cannot get them to retrieve authentication. It keeps saying that I don’t have Chrome installed even though I have the latest version running and it’s up-to-date.

Any thoughts? It’s in Windows, btw. I run the option venv commands too, just to keep it isolated.

1 Like

The only time I have seen that error is when Chrome was not up to date…I remember once I had updated but forgotten to fully restart Chrome. Also, another thing to try is putting the tools right in the C:/ drive to minimize spaces/symbols etc.

Also, just to make sure, you installed all the dependencies in requirements.txt?

1 Like

Yep, all the dependencies. I’ll give it a simpler directory to minimize spaces and symbols tomorrow. My Chrome is up to date and I’ve rebooted too.

Hopefully that works out. There HAS to be a simple reason why it is not working for you. I did not use the venv commands when I authenticated…so maybe try without?

Tried with/without venv (virtual environment) - would have preferred to do it with of course, but it is what it is. Tried updating python, no dice.

Even tried on a fresh AWS Windows instance. Keeps hanging up on installing the chrome driver, saying that it can’t find it (even though it’s in the standard location, which is one of the locations in the script.)

I tried running it with Chrome not running and with it running, made sure it’s the latest version. I’m running it inside a CMD window with admin privileges too.

Three different systems, same result across all three. I’m at a loss.

Here’s the first error:

[ChromeDriver] ChromeDriver failed using path C:\Program Files\Google\Chrome\Application\chrome.exe: Message: session not created: cannot connect to chrome at 127.0.0.1:39519

Alright, I think I saw your issue post in Leon’s git…I made a few changes to the chrome_driver.py that might help…

I put it in my git here. Give this one a try instead of the one in Leon’s git

1 Like

That worked! At least, it got me a lot further down the road… I got an error further down but it got me where I can at least figure it out from here.

It gets to the LocationRequest, then to SharedKeyRetrieval and to DecryptLocations… then comes up with this (after showing me the location data)

Exception ignored in: <function Chrome.__del__ at 0x000002F5F24D27A0>

Will report back shortly when I get your code working (hopefully.)

So cool, thank you!!

Side note for everyone else: this will close your Chrome browser so if you’re a crazy old fart like me and have a bazillion tabs open, just make sure you’re logged in and sync’ing your browser so you can just open them back up.

1 Like

OK I reviewed the auth session stuff and it actually did work! I noticed your screenshots also had the same errors.

However I go to paste the contents of “secrets.json” into your app and after I hit “submit” it gives me this error:

No matter, what I set the values to (or turn off the poll_delay) it stops here…

Side note for everyone else again: It doesn’t give you a big giant box for pasting in the contents of your secrets.json file, just what appears to be a password sized box. It looks to have accepted it just fine though.

Right, it only gives a password sized box. You have to open the secrets.json in a text editor, select all, copy, then paste into the box. The integration generates the secrets.json in proper format automatically. Can you please go to the log and see if there is an error for this?

I’m not even sure where to look in the logs - my log file is full of errors (mostly cameras that have timeouts) but not sure what to look for.

Also, does it make a difference if my Google account uses a Yubikey? (2FA?)

Yubikey shouldn’t matter. The error you see in the config box means that there are no devices found, which means the secrets.json might not have been copied properly or might have been missing something.

When you ran the main.py successfully, were you able to actually get coordinates from one of your trackers?

EDIT: Your use case has prompted me to do apply some better logging to the authentication process so we can see exactly what the problem is with your secrets.json. I’ll apply the update soon

1 Like

Yep, I got coordinates - here’s the screenshot…

I’ll try again - I copied the entire contents of the secrets.json file and pasted right into the dialog box.

Oh! I tried again and it appears to be working!

I was able to submit and the devices showed up!! Now I just have to figure out how to USE it! LOL

Thanks again for all the help!

1 Like

Awesome!!! Glad it is working for you. Should be somewhat self-explanatory at this point. I tried to make it pretty simple, but feel free to ask questions here if you have any.

Just FYI, I have the location poll interval set to 60 seconds and have not had any issues. I set 300 seconds as a conservative default, but 60 seems to be safe so far. Obviously, it is up to you where you want to set it!

Yea I might bump it down to 60 seconds - one of the ideas I had for this was to be able to put a tracker in each of my vehicles - so that when I get near my home, it opens the main gate and the appropriate garage door. I don’t go anywhere without my phone but if my wife goes somewhere with her phone, it wouldn’t be able to tell which vehicle (and figure out which garage door to open.)

When the tracker for each vehicle comes home, an automation would open the gate for me as well as the correct garage door. (So I’m not fumbling around trying to push the buttons.) I just have to figure out how to get my wife’s phone as part of my Find My hub…

Quick question: how are tag deletions and additions in Find My Device manage in this intégration ?
I have to delete all and ask a secret json again ?

You can just remove the integration and add it again. Click the three-dot menu and click “Delete”. Then go through the integration setup steps in Home Assistant again.

Thanks.

I’ve a lot of message in my log like :

Cette erreur provient d'une intégration personnalisée

Enregistreur: custom_components.googlefindmy.coordinator
Source: custom_components/googlefindmy/coordinator.py:155
intégration: Google Find My Device (documentation, problèmes)
S'est produit pour la première fois: 21 septembre 2025 à 21:43:32 (290 occurrences)
Dernier enregistrement: 06:44:29

Invalid coordinates for ssssssss: lat=None, lon=None
Invalid coordinates for tttttttttt: lat=None, lon=None
Invalid coordinates for rrrrrrrrr: lat=None, lon=None

The localisation is good but I think this happens when the tags are seen by Google Home devices in the house and not by Android phones. When you see that in application screen :

With google find my tools I see the coordonates.