[Re-release] Hubitat Ring Integration (Unofficial)

@SoundersDude
Renaming hasn't worked so far; I don't get that same error as @kraig109 does which might be because the version I'm using has had a lot of changes since then.

I do see null in the message though, but I also see the name of the device I was trying to add that is a CO/Smoke Listener device I added 3 days ago. I can DM you the logs when I turned up all of the logging if you wanted to see if there's anything else I could try.

I was trying to look through the code but haven't find anything so far. What I noticed at least per the logging is CreateDevices isn't even trying to create the devices for the Alarm devices but does try to create the devices for my Beams Bridge. That might be a clue to why it's not working.
CreateDevices needs fixed for Gen 2 of the Ring Alarm from what I can tell.

I got 4 more contact sensors on the way later this week so I'll probably just remove/readd the integration once those 4 are installed if no fix is found by then.

@morse.caleb

Just tried adding the glass break sensor but integration is throwing the following using the latest versions available through HPM

Do you have the option enabled in HPM to download beta versions? Only the beta version added the glass break sensor so far.

Yes I have enabled the option in HPM to upgrade to pre-releases but it still says I'm up to date.

edit: I was able to get it working by doing a "repair" and then update again, thanks

1 Like

Not really sure why but I was able to add my Smoke/CO Listener today without changing anything.

I have 4 new contact sensors coming so will see how well it works to add those later this week.

2 Likes

That's great. Was it a quick add from Ring to HE or did you let it sit on Ring for a bit before adding to HE?

It was after 3 tries this morning before the Create Devices command finally worked.

The 4 new contact sensors (All Gen 2) paired on first try tonight so I wonder if I just need to let it go for a few days before it would work for some odd reason.

1 Like

@bfara3 Sorry for the delay in looking into this. I have been recovering from the flu.

I released a new beta version which should fix the issue you were having with new devices. The issue was that createDevices was assuming there was only a single hub. Now createDevices will stay enabled for 60 seconds, which should be enough time to receive an update for every hub.

4 Likes

Thanks for the update, seems to be working perfectly now after I removed 12 of the contact sensors and tried the CreateDevices again to test it out.

Interesting. Is that only if you have another hub like the Lights hub enabled or do you see the Gen2 hub acting like more than one?

The gen 2 hub still acts like a single hub. What matters is the order the 'DeviceInfoDocGetList' message responses for each hub. The order seems somewhat random, which is why it would sometimes work after retrying a few times.

I am surprised this issue didn't affect more people. It's been in the code from the very first commit! Like many bugs this one fell into the "How did this ever work" category.

2 Likes

Since about two days ago, I've been unable to interact with my Ring alarm system through the Hubitat app. I'm trying to debug, but could use a little guidance, because I get surprisingly little log output...

Things I've tried:

  • I've re-logged in via the "Unofficial Ring Connect" app
  • I've configured debug and trace-level logging via the "Unofficial Ring Connect" app settings
  • I've confirmed I can change the mode via the actual Ring iPhone app

When I try to setMode('home') on the "Ring Virtual Alarm Hub" device, this is all I get in the logs:

dev:112022-05-12 08:42:50.614 am tracerequest: ["message",{"body":[{"zid":"<uuid1>","command":{"v1":[{"commandType":"security-panel.switch-mode","data":{"mode":"some"}}]}}],"datatype":"DeviceInfoSetType","dst":"<uuid2>","msg":"DeviceInfoSet","seq":10}]
dev:112022-05-12 08:42:50.611 am traceparams: [type:security-panel.switch-mode, zid:<uuid1>, dst:<uuid2>, data:[mode:some]]
dev:112022-05-12 08:42:50.608 am debugsimpleRequest(setcommand)

I've noticed this in the logs as well, which seems like useful information. Not sure what to do with it though:

dev:112022-05-12 08:46:29.028 am warnWatchdog checking interval exceeded
dev:112022-05-12 08:46:29.026 am debugWatchdog checking started. Time since last websocket msg: 2681.6 minutes
dev:112022-05-12 08:46:29.023 am tracewebsocketWatchdog(60) now:1652359589020 state.lastWebSocketMsgTime:1652198693362

That time delta ("time since last websocket msg") lines up with when I seem to have last been able to interact with Ring via the Hubitat app. Is the websocket connection used to send commands, or just to receive Ring events?

We've had a couple power outages the last few days, not sure why that would affect things, but mentioning in case maybe power got cut at a bad time and screwed up state?

Wondering if someone with knowledge of the internals of the app has ideas for what to try next. I could uninstall and re-install, or re-create all the devices, but would be nice to avoid having to then manually add devices back to apps/dashboards/etc. Thanks in advance for any ideas to try.

OK, as is often the case when you get your stuff together enough to ask a question, I figured this out shortly afterwards. I'll leave the post up just so others can search/find the solution if necessary.

Per logs, websocket connection was busted. The fix for that is to go to the "Ring API Virtual Device" and run the "Initialize" command. This is pretty clear from the README section on configuration.

I wonder if this Initialize could be automated when a websocket connection is detected to be broken (via the watchdog)?

2 Likes

Hi folks — I have a new a ring version 4 doorbell that doesn’t work with this integration. I have 3 ring doorbells. Two are the older 2020 2nd gen units which work perfectly. The third is a new 4th gen which doesn’t get discovered. I have tried multiple times rescanning but no cigar.

Product is video doorbell 4. Device health is good and everything else works fine.

Any help appreciated.

This shouldn't be hard to support, the question is how does it identify itself.
Most likely it is "doorbell_" something. Today we support many that identify as
doorbell_portal, doorbell_4, etc.

Could you turn on logs and run a discovery and see if you get any hits on devices not supported that tells you the name?

It should be something like doorbell_v6 but might have another code name like cocoa or something else odd.

Potentially it's the "doorbell_graham_cracker" which I have heard about which is one of the latest wired versions.

1 Like

It isn’t wired. I’m away on vacation now but will do this when I get home in a few weeks.

I have remote support so I will try while away and report back

1 Like

I turned on logs and did a discover but no logs showed up.

Make sure you turn on logs in both the "Ring API Virtual Device" and "Ring Virtual Alarm Hub Device" as well.

That helped so thanks. The old 2020 devices were discovered as cocoa doorbells which worked. The new device was discovered as a oyster doorbell which didn’t take.

Here is a screenshot of the oyster debug and trace.

app:7422022-05-13 03:26:47.339 pm tracenode: [id:90628943, description:Front Door, device_id:343ea4327cd8, time_zone:America/Los_Angeles, subscribed:true, subscribed_motions:true, battery_life:43, external_connection:false, firmware_version:Up to Date, kind:doorbell_oyster, latitude:37.498013, longitude:-122.27813, address:, settings:[cv_settings:[detection_types:[human:[enabled:true, mode:edge, record:null, notification:true], loitering:[enabled:false, mode:none, record:null, notification:false], motion:[enabled:true, mode:edge, record:null, notification:false], moving_vehicle:[enabled:false, mode:none, record:null, notification:false], other_motion:[enabled:false, mode:none, record:null, notification:false], package_delivery:[enabled:false, mode:none, record:null, notification:false], package_pickup:[enabled:false, mode:none, record:null, notification:false]], threshold:[loitering:10.0, package_delivery:2.0], triggers:], cv_paid_features:[human:true, loitering:true, motion:true, other_motion:true, package_delivery:true, package_pickup:true, cv_triggers:true], concierge_settings:[mode:disabled], other_paid_features:[alexa_concierge:true, sheila_cv:true, sheila_recording:true], sheila_settings:[cv_processing_enabled:false, local_storage_enabled:false], server_settings:[ring_media_server_enabled:true], zone_settings:[motion:[[id:95dbe2da-7191-487e-8b23-76bbac277dcf, name:Default Zone, state:enabled, properties:[detection_types:[motion], style:1], vertices:[[x:0.496135, y:0.432646], [x:0.569565, y:0.442955], [x:0.633816, y:0.539175], [x:0.978261, y:0.630241], [x:1, y:0.999141], [x:0.666666, y:0.999141], [x:0.423671, y:0.999141], [x:0.413527, y:0.685567]]]]], offline_motion_event_settings:[subscribed:true, enabled:false, max_upload_kb:5000, resolution_p:360, frequency_after_secs:2, period_after_secs:30], lite_24x7:[subscribed:true, enabled:true, frequency_secs:3600, resolution_p:360], enable_vod:1, exposure_control:2, motion_zones:[1, 1, 1, 1, 0], motion_snooze_preset_profile:medium, motion_snooze_presets:[none, low, medium, high], live_view_preset_profile:middle, live_view_presets:[low, middle, high, highest], pir_sensitivity_1:4, vod_suspended:0, doorbell_volume:8, vod_status:enabled, chime_settings:[type:2, enable:true, duration:10], video_settings:[encryption_enabled:false, encryption_method:null], advanced_motion_detection_enabled:true, advanced_motion_zones:[zone1:[name:Default Zone, state:2, vertex1:[x:0.496135, y:0.432646], vertex2:[x:0.569565, y:0.442955], vertex3:[x:0.633816, y:0.539175], vertex4:[x:0.978261, y:0.630241], vertex5:[x:1.0, y:0.999141], vertex6:[x:0.666666, y:0.999141], vertex7:[x:0.423671, y:0.999141], vertex8:[x:0.413527, y:0.685567]], zone2:[name:Zone 2, state:0, vertex1:[x:0.0, y:0.0], vertex2:[x:0.0, y:0.0], vertex3:[x:0.0, y:0.0], vertex4:[x:0.0, y:0.0], vertex5:[x:0.0, y:0.0], vertex6:[x:0.0, y:0.0], vertex7:[x:0.0, y:0.0], vertex8:[x:0.0, y:0.0]], zone3:[name:Zone 3, state:0, vertex1:[x:0.0, y:0.0], vertex2:[x:0.0, y:0.0], vertex3:[x:0.0, y:0.0], vertex4:[x:0.0, y:0.0], vertex5:[x:0.0, y:0.0], vertex6:[x:0.0, y:0.0], vertex7:[x:0.0, y:0.0], vertex8:[x:0.0, y:0.0]]], advanced_motion_detection_human_only_mode:true, enable_audio_recording:true, people_detection_eligible:true, live_view_disabled:false, ignore_zones:[zone1:[name:undefined, state:0, vertex1:[x:0.0, y:0.0], vertex2:[x:0.0, y:0.0]], zone2:[name:undefined, state:0, vertex1:[x:0.0, y:0.0], vertex2:[x:0.0, y:0.0]], zone3:[name:undefined, state:0, vertex1:[x:0.0, y:0.0], vertex2:[x:0.0, y:0.0]], zone4:[name:undefined, state:0, vertex1:[x:0.0, y:0.0], vertex2:[x:0.0, y:0.0]]], enable_rich_notifications:true, rich_notifications_billing_eligible:true, rich_notifications_face_crop_enabled:false, loitering_threshold:10, advanced_motion_detection_types:[human], motion_detection_enabled:true, rich_notifications_scene_source:firmware, advanced_motion_zones_enabled:true, advanced_motion_zones_type:8vertices, advanced_pir_motion_zones:[zone1_sensitivity:5, zone2_sensitivity:5, zone3_sensitivity:5, zone4_sensitivity:5, zone5_sensitivity:5, zone6_sensitivity:5], preroll_enabled:true], features:[motion_zone_recommendation:false, motions_enabled:true, show_recordings:true, show_vod_settings:true, rich_notifications_eligible:true, show_24x7_lite:true, show_offline_motion_events:false, cfes_eligible:true, sheila_camera_eligible:true, sheila_camera_processing_eligible:true, chime_auto_detect_capable:true, live_view_pip_mode:null], owned:true, alerts:[connection:online, ota_status:successful], motion_snooze:null, stolen:false, location_id:f894571a-2875-4d98-bd71-5006e696d301, ring_id:null, ring_net_id:null, is_sidewalk_gateway:false, created_at:2021-11-05T20:54:10Z, shared_at:null, active_schedule_uuid:null, health:[device_type:doorbell_oyster, last_update_time:1652426099, connected:true, rss_connected:true, vod_enabled:true, sidewalk_connection:false, floodlight_on:false, white_led_on:false, night_mode_on:false, hatch_open:false, packet_loss:0.0, packet_loss_category:good, rssi:-54.0, battery_voltage:3637.0, transformer_voltage:0.0, transformer_voltage_category:poor, wifi_is_ring_network:false, ota_status:successful, ext_power_state:0, network_connection_value:wifi, ac_power:0, external_connection:false, battery_percentage:43, battery_percentage_category:poor, firmware_version:9.0.39, rssi_category:good, battery_voltage_category:good, second_battery_voltage_category:unknown, second_battery_percentage_category:unknown, battery_save:false, firmware_version_status:Up to Date, stream_resolution:44, bandwidth_last_time:1651043881, bandwidth:3753], deactivated_at:null, owner:[id:7308356, first_name:, last_name:, email:], ext_power_state:0]

app:7422022-05-13 03:26:47.136 pm debugfound a doorbell_oyster at location f894571a-2875-4d98-bd71-5006e696d301