3.7 KiB

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:

  1. Standardinstallation (nur MYP-Anwendung)
  2. Kiosk-Modus Installation (vollautomatischer Start nach Boot)
  3. Dokumentation anzeigen

Ausführliche Dokumentation

Die vollständige Dokumentation finden Sie im docs/-Verzeichnis:

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 registrieren
  • POST /auth/login - Anmelden (erstellt eine Session für 7 Tage)

Drucker

  • GET /api/printers - Alle Drucker auflisten
  • GET /api/printers/<printerId> - Einzelnen Drucker abrufen
  • POST /api/printers - Neuen Drucker anlegen
  • DELETE /api/printers/<printerId> - Drucker löschen

Jobs/Reservierungen

  • GET /api/jobs - Alle Reservierungen abrufen
  • POST /api/jobs - Neue Reservierung anlegen
  • GET /api/jobs/<jobId> - Reservierungsdetails abrufen
  • POST /api/jobs/<jobId>/finish - Job beenden (Plug ausschalten)
  • POST /api/jobs/<jobId>/abort - Job abbrechen (Plug ausschalten)
  • POST /api/jobs/<jobId>/extend - Endzeit verschieben
  • GET /api/jobs/<jobId>/status - Aktuellen Plug-Status abrufen
  • GET /api/jobs/<jobId>/remaining-time - Restzeit in Sekunden abrufen
  • DELETE /api/jobs/<jobId> - Job löschen

Benutzer

  • GET /api/users - Alle Benutzer auflisten (nur Admin)
  • GET /api/users/<userId> - Einzelnen Benutzer abrufen
  • DELETE /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.log enthält alle wichtigen Ereignisse und Fehler
  • Die Datenbank wird in database/myp.db gespeichert
  • Häufig auftretende Probleme und Lösungen finden sich in COMMON_ERRORS.md
  • Zukünftige Entwicklungspläne sind in ROADMAP.md dokumentiert