Eufy Camera Integration

That is still docker so I imagine the issue is firewall related. I think some people ran into that issue before though I’m not a HASSOS uses so you’ll have to search in this thread or wait for someone else to help.

I made the config changes as suggested by @RT1080 in this post: Eufy Camera Integration - #701 by RT1080 but that doesnt seem to have made any difference.

Not sure but is that hass addon still being maintained
The best addon so far i think is the one from fuatakgun

1 Like

A new update has been released for ioBroker integration for eufy. This update brought a lot of innovations. Now you can control the camera Eufy Indoor Cam 2K Pan & Tilt via PTZ, which was not there before. ioBroker works as a bridge for me and it transmits all the data to the Home Assistant. I brought out additional sensors and camera control. To control the camera, you need to send any value to the topic, but it should change, if we specify 1 all the time, the camera will not turn, so you need to alternate 1 or 0, then the camera will change position. Therefore, I created an MQTT switch and activated this switch using a button with the “switch” option, so by pressing the button in the topic, we send 1 or 0, and the camera starts turning in the direction we need with each press. If you have any ideas on how to implement this better, I will be only too happy and a big request to post examples of how it can be implemented.

I made an additional camera control panel that controls the camera movement and sets the quality of the video stream and recording
image

Creating an auxiliary element text "Camera in hall: Video stream quality"

input_select:
  camera_hall_video_stream_quality:
  name: 'Camera in hall: Video stream quality'
    options:
      - Auto
      - Low
      - Medium
      - High
  icon: mdi:camera

Let’s create an auxiliary element text "Camera in hall: Video recording resolution"

input_select:
  camera_hall_video_recording_quality:
  name: 'Camera in hall: Video recording resolution'
    options:
      - Full HD
      - 2K HD
  icon: mdi:camera

Let’s create an auxiliary element number "Camera in hall: Speaker volume"

input_number:
  camera_hall_speaker_volume:
  name: 'Camera in hall: Video recording resolution'
  min: 0
  max: 100
  step: 1
  mode: slider
  icon: mdi:camera

Let’s create switches and sensors MQTT

We create any file, for example, camera_easy_mqtt.yaml and insert the code into it, only you need to substitute the name of your camera instead of XXXXXXXXXXXXXX. This can be seen through MQTT Explorer

# Camera control Eufy Indoor Cam 2K Pan & Tilt
################################# Camera motion control ########################################
switch:
# Camera motion control. Turn right
  - platform: mqtt
    unique_id: PTZ camera control right
    name: "Eufy camera ptz control right"
    command_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/pan_right/set"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/pan_right/set"
    payload_on: "1"
    payload_off: "0"
    state_on: "1"
    state_off: "0"
    retain: false
    qos: 0
    icon: mdi:camera-control

# Camera motion control. Turn left
  - platform: mqtt
    unique_id: PTZ camera control left
    name: "Eufy camera ptz control left"
    command_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/pan_left/set"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/pan_left/set"
    payload_on: "1"
    payload_off: "0"
    state_on: "1"
    state_off: "0"
    retain: false
    qos: 0
    icon: mdi:camera-control

# Turn on / off the speaker
  - platform: mqtt
    unique_id: Speaker
    name: "Eufy camera speaker"
    command_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/speaker/set"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/speaker"
    payload_on: "true"
    payload_off: "false"
    state_on: "true"
    state_off: "false"
    retain: true
    qos: 0
    icon: mdi:account-voice

# Camera motion control. Turn up
  - platform: mqtt
    unique_id: PTZ camera control up
    name: "Eufy camera ptz control up"
    command_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/tilt_up/set"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/tilt_up/set"
    payload_on: "1"
    payload_off: "0"
    state_on: "1"
    state_off: "0"
    retain: false
    qos: 0
    icon: mdi:camera-control

# Camera motion control. Turn down
  - platform: mqtt
    unique_id: PTZ camera control down
    name: "Eufy camera ptz control down"
    command_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/titl_down/set"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/titl_down/set"
    payload_on: "1"
    payload_off: "0"
    state_on: "1"
    state_off: "0"
    retain: false
    qos: 0
    icon: mdi:camera-control


#############################################################################################################################
# Sensors
sensor:
# The quality of the video stream. Needed for work input_select.camera_hall_video_stream_quality
# 0 - Auto
# 1 - Low
# 2 - Medium
# 3 - High
  - platform: mqtt
    name: "Eufy camera video streaming quality"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/video_streaming_quality"
    icon: mdi:camera
    value_template: >-
      {% if value == '0' %} Auto
      {% elif value == '1' %} Low
      {% elif value == '2' %} Medium
      {% elif value == '3' %} High
      {% endif %}

# Recording quality
# 2 - Full HD
# 3 - 2K HD
  - platform: mqtt
    name: "Eufy camera video recording quality"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/video_recording_quality"
    icon: mdi:camera
    value_template: >-
      {% if value == '2' %} Full HD
      {% elif value == '3' %} 2K HD
      {% endif %}

Let’s create an automation that will change the quality of the video stream

# Camera in hall: Video stream quality
alias: 'Camera in hall: Video stream quality'
description: ''
trigger:
  - platform: state
    entity_id: sensor.eufy_camera_video_streaming_quality
    id: sensor video streaming quality
  - platform: state
    entity_id: input_select.camera_hall_video_stream_quality
    id: input select video stream quality
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: sensor video streaming quality
        sequence:
          - service: input_select.select_option
            target:
              entity_id: input_select.camera_hall_video_stream_quality
            data:
              option: '{{ states.sensor.eufy_camera_video_streaming_quality.state }}'
      - conditions:
          - condition: trigger
            id: input select video stream quality
        sequence:
          - service: mqtt.publish
            data:
              topic: >-
                iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/video_streaming_quality
              payload: >
                {% set camera_vsq = states.input_select.camera_hall_video_stream_quality.state %} 
                {% if camera_vsq == 'Auto' %} 0 
                {% elif camera_vsq == 'Low' %} 1 
                {% elif camera_vsq == 'Medium' %} 2
                {% elif camera_vsq == 'High' %} 3
                {% endif %}
              retain: false
    default: []
mode: single

Let’s create an automation that will change the recording resolution

# Camera in hall: Video recording resolution
alias: 'Camera in hall: Video recording resolution'
description: ''
trigger:
  - platform: state
    entity_id: sensor.eufy_camera_video_recording_quality
    id: sensor video recording quality
  - platform: state
    entity_id: input_select.camera_hall_video_recording_quality
    id: input select video recording quality
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: sensor video recording quality
        sequence:
          - service: input_select.select_option
            target:
              entity_id: input_select.camera_hall_video_recording_quality
            data:
              option: '{{ states.sensor.eufy_camera_video_recording_quality.state }}'
      - conditions:
          - condition: trigger
            id: input select video recording quality
        sequence:
          - service: mqtt.publish
            data:
              topic: >-
                iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/video_recording_quality
              payload: >
                {% set camera_vrq = states.input_select.camera_hall_video_recording_quality.state %}
                {% if camera_vrq == 'Full HD' %} 2
                {% elif camera_vrq == '2K HD' %} 3
                {% endif %}
              retain: false
    default: []
mode: single

Let’s create an automation that will change the volume level of the speaker

automation:
  - alias: 'Camera in hall: Volume level-sending'
    description: Sending the data
    trigger:
    - platform: state
      entity_id: input_number.camera_hall_speaker_volume
    condition: []
    action:
    - service: mqtt.publish
      data:
        topic: iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/speaker_volume/set
        payload: '{{ states.input_number.camera_hall_speaker_volume.state }}'
        qos: '0'
        retain: true
    mode: single

  - alias: 'Camera in hall: Volume level-receiving'
    description: Getting the data
    trigger:
    - platform: mqtt
      topic: iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/speaker_volume
    condition: []
    action:
    - service: input_number.set_value
      target:
        entity_id: input_number.camera_hall_speaker_volume
      data:
        value: '{{trigger.payload}}'
    mode: single

Let’s create a camera control panel in lovelace. To do this, you need to install the integration multiple entity row and fold entity row

type: entities
entities:
  - entity: script.start_face_detection
    name: Recognize a face
  - entity: sensor.persons_names
  - entity: image_processing.detect_face_eufy_camera
    name: Number of persons
  - entity: input_number.deepstack_confidence_face
    name: Confidence
  - type: custom:fold-entity-row
    head:
      type: section
      label: Camera Settings
    open: false
    entities:
      - entity: switch.eufy_camera_ptz_control_right
        type: custom:multiple-entity-row
        name: Camera control
        show_state: false
        toggle: false
        icon: mdi:camera
        entities:
          - entity: switch.eufy_camera_ptz_control_down
            name: Down
            tap_action:
              action: toggle
              show_state: false
            icon: mdi:camera-control
          - entity: switch.eufy_camera_ptz_control_left
            name: Left
            tap_action:
              action: toggle
              show_state: false
            icon: mdi:camera-control
          - entity: switch.eufy_camera_ptz_control_right
            name: Right
            tap_action:
              action: toggle
              show_state: false
            icon: mdi:camera-control
          - entity: switch.eufy_camera_ptz_control_up
            name: Up
            tap_action:
              action: toggle
              show_state: false
            icon: mdi:camera-control
      - entity: input_select.camera_hall_video_stream_quality
        type: custom:multiple-entity-row
        name: Resolution
        show_state: false
        entities:
          - entity: input_select.camera_hall_video_stream_quality
            name: Video Quality
          - entity: input_select.camera_hall_video_recording_quality
            name: Recording resolution
      - entity: input_boolean.otpravliat_snimki_v_telegram
        name: Send a snapshot
      - entity: switch.eufy_camera_device_enabled
        name: Camera
      - entity: switch.eufy_camera_rtsp_stream_enabled
        name: Stream RTSP
      - entity: switch.eufy_camera_speaker
        name: Speaker
      - entity: input_number.camera_hall_speaker_volume
        name: Volume
      - entity: switch.eufy_camera_led_status
        name: LED
      - entity: switch.eufy_camera_auto_nightvision
        name: Night vision
      - entity: switch.eufy_camera_motion_detection
        name: Motion detection
      - entity: switch.eufy_camera_sound_detection
        name: Sound detection
      - entity: switch.eufy_camera_pet_detection
        name: Pet detection
      - entity: script.reloading_the_corridor_camera
        name: Restart the camera
title: Camera


Текст на русском (Text in Russian)

Для ioBroker вышло новое обновление интеграции для eufy. Это обновление принесло множество новшеств. Появилась возможность управления камерой Eufy Indoor Cam 2K Pan & Tilt через PTZ, чего раньше не было. ioBroker у меня работает в качестве моста и он передает все данные в Home Assistant. Я вывел дополнительные сенсоры и управление камерой. Чтобы управлять камерой нужно в топик послать любое значение, но оно должно меняться, если будем все время указывать 1, то камера не повернется, поэтому нужно чередовать 1 или 0, тогда камера будет менять положение. Поэтому я создал выключатель MQTT и задействовал этот выключатель с помощью кнопки с опцией “переключатель”, таким образом нажимая на кнопку в топик мы отправляем 1 или 0, и камера начинает, при каждом нажатии, поворачивать в нужную нам сторону. Если у вас есть идеи как можно это реализовать лучше, я буду только рад и большая просьба выложить примеры как это можно реализовать.

Сделал дополнительную панель управления камерой, которая управляет движением камеры и выставляет качество видеопотока и записи
image

Создадим вспомогательный элемент текст "Камера в коридоре: Качество видеопотока"

input_select:
  camera_hall_video_stream_quality:
  name: 'Камера в коридоре: Качество видеопотока'
    options:
      - Auto
      - Low
      - Medium
      - High
  icon: mdi:camera

Создадим вспомогательный элемент текст "Камера в коридоре: Разрешение видеозаписи"

input_select:
  camera_hall_video_recording_quality:
  name: 'Камера в коридоре: Разрешение видеозаписи'
    options:
      - Full HD
      - 2K HD
  icon: mdi:camera

Создадим вспомогательный элемент число "Камера в коридоре: Громкость динамика"

input_number:
  camera_hall_speaker_volume:
  name: 'Камера в коридоре: Разрешение видеозаписи'
  min: 0
  max: 100
  step: 1
  mode: slider
  icon: mdi:camera

Создадим выключатели и сенсоры MQTT

Создаем любой файлик, например camera_eufy_mqtt.yaml и вставляем в него код, только нужно вместо TXXXXXXXXXXXXX подставить имя своей камеры. Это можно увидеть через MQTT Explorer

# Управление камерой Eufy Indoor Cam 2K Pan & Tilt
################################# Управление движением камеры ########################################
switch:
# Управление движением камеры. Поворот направо
  - platform: mqtt
    unique_id: PTZ camera control right
    name: "Eufy camera ptz control right"
    command_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/pan_right/set"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/pan_right/set"
    payload_on: "1"
    payload_off: "0"
    state_on: "1"
    state_off: "0"
    retain: false
    qos: 0
    icon: mdi:camera-control

# Управление движением камеры. Поворот налево
  - platform: mqtt
    unique_id: PTZ camera control left
    name: "Eufy camera ptz control left"
    command_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/pan_left/set"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/pan_left/set"
    payload_on: "1"
    payload_off: "0"
    state_on: "1"
    state_off: "0"
    retain: false
    qos: 0
    icon: mdi:camera-control


# Управление движением камеры. Поворот наверх
  - platform: mqtt
    unique_id: PTZ camera control up
    name: "Eufy camera ptz control up"
    command_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/tilt_up/set"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/tilt_up/set"
    payload_on: "1"
    payload_off: "0"
    state_on: "1"
    state_off: "0"
    retain: false
    qos: 0
    icon: mdi:camera-control

# Управление движением камеры. Поворот вниз
  - platform: mqtt
    unique_id: PTZ camera control down
    name: "Eufy camera ptz control down"
    command_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/titl_down/set"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/titl_down/set"
    payload_on: "1"
    payload_off: "0"
    state_on: "1"
    state_off: "0"
    retain: false
    qos: 0
    icon: mdi:camera-control

# Включить\выключить динамик
  - platform: mqtt
    unique_id: Speaker
    name: "Eufy camera speaker"
    command_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/speaker/set"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/speaker"
    payload_on: "true"
    payload_off: "false"
    state_on: "true"
    state_off: "false"
    retain: true
    qos: 0
    icon: mdi:account-voice

#############################################################################################################################
# Сенсоры
sensor:
# Качество видеопотока. Нужен для работы input_select.camera_hall_video_stream_quality
# 0 - Auto
# 1 - Low
# 2 - Medium
# 3 - High
  - platform: mqtt
    name: "Eufy camera video streaming quality"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/video_streaming_quality"
    icon: mdi:camera
    value_template: >-
      {% if value == '0' %} Auto
      {% elif value == '1' %} Low
      {% elif value == '2' %} Medium
      {% elif value == '3' %} High
      {% endif %}

# Качество записи
# 2 - Full HD
# 3 - 2K HD
  - platform: mqtt
    name: "Eufy camera video recording quality"
    state_topic: "iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/video_recording_quality"
    icon: mdi:camera
    value_template: >-
      {% if value == '2' %} Full HD
      {% elif value == '3' %} 2K HD
      {% endif %}

Создадим автоматизацию, которая будет менять качество видеопотока

# Камера в коридоре: Качество видеопотока
alias: 'Камера в коридоре: Качество видеопотока'
description: ''
trigger:
  - platform: state
    entity_id: sensor.eufy_camera_video_streaming_quality
    id: sensor video streaming quality
  - platform: state
    entity_id: input_select.camera_hall_video_stream_quality
    id: input select video stream quality
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: sensor video streaming quality
        sequence:
          - service: input_select.select_option
            target:
              entity_id: input_select.camera_hall_video_stream_quality
            data:
              option: '{{ states.sensor.eufy_camera_video_streaming_quality.state }}'
      - conditions:
          - condition: trigger
            id: input select video stream quality
        sequence:
          - service: mqtt.publish
            data:
              topic: >-
                iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/video_streaming_quality
              payload: >
                {% set camera_vsq = states.input_select.camera_hall_video_stream_quality.state %} 
                {% if camera_vsq == 'Auto' %} 0 
                {% elif camera_vsq == 'Low' %} 1 
                {% elif camera_vsq == 'Medium' %} 2
                {% elif camera_vsq == 'High' %} 3
                {% endif %}
              retain: false
    default: []
mode: single

Создадим автоматизацию, которая будет менять разрешение записи

# Камера в коридоре: Разрешение видеозаписи
alias: 'Камера в коридоре: Разрешение видеозаписи'
description: ''
trigger:
  - platform: state
    entity_id: sensor.eufy_camera_video_recording_quality
    id: sensor video recording quality
  - platform: state
    entity_id: input_select.camera_hall_video_recording_quality
    id: input select video recording quality
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: sensor video recording quality
        sequence:
          - service: input_select.select_option
            target:
              entity_id: input_select.camera_hall_video_recording_quality
            data:
              option: '{{ states.sensor.eufy_camera_video_recording_quality.state }}'
      - conditions:
          - condition: trigger
            id: input select video recording quality
        sequence:
          - service: mqtt.publish
            data:
              topic: >-
                iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/video_recording_quality
              payload: >
                {% set camera_vrq = states.input_select.camera_hall_video_recording_quality.state %}
                {% if camera_vrq == 'Full HD' %} 2
                {% elif camera_vrq == '2K HD' %} 3
                {% endif %}
              retain: false
    default: []
mode: single

Создадим автоматизацию, которая будет менять уровень громкости динамика

automation:
  - alias: 'Камера в коридоре: Уровень громкости - отправка'
    description: Отправляем данные
    trigger:
    - platform: state
      entity_id: input_number.camera_hall_speaker_volume
    condition: []
    action:
    - service: mqtt.publish
      data:
        topic: iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/speaker_volume/set
        payload: '{{ states.input_number.camera_hall_speaker_volume.state }}'
        qos: '0'
        retain: true
    mode: single

  - alias: 'Камера в коридоре: Уровень громкости - получение'
    description: Получаем данные
    trigger:
    - platform: mqtt
      topic: iobroker/eufy-security/0/TXXXXXXXXXXXXX/cameras/TXXXXXXXXXXXXX/speaker_volume
    condition: []
    action:
    - service: input_number.set_value
      target:
        entity_id: input_number.camera_hall_speaker_volume
      data:
        value: '{{trigger.payload}}'
    mode: single

Создадим в lovelace панель управления камерой. Для этого нужно установить интеграцию multiple entity row и fold entity row

type: entities
entities:
  - entity: script.start_face_detection
    name: Распознать лицо
  - entity: sensor.persons_names
  - entity: image_processing.detect_face_eufy_camera
    name: Количество  лиц
  - entity: input_number.deepstack_confidence_face
    name: Уверенность
  - type: custom:fold-entity-row
    head:
      type: section
      label: Настройки камеры
    open: false
    entities:
      - entity: switch.eufy_camera_ptz_control_right
        type: custom:multiple-entity-row
        name: Управление камерой
        show_state: false
        toggle: false
        icon: mdi:camera
        entities:
          - entity: switch.eufy_camera_ptz_control_down
            name: Вниз
            tap_action:
              action: toggle
              show_state: false
            icon: mdi:camera-control
          - entity: switch.eufy_camera_ptz_control_left
            name: Налево
            tap_action:
              action: toggle
              show_state: false
            icon: mdi:camera-control
          - entity: switch.eufy_camera_ptz_control_right
            name: Направо
            tap_action:
              action: toggle
              show_state: false
            icon: mdi:camera-control
          - entity: switch.eufy_camera_ptz_control_up
            name: Вверх
            tap_action:
              action: toggle
              show_state: false
            icon: mdi:camera-control
      - entity: input_select.camera_hall_video_stream_quality
        type: custom:multiple-entity-row
        name: Разрешение
        show_state: false
        entities:
          - entity: input_select.camera_hall_video_stream_quality
            name: Качество видео
          - entity: input_select.camera_hall_video_recording_quality
            name: Разрешение записи
      - entity: input_boolean.otpravliat_snimki_v_telegram
        name: Отправить снимок
      - entity: switch.eufy_camera_device_enabled
        name: Камера
      - entity: switch.eufy_camera_rtsp_stream_enabled
        name: Стрим RTSP
      - entity: switch.eufy_camera_speaker
        name: Динамик
      - entity: input_number.camera_hall_speaker_volume
        name: Громкость
      - entity: switch.eufy_camera_led_status
        name: LED индикатор
      - entity: switch.eufy_camera_auto_nightvision
        name: Ночное видение
      - entity: switch.eufy_camera_motion_detection
        name: Реагировать на движение
      - entity: switch.eufy_camera_sound_detection
        name: Реагировать на звук
      - entity: switch.eufy_camera_pet_detection
        name: Реагировать на животных
      - entity: script.reloading_the_corridor_camera
        name: Перезагрузить камеру
title: Камера


2 Likes

Thanks, I installed that add-on and now all is working as I wanted.

Thanks DivanX10

This is amazing and just what I really need - however seeing 1300 posts in this thread and it still requires setting up iobroker to communicate with HA is not good enough for me.

I have Eufy cams and they are great, I wish that they could be integrated much more easily than going through a 3rd party HA.

I did think about starting an IoBroker account but I love HA and would hopefully do this the HA way rather than iobroker.

Time will tell - again thanks DivanX10.

1 Like

Just so it’s clear; they’re not mutually exclusive. I use ioBroker in HA as an add on and then use rest calls for the sensors and cams. Works great. Also, this last update added support for my FloodlightCam 2k which I thought was impossible, but it’s working great - thanks @DivanX10 for the heads up!

Thanks Rpitera - Yes I agree that setting up an iobroker would work, probably.

I just don’t want to go through that rabbit hole of the learning curve of iobroker. I’ve spent so many hours (actually years!) trying to get HA working - and still learning.

To be fair I’d prefer a dedicated HA solution which I’m sure will come soon.

Thanks for your help.

1 Like

Totally understand! DM me if you do decide to though; I’ll gladly share what I’ve set up. For me, ioBroker seems to have the most options for control and a fast response time. I had trouble with MQTT and while the new two part (add on and custom component) approach works well, my 2k floodlight isn’t supported (at the moment anyway) so ioBroker is my preferred solution - but every home is different!

Hi all, i will be back from vacation next week so we can work on issues and improvements together.

Regarding 2k floodlight, i will update add on to include latest updates so it will become supported. :crossed_fingers:

7 Likes

I’m trying to make an automation to auto stop the streaming after 2 minutes 50 seconds
However, i need the state change then
BUT
I cant use the state from idle cause of the % in it, to Streaming - rtsp

How did you guys made this automation (service call?)

This is how it looks now, but is not complete

- id: 'Stopping tuin camera'
  alias: Stop streaming camera tuin
  description: ''
  trigger:
  - platform: state
    entity_id: camera.tuin
    from: "idle"
    to: "Streaming - rtsp"
    for:
      minutes: 2
      seconds: 50
  condition: []
  action:
  - data:
      entity_id: camera.tuin
    service: eufy_security.stop_rtsp
  

for the automation to work, you don’t need to specify the from: in the trigger. Just the to: will do. Have you tried that?

1 Like

No, will change and see, thanks !
Edit: it works thx

Still curious here to see people’s automations based on eufy stuff

@anon63427907, th delay between idle and actually playing the stream is quite long here
Not sure why
If i click it immediately says its streaming but then i have to wait very long
However if i click when its idle, it says its streaming, i click it away to see the card again, then it is actually streaming after 6-7 seconds which is quite fast.
Why doesnt he do that immediately?

There are lots of things happening under the hood about streaming by home assistant. i am handing over a RTSP url to home assistant’s stream integration, it tries 10 times with 1-2 seconds intervals. On first example;

  • you click on image and integration asks for p2p streaming (i remember yours was battery doorbell)
  • bytes of video are coming to home assistant over eufy add on
  • incoming bytes are sent to ffmpeg
  • ffmpeg uses first 2-3 seconds of incoming data to find bit rate, video size, codec and after this, it creates real stream to rtsp add on
  • rtsp add on creates a new stream channel for camera but requires 1 second to build the data
  • now, all is set, it is streamable
  • home assistant stream integration tries to start the stream while all the things below are happening and it times out until it reaches previous step
  • when you cancel the popup and try again, stream integration starts trying from scratch, but it is faster now because most of the things are finished.
  • sometimes, stream integration gives up trying if waits too much, which you do not see any stream at all.

So, i have couple of things in my mind to speed up the process, but i have 3 integrations in my bucket to take care of, it is a matter of time.

5 Likes

Patiently waiting and thankful for your hard work.

1 Like

so, what is your experience, how long latency you are experiencing? 5-6 seconds?

Oh, I’m not really having any major issues. I just thought your explanation was revelatory and was interested in seeing what you come up with. Sorry if there was confusion! :slight_smile:

Cool! Looking forward too.
Thx again for you work.
If you question about latency was for me…
Waiting 1 mintue 40 seconds and nothings happens
Unless i reclick

Seeing errors too

  • Timeout getting stream source
    • The camera entity camera.deurbel does not support requesting width and height, please open an issue with the integration author (less urgent i think)

i have a button in my frontend to call start live stream over p2p, i am clicking it first and after 2-3 seconds, clicking on camera view. Not optimal and joyful but it is working.

Mmmm my doorbell isnt working anymore, i cant get the stream open anymore.
Its indeed not ideal to start it with a button and then clicking on the camera view

Anyway, is it an idea to bump the ws to latest version maybe theres improvement there too