home-assistant.io/source/_components/camera.proxy.markdown
Giuseppe 4935d9d704 Extended documentation for proxy camera to include PR 18431 (#7491)
* Extended documentation for proxy camera to include PR 18431

https://github.com/home-assistant/home-assistant/pull/18431

* Further refinements

* ✏️ Tweak
2018-12-05 09:02:46 +01:00

121 lines
3.7 KiB
Markdown

---
layout: page
title: "Camera Proxy"
description: "Instructions on how to integrate a camera proxy within Home Assistant."
date: 2018-03-08 19:00
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Camera
ha_release: 0.65
---
The `proxy` camera platform allows you to pass another camera's output through post-processing routines and generate a new camera with the post-processed output.
The current post-processing supports resizing and/or cropping the image/MJPEG as well as limiting the maximum refresh rate.
The current proxy capabilities are intended to reduce the camera bandwidth for slower internet connections.
## {% linkable_title Configuration %}
To enable this camera in your installation, you must first have an existing working camera configured in Home Assistant. Next, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
camera:
- platform: proxy
entity_id: camera.<existingcamera>
max_stream_width: 360
max_image_width: 720
```
{% configuration %}
entity_id:
description: The ID of another Home Assistant camera to post-process.
required: true
type: string
name:
description: This parameter allows you to override the name of your camera.
required: false
type: string
mode:
description: The operating mode, either `resize` or `crop`.
required: false
type: string
default: resize
max_image_width:
description: The maximum width of single images taken from the camera (aspect ratio will be maintained on resize processing).
required: false
type: integer
max_image_height:
description: The maximum height of single images taken from the camera, only used for crop operations. If not provided, the original height is assumed by default.
required: false
type: integer
max_stream_width:
description: The maximum width of the MJPEG stream from the camera (aspect ratio will be maintained on resize processing).
required: false
type: integer
max_stream_height:
description: The maximum height of the MJPEG stream from the camera, only used for crop operations. If not provided, the original height is assumed by default.
required: false
type: integer
image_top:
description: The top (y) coordinate to be used as a starting point for crop operations.
required: false
type: integer
default: 0
image_left:
description: The left (x) coordinate to be used as a starting point for crop operations.
required: false
type: integer
default: 0
image_quality:
description: The quality level used for resulting JPEG for snapshots.
required: false
type: integer
default: 75
stream_quality:
description: The quality level used for resulting MJPEG streams.
required: false
type: integer
default: 75
image_refresh_rate:
description: The minimum time in seconds between generating successive image snapshots.
required: false
type: float
force_resize:
description: Resize the image even if the resulting image would take up more bandwidth than the original.
required: false
type: boolean
cache_images:
description: Preserve the last image and re-send in the case the camera is not responding.
required: false
type: boolean
{% endconfiguration %}
## {% linkable_title Examples %}
Example of using two Camera proxies along with a Foscam camera:
```yaml
camera:
- platform: foscam
ip: 192.168.1.10
username: foscam_camera
password: camera_password
name: mycamera
- platform: proxy
entity_id: camera.mycamera
max_stream_width: 360
max_image_width: 480
image_refresh_rate: 5.0
- platform: proxy
entity_id: camera.mycamera
name: My cropped camera
mode: crop
max_image_width: 480
max_image_height: 320
image_left: 100
```