Ring Alarm released! (Integration project in post 13)

So, now that ST and Ring are “talking”, how about bringing Alexa into the conversation? :wink:

My Alexa sees the Ring Alarm – assumedly via ST – as a “Contact Sensor”.

Anyone have any thoughts on this? Or just integrating Ring Alarm and Alexa in general? It would be nice to say “Alexa? Set Ring Alarm to Away.” (Or something like that.)

To let Alexa control it,
create a virtual switch, then let that switch trigger a routine that changes SMH state (Alexa can’t trigger a routine that changes SMH)
Either Alexa Helper or Core/Webcore can accomplish this easily

To sync it with SMH, I use Simplisafe’s Smartthings APP

Webcore blocks the off() and home() commands.
To let Webcore set Ring to home or off, add 2 these commands in the device handler:

def hom1() {
log.info “Setting Ring Alarm mode to ‘Home’”
ringApiCall (‘home’)
}
def of1() {
log.info “Setting Ring Alarm mode to ‘Off’”
ringApiCall (‘off’)
}

2 Likes

It updates every 5 min.
You can use webcore to have it update more often and trigger other devices.

YES!!! Thank you, superhell2001. Both Alexa and Google Home now turn my Ring Alarm on and off by voice command.

Sorry, I’m easily amused. :smile:

Can you please some more details for us lesser beings on how you got this done? I have configured Ring via SmartThings and to be able to control is via Alexa would be great. However, I am totally unable to understand what exactly needs to be done. I have created a virtual switch. How do I change the SHM state? SHM configuration requires some kind of motion sensor or contact sensor or alarm.

Thanks…

OK, I’ll give it a try…

  1. I created a “Simulated Switch” called “House Alarm”.

  2. I created an Automation called “Alarm Off”. In that automation, I set “Location” to “Home” when the switch is set to off.

  3. I created an another Automation called “Alarm On”. In that automation, I set “Location” to “Away” when the switch is set to on.

As such, my Ring Alarm goes on and off as I toggle that switch.

Next, I said “Alexa? Discover devices.” Voila! She picked up the new switch.

Now, I just say “Alexa? Turn on house alarm” or “Alexa? Turn off house alarm”. It’s SO much nicer than fiddling with an app.

No higher power – other than Amazon and Samsung – was involved in the creation of this miracle. :smile:

Bob

3 Likes

Thanks!!! It worked…Finally, Ring alarm can be controlled by Alexa.

I know webcore can put the alarm in Armed Away mode, can it somehow do Armed Home mode? Right now I have a virtual switch setup that gets turned on when I tell Alexa goodnight which changes the mode of Smartthings which then cause a SmartApp in Smartthings the put the alarm in Armed Home mode. Not the most elegant solution but it works.

I have done both Home and Away modes. Please do not ask me how it worked, because I myself do not understand it.

Configure Security in SHM :
Away Sensors: Turn off Use Every open/close and motion sensor, Open/Closed Sensors-> Ring Alarm

Stay Sensors: Turn off Use Every open/close and motion sensor, Open/Closed Sensors-> Ring Alarm

Create two simulated switches:
a) Away
b) Home

Create three routines:
a) Away -> Sets SHM to Away mode, Additional Settings -> When Something Turns ON/OFF -> Select Away simulated switch ON
b) Home -> Sets SHM to Stay mode, Additional Settings -> When Something Turns ON/OFF -> Select Home simulated switch ON
c) Disarm -> Sets SHM to Disarm mode, Additional Settings -> When Something Turns ON/OFF -> Select both Away and Home simulated switches OFF

I also installed the Simplisafe Smartapp and Simplisafe DTH. I still do not know how these get called, but they do. In the Simplisafe Smartapp, selet alarm system as Ring Alarm, select on state away, home.

As far as I remember, this is all I did. Then Alexa discovered the switches and alarm could be armed in away or home mode and disarmed by turning off the away or home mode switch.

I just found out webcore can change Smartthings mode directly. I just setup a Smartup to arm the system in home mode when webcore changes the mode to Home, very simple and easy.

I used the link shared by @asishrs and I was able to get to the last step. The smart things mobile app is showing “connecting…” while displaying the ring-alarm device on the home dashboard. The web-interface from smart things (device-list) correctly shows my ring-alarm status.

Anyone able to get the status of the alarm into Webcore? I am able to get webcore yo change the status of the alarm but I am not able to get the status into webcore. I had to set up three virtual switches and each one turns on when the alarm is set to a specific mode in a SmartApp in Smartthings. I then am able to perform actions in webcore based on the virtual switch statuses, but not the alarm status directly. Am I missing something? I know there is a “status” attribute in webcore associated with the Ring Alarm in webcore but when it is executed it throws errors in the log in webcore.

“alarm is set to a specific mode in a SmartApp in Smartthings”, is this through the mobile app ?

Yes it is, based on modes

So I just hooked this up tonight and works like a charm. Your write up was one of the best I’ve seen in a while so just wanted to say thank you! I’m going to hook this up to my Google Assistant and my smart lock.

Is there a way to tell if the alarm is going off? I just see the three statuses in the smart app. It would be nice if I could get all my other sound devices to start playing something as well as all the lights to turn red and blue or something if an alarm is triggered.

Thanks again for all the hard work!

I also seem to be having a problem with updating the status when I use my keypad from the ring. The “Recently” Tabs show that it hasn’t had any activity for almost 3 hours so I may try to reinstall it and see if that works.

The problem I have is that if I set the status from smartthings it works beautifully. If I set the alarm from my base station it does not update. I waited for about 5 minutes before I just switched it again in smartthings so they would be in sync.

I also saw that you said you would expose the polling time, but I cannot see that in your code anywhere. Can you tell me where to look @asishrs ?

If anything I can try to replicate and file a bug, but for now I am going to just delete the smart app and try again.

So to answer some of my own questions here I found out how it finds the status of the alarm. It is polled using the runEvery5Minutes() function. This does exatly what it sounds like and just runs the command given every 5 minutes. In our case it is the poll() function which calls the api /status. This explains my problem I was having.

I’m looking into setting this to an event instead of a poll, just because there can be up to 5 minutes where the alarm is out of sync. I have professional monitoring so I don’t want to accidentally get the cops here. The solution I see as of right now is to not use the ring keypad but instead use a different zwave pad and figure out how to lock/unlock with a pin.

I would still be interested if there was an “alarm” status that I could hook in to so I can trigger other things on my network to happen.

I’ll keep digging in and post anything I find out.

1 Like

Thank you so very much for the work you did to implement this. Very cool!

Question…is there anyway to hook into the Ring Contact Sensors or Ring Motions Sensors?

Thank you again!

Also, it seems my Ring Alarm is not showing up in WebCoRE. Is this expected?

Sometime in the future, I will add all device status (need to find time to code this). If anyone interested in contributing to that, please send me a pull request on GitHub https://github.com/asishrs/smartthings-ringalarm.