Skip to content

Handle FCM events without ding IDs - #540

Open
danielcolquitt wants to merge 1 commit into
python-ring-doorbell:masterfrom
danielcolquitt:fix-fcm-missing-event-id
Open

Handle FCM events without ding IDs#540
danielcolquitt wants to merge 1 commit into
python-ring-doorbell:masterfrom
danielcolquitt:fix-fcm-missing-event-id

Conversation

@danielcolquitt

Copy link
Copy Markdown

Summary

  • Handle Ring FCM payloads that omit event.ding.id.
  • Derive a deterministic fallback event ID from created_at.
  • Preserve event delivery and duplicate-update detection.
  • Prevent repeated KeyError callback failures from shutting down real-time events for all devices.
  • Add regression coverage for repeated ID-less motion notifications.

Fixes #537

Testing

  • uv run pre-commit run --files ring_doorbell/listen/eventlistener.py tests/test_listen.py --verbose
  • uv run pytest tests/ --force-enable-socket --cov=ring_doorbell --cov-report=xml --cov-report=term-missing --import-mode importlib
  • Built and tested in Home Assistant Container.
  • Confirmed motion event entities update for multiple Ring cameras and doorbells.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Event listener dies: KeyError 'id' in _get_ring_event — some Ring FCM payloads no longer contain ding.id

1 participant