mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-06-01 07:46:49 +00:00
168 lines
5.4 KiB
Markdown
168 lines
5.4 KiB
Markdown
---
|
|
title: VIVOTEK
|
|
description: Instructions on how to integrate VIVOTEK cameras within Home Assistant.
|
|
ha_category:
|
|
- Camera
|
|
ha_release: 0.99
|
|
ha_iot_class: Local Polling
|
|
ha_codeowners:
|
|
- '@HarlemSquirrel'
|
|
ha_domain: vivotek
|
|
ha_platforms:
|
|
- camera
|
|
---
|
|
|
|
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
|
|
authentication:
|
|
description: "Type for authenticating the requests `basic` or `digest`."
|
|
required: false
|
|
default: basic
|
|
type: string
|
|
security_level:
|
|
description: The security level of the user accessing your camera. This could be `admin` or `viewer`.
|
|
required: false
|
|
default: admin
|
|
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
|
|
stream_path:
|
|
description: This parameter allows you to override the stream path.
|
|
required: false
|
|
default: live.sdp
|
|
type: string
|
|
{% 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
|
|
authentication: digest
|
|
security_level: admin
|
|
verify_ssl: false
|
|
framerate: 5
|
|
stream_path: live2.sdp
|
|
```
|
|
|
|
### 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`](/integrations/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
|
|
target:
|
|
entity_id: camera.yourcamera
|
|
data:
|
|
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 `allowlist_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
|
|
target:
|
|
entity_id: camera.front_door_camera
|
|
data:
|
|
filename: '/tmp/yourcamera_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
|
|
```
|
|
|
|
{% endraw %}
|