github BSkando/GoogleFindMy-HA v1.7.13

latest release: v1.7.14
3 months ago

This release makes the built-in map easier to use on a phone and fixes a
location-accuracy bug that could silently stop a device's updates from being
uploaded. The map filter panel is now collapsible so it no longer covers half
the screen on small displays, the on-screen coordinates are shorter (full
precision is still preserved when you copy them), and three map-render edge
cases that could crash or misbehave are hardened. Under the hood a device found
via a Home Assistant zone now reports the correct accuracy, the declared minimum
Home Assistant version is corrected, and a large test/coverage pass removes dead
code and raises the enforced coverage floor. The config schema is unchanged and
nothing is removed for existing working installs.

What's Changed

New Features

  • The map filter panel is now collapsible. The fixed filter panel used to
    hide a large part of the map on small screens. Its three filter groups and the
    apply button now live inside a native disclosure widget you can fold away,
    while the device name and point count stay visible even when it is collapsed.
    It opens by default (unchanged behaviour) and you collapse it on demand.
    Because it uses a native HTML <details> element, keyboard and screen-reader
    support and correct right-to-left layout come for free, with no JavaScript.
    A new filters_summary label is translated into all ten shipped map
    languages.
  • The map popup shows shorter coordinates, with full precision preserved on
    copy.
    The popup used to print the raw full-precision coordinate (e.g.
    10.8368252529521), which is visually noisy. The on-screen line now rounds
    each axis to at most 5 decimals (about 1.1 m, well below device accuracy) and
    drops trailing zeros, while the clipboard copy keeps the byte-identical
    full-precision value
    . Every geo calculation (markers, bounds, focus circle,
    Plus Code) keeps using the raw values.

Bug Fixes

  • Zone-based accuracy is no longer floored to 100 m, restoring suppressed
    uploads.
    A device located inside a Home Assistant zone is known to be within
    the zone radius, so the radius itself is the uncertainty. The old code floored
    accuracy up to 100 m, which had two consequences: every standard home zone
    (default radius 50 m) reported worse accuracy than it really had, and
    because the reported value was always at least 100 m, the "accuracy improved"
    path that triggers an upload could never fire for zone locations,
    permanently suppressing those updates. Accuracy now uses the real zone radius.
    This is the most impactful runtime fix in this release.
  • RSSI accuracy is now applied before the upload decision. Fixing the zone
    bug exposed a latent seam defect where a BLE RSSI accuracy adjustment ran
    after the upload decision but the adjusted value was what got cached, which
    could produce phantom "improvement" uploads every throttle window. The only
    production caller passes no RSSI today, so the loop is dormant, but the order
    is now corrected so the value evaluated is exactly the value cached.
  • The self-rendered map is hardened against three edge cases. Corrupted
    recorder coordinates (a non-finite NaN/Inf latitude or longitude) no
    longer poison the map centre; they are skipped at the source. A disabled
    recorder integration no longer produces an HTTP 500 and instead falls back
    to a map without the history trace. And clearing the Start/End time filter and
    pressing Apply now actually clears it, instead of leaving a stale value behind.
  • Symmetric padding for the map filter controls. The full-width inputs,
    slider and button could overflow the panel's right gutter under the default
    box model, leaving the panel visibly lopsided. A scoped box-sizing reset on
    exactly those controls restores an even 15 px gutter on both sides, while
    deliberately leaving the collapse toggle's WCAG-compliant tap target untouched.
  • Corrected the declared minimum Home Assistant version to 2025.9.1. The
    integration previously advertised a minimum of 2025.8.0, but its dependencies
    actually require 2025.9.1, so users on 2025.8.x-2025.9.0 were promised a
    minimum the code cannot support. The declared minimum now matches the real
    dependency floor. Historical "since 2025.8" feature notes are left unchanged,
    as they describe when a feature landed, not the support floor.

Changed

  • Large test and coverage hardening pass; enforced coverage floor raised
    73 -> 75.
    About twenty new contract-test files pin the behaviour of many
    modules (token handling, decrypt-locations helpers, BLE scanner, services
    dispatch and redaction, uploader, location recorder, CLI exit paths,
    coordinator glue). This is the bulk of this release's line count and changes
    no runtime behaviour. Along the way, three genuinely dead helpers were removed
    at the root (an unused coordinator settings method, a never-wired Android-ID
    formatter, and a redundant device-tracker pre-check), each proven safe and
    pinned by tests.
  • Synced the README with the code. The options table now shows the retuned
    stale_threshold default (65 min, previously documented as 30 min), and the
    "Entities created" list gains the two shipped-but-undocumented sensors: the
    always-created Plus Code sensor and the conditional BLE battery sensor.
  • Dev/CI dependency refresh via pip-audit. Applies available security
    updates and syncs stale dev/test pins in the exported requirements against the
    lock file. The direct runtime dependencies are unchanged, so nothing shipped
    to Home Assistant users changes
    .

Compatibility

  • No breaking changes are expected. The config entry schema version is unchanged
    (CONFIG_ENTRY_VERSION = 2), so existing working installs are unaffected. The
    one enforced compatibility change is the corrected minimum Home Assistant
    version (2025.9.1), which fixes an already-wrong declaration rather than
    dropping real support.

Full Changelog: v1.7.12...v1.7.13


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.13 under Settings -> Devices & Services -> Google Find My.

Don't miss a new GoogleFindMy-HA release

NewReleases is sending notifications on new releases.