59 lines
1.8 KiB
Markdown
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 |