Ring Device integration via MQTT w/ Video Streaming

I use a slightly different configuration these days, it’s just a picture glance card that looks like this:

The image itself is the still image from the snapshot camera which is pulled in automatically since the still image URL is defined in the generic camera settings. Clicking on the image itself plays back the currently selected event recording since that’s what I find I use the most, but you can always use the live stream camera as the primary entity if you prefer the opposite.

The buttons from left to right are:

Event Selector: This lets me quickly pick another event if I want to play back an event stream of something other than the last recorded motion/ding
Live Camera: Clicking on the camera icon in the very center opens the live stream. I find that I mostly use the snapshot and event stream, but on the occasions where I want to open the live stream, having the button right there is really nice
Motion Detection State
Light State/Toggle: This camera is a floodlight cam so I can both see the state and toggle it on/off
Event Stream State: The VHS icon indicates if an event stream is currently active
Live Stream State: The CCTV icon indicates if a live stream is currently active

In the past it was possible to use the Event/Live stream states to also toggle the stream off early rather than waiting for the HA stream to time out in 5 minutes, however, changes to the stream backend have made this less useful as now, while you can click the icon to stop the stream, HA will retry the stream again in 10 seconds or so, which reconnects the stream again, and it will do this until the 5 minute stream timeout expires.

In recent versions of HA you can overcome most of these limitations by using the RTSPtoWebRTC - Home Assistant (home-assistant.io) addon. I’ve actually found that using this integration with the RTSPtoWebRTC addon is actually the best of all worlds, except one. Using this has super fast startup, the video is low-latency (usually ~1 second of delay), the sound works (if you use RTSPtoWebRTC and not RTSPtoWeb), and the inactivity timeout is only 30 seconds, which which is pretty much ideal for Ring cameras (RTSPtoWeb also works but it doesn’t support audio and seems to have a longer inactivity timeout). The only disadvantage of this approach is that, at least so far, I’ve not been able to get this to work when I’m outside of my network, which is quite disappointing, but I think I know why. I’m actually thinking of building RTSPtoWebRTC directly into the ring-mqtt addon with some changes that I think might address this, but it’s a fast moving project right now so maybe it will be addressed in the coming months.

Anyway, here’s the config for that card (really, nothing special):

type: picture-glance
entities:
  - entity: select.front_bedroom_side_event_select
  - entity: camera.front_bedroom_side_live
  - entity: binary_sensor.front_bedroom_side_motion
  - entity: light.front_bedroom_side_light
  - entity: switch.front_bedroom_side_event_stream
  - entity: switch.front_bedroom_side_stream
camera_image: camera.front_bedroom_side_event
title: Front Bedroom Side
5 Likes