Skip to content

Add support for Ring Wired Video Doorbell Plus (2nd Gen) #521

Description

@danielcolquitt

Title: Add support for Ring Wired Video Doorbell Plus (2nd Gen)

Summary

My Ring Wired Video Doorbell Plus (2nd Gen) is shown in Home Assistant, via the official Ring integration, as an Unknown device.

Only basic entities are created. Motion and ding event entities are not created, even though motion alerts and doorbell presses work normally in the Ring app.

This looks like a missing device-kind/model mapping in python-ring-doorbell.

Device

  • Product name: Ring Wired Video Doorbell Plus (2nd Gen)
  • Power: Wired
  • Motion alerts work in the Ring app: Yes
  • Doorbell press / ring events work in the Ring app: Yes

Behaviour in Home Assistant

The device is listed as Unknown under the Ring integration.

The following entities are created:

sensor.**REDACTED**_battery
sensor.**REDACTED**_last_activity
camera.**REDACTED**_last_recording
camera.**REDACTED**_live_view
sensor.**REDACTED**_signal_strength
number.**REDACTED**_volume
sensor.**REDACTED**_wi_fi_signal_category

The expected motion/ding entities are not created, for example:

event.**REDACTED**_motion
event.**REDACTED**_ding
switch.**REDACTED**_motion_detection

Expected behaviour

The device should be recognised as a Ring Wired Video Doorbell Plus (2nd Gen), or as an equivalent supported wired doorbell model.

It should expose the appropriate doorbell capabilities, including motion and ding events, as other supported Ring doorbells do.

Actual behaviour

The device is shown as Unknown.

Only basic entities are created. Motion and ding events are not exposed to Home Assistant.

Diagnostics

I can provide the Home Assistant Ring integration diagnostics if useful.

The relevant device entry for the device should include the API kind value needed to add the model mapping.

Diagnostics JSON
{
  "home_assistant": {
    "installation_type": "Home Assistant Container",
    "version": "2026.4.1",
    "dev": false,
    "hassio": false,
    "virtualenv": false,
    "python_version": "3.14.2",
    "docker": true,
    "arch": "aarch64",
    "timezone": "Europe/London",
    "os_name": "Linux",
    "os_version": "6.8.0-1053-raspi",
    "container_arch": "aarch64",
    "run_as_root": true
  },
  "integration_manifest": {
    "domain": "ring",
    "name": "Ring",
    "codeowners": [
      "sdb9696"
    ],
    "config_flow": true,
    "dependencies": [
      "ffmpeg"
    ],
    "dhcp": [
      {
        "hostname": "ring*",
        "macaddress": "0CAE7D*"
      },
      {
        "hostname": "ring*",
        "macaddress": "2CAB33*"
      },
      {
        "hostname": "ring*",
        "macaddress": "94E36D*"
      },
      {
        "hostname": "ring*",
        "macaddress": "9C7613*"
      },
      {
        "hostname": "ring*",
        "macaddress": "341513*"
      }
    ],
    "documentation": "https://www.home-assistant.io/integrations/ring",
    "integration_type": "hub",
    "iot_class": "cloud_polling",
    "loggers": [
      "ring_doorbell"
    ],
    "quality_scale": "bronze",
    "requirements": [
      "ring-doorbell==0.9.14"
    ],
    "is_built_in": true,
    "overwrites_built_in": false
  },
  "setup_times": {
    "null": {
      "setup": 6.694500007142778e-05
    },
    "01KNWBQ02DB3Z8DXR11JDHRYX8": {
      "wait_import_platforms": -9.257930581999972,
      "config_entry_setup": 10.579757132000054
    }
  },
  "data": {
    "device_data": [
      {
        "id": "**REDACTED**",
        "kind": "cocoa_doorbell_v4w",
        "description": "**REDACTED**",
        "location_id": "**REDACTED**",
        "schema_id": "721373c691b339be88c10f05af7a4d28afb1c08b482ad396a0c3f55b00b77ca3",
        "is_sidewalk_gateway": false,
        "created_at": "2025-11-01T18:54:54Z",
        "deactivated_at": null,
        "encryption_group": {
          "id": null,
          "account_group_revision_id": null
        },
        "device_resource_id": "rduri:dr.prod:0:device.ring|703722525",
        "owner": {
          "id": "**REDACTED**",
          "first_name": "",
          "last_name": "",
          "email": ""
        },
        "device_id": "**REDACTED**",
        "time_zone": "Europe/London",
        "firmware_version": "Up to Date",
        "latitude": "**REDACTED**",
        "longitude": "**REDACTED**",
        "address": "",
        "owned": true,
        "stolen": false,
        "ring_id": null,
        "shared_at": null,
        "health": {
          "ac_power": 1,
          "battery_percentage_category": "unknown",
          "battery_voltage_category": "unknown",
          "connected": true,
          "device_type": "cocoa_doorbell_v4w",
          "external_connection": true,
          "firmware_version": "cam-1.31.11200",
          "floodlight_on": false,
          "last_update_time": 1777748184,
          "network_connection_value": "wifi",
          "night_mode_on": false,
          "ota_status": "timeout",
          "rss_connected": true,
          "rssi": -40.0,
          "rssi_category": "good",
          "second_battery_percentage_category": "unknown",
          "second_battery_voltage_category": "unknown",
          "sidewalk_connection": false,
          "white_led_on": false,
          "firmware_version_status": "Up to Date",
          "packet_loss": 0.0,
          "packet_loss_category": "good",
          "hatch_open": false,
          "ext_power_state": 256,
          "bandwidth": 19207,
          "transformer_score": "unknown",
          "pref_run_mode": "full_power",
          "run_mode": "full_power",
          "supported_rpc_commands": [
            "CloudCV.Event",
            "mds_group_update",
            "mds_migration_package_available",
            "motion_snooze",
            "ping",
            "rsp.AppConnected",
            "rsp.CloseSession",
            "rsp.DynamicResolution",
            "rsp.StealthMode",
            "vod.prepare"
          ],
          "siren_on": false,
          "status_time": 58253252470122,
          "vod_enabled": true,
          "battery_error": false,
          "bandwidth_last_time": 1777676792,
          "firmware_avg_bitrate": "4888",
          "video_packets_total": "39553",
          "wifi_is_ring_network": false,
          "wifi_name": "**REDACTED**",
          "channel": "100",
          "egress_tx_rate": "46.26",
          "fast_ping_hop1_score": "21.6",
          "tx_rate": 9,
          "egress_tx_rate_category": "good",
          "current_bandwidth": 19207,
          "current_bandwidth_mb": 19.2,
          "current_bandwidth_category": "good",
          "package_warning_active": true,
          "encryption_group_error": -1
        },
        "subscribed": true,
        "subscribed_motions": true,
        "battery_life": null,
        "external_connection": true,
        "ring_net_id": null,
        "active_schedule_uuid": null,
        "alerts": {
          "connection": "online",
          "ota_status": "timeout",
          "sidewalk_connection": false
        },
        "motion_snooze": null,
        "snooze_settings": null,
        "flick_elim_recommended_mode": null,
        "settings": {
          "motion_snooze_preset_profile": "low",
          "motion_snooze_presets": [
            "none",
            "low",
            "medium",
            "high"
          ],
          "live_view_preset_profile": "middle",
          "extended_live_view": 2,
          "live_view_presets": [
            "low",
            "middle",
            "high",
            "highest"
          ],
          "doorbell_volume": 8,
          "chime_settings": {
            "enable": true,
            "type": 2,
            "duration": 10
          },
          "advanced_motion_detection_enabled": true,
          "advanced_motion_detection_human_only_mode": true,
          "enable_audio_recording": true,
          "people_detection_eligible": true,
          "live_view_disabled": false,
          "ignore_zones": {
            "zone1": {
              "name": "",
              "state": 0,
              "vertex1": {
                "x": 0,
                "y": 0
              },
              "vertex2": {
                "x": 0,
                "y": 0
              }
            },
            "zone2": {
              "name": "",
              "state": 0,
              "vertex1": {
                "x": 0,
                "y": 0
              },
              "vertex2": {
                "x": 0,
                "y": 0
              }
            },
            "zone3": {
              "name": "",
              "state": 0,
              "vertex1": {
                "x": 0,
                "y": 0
              },
              "vertex2": {
                "x": 0,
                "y": 0
              }
            },
            "zone4": {
              "name": "",
              "state": 0,
              "vertex1": {
                "x": 0,
                "y": 0
              },
              "vertex2": {
                "x": 0,
                "y": 0
              }
            }
          },
          "enable_rich_notifications": true,
          "rich_notifications_billing_eligible": true,
          "rich_notifications_face_crop_enabled": false,
          "user_specified_recording_ttl": 30,
          "loitering_threshold": 10,
          "advanced_motion_detection_types": [
            "human"
          ],
          "motion_detection_enabled": true,
          "rich_notifications_scene_source": "firmware",
          "offline_motion_event_settings": {
            "subscribed": true,
            "enabled": false,
            "max_upload_kb": 5000,
            "resolution_p": 360,
            "frequency_after_secs": 2,
            "period_after_secs": 30
          },
          "cv_settings": {
            "detection_types": {
              "human": {
                "enabled": true,
                "mode": "edge",
                "record": false,
                "notification": true
              },
              "loitering": {
                "enabled": false,
                "mode": "none",
                "record": false,
                "notification": false
              },
              "motion": {
                "enabled": true,
                "mode": "edge",
                "record": false,
                "notification": false
              },
              "moving_vehicle": {
                "enabled": false,
                "mode": "none",
                "record": false,
                "notification": false
              },
              "other_motion": {
                "enabled": true,
                "mode": "edge",
                "record": false,
                "notification": false
              },
              "package_delivery": {
                "enabled": true,
                "mode": "edge",
                "record": false,
                "notification": true
              },
              "package_pickup": {
                "enabled": false,
                "mode": "none",
                "record": false,
                "notification": false
              },
              "vehicle": {
                "enabled": true,
                "mode": "edge",
                "record": false,
                "notification": false
              },
              "unverified_motion": {
                "enabled": false,
                "mode": "none",
                "record": false,
                "notification": false
              },
              "motion_stop": {
                "enabled": false,
                "mode": "none",
                "record": false,
                "notification": false
              }
            },
            "threshold": {
              "loitering": 10.0,
              "package_delivery": 2.0,
              "unverified_motion": 0.0
            },
            "triggers": [],
            "search_types": {
              "natural_language_search": {
                "enabled": false,
                "mode": "none"
              }
            }
          },
          "concierge_settings": {
            "mode": "disabled",
            "alexa_settings": {
              "delay_ms": 10000
            },
            "autoreply_settings": {
              "delay_ms": 10000
            }
          },
          "sheila_settings": {
            "cv_processing_enabled": false,
            "local_storage_enabled": false
          },
          "server_settings": {
            "ring_media_server_enabled": true,
            "ring_media_server_host": "rms-eu-west-1.rapi.us-east-1.prod.client.cap.ring.devices.a2z.com"
          },
          "cv_paid_features": {
            "baby_cry": true,
            "car_alarm": true,
            "co2_smoke_alarm": true,
            "dog_bark": true,
            "general_sound": true,
            "glass_break": true,
            "human": true,
            "loitering": true,
            "motion": true,
            "other_motion": true,
            "package_delivery": true,
            "package_pickup": true,
            "cv_triggers": true,
            "vehicle": true,
            "animal": true
          },
          "other_paid_features": {
            "alexa_concierge": true,
            "sheila_cv": true,
            "sheila_recording": true,
            "critical_alerts": true,
            "system_level_pip": true,
            "extended_live_view": true,
            "snapshot_capture_plus": true,
            "live_speak": true,
            "closed_caption": true,
            "daily_digest": true,
            "ding_call": true,
            "natural_language_search": false,
            "multicam_live_view": true,
            "package_protection": true,
            "alarm_triggered_recording": true,
            "recording_24x7": false
          },
          "zone_settings": {
            "motion": [
              {
                "id": "**REDACTED**",
                "name": "Default Zone",
                "state": "enabled",
                "properties": {
                  "detection_types": [
                    "motion"
                  ],
                  "zone_types": []
                },
                "vertices": [
                  {
                    "x": 0,
                    "y": 0
                  },
                  {
                    "x": 0.5,
                    "y": 0
                  },
                  {
                    "x": 1,
                    "y": 0
                  },
                  {
                    "x": 1,
                    "y": 0.6
                  },
                  {
                    "x": 1,
                    "y": 1
                  },
                  {
                    "x": 0.5,
                    "y": 1
                  },
                  {
                    "x": 0,
                    "y": 1
                  },
                  {
                    "x": 0,
                    "y": 0.6
                  }
                ]
              },
              {
                "id": "**REDACTED**",
                "name": "Package Zone",
                "state": "enabled",
                "properties": {
                  "detection_types": [
                    "package_delivery"
                  ],
                  "zone_types": [],
                  "style": 4
                },
                "vertices": [
                  {
                    "x": 0.36302,
                    "y": 0.563528
                  },
                  {
                    "x": 0.536955,
                    "y": 0.547413
                  },
                  {
                    "x": 0.605717,
                    "y": 0.733164
                  },
                  {
                    "x": 0.795589,
                    "y": 0.656828
                  },
                  {
                    "x": 0.979644,
                    "y": 0.742154
                  },
                  {
                    "x": 0.805038,
                    "y": 1
                  },
                  {
                    "x": 0.296073,
                    "y": 1
                  },
                  {
                    "x": 0.305344,
                    "y": 0.759966
                  }
                ]
              }
            ],
            "monitoring": [],
            "aerial": [
              {
                "id": "**REDACTED**",
                "name": "Default Zone",
                "state": "enabled",
                "properties": {
                  "detection_types": [
                    "motion"
                  ],
                  "zone_types": [],
                  "style": 100
                },
                "vertices": [
                  {
                    "x": -2.7474,
                    "y": 5.2717
                  },
                  {
                    "x": -0.3733,
                    "y": 6.5214
                  },
                  {
                    "x": 0.4945,
                    "y": 5.6931
                  },
                  {
                    "x": 3.5864,
                    "y": 7.2551
                  },
                  {
                    "x": 6.3532,
                    "y": 6.5595
                  },
                  {
                    "x": 7.9431,
                    "y": 4.1872
                  },
                  {
                    "x": 6.105,
                    "y": 1.638
                  },
                  {
                    "x": 0.0241,
                    "y": 0.0602
                  }
                ]
              }
            ]
          },
          "stark_enrolled": false,
          "network_settings": {
            "mac_address_ble": null,
            "max_dynamic_listen_interval": null,
            "network_diagnosis": {
              "channel_analysis": null,
              "periodic_diagnosis": null,
              "lan_performance": null,
              "tcp_iperf": null,
              "tcp_host": null,
              "tcp_port": null,
              "udp_iperf": null,
              "udp_host": null,
              "udp_port": null,
              "udp_bandwidth": null
            },
            "multi_net_pref": 3,
            "data_restriction_enabled": null,
            "mac_address_wifi_24": null,
            "mac_address_wifi_5": null
          },
          "audio_settings": {
            "enable_live_view_audio_override": false
          },
          "motion_settings": {
            "motion_snooze_preset_profile": "low"
          },
          "motion_zones": [
            1,
            1,
            1,
            1,
            1
          ],
          "active_streaming_event_led_enabled": false,
          "enable_vod": 1,
          "exposure_control": 2,
          "vod_suspended": 0,
          "vod_status": "enabled",
          "voice_volume": 8,
          "video_settings": {
            "encryption_enabled": false,
            "encryption_method": 1,
            "encryption_eligibility_mode": null,
            "hevc_enabled": true,
            "recording_24x7_mode": 0
          },
          "advanced_motion_zones": {
            "zone1": {
              "name": "Default Zone",
              "state": 2,
              "vertex1": {
                "x": 0,
                "y": 0
              },
              "vertex2": {
                "x": 0.5,
                "y": 0
              },
              "vertex3": {
                "x": 1,
                "y": 0
              },
              "vertex4": {
                "x": 1,
                "y": 0.6
              },
              "vertex5": {
                "x": 1,
                "y": 1
              },
              "vertex6": {
                "x": 0.5,
                "y": 1
              },
              "vertex7": {
                "x": 0,
                "y": 1
              },
              "vertex8": {
                "x": 0,
                "y": 0.6
              }
            },
            "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
              }
            }
          },
          "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
          },
          "terms_of_service_accepted": "autoreply",
          "stark_enabled": false,
          "motion_announcement": false,
          "flick_elim_recommended_mode": 1,
          "radar_settings": {
            "birds_eye_view_enabled": true,
            "bez_feature_enabled": true,
            "bez_filtering_enabled": true,
            "installation_height": 1.5,
            "auto_motion_sensitivity_enabled": false
          },
          "preroll_enabled": true,
          "device_placement_info": null,
          "ir_led_settings": 3,
          "power_mode": "wired",
          "lite_24x7_footage_ttl": 168,
          "pir_sensitivity_1": 5,
          "lite_24x7": {
            "subscribed": true,
            "enabled": true,
            "frequency_secs": 60,
            "resolution_p": 360
          }
        },
        "features": {
          "cfes_eligible": true,
          "package_warning": {
            "enabled": false,
            "automation_eligible": false,
            "activation_eligible": true,
            "active": false,
            "expires_at": null,
            "activation_ineligibility_reasons": null
          },
          "smart_video_search": {
            "eligibility": {
              "eligible": false,
              "ineligibility_reasons": [
                "unsupported_language"
              ]
            },
            "enablement": {
              "allowed": false,
              "enabled": false,
              "disallow_reasons": [
                "not_subscribed",
                "ineligible"
              ]
            }
          },
          "smart_video_description": {
            "eligibility": {
              "eligible": false,
              "ineligibility_reasons": [
                "unsupported_language"
              ]
            },
            "enablement": {
              "allowed": false,
              "enabled": false,
              "disallow_reasons": [
                "not_subscribed"
              ]
            }
          },
          "auto_zoom_track": null,
          "live_view_audio_privacy_controls": {
            "eligibility": {
              "eligible": false,
              "ineligibility_reasons": [
                "not_supported",
                "audio_recording_enabled"
              ]
            }
          },
          "video_rendering": {
            "max_digital_zoom_level": 6.0
          },
          "person_identification": {
            "eligibility": {
              "eligible": true,
              "ineligibility_reasons": []
            },
            "enablement": {
              "allowed": false,
              "enabled": false,
              "disallow_reasons": [
                "not_subscribed"
              ]
            }
          },
          "retinal_tuning": {
            "eligibility": {
              "eligible": false,
              "ineligibility_reasons": [
                "unsupported_language",
                "firmware_not_enabled"
              ]
            },
            "enablement": {
              "allowed": true,
              "enabled": false,
              "disallow_reasons": []
            },
            "rt_max_digital_zoom_level": 24.0
          },
          "single_alert": {
            "eligibility": {
              "eligible": false,
              "ineligibility_reasons": [
                "svd_unavailable"
              ]
            },
            "enablement": {
              "allowed": false,
              "enabled": false,
              "disallow_reasons": []
            }
          },
          "chime_settings": {
            "is_eligible": true,
            "limited_manual": {}
          },
          "unusual_alert": {
            "eligibility": {
              "eligible": false,
              "ineligibility_reasons": [
                "unsupported_language"
              ]
            },
            "enablement": {
              "allowed": false,
              "enabled": false,
              "disallow_reasons": [
                "not_subscribed"
              ]
            },
            "learning": null
          },
          "transformer_score": {
            "score": "unknown",
            "affected_features": null
          },
          "video_donation": {
            "eligibility": {
              "eligible": false,
              "ineligibility_reasons": [
                "unsupported_region"
              ]
            }
          },
          "ai_automated_warnings": {
            "eligibility": {
              "eligible": false,
              "ineligibility_reasons": [
                "unsupported_language",
                "unsupported_region"
              ]
            },
            "enablement": {
              "allowed": false,
              "enabled": false,
              "disallow_reasons": [
                "not_subscribed",
                "opted_out"
              ]
            }
          },
          "automated_siren": null,
          "alexa_plus_greetings": {
            "eligibility": {
              "eligible": false,
              "ineligibility_reasons": [
                "unsupported_region",
                "unsupported_language"
              ]
            },
            "enablement": {
              "allowed": false,
              "enabled": false,
              "disallow_reasons": [
                "not_subscribed"
              ]
            }
          },
          "remote_access_control": null,
          "ai_labs_daily_clip": {
            "eligibility": {
              "eligible": false,
              "ineligibility_reasons": [
                "unsupported_language",
                "unsupported_region",
                "not_subscribed",
                "svd_not_enabled"
              ]
            },
            "enablement": {
              "enabled": false
            }
          },
          "motion_zone_recommendation": false,
          "motion_message_enabled": true,
          "motions_enabled": true,
          "show_recordings": true,
          "show_vod_settings": true,
          "rich_notifications_eligible": true,
          "show_offline_motion_events": false,
          "sheila_camera_eligible": null,
          "sheila_camera_processing_eligible": null,
          "dynamic_network_switching_eligible": false,
          "video_recording": {
            "recording_mode": "motion_based",
            "recording_enabled": true,
            "recording_state": "active",
            "recording_mode_availability": {
              "continuous": {
                "supported": false,
                "available": null,
                "unavailability_reason": null
              }
            }
          },
          "chime_auto_detect_capable": false,
          "missing_key_delivery_address": null,
          "vehicle_detection_eligible": true,
          "animal_detection_eligible": false,
          "live_view_pip_mode": null,
          "show_radar_data": true,
          "show_24x7_lite": true,
          "recording_24x7_eligible": null
        },
        "ext_power_state": 256
      }
    ]
  },
  "issues": []
}

In particular, the apparent API kind is:

`"kind": "cocoa_doorbell_v4w"`

Notes

This may be similar to previous cases where newer Ring doorbells used new API kind strings that were not yet mapped in python-ring-doorbell, causing Home Assistant to treat the device as unknown and skip capability-specific entities, e.g. #517.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions