dgreif / ring

Unofficial packages for Ring Doorbells, Cameras, Alarm System, and Smart Lighting
MIT License
1.2k stars 163 forks source link

Support for HomeKit secure video? #177

Closed evelant closed 4 years ago

evelant commented 4 years ago

With the newest macOS 10.15.1 update "HomeKit secure video" was added. This allows for HomeKit to do smart person/animal detection and save videos to iCloud. Adding my ring camera through homebridge-ring and starting the new home app on my Mac says something like "cameras don't support secure video". Would it be possible to add the capability to this awesome library?

dgreif commented 4 years ago

Secure Video is still very new and isn't supported by homebridge or HAP-node yet (See https://github.com/KhaosT/HAP-NodeJS/issues/714). Once they add support, I'm still not sure if this plugin will ever support it for two reasons:

  1. Continuous streaming from the Ring cameras has never worked well. All video passes through the Ring servers and they can/do cut off the video stream after some unknown length of time. This would most likely lead to a bad experience with HomeKit Secure Video.

  2. HomeKit Secure Video could be used as an alternative to Rings subscription model. So far I have intentionally tried to avoid making it easy for users to get stream recording features without paying Ring for them. I still hold the belief that Ring has extremely fair pricing for the services they provide and as such it is unfair to use their streaming servers without paying for them. With that said, I think Ring is quickly approaching a threshold where they are need to provide the features that users want, or allow 3rd parties to provide those features for them. I think HomeKit Secure Video could provide some of the desired features if Ring would ever release their official HomeKit integration, but they have been radio silent on if/when that will ever happen. I have tried very hard to get official Ring support for this plugin (including emailing the CEO, who actually responded), but their 3rd party "partners" program is an unresponsive stone wall.

I'll leave this issue open for further discussion and announcements if there are any developments.

evelant commented 4 years ago

Thanks for the through explanation. I understand and agree completely. Ring products are very nice but it's a shame they're slow walking their years-ago-announced HomeKit support and other integrations. I also emailed their CEO about some issues (he seems to respond to all email) also asking about RTSP support and the response was that they'd like to do it but no timeline.

dxdc commented 4 years ago

If there was ever a reason to support Secure Video, it's the new facial recognition feature coming in iOS14. That being said, I understand the fact that you don't want to incentive an alternative to Ring's subscription model, but I don't really see the overlap. Ring has included a lot of great features within their app which are still really helpful at times and I wouldn't trade one for the other... I think they're both useful.

Apple is expanding HomeKit camera features in iOS 14 with a new face classification feature that will include a people identification feature. HomeKit Secure Video will likely be upgraded to not only detect people in general, but also offer notifications around detecting specific people in your family.

The automation potential around this would be simply incredible. Cross-referencing this related discussion: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/issues/338

dgreif commented 4 years ago

I appreciate that there is a demand for this and totally understand why. Unfortunately, I really don’t think it’s going to be practical at this point. Because the streams go through Rings servers, HKSV would and a heavy bandwidth load both to ring and to your own internet connection. If someone ever figured out how to do sip directly to the cameras, then maybe it would be feasible. For now I just don’t see it as an option

codyc1515 commented 4 years ago

That's not how HKSV works - it's not a livestream from the camera to the HomeKit Hub.

When a motion event is detected the camera is meant to immediately send a video "fragment" of the event to the HomeKit Hub for processing to detect if there was a face, vehicle, etc.

The immediate part is key here. Due to the delay connecting to Rings servers this would likely cause the event to be missed when it is recorded by HKSV.

If you wanted to get really technical, theoretically you could download the recording from Ring's server and upload it to HKSV but then what would be the point?

dxdc commented 4 years ago

That makes sense @dgreif and @codyc1515 ... thanks for the clarification, and agree.

So, maybe this is too simple of an idea, but what about if just the snapshot was sent as HKSV for detection purposes? (Or, even if the snapshot was turned into a 1 second "video"). Wonder if it would be usable.

dgreif commented 4 years ago

Yeah, thanks for the clarification @codyc1515, I didn't realize it wasn't a constant stream. I am willing to try it out once homebridge has support, but no idea when that will be. One interesting note, I'm pretty sure that the new 24x7 snapshots feature uses small video clips instead of still snapshots. Might be easily used for fragments. But the "instant" part is gonna be the real challenge

settlesteven1 commented 3 years ago

for what its worth, id like to just say that i pay for the ring service, but i also use logitech circle view cameras and do record to homekit with them. i would much rather be able to review all recordings in one place than have to go to an app for ring. happy to keep paying for ring, i just want my recordings all in one place

ifeign commented 3 years ago

https://github.com/homebridge/HAP-NodeJS/pull/904

Looks like we’re about to get HKSV in Homebridge!

dgreif commented 3 years ago

Yep, it may be integrated soon. Sadly, I don't plan to add it to the Ring plugin any time soon. HSV makes a lot of sense for plugins like homebridge-unifi-protect and homebridge-camera-ffmpeg, where you have a camera on the local network and can stream quickly/as much as you want. Because the Ring streams all go through the Ring servers, I don't think I will ever be able to make it a great end user experience. I just don't think it's worth the effort and bugs that will come of it, not to mention the possible backlash from Ring if this plugin provides an alternative to their paid storage subscription. I am very excited that it will soon be possible in homebridge in general though!