From 9fc2061c77b089c2f307748d08de98c7d59eec8a Mon Sep 17 00:00:00 2001 From: Pierre <3458055+BaQs@users.noreply.github.com> Date: Tue, 10 Mar 2020 15:53:36 +0100 Subject: [PATCH] New integration: Ezviz camera (#11596) * New integration: Ezviz camera * lovelace card example * Tweaks and adjustments * Tweaks and adjustments * :pencil2: Typo Co-authored-by: Pierre Co-authored-by: Franck Nijhof Co-authored-by: Franck Nijhof --- source/_integrations/ezviz.markdown | 244 +++++++++++++++++++++++ source/images/supported_brands/ezviz.png | Bin 0 -> 24811 bytes 2 files changed, 244 insertions(+) create mode 100644 source/_integrations/ezviz.markdown create mode 100644 source/images/supported_brands/ezviz.png diff --git a/source/_integrations/ezviz.markdown b/source/_integrations/ezviz.markdown new file mode 100644 index 00000000000..232e139e102 --- /dev/null +++ b/source/_integrations/ezviz.markdown @@ -0,0 +1,244 @@ +--- +title: "Ezviz Camera" +description: "Integrate Ezviz camera within Home Assistant." +logo: ezviz.png +ha_release: 0.107 +ha_category: + - Camera +ha_iot_class: Cloud Polling +ha_domain: ezviz +--- + +The `ezviz` sensor platform uses the EzvizLife API to interact with the devices. +It also exposes an RTSP stream, by using the local camera IPs (so the device hosting Home Assistant has to be able to access the local IP of the cameras). + +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 configuration (see below) needs your Ezviz username & password you use within the Ezviz mobile application. + +Next, add the Ezviz camera to your `configuration.yaml` file like below: + +```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 +``` diff --git a/source/images/supported_brands/ezviz.png b/source/images/supported_brands/ezviz.png new file mode 100644 index 0000000000000000000000000000000000000000..ddfb7bd68cd30da4f7acf5321cf17189de0c3235 GIT binary patch literal 24811 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 Z0pBAF4X0zQz5DwCbrl`u3MI>s{|DCL>)!wX literal 0 HcmV?d00001