Vacuula offers a self-hosted server to repair broken Neato robot vacuums

Vacuula offers a self-hosted server to repair broken Neato robot vacuums

Vacuula is a project on GitHub (vacuula/vacuula) described in its README as an all-in-one solution to repair and control a broken Neato robot vacuum. The repair has two parts: you set up a server, and you configure the robot.

Support is listed by hardware generation. Gen1 robots have no wifi, so they are out of scope. Gen2, the BotVac Connected, is marked as not yet supported and sits on the todo list; the README says the original BotVac Connected did not fit into the initial release and that support is in the works and coming very soon. Gen3 (D3, D4, D5, D6, D7) and Gen4 (D800, D8, D9, D10) are marked as supported. Owners of a robot that is not listed are invited to get in touch. Gen4 owners whose robot is stuck in "rainbow mode", with different colors flashing and the robot not starting, are pointed to the project's Discord for help with repair.

The server has to be always on, so it needs dedicated hardware; the README points to the FAQ for hardware advice. A community server is being looked into, but it will not be ready for the initial release, so every user has to run their own. Three setup routes are offered: Docker Compose, an app in Home Assistant, and LXC or standalone. The project recommends its own Home Assistant App Store repo for Home Assistant users and Docker Compose for everyone else. Installing Docker is called probably the hardest part for anyone new to self-hosting, and a guide is being written in the FAQ.

The Docker Compose route is short. Download docker-compose.yaml from the latest GitHub release, run docker compose up -d, and configure the server through environment variables. Logs come from docker compose logs vacuula, docker compose down stops it, and docker compose up -d starts it again. To permanently remove stored data, run docker volume rm vacuula-data after stopping Vacuula.

The robot side uses an installer built for the purpose, with downloads per operating system and a table of tested and verified systems. On Linux, the user must run sudo usermod -aG dialout $USER to join the dialout group and then reboot before using it. The installer's source code is in a separate repository, vacuula/installer. People with an exotic setup who cannot run the installer are asked to get in touch.

Two technical notes close the README. Gen3 robots require port 443, and if enabled, the Vacuula server and webapp are also hosted on that port so that PWAs work. The server has so far been tested and verified only on ARM 64-bit and x86 64-bit; the project wants to support at least ARM 32-bit and possibly x86 32-bit too, mainly so the server can run on older single-board computers, and says it is looking into this.

Key facts

  • Vacuula is a GitHub project combining a self-hosted server and a robot installer to repair and control broken Neato robot vacuums.
  • Marked as supported: Gen3 (D3, D4, D5, D6, D7) and Gen4 (D800, D8, D9, D10). The Gen2 BotVac Connected is not yet supported but is said to be coming very soon; Gen1 has no wifi.
  • Users must run their own always-on server, via Docker Compose, a Home Assistant app, or LXC/standalone; a community server is only being looked into.
  • Gen3 robots require port 443; the server has been tested only on ARM 64-bit and x86 64-bit so far.
  • Gen4 robots stuck in "rainbow mode" can get repair help through the project's Discord.

Why it matters

The project targets owners of Neato robot vacuums that no longer work properly and offers them a way to repair and control the robots themselves instead of replacing them. It does this with a self-hosted server rather than a vendor service, and it covers two full robot generations: Gen3 (D3 to D7) and Gen4 (D800, D8, D9, D10).

Who it affects

Owners of Neato Gen3 and Gen4 robots are the direct audience, along with Gen4 owners whose robot is stuck in rainbow mode. Owners of the original BotVac Connected (Gen2) have to wait; Gen1 robots have no wifi and are not covered. Because the server must run around the clock, it suits people who already self-host or who are willing to dedicate a small machine to it, including Home Assistant users.

How to use it

First pick dedicated hardware for the always-on server; the FAQ covers hardware choices. Then choose a route: the project's Home Assistant App Store repo for Home Assistant users, or Docker Compose otherwise (LXC/standalone is also offered). With Docker Compose, download docker-compose.yaml from the latest release, run docker compose up -d, and set options through environment variables. Next, download the installer for your operating system and configure the robot with it. On Linux, add your user to the dialout group with sudo usermod -aG dialout $USER and reboot first. Gen3 robots need port 443.

How solid is it

Everything here comes from the project's own README, so it is a statement of what the authors say works, not independent testing. The source names no individual authors or maintainers, and gives no release date, version number, licence, user numbers or performance figures. The README says the server has been tested and verified only on ARM 64-bit and x86 64-bit. The installer's source code is public in the vacuula/installer repository.

Risks and caveats

The server must always be on, so you carry the cost and upkeep of dedicated hardware, and a community server is not ready for the initial release. Docker setup is described by the project itself as probably the hardest part for people new to self-hosting. Gen2 BotVac Connected support has no timescale beyond "very soon", and 32-bit ARM and x86 support is only being looked into. Gen3 robots require port 443, which the server's webapp can also use if enabled. The command to remove stored data, docker volume rm vacuula-data, permanently deletes it. The source does not say why the robots are broken in the first place.

“Vacuula is made as an all-in-one solution to repair and control your broken Neato Robot vacuum.”

— Vacuula README