Ring Doorbell

Same. In fact, I am not able to view any motion or ring events. None of them register in the event log, and the video never loads when/if I get a push notification from the app. I also can’t remove the device from my Ring account.

I’m working with Ring Support (not mentioning anything about Home Assistant usage) and they are shipping me out a new doorbell. In the meantime I’ve removed everything from Home Assistant. I’m wondering if my account was rate limited or something? I was using the sensor, binary sensor, and a custom switch tied to the ring-doorbell python library to control the mechanical chime. Everything worked fine for before adding those components and for a couple weeks afterward.

ETA: My account won’t let them process a replacement so they are escalating the issue. Something seems to be truly messed up with my account…

1 Like

Guys, this problem never happened to my account but the newer version now will share the username/password to avoid double authentication.

The PR https://github.com/home-assistant/home-assistant/pull/6520 requires the component to be configured like this:

#configuration.yaml
ring:
    username: !secret ring_username
    password: !secret ring_password

binary_sensor:
  - platform: ring
    monitored_conditions:
      - ding
      - motion

sensor:
  - platform: ring
    monitored_conditions:
      - battery
      - last_activity
      - last_ding
      - last_motion
      - volume

I can’t seem to get that to work if I put those 3 ring.py's in subsequent folders of my custom_components unfortunately:

                  ?[31m17-03-27 22:31:53 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.binary_sensor.ring. Make sure all dependencies are installed?[0m
                  Traceback (most recent call last):
                    File "/srv/hass/lib/python3.5/site-packages/homeassistant/loader.py", line 141, in get_component
                      module = importlib.import_module(path)
                    File "/srv/hass/lib/python3.5/importlib/__init__.py", line 126, in import_module
                      return _bootstrap._gcd_import(name[level:], package, level)
                    File "<frozen importlib._bootstrap>", line 986, in _gcd_import
                    File "<frozen importlib._bootstrap>", line 969, in _find_and_load
                    File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
                    File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
                    File "<frozen importlib._bootstrap_external>", line 665, in exec_module
                    File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
                    File "/home/hass/.homeassistant/custom_components/binary_sensor/ring.py", line 11, in <module>
                      from homeassistant.components.ring import (
                  ImportError: No module named 'homeassistant.components.ring'?[0m
                    File "/home/hass/.homeassistant/custom_components/sensor/ring.py", line 12, in <module>
                      from homeassistant.components.ring import (
                  ImportError: No module named 'homeassistant.components.ring'?[0m
                  ?[31m17-03-27 22:31:53 ERROR (MainThread) [homeassistant.config] Invalid config for [sensor.ring]: required key not provided @ data['password']. Got None
                  required key not provided @ data['username']. Got None
                  value is not allowed @ data['monitored_conditions'][2]. Got 'last_ding'
                  value is not allowed @ data['monitored_conditions'][3]. Got 'last_motion'. (See ?, line ?). Please check the docs at https://home-assistant.io/components/sensor.ring/?[0m

Seems like the built-in module may be being used instead of the custom component?

I heard back from Ring support and they asked if I was using my account with any automation software. They saw multiple devices authenticated with my account (none visible to me) and said it was blocking functions on my account. Now waiting for them to remove all the duplicate devices.

Hopefully sharing credentials between sensor/binary sensor components will prevent this from happening again, but I’m now nervous to try this again once my account is fixed…

Hello @gurase, thanks for information.

Yes, sharing the sensors will help to avoid multiple authentications. Also, I’m going to modify the component to save the token used to avoid it as well.

Thanks for sharing this information.

1 Like

Regarding the video capture (if you plan on implementing) would it be possible to grab the last motion/ring video snapshot and use that in the camera component?

1 Like

Guys, after reviewing the code it very possible that using the binary_sensor and sensor combined could cause the issues multiple authentication issues as reported by you.

I think the PR https://github.com/tchellomello/python-ring-doorbell/pull/36 will address this issue. I tested on my local HA and it used the same token as expected. If the current/saved token fails, then a new one is automatically issued.

Having said this, tomorrow I’ll review the HA PR https://github.com/home-assistant/home-assistant/pull/6520 and add the new features and hopefully it will be official and stable on HA 0.42.

For now, I would recommend disabling one of the sensors to avoid further issues.

Thanks for everyone testing and reporting this issue.

Guys, PR# https://github.com/home-assistant/home-assistant/pull/6520 was accepted today and should be present on the next release of HA.

I believe with this newer version you should not have issues.

Please let me know if you hit any problems.

Thank you for everyone involved on this!!

mmello

1 Like

In case anyone else has the same issue I had, Ring was able to clean up my account enough so that I could remove my doorbell from the account. However, the only way I could re-add it was to create a new account with a new email address. Now everything works as it should; I unfortunately just can’t use my normal email address (no way to change it).

Hopefully the new version fixes this problem, but I’m still too scared to try it after the nightmare I had :wink:

I just upgraded to 0.42 and noticed my ding binary sensor went away. After I configured configuration.yaml as the example above where the password is only under the ring component it basically all just failed, no binary sensors visible at all. Do I need to remove the previously manually installed sensor and binary sensor in custom_components or something?

Once I downgraded back to 0.41 it all works perfectly

Works fine here:

Did you make sure the entity name didn’t change for some reason?

There was no entity id name at all for ding. Initially the motion sensor was still there and that was before I altered configuration.yaml where the password was under both sensor and binary_sensor.

Once I set it up as per the new example both binary sensors disappeared.

It told me (and I’m shooting from the hip here that the sensor conditions that were added (last activity was one I think) weren’t valid. That’s why I was thinking it was still “seeing” the ring.py’s from custom_components.

Do I delete those? Does HA add new, updated instances of them during the install somewhere else?

Ok here’s what i did. In custom_components I renamed sensor and binary_sensor folders with a .old extension to take them out of play.

Restarted HA after configuration.yaml configured as per the new ring example. No joy. Then as per an earlier post here.

I removed all the ring sensor data in configuration.yaml. Now my binary_sensors show up and appear to be functioning. But I have this weird entry in the log.

17-04-09 13:03:38 WARNING (MainThread) [homeassistant.core] Something is blocking Home Assistant from wrapping up the start up phase. We're going to continue anyway. Please report the following info at http://bit.ly/2ogP58T : switch.wemo, switch.command_line, climate.nest, tts, media_player, wemo, camera.nest, sensor.zwave, binary_sensor.nest, zone, climate, light.zwave, automation, mqtt, updater, ring, light.lifx, binary_sensor.ring, history, notify, recorder, binary_sensor.zwave, switch.zwave, config.group, media_player.squeezebox, zwave, emulated_hue, binary_sensor.mqtt, camera.generic, http, media_player.emby, nest, discovery, group, switch.mqtt, binary_sensor, sensor.nest, device_tracker, config.zwave, weblink, sensor, camera, sensor.yr, sun, config.core, switch, conversation, frontend, logbook, config, api, ifttt, media_player.apple_tv, light, websocket_api

That being said everything seems to be working okay. Just I can’t have the ring sensors enabled at the same time apparently.

I’m not home but manually triggered the automations I have associated with the ring sensor (ding). Works like a champ.

Also of note I am running 0.42.2 even though the web page shows 0.42.1 as being most current.

Ok sorry to post so much but as I work through this I figure I’m on to something and I post it.

I looked real close through my configuration.yaml and the sensors last_motion and last_ding that I added, I added like this:

last motion
last ding

without the _ underscore. Stupid rookie mistake.

It works perfectly as advertised. The goofy log entry I had above of course went away after I found that. My apologies for adding to the thread when I clearly made a stupid yaml mistake.

1 Like

No such thing as stupid mistakes unless you’ve done the same thing at least three times before. And even then you are just persistent not stupid. Trust me, someone else has already made the same mistake or will make it and your post will be what helps get them on the right road.

4 Likes

Well said @turboc!!

Thanks guys for all the work and hours you put into this!! :slight_smile:

One picky little thing.

The last ring value is showing 14:24. That’s great, except that was yesterday. The “created at” value seems to show it right. But the sensor state seems to only be showing it as if it was today. Is there a way to put that back to a - to indicate it wasn’t today? Last motion might be doing it too, but since I went out to get the mail at around 15:00 it’s actually right. :slight_smile:

1 Like

@turboc yes the other sensors will be doing the same because we don’t monitor the day that happened. As you said, the created at will be displaying the date but not the stamp on the sensor.

Do you have any idea on how to determine it? Maybe should we just omit any notification if it is not from today? Maybe we can add an option and the user can change its behavior.

I’m open any ideas.

mmello

Either way, I’m easy. I’m just really happy it works.
Thanks for your hard work

The created at attribute shows the full timestamp with the date:

{
  "attribution": "Data provided by Ring.com",
  "category": "ding",
  "created_at": "2017-03-29T15:47:19-04:00",
  "type": "doorbots",
  "answered": false,
  "friendly_name": "Doorbell Last Ding",
  "device_id": "001dc9197fea",
  "kind": "doorbell",
  "recording_status": "ready",
  "icon": "mdi:history",
  "timezone": "America/New_York",
  "firmware": "110.8.68"
}

Is there a reason why that can’t be part of the sensor string?

Also, is there any chance of supporting volume sliders in the Doorbell and Chime sensor cards? I had these when I used to have Ring via the Wink Hub and I kinda miss them.