Add vivotek.markdown (#10189)

* Add vivotek.markdown

* 🚑 Fix build error

* Add vivotek component advanced config example

* Add vivotek component services

* Update Vivotek camera component page

- Add SSL option
- Remove authentication option since only basic auth is available

* Update vivotek component page

* Update Vivotek camera page

* ✏️ Tweak

* ✏️ Tweaks
This commit is contained in:
Kevin McCormack 2019-09-09 14:23:35 -04:00 committed by Franck Nijhof
parent 525f08e488
commit d7ad17274f
2 changed files with 141 additions and 0 deletions

View File

@ -0,0 +1,141 @@
---
title: "Vivotek Camera"
description: "Instructions on how to integrate Vivotek cameras within Home Assistant."
ha_category:
- Camera
logo: vivotek.jpg
ha_release: 0.99
ha_iot_class: Local Polling
---
The `vivotek` camera platform allows you to integrate a Vivotek IP camera into Home Assistant.
Home Assistant will serve the images via its server, making it possible to view your IP cameras while outside of your network. The endpoint is `/api/camera_proxy/camera.[name]`.
## Configuration
To enable this camera in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
camera:
- platform: vivotek
ip_address: IP_ADDRESS
username: USERNAME
password: PASSWORD
```
{% configuration %}
ip_address:
description: "The IP address of your camera, e.g., `192.168.1.2`."
required: true
type: string
name:
description: This parameter allows you to override the name of your camera.
required: false
default: Vivotek Camera
type: string
username:
description: The username for accessing your camera.
required: true
type: string
password:
description: The password for accessing your camera.
required: true
type: string
ssl:
description: Enable or disable SSL. Set to false to use an HTTP-only camera.
required: false
default: false
type: boolean
verify_ssl:
description: Enable or disable SSL certificate verification. Set to false to use an HTTP-only camera, or you have a self-signed SSL certificate and haven't installed the CA certificate to enable verification.
required: false
default: true
type: boolean
framerate:
description: The number of frames-per-second (FPS) of the stream. Can cause heavy traffic on the network and/or heavy load on the camera.
required: false
default: 2
type: integer
{% endconfiguration %}
### Advanced configuration
```yaml
# Example configuration.yaml entry
camera:
- platform: vivotek
name: Front door camera
ip_address: 192.168.1.2
ssl: true
username: !secret fd_camera_username
password: !secret fd_camera_pwd
verify_ssl: false
framerate: 5
```
### Services
Once loaded, the `camera` platform will expose services that can be called to perform various actions.
Available services: `enable_motion_detection`, `disable_motion_detection`, `snapshot`, and `play_stream`.
#### Service `play_stream`
Play a live stream from a camera to selected media player(s). Requires [`stream`](/components/stream) integration to be set up.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | Name of entity to fetch stream from, e.g., `camera.front_door_camera`. |
| `media_player` | no | Name of media player to play stream on, e.g., `media_player.living_room_tv`. |
| `format` | yes | Stream format supported by `stream` integration and selected `media_player`. Default: `hls` |
For example, the following action in an automation would send an `hls` live stream to your chromecast.
```yaml
action:
service: camera.play_stream
data:
entity_id: camera.yourcamera
media_player: media_player.chromecast
```
#### Service `enable_motion_detection`
Enable motion detection in a camera. Currently, this will enable the first event configured on the camera.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name(s) of entities to enable motion detection, e.g., `camera.front_door_camera`. |
#### Service `disable_motion_detection`
Disable the motion detection in a camera. Currently, this will disable the first event configured on the camera.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name(s) of entities to disable motion detection, e.g., `camera.front_door_camera`. |
#### Service `snapshot`
Take a snapshot from a camera.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | Name(s) of entities to create a snapshot from, e.g., `camera.front_door_camera`. |
| `filename` | no | Template of a file name. Variable is `entity_id`, e.g., {% raw %}`/tmp/snapshot_{{ entity_id }}`{% endraw %}. |
The path part of `filename` must be an entry in the `whitelist_external_dirs` in your [`homeassistant:`](/docs/configuration/basic/) section of your `configuration.yaml` file.
For example, the following action is an automation that would take a snapshot from "front_door_camera" and save it to /tmp with a timestamped filename.
{% raw %}
```yaml
action:
service: camera.snapshot
data:
entity_id: camera.front_door_camera
filename: '/tmp/yourcamera_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
```
{% endraw %}

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB