6.9 KiB
Mercedes-Benz TBA Marienfelde - 3D-Drucker Management System
Übersicht
Ein umfassendes Management-System für 3D-Drucker in der Mercedes-Benz Technischen Berufsausbildung (TBA) Marienfelde. Das System ermöglicht die zentrale Verwaltung, Überwachung und Steuerung von 3D-Druckern und deren Stromversorgung.
Hauptfunktionen
🖨️ Drucker-Management
- Zentrale Verwaltung aller 3D-Drucker
- Echtzeit-Statusüberwachung
- Druckjob-Verwaltung und -Scheduling
- Benutzer- und Rechteverwaltung
⚡ NEU: Steckdosen-Test-System
Sichere Testfunktion für Ausbilder und Administratoren zur Steuerung der Druckerstromversorgung:
- Sicherheitsprüfungen: Automatische Warnungen bei aktiven Druckjobs
- Risikobewertung: Intelligente Analyse basierend auf Stromverbrauch und Gerätestatus
- Force-Modus: Notfallsteuerung mit erweiterten Sicherheitsabfragen
- Audit-Trail: Vollständige Protokollierung aller Testaktivitäten
- Echtzeit-Monitoring: Live-Status aller konfigurierten Steckdosen
Zugriff: /socket-test
(nur für Administratoren)
📊 Monitoring & Analytics
- Live-Dashboard mit Druckerstatus
- Energieverbrauchsüberwachung
- Statistiken und Berichte
- Fehlerprotokollierung
👤 Benutzer-System
- Rollenbasierte Zugriffskontrolle
- Gastanfragen für externe Nutzer
- Admin-Bereich für Systemverwaltung
- Session-Management mit automatischem Logout
Technische Spezifikationen
Backend
- Framework: Flask (Python)
- Datenbank: SQLite mit WAL-Modus
- ORM: SQLAlchemy
- Authentifizierung: Flask-Login
- API: RESTful JSON-API
Frontend
- Framework: Vanilla JavaScript + Tailwind CSS
- Design: Mercedes-Benz Corporate Design
- Responsive: Mobile-first Design
- Interaktion: AJAX-basierte Real-time Updates
Hardware-Integration
- Steckdosen: TP-Link Tapo P110 Smart Plugs
- Protokoll: PyP100 für Tapo-Kommunikation
- Netzwerk: Lokales Subnetz für Geräte-Kommunikation
Installation
Voraussetzungen
- Python 3.8+
- Node.js 16+ (für Frontend-Build)
- Netzwerkzugang zu den Steckdosen
Setup
# Repository klonen
git clone <repository-url>
cd backend
# Python-Abhängigkeiten installieren
pip install -r requirements.txt
# Frontend-Abhängigkeiten installieren
npm install
# CSS kompilieren
npm run build-css
# Datenbank initialisieren
python -c "from models import init_database; init_database()"
# Anwendung starten
python app.py
Erste Schritte
- Admin-Account erstellen: Beim ersten Start wird automatisch ein Admin-Account erstellt
- Drucker hinzufügen: Über das Admin-Panel Drucker und Steckdosen konfigurieren
- Benutzer verwalten: Weitere Benutzer und Rollen zuweisen
- Steckdosen testen: Über
/socket-test
die neue Testfunktionalität nutzen
Konfiguration
Umgebungsvariablen
# Grundkonfiguration
SECRET_KEY=<sicherheitsschlüssel>
DATABASE_PATH=database/app.db
ENVIRONMENT=production
# Steckdosen-Konfiguration
TAPO_USERNAME=<steckdosen-benutzername>
TAPO_PASSWORD=<steckdosen-passwort>
Drucker-Steckdosen-Zuordnung
Jeder Drucker kann mit einer Steckdose verknüpft werden:
- IP-Adresse der Steckdose
- Benutzername/Passwort für Authentifizierung
- MAC-Adresse für eindeutige Identifikation
Sicherheit
Zugriffskontrolle
- CSRF-Schutz für alle Formulare
- Session-basierte Authentifizierung
- Rollenbasierte Berechtigungen (Admin/User)
- Automatisches Session-Timeout
Steckdosen-Sicherheit
- Risikobewertung vor jeder Aktion
- Automatische Warnungen bei aktiven Jobs
- Force-Modus nur mit expliziter Bestätigung
- Vollständige Audit-Logs aller Aktionen
API-Dokumentation
Steckdosen-Test-Endpunkte
GET /api/printers/test/socket/{printer_id}
Detaillierter Status einer Steckdose mit Sicherheitsbewertung
POST /api/printers/test/socket/{printer_id}/control
Steckdose für Tests ein-/ausschalten mit Sicherheitsprüfungen
GET /api/printers/test/all-sockets
Übersicht aller Steckdosen mit Zusammenfassung
Vollständige API-Dokumentation: docs/STECKDOSEN_TEST_DOKUMENTATION.md
Projektstruktur
backend/
├── app.py # Hauptanwendung
├── models.py # Datenmodelle
├── requirements.txt # Python-Abhängigkeiten
├── blueprints/ # Modulare Routen
│ ├── printers.py # Drucker-Management (inkl. Steckdosen-Tests)
│ ├── users.py # Benutzerverwaltung
│ ├── guest.py # Gastanfragen
│ └── calendar.py # Terminplanung
├── templates/ # HTML-Templates
│ ├── base.html # Basis-Template
│ ├── socket_test.html # Steckdosen-Test-Interface
│ └── ...
├── static/ # Statische Dateien
├── utils/ # Hilfsfunktionen
├── config/ # Konfigurationsdateien
├── docs/ # Dokumentation
│ └── STECKDOSEN_TEST_DOKUMENTATION.md
└── database/ # Datenbankdateien
Wartung
Regelmäßige Aufgaben
- Backup der Datenbank erstellen
- Log-Rotation für Speicherplatz-Management
- Steckdosen-Konnektivität prüfen
- Updates für Sicherheits-Patches
Monitoring
- Anwendungs-Logs in
logs/
Verzeichnis - Datenbank-Größe und Performance überwachen
- Netzwerk-Verbindungen zu Steckdosen prüfen
Support
Fehlerbehebung
- Logs prüfen:
logs/app/
für Anwendungsfehler - Netzwerk testen: Erreichbarkeit der Steckdosen prüfen
- Datenbank-Status: SQLite-Datei auf Korruption prüfen
Häufige Probleme
- Steckdose nicht erreichbar: IP-Adresse und Netzwerk prüfen
- Admin-Zugriff verweigert: Benutzerrolle in Datenbank kontrollieren
- Session-Timeout: Einstellungen in
config/settings.py
anpassen
Entwicklung
Lokale Entwicklung
# Development Server
export FLASK_ENV=development
python app.py
# CSS Watch Mode
npm run watch-css
# Tests ausführen
python -m pytest tests/
Deployment
Das System läuft produktiv in der Mercedes-Benz TBA Marienfelde und ist für Windows-Umgebungen optimiert.
Changelog
Version 1.1 (2025-01-05)
- ✨ NEU: Steckdosen-Test-System für Administratoren
- 🔒 Sicherheit: Erweiterte Risikobewertung und Warnungen
- 📊 Monitoring: Live-Status aller Steckdosen
- 📝 Audit: Vollständige Protokollierung aller Testaktivitäten
- 🎨 UI: Dedizierte Steckdosen-Test-Oberfläche
Version 1.0
- Grundlegendes Drucker-Management-System
- Benutzer- und Rechteverwaltung
- Dashboard und Monitoring
- Gastanfragen-System
Lizenz
Internes Projekt der Mercedes-Benz AG für die TBA Marienfelde.
Entwickelt für: Mercedes-Benz Technische Berufsausbildung Marienfelde
Letzte Aktualisierung: 2025-01-05
Version: 1.1