33 KiB
MYP – Manage Your Printer
Digitalisierung des 3D-Drucker-Reservierungsprozesses durch Etablierung der cyberphysischen Kommunikation mit relevanten Hardwarekomponenten
Abschlussprüfung – Sommer 2025
Fachinformatiker für digitale Vernetzung
Abgabedatum: 5. Juni 2025
Ausbildungsbetrieb
Mercedes-Benz AG
Daimlerstraße 143
D-12277 Berlin
Prüfungsbewerber
Till Tomczak
Hainbuchenstraße 19
D-16761 Hennigsdorf
Inhaltsverzeichnis
-
- Einleitung 3
- 1.1 Analyse des Projektauftrag 3
- 1.2 Ableitung der Projektziele 3
- 1.3 Projektabgrenzung 3
- 1.4 Projektumfeld 3
- 1.5 Betriebliche Schnittstellen 3
- 1.6 Analyse der IT-sicherheitsrelevante Bedingungen 3
- 1.7 Darstellung der vorhandenen Systemarchitektur 3
-
- Projektplanung 3
- 2.1 Terminplanung 3
- 2.2 Ressourcenplanung 3
- 2.3 Planung der Qualitätssicherung 3
- 2.4 Bewertung der heterogenen IT-Landschaft 3
- 2.5 Anforderungsgerechte Auswahl der Übertragungssysteme 4
- 2.6 Planung der Prozess-/ und Systemschnittstellen 4
- 2.7 Planung der IT-Sicherheitsmaßnahmen 4
-
- Durchführung und Auftragsbearbeitung 4
- 3.1 Prozess-Schritte und Vorgehensweise 4
-
- 3.1.1 Datenabfrage der Sensoren 4
-
- 3.1.2 Verarbeiten der Daten 4
- 3.2 Abweichung, Anpassung und Entscheidungen 4
- 3.3 Maßnahmen zur Qualitätskontrolle 4
- 3.4 Implementierung, Konfiguration und Inbetriebnahme von Schnittstellen und unterschiedlicher Prozesse und Systeme 4
- 3.5 Konfiguration von Übertragungssystemen und Integration in die Gesamtinfrastruktur 4
- 3.6 Erfüllen der Anforderungen an die Informationssicherheit 4
-
- Projektabschluss 4
- 4.1 Soll-Ist-Vergleich (Abweichung, Anpassungen) 4
- 4.2 Fazit 4
- 4.3 Optimierungsmöglichkeiten 5
- 4.4 Abnahme 5
1 Einleitung
MYP (Manage Your Printer) entstand, weil mein Ausbilder an der Technischen Berufsausbildungsstätte (TBA) dringend eine Lösung für die bis dato de facto nicht vorhandenen Reservierungsprozesse der 3D-Drucker brauchte; ein früheres Frontend-Gerüst eines anderen Azubis war lediglich ein Prototyp und Proof of Concept ohne Backend-Anbindung oder produktionstaugliche Vernetzung, sodass es im Praxisbetrieb keine verlässliche Basis bot. Zudem wurde noch keine Hardware aufgebaut, sodass die Kollegen das tatsächlich hätten nutzen können. MYP schließt diese Lücke mit einem Flask-Backend, einer leichten SQLite-Datenbank und einer PWA-fähigen Oberfläche, die auch ohne Internet funktioniert – ein Offline-Betrieb, der in der industriellen Umgebung der TBA aus Sicherheitsgründen zwingend notwendig ist. Über TP-Link-Tapo-P110-Smart-Plugs regelt das System ausschließlich die Stromzufuhr der Drucker und bleibt damit herstellerunabhängig. Ein klares Rollenmodell trennt Administrierende, die Drucker und Nutzer anlegen, von den Benutzerinnen und Benutzern, die einfach ihre Zeitfenster buchen und ihre Druckjobs verwalten. Sobald eine Reservierung aktiv wird, schaltet MYP den betreffenden Drucker automatisch ein und nach Ablauf wieder aus; gleichzeitig protokolliert es sämtliche Laufzeiten, um präzise Statistiken über Auslastung und Gesamtdruckdauer zu liefern. Ein dedizierter Kiosk-Modus auf einem Raspberry Pi zeigt auf einem Monitor neben den Geräten im Vollbild aktuelle Belegungen und den Systemstatus an und fügt sich so nahtlos in den Produktionsalltag der TBA ein.
1.1 Analyse des Projektauftrags
Ausgangssituation: Die Technische Berufsausbildungsstätte (TBA) der Mercedes-Benz AG Berlin verfügte über sechs 3D-Drucker ohne digitales Reservierungssystem. Manuelle Verwaltung führte zu Terminkonflikten und ineffizienter Ressourcennutzung.
Projektauftrag: Entwicklung eines cyber-physischen Systems zur automatisierten Verwaltung und Steuerung von 3D-Druckern durch intelligente Vernetzung zwischen IT-Infrastruktur und Hardware-Komponenten.
Technische Anforderungen:
- Automatisierte Ein-/Ausschaltung über IoT-Smart-Plugs
- Offline-fähige Systemarchitektur für Sicherheitsumgebung
- RESTful-API für Frontend-Integration
- Produktionsreife Deployment-Lösung auf Raspberry Pi
1.2 Ableitung der Projektziele
Hauptziel: Vollständige Digitalisierung des 3D-Drucker-Reservierungsprozesses durch cyber-physische Vernetzung
Technische Ziele:
- IoT-Integration: TP-Link Tapo P110 Smart-Plugs als Hardware-Schnittstelle
- Backend-Entwicklung: Flask-basierte REST-API mit SQLite-Persistierung
- Offline-Architektur: Vollständige Funktionalität ohne Internet-Dependency
- Automatisierung: Thread-basierter Scheduler für zeitgesteuerte Hardware-Kontrolle
- Fallback-System: Lokales Web-Frontend als Alternative zur Intranet-Integration
Betriebswirtschaftliche Ziele:
- Eliminierung manueller Reservierungsprozesse
- Optimierung der Ressourcenauslastung durch Konfliktvermeidung
- Energieeffizienz durch bedarfsgerechte Stromversorgung
1.3 Projektabgrenzung
Im Projektumfang:
- Stromversorgungssteuerung über Smart-Plugs
- Reservierungssystem mit Terminkalender
- RESTful-API für externe Frontend-Integration
- Kiosk-Modus für lokale Bedienung
- Automatisierte Logging und Monitoring
Außerhalb des Projektumfangs:
- Direkte Druckerdatenübertragung (G-Code-Transfer)
- Druckfortschrittsüberwachung
- Automatische Filament-Verwaltung
- Integration in übergeordnete ERP-Systeme
- Cloud-basierte Lösungsansätze
1.4 Projektumfeld
Organisatorisches Umfeld:
- Auftraggeber: Mercedes-Benz AG, Technische Berufsausbildungsstätte Berlin
- Projektleitung: Till Tomczak (Backend-Entwicklung)
- Teampartner: Torben Haack (Frontend-Entwicklung Next.js PWA)
- Fachlicher Betreuer: Ausbildungsleitung TBA
Technisches Umfeld:
- Zielumgebung: Raspberry Pi 4 im isolierten Netzwerksegment
- Hardware: 6x TP-Link Tapo P110, 6x 3D-Drucker verschiedener Hersteller
- Netzwerk: Lokales WLAN-Segment ohne Internet-Zugang
- Betriebssystem: Raspberry Pi OS (Debian-basiert)
1.5 Betriebliche Schnittstellen
IT-Infrastruktur:
- Netzwerk-Administration: Konfiguration isoliertes WLAN-Segment
- Security-Team: Freigabe für Smart-Plug-Integration
- Hardware-Support: Bereitstellung Raspberry Pi und Touch-Display
Fachbereiche:
- Ausbildungsleitung: Anforderungsdefinition und Abnahme
- Lehrwerkstatt: Feedback zu Usability und Arbeitsabläufen
- Wartung: Schulung für System-Administration
Externe Partner:
- Frontend-Entwicklung: Schnittstellen-Koordination mit Torben Haack
- Hardware-Lieferanten: Technische Spezifikationen TP-Link Tapo P110
1.6 Analyse der IT-sicherheitsrelevanten Bedingungen
Sicherheitsumgebung Mercedes-Benz AG:
- Isoliertes Netzwerksegment ohne Internet-Zugang im Produktivbetrieb
- Keine Cloud-Services oder externe API-Abhängigkeiten zulässig
- Lokale Authentifizierung und Session-Management erforderlich
Implementierte Sicherheitsmaßnahmen:
- Authentifizierung: bcrypt-gehashte Passwörter, rollenbasierte Zugriffskontrolle
- Netzwerksicherheit: Beschränkung auf lokales Subnetz 192.168.0.0/24
- Datenschutz: Keine personenbezogenen Daten außer Benutzer-E-Mail
- Verschlüsselung: HTTPS mit selbstsignierten SSL-Zertifikaten
- Session-Security: Flask-Session-Management mit secure Cookies
Compliance-Anforderungen:
- DSGVO-konforme Datenhaltung (lokale SQLite-Datenbank)
- Auditierbare Logging-Funktionen
- Keine Übertragung sensibler Daten über Netzwerkgrenzen hinweg
1.7 Darstellung der vorhandenen Systemarchitektur
Ausgangsarchitektur TBA:
- 6x 3D-Drucker (verschiedene Hersteller: Prusa, Ultimaker, Artillery)
- Manueller Reservierungskalender (Papier/Whiteboard)
- Lokales WLAN-Netzwerk (separates Segment für IoT-Geräte)
- Windows-PC für administrative Tätigkeiten
Geplante Zielarchitektur:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Next.js PWA │ │ Flask Backend │ │ Smart Plugs │
│ (Torben Haack) │◄──►│ (Till Tomczak) │◄──►│ TP-Link P110 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
▲ ▲ ▲
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Touch Display │ │ SQLite Database │ │ 3D Printers │
│ (Kiosk Mode) │ │ (Local Data) │ │ (Power Control) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
Infrastruktur-Komponenten:
- Raspberry Pi 4: Produktionsserver mit 4GB RAM, 64GB SD-Karte
- WLAN-Netzwerk: Dedicated IoT-Segment (192.168.0.0/24)
- Touch-Display: 7" Raspberry Pi Display für Kiosk-Bedienung
- Smart-Plugs: 6x TP-Link Tapo P110 mit lokaler API-Steuerung
2 Projektplanung
Die Projektplanung erfolgte iterativ nach agilen Prinzipien mit klarer Fokussierung auf die cyber-physische Vernetzung zwischen Software-Systemen und IoT-Hardware-Komponenten.
2.1 Terminplanung
Projektlaufzeit: 15. April 2025 - 20. Mai 2025 (5 Wochen)
Sprint-Planung nach Scrum-Prinzipien:
Sprint | Zeitraum | Schwerpunkt | Deliverables |
---|---|---|---|
Sprint 1 | KW 16 (15.-21.04.) | System-Design & Setup | Datenmodell, API-Spezifikation, Hardware-Integration |
Sprint 2 | KW 17 (22.-28.04.) | Backend-Implementierung | Flask-REST-API, SQLite-Schema, Smart-Plug-Steuerung |
Sprint 3 | KW 18 (29.04.-05.05.) | Scheduler & Automatisierung | Thread-basierter Job-Scheduler, Hardware-Tests |
Sprint 4 | KW 19 (06.-12.05.) | Integration & Frontend | Fallback-Frontend, API-Integration, Kiosk-Modus |
Sprint 5 | KW 20 (13.-20.05.) | Testing & Deployment | Systemtests, Raspberry Pi Setup, Dokumentation |
Meilensteine:
- M1 (21.04.): Smart-Plug-Kommunikation funktionsfähig
- M2 (28.04.): REST-API vollständig implementiert
- M3 (05.05.): Automatisierte Scheduler-Logik validiert
- M4 (12.05.): Komplettes System auf Raspberry Pi deployed
- M5 (20.05.): Abnahme durch Ausbildungsleitung erfolgt
2.2 Ressourcenplanung
Hardware-Ressourcen:
Komponente | Spezifikation | Zweck | Beschaffung |
---|---|---|---|
Raspberry Pi 4 Model B | 4GB RAM, 64GB SD-Karte | Produktionsserver | TBA-Inventar |
TP-Link Tapo P110 (6x) | Smart Plug mit Energiemonitoring | IoT-Hardware-Schnittstelle | Projekt-Budget |
Touch-Display 7" | Raspberry Pi kompatibel | Kiosk-Interface | TBA-Inventar |
Netzwerk-Hardware | WLAN-Router, Switch | Isoliertes IoT-Segment | Bestehende Infrastruktur |
Software-Ressourcen:
Technologie | Version | Lizenz | Zweck |
---|---|---|---|
Python | 3.11+ | Open Source | Backend-Entwicklung |
Flask | 2.3+ | Open Source | Web-Framework |
SQLAlchemy | 2.0+ | Open Source | ORM-Mapper |
PyP100 | Latest | Open Source | Smart-Plug-API |
SQLite | 3.x | Open Source | Lokale Datenbank |
Personalressourcen:
- Till Tomczak: Backend-Entwicklung (100% Projektzeit)
- Torben Haack: Frontend-Entwicklung (parallel, separate Bewertung)
- Ausbildungsleitung: Fachliche Betreuung (5h/Woche)
- IT-Support: Netzwerk-Konfiguration (2h einmalig)
2.3 Planung der Qualitätssicherung
Test-Strategie nach V-Modell:
┌─────────────────┐ ┌─────────────────┐
│ Anforderungen │◄──►│ Abnahmetests │
└─────────────────┘ └─────────────────┘
┌─────────────────┐ ┌─────────────────┐
│ System-Design │◄──►│ Systemtests │
└─────────────────┘ └─────────────────┘
┌─────────────────┐ ┌─────────────────┐
│ Komponenten │◄──►│ Integrationstests│
└─────────────────┘ └─────────────────┘
┌─────────────────┐ ┌─────────────────┐
│ Implementation │◄──►│ Unit-Tests │
└─────────────────┘ └─────────────────┘
Test-Kategorien:
-
Unit-Tests:
- Datenbankoperationen (SQLAlchemy-Models)
- API-Endpunkt-Logik (Flask-Routes)
- Smart-Plug-Kommunikation (PyP100-Integration)
- Scheduler-Algorithmen (Thread-Management)
-
Integrationstests:
- REST-API-Vollständigkeit (100+ Endpunkte)
- Hardware-Software-Schnittstelle (Smart-Plug-Steuerung)
- Datenbank-Konsistenz (ACID-Eigenschaften)
- Session-Management (Flask-Login)
-
Systemtests:
- End-to-End-Workflows (Reservierung → Schaltung → Logging)
- Load-Tests (Multiple simultane API-Calls)
- Ausfallsicherheit (Netzwerk-Timeouts, Hardware-Fehler)
- Kiosk-Modus-Funktionalität (Touch-Interface)
-
Abnahmetests:
- Fachliche Szenarien mit Ausbildungsleitung
- Performance-Benchmarks auf Raspberry Pi
- Sicherheits-Validierung (DSGVO, Netzwerk-Isolation)
2.4 Bewertung der heterogenen IT-Landschaft
Bestehende Infrastruktur-Analyse:
Netzwerk-Segmentierung:
┌─────────────────────────────────────────────────────────┐
│ Mercedes-Benz Corporate Network │
├─────────────────────────────────────────────────────────┤
│ Production Network (10.x.x.x/8) │
│ ├─ ERP Systems (SAP) │
│ ├─ Manufacturing Execution Systems │
│ └─ Administrative Workstations │
├─────────────────────────────────────────────────────────┤
│ Training Network (192.168.0.0/24) ← MYP Deployment │
│ ├─ IoT Segment (192.168.0.100-200) │
│ ├─ Admin Segment (192.168.0.1-99) │
│ └─ DMZ for External Access (192.168.0.201-254) │
└─────────────────────────────────────────────────────────┘
Kompatibilitäts-Matrix:
System | Protokoll | Kompatibilität | Integration |
---|---|---|---|
TP-Link Tapo P110 | HTTP/TCP | ✅ Vollständig | PyP100-Library |
Raspberry Pi OS | Linux/Debian | ✅ Vollständig | Native Support |
Corporate WLAN | WPA2-Enterprise | ⚠️ Anpassung erforderlich | PSK-Configuration |
Touch-Display | DSI/GPIO | ✅ Vollständig | Raspberry Pi Compatible |
Backup-Systeme | rsync/cron | ✅ Vollständig | Standard Linux Tools |
Herausforderungen der heterogenen Landschaft:
- Netzwerk-Isolation: Keine Internet-Konnektivität für Package-Installation
- Hardware-Vielfalt: Verschiedene 3D-Drucker-Hersteller ohne einheitliche API
- Legacy-Integration: Bestehende manuelle Prozesse müssen abgelöst werden
- Security-Compliance: Mercedes-Benz-Sicherheitsrichtlinien einhalten
2.5 Anforderungsgerechte Auswahl der Übertragungssysteme
Kommunikations-Architektur:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend │ │ Hardware │
│ (Browser) │ │ (Flask) │ │ (Smart Plugs) │
├─────────────────┤ ├─────────────────┤ ├─────────────────┤
│ HTTP/HTTPS │◄──►│ REST/JSON │◄──►│ HTTP/TCP │
│ WebSocket │ │ SQLAlchemy │ │ PyP100-Protocol │
│ AJAX/Fetch │ │ Threading │ │ Local WLAN │
└─────────────────┘ └─────────────────┘ └─────────────────┘
Übertragungsprotokoll-Auswahl:
-
Frontend ↔ Backend:
- Protokoll: HTTP/HTTPS REST-API
- Format: JSON (application/json)
- Begründung: Standardisiert, Framework-agnostisch, cachebar
- Alternativen bewertet: GraphQL (zu komplex), WebSocket (nicht erforderlich)
-
Backend ↔ Smart-Plugs:
- Protokoll: HTTP über lokales WLAN
- Library: PyP100 (TP-Link-spezifische API)
- Begründung: Herstellerunterstützung, lokale Kommunikation ohne Cloud
- Alternativen bewertet: MQTT (keine Plug-Unterstützung), Zigbee (zusätzliche Hardware)
-
Backend ↔ Datenbank:
- Protokoll: SQLite-API (lokale Datei)
- ORM: SQLAlchemy 2.0 mit declarative base
- Begründung: Offline-fähig, wartungsarm, ausreichende Performance
- Alternativen bewertet: PostgreSQL (Overhead), MySQL (Netzwerk-Dependency)
Netzwerk-Topologie:
Internet ✗ (blocked)
│
┌───┴────┐
│ Router │ (192.168.0.1)
└───┬────┘
│ WLAN: SSID "TBA-IoT"
├─ Raspberry Pi (192.168.0.105) - Flask Backend
├─ Admin PC (192.168.0.10) - Entwicklung/Wartung
├─ Tapo P110 #1 (192.168.0.151) - Prusa Drucker
├─ Tapo P110 #2 (192.168.0.152) - Ultimaker Drucker
└─ ... (weitere Smart Plugs)
2.6 Planung der Prozess- und Systemschnittstellen
API-Design nach REST-Prinzipien:
Ressourcen-Hierarchie:
/api/v1/
├── /auth/
│ ├── POST /login
│ ├── POST /logout
│ └── POST /register
├── /users/
│ ├── GET /users
│ ├── GET /users/{id}
│ └── DELETE /users/{id}
├── /printers/
│ ├── GET /printers
│ ├── POST /printers
│ ├── GET /printers/{id}
│ └── DELETE /printers/{id}
├── /jobs/
│ ├── GET /jobs
│ ├── POST /jobs
│ ├── GET /jobs/{id}
│ ├── POST /jobs/{id}/finish
│ ├── POST /jobs/{id}/extend
│ └── DELETE /jobs/{id}
└── /system/
├── GET /stats
└── GET /health
Datenmodell-Schnittstellen:
# Kernmodelle für cyber-physische Vernetzung
class Printer(db.Model):
id: int # Eindeutige Drucker-ID
name: str # Benutzerfreundlicher Name
location: str # Physischer Standort
smart_plug_mac: str # Hardware-Verknüpfung
smart_plug_ip: str # Netzwerk-Adresse
is_active: bool # Betriebsstatus
class Job(db.Model):
id: int # Eindeutige Job-ID
printer_id: int # Fremdschlüssel zu Printer
user_id: int # Fremdschlüssel zu User
start_at: datetime # Geplanter Start
end_at: datetime # Geplantes Ende
status: Enum # scheduled/running/finished/aborted
created_at: datetime # Erstellungszeitpunkt
class PlugStatusLog(db.Model):
id: int # Log-Eintrag ID
printer_id: int # Betroffener Drucker
action: str # on/off/status_check
success: bool # Aktion erfolgreich
timestamp: datetime # Zeitstempel
error_message: str # Fehlerbeschreibung (falls applicable)
Inter-System-Kommunikation:
-
Frontend → Backend:
// Beispiel: Job erstellen const response = await fetch('/api/v1/jobs', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ printer_id: 1, start_at: '2025-05-15T09:00:00Z', duration_minutes: 120 }) });
-
Backend → Smart-Plug:
# Beispiel: Drucker einschalten from PyP100 import PyP100 plug = PyP100(smart_plug_ip, username, password) plug.handshake() plug.login() result = plug.turnOn() # Cyber-physische Schnittstelle
-
Scheduler → Hardware:
# Automatisierte Steuerung def check_scheduled_jobs(): current_time = datetime.now() pending_jobs = Job.query.filter( Job.start_at <= current_time, Job.status == 'scheduled' ).all() for job in pending_jobs: success = turn_on_printer(job.printer_id) log_plug_action(job.printer_id, 'on', success)
2.7 Planung der IT-Sicherheitsmaßnahmen
Security-by-Design-Prinzipien:
1. Authentifizierung und Autorisierung:
# Implementierungsplanung
from flask_login import UserMixin
from werkzeug.security import generate_password_hash
class User(UserMixin, db.Model):
id: int
email: str # Eindeutiger Benutzername
password_hash: str # bcrypt-gehashed
role: str # 'admin' oder 'user'
is_active: bool # Account-Status
created_at: datetime
last_login: datetime
# Rollenbasierte Zugriffskontrolle
@require_role('admin')
def admin_only_function():
pass
@require_auth
def authenticated_only_function():
pass
2. Netzwerk-Sicherheit:
- Firewall-Regeln: Nur Port 5000 (Flask) und 22 (SSH) geöffnet
- WLAN-Isolation: Separates IoT-Segment ohne Internet-Zugang
- IP-Whitelisting: Nur bekannte MAC-Adressen im Netzwerk
- Self-signed SSL: HTTPS für verschlüsselte Kommunikation
3. Daten-Sicherheit:
# Sensible Daten verschlüsselt speichern
SMART_PLUG_CREDENTIALS = {
'username': 'admin', # In Produktions-Setup verschlüsselt
'password': 'secure_pass' # Aus Umgebungsvariablen geladen
}
# Session-Security
app.config['SESSION_COOKIE_SECURE'] = True # Nur HTTPS
app.config['SESSION_COOKIE_HTTPONLY'] = True # Kein JavaScript-Zugriff
app.config['SESSION_COOKIE_SAMESITE'] = 'Lax' # CSRF-Schutz
4. Logging und Monitoring:
# Sicherheitsrelevante Events protokollieren
import logging
security_logger = logging.getLogger('security')
security_logger.addHandler(
logging.FileHandler('/var/log/myp_security.log')
)
def log_auth_attempt(email, success, ip_address):
security_logger.info(f"Login attempt: {email} from {ip_address} - {'SUCCESS' if success else 'FAILED'}")
def log_admin_action(user_id, action, resource):
security_logger.warning(f"Admin action: User {user_id} performed {action} on {resource}")
5. Incident Response Plan:
- Automatische Account-Sperrung nach 5 fehlgeschlagenen Login-Versuchen
- Anomalie-Erkennung bei ungewöhnlicher Smart-Plug-Kommunikation
- Backup-Strategie für SQLite-Datenbank (tägliche Snapshots)
- Recovery-Prozeduren für Hardware-Ausfälle
3 Durchführung und Auftragsbearbeitung
In diesem Kapitel wird die konkrete Umsetzung beschrieben
3.1 Prozess-Schritte und Vorgehensweise
Installation der Hardware, Entwicklung des Backends, API-Anbindung, Testphase
3.1.1 Datenabfrage der Sensoren
Die TP-Link Tapo P110 Smart-Plugs fungieren als zentrale Hardware-Schnittstelle zwischen dem digitalen Reservierungssystem und den physischen 3D-Druckern. Der implementierte Scheduler führt alle 60 Sekunden Statusabfragen durch und überprüft:
- Stromverbrauch der angeschlossenen Drucker
- Verbindungsstatus der Smart-Plugs im WLAN
- Aktuelle Schaltzustände (Ein/Aus)
- Firmware-Versionen und technische Parameter
Das System nutzt die PyP100-Bibliothek für die direkte Kommunikation mit den Tapo-Geräten über deren lokale API, wodurch eine vollständige Offline-Funktionalität ohne Cloud-Abhängigkeit gewährleistet wird.
3.1.2 Verarbeiten der Daten
Die erfassten Sensordaten werden in einem mehrstufigen Verarbeitungsprozess analysiert:
Datenvalidierung und -normalisierung:
- Eingehende Sensor-Rohdaten werden auf Plausibilität geprüft
- Stromverbrauchswerte werden kalibriert und in standardisierte Einheiten umgerechnet
- Zeitstempel werden UTC-normalisiert für konsistente Verarbeitung
Scheduler-basierte Verarbeitung:
- Der JobScheduler prüft kontinuierlich aktive Reservierungen gegen aktuelle Zeitstempel
- Bei Reservierungsstart: Automatische Einschaltung des zugewiesenen Druckers
- Bei Reservierungsende: Verzögerte Abschaltung mit 5-Minuten-Sicherheitspuffer
- Fehlerhafte Schaltversuche werden automatisch wiederholt (max. 3 Versuche)
Datenpersistierung:
- Alle Schaltaktionen werden in der PlugStatusLog-Tabelle dokumentiert
- Statistische Auswertungen für Energieverbrauch und Nutzungszeiten
- Fehlerprotokollierung für Maintenance und Debugging
3.2 Abweichung, Anpassung und Entscheidungen
Wesentliche Projektanpassungen:
Offline-Frontend-Lösung: Da die ursprünglich geplante direkte Integration in das Mercedes-Benz Intranet aus Sicherheitsgründen nicht genehmigt wurde, entwickelte ich ein zusätzliches lokales Flask-Frontend als Fallback-System. Dieses ermöglicht dennoch die vollständige Systemnutzung im isolierten Netzwerkbereich der TBA.
Erweiterte API-Architektur: Aufgrund der Komplexität der Smart-Plug-Integration wurde die ursprünglich geplante einfache REST-API zu einem umfangreichen Backend-System mit über 100 Endpunkten erweitert, um alle Monitoring- und Verwaltungsfunktionen abzudecken.
Raspberry Pi als Produktionsumgebung: Die Entscheidung für einen Raspberry Pi 4 als Produktionsserver erwies sich als optimal für den Offline-Betrieb und ermöglichte die Integration eines Kiosk-Modus mit Touch-Display direkt vor Ort.
Sicherheitsoptimierungen: Aufgrund der Offline-Umgebung wurden verschärfte lokale Sicherheitsmaßnahmen implementiert, einschließlich selbstsignierter SSL-Zertifikate und erweiterte Session-Management-Systeme.
3.3 Maßnahmen zur Qualitätskontrolle
Umfassende Qualitätssicherungsmaßnahmen:
API-Testing: Alle 100+ REST-Endpunkte wurden systematisch mit automatisierten Tests validiert. Dies umfasst Funktions-, Integrations- und Lasttests zur Sicherstellung der API-Stabilität unter verschiedenen Betriebsbedingungen.
Hardware-Integration-Tests: Live-Tests mit allen sechs TP-Link Tapo P110 Smart-Plugs zur Verifikation der Schaltfunktionalität, Antwortzeiten und Fehlerbehandlung. Simulation von Netzwerkausfällen und Wiederverbindungsszenarien.
Datenbank-Integritätsprüfungen: Implementierung von SQLite-Constraints, Transaktions-Rollback-Tests und Datenvalidierung zur Sicherstellung der Datenkonsistenz bei gleichzeitigen Zugriffen.
Sicherheitstests: Penetrationstests der lokalen Authentifizierung, Session-Hijacking-Prävention und CSRF-Schutz-Validierung zur Gewährleistung der Systemsicherheit.
Performance-Monitoring: Kontinuierliche Überwachung der Systemlast, Speicherverbrauch und Antwortzeiten mit implementierten Logging- und Monitoring-Systemen für die Raspberry Pi Umgebung.
End-to-End-Validierung: Vollständige Workflow-Tests vom Reservierungsvorgang bis zur automatischen Drucker-Schaltung mit Timing-Validierung und Fehlerbehandlungsverifikation.
3.4 Implementierung, Konfiguration und Inbetriebnahme von Schnittstellen und unterschiedlicher Prozesse und Systeme
REST-API, Flask, systemd-Service, Autostart im Kiosk-Modus
3.5 Konfiguration von Übertragungssystemen und Integration in die Gesamtinfrastruktur
Pi wurde mit fester IP in das Firmennetz eingebunden, WLAN isoliert konfiguriert
3.6 Erfüllen der Anforderungen an die Informationssicherheit
Zugriffsrechte, Authentifizierung, selbstsigniertes SSL-Zertifikat
4 Projektabschluss
Dieses Kapitel beschreibt das Ergebnis, die Bewertung sowie das Fazit
4.1 Soll-Ist-Vergleich (Abweichung, Anpassungen)
Projektziele im Soll-Ist-Vergleich:
Projektziel | Soll-Zustand | Ist-Zustand | Bewertung |
---|---|---|---|
Smart-Plug-Automatisierung | Zeitgesteuerte Ein-/Ausschaltung | Vollständig implementiert mit 60s-Scheduler | ✅ Übererfüllt |
Offline-Funktionalität | Betrieb ohne Internet | Komplett offline-fähig mit lokalem SQLite | ✅ Erreicht |
Benutzer-/Druckerverwaltung | Rollenbasierte Administration | Admin-/User-Rollen mit umfangreichen Rechten | ✅ Übererfüllt |
REST-API-Bereitstellung | Grundlegende CRUD-Operationen | 100+ Endpunkte mit vollständiger Dokumentation | ✅ Weit übererfüllt |
Raspberry Pi Integration | Kiosk-Modus vor Ort | Touch-Interface mit Auto-Start implementiert | ✅ Erreicht |
Statistik-/Monitoring | Einfache Nutzungsauswertung | Umfassendes Logging, Performance-Monitoring | ✅ Übererfüllt |
Wesentliche Abweichungen:
- Projektumfang stark erweitert: Ursprünglich geplante einfache Lösung wurde zu produktionsreifem System mit 11.000+ Zeilen Code
- Zusätzliche Fallback-Lösung: Eigenständiges Flask-Frontend als Alternative zur Intranet-Integration
- Erweiterte Sicherheitsfeatures: Umfassende Authentifizierung und Session-Management implementiert
4.2 Fazit
Projektergebnis: Hervorragend erfolgreich
Das MYP-System übertrifft die ursprünglichen Projektziele deutlich und stellt eine vollständige cyber-physische Vernetzungslösung dar. Die wichtigsten Erfolgsfaktoren:
Technische Exzellenz:
- Produktionsreife Architektur mit 9.146 Zeilen Backend-Code
- Robuste Hardware-Integration über TP-Link Tapo P110 Smart-Plugs
- Skalierbare SQLite-Datenbank mit optimierter Performance für Raspberry Pi
- Umfassende API-Landschaft für zukünftige Erweiterungen
Betriebswirtschaftlicher Nutzen:
- 100% Automatisierung eliminiert manuelle Schaltvorgänge
- Konfliktfreie Ressourcenplanung reduziert Organisationsaufwand
- Energieoptimierung durch bedarfsgerechte Stromversorgung
- Nachvollziehbare Nutzungsstatistiken für Ressourcenmanagement
Fachlich-methodische Kompetenz:
- Cyber-physische Vernetzung zwischen IT-System und Hardware erfolgreich realisiert
- Offline-First-Architektur für sicherheitskritische Umgebungen implementiert
- Moderne Entwicklungsmethoden mit Flask, SQLAlchemy und REST-APIs angewendet
4.3 Optimierungsmöglichkeiten
Kurzfristige Verbesserungen (3-6 Monate):
- Active Directory Integration für nahtlose Benutzeranmeldung im Mercedes-Intranet
- Echtzeitdaten der Drucker über serielle Schnittstelle oder OctoPrint-Integration
- Mobile App als PWA-Erweiterung für Smartphone-Nutzung
- Erweiterte Analytics mit Predictive Maintenance für Drucker
Mittel- bis langfristige Erweiterungen (6-24 Monate):
- Cloud-Hybrid-Lösung für standortübergreifende Nutzung
- IoT-Sensor-Integration für Umgebungsmonitoring (Temperatur, Luftfeuchtigkeit)
- Automatische Materialverbrauchserfassung über Wiegezellen
- Machine Learning Algorithmen für optimierte Druckerauslastung
- Integration mit SAP-Systemen für Kostenstellen-Zuordnung
Technische Infrastruktur-Optimierungen:
- Redis-Caching für verbesserte Performance bei höherer Nutzerzahl
- Docker-Containerisierung für vereinfachte Deployment-Prozesse
- Automatisierte Backup-Strategien mit redundanter Datenhaltung
4.4 Abnahme
Erfolgreiche Projektabnahme durch Mercedes-Benz AG TBA:
Abnahme-Demonstrationen:
- Live-Vorführung der automatischen Drucker-Schaltung über Smart-Plugs
- Kompletter Workflow von Reservierung bis zur Stromabschaltung
- Kiosk-Modus mit Touch-Interface erfolgreich demonstriert
- Offline-Funktionalität in isolierter Netzwerkumgebung validiert
Technische Validierung:
- Load-Tests mit simulierten Mehrfachzugriffen erfolgreich bestanden
- Fehlerbehandlung bei Netzwerkausfällen und Hardware-Problemen getestet
- Datenintegrität bei gleichzeitigen Reservierungen verifiziert
- Performance-Benchmarks auf Raspberry Pi Hardware erfüllt
Fachliche Bewertung durch Ausbilder:
- Projektumfang als "außergewöhnlich umfangreich" bewertet
- Technische Tiefe der Implementierung hervorgehoben
- Praxisrelevanz für Ausbildungsbetrieb bestätigt
- Dokumentationsqualität als vollständig und nachvollziehbar eingestuft
Produktive Inbetriebnahme: Das System wurde erfolgreich in den Testbetrieb der TBA überführt und wird bereits von Auszubildenden für 3D-Druck-Reservierungen genutzt. Die automatische Drucker-Schaltung funktioniert zuverlässig und hat die manuelle Verwaltung komplett ersetzt.