Camera
The camera integration allows you to use IP cameras with Home Assistant.
构建模块集成
这个 camera 是一个构建模块集成,无法直接添加到你的 Home Assistant 中,但可以被其他集成使用和提供。
构建模块集成不同于典型的与设备或服务连接的集成。相反,其他将设备或服务集成到 Home Assistant 中的集成使用这个 camera 构建模块来提供实体、服务和其他你可以在自动化或仪表板中使用的功能。
如果你的某个集成具有这个构建模块,这个页面记录了 camera 构建模块所提供的功能。
Streaming video
If your camera supports it, and the stream
integration is setup, you will be able to stream your cameras in the frontend and on supported media players.
The Preload stream
option will start the camera feed on Home Assistant startup and continue to keep the stream alive. This will result in reduced latency when opening the stream in the frontend, as well as when using the play_stream
action or Google Assistant integration. It does, however, utilize more resources on your machine, so it is recommended to check CPU usage if you plan to use this feature.
Example showing the Preload Stream option in the camera dialog.
The state of a camera
A camera can have the following states. Not all camera integrations support all states.
- Streaming: The camera transmits a live play-back of the video data it is recording.
- Recording: The camera is currently capturing video content.
- Idle: The camera is not currently capturing video content.
- Unavailable: The entity is currently unavailable.
- Unknown: The state is not yet known.
Actions
Once loaded, the camera
platform will expose actions that can be called to perform various actions.
Available actions: enable_motion_detection
, disable_motion_detection
, play_stream
, record
, snapshot
, turn_off
and turn_on
.
Action enable_motion_detection
Enable the motion detection in a camera.
Data attribute | Optional | Description |
---|---|---|
entity_id |
yes | Name(s) of entities to enable motion detection, e.g., camera.living_room_camera . |
Action disable_motion_detection
Disable the motion detection in a camera.
Data attribute | Optional | Description |
---|---|---|
entity_id |
yes | Name(s) of entities to disable motion detection, e.g., camera.living_room_camera . |
Action play_stream
Play a live stream from a camera to selected media player(s). Requires stream
integration to be set up.
Data attribute | Optional | Description |
---|---|---|
entity_id |
no | Name of entity to fetch stream from, e.g., camera.living_room_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.
actions:
- action: camera.play_stream
target:
entity_id: camera.yourcamera
data:
media_player: media_player.chromecast
Action record
Make a .mp4
recording from a camera stream. Requires stream
integration to be set up.
Both duration
and lookback
options are suggestions, but should be consistent per camera. The actual length of the recording may vary. It is suggested that you tweak these settings to fit your needs.
Data attribute | Optional | Description |
---|---|---|
entity_id |
no | Name(s) of entities to create a snapshot from, e.g., camera.living_room_camera . |
filename |
no | Recording file name. |
duration |
yes | Target recording length (in seconds). Default: 30 |
lookback |
yes | Target lookback period (in seconds) to include in addition to duration. Only available if there is currently an active HLS stream. Default: 0 |
The path part of filename
must be an entry in the allowlist_external_dirs
in your homeassistant:
section of your configuration.yaml
configuration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] file.
For example, the following action in an automation would take a recording from “yourcamera” and save it to /tmp with a timestamped filename.
actions:
- variables:
my_camera_id: camera.yourcamera # Store the camera entity_id in a variable for reuse
- action: camera.record
target:
entity_id: '{{ my_camera_id }}'
data:
filename: '/tmp/{{ my_camera_id }}_{{ now().strftime("%Y%m%d-%H%M%S") }}.mp4'
Action snapshot
Take a snapshot from a camera.
Data attribute | Optional | Description |
---|---|---|
entity_id |
no | Name(s) of entities to create a snapshot from, e.g., camera.living_room_camera . |
filename |
no | Snapshot file name. |
The path part of filename
must be an entry in the allowlist_external_dirs
in your homeassistant:
section of your configuration.yaml
configuration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] file.
For example, the following action in an automation would take a snapshot from “yourcamera” and save it to /tmp with a timestamped filename.
actions:
- variables:
my_camera_id: camera.yourcamera # Store the camera entity_id in a variable for reuse
- action: camera.snapshot
target:
entity_id: '{{ my_camera_id }}'
data:
filename: '/tmp/{{ my_camera_id }}_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
Action turn_off
Turn off camera. Not all camera models support this action, please consult individual camera page.
Data attribute | Optional | Description |
---|---|---|
entity_id |
yes | Name(s) of entities to turn off, e.g., camera.living_room_camera . |
Action turn_on
Turn on camera. Not all camera models support this action, please consult individual camera page.
Data attribute | Optional | Description |
---|---|---|
entity_id |
yes | Name(s) of entities to turn on, e.g., camera.living_room_camera . |
Test if it works
A way to test if you have set up your camera
platform correctly, is to use Actions from the Developer Tools. Choose your action from the dropdown menu Action, enter something like the sample below into the data field, and select Perform action.
entity_id: camera.living_room_camera