diff --git a/source/_components/vivotek.markdown b/source/_components/vivotek.markdown new file mode 100644 index 00000000000..58d7c7068c4 --- /dev/null +++ b/source/_components/vivotek.markdown @@ -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 %} diff --git a/source/images/supported_brands/vivotek.jpg b/source/images/supported_brands/vivotek.jpg new file mode 100644 index 00000000000..951b786c605 Binary files /dev/null and b/source/images/supported_brands/vivotek.jpg differ