About
Google Find My Device is a custom integration that tracks Google Find My network devices from within Home Assistant. It adds a device tracker with a last location entity, plus buttons to play or stop a sound and to locate a device now. Sensors report battery, last seen time, location status and update statistics, and each tracker has a filterable historical map view. The best location is chosen by recency, accuracy and source, and implausible location jumps or coarse fixes can be rejected through options. Named semantic locations with a detection radius can be added, and more than one Google account can be used. It relies on Google's cloud, is added as a custom repository in the Marketplace, and is configured in the UI with credentials from a secrets file.
Automatic summary of the README and code of BSkando/GoogleFindMy-HA. Something wrong, or are you the maintainer and want your own text here? Get in touch
Supports
Uses the vendor's cloud Needs an internet connection and an account with the vendor.
From the Marketplace Installed through the Marketplace, formerly HACS.
Actively maintained Its author released or pushed a change in the last six months.
Provides
- Sensors
- Presence
Setting it up
Add its repository to the Marketplace as a custom repository and install it, then restart Home Assistant and add it under Settings, Devices and services.
Google Find My Device Authentication
- Authentication Method
Existing credentials found
- Import the credentials foundKeep this enabled to import the file shown above. Turn it off to pick an authentication method yourself instead.
Replace the stored credentials?
- Replace the stored credentialsKeep this enabled if you have just signed in again. Turn it off to keep the credentials Home Assistant is using right now.
GoogleFindMyTools secrets.json
- Contents of secrets.json file
Polling Settings
- Location poll interval (s)
- Device poll delay (s)
- Filter Google Home devices
- Filter keywords (comma-separated)
- Create statistics entities
- Enable map view token expiration
- Enable map view
Select hub
- Hub
Reauthenticate
- New secrets.json (full contents)
After setup
- Semantic name
- Latitude
- Longitude
- Detection radius (m)Approximates the connection range of the device (e.g., 15-20m for Bluetooth).
- Semantic location
- Semantic name
- Latitude
- Longitude
- Detection radius (m)Approximates the connection range of the device (e.g., 15-20m for Bluetooth).
- Semantic name
- Latitude
- Longitude
- Detection radius (m)Approximates the connection range of the device (e.g., 15-20m for Bluetooth).
- Semantic locations
- New secrets.json (full contents)
- Feature group
- Location poll interval (s)
- Device poll delay (s)
- Stale threshold (s)After this many seconds without a location update, the tracker state becomes unknown. Use the 'Last Location' entity to always see the last known position. Default: 3900 (65 minutes).
- Show location age attributeWhen enabled (default), a 'location_age' attribute (rounded to 1 minute) is added to each tracker entity. It keeps the age of the last observation and changes only with the next one (for example a new fix, the change to stale, or an availability change). The live age is on the 'Last Seen' sensor of each device, the live status on its 'Location status' sensor.
- Reject impossible location jumpsWhen enabled (default), a location fix that would require physically impossible speed (for example a crowd-sourced report placing the tracker hundreds of km away within seconds) is rejected instead of teleporting the tracker. Own GPS reports always pass. Disable only if legitimate fast movements are being dropped.
- Recover legitimate return tripsWhen enabled (default), a crowd fix that the speed gate would reject as a teleport is accepted instead if it lands back near the position from just before an earlier accepted long jump, within about 15 minutes. This recovers a legitimate return trip rather than leaving the tracker stranded at the far position. It only ever applies where the speed gate would otherwise reject. Disable if you see the tracker flapping between two places.
- Discard a coarse fix that would displace a better oneWhen enabled (default), an incoming location fix is discarded if it lies clearly outside the uncertainty circle of the cached position, is at least four times less accurate than it, at least 200 m coarse, and that cached position is both reliable and still fresh. Nothing is ever discarded without a better alternative: a coarse fix is always accepted on a cold start, or when the cached position is unreliable or stale. This stops a wide crowd-sourced report from moving the tracker and - because Home Assistant uses the accuracy radius as the zone tolerance - from falsely reporting it as home. Disable only if you suspect this gate itself is causing a problem. A discarded fix is shown by the device's 'Discarded coarse fix' sensor until a fix that is as new or newer is accepted, the discarded fix is older than the stale threshold, or the integration is reloaded (as on a Home Assistant restart); the rest of the time that sensor shows unknown, which is normal.
- Filter Google Home devices
- Filter keywords (comma-separated)
- Create statistics entities
- Delete caches when removing entryRemove cached tokens and device metadata when this entry is deleted.
- Enable map view token expirationWhen enabled, map view tokens expire after 1 week. When disabled (default), tokens do not expire.
- Enable map viewEnabled by default. When disabled, Map View requests are refused like an invalid token and device links are cleared. Does not rotate existing share links; if one may have leaked, use "Enable map view token expiration" (allow up to two weeks if it was already on).
- Location contributor modeChoose how your device contributes to Google's network (All areas by default for crowdsourced reporting, or High-traffic areas only).
- Feature group
- Devices to restore
- Feature group
Texts from the code of BSkando/GoogleFindMy-HA.
Entities
- Binary sensorsPolling, FCM Connection Status, Unwanted Tracking Mode, Nova API authentication status
- ButtonsPlay sound, Stop sound, Locate now, Reset Statistics, Regenerate FCM Token, Regenerate ADM Token
- PresenceLast Location
- SensorsBLE Battery, Plus Code, Location status, Discarded coarse fix, Last Seen, Semantic labels, Encryption Key Status, Background updates, Polled updates, Crowd-sourced updates, Historical fallbacks, Timeouts, and 2 more
Actions
- Locate DeviceGet the current location of a Google Find My device.Fields: Device
- Play SoundPlay a sound on a Google Find My device.Fields: Device
- Stop SoundStop the sound on a Google Find My device.Fields: Device
- Refresh Device URLsRefresh the configuration URLs for Google Find My devices to point to the integrated map view.
- Rebuild Device RegistryMaintenance: rebuilds device registry links for Google Find My hubs and removes tracker devices incorrectly tied to the parent entry.
- Locate Device (External)Locate a device using the external helper; delegates to the normal locate operation.Fields: Device, Device Name (optional)
- Rebuild / Migrate RegistryMaintenance: Run a soft data→options migration or rebuild entities/devices for this integration.Fields: Mode, Devices (optional)
Troubleshooting
- DiagnosticsDownloads a diagnostics file to attach to a bug report.
- System healthAdds its status to Home Assistant's system information.
- Repair noticesNotices it can show in Settings, Repairs:Reauthentication required, FCM Push Connection Failed, Google Find My Device push needs re-authentication, Multiple configuration entries detected, Entity unique ID collision detected, Duplicate account entries detected, Authentication cache cleared, FCM Push Crash Loop Detected, Restart Home Assistant to finish the update, Tracker attributes now keep the value of the last observation
From the README
A comprehensive Home Assistant custom integration for Google's FindMy Device network, enabling real-time(ish) tracking and control of FindMy devices directly within Home Assistant!
- 🗺️ Real-time Device Tracking: Track Google FindMy devices with location data, sourced from the FindMy network
- ⏱️ Configurable Polling: Flexible polling intervals with rate limit protection
- 🔔 Sound Button Entity: Devices include button entity that plays a sound on supported devices
- ✅ Attribute grading system: Best location data is selected automatically based on recency, accuracy, and source of data
- 📍 Historical Map-View: Each tracker has a filterable Map-View that shows tracker movement with location data, localized into every shipped UI language
- 📋 Statistic Entity: Detailed statistics for monitoring integration performance
- #️⃣ Multi-Account Support: Add multiple Find Hub Google accounts that show up separately
- ❣️ More to come!
Shows in Vulpo
Button card, Chart card, Apple Watch.Information
- Installs
- 1k sharing analytics
- GitHub stars
- 383
- Connection
- Uses the vendor's cloud
- Upkeep
- Updated in the last 6 months
- Version
- v1.7.14,
- Category
- Presence and location, Trackers
- Kind
- Marketplace integration
- Brand
- Needs
- Added as a custom repository in the Marketplace
- Domain
googlefindmy- Issues
- Report an issue






















