[Release] Unofficial Ring Integration

Notice!!!

First and foremost I need to warn any who venture to use this integration. This integration is provided for fun without hope of warranty or safety or stable or permanent use. Ring are not official partners with Hubitat or myself and all of the interactions between the Hubitat hub and Ring's cloud servers in this integration are via the private API calls that Ring does not publish or give permission to use for this purpose. I wrote this integration for fun and I do not trust it with my safety. It's a hobby project. (That said, it is well built and stable. On the Hubitat side the hub slows down sometimes and drops the websocket connection but there is a watchdog that starts it back up.)

If some part of this integration does not work now or stops working in the future I make no gaurantees and this is provided "AS IS" without hope of service or warranty. If you use this integration you agree to hold me unresponsible for what may happen to your Ring account in the event that Ring deems this type of usage of the API unreasonable. You agree to hold me unresponsible for what may happen to your home, personal property, self, family, etc. if the integration does not work or does not do what you think it should. You agree to hold me unresponsible. End of story.

If that sounds okay then continue onwards...

This integration is a cloud integration. It does not allow local communication to your cameras, doorbells, chimes, smart lighting, alarm or security devices. It is cloud to cloud or local (HE) to (Ring) cloud depending on what is happening. If you want local communication you probably shouldn't be in the Ring camp. Ring does not provide that capability. The device drivers here are not for Z-Wave devices that will be paired directly to Hubitat. If you want to pair Z-Wave devices directly to HE you can use my other drivers.

Everyone should start by installing the app. From there, there are two types of devices; devices that communicate via classic HTTP calls and devices that communicate via websockets. It roughly breaks down like this:

  • Security cameras, doorbells and chimes (classic HTTP devices)
  • Beams devices (websocket devices)
  • Security devices (websocket devices)

In Hubitat apps are not allowed to have websocket clients. For this reason, everyone with a Beams (Security Lighting) or Alarm/Security device needs to install the driver for the API device. The app will establish a websocket client in the API device. In addition, users should install device drivers for devices they own. The dependency heirarchy will look like this a little:

                     App
         /                        \
    websocket                cameras/chimes/doorbells
      device
    /                \
 security          beams 
 devices          devices

Before you install any classic HTTP devices know that since we are not Ring partners we cannot get motion and ring notifications pushed to us (our HE hubs) directly. Because of this we have three options. One option is to poll for them. Yes, this is horrible and for that reason I do not poll myself. However, I added this functionality because it seems to work for the home bridge project. AND... I know that I will spend forever explaining why I didn't add it if I don't. Now I will probably just spend forever explaining why you can't poll more often for dings or dings are missed... Option two is to setup IFTTT applets for each motion type (ring or motion) for each device. There is fairly robust documentation for how to do this within the app so I will only cover it briefly here. You must enable OAuth on the app and authorize Ring to IFTTT. Then you create applets on Ring events that call into the "Unofficial Ring Connect" app using an OAuth token by way of web service calls from the "Webhooks" IFTTT service. If it sounds complicated, don't worry. After you install the app you can navigate through to the IFTTT page and learn more. Finally, the third option is to use SmartThings and the hublink app and have separate devices for status. (I use IFTTT.)

I also added the ability for each light device to poll for its light status since we can't get it from IFTTT. I don't use this either. I use these devices for control. I do not use them for status. I don't ever need to know their light status therefore I don't care what it is and I don't poll for light status. However, some of you may want to know a light status. Use sparingly.

You do NOT need to install all of the device drivers in this repository. You should be able to get away with installing the drivers for just the devices you own and have registered. Here are the device to driver mappings roughly:

The app

Children of the app

Children of the Ring API Virtual Device (websocket device)

Ring Alarm

Ring Security Lighting (Ring Bridge/Beams)

The app will create the camera, chime and doorbell devices automatically. However, because it was far easier the security and beams devices are NOT created automatically via the app's discover devices functionality. Once you add the "Ring API Virtual Device" from the app you must go and click "Create Devices" on your respective device to get its websocket children device(s) to create. For example, if you have alarm devices go to the alarm hub device's edit page and click the "Create Devices" command.

Brief Installation Instructions (IF YOU ONLY READ ONE THING LET IT BE THIS SECTION)

  • Go to github.com via the links above and install the custom app code. (Install custom apps using the "Apps Code" link in the left navigation of the Hubitat hub.)
  • Also on github.com get the code for all of the devices you need using the list above. If you have alarm or security lighting devices you also need the "Ring API Virtual Device" driver. (Install custom drivers using the "Drivers Code" link in the left navigation of the Hubitat hub.)
  • Create an instance of the app. (Create instances of custom apps using the "Apps" link in the left navigation of the Hubitat hub.)
  • Authenticate to Ring in the app by giving it your Ring credentials and choose your location.
  • Click the "Discover Devices" link in the app. If you have alarm or security devices be sure to also pick to install the "Ring Virtual API Device". The app will create any devices you select here for you.
  • You won't get motion or ring notifications or events on cameras and doorbells until you configure them. There are instructions in the app to set them up under the "Configure the way that Hubitat will get motion alert and ring events" link. It is highly recommended to use IFTTT for notifications. You can poll for events but it is often unreliable.
  • You are done if you do not have alarm or security lighting devices.
  • If you have alarm or security lighting devices you will need to go to the "Ring Virtual API Device" and make sure it is connected by looking at its current state for websocket.
  • If it isn't connected, hit the "Initialize" command button
  • If it is connected, the API device should have up to two children devices already created. If you have alarm devices, the alarm hub should be created. If you have security lighting devices the beams bridge should be created. Go to each of these devices and click its "Create Devices" command button. This will automatically create the alarm and security devices.
  • At no point should you create a device yourself. The only thing you need to create is the app instance. The app and API device create everything else.

IF YOU NEED SUPPORT DO NOT OPEN AN ISSUE ON GITHUB. Issues are for code problems aka bugs. If you have a support issue please make a post here in this thread.

I will try to keep the latest changes marked via the "solution" functionality in Discourse.

The repository:

FAQ

  • Why does my app re-authenticate every hour and my websocket disconnect every 4 hours? Ring does this for security purposes. I cannot change this. Under normal conditions re-authentication and disconnects are handled automatically. You can see them if you have informational logging turned on.
  • Can I configure the unofficial app from any device? Configuring the app does not work in some versions of Edge (Microsoft Edge 44.18362.449.0 with Microsoft EdgeHTML 18.18362). No issues have been reported with Chrome.
  • I have just installed new devices but they aren't showing up in Hubitat. What do I do? If they are cameras, doorbells or chimes re-run discover from the app. If they are security devices go to your hub and click the "Create Devices" button.
  • I have just followed the instructions in the bullet point above and I still don't see my new devices. What do I do? Double check that you have the correct drivers installed. If that doesn't work turn on trace and debug logging and see what you can see. Ask questions in the thread if the answer is not clear.
  • Can I leave trace and debug logging turned on? I wouldn't. Excessive logging affects hub performance and the maintenance window.
  • Should I paste the IDs of my devices publicly? I wouldn't. These IDs can be tied back to you. They may be used in some undiscovered future exploit or as a record that you have done things that may or may not be against Ring's EULA.
  • You don't support my device yet. What can I do? Help me gather information or send it to me. You pay for shipping both ways.
  • Can I use these drivers to pair Z-Wave devices directly to Hubitat? No. These are for cloud integrations. If you want to pair Z-Wave devices directly to Hubitat use my Z-Wave drivers in this other repository. GitHub - codahq/hubitat_codahq
  • Do you have a donation link? Not yet. For now just :heart: the topic.

*Original post:
I have written a native integration for Ring. It supports light and siren control of cameras with lights. It fully supports chimes. It fully supports the alarm and most of its devices. It fully supports the Beams bridge and most of its devices.

The integration doesn't poll for status so cameras and doorbells with motion sensors don't support motion. However, lights and security devices (anything over the websocket) do support motion.

If I can point you to a repository and you do everything from there to install apps and drivers and would like to test this out let me know. I only need a few volunteers. If you aren't capable of being very self-sufficient in setup you'll have to wait until this has been tested and I release it publicly.

Post here if you would like to participate. I need at least 1 tester with an alarm and 1 tester with a Beams bridge. Maybe a tester with a chime or two.

25 Likes
Any plans for Ring doorbell integration?
Ring Alarm integration
Ring Chime Integration
Ring Support
Replacing An Existing Home Security System
Ring Alarm Keypad
Security system
[BETA] Ring Alarm Integration
Need more devices :)
Ring Alarm, Schlage Locks, and Hubitat Challenge!
New user planning out what to buy for door and motion sensors
Relay to trigger existing 12 volt sirens when alarm is tripped
Which “Smart Home Secuity Kit” to work with HE
Ring Alarm deal for Canadians (possibly US too)
Any of these devices supported?
[RELEASE] HubConnect - Share Devices across Multiple Hubs (even SmartThings!)
Debate about Hubitat's Approach to Ring
New to this... Ring via Alexa question
DIY Security System
[BETA] Ring Integration
Keypad availability drying up
Battery powered LED Notifier?
[RELEASE] Ring Range Extender/Contact Sensor/Motion Sensor/Smoke and CO Listener
Ring Alarm deal for Canadians (possibly US too)
Recommendations for Porch Light IP Cameras?
Wink moves to Subscription model
I bet hubitat sees ALOT of new improvements, since wink is going sub only
Limitations of DIY home automation platforms as security systems
Community Device Drivers (AKA Compatible Devices Wiki)
Wink Refugee Here Almost Settled In
Ring Alarm
Wink 2 hub to Hubitat Tips
Best Path to Move Forward?
Hubitat & Alarm Systems
Any plans to become a ring partner?
Ring Alarm and HE. Two Z-Wave networks?
Security - Alarm System
Home security monitoring system transition
NEW TO HUBITAT... Question on locks and Carrier Infinity System

I have a Ring doorbell with two chimes. I'm willing to help, if I can test anything for you.

I have not yet received my Hubitat hub (it’s on its way now), but would be happy to help you with testing this. I’ll let you know when I receive it.

I have a Ring alarm, 2 doorbells gen 1, 1 doorbell Gen 2, 2 doorbells Pro, 1 stickup cam and a floodlight cam. I also have 4 Z-Wave locks and 4 door sensors. Finally, I have some indoor cams on pre-order which should arrive in early December.

I have a Floodlight and would be willing to help. Thanks

Doorbell and Chime here :+1: Be happy to help.

Thank you sir, count me in :slight_smile:

I have many ring products. Would like to help!

I have a Ring alarm, chime, floodlight and doorbell. I'm willing to help test.

I have 2 doorbell, 2 flood lights, 3 chime pro’s, 2 wired cameras and would love to help.

Okay, I think I have my group. If everything goes well you can expect to see something soon. Thank you, every one.

1 Like

Have door bell two stickup cams and two flood light cams. and willing to test.. :>

I have the doorbell and the alarm. I can test. Thanks

As me to list to test, I have Ring Doorbell Pro 2, 2 Ring Floodlights, Ring Chime, Ring Smartlighting and Ring indoor camera. Any support possible to be added for the Smart Lighting for motion and switch events?

Yes please! Doorbell here.

I'd be glad to help, but all I have is a doorbell pro.

I have it already working.

I have the alarm system. Would be happy to help.

I’ve played with the ring apis a lot. Happy to help

Alright, I chose busy testers. They were a little less responsive than I wanted. I got good feedback that everything they tried was working and I'm impatient. I updated the first post with information about the integration.

Knock yourselves out.

2 Likes

@codahq

I can't get the discovery to find my Ring Doorbell Pro 2 so far, it did find all of my other devices without any issues though. Do you have any suggestions at all to get it to show?

Is there anyway to add support for button presses on the doorbell cameras or is that something that isn't able to be captured?

Edit:
Looks like this particular doorbell if missing in the App code, here's the model per Smartthings:
DeviceModel: lpd_v2

"lpd_v2": [name: "Ring Video Doorbell Pro 2", driver: "Ring Generic Camera", dingable: true],

When I added this in the App Code it found it just fine: