Skip to content

[Feature Request] Camera snapshots (async_camera_image) return no data #908

Description

@phoenix-server

Is your feature request related to a problem? Please describe.
A camera entity from this integration cannot produce a still-image snapshot. The live stream works, because it uses the WebRTC path (async_handle_async_webrtc_offer). A snapshot request uses a different path (async_camera_image), and that method returns None:

async def async_camera_image(
    self, width: int | None = None, height: int | None = None
) -> bytes | None:
    """Return bytes of camera image.
    Currently not implemented"""
    return None

Home Assistant treats a None result as a failure. Any caller of the snapshot endpoint gets an HTTP 500 error, with no exception in the log. This affects the picture-glance card, the camera.snapshot service, and any automation or notification that needs a still image.

Describe the solution you'd like
Add snapshot support to WyzeCamera.async_camera_image. One option: take a single frame from the WebRTC session, since the integration already opens one for live view. Another option: if a Wyze cloud endpoint returns a still image for the affected camera models, call that endpoint instead.

Describe alternatives you've considered
No workaround exists yet. The supported_features value for this entity is CameraEntityFeature.STREAM only. Home Assistant's usual ffmpeg-based frame-grab fallback needs a stream_source, and this entity does not set one, so that fallback does not apply either.

Additional context

  • Confirmed against v0.1.39 (latest release), custom_components/wyzeapi/camera.py.
  • Reproduced on four devices: three of model WYZE_CAKP2JFUS (Cam v3 hardware) and one of model HL_PAN3 (Pan Cam v3).
  • Debug logs (custom_components.wyzeapi: debug, wyzeapy: debug) show the Wyze cloud session works during a snapshot request. Normal get_property_list and get_event_list calls succeed. No call for a still image appears, and no error is logged.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions