"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:
|
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:
|
Args:
|
||||||
printer: Printer-Objekt aus der Datenbank
|
printer: Printer-Objekt aus der Datenbank
|
||||||
@ -341,25 +344,44 @@ class PrinterMonitor:
|
|||||||
status_info["outlet_reachable"] = outlet_reachable
|
status_info["outlet_reachable"] = outlet_reachable
|
||||||
status_info["outlet_state"] = outlet_state
|
status_info["outlet_state"] = outlet_state
|
||||||
|
|
||||||
if outlet_reachable and outlet_state == "on":
|
# 🎯 KORREKTE LOGIK: Steckdose erreichbar = Drucker funktionsfähig
|
||||||
status_info["status"] = "online"
|
if outlet_reachable:
|
||||||
status_info["active"] = True
|
if outlet_state == "off":
|
||||||
elif outlet_reachable and outlet_state == "off":
|
# Steckdose aus = Drucker ONLINE (bereit zum Drucken)
|
||||||
status_info["status"] = "standby"
|
status_info["status"] = "online"
|
||||||
status_info["active"] = False
|
status_info["active"] = True
|
||||||
|
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:
|
else:
|
||||||
|
# Steckdose nicht erreichbar = kritischer Fehler
|
||||||
status_info["status"] = "offline"
|
status_info["status"] = "offline"
|
||||||
status_info["active"] = False
|
status_info["active"] = False
|
||||||
|
monitor_logger.warning(f"❌ {printer.name}: OFFLINE (Steckdose nicht erreichbar)")
|
||||||
else:
|
else:
|
||||||
|
# Ping fehlgeschlagen = Netzwerkproblem
|
||||||
status_info["status"] = "unreachable"
|
status_info["status"] = "unreachable"
|
||||||
status_info["active"] = False
|
status_info["active"] = False
|
||||||
|
monitor_logger.warning(f"🔌 {printer.name}: UNREACHABLE (Ping fehlgeschlagen)")
|
||||||
else:
|
else:
|
||||||
|
# Keine Steckdosen-IP konfiguriert
|
||||||
status_info["status"] = "unconfigured"
|
status_info["status"] = "unconfigured"
|
||||||
status_info["active"] = False
|
status_info["active"] = False
|
||||||
|
monitor_logger.info(f"⚙️ {printer.name}: UNCONFIGURED (keine Steckdosen-IP)")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
monitor_logger.error(f"❌ Fehler bei Status-Check für {printer.name}: {str(e)}")
|
monitor_logger.error(f"❌ Fehler bei Status-Check für {printer.name}: {str(e)}")
|
||||||
status_info["error"] = str(e)
|
status_info["error"] = str(e)
|
||||||
|
status_info["status"] = "error"
|
||||||
|
status_info["active"] = False
|
||||||
|
|
||||||
return status_info
|
return status_info
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user