🔧 Aktualisierung der Tapo-Steckdosen-Integration: Umstellung auf zentralen tapo_controller für Statusprüfungen und Verbindungs-Tests. Verbesserung der Fehlerbehandlung und Protokollierung. Anpassungen in der Dokumentation und Umbenennung von Funktionen zur besseren Lesbarkeit. 🛠️
This commit is contained in:
@@ -2217,24 +2217,29 @@ def check_printer_status(ip_address: str, timeout: int = 7) -> Tuple[str, bool]:
|
||||
if result == 0:
|
||||
reachable = True
|
||||
try:
|
||||
# TP-Link Tapo Steckdose mit PyP100 überprüfen
|
||||
from PyP100 import PyP100
|
||||
p100 = PyP100.P100(ip_address, TAPO_USERNAME, TAPO_PASSWORD)
|
||||
p100.handshake() # Authentifizierung
|
||||
p100.login() # Login
|
||||
|
||||
# Geräteinformationen abrufen
|
||||
device_info = p100.getDeviceInfo()
|
||||
# TP-Link Tapo Steckdose mit zentralem tapo_controller überprüfen
|
||||
from utils.tapo_controller import tapo_controller
|
||||
reachable, outlet_status = tapo_controller.check_outlet_status(ip_address)
|
||||
|
||||
# 🎯 KORREKTE LOGIK: Status auswerten
|
||||
if device_info.get('device_on', False):
|
||||
# Steckdose an = Drucker PRINTING (druckt gerade)
|
||||
status = "printing"
|
||||
printers_logger.info(f"🖨️ Drucker {ip_address}: PRINTING (Steckdose an - druckt gerade)")
|
||||
if reachable:
|
||||
if outlet_status == "on":
|
||||
# Steckdose an = Drucker PRINTING (druckt gerade)
|
||||
status = "printing"
|
||||
printers_logger.info(f"🖨️ Drucker {ip_address}: PRINTING (Steckdose an - druckt gerade)")
|
||||
elif outlet_status == "off":
|
||||
# Steckdose aus = Drucker ONLINE (bereit zum Drucken)
|
||||
status = "online"
|
||||
printers_logger.info(f"[OK] Drucker {ip_address}: ONLINE (Steckdose aus - bereit zum Drucken)")
|
||||
else:
|
||||
# Unbekannter Status
|
||||
status = "error"
|
||||
printers_logger.warning(f"[WARNING] Drucker {ip_address}: Unbekannter Steckdosen-Status")
|
||||
else:
|
||||
# Steckdose aus = Drucker ONLINE (bereit zum Drucken)
|
||||
status = "online"
|
||||
printers_logger.info(f"[OK] Drucker {ip_address}: ONLINE (Steckdose aus - bereit zum Drucken)")
|
||||
# Steckdose nicht erreichbar
|
||||
reachable = False
|
||||
status = "error"
|
||||
printers_logger.error(f"[ERROR] Drucker {ip_address}: Steckdose nicht erreichbar")
|
||||
|
||||
except Exception as e:
|
||||
printers_logger.error(f"[ERROR] Fehler bei Tapo-Status-Check für {ip_address}: {str(e)}")
|
||||
@@ -3288,7 +3293,7 @@ def test_printer_tapo_connection(printer_id):
|
||||
db_session.close()
|
||||
|
||||
# Tapo-Verbindung testen
|
||||
from utils.job_scheduler import test_tapo_connection
|
||||
from utils.tapo_controller import test_tapo_connection
|
||||
test_result = test_tapo_connection(
|
||||
printer.plug_ip,
|
||||
printer.plug_username,
|
||||
@@ -3325,7 +3330,7 @@ def test_all_printers_tapo_connection():
|
||||
})
|
||||
|
||||
# Alle Drucker testen
|
||||
from utils.job_scheduler import test_tapo_connection
|
||||
from utils.tapo_controller import test_tapo_connection
|
||||
results = []
|
||||
|
||||
for printer in printers:
|
||||
|
Reference in New Issue
Block a user