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:
@@ -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()
|
@@ -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")
|
Reference in New Issue
Block a user