Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

X1 Support #132

Open
haarp opened this issue May 23, 2022 · 23 comments
Open

X1 Support #132

haarp opened this issue May 23, 2022 · 23 comments

Comments

@haarp
Copy link

haarp commented May 23, 2022

Hello!

Considering getting the current flagship, an Deebot X1 Omni. Is that a bad idea? How well would it be supported? I fear that many of the recent features, lke dust/water-emptying base would be unsupported.

I wouldn't mind helping out to implement them, assuming there's any hope at all to get this to work.

Thanks!

@edenhaus
Copy link
Contributor

Little bit late but also the new features should be supported if they run on the vacuum itself. In other words if the command is executed directly on the robot it should work.

@Dan87-home
Copy link

@haarp Did you manage to get it to work? I've just finished setting up internal DNS server, and am reading the documents to build this and run it on this same server before getting the X1 Omni out of the box. I'm hoping it'll work fine if I just get the latest app on my phone but not update the robot's firmware. If it never connects to the original servers, and still works, no problem.

@haarp
Copy link
Author

haarp commented Nov 27, 2022

@Dan87-home: Unfortunately I can't answer this. I ultimately went with a Roborock S7 + Valetudo instead.

@MitchellHayes
Copy link

I have an X1 Omni, and I plan to get this running at my house. I will update as I go.

@bartowski1182
Copy link

I have an X1 Omni, and I plan to get this running at my house. I will update as I go.

Did you ever get it working?

@Dan87-home
Copy link

Dan87-home commented Apr 26, 2023 via email

@Technerd-SG
Copy link

Hi I also have a Deebot X1 Omni and would be very interested to get this working on it.
Has there been any progress made?
Thanks!

@willliamchan
Copy link

willliamchan commented Feb 9, 2024

Hi I also have a Deebot X1 Omni and would be very interested to get this working on it. Has there been any progress made? Thanks!

I got one Deebot U2 Pro and two X1 Omni here with me, I have no problem onboarding U2 Pro to Bumper but nothing works for X1 Omni. I hope I have the skill to implement it tho.

Update - Just found this fork MWladislav/bumper do support T10 and I tried it and it can operate X1 Omni too, however with this fork my U2 Pro stopped working with bumper. I hope this is not much to ask but is there any chance we can combine both into one? Or any suggestion how I can run two bumpers in one network?

@willliamchan
Copy link

Hi I also have a Deebot X1 Omni and would be very interested to get this working on it. Has there been any progress made? Thanks!

I got one Deebot U2 Pro and two X1 Omni here with me, I have no problem onboarding U2 Pro to Bumper but nothing works for X1 Omni. I hope I have the skill to implement it tho.

Update - Just found this fork MWladislav/bumper do support T10 and I tried it and it can operate X1 Omni too, however with this fork my U2 Pro stopped working with bumper. I hope this is not much to ask but is there any chance we can combine both into one? Or any suggestion how I can run two bumpers in one network?

Figured out to have two adguards configured for DNS and two separate bumpers one for U2 Pro and one for X1 Omni.

U2 Pro - bmartin5692/bumper
X1 Omni - mvladislav/bumper:sha-8f8cccf (somehow the latest devlop build from mvladislav stopped working with X1 Omni)

@Technerd-SG
Copy link

That is so awsome thank you!
I will try it myself

Hi I also have a Deebot X1 Omni and would be very interested to get this working on it. Has there been any progress made? Thanks!

I got one Deebot U2 Pro and two X1 Omni here with me, I have no problem onboarding U2 Pro to Bumper but nothing works for X1 Omni. I hope I have the skill to implement it tho.
Update - Just found this fork MWladislav/bumper do support T10 and I tried it and it can operate X1 Omni too, however with this fork my U2 Pro stopped working with bumper. I hope this is not much to ask but is there any chance we can combine both into one? Or any suggestion how I can run two bumpers in one network?

Figured out to have two adguards configured for DNS and two separate bumpers one for U2 Pro and one for X1 Omni.

U2 Pro - bmartin5692/bumper X1 Omni - mvladislav/bumper:sha-8f8cccf (somehow the latest devlop build from mvladislav stopped working with X1 Omni)

Thank you that is so awsome!
I will also try it.

@Technerd-SG
Copy link

Technerd-SG commented Feb 19, 2024

So I tryed it but it seem to doesn't work. Here is what I did.
(Using debian 11 vm on Proxmox 7.4.3)

Install docker via apt (https://docs.docker.com/engine/install/debian/)

then: (start directory is /root)
docker pull ghcr.io/mvladislav/bumper:sha-8f8cccf

nano .env

BUMPER_LISTEN=0.0.0.0
TZ=Europe/Vienna
NETWORK_MODE=overlay
BUMPER_ANNOUNCE_IP=10.0.0.111

mkdir /bumper/data
mkdir /bumper/certs/

cd /bumper/certs/
wget https://raw.githubusercontent.com/MVladislav/bumper/dev/scripts/create_cert.sh
chmod +x ./create_cert.sh
./create_cert.sh

(That gets me the certs the docker container needs)
ls
bumper.crt bumper.key ca.crt ca.key create_cert.sh

cd /root

And at the end:
docker run --name bumper --env-file ./.env -p 443:443 -p 8007:8007 -p 8883:8883 -p 5223:5223 -v /home/user/bumper/data:/bumper/data -v /bumper/certs:/bumper/certs ghcr.io/mvladislav/bumper:sha-8f8cccf

The docker container starts and thats its log:

root@Bumper-Server-Docker:~# docker run --name bumper --env-file ./.env -p 443:443 -p 8007:8007 -p 8883:8883 -p 5223:5223 -v /home/user/bumper/data:/bumper/data -v /bumper/certs:/bumper/certs
  ghcr.io/mvladislav/bumper:sha-8f8cccf
[2024-02-19 13:55:15] - Starting Bumpers...
[2024-02-19 13:55:16] - Starting MQTT Server at 0.0.0.0:8883
[2024-02-19 13:55:16] - Finished processing state new exit callbacks.
[2024-02-19 13:55:16] - Finished processing state starting enter callbacks.
[2024-02-19 13:55:16] - Starting XMPP Server at 0.0.0.0:5223
[2024-02-19 13:55:16] - Finished processing state starting exit callbacks.
[2024-02-19 13:55:16] - Finished processing state started enter callbacks.
[2024-02-19 13:55:16] - Staring Helper Bot...
[2024-02-19 13:55:16] - [CONNECTION MADE]
[2024-02-19 13:55:16] - Bumper Authentication Success :: Helperbot :: helperbot@bumper/helperbot
[2024-02-19 13:55:16] - Finished processing state new exit callbacks.
[2024-02-19 13:55:16] - Finished processing state connected enter callbacks.
[2024-02-19 13:55:16] - [SEND SUB] 1 [b'iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+', b'iot/atr/+/+/+/+/+']
[2024-02-19 13:55:16] - Bumper started successfully
[2024-02-19 13:55:16] - Starting WebServer
[2024-02-19 13:55:16] - Starting WebServer Server at 0.0.0.0:443
[2024-02-19 13:55:16] - Starting WebServer Server at 0.0.0.0:8007
[2024-02-19 13:55:16] - [SUBACK] 1 (0, 0)

Looks good to me. Now the problem. When I start the X1 omni (it is already configured to connect to my wifi) I get this error:


[2024-02-19 13:56:13] - Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 332, in data_received
    messages, upgraded, tail = self._request_parser.feed_data(data)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "aiohttp/_http_parser.pyx", line 557, in aiohttp._http_parser.HttpParser.feed_data
aiohttp.http_exceptions.BadStatusLine: 400, message:
  Invalid method encountered:

    b'\x10\\'
      ^

And this error repeats every say 5 to 10 seconds if the robot is turned on.
Am I doing something wrong?
Thanks for the awsome work done here and thanks for your time reading this!

@willliamchan
Copy link

So I tryed it but it seem to doesn't work. Here is what I did. (Using debian 11 vm on Proxmox 7.4.3)

Install docker via apt (https://docs.docker.com/engine/install/debian/)

then: (start directory is /root) docker pull ghcr.io/mvladislav/bumper:sha-8f8cccf

nano .env

BUMPER_LISTEN=0.0.0.0
TZ=Europe/Vienna
NETWORK_MODE=overlay
BUMPER_ANNOUNCE_IP=10.0.0.111

mkdir /bumper/data mkdir /bumper/certs/

cd /bumper/certs/ wget https://raw.githubusercontent.com/MVladislav/bumper/dev/scripts/create_cert.sh chmod +x ./create_cert.sh ./create_cert.sh

(That gets me the certs the docker container needs) ls bumper.crt bumper.key ca.crt ca.key create_cert.sh

cd /root

And at the end: docker run --name bumper --env-file ./.env -p 443:443 -p 8007:8007 -p 8883:8883 -p 5223:5223 -v /home/user/bumper/data:/bumper/data -v /bumper/certs:/bumper/certs ghcr.io/mvladislav/bumper:sha-8f8cccf

The docker container starts and thats its log:

root@Bumper-Server-Docker:~# docker run --name bumper --env-file ./.env -p 443:443 -p 8007:8007 -p 8883:8883 -p 5223:5223 -v /home/user/bumper/data:/bumper/data -v /bumper/certs:/bumper/certs
  ghcr.io/mvladislav/bumper:sha-8f8cccf
[2024-02-19 13:55:15] - Starting Bumpers...
[2024-02-19 13:55:16] - Starting MQTT Server at 0.0.0.0:8883
[2024-02-19 13:55:16] - Finished processing state new exit callbacks.
[2024-02-19 13:55:16] - Finished processing state starting enter callbacks.
[2024-02-19 13:55:16] - Starting XMPP Server at 0.0.0.0:5223
[2024-02-19 13:55:16] - Finished processing state starting exit callbacks.
[2024-02-19 13:55:16] - Finished processing state started enter callbacks.
[2024-02-19 13:55:16] - Staring Helper Bot...
[2024-02-19 13:55:16] - [CONNECTION MADE]
[2024-02-19 13:55:16] - Bumper Authentication Success :: Helperbot :: helperbot@bumper/helperbot
[2024-02-19 13:55:16] - Finished processing state new exit callbacks.
[2024-02-19 13:55:16] - Finished processing state connected enter callbacks.
[2024-02-19 13:55:16] - [SEND SUB] 1 [b'iot/p2p/+/+/+/+/helperbot/bumper/helperbot/+/+/+', b'iot/atr/+/+/+/+/+']
[2024-02-19 13:55:16] - Bumper started successfully
[2024-02-19 13:55:16] - Starting WebServer
[2024-02-19 13:55:16] - Starting WebServer Server at 0.0.0.0:443
[2024-02-19 13:55:16] - Starting WebServer Server at 0.0.0.0:8007
[2024-02-19 13:55:16] - [SUBACK] 1 (0, 0)

Looks good to me. Now the problem. When I start the X1 omni (it is already configured to connect to my wifi) I get this error:


[2024-02-19 13:56:13] - Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 332, in data_received
    messages, upgraded, tail = self._request_parser.feed_data(data)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "aiohttp/_http_parser.pyx", line 557, in aiohttp._http_parser.HttpParser.feed_data
aiohttp.http_exceptions.BadStatusLine: 400, message:
  Invalid method encountered:

    b'\x10\\'
      ^

And this error repeats every say 5 to 10 seconds if the robot is turned on. Am I doing something wrong? Thanks for the awsome work done here and thanks for your time reading this!

I am no expert when it comes to any of these but I can share with you my docker-compose file, and I also make sure:-

  1. adguard dns which got all required domain names redirected to bumper IP.
  2. copy certs to certs folder.
  3. copy nginx.conf to nginx folder which I downloaded from https://github.com/MVladislav/bumper/tree/dev/configs/nginx
  4. restart X1.

P.S. By the way develop build is working with X1 too.


version: "3.6"

networks:
bumper:
internal: true

services:
nginx:
depends_on:
- bumper
image: nginx:alpine
networks:
default:
bumper:
ports:
- 443:443
- 5223:5223
- 8007:8007
- 8883:8883
restart: unless-stopped
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- ./nginx/:/etc/nginx:ro # See config file below

bumper:
image: ghcr.io/mvladislav/bumper:develop
restart: unless-stopped
networks:
bumper:

environment:
  PUID: 1000
  PGID: 1000
  TZ: Europe/London
  BUMPER_ANNOUNCE_IP: X.X.X.X # Insert your IP
  BUMPER_LISTEN: 0.0.0.0
  BUMPER_DEBUG: "true"
  LOG_TO_STDOUT: "true"
volumes:
  - /etc/timezone:/etc/timezone:ro
  - /etc/localtime:/etc/localtime:ro
  - ./config:/bumper/data
  - ./certs:/bumper/certs

@Technerd-SG
Copy link

Technerd-SG commented Feb 19, 2024

You are a hero. It works as you send it. I only used chat gpt to format the docker-compose.yaml.
Here is it formated:

version: "3.6"

networks:
  bumper:
    internal: true

services:
  nginx:
    depends_on:
      - bumper
    image: nginx:alpine
    networks:
      default:
      bumper:
    ports:
      - 443:443
      - 5223:5223
      - 8007:8007
      - 8883:8883
    restart: unless-stopped
    volumes:
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
      - ./nginx/:/etc/nginx:ro # See config file below

  bumper:
    image: ghcr.io/mvladislav/bumper:develop
    restart: unless-stopped
    networks:
      bumper:
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Europe/London
      BUMPER_ANNOUNCE_IP: X.X.X.X # Insert your IP
      BUMPER_LISTEN: 0.0.0.0
      BUMPER_DEBUG: "true"
      LOG_TO_STDOUT: "true"
    volumes:
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
      - ./config:/bumper/data
      - ./certs:/bumper/certs

Thank you so much!

Now I'll ty to add it to Homeassistant

@Technerd-SG
Copy link

I added it to Homeassistant via the Official Ecovacs integration. Everything works fine but the map is only updated after the robot finished cleaning. Is that normal? Would there be a way to change that (to look were the robot is). Its not very Important but I think it would be cool.
Best regards and thanks for the help!
You guys (and girls) are awsome!

@Whythoms
Copy link

Hi !
i got someting weird here :
everything's made with your advices but :

image

Have you any ideas?

@Whythoms
Copy link

i tried to backup original Conf file, same error,
copy paste the given one on git : same error...

Start and shuting down message..
Again. i'm lost.

@Technerd-SG
Copy link

Technerd-SG commented Jul 20, 2024

Do you use proxmox by any chance?
Or what are you using?
Is it a clean install (for example debain 11/12 with docker and nothing else?)

Also did you generate a self signed cert for Bumperserver?
Maybe this helps: https://bumper.readthedocs.io/en/latest/Create_Certs/

@Whythoms
Copy link

Whythoms commented Jul 21, 2024 via email

@Whythoms
Copy link

Whythoms commented Jul 25, 2024 via email

@Whythoms
Copy link

Whythoms commented Jul 30, 2024

Sorry for that I dnt know that mailing replies were so messy…

‘IT seems that you was right, CERT génération solved a part of the issue BUT

No error in the log if Im trying ti reach the https/ipadress of my bumper I can see the No data connection apears in the terminal..

‘good !

But that’s all..

when i tried to reach ecovacs.com It doesnt worked
HTTPS://ecovacs.com Worked with certificate warnong from my browser but .. weird.

AND most important

I tried to used the app on my phone but no entries in the terminal and the app is stil checking credentials from database because i got the « wrong credentials » message.

il using a tp link router who force the DNS to PiHole server with ecouser.net, ecovacs.net, ecovacs.com are redirected to my Bumper IP

… still lost

FYI :
I sent the ca.crt by mail AND installed IT on my phone

but https://ecouser.net worked properly (reached to m’y bumper webpage with services status)

but https://ecovacs.com stil showing certificate Warning

maybe thats a point ?

thanks for your fast answer by the way ! Your answer helped me a lot !!!! :)

@bjo81
Copy link

bjo81 commented Oct 13, 2024

I would like to try bumper with my X1e and searched for the MWladislav/bumper fork - is it gone?

@Technerd-SG
Copy link

Why should it be?
https://github.com/MVladislav/bumper

@bjo81
Copy link

bjo81 commented Oct 13, 2024

Why should it be? https://github.com/MVladislav/bumper

Seems like I created a wrong URLs, nice to see it still exists.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants