Ring Doorbell

Hello @rpitera, I’m sorry I did not understand your point before.

Yes it would work with entity_name. I’ll modify it tonight and let you know.

I’m glad I clarified my response - I just think that supporting entity_name is a cleaner solution to a problem that few may have and in my case will be temporary. I just want to be able to differentiate between the Ring and the Wink instances while testing.

See, my intent is that once this is all working, I want to remove this from my Wink setup. Right now, I have two binary sensors with Wink; one for doorbell press and one for motion trigger. I’ll lose both of those if I remove it from Wink. Motion isn’t as important to me but it might be something to consider for those that use it. It would just be easier to trigger automations from a binary sensor dedicated to task, in my opinion.

1 Like

@syphernl technically we could look at the attribute[‘kind’] to determine if it was a motion or ding, but let’s create the binary sensors too.

Through a binary_sensor it will be easier for automation for sure.

I’ll work on this tonight.

1 Like

@tchellomello our discussion the other day led me to look into the Ring doorbells and came across this thread. Nice work, once again! How is everyone liking their Ring Doorbells? I’m now considering a Pro, and any feedback is appreciated.

I like mine, but I think I’ll like it more with this component. I had it running through Wink and their implementation wasn’t the best.

Not sure if this has been reported, but:

17-02-16 09:52:36 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "uvloop/future.pyx", line 372, in uvloop.loop.BaseTask._fast_step (uvloop/loop.c:112669)
  File "/usr/src/app/homeassistant/helpers/entity_component.py", line 387, in _update_entity_states
    yield from update_coro
  File "/usr/src/app/homeassistant/helpers/entity.py", line 222, in async_update_ha_state
    device_attr = self.device_state_attributes
  File "/config/custom_components/sensor/ring.py", line 137, in device_state_attributes
    attrs['firmware'] = self._data['firmware_version']
TypeError: list indices must be integers or slices, not str
17-02-16 10:25:38 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "uvloop/future.pyx", line 372, in uvloop.loop.BaseTask._fast_step (uvloop/loop.c:112669)
  File "/usr/src/app/homeassistant/helpers/entity_component.py", line 387, in _update_entity_states
    yield from update_coro
  File "/usr/src/app/homeassistant/helpers/entity.py", line 222, in async_update_ha_state
    device_attr = self.device_state_attributes
  File "/config/custom_components/sensor/ring.py", line 137, in device_state_attributes
    attrs['firmware'] = self._data['firmware_version']
TypeError: list indices must be integers or slices, not str

@rpitera you can check out the new version where we are making use of entity_namespace now.

Just replace the file and restart HASS.

https://raw.githubusercontent.com/tchellomello/home-assistant/ring/homeassistant/components/sensor/ring.py

Hello @kylerw interesting…

Could you please the line below on your ring.py and try to restart it again to see what is happening?

@@ -137,6 +137,7 @@ class RingSensor(Entity):
                 attrs['recording_status'] = self._data['recording']['status']
                 attrs['kind'] = self._data['kind']
             else:
+                _LOGGER.info("sensor_type: %s  data: %s", self._sensor_type, self._data)
                 attrs['firmware'] = self._data['firmware_version']
                 attrs['device_id'] = self._data['device_id']
                 attrs['timezone'] = self._data['time_zone']

If you prefer, you can download the file directly from https://gist.github.com/tchellomello/e803c13c7fafd5cd8a4b83cbd5c7869b.

Thank you!

Tested and working great - thanks!

Just a question; are there any plans to be able to change the volumes on the chime/doorbell from the sensor detail cards like you can with a media player, like a volume slider? Just curious.

3 Likes

This would be neat… maybe even the ability to enable/disable motion monitoring, etc.

If the API is capable of doing so the same should apply to this module.
Would be nice, this would allow you to schedule the volume of the Ring devices or provide more motion detection schedules. Sounds nice!

1 Like

Yeah, similarly - the earlier request around disabling the mechanical chime - would be awesome to be able to control and automate as well (off during kids nap time, for example). I realize that currently that capability is only exposed to the Ring Pro but wonder if it is still possible on others as well using the API.

1 Like

Hello guys, great idea!! Yes I think it can be possible. Maybe for the first version we can aim on read-only and then the next version we can modify values. I like the idea of changing the chime volume especially with a new born at home and during the nap times. Let’s do it!

3 Likes

@tchellomello thanks for being an enabler… and @rpitera thanks for your feedback, I have a Pro on the way, and also very interested in the upcoming Floodlight Cam. I’ll be joining your testbed in a week!

1 Like

Oh, hey congrats!

1 Like

I’m just jumping in this conversation. I have a Ring (non-Pro) that’s still in the plastic container, waiting to see if it’s going back to the store or not. :slight_smile:

The jumping point is whether I have to pay a monthly (or yearly) subscription. If that’s the case, then I’m probably returning it. Do the above API calls require a subscription, or is it only needd for certain features? What about pulling up live video when there’s been a notification? Thanks :smiley:

@jschwalbe You pay for the ability to view the stored video’s. Without a subscription everything still works. It also still records to the cloud, except you cannot view them until you subscribe.

I think one of the other benefits of the subscription is the Neighborhood Watch feature that allows other users to flag a recording so that other users in the vicinity get a notice. This is used when something suspicious happens and has proven to be quite useful in my neck of the woods.

I joined in the fray here with a new Ring Pro. So far all works as advertised. Why does it show Motion Sensor “False” I don’t understand that setting.

Anyway if you need a guinea pig to test something on, I’m that guy.

I was wondering the same. I can’t figure out what triggers a “True” value for it (yes, I’ve tried waving my arms in front of my doorbell as a test, to the enjoyment of my neighbors no doubt).