- Replaced Tailwind CSS CDN link with a local stylesheet reference to `tailwind.min.css` for improved performance and customization. - Updated comments to reflect the change in Tailwind CSS sourcing.
MYP - Manage Your Printer
Ein System zur Verwaltung und Steuerung von 3D-Druckern über TP-Link Tapo P110 Smart Plugs.
Verzeichnisstruktur
Diese MYP-Installation ist wie folgt organisiert:
- app/ - Enthält den Anwendungscode (app.py, models.py)
- docs/ - Enthält die Dokumentation (README, Anleitungen, Fehlerbehebung)
- install/ - Enthält Installationsskripte und Konfigurationsdateien
Installation
Zur Installation und Konfiguration nutzen Sie bitte das Hauptinstallationsskript:
chmod +x setup_myp.sh
./setup_myp.sh
Das Skript führt Sie durch die verfügbaren Optionen:
- Standardinstallation (nur MYP-Anwendung)
- Kiosk-Modus Installation (vollautomatischer Start nach Boot)
- Dokumentation anzeigen
Ausführliche Dokumentation
Die vollständige Dokumentation finden Sie im docs/-Verzeichnis:
- Allgemeine Anleitung: docs/README.md
- Kiosk-Modus Anleitung: docs/KIOSK-SETUP.md
- Fehlerbehebung: docs/COMMON_ERRORS.md
- Entwicklungsplan: docs/ROADMAP.md
Funktionsumfang
- Benutzer- und Rechteverwaltung (Admin/User)
- Verwaltung von Druckern und Smart Plugs
- Reservierungssystem für Drucker (Zeitplanung)
- Automatisches Ein-/Ausschalten der Drucker über Smart Plugs
- Statistikerfassung für Druckaufträge
- NEU: Kiosk-Modus für automatischen Start auf Raspberry Pi
Systemvoraussetzungen
- Raspberry Pi 4 (oder kompatibel)
- Python 3.11+
- Internetzugang für die Installation (danach offline nutzbar)
- TP-Link Tapo P110 Smart Plugs im lokalen Netzwerk
Erster Start
Beim ersten Start wird eine leere Datenbank angelegt. Es muss ein erster Administrator angelegt werden:
POST /api/create-initial-admin
Mit folgendem JSON-Body:
{
"email": "admin@example.com",
"password": "sicheres-passwort",
"name": "Administrator"
}
API-Dokumentation
Die Anwendung stellt folgende REST-API-Endpunkte bereit:
Authentifizierung
POST /auth/register- Neuen Benutzer registrierenPOST /auth/login- Anmelden (erstellt eine Session für 7 Tage)
Drucker
GET /api/printers- Alle Drucker auflistenGET /api/printers/<printerId>- Einzelnen Drucker abrufenPOST /api/printers- Neuen Drucker anlegenDELETE /api/printers/<printerId>- Drucker löschen
Jobs/Reservierungen
GET /api/jobs- Alle Reservierungen abrufenPOST /api/jobs- Neue Reservierung anlegenGET /api/jobs/<jobId>- Reservierungsdetails abrufenPOST /api/jobs/<jobId>/finish- Job beenden (Plug ausschalten)POST /api/jobs/<jobId>/abort- Job abbrechen (Plug ausschalten)POST /api/jobs/<jobId>/extend- Endzeit verschiebenGET /api/jobs/<jobId>/status- Aktuellen Plug-Status abrufenGET /api/jobs/<jobId>/remaining-time- Restzeit in Sekunden abrufenDELETE /api/jobs/<jobId>- Job löschen
Benutzer
GET /api/users- Alle Benutzer auflisten (nur Admin)GET /api/users/<userId>- Einzelnen Benutzer abrufenDELETE /api/users/<userId>- Benutzer löschen (nur Admin)
Sonstiges
GET /api/stats- Globale Statistik (Druckzeit, etc.)GET /api/test- Health-Check
Sicherheitshinweise
- Diese Anwendung speichert alle Zugangsdaten direkt im Code und in der Datenbank.
- Die Anwendung sollte ausschließlich in einem geschützten, lokalen Netzwerk betrieben werden.
- Es wird keine Verschlüsselung für die API-Kommunikation verwendet.
Wartung und Troubleshooting
- Die Logdatei
myp.logenthält alle wichtigen Ereignisse und Fehler - Die Datenbank wird in
database/myp.dbgespeichert - Häufig auftretende Probleme und Lösungen finden sich in COMMON_ERRORS.md
- Zukünftige Entwicklungspläne sind in ROADMAP.md dokumentiert