"feat: Implement database backup for myp.db using wal"
This commit is contained in:
parent
a01ecd6d0e
commit
9ce6b0b5e8
Binary file not shown.
Binary file not shown.
BIN
backend/app/database/myp.db.backup_20250529_231800
Normal file
BIN
backend/app/database/myp.db.backup_20250529_231800
Normal file
Binary file not shown.
@ -300,7 +300,10 @@ class PrinterMonitor:
|
||||
|
||||
def _check_single_printer_status(self, printer: Printer, timeout: int = 7) -> Dict:
|
||||
"""
|
||||
Überprüft den Status eines einzelnen Druckers.
|
||||
Überprüft den Status eines einzelnen Druckers basierend auf der Steckdosen-Logik:
|
||||
- Steckdose erreichbar aber AUS = Drucker ONLINE (bereit zum Drucken)
|
||||
- Steckdose erreichbar und AN = Drucker PRINTING (druckt gerade)
|
||||
- Steckdose nicht erreichbar = Drucker OFFLINE (kritischer Fehler)
|
||||
|
||||
Args:
|
||||
printer: Printer-Objekt aus der Datenbank
|
||||
@ -341,25 +344,44 @@ class PrinterMonitor:
|
||||
status_info["outlet_reachable"] = outlet_reachable
|
||||
status_info["outlet_state"] = outlet_state
|
||||
|
||||
if outlet_reachable and outlet_state == "on":
|
||||
# 🎯 KORREKTE LOGIK: Steckdose erreichbar = Drucker funktionsfähig
|
||||
if outlet_reachable:
|
||||
if outlet_state == "off":
|
||||
# Steckdose aus = Drucker ONLINE (bereit zum Drucken)
|
||||
status_info["status"] = "online"
|
||||
status_info["active"] = True
|
||||
elif outlet_reachable and outlet_state == "off":
|
||||
status_info["status"] = "standby"
|
||||
status_info["active"] = False
|
||||
monitor_logger.debug(f"✅ {printer.name}: ONLINE (Steckdose aus - bereit zum Drucken)")
|
||||
elif outlet_state == "on":
|
||||
# Steckdose an = Drucker PRINTING (druckt gerade)
|
||||
status_info["status"] = "printing"
|
||||
status_info["active"] = True
|
||||
monitor_logger.debug(f"🖨️ {printer.name}: PRINTING (Steckdose an - druckt gerade)")
|
||||
else:
|
||||
# Unbekannter Steckdosen-Status
|
||||
status_info["status"] = "error"
|
||||
status_info["active"] = False
|
||||
monitor_logger.warning(f"⚠️ {printer.name}: Unbekannter Steckdosen-Status '{outlet_state}'")
|
||||
else:
|
||||
# Steckdose nicht erreichbar = kritischer Fehler
|
||||
status_info["status"] = "offline"
|
||||
status_info["active"] = False
|
||||
monitor_logger.warning(f"❌ {printer.name}: OFFLINE (Steckdose nicht erreichbar)")
|
||||
else:
|
||||
# Ping fehlgeschlagen = Netzwerkproblem
|
||||
status_info["status"] = "unreachable"
|
||||
status_info["active"] = False
|
||||
monitor_logger.warning(f"🔌 {printer.name}: UNREACHABLE (Ping fehlgeschlagen)")
|
||||
else:
|
||||
# Keine Steckdosen-IP konfiguriert
|
||||
status_info["status"] = "unconfigured"
|
||||
status_info["active"] = False
|
||||
monitor_logger.info(f"⚙️ {printer.name}: UNCONFIGURED (keine Steckdosen-IP)")
|
||||
|
||||
except Exception as e:
|
||||
monitor_logger.error(f"❌ Fehler bei Status-Check für {printer.name}: {str(e)}")
|
||||
status_info["error"] = str(e)
|
||||
status_info["status"] = "error"
|
||||
status_info["active"] = False
|
||||
|
||||
return status_info
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user