Skip to content

[Bug]: bricked SoloCam S220 by setting video recording quality #452

@Madnax1337

Description

@Madnax1337

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":
  1. In the video settings pane the recording quality is set to "2K HD":
  1. Detailed look at the recording quality setting menu with selected "2K HD":
  1. 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":
  1. But when having a look at the recording quality setting menu, nothing is selected!
  1. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfixed

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions