Files
Projektarbeit-MYP/backend/docs/fix-http500-printer-status.md

1.8 KiB

HTTP 500 Fehler beim PrinterMonitor - Behebung

🔧 Problem

Der PrinterMonitor erhielt einen HTTP 500 Fehler beim Aufruf von /api/printers/status:

Fehler beim Abrufen des Drucker-Status: Error: HTTP 500:INTERNAL SERVER ERROR
    at PrinterMonitor.updatePrinterStatus (printer_monitor.min.js:12:214)

🔍 Ursache

In der api_get_printer_status Funktion in app.py (Zeile ~962) wurde versucht, eine nicht existierende Funktion zu importieren:

# FALSCH:
from utils.hardware_integration import get_tapo_controller
tapo_controller = get_tapo_controller()

Dies führte zu einem ImportError, da get_tapo_controller als Funktion nicht direkt exportiert wird.

Lösung

Der Import wurde korrigiert zu:

# RICHTIG:
from utils.hardware_integration import tapo_controller

Warum funktioniert das?

In utils/hardware_integration.py (Zeile 716) wird tapo_controller bereits als globale Instanz erstellt und exportiert:

# Am Ende von hardware_integration.py:
tapo_controller = get_tapo_controller()

📝 Wichtige Punkte

  1. Import-Syntax: Beim Import von Instanzen direkt den Variablennamen verwenden
  2. Fehlerbehandlung: Der Code hat bereits robuste Fehlerbehandlung für den Fall, dass der Tapo-Controller nicht verfügbar ist
  3. Neustart erforderlich: Nach der Änderung muss der Server neu gestartet werden

🚀 Nächste Schritte

  1. Server neu starten: python app.py
  2. Testen: Öffnen Sie die Drucker-Seite und prüfen Sie die Browser-Konsole
  3. Der PrinterMonitor sollte nun erfolgreich den Status abrufen

🎯 Ergebnis

Nach dem Neustart funktioniert der /api/printers/status Endpoint korrekt und liefert:

  • Drucker-Basis-Informationen
  • Steckdosen-Status (wenn konfiguriert)
  • Fehlerbehandlung für nicht erreichbare Steckdosen