A standalone and self-hosted implementation of the central server used by Ecovacs vacuum robots.
Find a file
Brian Martin 1e3550a5ee Make create_certs more resilient
Better error and file path handling
2019-06-10 08:56:56 -04:00
.github/ISSUE_TEMPLATE Update issue templates 2019-03-11 21:10:27 -04:00
bumper remove extra listeners 2019-06-09 21:16:37 -04:00
certs update gitignore add readme to empties 2019-06-07 08:05:09 -04:00
create_certs Make create_certs more resilient 2019-06-10 08:56:56 -04:00
data update gitignore add readme to empties 2019-06-07 08:05:09 -04:00
docs Update Create_Certs.md 2019-06-07 10:35:41 -04:00
examples add black and format 2019-02-22 00:09:19 -05:00
logs update gitignore add readme to empties 2019-06-07 08:05:09 -04:00
tests remove extra listeners 2019-06-09 21:16:37 -04:00
.gitignore update gitignore add readme to empties 2019-06-07 08:05:09 -04:00
.travis.yml fix tests 2019-06-07 02:00:42 -04:00
appveyor.yml fix tests 2019-06-07 02:00:42 -04:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2019-03-11 21:12:15 -04:00
LICENSE.txt License 2017-12-18 12:57:28 -08:00
Pipfile fix tests 2019-06-07 02:00:42 -04:00
Pipfile.lock fix tests 2019-06-07 02:00:42 -04:00
README.md Update README.md 2019-06-08 17:04:24 -04:00

Bumper

Bumper is a standalone and self-hosted implementation of the central server used by Ecovacs vacuum robots. Bumper allows you to have full control of your Ecovacs robots, without the robots or app talking to the Ecovacs servers and transmitting data outside of your home.

Note: The current master branch is unstable, and in active development.

Master Build Status Status
AppVeyor (Win32) AppVeyor
TravisCI (Linux) Travis (.org)

Code Test Coverage: Codecov

Testing needed Bumper needs users to assist with testing in order to ensure compatability as bumper moves forward! If you've tested Bumper with your bot, please open an issue with details on success or issues.

Please note: this software is experimental and not ready for production use. Use at your own risk.

Compatibility

As work to reverse the protocols and provide a self-hosted central server is still in progress, Bumper has had limited testing. There are a number of EcoVacs models that it hasn't been tested against. Bumper should be compatible with most wifi-enabled robots that use either the Ecovacs Android/iOS app or the Ecovacs Home Android/iOS app, but has only been reported to work on the below:

Model Protocol Used Bumper Version Tested EcoVacs App Tested
Deebot 900/901 MQTT master Ecovacs/Ecovacs Home
Deebot 600 MQTT master Ecovacs Home
Deebot Ozmo 601 XMPP master Ecovacs
Deebot Ozmo 930 XMPP master Ecovacs
Deebot M81 Pro XMPP v0.1.0 Ecovacs

For more information about the protocols and how Bumper works, see the How does it work? page in the docs. If you test against another model and it works, please open an issue to report it.

Why?

For fun, mostly :)

But seriously, there are a several reasons for eliminating the central server:

  1. Convenience: It works without an internet connection or if Ecovacs servers are down
  2. Performance: No need for messages to travel to Ecovacs server and back.
  3. Security: We can completely isolate the robot from the public Internet.

Requirements

  • An Ecovacs wifi-enabled robot
  • A computer on your local network to run the Bumper server
  • Python 3.7 and pipenv
  • A network router that has functionality for overriding DNS queries
  • A client that can connect to Bumper and talk to the robot over the Ecovacs protocol.

Quick Start Usage

Starting Bumper

Bumper requires certificates to function. If certificates aren't found it will prompt to generate them for you.

For more information on generating certificates manually, see the Creating Certs doc

  • Start Bumper with pipenv run python -m bumper

    • If prompted to generate certificates choose yes or no
  • Reboot your robot

    • Note: Some models may require removing and re-inserting the battery pack.
    • This doesn't seem to be required for models that don't have easily accessible batteries such as the 900/901.
  • If your configuration is correct, the robot will connect to Bumper within about 30 seconds. Bumper will output information about the connection status.

Command-Line Usage

Bumper has a number of available command-line arguments that can be viewed by adding the -h flag.

usage: bumper [-h] [--listen LISTEN] [--announce ANNOUNCE] [--debug]

optional arguments:
  -h, --help           show this help message and exit
  --listen LISTEN      start serving on address
  --announce ANNOUNCE  announce address to bots on checkin
  --debug              enable debug logs

Environment Variables

Bumper looks for a number of Environment Variables at initialization allowing for customizing a number of settings. For more information see the Environment Variables doc.

Thanks

A big thanks to the original project creator @torbjornaxelsson, without his work this project would have taken much longer to build.

Bumper wouldn't exist without Sucks, an open source client for Ecovacs robots. Big thanks to @wpietri and contributors!

Bumper Origins

@torbjornaxelsson created Bumper originally in 2017 and the project reached its original goal and remained in a stable, but stale state with the last commit in Dec 2017.

Since the original release of Bumper newer bots have been released that use different protocols, and in early 2019 it was decided that @bmartin5692 would take over development moving forward. This fork was detached and all future development of bumper will take place here.

Archive

The original bumper code base has been branched off as v0.1.0 and will remain in the original state. This branch may work for older models (M81 Pro, N79S, etc.), but the master branch should be tried first as it contains many changes and fixes over the original with active development moving forward.