eufy-security-client: [Bug]: bricked SoloCam S220 by setting video recording quality

Client version

2.9.1

Node version

v18.18.2

Operating System type

Docker

Operating system version

Debian GNU/Linux 12 (bookworm)

Describe the bug

Hi, yesterday I bricked my SoloCam S220 by setting the video recording quality via the corresponding “video_recording_quality” object. The initial value id “null” and setting the video recording quality to “Full HD (1080P)” works fine as well. When setting the value to “2K HD”, within the video recording quality menu no value is selected. The problem is that without any value being set, the camera does not record any events and the livestream does not work anymore being stuck in the “Playback is being prepared…” message. If you now remove the camera from the HomeBase or your router, because you don’t know the issue it’s not possible the reconnect the camera again! The following setup will fail during scanning the QR code which means the camera is total broken. Even resetting the camera by pressing the “SYN” button twice does not help and you have to hope for a warranty replacement.

To reproduce

----- Please, don’t remove the SoloCam S220 while reproducing the following steps -----

  1. go to the eusec.0.T8030P23233XXXXX.cameras.T8134P20233XXXXX.video_recording_quality state which initially is “null” and select “Full HD (1080P)” which works fine.
  2. go to the eusec.0.T8030P23233XXXXX.cameras.T8134P20233XXXXX.video_recording_quality state which now is set to “Full HD (1080P)” and select “2K HD”.
  3. Have a look at the video recording quality menu within the Eufy app and you will see that no recording quality is selected. At this state the camera can’t record any events and you can’t start a livestream.

Screenshots & Logfiles

  1. Example is SoloCam S220 called “Terrasse”:

  2. In the video settings pane the recording quality is set to “2K HD”:

  3. Detailed look at the recording quality setting menu with selected “2K HD”:

  4. When setting the “video_recording_quality” to “Full HD (1080P)” and afterwards setting to “2K HD”, the recording quality still is set to “2K HD”:

  5. But when having a look at the recording quality setting menu, nothing is selected!

  6. At the state where no recording quality is selected, the stream does not work anymore and the camera does not record any events:

This should be all relevant logfile lines:

2024-01-18 18:12:31.098 - silly: eusec.0 (27076) States user redis pmessage eusec.0.T8030P23233XXXXX.*/eusec.0.T8030P23233XXXXX.cameras.T8134P20233XXXXX.video_recording_quality:{"val":2,"ack":false,"ts":1705597951069,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1705597951069}
2024-01-18 18:12:31.099 - debug: eusec.0 (27076) [euSec.onStateChange] state eusec.0.T8030P23233XXXXX.cameras.T8134P20233XXXXX.video_recording_quality changed: 2 (ack = false)
2024-01-18 18:12:31.116 - debug: eusec.0 (27076) [Station.setVideoRecordingQuality] Station set video recording quality - sending command [{"stationSN":"T8030P23233XXXXX","deviceSN":"T8134P20233XXXXX","value":2}]
2024-01-18 18:12:31.117 - debug: eusec.0 (27076) [P2PClientProtocol.sendCommandWithStringPayload] sendCommandWithStringPayload: [{"p2pcommand":{"commandType":1700,"value":"{\"commandType\":1023,\"data\":{\"quality\":2}}","channel":2},"customData":{"property":{"name":"videoRecordingQuality","value":2}}}]
2024-01-18 18:12:33.590 - debug: eusec.0 (27076) [P2PClientProtocol.handleData] Handle DATA DATA - Result data for command received [{"stationSN":"T8030P23233XXXXX","message":{"sequence":18,"commandType":1700,"nestedCommandType":1023,"channel":2,"acknowledged":true,"retries":0,"returnCode":-133,"data":{"type":"Buffer","data":[209,0,0,18,88,90,89,72,164,6,48,0,0,0,1,0,2,1,0,0,148,101,228,156,185,70,253,210,143,57,32,74,127,25,196,129,160,235,20,108,96,30,57,141,163,241,5,38,121,42,47,138,182,228,57,76,91,94,84,90,231,120,244,240,15,10,174,151]},"customData":{"property":{"name":"videoRecordingQuality","value":2}}},"resultCodeName":"ERROR_PPCS_SUCCESSFUL","resultCode":0}]
2024-01-18 18:12:33.591 - debug: eusec.0 (27076) [Station.onCommandResponse] Station got p2p command response [{"station":"T8030P23233XXXXX","commandType":1023,"channel":2,"returnCodeName":"ERROR_PPCS_SUCCESSFUL","returnCode":0,"customData":{"property":{"name":"videoRecordingQuality","value":2}}}]
2024-01-18 18:12:33.667 - silly: eusec.0 (27076) States user redis pmessage eusec.0.T8030P23233XXXXX.*/eusec.0.T8030P23233XXXXX.cameras.T8134P20233XXXXX.video_recording_quality:{"val":2,"ack":true,"ts":1705597953662,"q":0,"from":"system.adapter.eusec.0","lc":1705597951069}
2024-01-18 18:12:33.670 - debug: eusec.0 (27076) [euSec.onStateChange] state eusec.0.T8030P23233XXXXX.cameras.T8134P20233XXXXX.video_recording_quality changed: 2 (ack = true) was already acknowledged, ignore it...
2024-01-18 18:12:54.162 - silly: eusec.0 (27076) States user redis pmessage eusec.0.T8030P23233XXXXX.*/eusec.0.T8030P23233XXXXX.cameras.T8134P20233XXXXX.video_recording_quality:{"val":3,"ack":false,"ts":1705597974159,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1705597974159}
2024-01-18 18:12:54.164 - debug: eusec.0 (27076) [euSec.onStateChange] state eusec.0.T8030P23233XXXXX.cameras.T8134P20233XXXXX.video_recording_quality changed: 3 (ack = false)
2024-01-18 18:12:54.168 - debug: eusec.0 (27076) [Station.setVideoRecordingQuality] Station set video recording quality - sending command [{"stationSN":"T8030P23233XXXXX","deviceSN":"T8134P20233XXXXX","value":3}]
2024-01-18 18:12:54.169 - debug: eusec.0 (27076) [P2PClientProtocol.sendCommandWithStringPayload] sendCommandWithStringPayload: [{"p2pcommand":{"commandType":1700,"value":"{\"commandType\":1023,\"data\":{\"quality\":3}}","channel":2},"customData":{"property":{"name":"videoRecordingQuality","value":3}}}]
2024-01-18 18:12:57.394 - debug: eusec.0 (27076) [P2PClientProtocol.handleData] Handle DATA DATA - Result data for command received [{"stationSN":"T8030P23233XXXXX","message":{"sequence":20,"commandType":1700,"nestedCommandType":1023,"channel":2,"acknowledged":true,"retries":0,"returnCode":-133,"data":{"type":"Buffer","data":[209,0,0,20,88,90,89,72,164,6,48,0,0,0,1,0,2,1,0,0,148,101,228,156,185,70,253,210,143,57,32,74,127,25,196,129,160,235,20,108,96,30,57,141,163,241,5,38,121,42,47,138,240,13,135,43,36,35,247,123,108,43,102,209,31,168,253,91]},"customData":{"property":{"name":"videoRecordingQuality","value":3}}},"resultCodeName":"ERROR_PPCS_SUCCESSFUL","resultCode":0}]
2024-01-18 18:12:57.395 - debug: eusec.0 (27076) [Station.onCommandResponse] Station got p2p command response [{"station":"T8030P23233XXXXX","commandType":1023,"channel":2,"returnCodeName":"ERROR_PPCS_SUCCESSFUL","returnCode":0,"customData":{"property":{"name":"videoRecordingQuality","value":3}}}]
2024-01-18 18:12:57.628 - silly: eusec.0 (27076) States user redis pmessage eusec.0.T8030P23233XXXXX.*/eusec.0.T8030P23233XXXXX.cameras.T8134P20233XXXXX.video_recording_quality:{"val":3,"ack":true,"ts":1705597977625,"q":0,"from":"system.adapter.eusec.0","lc":1705597974159}
2024-01-18 18:12:57.630 - debug: eusec.0 (27076) [euSec.onStateChange] state eusec.0.T8030P23233XXXXX.cameras.T8134P20233XXXXX.video_recording_quality changed: 3 (ack = true) was already acknowledged, ignore it...

Additional context

I think the Problem that the states values (2 and 3) are incorrect.

About this issue

  • Original URL
  • State: closed
  • Created 5 months ago
  • Comments: 15 (8 by maintainers)

Commits related to this issue

Most upvoted comments

I have now implemented and successfully tested everything. This issue will be fixed in the next version.

Many thanks for sharing the devices. You can now remove the share.

Short update:

I have now analysed everything and found the differences between the standalone device and the device linked to Homebase. I should have everything sorted out by tomorrow evening 😉

Hi @bropat, I shared the two devices with you. Device_1 is connected to the HomeBase 3. Device_2 directly is connected to the WiFi. I hope access until thursday morning gives you enough time to have a look at the issue. Thanks a lot in advance!

I would have time tomorrow evening

Unfortunately, I see that I did not note the firmware version for this model during implementation. I can well imagine that something has changed here with a new firmware version. I can correct the implementation, but for this I need access to the camera.

If I can share a functional camera with you, please let my know and I will assist.

What firmware version does the camera have?

The camera has system version 3.2.6.8.

One more thing:

If you are in the situation described in point 5, simply set the relevant setting again from the app.

Since Homebase 3 has been available and some cameras can be operated with or without it, the commands sometimes change. I don’t have a Homebase 3 myself and I don’t have the camera mentioned, so I can’t recreate it.

Yes, I have saved the other three SoloCam S220 by reconfiguring the recording quality directly via the app. I disconnected the fourth, now broken S220 from the HomeBase before reconfiguring the recording quality setting because I haven’t known where the issue comes from.