Skip to content

Play Ring-MQTT recorded events - #5

Open
thomasgregg wants to merge 1 commit into
codex/ring-mqtt-fresh-snapshotsfrom
codex/ring-mqtt-recordings
Open

Play Ring-MQTT recorded events#5
thomasgregg wants to merge 1 commit into
codex/ring-mqtt-fresh-snapshotsfrom
codex/ring-mqtt-recordings

Conversation

@thomasgregg

Copy link
Copy Markdown
Owner

Summary

Add Ring-MQTT Event Select as a first-class recording source behind Ring View’s existing Last recording tab.

What changed

  • Let recording_entity select either a camera or Ring-MQTT Event Select.
  • Read Ring-MQTT’s direct recordingUrl while retaining official Ring camera playback.
  • Reject Recording Not Found and Transcoding in Progress sentinels as non-playable media.
  • Parse signed AWS URL expiry and refresh URLs with less than 30 seconds remaining.
  • Re-select the current Event Select option when the URL is absent, nearly expired, or fails once in the browser.
  • Wait up to 15 seconds for a changed, playable URL through Home Assistant state updates.
  • Never pass a select entity to Home Assistant’s camera renderer.
  • Use the configured snapshot camera as the recording poster.
  • Keep the same Last recording / Live interface and provider-independent editor structure.
  • Add setup, transcoding, expiry, privacy, and troubleshooting documentation.

Edge cases covered

  • User-renamed Event Select entities.
  • Missing and expired signed URLs.
  • Recording Not Found and Transcoding in Progress.
  • Service rejection and a service promise that never settles.
  • A browser playback failure followed by exactly one refresh attempt.
  • Missing registry identity or an unsupported select source.
  • Closing, switching to Live, hiding the page, or suspending an inline card during refresh.
  • Late URL updates after cancellation.
  • No signed URL is logged or stored.

The Event Select’s current option—such as Ding 1, Motion 1, or a transcoded variant—determines which recording is shown. The refresh path is event-driven and does not poll.

Verification

  • npm test -- --run — 185 tests passed.
  • npm run check — passed.
  • npm run build — passed.
  • npm run test:browser — 114 tests passed on phone and desktop.
  • git diff --check — passed.

Stack

PR 4 of 5. Base: codex/ring-mqtt-fresh-snapshots.

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.

1 participant