bropat/eufy-security-client

[Bug]: Video Doorbell E340 (T8214) errors in log

BVGorp opened this issue · 10 comments

Client version

3.0 / 1.8

Node version

Operating System type

Docker

Operating system version

Ubuntu / HomeAssisntant Supervised

Describe the bug

I have some errors in the log of the eufy-security-ws addon in home assistant.
The first 2 are on start and repeat every day

The 3rd is when starting the video stream.

My doorbell is connected to a HomeBase3.

Removed part of the serial number and the key

To reproduce

see Description

Screenshots & Logfiles

2024-03-04 13:09:34.858	ERROR	eufy-security-ws:eufy-security-client	[http] [BatteryDoorbellCamera.convertRawPropertyValue] Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponse Error {
  error: {
    cause: undefined,
    message: "TypeError: Cannot read properties of undefined (reading 'active')",
    context: undefined,
    stacktrace: "TypeError: Cannot read properties of undefined (reading 'active')\n" +
      '    at BatteryDoorbellCamera.convertRawPropertyValue (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:404:53)\n' +
      '    at BatteryDoorbellCamera.convertRawPropertyValue (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:1754:22)\n' +
      '    at BatteryDoorbellCamera.updateRawProperty (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:147:65)\n' +
      '    at /usr/src/app/node_modules/eufy-security-client/build/http/device.js:91:18\n' +
      '    at Array.forEach (<anonymous>)\n' +
      '    at BatteryDoorbellCamera.updateRawProperties (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:89:29)\n' +
      '    at /usr/src/app/node_modules/eufy-security-client/build/eufysecurity.js:822:20\n' +
      '    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)'
  },
  deviceSN: 'T82145xxxxxxxxxxx',
  property: {
    key: 2716,
    name: 'ringAutoResponse',
    label: 'Ring Auto-Response',
    readable: true,
    writeable: true,
    type: 'boolean'
  },
  value: {
    num: 0,
    setting: []
  }
}
2024-03-04 13:09:34.866	ERROR	eufy-security-ws:eufy-security-client	[http] [BatteryDoorbellCamera.convertRawPropertyValue] Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponseVoiceResponse Error {
  error: {
    cause: undefined,
    message: "TypeError: Cannot read properties of undefined (reading 'active')",
    context: undefined,
    stacktrace: "TypeError: Cannot read properties of undefined (reading 'active')\n" +
      '    at BatteryDoorbellCamera.convertRawPropertyValue (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:415:53)\n' +
      '    at BatteryDoorbellCamera.convertRawPropertyValue (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:1754:22)\n' +
      '    at BatteryDoorbellCamera.updateRawProperty (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:147:65)\n' +
      '    at /usr/src/app/node_modules/eufy-security-client/build/http/device.js:91:18\n' +
      '    at Array.forEach (<anonymous>)\n' +
      '    at BatteryDoorbellCamera.updateRawProperties (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:89:29)\n' +
      '    at /usr/src/app/node_modules/eufy-security-client/build/eufysecurity.js:822:20\n' +
      '    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)'
  },
  deviceSN: 'T82145xxxxxxxxxxx',
  property: {
    key: 2716,
    name: 'ringAutoResponseVoiceResponse',
    label: 'Ring Auto-Response Voice Response',
    readable: true,
    writeable: true,
    type: 'boolean'
  },
  value: {
    num: 0,
    setting: []
  }
}
2024-03-04 13:30:08.836	WARN	eufy-security-ws:eufy-security-client	[p2p] [P2PClientProtocol.handleDataBinaryAndVideo] Error: AES key could not be decrypted! The entire stream is discarded. {
  error: {
    cause: undefined,
    message: 'Error: Error during decryption (probably incorrect key). Original error: TypeError: RSA_PKCS1_PADDING is no longer supported for private decryption, this can be reverted with --security-revert=CVE-2023-46809',
    context: undefined,
    stacktrace: 'Error: Error during decryption (probably incorrect key). Original error: TypeError: RSA_PKCS1_PADDING is no longer supported for private decryption, this can be reverted with --security-revert=CVE-2023-46809\n' +
      '    at module.exports.NodeRSA.$$decryptKey (/usr/src/app/node_modules/node-rsa/src/NodeRSA.js:301:19)\n' +
      '    at module.exports.NodeRSA.decrypt (/usr/src/app/node_modules/node-rsa/src/NodeRSA.js:249:21)\n' +
      '    at P2PClientProtocol.handleDataBinaryAndVideo (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1355:63)\n' +
      '    at P2PClientProtocol.handleData (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1295:18)\n' +
      '    at P2PClientProtocol.parseDataMessage (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:1152:26)\n' +
      '    at P2PClientProtocol.handleMsg (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:986:26)\n' +
      '    at Socket.<anonymous> (/usr/src/app/node_modules/eufy-security-client/build/p2p/session.js:118:56)\n' +
      '    at Socket.emit (node:events:517:28)\n' +
      '    at Socket.emit (node:domain:489:12)\n' +
      '    at UDP.onMessage [as onmessage] (node:dgram:942:8)'
  },
  stationSN: 'T8030Pxxxxxxxxxxxx',
  key: 'de0f42d5818832336f9bfe1fcdf7'
}

Additional context

No response

I still get this error in log of v1.8.0-2

2024-03-18 06:47:48.375 ERROR eufy-security-ws:eufy-security-client [http] [BatteryDoorbellCamera.convertRawPropertyValue] Device convert raw property - CMD_DOORBELL_DUAL_RING_AUTO_RESPONSE DeviceRingAutoResponseVoiceResponse Error {
error: {
cause: undefined,
message: "TypeError: Cannot read properties of undefined (reading 'active')",
context: undefined,
stacktrace: "TypeError: Cannot read properties of undefined (reading 'active')\n" +
' at BatteryDoorbellCamera.convertRawPropertyValue (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:415:53)\n' +
' at BatteryDoorbellCamera.convertRawPropertyValue (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:1754:22)\n' +
' at BatteryDoorbellCamera.updateRawProperty (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:147:65)\n' +
' at /usr/src/app/node_modules/eufy-security-client/build/http/device.js:61:22\n' +
' at Array.forEach ()\n' +
' at BatteryDoorbellCamera.update (/usr/src/app/node_modules/eufy-security-client/build/http/device.js:60:35)\n' +
' at /usr/src/app/node_modules/eufy-security-client/build/eufysecurity.js:2556:32\n' +
' at process.processTicksAndRejections (node:internal/process/task_queues:95:5)'
},
deviceSN: 'T8214XXXXXXXXXXX',
property: {
key: 2716,
name: 'ringAutoResponseVoiceResponse',
label: 'Ring Auto-Response Voice Response',
readable: true,
writeable: true,
type: 'boolean'
},
value: {
num: 0,
setting: []
}
}

same here v1.8.0-2 😒

Hey can you enable debug mode and then send me a full logs you can download it from plugin settings

This is due by your NodeJS version in fact try with 20.11.0

This is due by your NodeJS version in fact try with 20.11.0

Thanks. How can i update it? It seems not be listed anywhere?!

I'm using the eufy-security-ws docker image. I guess it should be updated in there then.
The last error was solved in bropat/eufy-security-ws#310
Only the first 2 remain

I found a way to solve this error. Using the "eufy-security-client/-server" tool, I set all values ​​that were displayed as (null) in the objects of the IoBroker adapter to plausible values. Since then the adapter has worked except for problems with the lifestream.

@mik55 could you please explain it in detail?

@TbsJah Take a look in issue 338.
Start "server.js" with -c config.json and start "client.js" in a seperate shell. Then use the command "device.get_properties T821451012345678" in the client frame. The system answers mit a lot of parameters included "ringAutoResponseVoiceResponse". Set this parameter to false. Repeat this with all parameters contains (Null) == undefined. For a list of possible commands write "help" in the client frame. Note not all devices support all commands.

Seeing the same issue over here. Following!