The dashboard shows one authenticated still image from Home Assistant's camera proxy. It sizes the image request to the card and screen pixel density, refreshes every ten seconds while visible, and reacts to meaningful layout changes. It does not mount a live player or preconnect a live session.
Inside the viewer, the latest recording starts automatically unless
autoplay_recording is disabled. When it is disabled, the unobstructed camera
image is the Play surface in both the dashboard card and fullscreen viewer;
there is no separate central Play button. Live begins when the viewer opens in
Live or you select Live. Only the active mode's renderer remains mounted. The
highlight around a mode icon identifies the selected view, so Recording stays
highlighted when its video is paused or has ended.
Recording sound is configured separately for the two places that can play it: Fullscreen viewer → Start recordings muted and, for an interactive card, Dashboard card → Start recordings muted. Ring View applies the selected value exactly. If muted is off and the browser refuses automatic playback with sound, the loaded recording stays ready and its native Play control supplies the required tap; Ring View does not silently mute it. Changing sound in the native controls affects the current playback only. The equivalent Live settings remain separate because Live and recordings can have different uses and browser behavior.
For an official Ring recording camera, Ring View uses the current ephemeral
video_url when available, with Home Assistant's camera renderer as the
alternative if it is missing or fails. A Ring-MQTT Event Select source instead
uses its direct recordingUrl. Ring View refreshes an absent, nearly expired,
or once-failed URL by re-selecting the current event and waiting for an explicit
entity update; it never passes a select entity to the camera renderer. Normal
Live uses Home Assistant's camera renderer and its WebRTC/HLS/MJPEG selection.
Enabling supported two-way audio uses Ring View's single-session WebRTC player
for Live instead.
Home Assistant's application-level dialog manager owns the viewer and its history entry, independently of responsive dashboard card rearrangements. Closing, switching modes, or going Back tears down the inactive media. Hidden tabs suspend native playback and immediately stop active talkback.
Enable Fullscreen viewer → Two-way audio in the visual editor. The live
entity must be the official Ring live_view camera, not an RTSP entity from
Ring-MQTT or Generic Camera. Ring-MQTT can still supply the optional dashboard
snapshot alongside the official live entity.
Live video and incoming audio connect without opening the microphone. Hold to talk appears once playback and the connection are ready. Pressing it requests microphone permission when needed and adds the track to the existing session. Audio is transmitted only while you hold the button.
If the permission prompt interrupts the first hold, release and hold again after granting access. Closing, reconnecting, or leaving the page releases the microphone; recovery never restores a held talk button.
An unsupported live camera produces an editor warning and uses Home Assistant's normal player without Hold to talk.
Use an HTTPS Home Assistant connection. A Companion app can switch to an HTTP internal URL on home Wi-Fi, which blocks browser microphone access even while video works. An HTTPS internal URL or HTTPS Home Assistant Cloud connection avoids that mismatch. Also check the app/browser microphone permission.
A dashboard relayout should leave the viewer open. Some iOS Companion setups instead rebuild the Web View when orientation changes; the brief Home Assistant logo is a useful sign of that reload.
Ring View puts the active camera pair and mode in the current URL, following Home Assistant's camera-dialog restoration convention. A matching card can reopen the viewer after the reload. Credentials, media URLs, and microphone state are not stored there.
A restored Live viewer makes one automatic, muted connection attempt once the page is visible and Home Assistant is connected. Use the video control to enable sound afterward. If automatic recovery fails, a centered Resume live view button provides a manual attempt; Ring View does not retry forever.
If video is connected but iOS blocks playback, Play/Resume starts the existing stream instead of opening another camera session. Low Power Mode can require this manual tap. Turning it off resolved that case in our iPhone testing, but browser autoplay policy can still require interaction in other conditions. The temporary backend patch does not bypass this restriction.
Ring View uses one centered viewer message for operational information and failures, including media recovery, snapshot and door failures, microphone problems, muted playback, and short connection interruptions. Persistent camera failures add Retry or an alternate-view action in the same location. The ringing alert stays near the header because it is an incoming event, not an operation result. Configuration warnings stay in the visual editor.
| What you see | What to check |
|---|---|
| Play/Resume over an otherwise connected stream | Browser autoplay policy; on iPhone, check Low Power Mode. Tap once to start playback. For recordings, enable the matching Start … muted setting if automatic start matters more than initial sound. |
| Reconnecting, followed by Retry/error | Check Home Assistant connectivity and Ring Live availability. Repeated failures after session teardown can match the known backend defect. |
| Hold to talk is unavailable | Wait for playback; confirm the official Ring live entity, HTTPS, and microphone permission. |
| Snapshot button is missing | Enable it under Snapshots, then start Live. It is intentionally hidden in Recording, on the passive dashboard, and while an on-demand card is idle. |
| Snapshot button is disabled | Confirm that the configured device snapshot camera or Live camera is available and that Home Assistant is connected. |
| Snapshot cannot be saved | Start with /media/ring-view. For Home Assistant Container, mount /media. Custom folders may need allowlist_external_dirs. The editor can validate the path format, but only Home Assistant can test server write access. |
| Snapshot works with Ring-MQTT but not the official Live camera | Keep the Ring-MQTT camera configured as snapshot_entity. Ring View prefers it automatically. The official fallback can save only the still image exposed by that entity, not pixels from the active WebRTC player, so it may be unavailable or show the latest recording. |
| Missing or indistinguishable camera entries | Show disabled entities on the Ring device. Before enabling it, the camera disabled by default is Last recording; the camera enabled by default is Live view. Copy the exact IDs and do not rely on their suffixes. See Choosing camera entities. |
| Last recording remains on an old clip | On some newer wired Ring cameras, 24/7 recording can leave Home Assistant's last_recording entity stuck on an old event. This is an upstream Home Assistant issue, not a Ring View cache: the card's preview and Last recording view can update only when Home Assistant supplies a new last_video_id or video_url. The issue reporter found that disabling 24/7 recording and using periodic snapshots restored updates. Live view, talkback, and Ding alerts use separate entities and remain available. |
| Ring-MQTT recording says it is unavailable | In automatic mode, confirm that Last activity reports a supported category and wait while Ring prepares that category's slot 1. In manual mode, open Event Select and choose the intended event. Recording Not Found means Ring-MQTT has no clip for that slot. Transcoding in Progress can take 10–15 seconds; keep the viewer open while Ring View waits. Ring View tries the direct recording first and automatically requests the matching (Transcoded) option if direct playback fails. |
| Old card behavior after updating | Confirm the installed HACS version and refresh the frontend. In the iOS Companion app, Clear Web View Cache may be necessary. |
| No new phone preview | Check the blueprint's selected recording entity and whether a new last_video_id appeared within two minutes. See notifications. |
A live attempt times out after 20 seconds. Normal opens can retry once; a failed automatic recovery offers Resume, and a failed manual attempt offers Retry. Waiting for Resume or blocked playback does not run this timer.
If Home Assistant's signaling connection is lost, the two-way player waits for Resume instead of replaying an old offer against a negotiated peer. Temporary WebRTC disconnections allow browser recovery, but Ring outages, network loss, device session limits, browser suspension, and competing Ring clients can still interrupt Live.
If the native camera component cannot be loaded, Live offers Home Assistant's standard camera dialog as a compatibility fallback.
Include Ring View and Home Assistant versions, browser/Companion app and OS, whether two-way audio and the backend patch are enabled, and exact steps. For rotation, say whether the HA logo appeared, whether video moved before rotation, what appeared afterward, whether Play/Resume worked, and roughly how long recovery took. Note Low Power Mode and whether your connection uses HTTPS.
Do not post camera tokens, signed media URLs, Ring credentials, or raw debug logs that may contain them. Automated browser coverage does not replace a physical-device test; see testing scope.
Configuration · Compatibility details · Security and privacy