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

59 lines
1.8 KiB
Markdown

# 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:
```python
# 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:
```python
# 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:
```python
# 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