Skip to content

v0.16.3-beta.1 - FCM listener watchdog (beta)

Pre-release
Pre-release

Choose a tag to compare

@bvis bvis released this 03 May 18:25
v0.16.3-beta.1
6ca016d

Beta release — please test before promoting to stable

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.

How to test

  1. Install via HACS with Show beta versions enabled, or download the source for v0.16.3-beta.1 manually.
  2. Restart Home Assistant.
  3. Verify the camera preview still works.
  4. (Optional) Watch the logs for WARNING ... FCM listener revived for device ... — that is the watchdog kicking in after a network glitch. The camera should keep working without manual reload.

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

PR