bropat / eufy-security-ws

Small server wrapper around eufy-security-client library to access it via a WebSocket.
MIT License
178 stars 28 forks source link

[Bug]: SyntaxError Unexpected end of JSON input #242

Closed sesardelaisla closed 1 year ago

sesardelaisla commented 1 year ago

Version

1.5.2-1

Node version

N/A

Operating System type

Linux

Operating system version

Home Assistant OS 6.1.34

Describe the bug

New user here. After installing the addon, everything seems almost fine from an operational point of view. However, I see some SyntaxError warnings highlighted in red in the log screen. I am wondering whether they are expected or not. Is it something that should be fixed?

To reproduce

  1. Go to 'addon Information screen'
  2. Click on 'restart'
  3. Go to 'addon log screen'
  4. Wait a few seconds
  5. Refresh log screen
  6. See error

Screenshots & Logfiles

2023-08-01 13:27:55.370  ERROR JSON parse error {"r 
 SyntaxError  Unexpected end of JSON input
error stack:
• utils.ts:151 parseJSON
    usr/src/app/node_modules/eufy-security-client/src/utils.ts:151:21
• parameter.ts:45 readValue
    usr/src/app/node_modules/eufy-security-client/src/http/parameter.ts:45:41
• device.ts:132 updateRawProperty
    usr/src/app/node_modules/eufy-security-client/src/http/device.ts:132:45
• device.ts:64 <anonymous>
    usr/src/app/node_modules/eufy-security-client/src/http/device.ts:64:22
• device.ts:63 update
    usr/src/app/node_modules/eufy-security-client/src/http/device.ts:63:35
• eufysecurity.ts:2312 <anonymous>
    usr/src/app/node_modules/eufy-security-client/src/eufysecurity.ts:2312:32
• task_queues:96 processTicksAndRejections
    node:internal/process/task_queues:96:5
2023-08-01 13:27:55.385  ERROR JSON parse error {"r 
 SyntaxError  Unexpected end of JSON input
error stack:
• utils.ts:151 parseJSON
    usr/src/app/node_modules/eufy-security-client/src/utils.ts:151:21
• parameter.ts:45 readValue
    usr/src/app/node_modules/eufy-security-client/src/http/parameter.ts:45:41
• device.ts:132 updateRawProperty
    usr/src/app/node_modules/eufy-security-client/src/http/device.ts:132:45
• device.ts:64 <anonymous>
    usr/src/app/node_modules/eufy-security-client/src/http/device.ts:64:22
• device.ts:63 update
    usr/src/app/node_modules/eufy-security-client/src/http/device.ts:63:35
• eufysecurity.ts:2312 <anonymous>
    usr/src/app/node_modules/eufy-security-client/src/eufysecurity.ts:2312:32
• task_queues:96 processTicksAndRejections
    node:internal/process/task_queues:96:5
2023-08-01 13:27:55.398  ERROR JSON parse error {"r 
 SyntaxError  Unexpected end of JSON input
error stack:
• utils.ts:151 parseJSON
    usr/src/app/node_modules/eufy-security-client/src/utils.ts:151:21
• parameter.ts:45 readValue
    usr/src/app/node_modules/eufy-security-client/src/http/parameter.ts:45:41
• device.ts:132 updateRawProperty
    usr/src/app/node_modules/eufy-security-client/src/http/device.ts:132:45
• device.ts:64 <anonymous>
    usr/src/app/node_modules/eufy-security-client/src/http/device.ts:64:22
• device.ts:63 update
    usr/src/app/node_modules/eufy-security-client/src/http/device.ts:63:35
• eufysecurity.ts:2312 <anonymous>
    usr/src/app/node_modules/eufy-security-client/src/eufysecurity.ts:2312:32
• task_queues:96 processTicksAndRejections
    node:internal/process/task_queues:96:5
2023-08-01 13:27:55.407  ERROR JSON parse error {"r 
 SyntaxError  Unexpected end of JSON input
error stack:
• utils.ts:151 parseJSON
    usr/src/app/node_modules/eufy-security-client/src/utils.ts:151:21
• parameter.ts:45 readValue
    usr/src/app/node_modules/eufy-security-client/src/http/parameter.ts:45:41
• device.ts:132 updateRawProperty
    usr/src/app/node_modules/eufy-security-client/src/http/device.ts:132:45
• device.ts:64 <anonymous>
    usr/src/app/node_modules/eufy-security-client/src/http/device.ts:64:22
• device.ts:63 update
    usr/src/app/node_modules/eufy-security-client/src/http/device.ts:63:35
• eufysecurity.ts:2312 <anonymous>
    usr/src/app/node_modules/eufy-security-client/src/eufysecurity.ts:2312:32
• task_queues:96 processTicksAndRejections
    node:internal/process/task_queues:96:5

SyntaxError

Additional context

My devices kit:

1x HomeBase 2 (T8010) 4x eufyCam 2 Pro (T8140)

bropat commented 1 year ago

Fixed in latest version (1.6.0) released a few minutes ago.

sesardelaisla commented 1 year ago

Not sure whether it is specifically related or not, but I updated to 1.6.0 and I still see quite similar errors in the log:

2023-08-02 08:13:00.737  ERROR JSON parse error 
{
  data: '{"r',
  error: SyntaxError: Unexpected end of JSON input
      at JSON.parse (<anonymous>)
      at parseJSON (/usr/src/app/node_modules/eufy-security-client/build/utils.js:147:21)
      at Function.readValue (/usr/src/app/node_modules/eufy-security-client/build/http/parameter.js:50:63)
      at Camera.updateRawProperty (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:127:57)
      at /usr/src/app/node_modules/eufy-security-client/build/http/device.js:54:22
      at Array.forEach (<anonymous>)
      at Camera.update (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:53:35)
      at Camera.initializeState (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:29:14)
      at Camera.initialize (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:36:14)
      at /usr/src/app/node_modules/eufy-security-client/build/eufysecurity.js:636:32
}
2023-08-02 08:13:00.741  WARN Non-parsable parameter value received from eufy cloud. Will be ignored. 
{
  type: 2708,
  value: '{"r'
}
2023-08-02 08:13:00.748  ERROR JSON parse error 
{
  data: '{"r',
  error: SyntaxError: Unexpected end of JSON input
      at JSON.parse (<anonymous>)
      at parseJSON (/usr/src/app/node_modules/eufy-security-client/build/utils.js:147:21)
      at Function.readValue (/usr/src/app/node_modules/eufy-security-client/build/http/parameter.js:50:63)
      at Camera.updateRawProperty (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:127:57)
      at /usr/src/app/node_modules/eufy-security-client/build/http/device.js:54:22
      at Array.forEach (<anonymous>)
      at Camera.update (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:53:35)
      at Camera.initializeState (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:29:14)
      at Camera.initialize (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:36:14)
      at /usr/src/app/node_modules/eufy-security-client/build/eufysecurity.js:636:32
}
2023-08-02 08:13:00.751  WARN Non-parsable parameter value received from eufy cloud. Will be ignored. 
{
  type: 2707,
  value: '{"r'
}
2023-08-02 08:13:00.754  ERROR JSON parse error 
{
  data: '{"r',
  error: SyntaxError: Unexpected end of JSON input
      at JSON.parse (<anonymous>)
      at parseJSON (/usr/src/app/node_modules/eufy-security-client/build/utils.js:147:21)
      at Function.readValue (/usr/src/app/node_modules/eufy-security-client/build/http/parameter.js:50:63)
      at Camera.updateRawProperty (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:127:57)
      at /usr/src/app/node_modules/eufy-security-client/build/http/device.js:54:22
      at Array.forEach (<anonymous>)
      at Camera.update (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:53:35)
      at Camera.initializeState (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:29:14)
      at Camera.initialize (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:36:14)
      at /usr/src/app/node_modules/eufy-security-client/build/eufysecurity.js:636:32
}
2023-08-02 08:13:00.756  WARN Non-parsable parameter value received from eufy cloud. Will be ignored. 
{
  type: 2708,
  value: '{"r'
}
2023-08-02 08:13:00.760  ERROR JSON parse error 
{
  data: '{"r',
  error: SyntaxError: Unexpected end of JSON input
      at JSON.parse (<anonymous>)
      at parseJSON (/usr/src/app/node_modules/eufy-security-client/build/utils.js:147:21)
      at Function.readValue (/usr/src/app/node_modules/eufy-security-client/build/http/parameter.js:50:63)
      at Camera.updateRawProperty (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:127:57)
      at /usr/src/app/node_modules/eufy-security-client/build/http/device.js:54:22
      at Array.forEach (<anonymous>)
      at Camera.update (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:53:35)
      at Camera.initializeState (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:29:14)
      at Camera.initialize (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:36:14)
      at /usr/src/app/node_modules/eufy-security-client/build/eufysecurity.js:636:32
}
2023-08-02 08:13:00.763  WARN Non-parsable parameter value received from eufy cloud. Will be ignored. 
{
  type: 2708,
  value: '{"r'
}
2023-08-02 08:13:00.766  ERROR JSON parse error 
{
  data: '{"r',
  error: SyntaxError: Unexpected end of JSON input
      at JSON.parse (<anonymous>)
      at parseJSON (/usr/src/app/node_modules/eufy-security-client/build/utils.js:147:21)
      at Function.readValue (/usr/src/app/node_modules/eufy-security-client/build/http/parameter.js:50:63)
      at Camera.updateRawProperty (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:127:57)
      at /usr/src/app/node_modules/eufy-security-client/build/http/device.js:54:22
      at Array.forEach (<anonymous>)
      at Camera.update (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:53:35)
      at Camera.initializeState (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:29:14)
      at Camera.initialize (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:36:14)
      at /usr/src/app/node_modules/eufy-security-client/build/eufysecurity.js:636:32
}
2023-08-02 08:13:00.768  WARN Non-parsable parameter value received from eufy cloud. Will be ignored. 
{
  type: 2707,
  value: '{"r'
}
bropat commented 1 year ago

This error is caused by receiving corrupt data from eufy cloud. Only the error on my side was handled better. See also warning message:

WARN Non-parsable parameter value received from eufy cloud. Will be ignored.

This problem must be solved by eufy.

sesardelaisla commented 1 year ago

Ok. I am not going to spend more time on this as long as this issue does not cause any operational problem, which it is what I guess. According to your comment, I understand that this could be considered an expected response from eufy cloud. Thanks for your feedback!