Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Tierney11290 opened this issue Sep 27, 2024 · 13 comments
Open

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

Tierney11290 opened this issue Sep 27, 2024 · 13 comments

Comments

@Tierney11290
Copy link

Tierney11290 commented Sep 27, 2024

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
2. Press the Play button on the WebRTC card
3. 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: '[email protected]',
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: '[email protected]',
persistentData: {
user_id: 'REDACTED',
email: '[email protected]',
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: '[email protected]',
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":"[email protected]/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:

  • Reinstalled everything about 8 times over the past 6 months
  • Separate account made and given access as described in set up guide
  • Ensured app notifications are enabled
  • Set all quality levels to low
  • Camera feed works in app and on the web UI when enabled
  • All functions such as locking work, just no camera feed
  • Camera shows up in WebRTC when navigating to the port 1984 page
  • Camera does NOT show up in the Frigate version of the WebRTC page but I can manually add it in the config.yaml
  • The trusted device name of "Lenovo K30-W" is a bit odd but setting this manually doesn't work either
  • The "response: 'Error=PHONE_REGISTRATION_ERROR'" in the debug log is also a bit odd so not sure what's going on there
@Tierney11290
Copy link
Author

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
Copy link
Author

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
Copy link
Author

Tierney11290 commented Oct 2, 2024

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!

@fuatakgun
Copy link
Owner

we can have a working session over Google Meet, so I can connect and take a look at your setup.

drop an email [email protected]

@trullock
Copy link

Did you solve this? I'm in a similar situation with a similar setup

@Tierney11290
Copy link
Author

Tierney11290 commented Dec 13, 2024 via email

@fuatakgun
Copy link
Owner

Replied now. I don't have a preference as long as I can access it.

@Tierney11290
Copy link
Author

Tierney11290 commented Dec 22, 2024

Did you solve this? I'm in a similar situation with a similar setup

Unfortunately not. Fuat replied back and we troubleshot some more but we couldn't find a fix. I was able to get Frigate to use a different go2rtc version by dropping the latest file version of go2rtc into Home Assistant's /config folder (I put Home Assistant in italics because everything I found online was poorly explained as it only provided instructions on a Docker install, not the HA Addon. Following the instructions on the Frigate page wouldn't work for some reason at first but it is now). This only cleared up some minor, unrelated errors from a bug in go2rtc but it didn't allow this addon to show the stream.

Best I have right now is to use both Frigate's built in go2rtc for my other cameras, and the standalone go2rtc addon instead as it has no issues displaying the feed when done this way. Although if either addon or Home Assistant is restarted for whatever reason, the addons fail to start up unless I shut down standalone go2rtc first, then start up the Frigate addon, wait for that to start up, then starting the go2rtc addon back up again. I put the two versions of the go2rtc addons on different ports to avoid confliction but that didn't fix the start up issue like I thought it would. I could probably create an automation to fix this but I still don't have my doorbell stream in Frigate for recording though which is unfortunate.

Super complicated issue and the only idea I have is that there are some conflictions that the Eufy product has issues with Frigate.

EDIT: I also noticed that both this addon and the integration use Port 3000 which is also what the Z-wave integration uses, but I changed the port for Z-Wave and now it works! This could be unrelated and may not even matter as the Z-Wave integration is using tcp port 3000 whereas this addon may be using the udp version of it (which it should be for faster streaming in theory) but I couldn't get Z-Wave integration to start back up when it used the same port. This addon still has an issue using Frigate's implementation of go2rtc and seems to be wildly inconsistent comapred to the EufyP2PStream addon though. All physical controls like locking and unlocking work with no problem using this addon.

@fuatakgun
Copy link
Owner

When the new version of go2rtc is released, you will not need master anymore

@trullock
Copy link

@Tierney11290 Thanks for your response.

In my case, I don't care about piping my door bell stream to frigate, i just want to be able to stream it in HA.

Do you have any pointers here before i spend hours on this, I already have the standalone go2rtc installed for other reasons, what do I need to do to get this working?

When i click start stream ive managed to make it not get stuck on Preparing by changing the Video Streaming Quality to High/Low, and it looks like its streaming but I cant visualise any image....

Thanks again, have a great Christmas

@Tierney11290
Copy link
Author

@Tierney11290 Thanks for your response.

In my case, I don't care about piping my door bell stream to frigate, i just want to be able to stream it in HA.

Do you have any pointers here before i spend hours on this, I already have the standalone go2rtc installed for other reasons, what do I need to do to get this working?

When i click start stream ive managed to make it not get stuck on Preparing by changing the Video Streaming Quality to High/Low, and it looks like its streaming but I cant visualise any image....

Thanks again, have a great Christmas

Honestly don't have much. I feel like sometimes the integration works and sometimes it doesn't for streaming, even after fixing the Port 3000 confliction. Right now all I get is the last motion activity as a poster and hitting the Start Stream button doesn't seem to do anything most of the time. No rhyme or reason and not seeing anything in the logs that would help me point out the issue. Physical controls like the lock work fine though.

For troubleshooting purposes, try opening the go2rtc addon and go to the Web UI. Try starting the stream and see if you can view the live stream from there. If so, it might be HA at fault. If not, there is an underlying issue between the integration and/or addon.

@trullock
Copy link

Thanks, ok made some progress, go2rtc shows this when i try to view the stream directly in go2rtc

image

@Tierney11290
Copy link
Author

Tierney11290 commented Dec 23, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants