Skip to content

v0.16.3 - FCM listener watchdog

Choose a tag to compare

@bvis bvis released this 04 May 18:54
v0.16.3
7a860cc

Stable promotion of v0.16.3-beta.1

Fixed

  • FCM listener no longer reconnects after 3 sequential transport errors (#3) — the upstream firebase_messaging client used to abort its receiver and never reconnect, leaving the doorbell camera black: auto_on answered call_starting but the push carrying the signaling payload never arrived.
    • FcmPushClient now uses FcmPushClientConfig(abort_on_sequential_error_count=None) so the library keeps retrying with its own backoff.
    • A 60s watchdog (async_track_time_interval) revives the listener if is_started flips to False. ensure_running() is serialised by an asyncio.Lock so overlapping ticks cannot spawn parallel FcmPushClient instances while a slow start() is still handshaking.
    • The notification grace period is intentionally not re-armed on revival — the existing _processed_notifications dedup deque already filters re-deliveries, and re-arming the blackout could drop a real doorbell ring landing during the window.

Soak summary (24 h on production HA running v0.16.3-beta.1)

  • 0 Shutting down push receiver due to N sequential errors log lines.
  • 3 clean self-reconnects from the underlying firebase_messaging client.
  • 0 watchdog revivals (listener never died).
  • Camera preview verified end-to-end.

PRs

  • #4 — fix
  • #5 — release