Ring Device integration via MQTT w/ Video Streaming

Honestly, I’m probably just going to kill the feature for battery cameras, it’s just not worth the trouble.

Also, what specific versions are you talking about? There haven’t really been much changes in the last few versions. What versions did you find more reliable?

I switched recorder to mariadb and now none of my ring to mqtt devices are available. I tried reinstalling mqtt broker and ring add-on with default settings and ive tried adding differet user password to ring add-on and it connects according to the logs but no devices. My other mqtt sensors work so I suspect the issue is in the add-on. any help is appreciated.

mariadb
databases:

homeassistant
logins:
username: homeassistant
password: secret
rights:
username: homeassistant
database: homeassistant
mqtt:
logins:
username: nothomeassistant
password: secret
anonymous: true
customize:
active: false
folder: mosquitto
certfile: fullchain.pem
keyfile: privkey.pem
require_certificate: false
ring-mqtt:
enable_cameras: false
snapshot_mode: disabled
enable_modes: false
enable_panic: false
enable_volume: false
mqtt_host: <auto_detect>
mqtt_port: <auto_detect>
mqtt_user: <auto_detect> gets rejected username: connects but no devices
mqtt_password: secret
branch: addon
ring_token: ‘’
location_ids:
‘’

4.5.3 was most reliable and getting more accurate snapshots

I did some more tests, i set interval to 10s, and i had a movement, i have received video with movement (was a car) but in any snapshot was this car, is like when ring starts recording we dont have access to the snapshot or as you mentioned grab an image from video.

Yes, it’s already a well known limitation that battery powered Ring cameras cannot take snapshots while they are recording. This is well documented in the ring-client-api wiki. Since motion events trigger video recording, it’s pretty much impossible to get a snapshot from a battery camera of the motion event itself because the video recording has already started before the motion notification is detected.

I had attempted to work around this by detecting battery cameras and, instead of attempting to get a snapshot, starting a connection to the video stream and then use ffmpeg to convert the stream to a low framerate MJPEG stream and extract the first full frame from that stream. This seems to work reliably for me and at least some others, but not for everyone, perhaps dependent on a multitude of factors such as camera types, firewalls, network bandwidth, whether you’ve been moved to the new Ring streaming servers or not, etc. Perhaps there could be cases where I’m not successfully detecting and using the correct method (for example, I attempt to detect battery cameras that are powered as I’ve been told if it’s externally powered the restriction on snapshots during recording is lifted).

I have no control on whether the stream is good, I might be able to improve the detection logic on when to use a stream, if that’s the problem, but that’s not going to be solved here as I’d need an open issue on Github and at least some logs. However, at this point, I think it’s just too much trouble and I will just remove this feature for battery cameras and list it as a restriction for those devices (I personally don’t own a battery powered Ring camera because I think they are too limited). I was trying to be creative with a workaround for the crappy Ring battery camera limitations and it didn’t work out, it’s OK.

I understand the point but i think having a snapshot is worth than nothing, so please dont remove this feature. I will try power on all time the camera to see if it has better behaviour

I won’t remove interval based snapshots or change anything for powered cameras, but for battery cameras, it seems like it doesn’t work and gives corrupt snapshots so it seems pointless to leave the feature in place.

Thank you very much @tsightler : everything is very easy to setup and seems to work flawlessly.

I am still exploring the behavior between RING configuration, RING API and your add-on.

Here is some feedback as I was wondering myself in the first place. Probably everything has been said in this conversation, but it is quite a long one.

  • I have a Ring Alarm, a Ring Indoor Cam (cabled) and a Ring Door View Cam (on battery).
  • Snapshots come to Home Assistant when motion detection is on, even when notification of them are unchecked in Ring app ; At the door it happened to be quicker than Ring App notification during my test.
  • The great news is that I do not even have any Ring Protect Plan and still snapshots work !
  • I believe the official Ring integration does not give control to the snapshot trigger, at least not at intervals (I have to check this later).
  • The official Ring integration puts in front more entities than @tsightler 's one ; I would love to have all the entities catched in the official Ring integration in this unofficial one

Next step : I would like someone to give me the trick to store the snapshots taken by this addon so that I can come back to them and why not finding some development to show them as a timeline video.

I don’t have any idea what this means or what entities you are referring to so you’d have to provide more details.

However, you should feel free to use both integrations and mix and match whatever features you like, there’s no reason to only use one vs the other they will coexist just fine and this addon was never intended as a replacement for the native Ring integration in Home Assistant.

Oh thank you I didn’t understand that both integrations could be used together witch cameras.

I let you know my configuration in order to kindly answer your question.

One entity is totally newly created by your addon:

  • sensor.xxx_info

… and some entities have been doubled:

  • binary_sensor.xxx_ding [_2]
  • binary_sensor.xxx_motion [_2]
  • switch.xxx_siren [_2]
  • camera.xxx [_snapshot]

Only the official ring integration camera entity is “unavailable” as camera is enabled in your addon.

… while others exist only in official Ring integration for the same camera:

  • sensor.xxx_battery
  • sensor.xxx_last_activity
  • sensor.xxx_last_ding
  • sensor.xxx_last_motion
  • sensor.xxx_volume
  • sensor.xxx_wifi_signal_category
  • sensor.xxx_wifi_signal_strength

Indeed these ones are still linked to official RING integration and functional.

My confusion cames from these behaviour but thanks to your highlights I understand that I can benefit from both integrations.

Most of these are available in the addon as attributes. The info sensor includes attributes for battery and wifi data (just click on it and you’ll seem them). Last ding/motion is also available as attributes on the motion and ding sensors. You can consume these attributes for automations, display them in the UI, or create template sensor from them if you really need them as a sensor for some reason.

Currently the addon doesn’t support volume because, honestly I’ve never been asked for this feature and I didn’t even know there were cameras that allowed you to control the volume (out of the 5 cameras I have, only 1 actually shows this setting in the Ring app and I had never even noticed it before you mentioned it).

Thank you for all your precision. I am not accostumed to attributes in Home Assistant (I go deeper to similar aspects in Nodered right now but I am a newbie).

Another feedback to let you know : I used your addon with a door view cam (= on battery) and battery seems to have vanished in a day. I will make further tests (my smart home server SDD failed yesterday night and I had to reinstall all my proxmox and homeassistant stuff in well backed-up VMs !).

Obviously taking snapshots at intervals will definitely use battery. The default for battery cameras should be only once every 10 minutes to avoid significant battery drain (most users have reported only a few percent drop with this setting). If you do something like every 10 or 30 seconds, it will absolutely kill the battery quickly.

Currently the behavior of ring-mqtt is to attempt to detect if the camera is battery powered and, if it is, attempt to detect if the snapshot capture feature is enabled on the device and use the setting there, if not enabled, uses 10 minute intervals. Line powered cameras default to 30 seconds interval.

It’s possible that battery vs line powered detection is failing and defaulting to the 30 second interval for your camera, which will absolutely eat the battery.

I may simply be having a dumb moment but can you tell me the status for arming i.e. the 60 seconds between you setting it for away mode and it actually arming.

Use case is an automation that is set to run on the door contact sensor opening and turn on the lights in the hall. But if I’m leaving (knowable by setting the alarm to armed) I don’t want the lights to turn on.

There’s no special status, it just immediately goes to “armed_away” mode as soon as you hit the button. This is due to the fact that the Ring API sends this status. Even if you look even in the Ring app it will display armed status as soon as you press the button even when there is a delay pending.

I have recently discovered that there is a property transitionDelayEndTimestamp that represents the time when the arming will actually take place so I could theoretically implement a transitional “arming” state, since the MQTT alarm control panel integration does support this, but it would require adding some logic that, if armed_away status is received, it then needs to check the transition delay property and set the status, then come back later to update the state again after the time has passed. Certainly simple in concept, but I don’t have much time for this project right now so I’m not sure when I’ll get to it.

However, for your use case, I think you could just check the status is armed_away.

I think I may have just forgot to add the “not” to the condition… ie run if the alarm state is not armed

Hi,

Here below the next episode of my tests.

Nota : I have two camera, one cabled indoor cam, one battery door viw cam.

I changed snapshot option “all” to “interval” because of the severe drain this week-end.

Two days after, my battery is now down to 30 percent.

I am changing from “interval” to “disable” and I will look over the battery drain later in order to see if it comes back to normal (several weeks and months without recharging the battery).

New episode:

I has made the snapshots disabled 3 days ago… Anyhow my door view camera battery fell to 20% this morning (lost 8% in the last 3 hours).

So I unckecked the motion detection in Ring app for the other cam which is cabled in order to test if there is a link between both cam.

I am running 4.5.5 and can’t seem to figure out how to turn on the “Arming Bypass Mode” switch in automations or in Node Red. I’m new to HA and still learning how to use it. I want to check to see if window sensors or doors are open, and if so arm_home with bypass.