🎉 Improved backend structure & optimizations 🛠️
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -13,6 +13,7 @@ Autor: Till Tomczak - Mercedes-Benz TBA Marienfelde
|
||||
Datum: 2025-06-19 (Komplett-Neuschreibung für Backend-Kontrolle)
|
||||
"""
|
||||
|
||||
import os
|
||||
import time
|
||||
import socket
|
||||
import threading
|
||||
@ -30,10 +31,12 @@ except ImportError:
|
||||
PyP110 = None
|
||||
TAPO_AVAILABLE = False
|
||||
|
||||
# Entwicklungsumgebung-Erkennung
|
||||
DEVELOPMENT_MODE = os.getenv('MYP_ENV', 'development') == 'development' or 'WSL' in os.uname().release
|
||||
|
||||
# MYP Models & Utils
|
||||
from models import get_db_session, Printer, PlugStatusLog
|
||||
from utils.logging_config import get_logger
|
||||
import os
|
||||
|
||||
# Logger
|
||||
hardware_logger = get_logger("hardware_integration")
|
||||
@ -71,6 +74,9 @@ class DruckerSteuerung:
|
||||
|
||||
if not TAPO_AVAILABLE:
|
||||
hardware_logger.warning("⚠️ PyP100 nicht verfügbar - Simulation-Modus aktiv")
|
||||
|
||||
if DEVELOPMENT_MODE:
|
||||
hardware_logger.info("🚧 Entwicklungsumgebung erkannt - Erweiterte Simulation aktiviert")
|
||||
|
||||
# ===== KERN-STEUERUNGS-FUNKTIONEN =====
|
||||
|
||||
@ -350,9 +356,9 @@ class DruckerSteuerung:
|
||||
|
||||
def _steckdose_schalten(self, ip: str, einschalten: bool) -> bool:
|
||||
"""Schaltet eine Tapo-Steckdose ein oder aus"""
|
||||
if not TAPO_AVAILABLE:
|
||||
hardware_logger.warning(f"⚠️ Simulation: Steckdose {ip} würde {'eingeschaltet' if einschalten else 'ausgeschaltet'}")
|
||||
return True # Simulation immer erfolgreich
|
||||
if not TAPO_AVAILABLE or DEVELOPMENT_MODE:
|
||||
hardware_logger.info(f"🔄 {'DEVELOPMENT' if DEVELOPMENT_MODE else 'SIMULATION'}: Steckdose {ip} würde {'eingeschaltet' if einschalten else 'ausgeschaltet'}")
|
||||
return True # Simulation/Development immer erfolgreich
|
||||
|
||||
# Zuerst Netzwerk-Erreichbarkeit prüfen
|
||||
if not self._erweiterte_netzwerk_prüfung(ip):
|
||||
@ -409,6 +415,11 @@ class DruckerSteuerung:
|
||||
if not drucker.plug_ip:
|
||||
return 'unknown'
|
||||
|
||||
# Development-Modus: Simuliere wechselnden Status für Demo
|
||||
if DEVELOPMENT_MODE:
|
||||
import random
|
||||
return random.choice(['online', 'offline'])
|
||||
|
||||
# Ping-Test zur Steckdose
|
||||
if self._ping_test(drucker.plug_ip):
|
||||
return 'online'
|
||||
@ -514,9 +525,13 @@ class DruckerSteuerung:
|
||||
"""
|
||||
hardware_logger.debug(f"🔍 Prüfe Steckdosen-Status: {ip}" + (f" (Drucker ID: {printer_id})" if printer_id else ""))
|
||||
|
||||
if not TAPO_AVAILABLE:
|
||||
# Legacy-Format: (reachable, status)
|
||||
return (True, 'online')
|
||||
if not TAPO_AVAILABLE or DEVELOPMENT_MODE:
|
||||
# Development/Simulation: Zufälligen Status für Demo
|
||||
import random
|
||||
if DEVELOPMENT_MODE:
|
||||
return (True, random.choice(['on', 'off']))
|
||||
else:
|
||||
return (True, 'online')
|
||||
|
||||
# Zuerst Netzwerk-Erreichbarkeit prüfen
|
||||
if not self._erweiterte_netzwerk_prüfung(ip):
|
||||
@ -720,8 +735,8 @@ class DruckerSteuerung:
|
||||
"""
|
||||
hardware_logger.debug(f"🔴 Schalte Steckdose aus: {ip}" + (f" (Drucker ID: {printer_id})" if printer_id else ""))
|
||||
|
||||
if not TAPO_AVAILABLE:
|
||||
hardware_logger.info(f"🔄 SIMULATION: Steckdose {ip} ausgeschaltet")
|
||||
if not TAPO_AVAILABLE or DEVELOPMENT_MODE:
|
||||
hardware_logger.info(f"🔄 {'DEVELOPMENT' if DEVELOPMENT_MODE else 'SIMULATION'}: Steckdose {ip} ausgeschaltet")
|
||||
return True
|
||||
|
||||
try:
|
||||
@ -763,8 +778,8 @@ class DruckerSteuerung:
|
||||
"""
|
||||
hardware_logger.debug(f"🟢 Schalte Steckdose ein: {ip}" + (f" (Drucker ID: {printer_id})" if printer_id else ""))
|
||||
|
||||
if not TAPO_AVAILABLE:
|
||||
hardware_logger.info(f"🔄 SIMULATION: Steckdose {ip} eingeschaltet")
|
||||
if not TAPO_AVAILABLE or DEVELOPMENT_MODE:
|
||||
hardware_logger.info(f"🔄 {'DEVELOPMENT' if DEVELOPMENT_MODE else 'SIMULATION'}: Steckdose {ip} eingeschaltet")
|
||||
return True
|
||||
|
||||
try:
|
||||
|
Reference in New Issue
Block a user