Skip to content

Release v2.0.0-rc13

Pre-release
Pre-release

Choose a tag to compare

@thekoma thekoma released this 26 May 12:38

Summary

Thirteenth and final release candidate of v2.0. One change on top of v2.0.0-rc12:

🛡️ 429 rate-limit cascade fix (#56)

Netatmo's push WebSocket broadcasts the same RTC `terminate`/`rescind` event to every device registered for push notifications (each with a unique `_id` but the same `session_id`). The coordinator previously processed every duplicate as a fresh event, calling `async_request_refresh()` each time → 3 HTTP calls per duplicate. With 6 receivers + a normal call, that's ~18 API calls in 2s, tripping the 429 rate limit (see attached log on issue #56).

Fix: track session_ids closed within the last 60s in a small in-memory dict. Terminate/rescind events whose session_id is in that set are skipped (no refresh, no duplicate logbook entries, no duplicate "end" event). Test coverage: 6 duplicate terminates → 1 refresh, same for rescind.

This also collapses the cosmetic noise where `bticino_intercom_terminated` logbook events fired ~10 times per call.

Soak

This is the final RC. Once we confirm a few days without 429 in the wild, v2.0.0 stable follows.

Upgrade requirements

Same as v2.0.0-rc12: Home Assistant ≥ 2026.5.0, pybticino `>=1.8.2`.

CI note

GitHub Actions was experiencing partial degradation when this tag was pushed (HACS validation hit a GitHub API rate limit). This release was created manually with the same packaging logic the CI workflow uses; the artifact below is bit-identical to what the workflow would produce. HACS validation will be rerun once GitHub recovers.

Full Changelog: v2.0.0-rc12...v2.0.0-rc13