congatudo / agnoc

Agnoc Robot Driver
MIT License
18 stars 3 forks source link

[ISSUE] Error reading consumables #37

Closed gtrabanco closed 3 years ago

gtrabanco commented 3 years ago

I have this log in the HA addon even after providing a topic (see this PR and this message on Telegram).

[2021-10-19T06:41:38.074Z] [WARN] Failed to get consumables: DomainException: Timeout waiting for response from opcode 'DEVICE_MAPID_GET_CONSUMABLES_PARAM_RSP'
    at Timeout.fail [as _onTimeout] (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:1181:16)
    at listOnTimeout (node:internal/timers:557:17)
    at processTimers (node:internal/timers:500:7) {
  metadata: undefined
}
[2021-10-19T06:41:39.491Z] [ERROR] Error: write EPIPE
    at afterWriteDispatched (node:internal/stream_base_commons:164:15)
    at writeGeneric (node:internal/stream_base_commons:155:3)
    at Socket._writeGeneric (node:net:780:11)
    at Socket._write (node:net:792:8)
    at writeOrBuffer (node:internal/streams/writable:389:12)
    at _write (node:internal/streams/writable:330:10)
    at Socket.Writable.write (node:internal/streams/writable:334:10)
    at PacketSocket._write (/snapshot/app/node_modules/@agnoc/core/lib/sockets/packet.socket.js:152:19)
    at writeOrBuffer (node:internal/streams/writable:389:12)
    at _write (node:internal/streams/writable:330:10)
    at PacketSocket.Writable.write (node:internal/streams/writable:334:10)
    at Connection.write (/snapshot/app/node_modules/@agnoc/core/lib/emitters/connection.emitter.js:93:26)
    at Connection.respond (/snapshot/app/node_modules/@agnoc/core/lib/emitters/connection.emitter.js:88:17)
    at Message.respond (/snapshot/app/node_modules/@agnoc/core/lib/value-objects/message.value-object.js:39:28)
    at Robot.handleClientHeartbeat (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:836:13)
    at Robot.handleMessage (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:1144:7) {
  errno: -32,
  code: 'EPIPE',
  syscall: 'write'
}
[2021-10-19T06:41:39.496Z] [ERROR] Error: write EPIPE
    at afterWriteDispatched (node:internal/stream_base_commons:164:15)
    at writeGeneric (node:internal/stream_base_commons:155:3)
    at Socket._writeGeneric (node:net:780:11)
    at Socket._write (node:net:792:8)
    at writeOrBuffer (node:internal/streams/writable:389:12)
    at _write (node:internal/streams/writable:330:10)
    at Socket.Writable.write (node:internal/streams/writable:334:10)
    at PacketSocket._write (/snapshot/app/node_modules/@agnoc/core/lib/sockets/packet.socket.js:152:19)
    at writeOrBuffer (node:internal/streams/writable:389:12)
    at _write (node:internal/streams/writable:330:10)
    at PacketSocket.Writable.write (node:internal/streams/writable:334:10)
    at Connection.write (/snapshot/app/node_modules/@agnoc/core/lib/emitters/connection.emitter.js:93:26)
    at Connection.respond (/snapshot/app/node_modules/@agnoc/core/lib/emitters/connection.emitter.js:88:17)
    at Message.respond (/snapshot/app/node_modules/@agnoc/core/lib/value-objects/message.value-object.js:39:28)
    at Robot.handleClientHeartbeat (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:836:13)
    at Robot.handleMessage (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:1144:7) {
  errno: -32,
  code: 'EPIPE',
  syscall: 'write'
}
[2021-10-19T06:41:39.541Z] [ERROR] Error: This socket has been ended by the other party
    at Socket.writeAfterFIN [as write] (node:net:459:14)
    at PacketSocket._write (/snapshot/app/node_modules/@agnoc/core/lib/sockets/packet.socket.js:152:19)
    at writeOrBuffer (node:internal/streams/writable:389:12)
    at _write (node:internal/streams/writable:330:10)
    at PacketSocket.Writable.write (node:internal/streams/writable:334:10)
    at Connection.write (/snapshot/app/node_modules/@agnoc/core/lib/emitters/connection.emitter.js:93:26)
    at Connection.send (/snapshot/app/node_modules/@agnoc/core/lib/emitters/connection.emitter.js:70:17)
    at Multiplexer.send (/snapshot/app/node_modules/@agnoc/core/lib/emitters/multiplexer.emitter.js:56:23)
    at Robot.send (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:1160:34)
    at Robot.sendRecv (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:1190:10)
    at Robot.controlLock (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:784:16)
    at Robot.handshake (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:788:16)
    at Robot.addConnection (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:1127:17)
    at CloudServer.handleMessage (/snapshot/app/node_modules/@agnoc/core/lib/emitters/cloud-server.emitter.js:134:13)
    at Connection.<anonymous> (/snapshot/app/node_modules/@agnoc/core/lib/emitters/cloud-server.emitter.js:154:12)
    at Connection.emit (node:events:394:28) {
  code: 'EPIPE'
}
[2021-10-19T08:42:10.288Z] [WARN] Failed to get consumables: DomainException: Timeout waiting for response from opcode 'DEVICE_MAPID_GET_CONSUMABLES_PARAM_RSP'
    at Timeout.fail [as _onTimeout] (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:1181:16)
    at listOnTimeout (node:internal/timers:557:17)
    at processTimers (node:internal/timers:500:7) {
  metadata: undefined
}
[2021-10-19T08:42:29.030Z] [ERROR] Error: read ECONNRESET
    at TCP.onStreamRead (node:internal/stream_base_commons:220:20) {
  errno: -104,
  code: 'ECONNRESET',
  syscall: 'read'
}
[2021-10-19T09:23:50.456Z] [WARN] Error while starting zone cleaning {
  body: {
    action: 'clean',
    zones: [ [Object], [Object], [Object], [Object], [Object] ]
  },
  e: DomainException: Unable to change robot mode to zone
      at /snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:348:13
      at async Robot.setMode (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:341:5)
      at async Robot.cleanAreas (/snapshot/app/node_modules/@agnoc/core/lib/emitters/robot.emitter.js:509:7)
      at async CecotecZoneCleaningCapability.start (/snapshot/app/backend/lib/robots/cecotec/capabilities/CecotecZoneCleaningCapability.js:45:9)
      at async /snapshot/app/backend/lib/webserver/capabilityRouters/ZoneCleaningCapabilityRouter.js:194:25 {
    metadata: undefined
  }
}

Hardware: Conga 5090 Home Assistant 2021.10.5 Valetudo Addon Version: 2021.09.1 (branch: feature-conga @adrigzr version)

The consumables after providing a Topic valetudo and robot name rufus in HA are published in MQTT as you can see in the partial screenshot of mqtt explorer.

Screenshot 2021-10-19 at 13 08 35
gtrabanco commented 3 years ago

In spite of this issue I think you can add 5090 to the supported models. I did not have any other issue and this is a minor issue.

adrigzr commented 3 years ago

Hi @gtrabanco,

It seems like your robot is closing connection to the server randomly. Try to restart it, maybe it got stuck at some point.

Regards,

mhassan1 commented 3 years ago

maybe related? nodejs/node#40553

i'm assuming you are running node 14.18+ or node 16.7+. can you try node 14.17 or node 16.6?

adrigzr commented 3 years ago

If you are using it with Valetudo, you should be using the higher version: 16.6

gtrabanco commented 3 years ago

maybe related? nodejs/node#40553

i'm assuming you are running node 14.18+ or node 16.7+. can you try node 14.17 or node 16.6?

I am using the congatudo addon so it should be the latest node version.

gtrabanco commented 3 years ago

Hi @gtrabanco,

It seems like your robot is closing connection to the server randomly. Try to restart it, maybe it got stuck at some point.

Regards,

Yes that could be because I can see values about consumables. I'll try your solution.