Es scheint, dass es sich bei den Dateien um verschiedene Log- und Einstellungsdateien handelt, die mit dem MM-Backend verbunden sind. Hier ist eine Zusammenfassung der wichtigsten Entitäten:

This commit is contained in:
2025-06-19 10:13:46 +02:00
parent 18ebd9a2b6
commit de0729e559
108 changed files with 277 additions and 892 deletions

View File

@@ -1,95 +0,0 @@
#!/usr/bin/env python3.11
"""
Script zum Erstellen von Test-Druckern mit Tapo-Steckdosen
"""
from models import get_db_session, Printer
from datetime import datetime
def create_test_printers():
"""Erstellt Test-Drucker mit Tapo-Steckdosen."""
db = get_db_session()
# Test-Drucker mit Tapo-Steckdosen
test_printers = [
{
'name': 'Ender 3 Pro',
'ip': '192.168.0.100',
'plug_ip': '192.168.0.103',
'location': 'Werkstatt A',
'description': 'Creality Ender 3 Pro - Einsteigermodell'
},
{
'name': 'Prusa i3 MK3S',
'ip': '192.168.0.101',
'plug_ip': '192.168.0.104',
'location': 'Werkstatt B',
'description': 'Prusa i3 MK3S+ - Profi-Drucker'
},
{
'name': 'Artillery Sidewinder',
'ip': '192.168.0.102',
'plug_ip': '192.168.0.100',
'location': 'Labor',
'description': 'Artillery Sidewinder X1 - Großformat'
},
{
'name': 'Bambu Lab A1 mini',
'ip': '192.168.0.106',
'plug_ip': '192.168.0.101',
'location': 'Entwicklung',
'description': 'Bambu Lab A1 mini - Kompakt und schnell'
},
{
'name': 'Ultimaker S3',
'ip': '192.168.0.106',
'plug_ip': '192.168.0.102',
'location': 'Prototyping',
'description': 'Ultimaker S3 - Dual-Extruder'
}
]
created_count = 0
updated_count = 0
for printer_data in test_printers:
existing = db.query(Printer).filter_by(name=printer_data['name']).first()
if not existing:
printer = Printer(
name=printer_data['name'],
ip=printer_data['ip'],
plug_ip=printer_data['plug_ip'],
location=printer_data['location'],
description=printer_data['description'],
active=True,
created_at=datetime.now()
)
db.add(printer)
created_count += 1
print(f"✅ Erstellt: {printer_data['name']} mit Tapo {printer_data['plug_ip']}")
else:
existing.plug_ip = printer_data['plug_ip']
existing.location = printer_data['location']
existing.description = printer_data['description']
existing.active = True
updated_count += 1
print(f"🔄 Aktualisiert: {printer_data['name']} mit Tapo {printer_data['plug_ip']}")
try:
db.commit()
print(f"\n🎯 Erfolgreich abgeschlossen:")
print(f" - {created_count} neue Drucker erstellt")
print(f" - {updated_count} Drucker aktualisiert")
print(f" - Gesamt: {created_count + updated_count} Drucker mit Tapo-Steckdosen")
except Exception as e:
db.rollback()
print(f"❌ Fehler beim Speichern: {e}")
finally:
db.close()
if __name__ == "__main__":
print("🔧 Erstelle Test-Drucker mit Tapo-Steckdosen...")
create_test_printers()

View File

@@ -1,151 +0,0 @@
#!/usr/bin/env python3.11
"""
Script zum Einrichten der Tapo-Steckdosen in der Datenbank
Hardkodierte IPs: 192.168.0.100 - 192.168.0.106 (außer 105)
"""
import sys
import os
# Pfad zum Backend-Verzeichnis hinzufügen
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from models import get_db_session, Printer
from utils.logging_config import get_logger
logger = get_logger("tapo_setup")
def setup_tapo_outlets():
"""Richtet die hardkodierten Tapo-Steckdosen-IPs in der Datenbank ein."""
# Hardkodierte IP-Adressen (192.168.0.100 - 192.168.0.106, außer 105)
tapo_ips = [
"192.168.0.100",
"192.168.0.101",
"192.168.0.102",
"192.168.0.103",
"192.168.0.104",
"192.168.0.106" # 105 ist ausgenommen
]
db_session = get_db_session()
try:
for i, ip in enumerate(tapo_ips, start=1):
# Prüfen ob bereits vorhanden
existing_printer = db_session.query(Printer).filter(
Printer.plug_ip == ip
).first()
if existing_printer:
logger.info(f"✅ Tapo-Steckdose {ip} bereits vorhanden (Drucker: {existing_printer.name})")
continue
# Neuen Drucker-Eintrag erstellen
printer_name = f"Tapo P110 ({ip})"
location = f"Werk 040 - Berlin - TBA"
new_printer = Printer(
name=printer_name,
model="P115", # Tapo P110/P115 Modell
location=location,
ip_address=ip,
mac_address=f"00:00:00:00:{int(ip.split('.')[-1]):02d}:00", # Dummy MAC
plug_ip=ip, # Wichtig: plug_ip für Tapo-Steuerung
plug_username="tapo_user", # Standard Tapo-Benutzername
plug_password="tapo_pass", # Standard Tapo-Passwort
active=True
)
db_session.add(new_printer)
logger.info(f" Tapo-Steckdose {ip} hinzugefügt: {printer_name}")
# Änderungen speichern
db_session.commit()
logger.info(f"🎉 Setup abgeschlossen: {len(tapo_ips)} Tapo-Steckdosen konfiguriert")
# Status anzeigen
show_tapo_status(db_session)
except Exception as e:
db_session.rollback()
logger.error(f"❌ Fehler beim Setup: {e}")
raise
finally:
db_session.close()
def show_tapo_status(db_session):
"""Zeigt den aktuellen Status aller Tapo-Steckdosen an."""
tapo_printers = db_session.query(Printer).filter(
Printer.plug_ip.isnot(None),
Printer.active == True
).order_by(Printer.plug_ip).all()
logger.info(f"\n📊 Tapo-Steckdosen Übersicht ({len(tapo_printers)} konfiguriert):")
logger.info("=" * 80)
for printer in tapo_printers:
logger.info(f" 📍 {printer.plug_ip} - {printer.name}")
logger.info(f" Standort: {printer.location}")
logger.info(f" Aktiv: {'' if printer.active else ''}")
logger.info("-" * 60)
def remove_all_tapo_outlets():
"""Entfernt alle Tapo-Steckdosen aus der Datenbank (Cleanup-Funktion)."""
db_session = get_db_session()
try:
tapo_printers = db_session.query(Printer).filter(
Printer.plug_ip.isnot(None)
).all()
count = len(tapo_printers)
if count == 0:
logger.info(" Keine Tapo-Steckdosen in der Datenbank gefunden")
return
for printer in tapo_printers:
logger.info(f"🗑️ Entferne: {printer.name} ({printer.plug_ip})")
db_session.delete(printer)
db_session.commit()
logger.info(f"{count} Tapo-Steckdosen erfolgreich entfernt")
except Exception as e:
db_session.rollback()
logger.error(f"❌ Fehler beim Entfernen: {e}")
raise
finally:
db_session.close()
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(description="Tapo-Steckdosen Setup")
parser.add_argument("--setup", action="store_true", help="Tapo-Steckdosen einrichten")
parser.add_argument("--status", action="store_true", help="Status anzeigen")
parser.add_argument("--cleanup", action="store_true", help="Alle Tapo-Steckdosen entfernen")
args = parser.parse_args()
if args.setup:
logger.info("🔧 Starte Tapo-Steckdosen Setup...")
setup_tapo_outlets()
elif args.status:
logger.info("📊 Zeige Tapo-Status...")
db_session = get_db_session()
try:
show_tapo_status(db_session)
finally:
db_session.close()
elif args.cleanup:
logger.info("🗑️ Starte Cleanup...")
remove_all_tapo_outlets()
else:
logger.info("📋 Verwendung:")
logger.info(" python3.11 setup_tapo_outlets.py --setup # Steckdosen einrichten")
logger.info(" python3.11 setup_tapo_outlets.py --status # Status anzeigen")
logger.info(" python3.11 setup_tapo_outlets.py --cleanup # Alle entfernen")