fuatakgun / eufy_security

Home Assistant integration to manage Eufy Security devices as cameras, home base stations, doorbells, motion and contact sensors.
936 stars 79 forks source link

Eufy S330 (T8530K) Video Doorbell Lock Blank Stream #1215

Open Tierney11290 opened 1 month ago

Tierney11290 commented 1 month ago

Not sure if this is a bug so I opened an issue separate that of a bug. Please delete my other issue #1214 that was not yet meant to be submitted if you don't mind!

Describe the bug

Camera stream is blank when using the template webrtc custom card (or any method for that matter). It seems to get the URL after clicking the Play button to start the stream and shows that it is using MSE but has a blank image/stream once started.

To reproduce

Steps to reproduce the behavior:

**1. Configure integration and associated custom WebRTC card as laid out in Eufy Security Integration guide

  1. Press the Play button on the WebRTC card
  2. Observe the blank image**

Expected behavior

After pressing the Play button, the stream should appear after several moments

Additional information

Installation type: Home Assistant OS Home Assistant Core Version: core-2024.9.3 Eufy Security Add-on Version: 1.9.0 Eufy Security Integration Version: 8.0.4 Hardware Information: Raspberry Pi5 8GB

Camera Model: Eufy S330 (T8530K)

Live Streaming Protocol (RTSP/P2P): P2P

Logs from Eufy Security Add-on (either from Add-ons page of Home Assistant or Docker output):

s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service legacy-services: starting s6-rc: info: service legacy-services successfully started SECURITY WARNING: Reverting CVE-2023-46809: Marvin attack on PKCS#1 padding 2024-09-27 15:11:03.830 DEBUG eufy-security-ws:eufy-security-client [main] [EufySecurity._initializeInternals] Loaded persistent data { persistentData: { country: 'US', openudid: '5d327be65b8b2f2', serial_number: 'c4206021820e', push_persistentIds: [], login_hash: 'REDACTED', version: '3.1.0', cloud_token: 'REDACTED', cloud_token_expiration: 1729866790000, fallbackTrustedDeviceName: 'Lenovo K30-W', httpApi: { user_id: 'REDACTED', email: 'xxxxx@xxx.com', nick_name: 'Home Assistant', device_public_keys: {}, clientPrivateKey: 'REDACTED', serverPublicKey: 'REDACTED' }, push_credentials: { fidResponse: { name: 'projects/348804314802/installations/eVEh76M_fAR1f9ECJK3ha5', fid: 'eVEh76M_fAR1f9ECJK3ha5', refreshToken: 'REDACTED', authToken: { token: 'REDACTED', expiresIn: '604800s', expiresAt: 1727879618719 } }, checkinResponse: { statsOk: true, timeMs: '1727449843258', androidId: '3815108439591511292', securityToken: 'REDACTED', versionInfo: 'M174sl9tJCAWoLPgN7e-uDBTVYxAIxk', deviceDataVersionInfo: 'ABFEt1X6gHzHcYSxmF2pSpBCyICrQmP9g346dMue9LPDzdW0RV4Mf-pPBp2TvFOyoiAukAySXL428KMKTnC2EACXTCf9nj-GFWNexWb0PM33tIGOhcDpqgTX4DozkckEIR7TNgDgpEoM_C5U4_dkmU3QxzsMt4srKx80ZMdwO8fg7CDlA69lZEHLhUAWbewRkZnVcT2zw8we9LA2CtnCQkc__lIr8_FFUkCvV0YyYfp1uuSP9e_0vR--9WF_fXlaZiP3tFWWmgbFTyMSpjY30dKaETlymvgmuwReAHJ94gEuN_7vdI8hLW_TF3W_OAZGe92ULRKdDvMn4pfJsN2SGAKLUUcBEdnZ0zs_Vzh9LPcfNj6-6gjtn7Y' }, gcmResponse: { token: 'eVEh76M_fAR1f9ECJK3ha5:APA91bFPk_lkEL1a8Att2ffEDYfKhx2_KFEpm0g8FJXHjtrV2oyvYUd3sdCjz9JuOK8s0xcq1l50RgNes7Qt0IG1TJ7ewZFpchMxuUke2aVNp2Yl4nGi-25iSdfFO8bUdqEHilKxIGZ2' } } } } 2024-09-27 15:11:03.837 DEBUG eufy-security-ws:eufy-security-client [main] [EufySecurity._initializeInternals] Load previous login_hash { login_hash: 'REDACTED' } 2024-09-27 15:11:04.074 DEBUG eufy-security-ws:eufy-security-client [http] [HTTPApi] Loaded API { apieBase: 'https://security-app.eufylife.com', country: 'US', username: 'xxxxx@xxx.com', persistentData: { user_id: 'REDACTED', email: 'xxxx@xxx.com', nick_name: 'Home Assistant', device_public_keys: {}, clientPrivateKey: 'REDACTED', serverPublicKey: 'REDACTED' } } 2024-09-27 15:11:04.081 DEBUG eufy-security-ws:eufy-security-client [main] [EufySecurity._initializeInternals] Load previous token { token: 'REDACTED', tokenExpiration: 1729866790000, persistentHttpApi: { user_id: 'REDACTED', email: 'xxxx@xxx.com', nick_name: 'Home Assistant', device_public_keys: {}, clientPrivateKey: 'REDACTED', serverPublicKey: 'REDACTED' } } 2024-09-27 15:11:04.092 DEBUG eufy-security-ws Starting server on host 0.0.0.0, port 3000 2024-09-27 15:11:04.094 INFO eufy-security-ws Eufy Security server listening on host 0.0.0.0, port 3000 2024-09-27 15:11:04.095 DEBUG eufy-security-ws:eufy-security-client [http] [HTTPApi.login] Login and get an access token { token: 'REDACTED', tokenExpiration: 2024-10-25T14:33:10.000Z, options: { force: false } } 2024-09-27 15:11:04.096 DEBUG eufy-security-ws:eufy-security-client [http] [HTTPApi.request] Api request { method: 'get', endpoint: 'v2/passport/profile', responseType: undefined, token: 'REDACTED', data: undefined } 2024-09-27 15:11:05.601 DEBUG eufy-security-ws New client with ip: 127.0.0.1 port: 58150 2024-09-27 15:11:05.620 DEBUG eufy-security-ws:eufy-security-client [http] [HTTPApi.request] Api request { method: 'get', endpoint: 'v1/voice/response/lists/T8530K10233305D6', responseType: undefined, token: 'REDACTED', data: undefined } 2024-09-27 15:11:05.655 DEBUG eufy-security-ws:eufy-security-client [http] [HTTPApi.request] Api request - Response { token: 'REDACTED', request: { method: 'get', endpoint: 'v1/voice/response/lists/T8530K10233305D6' }, response: { code: 0, msg: 'Succeed.', data: [ { voice_id: 44848, user_id: 'REDACTED', desc: 'Excuse me, can I help you', device_sn: '', voice_link: 'https://zhixin-security-pr.s3.us-west-2.amazonaws.com/voice/2019/06/13/mobile/T8200N0119040038/Cx76rJF2IQamNR50.Excuse%20me%2C%20can%20I%20help%20you.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJYLV2KOLW6PU4FSA%2F20240927%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240927T151105Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=08fe1cc66476cc0a2706e8571b7844c1290963995d28c056047a09b5ebb866d8', voice_type: 0, key_prefix: '/voice/2019/06/13/mobile/T8200N0119040038/Cx76rJF2IQamNR50.Excuse me, can I help you.wav' } ] } } 2024-09-27 15:11:05.762 DEBUG eufy-security-ws:eufy-security-client [push] [PushNotificationService.registerGcm] GCM register error, retry... { retry: 5, retryCount: 1, response: 'Error=PHONE_REGISTRATION_ERROR' } 2024-09-27 15:11:16.419 DEBUG eufy-security-ws:eufy-security-client [push] [PushClient.handleParsedMessage] Push client - Login response: GCM -> logged in -> waiting for push messages... { message: '{"tag":3,"object":{"id":"chrome-63.0.3234.0","jid":"user@firebase.com/notifications","lastStreamIdReceived":1,"serverTimestamp":"1727449876398"}}' } 2024-09-27 15:11:16.420 DEBUG eufy-security-ws:eufy-security-client [http] [HTTPApi.request] Api request { method: 'post', endpoint: 'v1/apppush/register_push_token', responseType: undefined, token: 'REDACTED', data: { is_notification_enable: true, token: 'REDACTED', transaction: '1727449876420' } } 2024-09-27 15:11:16.429 DEBUG eufy-security-ws:eufy-security-client [push] [PushClient.handleParsedMessage] Push client - IqStanza: Not implemented { message: '{"tag":7,"object":{"type":"SET","id":"","extension":{"id":12,"data":{"type":"Buffer","data":[]}}}}' } 2024-09-27 15:11:16.587 DEBUG eufy-security-ws:eufy-security-client [http] [HTTPApi.request] Api request - Response { token: 'REDACTED', request: { method: 'post', endpoint: 'v1/apppush/register_push_token', data: { is_notification_enable: true, token: 'REDACTED', transaction: '1727449876420' } }, response: { code: 0, msg: 'Succeed.' } } 2024-09-27 15:11:16.588 DEBUG eufy-security-ws:eufy-security-client [http] [HTTPApi.registerPushToken] Register push token - Push token registered successfully 2024-09-27 15:11:16.589 DEBUG eufy-security-ws:eufy-security-client [http] [HTTPApi.request] Api request { method: 'post', endpoint: 'v1/app/review/app_push_check', responseType: undefined, token: 'REDACTED', data: { app_type: 'eufySecurity', transaction: '1727449876589' } } 2024-09-27 15:11:16.674 DEBUG eufy-security-ws:eufy-security-client [http] [HTTPApi.request] Api request - Response { token: 'REDACTED', request: { method: 'post', endpoint: 'v1/app/review/app_push_check', data: { app_type: 'eufySecurity', transaction: '1727449876589' } }, response: { code: 0, msg: 'Succeed.' } } 2024-09-27 15:11:16.674 DEBUG eufy-security-ws:eufy-security-client [http] [HTTPApi.checkPushToken] Check push token - Push token OK 2024-09-27 15:11:16.674 INFO eufy-security-ws:eufy-security-client [main] Push notification connection successfully established

Would you share your device with me in case further debugging required? (Yes/No):

Yes

Additional context

Some of the readme steps are confusing particularly around Step 3, Substep 5 or contradicting such as the inclusion of RTSP Simple Server Addon but then also mentioning go2rtc even though RTSP Simple Server Addon is apparently no longer needed?

I've also been using Frigate (go2rtc built in) for my others cameras around the house with no issue but was getting nowhere with the Eufy Doorbell with it enabled so for the purpose of troubleshooting this, I have disabled Frigate and reinstalled WebRTC (Camera?) Addon. Also had issues even getting the custom WebRTC card to show when adding it to the dashboard but for some reason that started working. While I am a bit further on troubleshooting with all of that done, I still can't get anything more than a blank WebRTC card.

Thank you in advance for any and all assistance!

What I've done to try to fix the issue:

Tierney11290 commented 1 month ago

Minor update: I was somehow able to view the stream for a split second using the custom webrtc card. No idea how or why it worked but I will say I just converted my Home Assistant environment over to a dedicated bare metal install (had Windows 10 for my Plex Server before) over from a Raspberry Pi 5. Not sure if that made a difference.

And even though I was able to view it for a split second in Home Assistant, I have not been able to since. I was able to get it to come up in VLC from my local PC for a split second as well. Going to continue troubleshooting.

Tierney11290 commented 1 month ago

Another update: I have disabled the Frigate addon that has go2RTC built-in and installed the standalone go2RTC instead. The stream still does not show up through using this addon.

However, I was able to install the eufyp2pstream addon and I am now able to stream the feed of the doorbell. If both are running at the same time, only the eufyp2pstream is viewable. I do see this addon trying to "inject" the doobell stream according to the go2RTC addon UI though. Not sure what I have configured wrong with this addon but this narrows it down a bit more.

Tierney11290 commented 1 month ago

Probably the final update: still unable to get this addon to work even with the stand alone go2rtc addon as opposed to the one through Frigate. The stream still works with the eufyp2pstream addon using go2rtc addon though (but not through Frigate). I believe the problem with using the Frigate go2rtc is the fact that for some reason my frigate has version 1.9.2 rather than the 1.9.4 version that go2rtc has, which is odd because frigate's documentation claims it comes with 1.9.4. The instructions on how to use a custom go2rtc version in Frigate is some of the most vague instructions I've ever read, but I digress.

I am definitely still doing something wrong with this addon for it not to work consistently but the documentation is confusing and contradictory so that's not helping things. Hopefully the issue and potential updates I've posted here will help someone later down the road!