Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
231 changes: 6 additions & 225 deletions source/_integrations/ezviz.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ ha_iot_class: Cloud Polling
ha_domain: ezviz
ha_codeowners:
- '@baqs'
- '@RenierM26'
ha_config_flow: true
ha_platforms:
- camera
---
Expand All @@ -17,231 +19,10 @@ It also exposes an RTSP stream, by using the local camera IPs (so the device hos

As there is no official documentation for the API, the component retrieves data from the API used in the Ezviz mobile app, [hosted here](https://apiieu.ezvizlife.com).

## Configuration
The password for each camera is usually written near the QR code. This could be underneath the device or in the user manual. It is usually referred to as the camera "verification code".

The configuration (see below) needs your Ezviz username & password you use within the Ezviz mobile application.
{% include integrations/config_flow.md %}

Next, add the Ezviz camera to your `configuration.yaml` file like below:
Your cameras will now show under integration options as "discovered devices". Please complete the setup for each camera to see the video stream within Home Assistant.
Comment thread
frenck marked this conversation as resolved.

```yaml
# Example configuration.yaml entry
camera:
- platform: ezviz
username: YOUR_USERNAME
password: YOUR_PASSWORD
cameras:
D12345678:
username: YOUR_CAMERA_USERNAME
password: YOUR_CAMERA_PASSWORD
```

As you see, here is the way to describe the camera credentials.
The password for each camera is usually written underneath the device, near the QR code. It is also code "verification code".

{% configuration %}
username:
description: The Ezviz account username.
required: true
type: string
password:
description: The Ezviz account password.
required: true
type: string
cameras:
description: A list of cameras
required: false
type: string
serial:
description: The Ezviz camera Serial, usually a letter followed by 8 digits.
required: true
type: string
username:
description: The Ezviz camera RTSP username.
required: true
type: string
password:
description: The Ezviz verification code.
required: true
type: string
{% endconfiguration %}

## Lovelace

If you want a shiny Lovelace card, with proper buttons, here is a snippet of a Lovelace card:

```yaml

camera_image: camera.c6n_d12345678
camera_view: live
elements:
- icon: 'mdi:arrow-up'
style:
background: "rgba(255, 255, 255, 0.5)"
bottom: 50px
right: 25px
tap_action:
action: call-service
service: camera.ezviz_ptz
service_data:
direction: up
entity_id: camera.c6n_d12345678
type: icon
- icon: 'mdi:arrow-down'
style:
background: "rgba(255, 255, 255, 0.5)"
bottom: 0px
right: 25px
tap_action:
action: call-service
service: camera.ezviz_ptz
service_data:
direction: down
entity_id: camera.c6n_d12345678
type: icon
- icon: 'mdi:arrow-left'
style:
background: "rgba(255, 255, 255, 0.5)"
bottom: 25px
right: 50px
tap_action:
action: call-service
service: camera.ezviz_ptz
service_data:
direction: left
entity_id: camera.c6n_d12345678
type: icon
- icon: 'mdi:arrow-right'
style:
background: "rgba(255, 255, 255, 0.5)"
bottom: 25px
right: 0px
tap_action:
action: call-service
service: camera.ezviz_ptz
service_data:
direction: right
entity_id: camera.c6n_d12345678
type: icon
- icon: 'mdi:run-fast'
style:
background: "rgba(255, 255, 255, 0.5)"
top: 25px
right: 25px
tap_action:
action: call-service
service: camera.ezviz_switch_follow_move_on
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:run'
style:
background: "rgba(255, 255, 255, 0.5)"
top: 25px
right: 0px
tap_action:
action: call-service
service: camera.ezviz_switch_follow_move_off
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:eye'
style:
background: "rgba(255, 255, 255, 0.5)"
right: 25px
top: 50px
tap_action:
action: call-service
service: camera.ezviz_switch_privacy_off
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:eye-off'
style:
background: "rgba(255, 255, 255, 0.5)"
right: 0px
top: 50px
tap_action:
action: call-service
service: camera.ezviz_switch_privacy_on
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:volume-high'
style:
background: "rgba(255, 255, 255, 0.5)"
right: 25px
top: 75px
tap_action:
action: call-service
service: camera.ezviz_switch_audio_off
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:volume-off'
style:
background: "rgba(255, 255, 255, 0.5)"
right: 0px
top: 75px
tap_action:
action: call-service
service: camera.ezviz_switch_audio_on
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:led-on'
style:
background: "rgba(255, 255, 255, 0.5)"
right: 25px
top: 100px
tap_action:
action: call-service
service: camera.ezviz_switch_state_off
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:led-off'
style:
background: "rgba(255, 255, 255, 0.5)"
right: 0px
top: 100px
tap_action:
action: call-service
service: camera.ezviz_switch_state_on
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:brightness-4'
style:
background: "rgba(255, 255, 255, 0.5)"
right: 25px
top: 100px
tap_action:
action: call-service
service: camera.ezviz_switch_ir_off
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
- icon: 'mdi:brightness-5'
style:
background: "rgba(255, 255, 255, 0.5)"
right: 0px
top: 100px
tap_action:
action: call-service
service: camera.ezviz_switch_ir_on
service_data:
entity_id: camera.c6n_d12345678
confirmation: true
type: icon
entity: camera.c6n_d12345678
type: picture-elements
```
You can also change the camera options should you need to access a high or low res stream. Generally, though it will just work without any modification to options.