Hi. I don’t know if I did something wrong, but I generated the secret.json file despite the errors. All tags, LinkBuds S headphones, and my phone are showing up, but my watch (OnePlus Watch 2) isn’t showing up. However, I have a different problem. Despite adding the integration on September 29th, I still don’t have device locations. Since then, I’ve changed the location several times, but it’s still unavailable.
I have the same problem. The FCM Connection is always reset by peer error 1004.
Strangely I do not see DNS requests for the FCM Subdomain.
Will check if I find more.
Edit: seems to be this bug: [BUG] Error processing FCM callback · Issue #53 · BSkando/GoogleFindMy-HA · GitHub
Should be fixed with the next version, since the PR is already merged into main.
It seems this was not the fix for my/our problem. Will try to get logs.
Great integration! I’m running into what seems like either a problem or a limitation, and I wanted to check which one it is.
I’ve got the trackers set up in Home Assistant—one is my phone, and the other two are similar to AirTag devices. When I use your integration to play a sound on them, it works fine. But when I try to open the tracker’s page, I get an “access denied” error. Also, if I try to add the trackers to a map in Home Assistant, they don’t show up as selectable items—even though their entities do exist.
Is this a limitation of the Find Hub integration? I saw someone mention that these types of trackers aren’t actually allowed by Google to be displayed on maps.
Those that are struggling to get locations, you may need to go back and run main.py again. When you get through the first part, it will ask you if you want to check coordinates for one of your devices. Pick a device and go through the process. It will have you go through a second login process to get shared keys. After you succesfully see location data in the main.py windows, go back to your secrets.json and do the copy/paste into the integration again.
I will be adding this step back to the authentication process, as it appears it is still necessary!
EDIT: Please see updated authentication process:
that worked like a treat. Additional question; can the “shared with me” people be added through the specific user? ie. not get that user to also get the secret key but do it through one persons sercret?
Hello,
Very nice projet.
I created an issue because authenficiation ( the second step failed ) :
thnaks
hi, adding the integration was very easy. but i am unable to install the device card.
after adding the repo and restarting home assistant, the repo is gone again.
what is the problem?
I’m looking for a way to track a wear OS LTE watch. Is this the way to do it?
Well wouldn’t ya know it - I had to change my password and the auth was apparently lost at that point (integration quit working.) I tried again this time on two different Windows machines to no avail; getting this error (and I’m using your chrome_driver.py from your repo.) Pip requirements install went smooth, no issues there. (Edit: I originally posted a pic, realized you probably couldn’t read it so here’s what I copied from the terminal.)
(venv) C:\GoogleFindMyTools-main>python main.py
Loading...
[AuthFlow] This script will now open Google Chrome on your device to login to your Google account.
> Please make sure that Chrome is installed on your system.
> For macOS users only: Make that you allow Python (or PyCharm) to control Chrome if prompted.
[AuthFlow] Press Enter to continue...
[AuthFlow] Installing ChromeDriver...
[ChromeDriver] Default ChromeDriver creation failed: Message: session not created: cannot connect to chrome at 127.0.0.1:15366
from chrome not reachable; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#sessionnotcreatedexception
Stacktrace:
Symbols not available. Dumping unresolved backtrace:
0x7c58c3
0x7c5904
0x5de5bb
0x5d1e4c
0x61a006
0x61008f
0x60feb6
0x658993
0x65830a
0x64c766
0x61dac0
0x61ede4
0xa47974
0xa42bea
0x7ee5b4
0x7ddd28
0x7e4d8d
0x7cded8
0x7ce09c
0x7b7d1a
0x76185d49
0x7751d6db
0x7751d661
[ChromeDriver] Trying alternative paths...
[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:18305
from chrome not reachable; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#sessionnotcreatedexception
Stacktrace:
Symbols not available. Dumping unresolved backtrace:
0x6658c3
0x665904
0x47e5bb
0x471e4c
0x4ba006
0x4b008f
0x4afeb6
0x4f8993
0x4f830a
0x4ec766
0x4bdac0
0x4bede4
0x8e7974
0x8e2bea
0x68e5b4
0x67dd28
0x684d8d
0x66ded8
0x66e09c
0x657d1a
0x76185d49
0x7751d6db
0x7751d661
[ChromeDriver] Trying headless mode as last resort...
[ChromeDriver] Headless mode also failed: Message: session not created: cannot connect to chrome at 127.0.0.1:22424
from chrome not reachable; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#sessionnotcreatedexception
Stacktrace:
Symbols not available. Dumping unresolved backtrace:
0xd758c3
0xd75904
0xb8e5bb
0xb81e4c
0xbca006
0xbc008f
0xbbfeb6
0xc08993
0xc0830a
0xbfc766
0xbcdac0
0xbcede4
0xff7974
0xff2bea
0xd9e5b4
0xd8dd28
0xd94d8d
0xd7ded8
0xd7e09c
0xd67d1a
0x76185d49
0x7751d6db
0x7751d661
Traceback (most recent call last):
File "C:\GoogleFindMyTools-main\chrome_driver.py", line 70, in create_driver
driver = uc.Chrome(options=chrome_options, version_main=None)
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\undetected_chromedriver\__init__.py", line 466, in __init__
super(Chrome, self).__init__(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
service=service,
^^^^^^^^^^^^^^^^
options=options,
^^^^^^^^^^^^^^^^
keep_alive=keep_alive,
^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\selenium\webdriver\chrome\webdriver.py", line 47, in __init__
super().__init__(
~~~~~~~~~~~~~~~~^
browser_name=DesiredCapabilities.CHROME["browserName"],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
keep_alive=keep_alive,
^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\selenium\webdriver\chromium\webdriver.py", line 71, in __init__
super().__init__(command_executor=executor, options=options)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\selenium\webdriver\remote\webdriver.py", line 263, in __init__
self.start_session(capabilities)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\undetected_chromedriver\__init__.py", line 724, in start_session
super(selenium.webdriver.chrome.webdriver.WebDriver, self).start_session(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
capabilities
^^^^^^^^^^^^
)
^
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\selenium\webdriver\remote\webdriver.py", line 366, in start_session
response = self.execute(Command.NEW_SESSION, caps)["value"]
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\selenium\webdriver\remote\webdriver.py", line 458, in execute
self.error_handler.check_response(response)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\selenium\webdriver\remote\errorhandler.py", line 233, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: cannot connect to chrome at 127.0.0.1:15366
from chrome not reachable; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#sessionnotcreatedexception
Stacktrace:
Symbols not available. Dumping unresolved backtrace:
0x7c58c3
0x7c5904
0x5de5bb
0x5d1e4c
0x61a006
0x61008f
0x60feb6
0x658993
0x65830a
0x64c766
0x61dac0
0x61ede4
0xa47974
0xa42bea
0x7ee5b4
0x7ddd28
0x7e4d8d
0x7cded8
0x7ce09c
0x7b7d1a
0x76185d49
0x7751d6db
0x7751d661
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\GoogleFindMyTools-main\main.py", line 10, in <module>
list_devices()
~~~~~~~~~~~~^^
File "C:\GoogleFindMyTools-main\NovaApi\ListDevices\nbe_list_devices.py", line 45, in list_devices
result_hex = request_device_list()
File "C:\GoogleFindMyTools-main\NovaApi\ListDevices\nbe_list_devices.py", line 20, in request_device_list
result = nova_request(NOVA_LIST_DEVICS_API_SCOPE, hex_payload)
File "C:\GoogleFindMyTools-main\NovaApi\nova_request.py", line 18, in nova_request
android_device_manager_oauth_token = get_adm_token(get_username())
File "C:\GoogleFindMyTools-main\Auth\adm_token_retrieval.py", line 10, in get_adm_token
return request_token(username, "android_device_manager")
File "C:\GoogleFindMyTools-main\Auth\token_retrieval.py", line 14, in request_token
aas_token = get_aas_token()
File "C:\GoogleFindMyTools-main\Auth\aas_token_retrieval.py", line 30, in get_aas_token
return get_cached_value_or_set('aas_token', _generate_aas_token)
File "C:\GoogleFindMyTools-main\Auth\token_cache.py", line 18, in get_cached_value_or_set
value = generator()
File "C:\GoogleFindMyTools-main\Auth\aas_token_retrieval.py", line 17, in _generate_aas_token
token = request_oauth_account_token_flow()
File "C:\GoogleFindMyTools-main\Auth\auth_flow.py", line 22, in request_oauth_account_token_flow
driver = create_driver()
File "C:\GoogleFindMyTools-main\chrome_driver.py", line 100, in create_driver
raise Exception(
...<3 lines>...
)
Exception: [ChromeDriver] Failed to install ChromeDriver. A current version of Chrome was not detected on your system.
If you know that Chrome is installed, update Chrome to the latest version. If the script is still not working, set the path to your Chrome executable manually inside the script.
Exception ignored in: <function Chrome.__del__ at 0x000001C62FD26AC0>
Traceback (most recent call last):
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\undetected_chromedriver\__init__.py", line 843, in __del__
self.quit()
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\undetected_chromedriver\__init__.py", line 798, in quit
time.sleep(0.1)
OSError: [WinError 6] The handle is invalid
Exception ignored in: <function Chrome.__del__ at 0x000001C62FD26AC0>
Traceback (most recent call last):
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\undetected_chromedriver\__init__.py", line 843, in __del__
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\undetected_chromedriver\__init__.py", line 798, in quit
OSError: [WinError 6] The handle is invalid
Exception ignored in: <function Chrome.__del__ at 0x000001C62FD26AC0>
Traceback (most recent call last):
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\undetected_chromedriver\__init__.py", line 843, in __del__
File "C:\Users\****\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\undetected_chromedriver\__init__.py", line 798, in quit
OSError: [WinError 6] The handle is invalid
Any thoughts on what’s wrong or if I’m doing something wrong? Like I said, I used your repo instead of the original one.
My first thought is to make absolutely certain you have the most up to date Chrome installed and that you have all Chrome instances closed out before running the script.
Other in my Discord are having success using an Ubuntu Linux VM to run the script, since it is a containerized environment and easy to control configuration. But, obviously that is an extra layer of complexity.
I’ve been using it correctly for 2-3 weeks (thank you!). However, it recently started failing with a ‘bad authentication’ error. I thought regenerating the secrets file would fix it, but after following all the steps (as I did weeks ago), it now says ‘no devices found.’ Here’s my secrets file. Any clue?
[DELETED]
EDIT: reinstalling the integration and restarting HA fix the problem
Yesterday, I released V1.6.0, which fixed this issue (and many other issues).
One thing to note before updating, you will need to remove your current config after you update, then re-add the integration. This is due to the new multi-account feature. If you do not do this, you will end up with duplicate entities.
Enjoy the new release!
Your authentication will fail again eventually if you do not update to 1.6.0…that was happening due to a bug.
Hi, I successfully integrated Find hub integ., but the location is still not showing up. Lass seen is unknown. But when I select localization via a Python script and choose any tracker, I always get good GPS coordinates. So where is problem?
I have the exactly the same problem.
@supperka and @starmane007 is it your first time ever setting up the integration? You have never had another version of it? Just need to know to help troubleshoot
Also, what is your polling interval set at?
This has been on my list to try forever (still using a different implementation via a script only).
Can I ask if you’re passing the semantic locations to Hone Assistant as an attribute? I find it really handy having those.



