Skip to content

v1.7.7

Choose a tag to compare

@jleinenbach jleinenbach released this 26 Jun 17:59
af40f45

⚠️ A full restart of Home Assistant is required after updating.
Reloading the integration alone is not enough: a version update changes the
integration's Python code, which Home Assistant only picks up on a full
restart. After updating, restart Home Assistant and confirm that
manifest.json shows 1.7.7.

This release is focused on a lighter, quieter integration. It cuts the
sustained CPU usage that busy multi-device setups were seeing, calms the logs
down when a single location report fails for a moment, and removes one more
class of misleading "please re-authenticate" noise. It also makes support
requests easier to act on. Nothing is removed for existing working installs.

Highlights

Much lower background CPU usage

  • The integration no longer recomputes the same cryptographic device
    identifiers (EIDs) over and over.
    On busy setups with many tracked devices
    and tags, the elliptic-curve work that the resolver previously repeated on
    every refresh is now cached per time window, with a skip-guard and the heavy
    path moved off the main loop. The computed identifiers are byte-for-byte
    identical, verified by a golden-value test; only the cost of producing them
    drops.
  • This directly targets the high idle CPU usage reported on small hardware
    (for example a Raspberry Pi 4), where the EID resolver was the dominant hot
    path. We hope this closes #192.

Quieter logs when a single report fails for a moment

  • A single transient failure to decrypt one Google location report no longer
    triggers a multi-line WARNING cascade.
    The stateless decryption layer
    cannot tell whether such a failure is temporary or persistent, so its
    per-report lines and its aggregate "all reports failed" notice now log at
    DEBUG and no longer advise re-authentication. The real, cross-cycle verdict
    is still made by the stateful parts of the integration, which are unchanged,
    so genuine, persistent problems are still surfaced as before.

Fewer misleading re-authentication prompts

  • Benign, self-healing token-lifetime recalibration is no longer logged as a
    WARNING.
    When an unplanned token expiry reveals a shorter real lifetime, the
    integration safely recalibrates downward with a buffer. That is correct
    behavior and now logs at INFO. The neighboring genuine "token expired"
    warning is intentionally kept.

Better diagnostics for support requests

  • Finer invalid-timestamp counters. The diagnostics now split the
    invalid-timestamp counter into two buckets so support can tell genuinely
    corrupt timestamps from harmless out-of-order arrivals. The combined counter
    is preserved for compatibility.
  • Crypto acceleration visibility. The diagnostics dump now reports which
    big-integer backend python-ecdsa would use for the legacy EID path, plus the
    installed gmpy2 / gmpy / ecdsa versions. This is pure, redacted
    visibility, with no crypto or behavior change.

Bundled-CLI login fix for first-time users

  • The bundled command-line login now documents that it must be run from a flat
    (standalone) folder
    in order to open the Chrome login that creates
    secrets.json. Run in place at the nested Home Assistant path it only lists
    existing devices, which confused first-time users (issue #193).

Under the hood

  • Every fixed behavior ships with a dedicated regression test (11 new test
    files), plus an additional config-entry stub guard. The full suite is green
    (4560 passed, 20 skipped).
  • Developer and CI hygiene only, with no runtime impact: pre-commit and CI now
    pin the same ruff (0.14.14) and CI fails on unformatted code, after a
    one-time, mechanical, semantics-preserving repo-wide format; a
    .git-blame-ignore-revs keeps git blame clean over that format commit; and
    the coverage floor was raised from 71 to 72.
  • Diagnostics remain strictly redacted: only backend names, coarse counters and
    library versions are exposed, never tokens, emails, IDs or raw locations. The
    config_entry schema version is unchanged, and there are no breaking changes
    for existing installs.

Reminder: restart Home Assistant after updating, then verify the version is
1.7.7 under Settings -> Devices & Services -> Google Find My.

Full Changelog: v1.7.5...v1.7.7