bropat / eufy-security-client

This shared library allows to control Eufy security devices by connecting to the Eufy cloud servers and local/remote stations over p2p.
MIT License
455 stars 65 forks source link

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

Open BVGorp opened 4 months ago

BVGorp commented 4 months ago

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

todsawat commented 3 months ago

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: [] } }

member1980 commented 2 months ago

same here v1.8.0-2 😒

lenoxys commented 2 months ago

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

lenoxys commented 2 months ago

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

member1980 commented 2 months ago

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?!

BVGorp commented 1 month ago

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

mik55 commented 3 weeks ago

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.

TbsJah commented 1 week ago

@mik55 could you please explain it in detail?

mik55 commented 1 week ago

@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.

GijsvanDulmen commented 2 days ago

Seeing the same issue over here. Following!