1.8 KiB
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
- Import-Syntax: Beim Import von Instanzen direkt den Variablennamen verwenden
- Fehlerbehandlung: Der Code hat bereits robuste Fehlerbehandlung für den Fall, dass der Tapo-Controller nicht verfügbar ist
- Neustart erforderlich: Nach der Änderung muss der Server neu gestartet werden
🚀 Nächste Schritte
- Server neu starten:
python app.py
- Testen: Öffnen Sie die Drucker-Seite und prüfen Sie die Browser-Konsole
- 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