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-Aftertime, 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, setPARALLEL_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
DeviceInfoimport (#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