Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Ring Access Controller Pro #384

Closed
jbittner1002 opened this issue Jun 29, 2020 · 32 comments
Closed

Support for Ring Access Controller Pro #384

jbittner1002 opened this issue Jun 29, 2020 · 32 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@jbittner1002
Copy link

Looking to add support for the Ring Access Controller Pro to remotely open doors.

I would be willing to supply the unit so it can be reversed.

John

@jbittner1002 jbittner1002 added the enhancement New feature or request label Jun 29, 2020
@dgreif dgreif added the help wanted Extra attention is needed label Jun 30, 2020
@dgreif
Copy link
Owner

dgreif commented Jun 30, 2020

@jbittner1002 unfortunately I don't have any use for a gate controller at my house so it would be wasted on me. I'm also pretty thin on free time right now. @smockle @dxdc either of you interested in a Ring Access Controller Pro in exchange for implementing it in the homebridge plugin?

@dxdc
Copy link

dxdc commented Jun 30, 2020

Thanks for offering. If it is the cellular version, I would do it. I'm sure I could rig it with something like this:

https://www.amazon.com/gp/product/B07DW17J3Q/ref=ox_sc_saved_title_3?smid=A1FJT7OHWSBQ42&psc=1

That being said, not sure if we're exposing a security hole here? There is a lot more caution put on locks which provide entry to a property vs. simple motion/camera alerts.

Btw @dgreif, all of your Chime additions got me to consider purchasing another Chime to be able to send off more notifications, but then I thought - why do that when I can play any sound file I want through my Sonos? :)

https://github.com/Supergiovane/node-red-contrib-sonospollytts

I now have working alerts for "text to speech" notifications when there is motion, e.g., "There is motion detected at the Garage". It's actually pretty easy to set up via NodeRed, but maybe this could be incorporated as a feature if there is any capability to play mp3's through the Chimes (or even overwrite the onboard mp3's)?

@jbittner1002
Copy link
Author

Guys,
Just let me know where to send the unit.
Thanks

John Bittner

@dgreif
Copy link
Owner

dgreif commented Jun 30, 2020

Would you mind running through the steps here first? https://github.com/dgreif/ring/wiki/Data-Discovery - this will give us an initial idea of how easy it will be to add support

@jbittner1002
Copy link
Author

Sure as soon as I get my unit, it is due to arrive tomorrow.

@jbittner1002
Copy link
Author

[{"name":"Succasunna","cameras":[{"description":"Front Door","subscribed":true,"subscribed_motions":true,"battery_life":"3993","external_connection":false,"firmware_version":"Up to Date","kind":"lpd_v1","settings":{"offline_motion_event_settings":{"subscribed":true,"enabled":false,"max_upload_kb":5000,"resolution_p":360,"frequency_after_secs":1,"period_after_secs":30},"lite_24x7":{"subscribed":true,"enabled":false,"frequency_secs":180,"resolution_p":360},"enable_vod":true,"motion_zones":{"enable_audio":false,"active_motion_filter":2,"sensitivity":5,"advanced_object_settings":{"human_detection_confidence":{"day":0.9,"night":0.9},"motion_zone_overlap":{"day":0.4,"night":0.5},"object_time_overlap":{"day":1,"night":2},"object_size_minimum":{"day":0.06,"night":0.11},"object_size_maximum":{"day":0.5,"night":0.5}},"zone1":{"name":"Zone 1","state":2,"vertex1":{"x":0.25730383,"y":0.29851633},"vertex2":{"x":0.5,"y":0.3},"vertex3":{"x":0.92302096,"y":0.33002073},"vertex4":{"x":0.96449363,"y":0.979296},"vertex5":{"x":0.625,"y":0.7},"vertex6":{"x":0.45409015,"y":0.9522255},"vertex7":{"x":0.24144407,"y":0.7400594},"vertex8":{"x":0.23643573,"y":0.50445104}},"zone2":{"name":"Zone 2","state":0,"vertex1":{"x":0,"y":0},"vertex2":{"x":0,"y":0},"vertex3":{"x":0,"y":0},"vertex4":{"x":0,"y":0},"vertex5":{"x":0,"y":0},"vertex6":{"x":0,"y":0},"vertex7":{"x":0,"y":0},"vertex8":{"x":0,"y":0}},"zone3":{"name":"Zone 3","state":0,"vertex1":{"x":0,"y":0},"vertex2":{"x":0,"y":0},"vertex3":{"x":0,"y":0},"vertex4":{"x":0,"y":0},"vertex5":{"x":0,"y":0},"vertex6":{"x":0,"y":0},"vertex7":{"x":0,"y":0},"vertex8":{"x":0,"y":0}}},"motion_snooze_preset_profile":"low","live_view_preset_profile":"highest","live_view_presets":["low","middle","high","highest"],"motion_snooze_presets":["none","low","medium","high"],"doorbell_volume":11,"chime_settings":{"type":2,"enable":true,"duration":10},"video_settings":{"ignore_zones":null,"birton":"","brightness":16,"contrast":80,"saturation":48,"ae_level":32,"ae_mode":null,"ae_mask":null},"motion_announcement":false,"stream_setting":0,"advanced_motion_detection_enabled":false,"advanced_motion_detection_human_only_mode":false,"luma_night_threshold":0,"enable_audio_recording":true,"people_detection_eligible":true,"live_view_disabled":false,"ignore_zones":null,"enable_rich_notifications":null,"rich_notifications_billing_eligible":true,"loitering_threshold":10,"advanced_motion_detection_types":[],"motion_detection_enabled":true,"rich_notifications_scene_source":"cloud","recording_storage_type":"default_s3","rich_notifica-uuid":null},"features":{"motions_enabled":true,"show_recordings":true,"advanced_motion_enabled":false,"people_only_enabled":false,"shadow_correction_enabled":false,"motion_message_enabled":false,"night_vision_enabled":false,"rich_notifications_eligible":false,"show_24x7_lite":true,"show_offline_motion_events":false},"owned":true,"alerts":{"connection":"online"},"motion_snooze":null,"stolen":false,"night_mode_status":"false"},{"description":"Living Room","subscribed":true,"subscribed_motions":true,"battery_life":100,"external_connection":false,"firmware_version":"Up to Date","kind":"stickup_cam_elite","settings":{"offline_motion_event_settings":{"subscribed":false,"enabled":false,"max_upload_kb":5000,"resolution_p":360,"frequency_after_secs":1,"period_after_secs":30},"lite_24x7":{"subscribed":false,"enabled":false,"frequency_secs":180,"resolution_p":360},"enable_vod":true,"motion_zones":{"enable_audio":false,"active_motion_filter":1,"sensitivity":5,"advanced_object_settings":{"human_detection_confidence":{"day":0.8,"night":0.8},"motion_zone_overlap":{"day":0.2,"night":0.3},"object_time_overlap":{"day":0.2,"night":1.2},"object_size_minimum":{"day":0.04,"night":0.07},"object_size_maximum":{"day":0.7,"night":0.7}},"zone1":{"name":"Default Zone","state":2,"vertex1":{"x":0.058,"y":0.199},"vertex2":{"x":0.5,"y":0.199},"vertex3":{"x":0.94,"y":0.199},"vertex4":{"x":0.94,"y":0.5},"vertex5":{"x":0.94,"y":0.797},"vertex6":{"x":0.5,"y":0.797},"vertex7":{"x":0.058,"y":0.797},"vertex8":{"x":0.058,"y":0.5}},"zone2":{"name":"Zone 2","state":0,"vertex1":{"x":0,"y":0},"vertex2":{"x":0,"y":0},"vertex3":{"x":0,"y":0},"vertex4":{"x":0,"y":0},"vertex5":{"x":0,"y":0},"vertex6":{"x":0,"y":0},"vertex7":{"x":0,"y":0},"vertex8":{"x":0,"y":0}},"zone3":{"name":"Zone 3","state":0,"vertex1":{"x":0,"y":0},"vertex2":{"x":0,"y":0},"vertex3":{"x":0,"y":0},"vertex4":{"x":0,"y":0},"vertex5":{"x":0,"y":0},"vertex6":{"x":0,"y":0},"vertex7":{"x":0,"y":0},"vertex8":{"x":0,"y":0}},"pir_settings":{"sensitivity1":10,"sensitivity2":10,"sensitivity3":10,"zone_mask":7}},"motion_snooze_preset_profile":"low","live_view_preset_profile":"highest","live_view_presets":["low","middle","high","highest"],"motion_snooze_presets":["none","low","medium","high"],"doorbell_volume":11,"chime_settings":{"type":0,"enable":true,"duration":10},"video_settings":{"ignore_zones":null,"birton":"","brightness":16,"contrast":80,"saturation":48,"ae_level":32,"ae_mode":null,"ae_mask":null},"motion_announcement":false,"stream_setting":0,"advanced_motion_detection_enabled":false,"advanced_motion_detection_human_only_mode":false,"luma_night_threshold":null,"enable_audio_recording":true,"people_detection_eligible":true,"live_view_disabled":false,"ignore_zones":null,"enable_rich_notifications":null,"rich_notifications_billing_eligible":false,"loitering_threshold":10,"advanced_motion_detection_types":[],"motion_detection_enabled":false,"rich_notifications_scene_source":"cloud","recording_storage_type":"default_s3","enable_ir_led":true,"rich_notifica-uuid":null},"features":{"motions_enabled":true,"show_recordings":false,"advanced_motion_enabled":false,"people_only_enabled":false,"shadow_correction_enabled":false,"motion_message_enabled":false,"night_vision_enabled":false,"rich_notifications_eligible":false,"show_24x7_lite":true,"show_offline_motion_events":false,"light_schedule_enabled":false},"owned":true,"alerts":{"connection":"online"},"motion_snooze":null,"stolen":false,"motion_detection_enabled":false,"camera_location_indoor":true,"facing_window":false,"enable_ir_led":true,"siren_status":{"seconds_remaining":0}}],"devices":[{"adapterType":"none","batteryStatus":"none","categoryId":29,"commStatus":"ok","commandTypes":{"halo-message":{"requiresTrust":true},"halo-request":{"requiresTrust":true},"light-mode.set":{"requiresTrust":true}},"deviceFoundTime":1592944963875,"deviceType":"adapter.ringnet","impulseTypes":{"halo-response":{"trusted":true},"halo-stats.latency":{"trusted":true}},"lastCommTime":0,"lastUpdate":1593621754397,"managerId":"ringnet","name":"RingNet Adapter","pollInterval":0,"roomId":1,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":[],"tamperStatus":"ok","zid":"41b470ab-ae48-uuid","networkConnection":"wlan0","networks":{"wlan0":{"channel":3,"name":"wlan0","rssi":-37,"type":"wifi"}},"pan_rf_security_level":3,"ringNetBridgeId":"A00016A3D1","version":{"buildNumber":"jenkins-EdisonJunior-beams-hub-openwrt-release-4.2-46","nordicFirmwareVersion":"1.8.3-21","softwareVersion":"120300462"}},{"adapterType":"ringnet","batteryStatus":"none","categoryId":2,"commStatus":"ok","commandTypes":{"identify":{"requiresTrust":false},"light-mode.set":{"requiresTrust":false}},"deviceFoundTime":1592979697606,"deviceType":"group.light-group.beams","impulseTypes":{"clear":{"trusted":false},"fault":{"trusted":false},"glow-status.glow":{"trusted":false},"glow-status.off":{"trusted":false},"light-mode.default":{"trusted":false},"light-mode.on":{"trusted":false},"light-mode.snooze":{"trusted":false},"switched.off":{"trusted":false},"switched.on":{"trusted":false}},"lastCommTime":0,"lastUpdate":1593623212042,"managerId":"ringnet","name":"Pool","pollInterval":0,"roomId":1,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":[],"tamperStatus":"ok","zid":"b044d975-ee15-uuid","autoShutoffTime":30,"glowStatus":"off","lastOffSelection":"default","level":0,"lightMode":"default","lightSensorEnabled":false,"motionStatus":"clear","on":false,"onDuration":60},{"adapterType":"ringnet","batteryLevel":100,"batteryStatus":"charged","categoryId":2,"commStatus":"ok","commandTypes":{"beams-scheduled-switch":{"requiresTrust":true},"identify":{"requiresTrust":true},"light-mode.set":{"requiresTrust":true}},"deviceFoundTime":1592979697912,"deviceType":"switch.transformer.beams","doorbotId":47447340,"impulseTypes":{"comm.offline":{"trusted":true},"comm.online":{"trusted":true},"firmware-update.canceled":{"trusted":true},"firmware-update.failed":{"trusted":true},"firmware-update.started":{"trusted":true},"firmware-update.succeeded":{"trusted":true},"light-mode.default":{"trusted":true},"light-mode.on":{"trusted":true},"switched.off":{"trusted":true},"switched.on":{"trusted":true}},"lastCommTime":0,"lastUpdate":1593624096277,"managerId":"ringnet","name":"Pool Transformer","pollInterval":0,"roomId":1,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":[],"tamperStatus":"ok","zid":"d8a9f6c5-0957-uuid","lightMode":"default","lightStateChangeReason":"command","on":false}]}]

@jbittner1002
Copy link
Author

jbittner1002 commented Jul 1, 2020

Setup used Amazon Key and had to be phone activated.
Setup 2 relays , gate1 and gate2

@dxdc
Copy link

dxdc commented Jul 1, 2020

@jbittner1002 I don't see anything there which indicates the device? I don't have the Ring alarm/bridge though.

It looks like you have the Ring lights (BeamsLightGroupSwitch, etc.) and maybe also the adapter (Category = 29 = Unknown according to the code). @dgreif let me know if I'm missing anything though. Wonder if it goes through a separate API?

@jbittner1002
Copy link
Author

jbittner1002 commented Jul 1, 2020

The way they tie this unit to ring is just like other locks using amazon key. Once you tie the lock to a doorbell it shows up as a Lock icon only. You can only assign one relay to a doorbell, so I was only able to tie gate1 to the Front Door doorbell. All the management of this device is done with amazon key app

@dgreif
Copy link
Owner

dgreif commented Jul 1, 2020

Thanks for the info @jbittner1002! I agree with @dxdc that the gate controller isn't present in the data you posted (you did it correctly, the cli tool just didn't find the device). Knowing that it is set up via amazon key makes a huge difference. Amazon key locks in Ring do use a different api, which I have not had a chance to dig into since I don't have an Amazon Key lock (See #178). My guess is that the api for Amazon Key locks will be exactly the same as this controller, so we may be able to knock out both in one update. @dxdc are you equipped/comfortable with reversing that api? If so, I recommend you work out the details with @jbittner1002 on getting a controller unit shipped to you.

@jbittner1002 I am curious if you can see/control the gate controller from the web app at ring.com. If so, it definitely makes it easier to figure out the API since the source code is fairly readable on the web app.

@jbittner1002
Copy link
Author

I looked at the web app and cannot find any options to trigger the relay.

@dxdc
Copy link

dxdc commented Jul 1, 2020

@dgreif @jbittner1002 appreciate the offer, but I don't think this will be straightforward. To add Amazon Key to your ring account, you authenticate and are then presented with this kind of API access. So, all of the authentication means probably reviewing the Amazon Key API directly.

I imagine the security on this is very strict.

@dgreif
Copy link
Owner

dgreif commented Jul 2, 2020

I know Ring has at least some of the Amazon key stuff exposed through their api. My guess is that they make request to the ring api and then proxy those requests to amazon key using your stored credentials on the server. Totally understand if you don’t want to take this on right now tho @dxdc. I don’t have time to right now either, so I’ll leave this issue open in case someone else is interested in tackling it soon

@dxdc
Copy link

dxdc commented Jul 2, 2020

My guess is that they make request to the ring api and then proxy those requests to amazon key using your stored credentials on the server.

Hmm, in that case, maybe it's more doable. I did a little more research found these URLs, which could be a start. I'm not sure which API URL is pre-pended though. Is there a simple way to test them with the existing code and see if we're at least in the right neighborhood?

getLockAssociatedDevices

GET: integrations/amazonkey/v2/devices/lock_associations

getLocksAssociatedWithRingDevice

GET: integrations/amazonkey/v2/devices/{device_id}/locks

Also:

  • v2/locks
  • POST: v1/locks/{deviceId}/commands/lock
  • POST: v1/locks/{deviceId}/commands/unlock

@dxdc
Copy link

dxdc commented Jul 2, 2020

Btw, based on @jbittner1002's mention that you can only have one device per doorbell is consistent with these kind of URLs. I presume deviceId is the Ring doorbell device.

@dgreif
Copy link
Owner

dgreif commented Jul 12, 2020

@jbittner1002 I updated the device discovery tool to pull data from those locks in v9.6.0. Would you mind updating and running that tool again? You should check through the data and remove any personal info before posting. I do this automatically, but there may be new fields that I don't know about since I haven't see the data from one of these locks yet.

@dxdc I verified that https://api.ring.com/integrations/amazonkey/v2/devices/lock_association works to fetch the locks (returns an empty array for me). I couldn't get v2/locks to work with any known api prefix 😕. Once we see the data, setting up lock/unlock could be pretty straightforward as long as we know the api prefix for those commands.

@dlhall111
Copy link

I have a Ring Doorbell Elite as well as a smart lock that was setup via the Amazon Key app. The smart lock does show up in and can be controlled via the Ring app, so I was excited to see if this update would make the lock accessible via Homebridge but unfortunately it isn't getting picked up. I enabled debug mode in case this output was at all helpful as it would be awesome to have lock access via the Home app (for automations mainly), this is from right after a restart of Homebridge:
[7/12/2020, 14:32:59] [Ring] Location Mode: {"mode":"disabled","lastUpdateTimeMS":1591273263873,"securityStatus":{},"readOnly":true,"notYetParticipatingInMode":[],"responseTimestamp":1594582379000}
[7/12/2020, 14:32:59] [Ring] Configuring 1 cameras and 1 devices for location "Home" - locationId: cf35b9ae-fceb-4f99-8bda-a8452791a6e3
[7/12/2020, 14:32:59] [Ring] Pruning unused service 00000089-0000-1000-8000-0026BB765291 Front Door from Front Door

@dgreif
Copy link
Owner

dgreif commented Jul 12, 2020

@dlhall111 i only added them to the device discovery tool. Still a fair amount of digging before they will be fully added to the homebridge plugin. If you are up for it, you could run the device discovery tool and post the amazonKeyLocks section here. https://github.com/dgreif/ring/wiki/Data-Discovery

@dlhall111
Copy link

dlhall111 commented Jul 12, 2020

Ah, sorry for the misunderstanding. But I'm happy to help in any way I can, here's the output from the data discovery tool:
"amazonKeyLocks":[{"locks":["e20ec1bb-3bbc-4129-bc34-7d956a02cfa6"]}]}

@dgreif
Copy link
Owner

dgreif commented Jul 12, 2020

Thanks for posting that so quick! Looks like that ending just gives us the id of each lock, so I'll have to rig up some more tests for you to try out. Will probably have that in a beta release sometime this week. Just curious, how does the lock show up in the Ring app? If you lock it manually, does the Ring app update in real time or do you have to leave that page of the app and come back to see the lock state change? Or does it not even show if it is currently locked? A screenshot would be helpful for context

@dlhall111
Copy link

It does automatically update when manually locking/unlocking. Here’s a screenshot of how it looks in the Ring app.
3579EE01-E6C2-41B1-A404-0A8432548BF1

@dgreif
Copy link
Owner

dgreif commented Jul 12, 2020

Just want to make sure I understand correctly, when you lock and unlock it manually, that screen updates instantly with you touching your phone? Sorry for being picky but it makes a big difference

@dlhall111
Copy link

dlhall111 commented Jul 12, 2020

The automatic update occurs right at or just after the Amazon Key notification, so slightly delayed in some cases and nearly instant in others. Here’s a screen recording link where I unlocked and locked manually (still uploading, might take a minute): https://streamable.com/1hxvff

Edit: iCloud was taking forever to upload, switched to using streamable.

@dlhall111
Copy link

Also, locking/unlocking via the Ring app is essentially instantaneous as well.

@dgreif
Copy link
Owner

dgreif commented Jul 12, 2020

@dlhall111 That's perfect, thanks for posting!!

@jbittner1002 now that we know the api is probably the same for the locks and the controller pro, I'm interested in implementing this myself. I have a door where I could use an amazon key lock if you are willing to provide the funds for it in exchange for an implementation. If you are ok with that, you can send $200 via PayPal (link is at the top of the repo, in sponsor section). Luckily the locks are cheaper than the gate controller 😅. Once I see that come through, I'll get the lock ordered and I should be able to implement this in the next week or so.

@dxdc
Copy link

dxdc commented Jul 12, 2020

@dgreif this looks promising! btw, these I think are valid endpoints for locks. I looked again.

I couldn't get v2/locks to work with any known api prefix

I think they haven't updated their API to use v2/locks yet, though there appears to be support. Try v1/locks?

Updated list of lock API endpoints
  • integrations/amazonkey/v2/devices/lock_associations
  • integrations/amazonkey/v2/devices/{device_id}/locks
  • integrations/amazonkey/v2/devices/{device_id}/locks/{lock_id}
  • integrations/amazonkey/v2/linked_account
  • v1/locks
  • v1/locks/{deviceId}
  • v1/locks/{deviceId}/commands/lock
  • v1/locks/{deviceId}/commands/unlock
  • v2/locks

Also, in case it's helpful, sharing this list I put together also:

List of additional API endpoints
  • admin_alerts/{id}
  • admin_alerts/{id}/downvote
  • admin_alerts/{id}/flag
  • admin_alerts/{id}/read
  • admin_alerts/{id}/upvote
  • admin_alerts/{id}/views
  • alert_areas/{alert_area_id}
  • alert_areas/{alert_area_id}/map
  • alert_areas/{alert_area_id}/tiles
  • alert_tones/sound_files/{id}/ogg/{id}_{volume}.ogg
  • alerts/{alert_id}/seen
  • alerts/{id}
  • alerts/{id}/downvote
  • alerts/{id}/flag
  • alerts/{id}/permanent_recording
  • alerts/{id}/read
  • alerts/{id}/upvote
  • alerts/{id}/views
  • beams/updates/bridges/{ringnet_device_uuid}
  • chimes/{device_id}
  • chimes/{device_id}/do_not_disturb
  • chimes/{device_id}/play_sound
  • clients_api/locations/{locationId}/invitations
  • clients_api/locations/{locationId}/invitations/{invitationId}/resend
  • clients_api/locations/{locationId}/invitations/{userId}
  • clients_api/locations/{locationId}/users
  • clients_api/locations/{locationId}/users/{userId}
  • devices/{device_id}
  • devices/{device_id}/metadata
  • devices/{device_id}/settings
  • devices/{deviceId}/dings/{dingId}
  • devices/{deviceId}/scenarios/{scenarioName}
  • devices/{ringnet_device_uuid}
  • devices/v1/locations/{locationId}
  • dings/{ding_id}
  • dings/{dingId}/connection
  • dings/{dingId}/motion_bb
  • dings/{dingId}/share/download
  • dings/{dingId}/share/download_status
  • dings/{dingId}/share/play
  • dings/{dingId}/share/share
  • doorbots/{device_id}
  • doorbots/{device_id}/advanced_motion_detection
  • doorbots/{device_id}/enable_indoor_mode
  • doorbots/{device_id}/floodlight_light_off
  • doorbots/{device_id}/floodlight_light_on
  • doorbots/{device_id}/hybrid_motion_zones
  • doorbots/{device_id}/light_duration
  • doorbots/{device_id}/live_call
  • doorbots/{device_id}/live_view
  • doorbots/{device_id}/motion_announcement
  • doorbots/{device_id}/motion_detection_off
  • doorbots/{device_id}/motion_detection_on
  • doorbots/{device_id}/motion_snooze
  • doorbots/{device_id}/motion_snooze/clear
  • doorbots/{device_id}/motions_subscribe
  • doorbots/{device_id}/motions_unsubscribe
  • doorbots/{device_id}/set_facing_window
  • doorbots/{device_id}/subscribe
  • doorbots/{device_id}/throughput_test
  • doorbots/{device_id}/unsubscribe
  • doorbots/{device_id}/vod
  • doorbots/{deviceId}/event_types
  • doorbots/{deviceId}/event_types/{eventType}
  • doorbots/{deviceId}/health
  • doorbots/{deviceId}/motion_sensitivity_profile
  • firmwareUpdate/devices/{ringnet_device_uuid}
  • groups/v1/locations/{location_id}/devices
  • groups/v1/locations/{location_id}/groups
  • groups/v1/locations/{location_id}/groups/{group_id}
  • groups/v1/locations/{location_id}/groups/{group_id}/devices
  • groups/v1/locations/{location_id}/groups/{group_id}/motion_alerts_schedules
  • groups/v1/locations/{location_id}/groups/{group_id}/motion_alerts_schedules/{schedule_id}
  • groups/v1/locations/{location_id}/users/{user_id}/share
  • links/v1/locations/{locationId}/{entityType}/{entityId}/events/{event}/receivers
  • links/v1/locations/{locationId}/{entityType}/{entityId}/links
  • links/v1/locations/{locationId}/{entityType}/{entityId}/links/{linkId}
  • locations/{location_id}/snooze/motion
  • locations/{locationId}
  • mode/location/{locationId}
  • mode/location/{locationId}/settings
  • mode/location/{locationId}/settings/setup
  • mode/location/{locationId}/settings/setup/{deviceId}
  • mode/location/{locationId}/sharing
  • public/users/{user_id}/notification
  • public/users/{user_id}/providers/{provider_type}/subscriptions/{provider_id}/attachment
  • public/users/{user_id}/status
  • recordings/public/footages/{doorbotId}
  • recordings/public/footages/{doorbotId}/delete_all
  • registrationStatus/devices/{ringnet_device_uuid}
  • ring_devices/{deviceId}
  • rs/accounts/{accountUuid}/assets/{assetUuid}/unregister
  • rs/asset/{assetUuid}
  • rs/devicecatalog/devices/{deviceUuid}
  • rs/location/{locationId}/asset/compatibility
  • rs/location/{locationId}/business
  • rs/location/{locationId}/type/{locationType}
  • rs/media/{mediaId}
  • rs/monitoring/accounts/{locationId}/actionPlan
  • rs/monitoring/accounts/{locationId}/activation/v2
  • rs/monitoring/accounts/{locationId}/addresses
  • rs/monitoring/accounts/{locationId}/assets/{assetId}/userAlarm
  • rs/monitoring/accounts/{locationId}/availability
  • rs/monitoring/accounts/{locationId}/codewords
  • rs/monitoring/accounts/{locationId}/confirmationCallSettings
  • rs/monitoring/accounts/{locationId}/contacts
  • rs/monitoring/accounts/{locationId}/contacts/requirements
  • rs/monitoring/accounts/{locationId}/contacts/setupConfigs
  • rs/monitoring/accounts/{locationId}/crossStreet
  • rs/monitoring/accounts/{locationId}/events
  • rs/monitoring/accounts/{locationId}/permit-details
  • rs/monitoring/accounts/{locationId}/professional-monitoring/v2
  • rs/monitoring/accounts/{locationId}/securityMode
  • rs/monitoring/accounts/{locationId}/securityStatus
  • rs/monitoring/accounts/{locationId}/setup
  • rs/monitoring/accounts/{locationId}/status
  • rs/monitoring/accounts/{locationId}/testmode
  • rs/monitoring/accounts/{locationId}/userAlarm
  • rs/monitoring/accounts/{locationId}/verifiedresponse
  • rs/monitoring/certificate/{locationId}
  • rs/preferences/devices/{deviceId}
  • rs/users/locations/{locationId}/agreements
  • setups/{setupId}
  • setups/{setupId}/complete
  • v2/alert_areas/{alert_area_id}/feed?remove_tiles=true
  • videos/doorbox/{type}/{model_prefix}{modelId}.json

@dgreif
Copy link
Owner

dgreif commented Jul 12, 2020

Wow, that's quite the list! Would love to discuss. Are you on the homebridge discord? If you get signed up, send me a dm

@dgreif
Copy link
Owner

dgreif commented Jul 14, 2020

@jbittner1002 are you still interested in providing funding for this? I'd love to get started on it if you are

@jbittner1002
Copy link
Author

done.. sorry was offline for a while.

@dgreif
Copy link
Owner

dgreif commented Jul 14, 2020

No problem, received!! Lock is ordered and I'll get the implementation out ASAP. Thanks for covering the cost!

@dgreif
Copy link
Owner

dgreif commented Jul 17, 2020

I started digging into the lock api last night and the news is not good. @dxdc was correct with his idea that the ring app may be interacting directly with the amazon key api. (For reference, those endpoints are for key-api.amazon.com). Ring has an oauth flow set up with amazon, which provides the app with an auth token/refresh token that can be used to interact with the key api. The Ring apps actually keep track of the tokens on a per device basis, so this isn't info that I can grab from a logged in Ring account. Unfortunately the complexity of the login flow means that it would be a really big undertaking to get a homebridge integration with amazon key. In the end, it would probably be best for a whole new homebridge-amazon-key plugin to be created, but I don't have enough free time to take on that project. Happy to pass along what I have learned so far if someone else decides to build an amazon key plugin.

@jbittner1002 I'm sorry for getting your hopes up. I really thought that ring was performing the interactions server-side but unfortunately that is not the case. I'm happy to return the funds to you since I wasn't able to deliver. Should I just send the same amount back to the paypal account that it came from?

Closing this issue since amazon key integration is now officially outside the scope of this plugin

@TristanBrotherton
Copy link

I would love to have this functionality.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

5 participants