Eufy Security Integration

I am working on Media Browser integration to list historical events of cameras, similar to Events page inside app

3 Likes

Looks like Eufy are pushing out a new app update that includes bug fixes and optimisations for S330/S300ā€¦ but more interestingly ā€œadded web protal control switch and live stream authentication.ā€ā€¦ and yes web protal is their typo not mine, ha

All is working again for me after the update, however It doesnā€™t show up the last detection of the doorbell or camera. The devices are working but the video is showing up as inactive. streams also not available again, the rstp addon is installed as well and runningā€¦

All working well but have to assume Iā€™m missing something simple here.

In the setup info is mentions images snapshots being saved and show this in a screenshot

image

I havea simialr locaito0n exposed

mine shows as

T8441P11213209D0~/media/mmcblk0p1/Camera00/20230110210244n.jpg

So I am wondering where this picture is stored and how I can locate it so I can push it whenever it is needed. My assumption is that it is the snapshot created by the appā€¦but I cant for the life of me work out how to access it.

Perhaps good to browse this threadā€¦ Ca. 50% of recent posts is about missing thumbs.

You can trigger 1 yourself by invoking a stream upon motion or doorbell press and taking a snapshot (detailed explanation is further downstream) or rely on the camera still which @anon63427907 built in. This is generated when streaming - not 100% right (think limited to streaming with the p2p protocol).

Good luck!

2 Likes

thanks for the replyā€¦I have read most of this post over the past year or so but scanned back through and couldnā€™t find anything at the time of posting

But |I assume that means that the location I referred to is a bit of a red herring

i capture impactful issues on the first post

1 Like

Here it is

1 Like

yeah, just found that myselfā€¦ didnā€™t realise so much was updated in the first postā€¦good to know for future referenceā€¦thanks

sorry for what might be a late reply, but i fixed this on my internal cameras by turning RTSP security to disabledā€¦worked fine after thatā€¦but I couldnt get it working with security onā€¦as they are only on my internal network I was happy with that for now

So Iā€™ve now read through all the linked posts and a big chunk moreā€¦apologies for missing these before

Would just like to report that I have fully upgraded the add-on and integration and can confirm that other than the thumbnail image that is affecting all of us, everything else is working very well indeed

I had a small amount of tweaking to do on some of my existing automationā€¦but within just a few minutes there were all good again.

In truth, my devices, 3 2K Pro Cameras with a Homebase 2, 2K battery doorbell, 3 x 2K C24 outdoor ball cameras and a multitude of indoor wifi camerasā€¦all have been working well for some time now even prior to the update. In truth I really only use the wired cameras for live permannent feeds (via RTSP) and other than the recent RTSP security changeā€¦ theyā€™ve been working wellā€¦

Need to test my ā€œ2K floodlight as external alarm sirenā€ automation again and when I can confirm it is working as expected I will post up some details in case it is of help to anyone.

I actually have a second 2K Floodlight to installā€¦(they were so cheap it made sense to add another siren) so i will get it all tested further when that it is installed in the next weeks/month

Otherwiseā€¦everything (for me) is working brilliantly and I would like to say thanks to @anon63427907 @bropat and everyone else who has given time to assist with ongoing issues and troubleshooting

Still love my Eufy system overallā€¦and the alarm and cameras are working very well for me and the dashboards and automations I have set up make the most of what is a good system and in my opinion, make it one of if not THE best system nowā€¦

Clearly, the cloud stuff has annoyed a lot of peopleā€¦but I understand how and why it was doneā€¦ itā€™s just a case of not being handled well by Eufy themselves

Now I just want to see when Eufy release the Garage Door opener/camera to the UK and whether it will be worth upgrading to the Homebase 3 and all the promises of adding more if not all of my cameras to the Homebase for more native controlā€¦but I look forward to using them within home assistant with this great integration/add-on (as and when they are implemented) for a very long time to comeā€¦

UPDATE

Just noticed one other sensor change that I hadnt noticedā€¦the binary sensor for the doorbell (binary_sensor.door_ringing)

The state has now changed to on/off rather than whatever it was before (didnā€™t remember what I changed it from). Either way, just changed it and it is working now tooā€¦actually i think it was a status of ā€˜runningā€™

Thanks for detailed write up, happy to see that it is working

1 Like

hi all, i updated my Eufy Security integration a couple of weeks ago. Everything was working pretty well for me before the eufy security changes.

The initial problem that i had was new and duplicate entities were created causing me issues with the dashboard but i updated all dashboard and automations to point to the new entities. I have 2 main issues remaining other than the thumbnail problem which is well discussed here and i will wait paitently for.

1 i canā€™t get a stream from my t2810 doorbell. i should be using p2p and all is working well with my solocam so there donā€™t seem to be any fundamental issues. iā€™ve lowered the quality settings as suggested but no change. i see the following in the logs of the rtsp add on. does it give any indication?


2 iā€™m not really sure what to do in terms of my dashboard. i just used the standard camera integration before and it worked fine. i could get the last thumbnail and i think a stream on click. regardless it seems you need to start the p2p stream maunally before you can view the stream, how would i do that? is it now strongly recommended to use the webrtc integration i see mentioned?

cheers all and thanks for the work @anon63427907 it is appreciated

Hi @anon63427907. Sorry if I missed it somewhere in this long thread. How exactly does the ā€œLast Camera Picture URLā€ work? Iā€™m building a security system where this could be useful in some scenarios, but I canā€™t really find any documentation for it.

image

Before eufy encrypted their images, it was giving the cloud URL of latest motion event. Now, it is either pointing to home base local storage or cloud url consisting encrypted image. As of now, it is an indication that latest captured image is changed, without accessing the image :slight_smile: @bropat is working on decryption of it.

3 Likes

@spaceboy - Same issue with my T8210. Canā€™t seem to get P2P stream running. When I call the service - it fails because it is already running, but it is notā€¦ seems to be stuck in PREPARING. Did you resolve your issue ? If so - how ? (PS - just noticed my video queue size seems to continuously cycling from 1 through to 8 round and round)ā€¦

I have had the same issue, and only thing I can do to make it work is to stop and start the cameras again. Sometimes they ā€œpretendā€ to be streaming, but when stopping it claims that it was never steaming in the first place even when the state says so.

Iā€™ve made a script for (re)starting the cameras based on different conditions. Itā€™s not the prettiest code, but its a workaround and from my part it seems to be working. You can try it yourself:

alias: Restart Eufy Camera Stream
fields:
  camera_selected:
    name: The camera to start streaming
    description: >-
      Will perform any required actions to start streaming from a Eufy Camera
      using P2P. Will use streaming status and buffer size to determine what to
      do.
    required: true
    selector:
      device:
        integration: eufy_security
variables:
  camera_entities: |
    {{ device_entities(camera_selected) }}
  camera_entity_id: |
    {{ camera_entities | select('match',
        '^camera.*') | first }}
  camera_video_queue_size_entity_id: |
    {{ camera_entities | select('search',
        'video_queue_size') | first }}
  camera_stream_status_entity_id: |
    {{ camera_entities | select('search',
        'stream_status') | first }}
sequence:
  - choose:
      - conditions:
          - condition: template
            value_template: >
              {{ states(camera_stream_status_entity_id) ==
              'StreamStatus.PREPARING' }}
            alias: Check if camera is stuck in preparing
            enabled: true
          - condition: template
            value_template: "{{ states(camera_video_queue_size_entity_id) | int(200) > 150 }}"
            alias: Check if video queue size is above 150
        sequence:
          - service: eufy_security.stop_p2p_livestream
            data: {}
            target:
              entity_id: |
                {{ camera_entity_id }}
          - delay:
              hours: 0
              minutes: 0
              seconds: 0
              milliseconds: 500
          - service: eufy_security.start_p2p_livestream
            data: {}
            target:
              entity_id: |
                {{ camera_entity_id }}
      - conditions:
          - condition: template
            value_template: >-
              {{ states(camera_stream_status_entity_id) ==
              'StreamStatus.STREAMING' }}
            alias: Check that camera is streaming
          - condition: template
            value_template: >-
              {% set entity_name = camera_video_queue_size_entity_id
              |regex_replace(find='sensor.', replace='', ignorecase=True) %}

              {% set last_updated = states.sensor[entity_name].last_updated  %}

              {{ now() - last_updated < timedelta(seconds=5) }}
            alias: >-
              Check that the queue size is still updating (means that there is
              activity)
        sequence:
          - service: eufy_security.stop_p2p_livestream
            data: {}
            target:
              entity_id: |
                {{ camera_entity_id }}
          - delay:
              hours: 0
              minutes: 0
              seconds: 0
              milliseconds: 500
          - service: eufy_security.start_p2p_livestream
            data: {}
            target:
              entity_id: |
                {{ camera_entity_id }}
      - conditions:
          - condition: template
            value_template: >-
              {{ states(camera_stream_status_entity_id) ==
              'StreamStatus.STREAMING' }}
            alias: Check that camera pretends to be streaming
          - condition: template
            value_template: >-
              {% set entity_name = camera_video_queue_size_entity_id
              |regex_replace(find='sensor.', replace='', ignorecase=True) %}

              {% set last_updated = states.sensor[entity_name].last_updated  %}

              {{ now() - last_updated > timedelta(seconds=5) }}
            alias: Check that the video queue size has not changed for 5 seconds
        sequence:
          - service: eufy_security.start_p2p_livestream
            data: {}
            target:
              entity_id: |
                {{ camera_entity_id }}
          - delay:
              hours: 0
              minutes: 0
              seconds: 0
              milliseconds: 300
          - if:
              - condition: template
                value_template: "{{ states(camera_entity_id) == 'idle' }}"
                alias: >-
                  Check if the camera went back to idle after starting P2P (Can
                  happen sometimes)
            then:
              - delay:
                  hours: 0
                  minutes: 0
                  seconds: 0
                  milliseconds: 700
              - service: eufy_security.start_p2p_livestream
                data: {}
                target:
                  entity_id: |
                    {{ camera_entity_id }}
      - conditions:
          - condition: template
            value_template: >-
              {{ states(camera_stream_status_entity_id) == 'StreamStatus.IDLE'
              }}
            alias: "Check that camera is idle "
        sequence:
          - service: eufy_security.start_p2p_livestream
            data: {}
            target:
              entity_id: |
                {{ camera_entity_id }}
mode: queued
icon: mdi:cctv
max: 5

1 Like

Hi all,

Iā€™m pretty new to Home Assistant, but I was able to follow the directions, got the HAC integration as well as eufy security and webrtc up and running. Everything looks like itā€™s running correctly with my four Eufy 2c cams. Problem is, there is just a blank card on my dashboard, and when I click it, it just opens a blank page instead of the camera.

Do I need to enable RTSP streaming on each camera? Even though I donā€™t have a NAS or an NVR, would this option work? Maybe Iā€™m missing something simple, but all I want to be able to do is pull my cameras up inside the HA app just like I can inside the Eufy app.

Noticed the same since the update from 6.1. manually stopping once solves the issue in my case so easiest is a ā€œstop streamā€ triggered by ha restart- will roll back tonight, check logs and suggest to file an issue on GitHub.

Yes, rtsp is best in this case. Webrtc will pick up the stream.