Valeronoi (Valetudo + Voronoi) is a companion for Valetudo for generating WiFi signal strength maps. It visualizes them using a Voronoi diagram.

.vwm) format.Binary distributions are available for Linux, macOS and Windows (x86_64). They can be found in the releases.
flatpak install Valeronoi-flatpak-*.flatpak).vwm file.If your robot does not support persistent maps (e.g., older Roborock V1) or the feature is disabled, only record during partial cleanups. A full cleanup may regenerate the map, changing internal coordinates and corrupting the recording.
If the visualization is slow, adjust settings in the Display tab:
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc)
A Flatpak manifest (de.ccoors.valeronoi.yaml) is included for local builds.
flatpak install flathub org.kde.Sdk//6.11 org.kde.Platform//6.11
flatpak-builder --user --install --force-clean build-dir de.ccoors.valeronoi.yaml
flatpak run de.ccoors.valeronoi
A PKGBUILD is available in tools/pkgbuild/valeronoi-git. You can build and install it using:
makepkg -si
Valeronoi includes a test suite to ensure core logic (Voronoi generation, data handling) remains stable.
To build and run tests:
mkdir build && cd build
cmake ..
cmake --build .
./valeronoi-tests
Valeronoi can run without a GUI for automated WiFi scans, e.g. triggered by a cron job on a headless home server.
# Start cleaning in vacuum-only mode and record for 30 minutes
valeronoi --headless \
--url http://192.168.1.100 \
--mode vacuum \
--command start \
--output scan.vwm \
--duration 1800
# Send a command without recording (e.g. send robot home)
valeronoi --headless --url http://192.168.1.100 --command home
Pressing Ctrl+C (or sending SIGTERM) saves collected data before exiting.
| Option | Description |
|---|---|
--headless | Run without GUI (required) |
--url <url> | Valetudo robot URL |
--output <file> | Output .vwm file (extension added automatically) |
--duration <sec> | Stop recording after N seconds |
--interval <sec> | WiFi polling interval (default: 5s) |
--mode <mode> | Set operation mode: vacuum, mop, vacuum_and_mop |
--command <cmd> | Robot command: start, stop, home, pause, locate |
--return-home | Send stop + home when recording ends (duration or Ctrl+C) |
--auth | Enable HTTP basic auth |
--user / --pass | Auth credentials |
Non-start commands (stop, home, pause, locate) execute immediately and exit — no recording is performed even if --output is specified.
# Build
podman build -f Containerfile.build -t valeronoi-build .
podman run --rm -v "$PWD:/host:Z" -w /host valeronoi-build \
bash -c "mkdir -p build && cd build && cmake .. && cmake --build . -j$(nproc)"
podman build -f Containerfile.run -t valeronoi .
# Run
podman run --rm --network host -v ./output:/output:Z valeronoi \
--headless --url http://192.168.1.100 \
--mode vacuum --command start \
--output /output/wifi_$(date +%F_%H%M).vwm --duration 1800
# Daily 30-minute WiFi scan at 10:00
0 10 * * * podman run --rm --network host -v /data/wifi:/output:Z valeronoi --headless --url http://192.168.1.100 --mode vacuum --command start --output /output/scan_$(date +\%F).vwm --duration 1800
The resulting .vwm files can be opened in the GUI for Voronoi visualization and image export.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
GPLv3
C++
94.1%
CMake
2.9%
NSIS
1.0%
Valeronoi (Valetudo + Voronoi) is a companion for Valetudo for generating WiFi signal strength maps. It visualizes them using a Voronoi diagram.

.vwm) format.Binary distributions are available for Linux, macOS and Windows (x86_64). They can be found in the releases.
flatpak install Valeronoi-flatpak-*.flatpak).vwm file.If your robot does not support persistent maps (e.g., older Roborock V1) or the feature is disabled, only record during partial cleanups. A full cleanup may regenerate the map, changing internal coordinates and corrupting the recording.
If the visualization is slow, adjust settings in the Display tab:
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc)
A Flatpak manifest (de.ccoors.valeronoi.yaml) is included for local builds.
flatpak install flathub org.kde.Sdk//6.11 org.kde.Platform//6.11
flatpak-builder --user --install --force-clean build-dir de.ccoors.valeronoi.yaml
flatpak run de.ccoors.valeronoi
A PKGBUILD is available in tools/pkgbuild/valeronoi-git. You can build and install it using:
makepkg -si
Valeronoi includes a test suite to ensure core logic (Voronoi generation, data handling) remains stable.
To build and run tests:
mkdir build && cd build
cmake ..
cmake --build .
./valeronoi-tests
Valeronoi can run without a GUI for automated WiFi scans, e.g. triggered by a cron job on a headless home server.
# Start cleaning in vacuum-only mode and record for 30 minutes
valeronoi --headless \
--url http://192.168.1.100 \
--mode vacuum \
--command start \
--output scan.vwm \
--duration 1800
# Send a command without recording (e.g. send robot home)
valeronoi --headless --url http://192.168.1.100 --command home
Pressing Ctrl+C (or sending SIGTERM) saves collected data before exiting.
| Option | Description |
|---|---|
--headless | Run without GUI (required) |
--url <url> | Valetudo robot URL |
--output <file> | Output .vwm file (extension added automatically) |
--duration <sec> | Stop recording after N seconds |
--interval <sec> | WiFi polling interval (default: 5s) |
--mode <mode> | Set operation mode: vacuum, mop, vacuum_and_mop |
--command <cmd> | Robot command: start, stop, home, pause, locate |
--return-home | Send stop + home when recording ends (duration or Ctrl+C) |
--auth | Enable HTTP basic auth |
--user / --pass | Auth credentials |
Non-start commands (stop, home, pause, locate) execute immediately and exit — no recording is performed even if --output is specified.
# Build
podman build -f Containerfile.build -t valeronoi-build .
podman run --rm -v "$PWD:/host:Z" -w /host valeronoi-build \
bash -c "mkdir -p build && cd build && cmake .. && cmake --build . -j$(nproc)"
podman build -f Containerfile.run -t valeronoi .
# Run
podman run --rm --network host -v ./output:/output:Z valeronoi \
--headless --url http://192.168.1.100 \
--mode vacuum --command start \
--output /output/wifi_$(date +%F_%H%M).vwm --duration 1800
# Daily 30-minute WiFi scan at 10:00
0 10 * * * podman run --rm --network host -v /data/wifi:/output:Z valeronoi --headless --url http://192.168.1.100 --mode vacuum --command start --output /output/scan_$(date +\%F).vwm --duration 1800
The resulting .vwm files can be opened in the GUI for Voronoi visualization and image export.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
GPLv3
C++
94.1%
CMake
2.9%
NSIS
1.0%