Platform error: camera - Requirements for ezviz not found: ['pyezviz==0.1.5']

Hi,

Sorry for my english, i saw this post. I installed this integration. I can see my cam on my dashboard but i can activate movement, functions,
To create card, i use this :

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

I change the ID of my camera, my cam works but not all function.

The services are incorrect. for PTZ use
service: ezviz_cloud.ezviz_ptz

However, I have problems with the other servicesā€¦ I cannot switch privacy etc.

Yep, thx, i saw this, and i modify all script with the good service

I have tried to use the service ezviz_cloud.ezviz_ptz but I have always the error message:
ā€œFailed to call service ezviz_cloud/ezviz_ptz. Service not found.ā€

I have tried to remove and reinstall the integration but the problem still present.

Hi @RenierM ,
PTZ and other services donā€™t work for me too, I can only see the video.
How can I solve?
Thank you

Hi @SmartM-ui,

I have an open pull request that adds PTZ and other services to the official ha component. Itā€™s curranty being reviewed.

Add services to ezviz integration by RenierM26 Ā· Pull Request #48984 Ā· home-assistant/core (github.com)

Alternatively you can use my HACS and install my ā€œbetaā€ custom component from github:

RenierM26/ha-ezviz: Ezviz component for HASSIO, testing latest additions to official integration also maintained by me. (github.com)

Hi @RenierM ,
sorry I was not clear, the ptz command and the other services do not work using your HACS custom component in addition to the official integration.

I entered and installed your repo, followed the steps (I also tried entering the yaml code), the card with the video stream is displayed, but the commands do not work.

Can I try some different way?
Thanks again

My cam is Ezviz C6N

Have you tried to refresh your browser? This is the service in question. Youā€™ll need to setup the custom integration and remove entities for built-in one if you go this route.

Any errors in in the log?

How to send snapshot notification by telegram, by using the last_alarm_pic sensor provided by this integration?

I was considering something like

service: notify.marco
data_template:
message: pics
data:
photo:
url:
{{states (ā€˜sensor.camera.sala.last_alarm_picā€™)}}

But it seems wrong. Can somebody drive me in the correct direction?

Guys in hassio I am able to add ezviz but it says invalid authentication. I have logged on the mobile device to ensure password worked. However, maybe the region could be wrong. any ideas?

Same for me. I turned off 2-factor auth too. It always says invalid authentication. I think it has something to do with the region, even though EU seems correct, since Iā€™m in Italy. I found nothing relevant in the logs.

I have my EZVIZ DB1 already working through Frigate, but I wanted to check if with @RenierMā€™s integration I could have the ring event for the doorbell in HA. Right now Iā€™m using a zigbee device to intercept when someone rings the DB1 so I can stream the video on Echo devices.

Got it to work, under the API URL.
Apiius.ezvizlife.com and it worked

1 Like

Read your post, reconfigured, and selected ā€œcustomizeā€ for the url. apiieu.ezvizlfe.com appeared, and finally it worked.

@RenierM I finally got the component configured. I have a DB1. I checked the list of sensors/entities available, but I canā€™t find what I was looking for: a sensor to detect when someone rings the doorbell, pressing the button on the DB1. Is there such an event in the API that could be implemented?

Thanks a lot.

Hi @RenierM,
Apologies if I have missed this further up this thread but I see the official integration is back, seems to be working and you are including some of your code in it so was wondering how this fit with your Beta one please. Is it a case of just using one of the other and are effectively merging now? Thanks

Hi @pete101,

The Beta is where I test new features and where people can log requests etc. The goal is always to improve the official integration. At the moment the only difference is the alarm integration but I will soon be testing MQTT alarm push notifications. Itā€™s mostly trial/error/reverse engineering as thereā€™s no official API for consumers.

1 Like

Just and update to let you know that the snapshot service is working now on latest HA, with same service call as per original referenced message.

Cheers

I have 4 same cams, tring to integrate in Frigate, but video is blurry, any idea?


  living:
    ffmpeg:
      inputs:
        - path: rtsp://admin:[email protected]:554/h.264
          roles:
            - detect
            - rtmp
            - clips
            - record
    width: 1920
    height: 1080
    fps: 5

Hey @alexdelprete, are you using the main or sub stream with Frigate?, do you mind sharing your Frigate config for the DB1?

I was able to get it working using the sub stream for live and snapshots but it wonā€™t work with the main stream.

Sub Stream Config:-

cameras:
  frontdoor:
    ffmpeg:
      hwaccel_args:
        - -c:v
        - h264_v4l2m2m
      inputs:
        - path: rtsp://admin:[email protected]:554/streaming/channels/102/
          roles:
            - detect
            - clips
    width: 384
    height: 512
    fps: 5

Main Stream Config:-

cameras:
  frontdoor:
    ffmpeg:
      hwaccel_args:
        - -c:v
        - h264_v4l2m2m
      inputs:
        - path: rtsp://admin:[email protected]:554/streaming/channels/101/
          roles:
            - detect
            - clips
    width: 1536
    height: 2048
    fps: 5

As per frigate documentation, for detection I used the substream and for recording/clips I use the main stream.

This is my full cameras config (with comments etc.)

cameras:
  # Required: name of the camera
  citofono:
    # Required: ffmpeg settings for the camera
    ffmpeg:
      # Required: A list of input streams for the camera. See documentation for more information.
      inputs:
        # Required: the path to the stream
        # NOTE: Environment variables that begin with 'FRIGATE_' may be referenced in {}
        - path: rtsp://admin:admin:[email protected]:554/Streaming/Channels/102
          # Required: list of roles for this stream. valid values are: detect,record,clips,rtmp
          # NOTICE: In addition to assigning the record, clips, and rtmp roles,
          # they must also be enabled in the camera config.
          roles:
            - detect
        - path: rtsp://admin:[email protected]:554/Streaming/Channels/101
          roles:
            - rtmp
            - clips
            - record
    # Required: width of the frame for the input with the detect role
    width: 384
    # Required: height of the frame for the input with the detect role
    height: 512
    # Optional: desired fps for your camera for the input with the detect role
    # NOTE: Recommended value of 5. Ideally, try and reduce your FPS on the camera.
    #       Frigate will attempt to autodetect if not specified.
    fps: 5

    # Optional: camera level motion config
    motion:
      # Optional: motion mask
      # NOTE: see docs for more detailed info on creating masks
      mask: 0,0,1000,0,1000,200,0,200

    # Optional: timeout for highest scoring image before allowing it
    # to be replaced by a newer image. (default: shown below)
    best_image_timeout: 60

    # Optional: zones for this camera
    zones:
      # Required: name of the zone
      # NOTE: This must be different than any camera names, but can match with another zone on another
      #       camera.
      front_steps:
        # Required: List of x,y coordinates to define the polygon of the zone.
        # NOTE: Coordinates can be generated at https://www.image-map.net/
        coordinates: 545,1077,747,939,788,805
        # Optional: Zone level object filters.
        # NOTE: The global and camera filters are applied upstream.
        filters:
          person:
            min_area: 5000
            max_area: 100000
            threshold: 0.7

    # Optional: Camera level detect settings
    detect:
      # Optional: enables detection for the camera (default: True)
      # This value can be set via MQTT and will be updated in startup based on retained value
      enabled: True
      # Optional: Number of frames without a detection before frigate considers an object to be gone. (default: double the frame rate)
      max_disappeared: 10

    # Optional: save clips configuration
    clips:
      # Required: enables clips for the camera (default: shown below)
      # This value can be set via MQTT and will be updated in startup based on retained value
      enabled: True
      # Optional: Number of seconds before the event to include in the clips (default: shown below)
      pre_capture: 30
      # Optional: Number of seconds after the event to include in the clips (default: shown below)
      post_capture: 30
      # Optional: Objects to save clips for. (default: all tracked objects)
      # objects:
      #   - person
      #   - car
      # Optional: Camera override for retention settings (default: global values)
      retain:
        # Required: Default retention days (default: shown below)
        default: 5
        # Optional: Per object retention days
        objects:
          person: 5

    # Optional: 24/7 recording configuration
    record:
      # Optional: Enable recording (default: global setting)
      enabled: False
      # Optional: Number of days to retain (default: global setting)
      retain_days: 5

    # Optional: RTMP re-stream configuration
    rtmp:
      # Required: Enable the live stream (default: True)
      enabled: True

    # Optional: Configuration for the jpg snapshots written to the clips directory for each event
    snapshots:
      # Optional: Enable writing jpg snapshot to /media/frigate/clips (default: shown below)
      # This value can be set via MQTT and will be updated in startup based on retained value
      enabled: True
      # Optional: print a timestamp on the snapshots (default: shown below)
      timestamp: False
      # Optional: draw bounding box on the snapshots (default: shown below)
      bounding_box: False
      # Optional: crop the snapshot (default: shown below)
      crop: False
      # Optional: height to resize the snapshot to (default: original size)
      height: 270
      # Optional: Camera override for retention settings (default: global values)
      retain:
        # Required: Default retention days (default: shown below)
        default: 5
        # Optional: Per object retention days
        objects:
          person: 5