Jason Hu 5d2641ff2b
Add camera.turn_on/off service (#5571)
* Add camera.turn_on/off service

* Trigger the build

* Update camera.markdown
2018-07-25 14:25:47 -07:00

86 lines
3.4 KiB
Markdown

---
layout: page
title: "Camera"
description: "Instructions on how to integrate cameras within Home Assistant."
date: 2015-11-09 08:36
sidebar: true
comments: false
sharing: true
footer: true
---
The camera component allows you to use IP cameras with Home Assistant. With a little additional work you could use [USB cameras](/blog/2016/06/23/usb-webcams-and-home-assistant/) as well.
### {% linkable_title Service %}
Once loaded, the `camera` platform will expose services that can be called to perform various actions.
Available services: `turn_on`, `turn_off`, `enable_motion_detection`, `disable_motion_detection`, and `snapshot`.
#### {% linkable_title Service `turn_on` %}
Turn on camera. Not all camera models support this service, please consult individual camera page.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name(s) of entities to turn on, e.g., `camera.living_room_camera`. |
#### {% linkable_title Service `turn_off` %}
Turn off camera. Not all camera models support this service, please consult individual camera page.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name(s) of entities to turn off, e.g., `camera.living_room_camera`. |
#### {% linkable_title Service `enable_motion_detection` %}
Enable the motion detection in a camera.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name(s) of entities to enable motion detection, e.g., `camera.living_room_camera`. |
#### {% linkable_title Service `disable_motion_detection` %}
Disable the motion detection in a camera.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Name(s) of entities to disable motion detection, e.g., `camera.living_room_camera`. |
#### {% linkable_title 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.living_room_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 in an automation would take a snapshot from "yourcamera" and save it to /tmp with a timestamped filename.
{% raw %}
```yaml
action:
service: camera.snapshot
data:
entity_id: camera.yourcamera
filename: '/tmp/yourcamera_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
```
{% endraw %}
### {% linkable_title Test if it works %}
A simple way to test if you have set up your `camera` platform correctly, is to use <img src='/images/screenshots/developer-tool-services-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> **Services** from the **Developer Tools**. Choose your service from the dropdown menu **Service**, enter something like the sample below into the **Service Data** field, and hit **CALL SERVICE**.
```json
{
"entity_id": "camera.living_room_camera"
}
```