-
-
Notifications
You must be signed in to change notification settings - Fork 155
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
Comments
@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? |
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., |
Guys, John Bittner |
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 |
Sure as soon as I get my unit, it is due to arrive tomorrow. |
[{"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}]}] |
Setup used Amazon Key and had to be phone activated. |
@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? |
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 |
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. |
I looked at the web app and cannot find any options to trigger the relay. |
@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. |
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 |
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
getLocksAssociatedWithRingDevice
Also:
|
Btw, based on @jbittner1002's mention that you can only have one device per doorbell is consistent with these kind of URLs. I presume |
@jbittner1002 I updated the device discovery tool to pull data from those locks in v @dxdc I verified that |
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: |
@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 |
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: |
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 |
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 |
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. |
Also, locking/unlocking via the Ring app is essentially instantaneous as well. |
@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. |
@dgreif this looks promising! btw, these I think are valid endpoints for locks. I looked again.
I think they haven't updated their API to use Updated list of lock API endpoints
Also, in case it's helpful, sharing this list I put together also: List of additional API endpoints
|
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 |
@jbittner1002 are you still interested in providing funding for this? I'd love to get started on it if you are |
done.. sorry was offline for a while. |
No problem, received!! Lock is ordered and I'll get the implementation out ASAP. Thanks for covering the cost! |
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 @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 |
I would love to have this functionality. |
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
The text was updated successfully, but these errors were encountered: