mrbungle64 / ecovacs-deebot.js

A Node.js library for running Ecovacs Deebot and yeedi vacuum cleaner robots
GNU General Public License v3.0
113 stars 36 forks source link

Some feedback on testing with the X2 Omni. #427

Open dionmes opened 6 months ago

dionmes commented 6 months ago

I got an X2 Omni and of course wanted to try it out with my home automation setup based on nodered. I did some testing, hope you appreciate the feedback.

This library (I am using the node red implementation) is already working quite wel with the X2 Omni. Setup was straight forward, and could immediately send commands.

Things I noticed.

If you want anything tested on this vacuum I can try. I can fiddle around a bit in nodejs, have build two nodered nodes. But nothing fancy. The only thing I am missing now is starting a clean job with some specific parameters, like vacuum only. And of course, this vacuum has camera and even surveilance support but can image supporting that is way out of scope.

Thanks for building this.

mrbungle64 commented 6 months ago

@dionmes

Thank you for the feedback 👍🏻 I'm glad to hear that the basic functions seem to be working.

I'm currently implementing the functionality of the AIRBOT Z1. When I am finished, I will hopefully find the time to implement the new functionality of the current models (incl. X2 Omni).

dionmes commented 6 months ago

Oh that is great, let me know if you need any info.

mrbungle64 commented 6 months ago

@dionmes

let me know if you need any info.

Can you please check out the latest version of the library from GitHub and provide some output?

Retrieving charger position was not working. Retrieving position of the robot was working.

Please start the example app for Debug output https://github.com/mrbungle64/ecovacs-deebot.js/wiki/Example-apps#debug-output

and search for the response for getPos:

success  got response for 'getPos' with id '19298252':
event  getPos
{
  deebotPos: { x: -50, y: -579, a: 89, invalid: 0 },
  chargePos: [ { x: -49, y: -578, a: 89, t: 3, invalid: 0 } ],
  mid: '833572712'
}

You can also provide more information for the X2 Omni, but please start with some basic functionality (not the map) that is currently not working and please post every command response (the "event" output) separately 😉

dionmes commented 6 months ago

Ok, so for this one it might be the nodered implementation because the return event looks good imo.

success got response for 'getPos' with id '08287980': event getPos { chargePos: [ { a: -1, invalid: 0, t: 3, x: -634, y: -161 } ], deebotPos: { a: -1, invalid: 0, x: -634, y: -161 }, mid: '1622678466' } result DeebotPosition "-634,-161,-1" result DeebotPositionIsInvalid false result DeebotPositionCurrentSpotAreaID "void" result DeebotPositionCurrentSpotAreaName "unknown" result Position {"coords":"-634,-161,-1","x":-634,"y":-161,"a":-1,"invalid":false,"spotAreaID":"void","spotAreaName":"unknown","distanceToChargingStation":0} result ChargePosition "-634,-161,-1" result ChargingPosition {"coords":"-634,-161,-1","x":-634,"y":-161,"a":-1}

I will check the results of the other commands.