Eufy Security Integration

So is it just me or my eufy 2c’s the rstp stream won’t be active unless motion is detected. Is this normal? Is there a way around it?

They are battery operated of course they won’t get activated unless;

  • motion is detected
  • you call start_rtsp_livestream service

Right, I have them hardwired with USB power, just trying to figure out how to be able to make the cameras operate as they do inside the Eufy app.

I’m having the same problem. My doorbell camera is set to high encoding format. In the RSTP addon logs it shows this:

2023/01/16 21:28:37 I [0/0] [RTSP] [conn x.x.x.x:47834] ERR: source of path 'T8210P6421502310' has timed out
2023/01/16 21:28:37 I [0/0] [RTSP] [conn x.x.x.x:47834] closed

Is here someone who managed to use Frigate with the Eufycams?
I am constantly running in errors:

I’ve been kind of following along on github but the depth of detail there is a bit beyond me. Is it looking possible to recover thumbnail images directly from Eufy or is that behind an encryption wall?

For the time being I have this working by automation to start / update / stop the video streams but it’s not ideal as this takes a few moments to work and more often than not the subject has walked through the camera and I get an empty thumbnail + notification.

I also assume that unnecessary streams on my doorbell will drain the battery more than the thumbnail approach.

Very grateful for all the impressive work that is happening here. Including motion detection working on my floodlight cam, which didn’t work prior to the 6.x versions.

Hi, has something changed with the integration, the binary_sensor streaming sensor doesnt seem to exist anymore. What can be watched to control the conditional cards now? I tried streaming state but this isnt reliable, it seems to change to preparing but barely changes to streaming and deoesnt change back - very unreliable.

There have been a lot of great updates to the integration. Assuming you still have everything installed, you can try the new yaml code posted on the github page. This is working great for me.


square: true
columns: 1
type: grid
cards:
  - type: conditional
    conditions:
      - entity: camera.my_driveway
        state: idle
    card:
      show_state: true
      show_name: true
      type: picture-entity
      entity: camera.my_driveway
      camera_image: camera.my_driveway
      tap_action:
        action: call-service
        service: camera.turn_on
        data: {}
        target:
          entity_id: camera.my_driveway
  - type: conditional
    conditions:
      - entity: camera.my_driveway
        state: streaming
    card:
      type: vertical-stack
      cards:
        - show_name: true
          show_icon: false
          type: button
          tap_action:
            action: call-service
            service: camera.turn_off
            data: {}
            target:
              entity_id: camera.my_driveway
          entity: camera.my_driveway
          name: Stop
        - type: custom:webrtc-camera
          entity: camera.my_driveway

2 Likes

7- If you have installed RTSP Simple Server Add-On, please put its IP Address and Port into Integration Configuration page.

HI, how i add the config don’t work for me… Thanks. I use the Eufy Video Doorbell Battery Slim
And my camera don’t change the picture as snapshot how can i fix that

I mainly use Home Assistant for importing non-Homekit devices into Homekit.
I have two EufyCams 2C natively in Homekit via HomeBase and I purchased the 2K Eufy wireless doorbell - 8210, thinking that I’ll be able to use it in Homekit through this awesome integration.
I now have it in Homekit but I’m unable to make it start streaming unless I turn on the streaming in Home Assistant prior accessing it in the Home App.
In the RTSP Simple Server Add-on Log I could see the attempt for the RunOnDemand command when I access the doorbell in Home App but I get a not responding error instead of video as the doorbell is not continuously streaming:


Has anyone been able to make an automation so when the RTSP Simple Server Add-on starts a RunOnDemand command to automatically trigger the doorbell P2P streaming?

I would really appreciate if someone can help me please? Even when my floodcam was at idle, snapshot of last motion detected used to be displayed in the card until recently but now it doesn’t for some reason. Then I start streaming, but that too stops after few minutes and the card stops working. And if I want to start streaming again, I need to restart HA.

I get this from RTSP add-on

Someone earlier mentioned the issue could be to do with h265 and I think that might be right. If I start streaming and open RTSP in VLC player it does open however doesn’t actually show the live stream. For some reason it shows a still image with a timestamp from the time it was opened in VLC. If I try and open the stream via the HA app on my IOS device it doesn’t play at all.

I’m having issues with h265. Tried everything. Lowering the quality on a homebase 3 still streams in h265. I’m at a loss what to do.

Hey All,

Having an issue with Eufy integration.

it’s not validating the captcha.

System Info:
Raspberry Pi4 4GB
OS: Rasbian 64bit
Home Assistant Docker 2023.1.7
HACS 1.30.0
Eufy Security v6.2.0
eufy-security-ws-1(docker Container) 2.4.0

This error originated from a custom integration.

Logger: aiohttp.server
Source: custom_components/eufy_security/config_flow.py:148
Integration: Eufy Security (documentation, issues)
First occurred: January 24, 2023 at 6:57:14 PM (2 occurrences)
Last logged: 8:14:56 AM

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request
    resp = await request_handler(request)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 227, in forwarded_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 81, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 136, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 171, in get
    return await super().get(request, flow_id)
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 96, in get
    result = await self._flow_mgr.async_configure(flow_id)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 286, in async_configure
    result = await self._async_handle_step(
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 374, in _async_handle_step
    result: FlowResult = await getattr(flow, method)(user_input)
  File "/config/custom_components/eufy_security/config_flow.py", line 148, in async_step_reauth_confirm
    "captcha_img": '<img id="eufy_security_captcha" src="' + coordinator.config.captcha_img + '"/>'
TypeError: can only concatenate str (not "NoneType") to str

This error originated from a custom integration.

Logger: aiohttp.server
Source: custom_components/eufy_security/eufy_security_api/api_client.py:94
Integration: Eufy Security (documentation, issues)
First occurred: 8:16:09 AM (1 occurrences)
Last logged: 8:16:09 AM

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/asyncio/tasks.py", line 456, in wait_for
    return fut.result()
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/config/custom_components/eufy_security/eufy_security_api/api_client.py", line 88, in _check_interactive_mode
    await asyncio.wait_for(self._mfa_future, timeout=5)
  File "/usr/local/lib/python3.10/asyncio/tasks.py", line 458, in wait_for
    raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request
    resp = await request_handler(request)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 227, in forwarded_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 81, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 136, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 180, in post
    return await super().post(request, flow_id)
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 73, in wrapper
    result = await method(view, request, data, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 110, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 286, in async_configure
    result = await self._async_handle_step(
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 374, in _async_handle_step
    result: FlowResult = await getattr(flow, method)(user_input)
  File "/config/custom_components/eufy_security/config_flow.py", line 151, in async_step_reauth_confirm
    return await self.async_step_user(user_input)
  File "/config/custom_components/eufy_security/config_flow.py", line 80, in async_step_user
    await coordinator.set_captcha_and_connect(captcha_id, captcha_input)
  File "/config/custom_components/eufy_security/coordinator.py", line 73, in set_captcha_and_connect
    await self._api.set_captcha_and_connect(captcha_id, captcha_input)
  File "/config/custom_components/eufy_security/eufy_security_api/api_client.py", line 135, in set_captcha_and_connect
    await self._set_products()
  File "/config/custom_components/eufy_security/eufy_security_api/api_client.py", line 102, in _set_products
    await self._check_interactive_mode()
  File "/config/custom_components/eufy_security/eufy_security_api/api_client.py", line 94, in _check_interactive_mode
    raise DriverNotConnectedError() from exc
custom_components.eufy_security.eufy_security_api.exceptions.DriverNotConnectedError

Log from Portainer

• cipher:176 update
    node:internal/crypto/cipher:176:11
• utils.ts:175 decryptAPIData
    node_modules/eufy-security-client/src/http/utils.ts:175:16
• api.ts:1027 decryptAPIData
    node_modules/eufy-security-client/src/http/api.ts:1027:43
• api.ts:528 getDeviceList
    node_modules/eufy-security-client/src/http/api.ts:528:49
• task_queues:96 processTicksAndRejections
    node:internal/process/task_queues:96:5
• api.ts:574 refreshDeviceData
    node_modules/eufy-security-client/src/http/api.ts:574:25
• api.ts:596 refreshAllData
    node_modules/eufy-security-client/src/http/api.ts:596:9
• eufysecurity.ts:619 refreshCloudData
    node_modules/eufy-security-client/src/eufysecurity.ts:619:9
2023-01-25 22:44:22.373  ERROR Tried to re-authenticate to Eufy cloud, but failed in the process. Manual intervention is required! 
2023-01-25 22:44:22.375  INFO  No devices found. 
2023-01-25 22:44:30.862  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:44:36.073  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 17753 
2023-01-25 22:45:39.593  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:45:44.808  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 26819 
2023-01-25 22:46:48.342  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:46:53.565  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 29801 
2023-01-25 22:47:57.087  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:48:02.359  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 22812 
2023-01-25 22:49:05.837  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:49:11.057  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 27922 
2023-01-25 22:50:14.577  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:50:19.790  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 22880 
2023-01-25 22:51:23.333  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:51:28.602  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 16942 
2023-01-25 22:52:32.089  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:52:37.300  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 17651 
2023-01-25 22:53:40.849  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:53:46.071  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 21262 
2023-01-25 22:54:24.931  ERROR Status return code 401, invalidate token 
{
  status: 401,
  statusText: 'Unauthorized'
}
2023-01-25 22:54:24.942  ERROR Tried to re-authenticate to Eufy cloud, but failed in the process. Manual intervention is required! 
2023-01-25 22:54:24.948  ERROR Generic Error: 
 HTTPError  Response code 401 (Unauthorized)
details:
{
  code: 'ERR_NON_2XX_3XX_RESPONSE',
  timings: {
    start: 1674687262386,
    socket: 1674687262387,
    lookup: 1674687262397,
    connect: 1674687262651,
    secureConnect: 1674687263176,
    upload: 1674687263177,
    response: 1674687263432,
    end: 1674687263433,
    error: undefined,
    abort: 1674687264927,
    phases: {
      wait: 1,
      dns: 10,
      tcp: 254,
      tls: 525,
      request: 1,
      firstByte: 255,
      download: 1,
      total: 2541
    }
  }

m
error stack:
• index.js:118 <anonymous>
    node_modules/got/dist/source/as-promise/index.js:118:42
• task_queues:96 processTicksAndRejections
    node:internal/process/task_queues:96:5
2023-01-25 22:54:24.954  INFO  No houses found. 
2023-01-25 22:54:24.955  INFO  No stations found. 
2023-01-25 22:54:24.957  INFO  No devices found. 
2023-01-25 22:54:49.602  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:54:54.813  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 26873 
2023-01-25 22:55:58.338  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:56:03.557  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 20017 
2023-01-25 22:57:07.079  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:57:12.500  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 28222 
2023-01-25 22:58:15.983  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:58:21.199  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 15368 
2023-01-25 22:59:24.775  INFO  Disconnected from station T8010N132138111D 
2023-01-25 22:59:30.002  INFO  Connected to station T8010N132138111D on host 192.168.1.45 and port 14321 

Hey! Did you ever get to the bottom of the EAI_AGAIN error?

I’m getting the below while trying to set this up in Docker on my Pi:

docker run -it -e USERNAME=XX -e PASSWORD=XX -e COUNTRY=xx -e TRUSTED_DEVICE_NAME=XX -p 3000:3000/tcp bropat/eufy-security-ws:1.3.0

Unable to start driver RequestError: getaddrinfo EAI_AGAIN extend.eufylife.com
    at ClientRequest.<anonymous> (/usr/src/app/node_modules/got/dist/source/core/index.js:970:111)
    at Object.onceWrapper (node:events:628:26)
    at ClientRequest.emit (node:events:525:35)
    at ClientRequest.origin.emit (/usr/src/app/node_modules/@szmarczak/http-timer/dist/source/index.js:43:20)
    at TLSSocket.socketErrorListener (node:_http_client:494:9)
    at TLSSocket.emit (node:events:513:28)
    at emitErrorNT (node:internal/streams/destroy:157:8)
    at emitErrorCloseNT (node:internal/streams/destroy:122:3)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:109:26) {
  code: 'EAI_AGAIN',
  timings: {
    start: 1674843294678,
    socket: 1674843294682,
    lookup: 1674843299683,
    connect: undefined,
    secureConnect: undefined,
    upload: undefined,
    response: undefined,
    end: undefined,
    error: 1674843299685,
    abort: undefined,
    phases: {
      wait: 4,
      dns: 5001,
      tcp: undefined,
      tls: undefined,
      request: undefined,
      firstByte: undefined,
      download: undefined,
      total: 5007
    }
  }
}
1 Like

New here and new to Home Assistant… but I think I’m getting the hang of it (been doing home automation since X10 days).

Ok, so I have the Eufy Security Integration up and running and just about everything appears to be working as it should. The one thing I’m having problems with is my T8900 contact sensor. I can’t get the system to recognize open/close events. Every time I try, I get the following error:

2023-01-29 03:55:56.986  ERROR Station T8030P1322420A34 - CMD_NOTIFY_PAYLOAD Error: 
{
  error: SyntaxError: Unexpected token  in JSON at position 35
      at JSON.parse (<anonymous>)
      at P2PClientProtocol.handleDataControl (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1450:43)
      at P2PClientProtocol.handleData (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1043:18)
      at P2PClientProtocol.parseDataMessage (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1031:26)
      at P2PClientProtocol.handleMsg (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:868:26)
      at Socket.<anonymous> (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1732:56)
      at Socket.emit (node:events:513:28)
      at UDP.onMessage [as onmessage] (node:dgram:930:8),
  payload: '{"cmd":1550,"payload":{"status":1}}\x00'
}

Thoughts?

Got the same Captcha problems…

Unknown error occurered.
Any thoughts on this issue?

I would be very grateful if anyone could help with installation, because it is very frustrating.
Please be kind - I’m a newbie of 2 weeks to HA and am on a steep learning curve, but this addon is the most needed.
I’ve set up a seperate Eufy account, shared it and installed into HACS as instructed.

I have installed and uninstalled probably 20 times now with no successful conclusion.
I have never got to the point of seeing the Listening and Connection messages in the Logs.

When I install the addon, I fill in the configuration details. When I click Save, the screen immediately changes to “This addon does not expose configuration for you to mess with”

Sometimes the addon has started, but as mentioned, I have never seen the successful connection messages in the Logs.

On this installation when I try to start, there is a flash of Addon Name, CPU and Ram, but then it reverts back to Start.
There is normally nothing in the log, but sometimes I see a Killed message.
I have tried this before and after rebooting HA.
There is nothing in the main logs.
I understand this is pretty vague, but if further information is required, please ask.

If you Google that error message the suggestion is to clear your browser cache / hard refresh your browser - suggest to try that and then save the config settings.

1 Like

Hi Ronald,
I’ve already tried that.
I even used a different browser.
Still no luck :frowning: