"Refactor job scheduling and printer monitoring"
This commit is contained in:
@@ -293,8 +293,8 @@ class BackgroundTaskScheduler:
|
||||
Args:
|
||||
ip: IP-Adresse der Steckdose
|
||||
state: True = Ein, False = Aus
|
||||
username: Benutzername für die Steckdose (optional)
|
||||
password: Passwort für die Steckdose (optional)
|
||||
username: Benutzername für die Steckdose (wird überschrieben mit globalen Credentials)
|
||||
password: Passwort für die Steckdose (wird überschrieben mit globalen Credentials)
|
||||
|
||||
Returns:
|
||||
bool: True wenn erfolgreich geschaltet
|
||||
@@ -307,12 +307,11 @@ class BackgroundTaskScheduler:
|
||||
self.logger.error("❌ PyP100-Modul nicht installiert - Steckdose kann nicht geschaltet werden")
|
||||
return False
|
||||
|
||||
# Anmeldedaten aus Einstellungen verwenden, falls nicht angegeben
|
||||
if not username or not password:
|
||||
from config.settings import TAPO_USERNAME, TAPO_PASSWORD
|
||||
username = TAPO_USERNAME
|
||||
password = TAPO_PASSWORD
|
||||
self.logger.debug(f"🔧 Verwende globale Tapo-Anmeldedaten für {ip}")
|
||||
# IMMER globale Anmeldedaten verwenden (da diese funktionieren)
|
||||
from config.settings import TAPO_USERNAME, TAPO_PASSWORD
|
||||
username = TAPO_USERNAME
|
||||
password = TAPO_PASSWORD
|
||||
self.logger.debug(f"🔧 Verwende globale Tapo-Anmeldedaten für {ip}")
|
||||
|
||||
# P100-Verbindung herstellen (P100 statt P110 verwenden)
|
||||
p100 = PyP100.P100(ip, username, password)
|
||||
@@ -338,7 +337,9 @@ class BackgroundTaskScheduler:
|
||||
|
||||
def toggle_printer_plug(self, printer_id: int, state: bool) -> bool:
|
||||
"""
|
||||
Schaltet die Steckdose eines Druckers ein oder aus.
|
||||
Schaltet die Steckdose eines Druckers ein oder aus mit korrektem Status-Mapping:
|
||||
- Steckdose AUS = Drucker ONLINE (bereit zum Drucken)
|
||||
- Steckdose AN = Drucker PRINTING (druckt gerade)
|
||||
|
||||
Args:
|
||||
printer_id: ID des Druckers
|
||||
@@ -367,16 +368,24 @@ class BackgroundTaskScheduler:
|
||||
success = self.toggle_plug(
|
||||
ip=printer.plug_ip,
|
||||
state=state,
|
||||
username=printer.plug_username,
|
||||
password=printer.plug_password
|
||||
username=printer.plug_username, # Wird überschrieben mit globalen Credentials
|
||||
password=printer.plug_password # Wird überschrieben mit globalen Credentials
|
||||
)
|
||||
|
||||
if success:
|
||||
# Status in Datenbank aktualisieren
|
||||
printer.status = "online" if state else "offline"
|
||||
# Status in Datenbank aktualisieren entsprechend der neuen Logik
|
||||
if state:
|
||||
# Steckdose eingeschaltet = Drucker druckt
|
||||
printer.status = "printing"
|
||||
self.logger.info(f"🖨️ Drucker {printer.name}: Status auf 'printing' gesetzt (Steckdose eingeschaltet)")
|
||||
else:
|
||||
# Steckdose ausgeschaltet = Drucker bereit
|
||||
printer.status = "online"
|
||||
self.logger.info(f"✅ Drucker {printer.name}: Status auf 'online' gesetzt (Steckdose ausgeschaltet - bereit)")
|
||||
|
||||
printer.last_checked = datetime.now()
|
||||
db_session.commit()
|
||||
self.logger.info(f"✅ Status für Drucker {printer.name} aktualisiert: {'online' if state else 'offline'}")
|
||||
self.logger.info(f"✅ Status für Drucker {printer.name} erfolgreich aktualisiert")
|
||||
|
||||
db_session.close()
|
||||
return success
|
||||
|
Reference in New Issue
Block a user