Live-Simulation im Browser
Und weil das Projekt gerade davon lebt, dass alles zusammenhängt: Hier läuft das Pumpwerk direkt im Browser. Dieselben Formeln wie im Python-Simulator, nur in JavaScript nachgebaut. Am Steuerpult drehen, ein Verbrauchsprofil wählen, einen Störfall auslösen – und zusehen, wie sich die Störung durch die ganze Anlage fortpflanzt und die Diagnose anschlägt.
Worum es geht
Das Projekt bildet die komplette Kette ab, mit der in Fabriken Maschinen überwacht werden: Ein ESP32 erfasst (bzw. simuliert) Sensordaten und schickt sie per MQTT an einen Raspberry Pi. Dort validiert eine Pipeline die Daten, schreibt sie in eine Zeitreihen-Datenbank (InfluxDB), ein Machine-Learning-Modell überwacht die Anlage live auf Anomalien, und ein Web-Dashboard zeigt alles als Leitwarte an.
Als Beispielprozess läuft ein fiktives Trinkwasser-Pumpwerk – anschaulich und allgemein verständlich, mit stark gekoppelten Messgrößen. Der Aufbau ist bewusst derselbe, mit dem man später auch eine echte Industrieanlage über Modbus auswerten würde.
Was das Projekt zeigt
Modbus-Lehrteil
Der Kern: derselbe Messwert in allen gängigen Modbus-Kodierungen – 16-Bit mit Skalierungsfaktor, 32-Bit-Float in den Wortreihenfolgen ABCD/CDAB/BADC/DCBA – samt der klassischen Falle „falsch gelesen = Zahlensalat". Dazu RTU, ASCII und TCP im Vergleich. Ein Register-Explorer im Dashboard zeigt es live.
Gekoppelte Physik
Pumpenkennlinien, Filter-Druckverlust, Behälterbilanz, UV-Dosis und Sicherheitskette (Trip < Überdruckventil) – alles thermodynamisch/hydraulisch konsistent gerechnet. Eine Störung pflanzt sich sichtbar durch die ganze Anlage fort.
Machine Learning
Eine unüberwachte Anomalieerkennung (Local Outlier Factor) lernt aus dem Normalbetrieb, wie „gesund" aussieht, und meldet Abweichungen. Ergänzt um eine regelbasierte Bauteil-Diagnose – beide Verfahren zusammen sind stark.
Live-Dashboard
Animiertes Anlagenschema mit fließenden Wasser-Teilchen, Kurven, Betriebskennzahlen (spezifischer Energieverbrauch, Wirkungsgrad, Verfügbarkeit), der Modbus-Register-Explorer, ein Steuerpult und die Auswertung – im industriellen Look.
Selbst ausprobieren
Man braucht keine Hardware: Ein eingebauter Simulator ersetzt den ESP32, die Datenbank und den Broker. Ein einziger Befehl startet das komplette Dashboard.
# Python 3.9+ vorausgesetzt python -m venv .venv .venv\Scripts\activate :: Windows (Linux/macOS: source .venv/bin/activate) pip install -e ".[dev]" python scripts/run_dashboard.py # dann http://localhost:5000 öffnen
Projekt herunterladen
Vollständiger Quellcode inklusive ESP32-Firmware, Tests und Dokumentation. Wie bei allen Projekten: kurz anfragen, ich schalte frei.
Technik im Überblick
- Physik-Simulation und Datenmodell als sauberes Python-Paket (eine Quelle der Wahrheit)
- MQTT-Datenpipeline mit Validierung, Zeitreihen-Speicherung in InfluxDB
- Anomalieerkennung (Local Outlier Factor) mit out-of-sample-Kalibrierung
- Modbus-Abbild: Coils, Discrete Inputs, Input- und Holding-Register mit CRC/LRC-Prüfsummen
- Flask-Dashboard mit animiertem SVG-Anlagenschema und eigenem Icon-Satz
- ESP32-Firmware (Arduino/C++) mit identischer Physik; systemd-Dienste für den Pi
- Automatische Tests (pytest) und ausführliche Dokumentation
Lern- und Demonstrationsprojekt. Die Anlage ist simuliert – es fließt kein echtes Wasser. Alle Werte sind jedoch untereinander konsistent gerechnet, damit die Auswertung echte Zusammenhänge lernen kann.