Ring Device integration via MQTT w/ Video Streaming

@tsightler thanks for this post. It was very helpful to understand how to update device and entity IDs.

Hi I’ve been using this integration for quite a while and it’s been running great. I only have the one ring device which is a ring doorbell pro. However, I’ve just realised that the entity/sensors for both doorbell ding and motion detection are not working properly within home assistant. They are only staying as “Clear” and do not change. The motion events and dings are being detected in the ring app just fine and are still enabled. I’ve tried re authenticating ring within the addon and also restarting the add on but it still isn’t working. Any idea what the problem could be, it was working fine before… although I’m not sure how long it hasn’t been working for as I only use those sensors for a few things in home assistant. Thanks.

I’m guessing you are actually using the HA Ring Integration and not the ring-mqtt integration. There is a known issue with the Ring Integration:

Try the ring-mqtt integration instead.

Interesting co-incidence but I’m definitely using Ring-MQTT by tsightler and not the HA Ring Integration.

Sorted. I uninstalled Ring-MQTT and then re-installed it and it’s working again. I recently migrated from an RPi4 to Proxmox so I wonder if something within the HA backup broke the addon… strange how everything else within the addon was ok.

Standard ring-mqtt troubleshooting:

  1. Stop/start the addon
    This works and is all that is required about 99% of the time. This seems obvious but the biggest issue is that using the UI to restart HA does not restart addons, unless you expand the advanced options and choose to reboot the system. It seems like 99% of HA users believe that restarting HA also restarts addons when it does not, it only restarts the container running the HA core code, not the containers running the addons. Each addon has it’s own restart option, or you can choose to reboot the host system.

  2. Stop addon/Remove authorized device(s) from Ring Control Center/Start addon/Re-authenticate
    This works for approximately the remaining .999% of the time and is basically the same steps Ring recommends if the Ring app is messed up, can’t connect, view devices, etc.

  3. Remove and re-install addon
    Needed maybe .001% of the time, usually only if the container won’t start for some reason or exits immediately. This is brute force, it will work, because the new install gets a new hardware ID generated, which will create a new device registration with Ring, but you could have just removed the old device from Ring Control Center to get the same effect. The biggest down side of this approach is that you lose any device specific settings like snapshot frequency, bypass settings, etc. If you just use 100% default settings for all devices, or you only have a few devices, well, no big deal I guess, but you do also leave old, unused devices registered in Ring, which can negatively impact notifications if you get too many of them.

If you follow these steps, you will generally always be able to recover from any issues with notifications or whatever. Good luck!

5 Likes

Been looking at this post, and I am trying to figure out how to create an action in automation to change the event selector from Motion 1 to On-demand 1 or something similar. Maybe it is something straightforward, but I am missing something. Been looking at posts and can’t find much info about changing the state of a particular entity. My next step will be to download a HACS integration based on a Python script that changes attributes and states of entities, but there might be an easier way than that. Thanks in advance

I’m not 100% sure what you are attempting to do, but there is definitely no requirement to use anything from HACS just to automate changes. Since you replied to a post about changing the event select, I’ll assume that is what your goal is. You can do this with an automation built 100% with the UI easily enough via one of two methods.

  1. Create an automation with your preferred trigger/condition and, for the action, chose the “Device” option, select your doorbell/camera from the dropdown, for “Action” select “Change <camera_name> Event Select option” and then for option select the option you want that automation to switch it to from the drop down.

  2. Create an automation with your preferred trigger/condition and, for the action, choose “Call Service” option, for the “Service” choose “Select: Select” (yes, weird, IMO it should be “Select: Option”, but I don’t control HA) then pick the event select entity you want to change, and enter the option name you want to change it to. This method is, IMO, more complex and requires you to type the option name explicitly (and it must match exactly) but might be useful if you want to use a single automation to change multiple cameras at once.

Overall, none of the is ring-mqtt specific, just standard HA automations, so pursiing this in other forum sections might provide better feedback as I’m far from an expert on HA automations.

Appreciate the quick response, will have a look at these options. Already took a quick look at work and it seems that they should work. Haven’t messed with home assistant too much, only for a few months, and oddly enough I never thought I could treat your dropdown entity as a device. Now it makes perfect sense. I thought about using another forum but it seemed more natural to post on this one as I was under the impression that it would be a more complex solution.

In a different subject I do appreciate you fixing the HEVC issue now my floodlight wired cam works perfect for streaming, I’ve been having some issues with the motion alerts like you mention in your FAQ but I need to do some more discovery as it’s not acting consistently. Sometimes I enable the alerts in the app and starts working and when I disable them to the previous state they just keep working. But I am sure I just need to mess with the options in the app a bit more.

Ring doesn’t make it super easy to understand notifications because it’s not clear in the app which notifications settings are app specific vs device wide. For example, disabling the “Motion Alerts” option is actually app specific, if you have two phones with the app installed and disable motion alerts on one, you will still receive alerts on the other, so that setting actually has zero impact on ring-mqtt. However, features like Smart Alerts or Modes are device wide, so any settings applied there applies to all app clients, so if you disable any notifications in Smart Alerts or Modes, then ring-mqtt will not get those alerts either.

If you are losing notifications after some period of time, there could still be some bug in the push-receiver library, although I’ve been through that library pretty deeply myself and there’s just not that much too it, so I’m not sure what it might be.

Hello complete Noob here, i was able to install this add-on but looking for how to get started and get my cameras configured. I’ve looked around and cant find the enable cameras option

my problem was the mqtt wasnt set up right, now that I got it going, I can see in the logs that is getting snapshots, next question is how can I see those?

I want to ask a question: I have a ring alarm with this integration working completely. When I have a power outage in my house, the base station sends an alarm to ring app. Is there a way to get this working through mqtt? It would be a very useful way to trigger a “power outage” automation.

1 Like

it’s a good idea, you could also use a 7 dls sonoff s31 that would do the same thing, you could have that done tomorrow!!!

I have it set up by now with a Tasmota device “restart reason” entity change from “unavailable” to “any”, but I thought Ring would be more reliable.

You can’t get the alert as it’s a different type of push notification, but assuming your Internet connection stays alive during the power outage (required so that ring-mqtt can maintain its connection to the Ring API), you can build automations that trigger using the status of base station attributes. The base station info sensor includes attributes for AcStatus and BatteryStatus. The AcStatus is either “ok” or “error”, the latter being a pretty good indicator that the power is out. The BatteryStatus will also be “Charged”, “Charging” when on AC power, while it will show “Full” or some other lower level when discharging.

1 Like

It would be the perfect solution, because I do keep internet connection available, but I can’t see those sensors in my integration.

The info sensor is right there in your screenshot, with status OK, which should be the AcStatus as that is the default attribute for that sensor for the base station device. Simply click to open the info sensor and expand the attributes to see all available data for the base station. Many entities in Home Assistant have attributes in additional to their main state and you can use attributes as triggers for automations just like the primary state.

1 Like

Perfect, now I see! Thanks a lot!!

Love this. I’ve been looking for a way to detect power outages. As soon as I saw this I went and created a template binary sensor. :grinning:

# Template binary sensors
- binary_sensor:
    # Electricity Supply binary sensor
    - name: Electricity Supply
      device_class: problem
      icon: >-
        {%- if is_state('binary_sensor.electricity_supply', 'on') -%}
          mdi:transmission-tower-off
        {%- else -%}
          mdi:transmission-tower
        {%- endif -%}
      state: >-
        {%- if (not is_state('sensor.ring_alarm_base_station_info', 'unavailable'))
        and (not is_state('sensor.ring_alarm_base_station_info', 'unknown'))
        and (not is_state_attr('sensor.ring_alarm_base_station_info', 'acStatus', 'ok')) -%}
          on
        {%- else -%}
          off
        {%- endif -%}
2 Likes