github iMicknl/ha-nest-protect v0.5.0

latest release: v0.6.0b1
6 hours ago

What's changed

This is the first stable release since v0.4.3, and it rolls up the v0.4.4 and v0.5.0b1 pre-releases. Most of the work makes authentication and updates more reliable. It fixes the most common reasons the integration stopped updating, or asked you to re-authenticate even though your credentials were still valid. It also adds a guided setup with a browser extension, Nest x Yale lock support and several new sensors.

Thanks to everyone who tested the betas and sent logs.

Important

  • Requires Home Assistant 2026.10.0 or newer.
  • Entities now become unavailable when no update has arrived from Nest for 30 minutes, or right away when Google rejects the stored credentials and re-authentication starts. Before, they silently kept showing stale values (#646, #685).
  • The self-test date sensors are now timezone-aware timestamps (#642).
  • Rarely used diagnostic entities (component self-tests, removed-from-base, self-test dates) are disabled by default, for new installs only (#650).
  • When Google rate-limits token refreshes, all refreshes now pause for Google's Retry-After time, between 15 minutes and 6 hours (#634).

Getting credentials that last

Use the Nest Auth Helper extension attached to this release. It works in Chrome, Edge and Firefox 121+. Google can revoke a captured session within hours if the browser you captured it from keeps using the same Google sign-in. So capture it in a separate browser profile used only for this (Firefox works well), then close that profile right after copying the code, without signing out.

If you keep being asked to re-authenticate, use Reconfigure on the integration to enter new credentials. Please attach debug logs and diagnostics when you report it.

🐛 Bug Fixes

Authentication and session handling

  • Persist Nest sessions across Home Assistant restarts and updates (#486)
  • Keep background updates alive when authentication recovery fails (#586)
  • Recover background updates from unexpected Google auth errors (#635, fixes #620)
  • Count only authentication failures toward the re-authentication threshold (#638, #502 @marcusds, fixes #624)
  • Serialize Nest session refreshes with a lock (#637, fixes #625)
  • Persist rotated Google cookies as soon as they are received, even when a later step fails (#641, #555 @snfx-johaver, fixes #622)
  • Keep re-authenticated cookies from being overwritten by the old session (#682)
  • Pause Google token refreshes while Google throttles them, and only apply cookie deletions after a successful refresh (#634, thanks @dan-simms1 and @assafshafran)
  • Treat transient Google/Nest server errors as temporary instead of bad credentials (#488, #643, fixes #628)
  • Retry switch, select and lock commands once with a refreshed session (#645, fixes #626)
  • Reject a different Google account on re-authentication, and add a reconfigure step (#647, fixes #627)
  • Escalate backoff on repeated failures, prefer cookies over a leftover legacy token, and start re-authentication when a command's refresh is rejected (#665)
  • Log the error and mark entities unavailable when re-authentication starts (#685)

Connection handling

  • Back off when the subscriber fails fast on connection errors, so a network outage no longer floods DNS (#619, fixes #651)
  • Fail fast on subscribe connect timeouts and follow transport URL changes (#644, fixes #630)
  • Give short Google and Nest requests a 30-second timeout, instead of aiohttp's 5-minute default (#669)
  • Space out re-subscribes if Nest keeps answering instantly, and stop re-opening an idle lock stream every 5 minutes (#665, thanks @ljmerza)
  • Mark entities unavailable when Nest updates stop arriving (#646, fixes #621)

Devices and data

  • Pick up new devices automatically and clean up removed ones (#648, #672, fixes #629)
  • Build diagnostics from held data without disturbing the live session (#649, fixes #623)
  • Preserve unknown sensor values and tolerate missing power metadata (#587)
  • Fix a KeyError crash in generate_device_info() for Topaz devices with incomplete API data (#534) @bveldhuis
  • Use the current Home Assistant units for battery levels and CO peak (#668, fixes #667, #676)

🚀 Features

  • Guided setup with the Nest Auth Helper browser extension (#487, thanks @cscashby)
  • Firefox support and debug logs in the Nest Auth Helper extension (#496) @carsso
  • Add Nest x Yale lock support via gRPC-web (#511) @ljmerza
  • Add Smoke and CO alarm state sensors: OK, testing, warning, emergency (#585) @lowlydba
  • Report Protect connectivity, the same "offline" status the Nest app shows (#636)
  • Add home safety summary sensors (#639)
  • Expose the alarm hush state (#631), CO previous peak (#633), battery voltage (#640), and ambient light / temperature self-test results (#632)
  • Report self-test sensors as timezone-aware timestamps (#642)
  • Entity translations, including Dutch (#490)
  • Show the integration's brand images locally, even while the internet is down (#674)
  • Google token refresh statistics in diagnostics (#634)

📘 Documentation

  • Recommend a dedicated browser profile for capturing credentials (#666)
  • Update auth instructions (#492, #618)
  • Migrate legacy translations to the current format (#491)

🧰 Maintenance

  • Store state in runtime_data, run the subscriber as a config entry background task, set PARALLEL_UPDATES, fix the v2 → v3 config entry migration, and add more Nest DHCP prefixes (#650)
  • Adopt recent Home Assistant changes: manifest categories (#673), centrally translated abort strings (#677), in-place entity ID renames (#675) and the DeviceInfo import (#679). Requires Home Assistant 2026.10 (#680)
  • Dependency updates, including Home Assistant 2026.10.2

Contributors to this release

@assafshafran, @bveldhuis, @carsso, @cscashby, @dan-simms1, @iMicknl, @ljmerza, @lowlydba, @marcusds, @snfx-johaver

Don't miss a new ha-nest-protect release

NewReleases is sending notifications on new releases.