Abschlussprüfung - Sommer 2025
Fachinformatiker für digitale Vernetzung
Dokumentation der betrieblichen Projektarbeit
MYP – Manage Your Printer
Digitalisierung des 3D-Drucker-Reservierungsprozesses durch Etablierung
der cyberphysischen Kommunikation mit relevanten Hardwarekomponenten
Abgabedatum: 5. Juni 2025
Ausbildungsbetrieb
Mercedes-Benz Ag
Daimlerstraße 143
D-12277 Berlin
Prüfungsbewerber
Till Tomczak
Hainbuchenstraße 19
D-16761 Hennigsdorf
Mercedes-Benz
# Inhaltsverzeichnis
[1. Einleitung [2](#_Toc199840791)](#_Toc199840791)
[1.1 Analyse des Projektauftrages
[2](#analyse-des-projektauftrages)](#analyse-des-projektauftrages)
[1.2 Ableitung der Projektziele
[3](#ableitung-der-projektziele)](#ableitung-der-projektziele)
[1.3 Projektabgrenzung [3](#projektabgrenzung)](#projektabgrenzung)
[1.4 Projektumfeld [4](#projektumfeld)](#projektumfeld)
[1.5 Betriebliche Schnittstellen
[4](#betriebliche-schnittstellen)](#betriebliche-schnittstellen)
[1.6 Analyse der IT-sicherheitsrelevante Bedingungen
[5](#analyse-der-it-sicherheitsrelevante-bedingungen)](#analyse-der-it-sicherheitsrelevante-bedingungen)
[1.7 Darstellung der vorhandenen Systemarchitektur
[5](#darstellung-der-vorhandenen-systemarchitektur)](#darstellung-der-vorhandenen-systemarchitektur)
[2. Projektplanung [5](#projektplanung)](#projektplanung)
[2.1 Terminplanung [5](#terminplanung)](#terminplanung)
[Sprint 1 (15.-19. April 2025)
[6](#sprint-1-15.-19.-april-2025)](#sprint-1-15.-19.-april-2025)
[Sprint 2 (22.-26. April 2025)
[6](#sprint-2-22.-26.-april-2025)](#sprint-2-22.-26.-april-2025)
[Sprint 3 (29. April - 3. Mai 2025)
[6](#sprint-3-29.-april---3.-mai-2025)](#sprint-3-29.-april---3.-mai-2025)
[Sprint 4 (6.-10. Mai 2025)
[6](#sprint-4-6.-10.-mai-2025)](#sprint-4-6.-10.-mai-2025)
[Sprint 5 (13.-17. Mai 2025)
[6](#sprint-5-13.-17.-mai-2025)](#sprint-5-13.-17.-mai-2025)
[2.2 Ressourcenplanung [6](#ressourcenplanung)](#ressourcenplanung)
[2.3 Planung der Qualitätssicherung
[7](#planung-der-qualitätssicherung)](#planung-der-qualitätssicherung)
[2.4 Bewertung der heterogenen IT-Landschaft
[8](#bewertung-der-heterogenen-it-landschaft)](#bewertung-der-heterogenen-it-landschaft)
[2.5 Anforderungsgerechte Auswahl der Übertragungssysteme
[8](#anforderungsgerechte-auswahl-der-übertragungssysteme)](#anforderungsgerechte-auswahl-der-übertragungssysteme)
[2.6 Planung der Prozess-/ und Systemschnittstellen
[9](#planung-der-prozess--und-systemschnittstellen)](#planung-der-prozess--und-systemschnittstellen)
[2.7 Planung der IT-Sicherheitsmaßnahmen
[9](#planung-der-it-sicherheitsmaßnahmen)](#planung-der-it-sicherheitsmaßnahmen)
[3. Durchführung und Auftragsbearbeitung
[9](#durchführung-und-auftragsbearbeitung)](#durchführung-und-auftragsbearbeitung)
[3.1 Prozess-Schritte und Vorgehensweise
[10](#prozess-schritte-und-vorgehensweise)](#prozess-schritte-und-vorgehensweise)
[3.1.1 Datenabfrage der Sensoren
[10](#datenabfrage-der-sensoren)](#datenabfrage-der-sensoren)
[3.1.2 Verarbeiten der Daten
[10](#verarbeiten-der-daten)](#verarbeiten-der-daten)
[3.2 Abweichung, Anpassung und Entscheidungen
[11](#abweichung-anpassung-und-entscheidungen)](#abweichung-anpassung-und-entscheidungen)
[3.3 Maßnahmen zur Qualitätskontrolle
[11](#maßnahmen-zur-qualitätskontrolle)](#maßnahmen-zur-qualitätskontrolle)
[3.4 Implementierung, Konfiguration und Inbetriebnahme von
Schnittstellen und unterschiedlicher Prozesse und Systeme
[12](#implementierung-konfiguration-und-inbetriebnahme-von-schnittstellen-und-unterschiedlicher-prozesse-und-systeme)](#implementierung-konfiguration-und-inbetriebnahme-von-schnittstellen-und-unterschiedlicher-prozesse-und-systeme)
[3.5 Konfiguration von Übertragungssystemen und Integration in die
Gesamtinfrastruktur
[12](#konfiguration-von-übertragungssystemen-und-integration-in-die-gesamtinfrastruktur)](#konfiguration-von-übertragungssystemen-und-integration-in-die-gesamtinfrastruktur)
[3.6 Erfüllen der Anforderungen an die Informationssicherheit
[13](#erfüllen-der-anforderungen-an-die-informationssicherheit)](#erfüllen-der-anforderungen-an-die-informationssicherheit)
[4. Projektabschluss [13](#projektabschluss)](#projektabschluss)
[4.1 Soll-Ist-Vergleich (Abweichung, Anpassungen)
[13](#soll-ist-vergleich-abweichung-anpassungen)](#soll-ist-vergleich-abweichung-anpassungen)
[4.2 Fazit [14](#fazit)](#fazit)
[4.3 Optimierungsmöglichkeiten
[14](#optimierungsmöglichkeiten)](#optimierungsmöglichkeiten)
[4.4 Abnahme [15](#abnahme)](#abnahme)
[Anlagen [15](#anlagen)](#anlagen)
[Netzwerkdiagramme und Systemarchitektur
[15](#netzwerkdiagramme-und-systemarchitektur)](#netzwerkdiagramme-und-systemarchitektur)
[API-Dokumentation [15](#api-dokumentation)](#api-dokumentation)
[Benutzerhandbuch [16](#benutzerhandbuch)](#benutzerhandbuch)
[Testprotokolle [16](#testprotokolle)](#testprotokolle)
[Screenshots der Benutzeroberfläche
[16](#screenshots-der-benutzeroberfläche)](#screenshots-der-benutzeroberfläche)
[Konfigurationsdateien und Deployment-Skripte
[16](#konfigurationsdateien-und-deployment-skripte)](#konfigurationsdateien-und-deployment-skripte)
# 1. Einleitung
## 1.1 Analyse des Projektauftrages
Die Technische Berufsausbildungsstätte (TBA) der Mercedes-Benz AG am
Standort Berlin verfügt über sechs 3D-Drucker verschiedener Hersteller
(Prusa, Anycubic; B-Ware im Vergleich zu 3D-Druckern von Kostenstellen
höherer Prioriät sozusagen). Diese Geräte stellen eine wichtige
Ressource für die praktische Ausbildung dar, weisen jedoch erhebliche
technische Limitierungen auf; beispielsweise verfügen die Drucker weder
über Funk- noch Netzwerkschnittstellen oder andere gesamteinheitliche
Steuerungsmöglichkeiten. Diese technischen Einschränkungen verhinderten
bislang eine koordinierte digitale Verwaltung und eine damit
einhergehende Übersicht von Reservierungen und Nutzungsplänen der
Azubis.
Das bestehende 'Reservierungssystem' - wenn man es nun so nennen kann -
basierte auf einem analogen Whiteboard, welches neben den Druckern
positioniert war. Dies führte zu systematischen Problemen:
Doppelbuchungen traten regelmäßig auf, wenn mehrere Nutzer zeitgleich
Reservierungen vornahmen, die manuelle Aktivierung und Deaktivierung der
Geräte wurde häufig versäumt - was zu unnötigem Energieverbrauch und
erhöhtem Verschleiß führte - und eine verlässliche Dokumentation der
tatsächlichen Nutzungszeiten existierte nicht, wodurch weder
aussagekräftige Betätigungs- und Verantwortungszuordnung (bspw. für
Aufräumarbeiten), noch eine verursachungsgerechte Kostenzuordnung
möglich waren.
Ein erstmaliger Lösungsansatz durch den ehemaligen Auszubildenden Torben
Haack – Fachinformatiker für Daten- und Prozessanalyse – hatte einen
vielversprechenden Frontend-Prototyp auf Basis von Next.js
hervorgebracht. Der Prototyp verfügte über eine moderne
Benutzeroberfläche mit umfangreichen Analysefunktionen seiner
Fachrichtung entsprechend, allerdings fehlte die für den praktischen
Einsatz unabdingbare Backend-Funktionalität; die cyberphysische
Anbindung der Hardware-Komponenten lag außerhalb seines
Kompetenzbereichs und war ursprünglich als kollaborative Ergänzung
angedacht. Ich erkannte sofort die Synergie unserer unterschiedlichen
Fachrichtungen: Während Haack die Datenvisualisierung und
Prozessanalyse meisterhaft im Frontend abbildete, konnte ich mit meiner
Spezialisierung auf digitale Vernetzung genau jene Schnittstelle zum
cyberphysischen System schaffen, die dem Prototyp zur Produktivreife
fehlte. Diese komplementäre Konstellation – nicht die bloße Verfügbarkeit
eines unfertigen Projekts – weckte meine intrinsische Motivation.
## 1.2 Ableitung der Projektziele
Nach erfolgter Zulassung des Abschlussprojekts durch die IHK
kristallisierten sich die Projektziele in ihrer ganzen Komplexität
heraus. Das zu entwickelnde System sollte unter dem prägnanten Namen
"MYP - Manage Your Printer" nicht nur die digitale Verwaltung der
Reservierungen ermöglichen, sondern – und hier liegt die besondere
Herausforderung für einen Fachinformatiker der digitalen Vernetzung –
auch die automatisierte Steuerung der physischen Geräte realisieren.
Die zentrale technische Herausforderung bestand in der Überbrückung der
technischen Limitierungen der vorhandenen 3D-Drucker. Da eine direkte
Kommunikation mit den Geräten aufgrund fehlender Schnittstellen nicht
möglich war, musste ein alternativer, kreativer Ansatz zur
Hardware-Steuerung entwickelt werden. Gleichzeitig waren die strengen
Sicherheitsrichtlinien der Mercedes-Benz AG zu berücksichtigen, die
keine direkten, geschweige denn permanenten Internetverbindungen in der
Produktionsumgebung gestatten – eine Anforderung, die das Projekt
zusätzlich verkomplizierte.
Ein weiteres, nicht zu unterschätzendes Projektziel war die
Gewährleistung der Herstellerunabhängigkeit. Die heterogene und
schnittstellenarme Druckerlandschaft der sechs 3D-Drucker erforderte
eine universell einsetzbare Lösung, die sich zugleich auch leicht an
zukünftige Upgrades – sowohl der 3D-Drucker als auch der entstehenden
Lösung selbst – anpassen lassen würde. Das System sollte zudem eine
rudimentäre, aber effektive Rechteverwaltung implementieren, die
zwischen administrativen Funktionen und regulären Nutzerrechten
differenziert.
## 1.3 Projektabgrenzung
Der Projektumfang wurde – durchaus pragmatisch, möchte man meinen – auf die praktische
Umsetzung einer funktionsfähigen Lösung fokussiert. Eine umfassende
Daten- und Prozessanalyse wurde bewusst zugunsten der technischen
Realisierung zurückgestellt; diese Priorisierung ermöglichte die
Fertigstellung eines produktiv einsetzbaren Systems innerhalb des knapp
bemessenen Zeitrahmens von fünf Wochen.
Eine direkte Kommunikation mit den 3D-Druckern zur Übertragung von
Druckdaten oder zur Statusüberwachung wurde kategorisch aus dem
Projektumfang ausgeschlossen. Die fehlenden technischen Schnittstellen
der vorhandenen Geräte hätten umfangreiche Hardware-Modifikationen
erfordert, die weder zeitlich noch wirtschaftlich vertretbar gewesen
wären – ganz zu schweigen von den Garantieverlusten, die solche
Eingriffe unweigerlich nach sich gezogen hätten.
Ebenfalls nicht Teil des Projekts war die Integration in übergeordnete
ERP-Systeme oder das unternehmensweite Intranet. Diese Anbindungen
hätten zusätzliche Genehmigungsprozesse und Sicherheitsprüfungen
erfordert, die den Projektrahmen bei weitem überschritten hätten.
Stattdessen wurde eine autarke Lösung entwickelt, die alle
erforderlichen Funktionen lokal bereitstellt – ein Ansatz, der sich im
Nachhinein als goldrichtig erweisen sollte.
## 1.4 Projektumfeld
Die Realisierung des Projekts erfolgte in der spezifischen Konstellation
der Mercedes-Benz-Ausbildungsumgebung – einem Mikrokosmos zwischen
konzernweiten Standards und pragmatischer Ausbildungsrealität. Die
Technische Berufsausbildungsstätte fungierte dabei nicht nur als
physischer Ort, sondern als komplexes Spannungsfeld zwischen
verfügbarer Infrastruktur, bürokratischen Prozessen und dem
wohlwollenden, wenn auch zeitweise zögerlichen Support der
Ausbildungsleitung.
Die Zusammenarbeit mit Torben Haack erfolgte in Form einer sequenziellen
Weiterentwicklung; ein Umstand, der sich aus der zeitlichen Versetzung
unserer Ausbildungsphasen ergab. Da Herr Haack seine Ausbildung bereits
abgeschlossen hatte und ich erst nach offizieller IHK-Zulassung mit der
Projektarbeit beginnen durfte, konnte ich auf seinen Frontend-Prototyp
aufbauen und diesen zu einer Gesamtlösung erweitern – eine Konstellation,
die sich als Segen und Fluch zugleich erweisen sollte.
Die organisatorischen Rahmenbedingungen wurden maßgeblich durch die
Sicherheitsrichtlinien und IT-Governance der Mercedes-Benz AG geprägt.
Jede technische Entscheidung musste die Vorgaben bezüglich
Netzwerksicherheit, Datenschutz und Compliance berücksichtigen. Die
Beantragung notwendiger Administratorrechte und die Genehmigung
selbstsignierter SSL-Zertifikate erforderten umfangreiche
Abstimmungsprozesse mit der IT-Abteilung – Prozesse, die sich teilweise
über Wochen hinzogen und meine Geduld auf eine harte Probe stellten.
## 1.5 Betriebliche Schnittstellen
Die Analyse der betrieblichen Schnittstellen offenbarte ein komplexes
Geflecht von Abhängigkeiten und Anforderungen. Primär musste das System
mit der bestehenden Netzwerkinfrastruktur der TBA harmonieren, ohne
dabei Sicherheitsrichtlinien zu verletzen. Die Schnittstelle zur
IT-Abteilung erwies sich als besonders kritisch, da jede
Netzwerkkonfiguration und jede Port-Freischaltung einer expliziten
Genehmigung bedurfte.
Die Benutzerschnittstelle musste so gestaltet werden, dass sowohl
technisch versierte Auszubildende als auch weniger IT-affine Nutzer das
System intuitiv bedienen können. Dies erforderte eine Balance zwischen
Funktionsumfang und Benutzerfreundlichkeit.
Besonders herausfordernd gestaltete sich die Schnittstelle zu den
Smart-Plugs. Die ursprüngliche Annahme, dass sich die TAPO P110-Steckdosen
von TP-Link problemlos integrieren lassen würden, erwies sich als
naiv. Die proprietäre API der Geräte war nicht nur
undokumentiert, sondern verschleiert – ein Umstand, der
erheblichen Reverse-Engineering-Aufwand erforderte.
## 1.6 Analyse der IT-sicherheitsrelevante Bedingungen
Die Sicherheitsanalyse offenbarte multiple Herausforderungen, die es zu
bewältigen galt. Das System musste in einem isolierten Netzwerksegment
betrieben werden, ohne dabei die Funktionalität einzuschränken. Die
Anforderung, keine permanente Internetverbindung zu etablieren, schloss
Cloud-basierte Lösungen kategorisch aus – ein Umstand, der die Auswahl
geeigneter Smart-Plugs erheblich einschränkte und mich zu kreativen
Lösungsansätzen zwang.
Die Authentifizierung und Autorisierung musste robust implementiert
werden, ohne die Benutzerfreundlichkeit zu beeinträchtigen – ein
klassisches Dilemma der IT-Sicherheit. Die Implementierung von
bcrypt-basiertem Password-Hashing mit Cost-Faktor 12 war keine
Entscheidung, sondern eine Selbstverständlichkeit – alles andere wäre
fahrlässig gewesen. Der gewählte Cost-Faktor balancierte die
kryptografische Stärke mit der begrenzten Rechenleistung des
Raspberry Pi.
Besondere Aufmerksamkeit erforderte die Absicherung der API-Endpunkte.
Jeder Endpunkt musste gegen gängige Angriffsvektoren wie SQL-Injection,
Cross-Site-Scripting und CSRF-Attacken geschützt werden. Die
Implementierung eines Rate-Limiting-Mechanismus erschwert
Brute-Force-Angriffe auf die Authentifizierungsschnittstelle erheblich
– verhindert sie freilich nicht vollständig, macht sie aber ökonomisch
unattraktiv.
## 1.7 Darstellung der vorhandenen Systemarchitektur
Die vorgefundene Systemarchitektur – möchte man sie überhaupt so
nennen – bestand aus diffusen, operativ maximal auf ein Testnetzwerk
begrenzten Komponenten ohne jegliche praktische Integration. Die 3D-Drucker operierten als Insellösungen, verbunden
lediglich durch ihre physische Nähe und das gemeinsame Whiteboard. Der
Frontend-Prototyp von Torben Haack existierte als Docker-Container auf
einem Entwicklungsserver, ohne Anbindung an reale Daten oder Funktionen.
Die Netzwerkinfrastruktur der TBA basierte auf einem segmentierten
Ansatz mit verschiedenen VLANs für unterschiedliche Geräteklassen. Die
3D-Drucker waren – mangels Netzwerkfähigkeit – nicht in diese Struktur
integriert. Der bereitgestellte Raspberry Pi 4 (der sich später als
unterdimensioniert erweisen und durch einen Pi 5 ersetzt werden sollte)
fungierte als zentrale Plattform für das MYP-System.
Die Analyse ergab, dass eine grundlegende Neukonzeption der Architektur
erforderlich war. Die Lösung musste die isolierten Komponenten zu einem
kohärenten System verbinden, ohne dabei die bestehenden
Sicherheitsrichtlinien zu verletzen. Der gewählte Ansatz – die Steuerung
über Smart-Plugs – stellte einen eleganten Kompromiss zwischen
technischer Machbarkeit und praktischem Nutzen dar.
# 2. Projektplanung
## 2.1 Terminplanung
Die Projektplanung folgte einem agilen Ansatz nach Scrum-Prinzipien –
eine Entscheidung, die sich angesichts der zahlreichen Unwägbarkeiten
als richtig erweisen sollte. Die Gesamtprojektdauer von fünf Wochen
(15. April bis 20. Mai 2025) wurde in fünf einwöchige Sprints
unterteilt, wobei jeder Sprint seine eigenen Herausforderungen und
– ja – auch Überraschungen bereithielt.
### Sprint 1 (15.-19. April 2025)
Der erste Sprint widmete sich der Analyse des bestehenden Prototyps und
der Definition der Erweiterungspunkte. Die Evaluierung der
Frontend-Codebasis offenbarte eine solide, wenn auch stellenweise
überkomplexe Struktur. Die Spezifikation der erforderlichen
API-Endpunkte gestaltete sich umfangreicher als erwartet – über 100
Endpunkte wurden identifiziert, was mich zunächst erschaudern ließ. Der
kritische Meilenstein dieses Sprints war die erfolgreiche Etablierung
der Kommunikation mit den Smart-Plugs über die PyP100-Bibliothek; ein
Vorhaben, das zunächst kläglich scheiterte.
### Sprint 2 (22.-26. April 2025)
Im zweiten Sprint lag der Fokus auf dem Aufbau der
Backend-Infrastruktur. Die Beantragung der erforderlichen
Administratorrechte erwies sich als zeitaufwändiger als erwartet.
Parallel dazu begannen die ersten Experimente mit Wireshark, um das
Kommunikationsprotokoll der Smart-Plugs zu entschlüsseln – eine
Notwendigkeit, die sich aus der mangelhaften Dokumentation der
PyP100-Bibliothek ergab.
### Sprint 3 (29. April - 3. Mai 2025)
Der dritte Sprint sollte die Integration von Frontend und Backend
realisieren. Stattdessen mutierte er zu einer Woche der technischen
Herausforderungen: Die Verbindung zwischen den Komponenten scheiterte
wiederholt, die genehmigten SSL-Zertifikate gingen durch einen
unglücklichen Neuinstallationsprozess verloren, und die Einarbeitung in die
unternehmensspezifischen Implementierungen von GitHub OAuth und npm
verschlang wertvolle Zeit.
### Sprint 4 (6.-10. Mai 2025)
Ursprünglich für Optimierungen vorgesehen, wandelte sich dieser Sprint
zur Rettungsmission. Der Zeitdruck erzwang pragmatische Entscheidungen
und die Konzentration auf essenzielle Funktionen. In intensiven
Coding-Sessions wurde die Grundfunktionalität implementiert – nicht
unbedingt elegant, aber funktional.
### Sprint 5 (13.-17. Mai 2025)
Der finale Sprint diente der Fehlerbehebung und Systemstabilisierung.
Die ursprünglich geplanten Schulungen fielen dem Zeitdruck zum Opfer.
Stattdessen wurde an kritischen Bugfixes gearbeitet und die
Projektdokumentation erstellt.
## 2.2 Ressourcenplanung
Die Ressourcenplanung gestaltete sich als Balanceakt zwischen
technischen Anforderungen und budgetären Beschränkungen. Die
Hardware-Ausstattung wurde sorgfältig – und doch pragmatisch –
ausgewählt.
Als zentrale Serverplattform diente zunächst ein Raspberry Pi 4 mit 4 GB
RAM – eine Entscheidung, die sich schnell als Fehlkalkulation
herausstellte. Performance-Tests zeigten, dass das ressourcenhungrige
Next.js-Frontend die kleine Platine an ihre Grenzen brachte. Der
kurzfristige Wechsel auf einen Raspberry Pi 5 mit 8 GB RAM und 128 GB
Speicher löste die Performance-Probleme, verursachte aber zusätzliche
Kosten und – was schwerer wog – Zeitverzug.
Die sechs TP-Link Tapo P110 Smart-Plugs bildeten das Herzstück der
Hardware-Lösung. Jedes Gerät erhielt eine statische IP-Adresse im
Bereich 192.168.0.100 bis 192.168.0.106 – eine scheinbar triviale
Konfiguration, die sich später als entscheidend für die Systemstabilität
erweisen sollte. Meine Zuversicht bezüglich einer einfachen Integration
speiste sich aus meiner privaten Infrastruktur, in der ich bereits
TAPO-Geräte aller Art erfolgreich in air-gapped Networks integriert
hatte – allerdings mit dem entscheidenden Unterschied, dort nie mit der
eigenständigen programmatischen Integration als Hauptkomponente
beauftragt gewesen zu sein. Diese naive Extrapolation sollte sich
rächen: Die proprietäre API erforderte erheblichen
Reverse-Engineering-Aufwand mittels Wireshark.
Zur professionellen Unterbringung der Hardware wurde ein
19-Zoll-Serverschrank beschafft. Die internen Beschaffungsprozesse der
Mercedes-Benz AG erwiesen sich jedoch als so langwierig, dass ergänzende
Komponenten wie Lüftereinheiten und Kabelmanagement-Systeme aus eigener
Tasche finanziert wurden – eine Investition in die professionelle
Präsentation des Projekts, die mir wichtig war.
Die Software-Architektur basierte vollständig auf
Open-Source-Technologien: Python 3.11 als Programmiersprache, Flask 2.3
als Web-Framework, SQLAlchemy 2.0 für die Datenbankabstraktion und
SQLite als Datenbanksystem. Als Betriebssystem entschied ich mich nach
anfänglicher Erwägung von NixOS letztendlich für Raspbian – die
Verlockung deklarativer Konfiguration wich dem Pragmatismus, nicht
unnötig zu experimentieren, wenn die Zeit ohnehin knapp bemessen war.
Diese Technologieauswahl gewährleistete nicht nur Unabhängigkeit von
proprietären Lösungen, sondern erfüllte auch die strikte
Offline-Anforderung des Projekts – ein Umstand, der sich als Segen
erwies. Firewalld übernahm die Rolle als Firewall-Service, eine
bewährte Wahl für die granulare Netzwerkkontrolle.
## 2.3 Planung der Qualitätssicherung
Das Qualitätssicherungskonzept orientierte sich am V-Modell. Für jede
Entwicklungsphase wurden korrespondierende Testaktivitäten definiert.
Auf Unit-Test-Ebene wurden alle kritischen Komponenten isoliert
getestet. Die Datenbankoperationen, API-Eingabevalidierung und
Kernfunktionen der Reservierungsverwaltung durchliefen umfangreiche
Testszenarien. Besondere Aufmerksamkeit galt der
Smart-Plug-Kommunikation, für die spezielle Testfälle entwickelt wurden
– einschließlich simulierter Netzwerkausfälle und Timeout-Situationen.
Die Integrationstests gestalteten sich komplexer als erwartet. Das
Zusammenspiel zwischen Backend und Smart-Plugs erwies sich als
fehleranfällig, insbesondere bei gleichzeitigen Zugriffen. Die
systematischen Tests mit verschiedenen Eingabedaten – einschließlich
bewusst invalider und potenziell schädlicher Inputs – deckten mehrere
Sicherheitslücken auf, die nachträglich geschlossen werden mussten.
Systemtests bildeten komplette Anwendungsszenarien ab. Ein typischer
Testfall umfasste die Benutzeranmeldung, Reservierungserstellung,
automatische Druckeraktivierung zur geplanten Zeit und die anschließende
Deaktivierung. Die zeitliche Präzision der Schaltungen – kritisch für
die Benutzerzufriedenheit – wurde dabei besonders überwacht.
Performance-Tests auf der Zielplattform offenbarten die bereits
erwähnten Limitierungen des Raspberry Pi 4. Der Wechsel auf den Pi 5
löste diese Probleme, erforderte aber eine Wiederholung aller Tests. Die
finale Konfiguration bewältigte selbst simultane Zugriffe mehrerer
Nutzer und parallele Smart-Plug-Operationen ohne nennenswerte Einbußen –
ein Triumph der Optimierung.
## 2.4 Bewertung der heterogenen IT-Landschaft
Die IT-Landschaft der TBA präsentierte sich als bunter Flickenteppich
verschiedenster Technologien und Standards. Die 3D-Drucker stammten von
unterschiedlichen Herstellern mit inkompatiblen Steuerungssystemen. Das
Netzwerk war in multiple VLANs segmentiert, wobei die Dokumentation
dieser Struktur bestenfalls als lückenhaft bezeichnet werden konnte.
Die Herausforderung bestand darin, eine einheitliche Lösung für diese
heterogene Umgebung zu entwickeln. Der Ansatz über Smart-Plugs erwies
sich hier als Glücksgriff – er abstrahierte die Unterschiede zwischen
den Druckern auf die simpelste mögliche Ebene: Strom an oder aus. Diese
radikale Vereinfachung ermöglichte eine universelle Lösung, die
unabhängig vom Druckermodell funktionierte.
Die Integration in die bestehende Netzwerkinfrastruktur erforderte
diplomatisches Geschick. Die IT-Abteilung bestand auf strikter
Segmentierung, was die Kommunikation zwischen Komponenten
verkomplizierte. Die Lösung – ein dediziertes IoT-Subnetz für das
MYP-System – stellte einen akzeptablen Kompromiss dar, der sowohl
Sicherheitsbedenken als auch funktionale Anforderungen berücksichtigte.
## 2.5 Anforderungsgerechte Auswahl der Übertragungssysteme
Die Auswahl der Übertragungssysteme wurde maßgeblich durch die
Sicherheitsanforderungen bestimmt. Cloud-basierte Lösungen schieden
kategorisch aus, was die Optionen erheblich einschränkte. Die
Entscheidung für lokale HTTP/HTTPS-Kommunikation mit selbstsignierten
Zertifikaten war pragmatisch, aber effektiv.
Die Kommunikation mit den Smart-Plugs erfolgte über das proprietäre
TP-Link-Protokoll, das auf HTTP basiert. Die anfänglichen Versuche, die
offizielle Cloud-API zu nutzen, scheiterten an den
Sicherheitsrichtlinien. Die Entdeckung, dass die Geräte auch eine lokale
API anboten, war ein Durchbruch – allerdings einer, der erheblichen
Reverse-Engineering-Aufwand erforderte.
Hier kam Wireshark ins Spiel. Zusammen mit der TAPO-App analysierte ich
den Netzwerkverkehr, um das Kommunikationsprotokoll zu entschlüsseln.
Die Erkenntnis, dass ein Session-Key erforderlich war, der sich bei
jeder Anmeldung änderte, verkomplizierte die Integration erheblich.
Zunächst versuchte ich, diesen Key manuell abzufangen und in meine
Anwendung zu integrieren – ein Ansatz, der funktionierte, aber
offensichtlich nicht praxistauglich war.
Nach tagelangen Experimenten und zahllosen Fehlversuchen stieß ich auf
ein alternatives Python-Modul, das die lokale Kommunikation mit den
TAPO-Geräten ermöglichte. Dieses Modul – versteckt in den Tiefen von
GitHub – löste die Session-Key-Problematik elegant und ermöglichte eine
stabile Integration.
## 2.6 Planung der Prozess-/ und Systemschnittstellen
Die Schnittstellenplanung erforderte eine sorgfältige Balance zwischen
Funktionalität und Sicherheit. Die REST-API wurde nach modernen
Standards entworfen, mit klarer Trennung zwischen öffentlichen und
authentifizierten Endpunkten. Über 100 Endpunkte wurden spezifiziert –
eine Zahl, die zunächst übertrieben erschien, sich aber als notwendig
erwies; jeder Endpunkt ein kleines Kunstwerk der Funktionalität.
Ursprünglich war geplant, zusätzliche API-Endpunkte zu implementieren,
die speziell Haacks Daten- und Prozessanalyse-Features im Frontend
unterstützt hätten – analytische Dashboards, Auslastungsstatistiken,
Prozessoptimierungsvorschläge. Diese ambitionierte Erweiterung fiel
jedoch dem Zeitdruck und insbesondere dem Verlust der selbstsignierten
Zertifikate zum Opfer, ohne die die erforderliche sichere Kommunikation
zwischen den Komponenten nicht gewährleistet werden konnte.
Die Schnittstelle zwischen Frontend und Backend basierte auf
JSON-formatierter Kommunikation über HTTPS. Die Implementierung von
CORS-Policies gestaltete sich komplexer als erwartet, da die
Sicherheitsrichtlinien strikte Einschränkungen vorgaben. Die Lösung –
eine Whitelist-basierte CORS-Konfiguration – erfüllte die
Sicherheitsanforderungen ohne die Funktionalität einzuschränken; ein
Drahtseilakt zwischen Sicherheit und Usability.
Besondere Aufmerksamkeit erforderte die Scheduler-Schnittstelle. Der als
eigenständiger Thread implementierte Scheduler musste nahtlos mit der
Hauptanwendung kommunizieren, ohne dabei Race Conditions oder Deadlocks
zu verursachen. Die Verwendung von Thread-sicheren Queues und explizitem
Locking löste diese Herausforderung – eine Lösung, die in ihrer
Eleganz bestach.
## 2.7 Planung der IT-Sicherheitsmaßnahmen
Die Sicherheitsplanung folgte dem Prinzip "Security by Design" – ein
Ansatz, der sich angesichts der sensiblen Umgebung als unerlässlich
erwies. Jede Komponente wurde von Anfang an mit Sicherheit im Hinterkopf
entwickelt.
Die Authentifizierung basierte auf bcrypt mit einem Cost-Faktor von 12 –
ein Kompromiss zwischen Sicherheit und Performance auf dem Raspberry Pi.
Session-Management wurde über Flask-Login realisiert, mit
konfigurierbaren Timeout-Werten und sicheren Session-Cookies. Die
Implementierung einer Brute-Force-Protection mit exponentieller
Backoff-Strategie verhinderte automatisierte Angriffe.
Auf Netzwerkebene wurden restriktive Firewall-Regeln implementiert. Nur
essenzielle Ports wurden geöffnet, ausgehende Verbindungen auf die
IP-Adressen der Smart-Plugs beschränkt. Die Verwendung von iptables
ermöglichte granulare Kontrolle über den Netzwerkverkehr.
Die API-Sicherheit umfasste Input-Validation, Output-Encoding und
CSRF-Protection. Jeder Endpunkt wurde gegen die OWASP Top 10
abgesichert. Ein selbstentwickeltes Intrusion Detection System
überwachte verdächtige Aktivitäten und sperrte bei Bedarf IP-Adressen
temporär.
# 3. Durchführung und Auftragsbearbeitung
## 3.1 Prozess-Schritte und Vorgehensweise
Die Durchführung des Projekts glich einer technischen Expedition mit
unerwarteten Wendungen und kreativen Lösungsansätzen. Die
ursprünglich geplante lineare Vorgehensweise wich schnell einer
iterativen, problemgetriebenen Herangehensweise. Für die
programmatische Umsetzung der Frontend-Anpassungen nahm ich – der
Ehrlichkeit und meiner Fachrichtung geschuldet – umfassend
Unterstützung künstlicher Intelligenz zu Hilfe; mehr als absolut
notwendig, um das Zeitlimit nicht um Längen zu überschreiten und die
Profession meiner Fachrichtung digitale Vernetzung einzuhalten,
anstatt mich in den Untiefen von React-Komponenten zu verlieren.
### 3.1.1 Datenabfrage der Sensoren
Die "Sensoren" in diesem Kontext waren die Smart-Plugs – eine
euphemistische Bezeichnung für Geräte, die sich als erstaunlich
widerspenstig erwiesen. Die initiale Annahme, dass die PyP100-Bibliothek
out-of-the-box funktionieren würde, zerschlug sich an der Realität der
proprietären TP-Link-Implementation.
Der erste Ansatz – die Nutzung der dokumentierten Cloud-API – scheiterte
an den Sicherheitsrichtlinien. Der zweite Ansatz – die direkte lokale
Kommunikation – scheiterte an der fehlenden Dokumentation. Erst der
dritte Ansatz – Reverse Engineering mittels Wireshark – führte zum
Durchbruch.
Die Wireshark-Analyse offenbarte das komplexe
Authentifizierungsprotokoll der TAPO-Geräte. Nach etlichem
Herumprobieren und der Feststellung, dass die Python-Schnittstelle
schlichtweg nicht funktionierte, zeichnete ich Netzwerkmitschnitte auf.
Auffällig: immer dieselben Responses bei verschlüsselter Verbindung.
Das Simulieren einzelner Anfragen blieb erfolglos – bis zum Geistesblitz:
Die Anfragensequenz musste es sein! Tatsächlich erforderte jede
Kommunikation einen spezifischen verschlüsselten Handshake mit
temporärem Cookie, gefolgt von einem Session-Token für alle weiteren
Operationen. Die proprietäre Verschlüsselung basierte auf einer
Kombination aus RSA und AES – die Verbindungsaushandlung folgte einem
strikt sequenziellen Muster, das keine Abweichungen tolerierte.
Die Implementierung der Datenabfrage erfolgte schließlich über eine
selbstentwickelte Wrapper-Klasse, die die Komplexität der Kommunikation
kapselte. Retry-Mechanismen mit exponentieller Backoff-Strategie sorgten
für Robustheit bei Netzwerkproblemen. Die Abfrage umfasste nicht nur den
Schaltzustand, sondern auch Metadaten wie Energieverbrauch und
Signalstärke – Informationen, die sich später als wertvoll für das
Monitoring erwiesen.
### 3.1.2 Verarbeiten der Daten
Die Datenverarbeitung folgte einem ereignisgesteuerten Ansatz. Der
Scheduler-Thread prüfte im Minutentakt die Datenbank auf anstehende
Aktionen und triggerte entsprechende Smart-Plug-Operationen. Die
Herausforderung bestand darin, die Asynchronität der
Hardware-Operationen mit der Synchronität der Datenbankzugriffe zu
vereinen.
Die Lösung war ein Queue-basiertes System, das Kommandos pufferte und
sequenziell abarbeitete. Dies verhinderte Race Conditions bei simultanen
Zugriffen und gewährleistete die Konsistenz der Systemzustände. Jede
Operation wurde in einer Transaktion gekapselt, mit Rollback-Mechanismen
bei Fehlern.
Die Verarbeitung der Energiedaten ermöglichte interessante Einblicke in
die Nutzungsmuster. Anomalien – wie ungewöhnlich hoher Stromverbrauch –
konnten erkannt und gemeldet werden. Diese Funktion, ursprünglich nicht
geplant, erwies sich als wertvolles Feature für die präventive Wartung;
ein glücklicher Zufall, der zur Kernfunktionalität wurde.
## 3.2 Abweichung, Anpassung und Entscheidungen
Die Projektdurchführung war geprägt von kontinuierlichen Anpassungen an
die Realität. Die größte Abweichung vom ursprünglichen Plan war der
Wechsel der Systemarchitektur von einer verteilten zu einer
konsolidierten Lösung.
Ursprünglich war geplant, dass ich nur die API entwickle und diese mit
Torbens Frontend auf einem separaten Raspberry Pi verknüpfe. Diese
Architektur erwies sich als zu komplex – die unterschiedlichen
Technologie-Stacks (Next.js vs. Python/Flask) und die
Netzwerksegmentierung machten die Integration schwierig. Die
Entscheidung, beide Komponenten auf einem einzigen Raspberry Pi zu
konsolidieren, vereinfachte nicht nur die Architektur, sondern
reduzierte auch Kosten und Stromverbrauch.
Der versehentliche Verlust der SSL-Zertifikate während einer
Neuinstallation – genauer: die bereits von Haack genehmigten und
mühsam durch die IT-Prozesse gebrachten Zertifikate – markierte einen
Wendepunkt des Projekts. Bei etwa der Hälfte der Projektlaufzeit
löschte ich in einem unachtsamen Moment genau jene Zertifikate, die
die geplante Intranet-Integration ermöglicht hätten. Bis zu diesem
Punkt war ich bereits so weit gekommen, dass das Frontend erfolgreich
den GitHub OAuth-Zertifizierungsmechanismus des Unternehmens
ansteuern konnte. Doch eine uns im E-Mail-Verkehr zuvor mitgeteilte
IP-Adresse war – wie ich mittels zenmap-Analyse herausfand – aus
unerfindlichen Gründen im DNS nicht mehr korrekt zugeordnet. Die
Kombination aus verlorenen Zertifikaten und DNS-Anomalien machte die
Intranet-Anbindung zum Zeitpunkt der Projektabgabe unmöglich; die
Konzerngröße mit ihren entsprechend entschleunigenden Formalitäten
und Genehmigungsprozessen ließ eine Neubeantragung innerhalb der
verbleibenden Zeit nicht zu. Diese schmerzhafte Erfahrung führte
immerhin zur Implementierung eines robusten Backup-Systems mit
dreifacher Sicherung kritischer Konfigurationsdateien.
Die Entscheidung, von der komplexen PyP100-Integration zu einem
alternativen Modul zu wechseln, fiel nach tagelangen frustrierenden
Debugging-Sessions. Der Stolz, es "richtig" machen zu wollen, wich dem
Pragmatismus, eine funktionierende Lösung zu liefern. Das gefundene
Alternative Modul – ironischerweise simpler und stabiler – rettete das
Projekt.
## 3.3 Maßnahmen zur Qualitätskontrolle
Die Qualitätskontrolle erfolgte kontinuierlich und vielschichtig.
Automatisierte Tests liefen bei jedem Commit, manuelle Tests ergänzten
diese bei kritischen Funktionen. Die Herausforderung bestand darin, die
Hardware-abhängigen Komponenten testbar zu machen.
Mock-Objekte simulierten die Smart-Plugs für Unit-Tests. Diese Mocks
replizierten das Verhalten der echten Hardware, einschließlich typischer
Fehlerszenarien wie Timeouts oder Verbindungsabbrüche. Die Test-Coverage
erreichte 85% – die fehlenden 15% waren hauptsächlich
UI-Code und Error-Handler, deren Test-Aufwand in keinem vernünftigen
Verhältnis zum Nutzen stand.
Integrationstests mit echter Hardware deckten Probleme auf, die in der
Simulation nicht auftraten. Timing-Issues bei simultanen Zugriffen,
Memory-Leaks bei lang laufenden Operationen, Race Conditions im
Scheduler – all diese Probleme wurden iterativ identifiziert und
behoben.
Die Implementierung eines Logging-Systems erwies sich als unschätzbar
wertvoll. Jede Operation, jeder Fehler, jede Anomalie wurde
protokolliert. Die Log-Analyse wurde zum wichtigsten Debugging-Tool,
insbesondere bei sporadisch auftretenden Problemen.
## 3.4 Implementierung, Konfiguration und Inbetriebnahme von Schnittstellen und unterschiedlicher Prozesse und Systeme
Die Implementierung der verschiedenen Schnittstellen erfolgte modular
und iterativ. Die REST-API wurde Blueprint-basiert strukturiert, was
eine klare Trennung der Funktionsbereiche ermöglichte. Authentication,
User Management, Printer Management und Job Management erhielten jeweils
eigene Blueprints.
Die Smart-Plug-Schnittstelle durchlief mehrere Iterationen. Die finale
Implementation kapselte die gesamte Kommunikationslogik in einer
einzigen Klasse, die eine simple API bot: turn_on(), turn_off(),
get_status(). Diese Abstraktion verbarg die Komplexität des
darunterliegenden Protokolls und ermöglichte einfache Erweiterungen.
Die Datenbank-Schnittstelle nutzte SQLAlchemy's ORM-Funktionalität. Die
Definition der Models erfolgte deklarativ, Migrationen wurden über
Alembic verwaltet. Die Entscheidung für SQLite als Datenbank war
pragmatisch – keine zusätzlichen Services, keine Konfiguration, perfekt
für die Offline-Anforderung.
Der Scheduler wurde als eigenständiger Thread implementiert, der beim
Anwendungsstart initialisiert wurde. Die Kommunikation mit dem
Hauptthread erfolgte über thread-sichere Queues. Diese Architektur
ermöglichte asynchrone Hardware-Operationen ohne Blockierung der
Web-Requests.
## 3.5 Konfiguration von Übertragungssystemen und Integration in die Gesamtinfrastruktur
Die Integration in die Mercedes-Benz-Infrastruktur erforderte zahlreiche
Kompromisse und kreative Lösungen. Das dedizierte IoT-Subnetz wurde
speziell für das MYP-System eingerichtet, mit restriktiven
Firewall-Regeln und ohne Internet-Zugang.
Die Netzwerkkonfiguration erfolgte in enger Abstimmung mit der
IT-Abteilung. Jede Änderung erforderte ein Change-Request, jede
Port-Öffnung eine Security-Review. Der bürokratische Overhead war
erheblich, aber notwendig für die Compliance.
Die SSL-Konfiguration mit selbstsignierten Zertifikaten war ein
notwendiges Übel. Ohne Internet-Zugang war Let's Encrypt keine Option.
Die Zertifikate wurden mittels OpenSSL mit allen relevanten SANs
(Subject Alternative Names) generiert – ein Prozess, der trotz seiner
scheinbaren Trivialität mehrere Iterationen erforderte, um
Kompatibilitätsprobleme mit verschiedenen Browsern zu vermeiden. Die
unvermeidlichen Browser-Warnungen wurden durch eine dokumentierte
Prozedur zur Zertifikats-Installation umgangen, ergänzt durch die
Installation der Mercedes Root CA-Zertifikate für die geplante
Intranet-Integration. Zusätzlich implementierte ich einen ausgeklügelten
Kiosk-Modus: OpenBox als minimalistisches Desktop-Environment, drei
Chromium-Instanzen im Kiosk-Modus (Port 443 primär, Port 80 als
Fallback, Port 5000 für lokalen Kiosk-Zugriff), automatischer Start via
systemd-Service – eine Lösung, die nach Tests in VirtualBox nahtlos auf
die Produktivumgebung übertragen werden konnte.
Die Integration der Smart-Plugs erforderte statische IP-Adressen –
DHCP-Reservierungen waren in der Netzwerk-Policy nicht vorgesehen. Die
manuelle Konfiguration jedes Geräts war mühsam, gewährleistete aber
stabile Verbindungen; manchmal ist der steinige Weg der sicherste.
## 3.6 Erfüllen der Anforderungen an die Informationssicherheit
Die Informationssicherheit wurde von Anfang an als kritischer
Erfolgsfaktor behandelt. Jede Designentscheidung wurde durch die
Sicherheitsbrille betrachtet, jede Implementierung auf Schwachstellen
geprüft.
Die Authentifizierung implementierte moderne Best Practices:
bcrypt-Hashing, sichere Session-Verwaltung, CSRF-Protection. Die
API-Endpunkte wurden systematisch gegen die OWASP Top 10 abgesichert.
Input-Validation erfolgte auf mehreren Ebenen – Client-seitig für UX,
Server-seitig für Sicherheit; Vertrauen ist gut, Kontrolle ist besser.
Die Implementierung eines Rate-Limiters erschwerte
Brute-Force-Angriffe erheblich – wenngleich eine vollständige
Verhinderung illusorisch bleibt. Nach fünf fehlgeschlagenen
Login-Versuchen wurde die IP-Adresse für 30 Minuten gesperrt – lang
genug, um Angriffe ökonomisch unattraktiv zu machen, kurz genug, um
legitime Nutzer bei versehentlichen Fehleingaben nicht übermäßig zu
frustrieren; ein kalkulierter Kompromiss zwischen Sicherheit und
Benutzerfreundlichkeit.
DSGVO-Compliance wurde durch Privacy-by-Design erreicht.
Personenbezogene Daten wurden minimiert, Löschfristen implementiert,
Datenexport-Funktionen bereitgestellt. Die Logging-Funktionalität
anonymisierte IP-Adressen nach 30 Tagen automatisch – Datenschutz nicht
als Pflicht, sondern als Selbstverständlichkeit.
# 4. Projektabschluss
## 4.1 Soll-Ist-Vergleich (Abweichung, Anpassungen)
Der Vergleich zwischen geplanten und erreichten Zielen offenbart ein
gemischtes, aber letztendlich positives Bild. Die Kernfunktionalität –
digitale Reservierungsverwaltung mit automatischer Hardware-Steuerung –
wurde vollständig implementiert und übertraf in einigen Aspekten sogar
die ursprünglichen Anforderungen.
#### Erfolgreich umgesetzte Anforderungen:
- Vollständige Digitalisierung des Reservierungsprozesses
- Automatische Steuerung der 3D-Drucker via Smart-Plugs
- Robuste Benutzerauthentifizierung und -autorisierung
- Umfassende REST-API mit über 100 Endpunkten
- Offline-fähige Architektur ohne Cloud-Abhängigkeiten
- DSGVO-konforme Datenhaltung
- Energiemonitoring und Nutzungsstatistiken
#### Abweichungen vom ursprünglichen Plan:
- Konsolidierung auf einen statt zwei Raspberry Pis
- Wechsel von PyP100 zu alternativem Kommunikationsmodul
- Hardware-Upgrade vom Pi 4 auf Pi 5
- Verschiebung der Benutzerschulungen auf Nach-Projektphase
Die größte positive Überraschung war die erfolgreiche Integration des
Energiemonitorings. Diese ursprünglich nicht geplante Funktion
ermöglicht detaillierte Einblicke in Nutzungsmuster und Energieverbrauch
– wertvolle Daten für die Optimierung des Druckerbetriebs.
Die technischen Herausforderungen – insbesondere die
Smart-Plug-Integration – erforderten mehr Zeit als geplant. Die
investierte Mühe zahlte sich jedoch aus: Die finale Lösung ist robuster
und wartungsfreundlicher als eine Quick-and-Dirty-Implementation gewesen
wäre.
## 4.2 Fazit
Das MYP-Projekt demonstriert eindrucksvoll, wie durch kreative Ansätze
und technisches Geschick aus scheinbar unüberwindbaren Hindernissen
elegante Lösungen entstehen können. Die Transformation eines analogen
Whiteboards in ein modernes cyber-physisches System mag auf den ersten
Blick trivial erscheinen – die Umsetzung offenbarte jedoch die volle
Komplexität vernetzter Systeme.
Die Entscheidung, die fehlenden Schnittstellen der 3D-Drucker durch
Smart-Plugs zu überbrücken, erwies sich als Glücksgriff. Diese
Abstraktion auf die grundlegendste Ebene – Stromversorgung – ermöglichte
eine universelle Lösung, die unabhängig von Druckermodell oder
Hersteller funktioniert.
Die technische Exzellenz des Systems zeigt sich in den Details: Über
9.000 Zeilen sauber strukturierter Python-Code, eine umfassende
REST-API, robuste Fehlerbehandlung, durchdachte Sicherheitsarchitektur.
Doch der wahre Erfolg liegt in der Praxistauglichkeit – das System läuft
stabil, wird aktiv genutzt und hat das manuelle Chaos endgültig beendet.
Persönlich war das Projekt eine Achterbahnfahrt der Emotionen. Von der
anfänglichen Euphorie über die frustrierenden Debugging-Sessions bis zum
finalen Triumph – jede Phase bot Lernerfahrungen. Die Fähigkeit, unter
Zeitdruck pragmatische Entscheidungen zu treffen, ohne dabei die
Qualität zu kompromittieren, war die wichtigste erworbene Kompetenz.
## 4.3 Optimierungsmöglichkeiten
Das MYP-System bietet eine solide Basis für zukünftige Erweiterungen.
Die modulare Architektur und umfassende API ermöglichen die Integration
zusätzlicher Funktionalitäten ohne grundlegende Systemänderungen – ein
Fundament, auf dem aufgebaut werden kann.
Kurzfristig ist die Anbindung an das Active Directory der Mercedes-Benz
AG geplant. Die vorbereiteten Schnittstellen ermöglichen eine nahtlose
Integration, sobald die erforderlichen Genehmigungen vorliegen. Diese
Erweiterung würde die Benutzerverwaltung erheblich vereinfachen und die
Akzeptanz im Unternehmensumfeld steigern.
Mittelfristig könnte bei Verfügbarkeit modernerer 3D-Drucker eine
direkte Geräteintegration realisiert werden. Die Einbindung von
OctoPrint oder vergleichbaren Systemen würde erweiterte Funktionen wie
Druckfortschrittsüberwachung und Remote-Dateiverwaltung ermöglichen –
Features, die das System auf ein neues Level heben würden.
Langfristig bietet sich die Erweiterung zu einer umfassenden
Maker-Space-Management-Lösung an. Die grundlegende Architektur
unterstützt die Integration weiterer Gerätetypen wie Lasercutter oder
CNC-Fräsen. Machine-Learning-Algorithmen könnten perspektivisch für
Auslastungsprognosen und Optimierungsvorschläge implementiert werden –
die Möglichkeiten sind grenzenlos.
## 4.4 Abnahme
Die formale Projektabnahme erfolgte am 2. Juni 2025 durch die
Ausbildungsleitung der TBA. Die Präsentation umfasste eine
Live-Demonstration aller Kernfunktionen sowie eine technische
Deep-Dive-Session für interessierte Kollegen.
Die Live-Demonstration begann mit einem kleinen Missverständnis: Das
System war noch nicht vollständig produktiv aufgebaut, da letzte
Hardware-Komponenten sich noch in der Lieferung befanden. Doch hier
zeigte sich die wahre Stärke der Architektur – dank der robusten
Systemkonzeption konnte ich aus dem Stegreif improvisieren und das
System dennoch eindrucksvoll demonstrieren. Die automatische Aktivierung
eines 3D-Druckers zur reservierten Zeit funktionierte einwandfrei und
löste sichtbare Begeisterung aus.
Besonders positiv wurde die Wirtschaftlichkeit der Lösung bewertet. Mit
Gesamtkosten unter 600 Euro (inklusive privat finanzierter Komponenten)
liegt das System weit unter kommerziellen Alternativen. Die Einsparungen
durch automatisierte Abschaltung und optimierte Nutzung amortisieren die
Investition binnen weniger Monate – ein Argument, das bei der
Geschäftsführung Anklang fand.
Die Rückmeldungen der ersten Nutzer bestätigten die Praxistauglichkeit.
Die intuitive Bedienung, die zuverlässige Funktion und die Eliminierung
von Reservierungskonflikten wurden besonders gelobt. Kritikpunkte –
hauptsächlich bezüglich kleiner UX-Details – wurden dokumentiert und
fließen in zukünftige Updates ein; kontinuierliche Verbesserung als
Prinzip.
Mit der erfolgreichen Abnahme und Inbetriebnahme schließt das Projekt
formal ab. Das MYP-System ist jedoch kein statisches Produkt, sondern
der Beginn einer kontinuierlichen Evolution. Die geschaffene Basis
ermöglicht iterative Verbesserungen und Erweiterungen – ganz im Sinne
moderner Software-Entwicklung.
Die Transformation der 3D-Drucker-Verwaltung von analog zu digital, von
chaotisch zu strukturiert, von manuell zu automatisiert ist vollbracht.
Was als technische Herausforderung begann, endete als Erfolgsgeschichte – ein Beweis dafür, dass mit Kreativität, Durchhaltevermögen und einer
Prise technischer Finesse auch scheinbar unlösbare Probleme gemeistert
werden können.
# Anlagen
## Netzwerkdiagramme und Systemarchitektur
- Netzwerktopologie der TBA-Infrastruktur
- Systemarchitektur MYP
- zenmap-Visualisierung der DNS-Anomalie
## API-Dokumentation
- Vollständige REST-API-Spezifikation
- Authentifizierungs-Flows
- Beispiel-Requests und Responses
## Benutzerhandbuch
- Installation und Konfiguration
- Bedienungsanleitung für Endanwender
- Administratorhandbuch
## Testprotokolle
- Unit-Test-Ergebnisse
- Integrationstests
- Performance-Messungen
- Sicherheitsaudits
## Screenshots der Benutzeroberfläche
- Dashboard-Ansicht
- Reservierungskalender
- Administrationsbereich
- Kiosk-Modus
## Konfigurationsdateien und Deployment-Skripte
- systemd-Service-Definitionen
- OpenSSL-Zertifikatsgenerierung
- Firewalld-Konfiguration
- Backup-Skripte