[WITHDRAWN] Unofficial Ring Integration

Can you paste the RM rule? I'm not seeing this issue. It seems to be functioning as intended. Be sure that you aren't actually see it twice in the log. Maybe you are seeing it once getting set to the correct value but then you have some other rule running and setting it again back to an incorrect value.

Along these lines, I did find a bug in the Ring Alarm Hub driver and I have pushed a fix. The only file that is changed is the alarm hub driver.

2 Likes

Just wanted to chime in and say: Thank you so much again for this integration.
For my automations, and setup when I'm on vacation, this literately is the most important custom app I have installed in my Hubitat. Thank you for the time you have spent on making this great.

3 Likes

I'm currently using WebCORE to do this as I was able to make it work modifying the driver and removing the specific check for the current ring alarm mode.

Essentially the rule just says if mode is changed to Home, Ring Alarm -> setMode(Disarmed) . I have a similar rule that says if mode is changed to Away, Ring Alarm -> setMode(Away). This works because it still thinks the alarm mode is off. I think that when WebCORE uses setMode() it does not actually modify the device.currentValue("mode")

dev:392020-01-09 03:31:00.261 pm info Ring Alarm Hub already set to Disarmed.  No change necessary
dev:392020-01-09 03:31:00.260 pm debug setMode(Disarmed)

Any thoughts how I can write a rule that when Location Mode is changed to run setMode() and also update the device's current mode status? Maybe running a refresh ? The idea is to keep everything in sync so if you modify the status through Ring, it will update the location mode & HSM status and also if you modify the Location Mode it will update HSM as well as Ring.

@codahq I appreciate these apps and device handlers so much. A lot of thought was put into writing these and I truly appreciate all of the work you've done to make Ring devices functional for the Hubitat community!

To change Ring's mode match HSM's mode you can use a trigger or rule like this:

image

Or whatever mapping you want.

To change HSM's mode to match Ring's all you have to do is toggle the checkbox on the alarm hub for that option.

1 Like

I just realized that my smoke / CO2 alarm was not detected - I get an error in the logs about that. Is there a way I can add it manually?

(From Ring API Virtual Device)
[dev:185]2020-01-09 20:24:09.471 [warn]Couldn't find device null of type alarm.smoke with zid eefa...

Also, do I need to be concerned about this?

(From Unofficial Ring Connect)
[app:113]2020-01-09 21:59:33.851 [warn]Probs need to enable OATH in the app's code, dood/ette. This is required if IFTTT will be used to receive motion and ring events.

(I’ve been having some hub slow down issues, so keeping a close eye on my logs lately...)

This is already mentioned in the thread somewhere. When you created devices did you have the smoke alarm driver and co alarm driver installed (not the listener driver. There is a difference.)? If you didn't you can install the correct drivers and click create devices again. Any devices you deleted because you didn't want will be created as well. You can delete devices you don't want in HE but then you have to live with the warnings.

For your other question the answer is right in the log and it's been mentioned here in the thread as well. You need it enabled if you want to use IFTTT for notifications for non-websocket devices.

@codahq

separate issue to my last - is the keypad supposed to come up as a device? I installed the driver code for it but it never comes up in a scan. It always mentions its missing in the logs.

When you say "scan" do you mean "Discover Devices" from the app? You don't discover devices for websocket devices. You just click the create device button under the respective hub.

You the man. :grinning:

I'm slow today.

Thanks @codahq! I thought I had all the drivers install, but I must be missing something. I'll dig into it some more to see what I'm missing.

I have to say, I really adore this integration that you have put in place! I use it all the time! Thank you so much!!!

I hooked up the web socket to an alert as from the logs I wasn’t sure if it was down for a period of time or not. I’m noticing like clock work the websocket fails after 4 hours but instantly reconnects.

Just wanted to make sure you are aware, I assume that’s a ring or websocket thing you are aware ofF but just in case posting it here. Doesn’t seem to be affecting me at all.

Edit: looks like my last one was 3 hours.

Thanks for bringing it up. I'm aware. I mentioned this about 2 days ago in a post in this thread but I'm not sure a lot of people saw it because it was inside of a post with troubleshooting for another user.

The websocket used to stay connected indefinitely but now it is disconnected on the server side periodically. I've noticed it on Ring's web app as well. It used to never disconnect.

It means that every 3 to 4 hours we have to reconnect and a few messages may be delayed for up to 30 seconds while reconnecting happens. In rare cases we will miss important messages that don't come in the refresh. Not ideal but we can't do anything to avoid it. I'm just glad that they allow us to immediately reconnect or that there is a websocket at all. Otherwise, none of this would be possible without polling for the information or Ring implementing all of this functionality into IFTTT or another service which they aren't going to do. I hate Amazon.

I initially implemented motion sensor on the alarm keypads and then halfway backed it out before I released the integration. At the time the wake-up event and the motion event were identical so there was no way to tell if the keypad was waking up or detecting motion.

I actually complained about this in github in somebody else's Ring library and either Ring saw it or fixed the issue on their own. I noticed a new impulse type coming over the websocket to differentiate a keypad wake-up event from a motion sensing event so I finished motion sensing on the keypad driver.

Unfortunately, unlike the other events and devices the websocket does not periodically send this state and does not send it on connect. Because of this I can reliably detect motion but we don't know reliably when it stops. This was good enough for me so I just scheduled it off after the timeout (which preference already existed because I saw this same behavior when I coded it initially).

At any rate, there is a change to the keypad driver that will make it fairly reliably act as a motion sensor. Just one file changed:

ring-virtual-keypad.groovy

4 Likes

Got it. Cool, And thank you for the details.

A question for everybody who has battery powered Spotlights (the security lighting/beams ones). Are you noticing because of the temperature potentially a lot of different battery levels being reported?

Thoughts on this? My initial thought was maybe I should keep the last five/ten values and average them. Then I realized that I sort of want to see the swing because it can tell me indirectly on a cold night what the lowest battery level might be and if I need to change the batteries early during a cold time of year. I think I decided to not average them because of that but I don't feel super strongly about it and I want to know what you think.

Also, it might be fun to plot these some time and compare them to the temperatures on a PWS.

I installed both of my Ring/Beam Spot lights back mid summer 2019, still using same batteries when installed.
We live in Northern Kentucky, just across the river from Cincinnati Ohio. Our weather can dip to 20 degrees one day and then two days later we will have 55 degree weather. Last 3 days we have had 45 degree weather.

Showing the last 3 days Events from Ring - Spot Light - 1...




Showing the last 3 days Events from Ring - Spot Light - 2....
(I skipped Event #5 as it was still showing same day as #4 Event)





1 Like

It looks like back on 01/08/20 our temperature at night got down to 28 degrees. Here is what one of the Ring/Beam spot lights reported.


1 Like

Alright.... risking coming across like a total newbie here (I am).... How to I reconnect the websocket when it disconnects?? "Initialize" under "Commads" in the "Ring API Virtual Device" looks like it's a button... but doesn't seem to do anything when I click it.... ?? Sorry... still learning here - appreciate the help in advance!

Initialize will drop the current connection if any and reconnect. You can turn on logging on that device (in the preferences there are three levels) and you can figure out what's going on. It won't connect if you haven't gone in through the "Unofficial Ring Connect" app and authenticated first.

Okay, I finally got to spend some time on this again - I did (and still do) have the smoke alarm driver and co alarm driver installed. I did not have the listener driver installed as I don't have one of those. I did just install it though to see if it would make a difference...

When I re-initiate a device discovery, It finds all my devices except my smoke/co detector... @codahq, is there something you would recommend I try to debug this? I've read through the thread (I've actually been following it since its inception), but found nothing that seemed relevant.

In case it may help, here are some screen shots:

I have mostly been using the Motion and Door sensors, and those work great! It is so useful to have this integration!!!

Thanks!
Sébastien