NOTE: This is an early beta pulling the original Ring binding from OH2.5 into OH3/OH4. All original author credit goes to Wim Vissers who originally wrote the OH2.5 binding.
Ring
This is an experimental binding to the Ring.com API. It currently supports a Ring account
and is able to discover Ring Video Doorbells, Stickup Cameras, Chimes, and Other devices.
They need to be registered in the Ring account before they will be detected.
It currently does not support live video streaming, but you can view recorded video’s,
if this service is enabled in the Ring account.
Supported Things
The binding currently supports Ring Video Doorbell, Sickup Cameras, Chimes, and Others.
Other is identified as any of the non-traditional types such as the intercom.
Discovery
Auto-discovery is applicable to this binding. After (manually) adding a Ring Account thing,
registered doorbells and chimes will be auto discovered.
Binding Configuration
There is binding configuration necessary. The easiest way to do this is from the Paper UI. Just
add a new thing, select the Ring binding, then Ring Account Binding Thing, and enter username and password.
Optionally, you can also specify a unique hardware ID and refresh interval for how often to check ring.com for
events. If hardware ID is not specified, the MAC address of the system running OpenHAB is used.
Channels
Control group (all things):
Channel Type ID | Item Type | Description |
---|---|---|
Enabled | Switch | Enable polling of this device/account |
Events group (Ring Account Binding Thing only):
Todo: Move these to the device thing
Channel Type ID | Item Type | Description |
---|---|---|
URL to recorded video | String | The URL to a recorded video (only when subscribed on ring.com) |
When the event was created | DateTime | The date and time the event was created |
The kind of event | String | The kind of event, usually ‘motion’ or ‘ding’ |
The id of the doorbot | String | The internal id of the doorbot that generated the currently selected event |
The description of the doorbot | String | The description of the doorbot that generated the currently selected event (e.g. Front Door) |
Device Status (Video Doorbell Binding Thing, Stickup Cam Binding Thing, Other Binding Thing only):
Channel Type ID | Item Type | Description |
---|---|---|
Battery level | Number | Battery level in % |
Full Example
NOTE 1: Replace <ring_device_id> with a valid ring device ID when manually configuring. The easiest way to currently get that is to define the account thing and pull the device ID from the last event channel.
ring.things:
ring:account:ringAccount "Ring Account" [ username="user@domain.com", password="XXXXXXX", hardwareId="AA-BB-CC-DD-EE-FF", refreshInterval=5 ]
ring:doorbell:<ring_device_id> "Ring Doorbell" [ refreshInterval=5, offOffset=0 ]
ring:chime:<ring_device_id> "Ring Chime" [ refreshInterval=5, offOffset=0 ]
ring:stickupcam:<ring_device_id> "Ring Stickup Camera" [ refreshInterval=5, offOffset=0 ]
ring:other:<ring_device_id> "Ring Other Device" [ refreshInterval=5, offOffset=0 ]
ring.items:
Switch RingAccountEnabled "Ring Account Polling Enabled" { channel="ring:account:ringAccount:control#enabled" }
String RingEventVideoURL "Ring Event URL" { channel="ring:account:ringAccount:event#url" }
DateTime RingEventCreated "Ring Event Created" { channel="ring:account:ringAccount:event#createdAt" }
String RingEventKind "Ring Event Kind" { channel="ring:account:ringAccount:event#kind" }
String RingEventDeviceID "Ring Device ID" { channel="ring:account:ringAccount:event#doorbotId" }
String RingEventDeviceDescription "Ring Device Description" { channel="ring:account:ringAccount:event#doorbotDescription" }
Switch RingDoorbellEnabled "Ring Doorbell Polling Enabled" { channel="ring:doorbell:<ring_device_id>:control#enabled" }
Number RingDoorbellBattery "Ring Doorbell Battery [%s]%" { channel="ring:doorbell:<ring_device_id>:status#battery"}
Switch RingChimeEnabled "Ring Chime Polling Enabled" { channel="ring:chime:<ring_device_id>:control#enabled" }
Switch RingStickupEnabled "Ring Stickup Polling Enabled" { channel="ring:stickupcam:<ring_device_id>:control#enabled" }
Number RingStickupBattery "Ring Stickup Battery [%s]%" { channel="ring:stickupcam:<ring_device_id>:status#battery"}
Switch RingOtherEnabled "Ring Other Polling Enabled" { channel="ring:other:<ring_device_id>:control#enabled" }
Number RingOtherBattery "Ring Other Battery [%s]%" { channel="ring:other:<ring_device_id>:status#battery"}
Changelog
Version 0.7 (93b326a)
- Fixes text based things
- Makes changes to CLI
- BREAKING CHANGE - See post 103 below for details
Version 0.6 (2a0dbc6)
- Adds chime and other types
Version 0.5.1 (127eaa7)
- Additional fixes for battery
Version 0.5 (a78a12b)
- Moves URL to separate thread
- Fixes battery
Version 0.4.1 (34af1e0)
- Fixes 2 regressions from 0.4
Version 0.4 (f66fca8)
- Updates event URL to cloud
- Fixes several logger issues
- Other minor bug fixes
Version 0.3 (be0dca2)
- Updates thing properties
- Updates discovery name
- Updates logging
Version 0.2 (c32ebe1)
- Updates from review
- Fixes multiple exceptions
Version 0.1 (363a2f6)
- initial release