Eufy Security Integration

how can i activate the debug log?
and where can i find the log?

i get a little progress now i have a camera entity and much more but the picture is still not there

you should start streaming first to see the image or video. check readme/camera services section

yeah correct, i use

service: camera.turn_on
data: {}
target:
  entity_id: camera.kinderzimmer

and than click on a card with this

- type: custom:webrtc-camera
          entity: camera.kinderzimmer
          ui: true

the error i get is “cant get URL for camera.kinderzimmer”

and sometimes "“rtsp client authorized”

Streaming either way is always going to be a resource hog although rtsp is desired for the obvious reason.

Having a option to idle the stream and turn it on is the best of both worlds.

Noticed the camera greyed out in the enabled section.

Is the eufy security adon running?

Release v5.2.5 ¡ fuatakgun/eufy_security ¡ GitHub is released.

more than 30 installations on 5.x.x versions, thanks

source: https://analytics.home-assistant.io/custom_integrations.json
In total, there are around 1800 installation of this integration and these numbers are gathered only from users who enabled analytics.

2 Likes

Working without issue and the only thing i noticed that broken is the streaming status doesn’t change all the time when the stream is stopped.
As bugs go that’s as minor as it gets

The new features are going to need a little explain for some and you gone and made a much more robust upgrade over the old one :+1:

I would suspect the 30 installations number to start jumping really fast :bowing_man:

1 Like

Is there a way to get my doorbell to stream to a Nest Hub on press? I have one in my office so it would be great if it could act as a sort of intercom without having to get my phone out.

I’ve tried various different ways including the below but nothing happens.

For context, everything is working as expected for normal streaming if I set up a card, so I don’t think the actual integration is the issue, just my understanding of implementation for this particular set up. The doorbell is set to “Smart display first” as I thought this might be necessary as well

alias: Doorbell to Nest
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.xxx_doorbell_ringing_sensor
    to: "True"
condition: []
action:
  - service: eufy_security.start_rtsp_livestream
    data: {}
    target:
      device_id: 58e757512bca9a43a32a40b36f822b1a
  - delay:
      hours: 0
      minutes: 0
      seconds: 20
      milliseconds: 0
  - service: eufy_security.stop_rtsp_livestream
    data: {}
    target:
      device_id: 58e757512bca9a43a32a40b36f822b1a
mode: single

I also installed the RTSP Simple Server Add-on and when HA is started I first need to stream to get a camera thumbnail image every time I want to view the thumbnail it is slow to lead and now it always says streaming. Before it would show the thumbnail of the last image Eufy has, just like in the app and it would show that instantaneously before. Now that part is not working at all. I’m also wondering if this will now drain the battery as it needs to start streaming first before you see an image.
image

Yes of course it will drain the battery if you keep streaming alive forever. Just turn it on for a couple of seconds and turn it off afterwards. Moreover eufy had encrypted thumbnails so as of now this is the only way, if you want to have thumbnails.

1- be sure to use correct service. If your doorbell doesn’t support rtsp natively, you should call p2p service.
2- there should be a service called camera.play_stream to mirror the stream into cast devices

@anon63427907 how do I enable analytics for you? I got a T8200 and noticed that the motion sensor is not working. The ringing sensor is working correctly. Is this expected behavior for this model?

Thanks @anon63427907 using that camera.play_stream service has done the trick. I have added a 30 second delay then called the eufy_security.stop_p2p_livestream to get around the constant Stream Queue Size that @Jeroen_Schwankhuizen pointed out above and I was also having as I couldn’t find any other way to stop it. I was hoping it would stop itself after a few minutes but it doesn’t seem to be. Is there a better approach to this?

alias: Doorbell to Nest
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.xxx_doorbell_ringing_sensor
    to: "True"
condition: []
action:
  - service: camera.play_stream
    data:
      media_player: media_player.family_room_hub
    target:
      device_id: c93323xxxxxxxfbfd7c0
  - delay:
      hours: 0
      minutes: 0
      seconds: 30
      milliseconds: 0
  - service: eufy_security.stop_p2p_livestream
    data: {}
    target:
      device_id: c93323xxxxxxxfbfd7c0
mode: single

Example of image capturing, snoozing and alarming the camera. Replace camera entity name and mobile app name according to yours.

alias: Capture Image on Trigger, Send Mobile Notification with Actions, Snooze or Alarm via Actions
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.entrance_motion_detected
      - binary_sensor.entrance_person_detected
    to: "on"
    id: sensor
  - platform: event
    event_type: mobile_app_notification_action
    id: snooze
    event_data:
      action: SNOOZE
  - platform: event
    event_type: mobile_app_notification_action
    id: alarm
    event_data:
      action: ALARM
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: sensor
        sequence:
          - service: eufy_security.start_p2p_livestream
            data: {}
            target:
              entity_id: camera.entrance
          - service: eufy_security.stop_p2p_livestream
            data: {}
            target:
              entity_id: camera.entrance
          - service: notify.mobile_app_fuatx3pro
            data:
              message: Motion detected
              data:
                image: /api/camera_proxy/camera.entrance
                actions:
                  - action: ALARM
                    title: Alarm
                  - action: SNOOZE
                    title: Snooze
      - conditions:
          - condition: trigger
            id: snooze
        sequence:
          - service: eufy_security.snooze
            data:
              snooze_time: 10
              snooze_chime: false
              snooze_motion: true
              snooze_homebase: false
            target:
              entity_id: camera.entrance
      - conditions:
          - condition: trigger
            id: alarm
        sequence:
          - service: eufy_security.trigger_camera_alarm_with_duration
            data:
              duration: 1
            target:
              entity_id: camera.entrance
mode: single
1 Like

Soon, I will merge Alpha branch into Master, so it will become main version, so take your time and give it a try.

README is updated for alpha release

2 Likes

I deleted the integration and reinstalled it, solved it.

2 Likes

okay i get it to work i set the rtsp security to off in the app.

but now i have a question for the ptz control.

now i have buttons for each direction, the call unter services works well with this for example

service: eufy_security.ptz_down
data: 
  entity_id: camera.keller

is it possible to use this with the ptz overlay?

in the past i use this

ptz:
            opacity: 0.6
            service: eufy_security.send_message
            data_left:
              message: |-
                {
                "messageId": "cmd Pan And Tilt Down", 
                "command": "device.pan_and_tilt",
                "serialNumber": "T8410P3121431696",
                "direction": 1
                }
            data_right:
              message: |-
                {
                "messageId": "cmd Pan And Tilt Down", 
                "command": "device.pan_and_tilt",
                "serialNumber": "T8410P3121431696",
                "direction": 2
                }
            data_up:
              message: |-
                {
                "messageId": "cmd Pan And Tilt Down", 
                "command": "device.pan_and_tilt",
                "serialNumber": "T8410P3121431696",
                "direction": 3
                }
            data_down:
              message: |-
                {
                "messageId": "cmd Pan And Tilt Down", 
                "command": "device.pan_and_tilt",
                "serialNumber": "T8410P3121431696",
                "direction": 4
                }  

is the old methode not working anymore?

1 Like

Old method should work.

Where do you have this ptz overlay functionality?

You can get serial number on Debug sensor attributes.

Ok, just understood your question, i will publish a new service tomorrow to create one unified ptz service call eufy_security.ptz(up/down/right/left/360).

1 Like

in the custom:webrtc-camera card, but when i usw services under developer, the command doesnt work, the camera dont move, i think the command is wrong?

- type: custom:webrtc-camera
          entity: camera.keller
          ui: true
          ptz:
            opacity: 0.6
            service: eufy_security.send_message
            data_left:
              message: |-
                {
                "messageId": "cmd Pan And Tilt Down", 
                "command": "device.pan_and_tilt",
                "serialNumber": "T8410P3121431696",
                "direction": 1
                }
            data_right:
              message: |-
                {
                "messageId": "cmd Pan And Tilt Down", 
                "command": "device.pan_and_tilt",
                "serialNumber": "T8410P3121431696",
                "direction": 2
                }
            data_up:
              message: |-
                {
                "messageId": "cmd Pan And Tilt Down", 
                "command": "device.pan_and_tilt",
                "serialNumber": "T8410P3121431696",
                "direction": 3
                }
            data_down:
              message: |-
                {
                "messageId": "cmd Pan And Tilt Down", 
                "command": "device.pan_and_tilt",
                "serialNumber": "T8410P3121431696",
                "direction": 4
                }