Skip to content

V1.7.0-3

Choose a tag to compare

@BSkando BSkando released this 24 Jan 04:48
827343f

Shout out to @jleinenbach for all the hard work on this release!

🚀 Key Features

1. Global EID Resolver API (Bermuda Support)

  • Introduced GoogleFindMyEIDResolver exposed via hass.data[DOMAIN][DATA_EID_RESOLVER].
  • Cross-Account Resolution: The resolver aggregates identity keys from all loaded config entries. This allows local BLE scanners (Bermuda) to resolve "FMDN RAW" payloads for devices owned by any configured account (including shared devices), not just the primary one.
  • Performance: Implements pre-computation of EIDs and caching mechanisms to handle high-frequency BLE advertisements without blocking the event loop.

2. True Multi-Account Support

  • Entry-Scoped State: Refactored TokenCache, Coordinator, and FCMReceiver to operate strictly within the scope of a ConfigEntry.
  • Isolation: Multiple Google accounts can now coexist. Keys, tokens, and device lists are isolated per account.
  • Duplicate Prevention: Added logic to detect and prevent adding the same Google account twice, raising a standard Repair issue if detected.

3. Device Registry & Unique ID Migration

  • Namespaced Identifiers: Migrated entity and device unique IDs to include the entry_id (e.g., entry_id:device_id). This prevents collisions when the same physical tracker appears in multiple accounts (e.g., Owner and Shared User).
  • Self-Healing: Added routines to detect and repair orphaned device registry entries or incorrect parent/service-device links.

🐛 Bug Fixes & Stability Improvements

  • FCM Receiver Logic: Implemented reference counting for the shared FCM receiver. It now correctly attaches the Home Assistant context (attach_hass) to enable owner-index fallback routing.

Coordinator Robustness:

  • Fixed race conditions during startup and reloads.
  • Improved handling of ConfigEntryAuthFailed to correctly trigger the Re-Auth flow without spamming logs.
  • Added explicit handling for RAW SPY scenarios where previously keys might not have been loaded into the resolver.
  • API Error Handling: Better mapping of upstream NovaAuthError and HTTP 401/403 responses to HA authentication states.
  • Cleanup: Proper shutdown routines (async_unload_entry) to flush caches and stop background tasks/timers, preventing memory leaks on reloads.

⚠️ Breaking Changes / Notes

  • Unique IDs: Internal Unique IDs for entities are migrated. This should be transparent to the user, but ensures uniqueness across multiple accounts.

Bermuda

You can use this fork to make it run:
https://github.com/jleinenbach/bermuda/releases/tag/v0.6.8-GoogleFindMy-HA-5