Skip to content

garremmash/fluxwatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Fluxwatch - Klipper Flow & Speed Dashboard

A simple yet powerful real-time dashboard for monitoring print speed and volumetric flow across one or multiple 3D printers running on Klipper firmware.

The app connects to the Moonraker API, collects data, displays it in the browser, and keeps a detailed history of all prints for further analysis.

(Tip: replace placeholder.png with an actual screenshot of your dashboard)
Dashboard Screenshot


Key Features

  • Multi-printer monitoring: Track all your Klipper printers on a single page.
  • Real-time charts: Visualize print speed (mm/s) and volumetric flow (mm³/s).
  • Live metrics: Hotend & bed temperatures, print progress, elapsed time, averages.
  • Print reports log: Automatic logging of all completed, canceled, or failed prints.
  • Snapshots: Generate mid-print reports with one click.
  • Detailed logs: Per-second log files for every finished print, available for download.
  • Auto-reconnect: Automatically reconnects to printers that were rebooted or powered off.
  • File logging: All server actions are logged into klipper_dashboard.log for debugging.

Requirements

  • 3D printer with Klipper firmware
  • Moonraker API installed and running
  • Python 3.9+

Project Structure

Files included in the archive:

/ ├── static/ │ └── index.html ├── main.py ├── requirements.txt ├── config.json.example └── README.md

Files created during runtime:

  • config.json – your personal configuration file (copy from config.json.example)
  • klipper_dashboard.log – server log file
  • print_reports.json – short history of all prints
  • report_data/ – folder with per-second logs for each print
  • .venv/ – Python virtual environment (created by you)

Installation & Setup

Step 1: Create project directory

mkdir fluxwatch
cd fluxwatch
Step 2: Setup Python environment

It’s strongly recommended to use a virtual environment:
# Create venv
python3 -m venv .venv

# Activate (Linux/macOS)
source .venv/bin/activate

# Activate (Windows)
.venv\Scripts\activate

You should now see (.venv) at the start of your terminal prompt.

Step 3: Install dependencies

pip install -r requirements.txt
Step 4: Configure printers

Copy the example config and edit it:

cp config.json.example config.json


Example config.json:

{
  "printers": [
    {
      "id": "printer1",
      "display_name": "DjMini",
      "ws_url": "ws://192.168.1.96:7125/websocket"
    },
    {
      "id": "printer2",
      "display_name": "TarTar",
      "ws_url": "ws://192.168.1.96:7126/websocket"
    }
  ]
}


ws_url: WebSocket address of your Moonraker API.
If the dashboard runs on the same device as Klipper (e.g. Raspberry Pi), use 127.0.0.1 instead of an IP address.

Running the Dashboard
Manual start (for testing)

Activate the virtual environment and run:

python -m uvicorn main:app --host 0.0.0.0 --port 8000


Do not close this terminal.
Open your browser:

http://<YOUR-IP>:8000

Automatic startup (Linux / Raspberry Pi service)

Recommended for permanent use.

Step 1: Create service file
sudo nano /etc/systemd/system/klipper-dashboard.service


Paste:

[Unit]
Description=Klipper Flow & Speed Dashboard
After=network.target moonraker.service

[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/klipper-dashboard
ExecStart=/home/pi/klipper-dashboard/.venv/bin/python -m uvicorn main:app --host 0.0.0.0 --port 8000
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target


Save with Ctrl+X, then Y and Enter.

Step 2: Enable and start service
sudo systemctl daemon-reload
sudo systemctl enable klipper-dashboard.service
sudo systemctl start klipper-dashboard.service

Step 3: Check status & logs
sudo systemctl status klipper-dashboard.service
journalctl -u klipper-dashboard -f

Troubleshooting

Address already in use – port 8000 is busy. Stop previous instance with Ctrl+C.

Printer not showing – check ws_url in config.json, ensure Moonraker is running.

Only history visible – open browser developer console (Ctrl+Shift+J) and check for JavaScript errors.

Logs – see klipper_dashboard.log or run:

journalctl -u klipper-dashboard -f

About

Klipper Flow & Speed Dashboard — a lightweight web app for real-time monitoring of print speed and volumetric flow on Klipper printers. Connects to Moonraker API, shows live charts, temps, progress, and keeps detailed print history with per-second logs for analysis.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors