---
title: "Ring"
description: "Instructions on how to integrate your Ring.com devices within Home Assistant."
logo: ring.png
ha_category:
- Doorbell
- Binary Sensor
- Camera
- Sensor
- Switch
- Light
ha_release: 0.42
ha_iot_class: Cloud Polling
---
The `ring` implementation allows you to integrate your [Ring.com](https://ring.com/) devices in Home Assistant.
There is currently support for the following device types within Home Assistant:
- [Binary Sensor](#binary-sensor)
- [Camera](#camera)
- [Sensor](#sensor)
- [Switch](#switch)
Currently only doorbells are supported by this sensor.
This component does NOT allow for live viewing of your Ring camera within Home Assistant.
## Configuration
To enable device linked in your [Ring.com](https://ring.com/) account, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
ring:
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
{% configuration %}
username:
description: The username for accessing your Ring account.
required: true
type: string
password:
description: The password for accessing your Ring account.
required: true
type: string
scan_interval:
description: How frequently to query for new video, or current sensor values in seconds
required: false
type: integer
default: 10
{% endconfiguration %}
## Binary Sensor
Once you have enabled the [Ring integration](/integrations/ring), you can start using a binary sensor. Add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: ring
```
{% configuration %}
monitored_conditions:
description: Conditions to display in the frontend. The following conditions can be monitored. If not specified, all conditions below will be enabled.
required: false
type: list
keys:
ding:
description: Return a boolean value when the doorbell button was pressed.
motion:
description: Return a boolean value when a movement was detected by the Ring doorbell.
{% endconfiguration %}
Currently it supports doorbell, external chimes and stickup cameras.
## Camera
Please note that downloading and playing Ring video will require a Ring Protect plan.
Once you have enabled the [Ring integration](/integrations/ring), you can start using the camera platform. Add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
camera:
- platform: ring
```
{% configuration %}
ffmpeg_arguments:
description: Extra options to pass to ffmpeg, e.g., image quality or video filter options.
required: false
type: string
{% endconfiguration %}
**Note:** To be able to playback the last capture, it is required to install the `ffmpeg` component. Make sure to follow the steps mentioned at [FFMPEG](/integrations/ffmpeg/) documentation.
Currently it supports doorbell and stickup cameras.
## Saving the videos captured by your Ring Door Bell
You can save locally the latest video captured by your Ring Door Bell using the [downloader](/integrations/downloader) along with either an [automation](/integrations/automation) or [python_script](/integrations/python_script). First, enable the [downloader](/integrations/downloader) integration in your configuration by adding the following to your `configuration.yaml`.
```yaml
downloader:
download_dir: downloads
```
Then you can use the following `action` in your automation (this will save the video file under `/downloads/ring_/`):
{% raw %}
```yaml
action:
- service: downloader.download_file
data_template:
url: "{{ state_attr('camera.front_door', 'video_url') }}"
subdir: "{{state_attr('camera.front_door', 'friendly_name')}}"
filename: "{{state_attr('camera.front_door', 'friendly_name')}}"
```
{% endraw %}
If you want to use `python_script`, enable it your `configuration.yaml` file first:
```yaml
python_script:
```
You can then use the following `python_script` to save the video file:
```python
# obtain ring doorbell camera object
# replace the camera.front_door by your camera entity
ring_cam = hass.states.get('camera.front_door')
subdir_name = 'ring_{}'.format(ring_cam.attributes.get('friendly_name'))
# get video URL
data = {
'url': ring_cam.attributes.get('video_url'),
'subdir': subdir_name,
'filename': ring_cam.attributes.get('friendly_name')
}
# call downloader integration to save the video
hass.services.call('downloader', 'download_file', data)
```
## Sensor
Once you have enabled the [Ring integration](/integrations/ring), you can start using the sensor platform. Add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: ring
```
{% configuration %}
monitored_conditions:
type: list
required: false
description: Conditions to display in the frontend. The following conditions can be monitored. If not specified, all conditions below will be enabled.
keys:
battery:
description: Return the battery level from device.
last_activity:
description: Return the timestamp from the last event captured (ding/motion/on demand) by the Ring doorbell camera.
last_ding:
description: Return the timestamp from the last time the Ring doorbell button was pressed.
last_motion:
description: Return the timestamp from the last motion event captured by the Ring doorbell camera.
volume:
description: Return the volume level from the device.
wifi_signal_category:
description: Return the WiFi signal level from the device.
wifi_signal_strength:
description: Return the WiFi signal strength (dBm) from the device.
{% endconfiguration %}
Currently it supports doorbell, external chimes and stickup cameras.
## Switch
Once you have enabled the [Ring integration](/integrations/ring), you can start using the switch platform. Add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
switch:
- platform: ring
```
This will add a switch for every camera that supports a siren. Note the siren will only turn on for 30 seconds before automatically turning off.
## Light
Once you have enabled the [Ring integration](/integrations/ring), you can start using the light platform. Add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
light:
- platform: ring
```
This will add a light for every camera that supports a light (such as a flood light).