Add device mappings for newer Ring cameras and doorbells#503
Add device mappings for newer Ring cameras and doorbells#503mmunchinski wants to merge 1 commit intopython-ring-doorbell:masterfrom
Conversation
Add support for the following devices confirmed with real hardware: - Outdoor Cam Plus (cocoa_camera_v2) - Outdoor Cam Pro 4K (cocoa_camera_v3) - Stick Up Cam Pro (stickup_cam_medusa) - Floodlight Pro Gen 2 (cocoa_floodlight_v2) - Wired Doorbell Pro 4K (cocoa_doorbell_v5) Also adds capability mappings (siren, light, battery, motion, video) based on hardware testing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
| STICKUP_CAM_WIRED_KINDS = STICKUP_CAM_ELITE_KINDS # Deprecated | ||
| STICKUP_CAM_GEN3_KINDS = ["cocoa_camera"] | ||
| STICKUP_CAM_PRO_KINDS = ["stickup_cam_medusa"] | ||
| OUTDOOR_CAM_PLUS_KINDS = ["cocoa_camera_v2"] |
There was a problem hiding this comment.
Ring cocoa_camera_v2 is the internal hardware identifier for the Ring Indoor Cam (2nd Generation)
This model, released as an iterative improvement over the original Indoor Cam, is designed for residential indoor security and pet monitoring.
There was a problem hiding this comment.
Both of my Indoor Cam Gen 2s return "stickup_cam_mini_v2"
There was a problem hiding this comment.
Ring is such a mess with its KINDs as there is no official and this pyton library is reverse engineering.
cocoa_camera_v2: [Indoor Cam 2nd Gen] OR some early-batch [Outdoor Cam Plus (2K)] units using fallback IDs.
So it make sence to stick it into GEN3 to support motion and siren.
And this will be fixed by #499
There was a problem hiding this comment.
I can only speak to what I can validate directly with my devices and the ring api itself:
Indoor Cam - stickup_cam_mini (1 instance)
Outdoor Cam Plus (2K) - cocoa_camera_v2 (7 instances)
Stickup Cam Gen 3 - cocoa_camera (3 instances)
Video Doorbell 4 - doorbell_oyster (1 instance)
Stickup Cam Pro - stickup_cam_medusa (1 instance)
Floodlight Pro (2K) - floodlight_pro (1 instance)
Floodlight Pro Gen 2 (4K) - cocoa_floodlight_v2 (1 instance)
Indoor Cam Gen 2 - stickup_cam_mini_v2 (2 instances)
Wired Doorbell Pro (4K) - cocoa_doorbell_v5 (1 instance)
Video Doorbell Plus - cocoa_doorbell_v2 (1 instance)
Outdoor Cam Pro (4K) - cocoa_camera_v3
The above mentioned PR only addresses one of the camera types mentioned in this particular PR. In terms of implementation I do not have a strong opinion as to if new devices are added under existing mappings or new ones are established due to differences of device model (and technically capability) -- I will leave that for the maintainer to decide. I can recognize merits for either approach.
| DOORBELL_BATTERY_KINDS = ["df_doorbell_clownfish"] | ||
| PEEPHOLE_CAM_KINDS = ["doorbell_portal"] | ||
| DOORBELL_GEN2_KINDS = ["cocoa_doorbell", "cocoa_doorbell_v2"] | ||
| DOORBELL_PRO_4K_KINDS = ["cocoa_doorbell_v5"] |
There was a problem hiding this comment.
In the Ring ecosystem, cocoa_doorbell_v5 is the internal hardware identifier for the Ring Video Doorbell 4.
This model follows the "Cocoa" development lineage for battery-powered doorbells. While earlier versions like v2 referred to the 2nd Generation Video Doorbell, the v5 designation is specifically linked to the Video Doorbell 4, known for its "Color Pre-Roll" technology.
The internal hardware identifier cocoa_doorbell_v5 refers to the Ring Video Doorbell 4, which features a resolution of 1080p HD.
There was a problem hiding this comment.
My video doorbell 4 returns "doorbell_oyster"
Summary
cocoa_camera_v2)cocoa_camera_v3)stickup_cam_medusa)cocoa_floodlight_v2)cocoa_doorbell_v5)Test plan
🤖 Generated with Claude Code