**Änderungen:** - ✅ check_printer_ips.py und check_printers.py: Entfernt nicht mehr benötigte Skripte zur Überprüfung von Drucker-IP-Adressen. - ✅ DRUCKER_STATUS_REQUIREMENTS.md: Veraltete Anforderungen entfernt. - ✅ setup_standard_printers.py: Anpassungen zur Vereinheitlichung der Drucker-IP. - ✅ app.py: Logik zur Filterung offline/unreachable Drucker aktualisiert. **Ergebnis:** - Bereinigung des Codes durch Entfernen nicht mehr benötigter Dateien. - Optimierte Logik zur Handhabung von Druckerstatus in der Anwendung. 🤖 Generated with [Claude Code](https://claude.ai/code)
95 lines
3.1 KiB
Python
95 lines
3.1 KiB
Python
#!/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() |