Skip to content

v0.16.4-beta.2 - Phantom ring + FCM reconnect storm fixes (beta)

Pre-release
Pre-release

Choose a tag to compare

@bvis bvis released this 11 Jun 21:39
15f7d58

Beta release — please test before promoting to stable

Two independent reliability fixes.

Fixed

  • Phantom doorbell ring on Home Assistant restart — event entities (doorbell ring, door opened, camera on) inherited their availability from the device connection_state. A transient intercom disconnect, or the brief window during an HA restart, flapped them to unavailable and back; on recovery the EventEntity restores its last event (e.g. ring) and Home Assistant fires state triggers, so automations watching the doorbell ran with no push notification involved. Event availability is now decoupled from connectivity (events are momentary historical markers), eliminating the flap. Real doorbell rings still fire normally.
  • Hardened the FCM push client against firebase-messaging reconnect storms (#12) — a poisoned StreamReader in the upstream _listen loop re-raises the same exception object every iteration, growing its traceback while logging.exception formats it inside the HA event loop; on Python 3.14 this is quadratic and pegs the core until the Supervisor watchdog kills HA.
    • A logging.Filter on the firebase_messaging.fcmpushclient logger strips exc_info after 3 tracebacks per 5-minute window (records are kept as one-liners), defusing the CPU bomb even while the upstream loop spins.
    • abort_on_sequential_error_count is back to a bounded value (3) so the client gives up instead of spinning; the watchdog restarts it with a delayed, doubling backoff (5 → 15 min cap) that resets once the listener is healthy. A persistent server-side failure now means "push down for a while" instead of a crash loop.

How to test

  1. Install via HACS with Show beta versions enabled, or download the source for v0.16.4-beta.2 manually.
  2. Restart Home Assistant.
  3. Confirm no phantom doorbell notification fires on startup.
  4. Verify a real doorbell ring still triggers your automations as expected.

If everything is stable for a few days, this will be promoted to v0.16.4.

PRs