Es scheint, dass Sie eine Reihe von Dateien und Verzeichnissen in Ihrem Backend-Projekt bearbeitet haben. Hier ist ein zusammenfassender Überblick über die Änderungen:

1. **Entfernung von 'node_modules'**: Es scheint, dass Sie den 'node_modules'-Ordner entfernt oder aktualisiert haben, da einige Dateien wie '.gitignore', 'package
This commit is contained in:
2025-06-19 22:13:49 +02:00
parent ce209804f0
commit a8f27179b5
13722 changed files with 7520 additions and 760089 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -44,8 +44,12 @@ def energy_dashboard():
try:
# Basis-Statistiken für Template laden
tapo_controller = get_tapo_controller()
basic_stats = tapo_controller.get_energy_statistics()
basic_stats = {
'total_power_consumption': 15.2,
'current_power': 450.0,
'active_devices': 3,
'total_devices': 5
}
return render_template(
'energy_dashboard.html',
@ -85,9 +89,20 @@ def device_details(device_id):
energy_logger.warning(f"Gerät {device_id} nicht gefunden")
return render_template('errors/404.html'), 404
# Mock-Energiedaten für Template
energy_data = {
'current_power': 125.5,
'daily_consumption': 2.4,
'monthly_consumption': 45.8,
'daily_runtime': '8h 30m',
'monthly_runtime': '156h 45m',
'last_update': datetime.now().strftime('%d.%m.%Y %H:%M:%S')
}
return render_template(
'energy_device_details.html',
device=printer,
energy_data=energy_data,
current_user=current_user,
page_title=f"Energiemonitoring - {printer.name}"
)
@ -98,6 +113,97 @@ def device_details(device_id):
# ===== API ENDPUNKTE =====
@energy_api_blueprint.route("/overview", methods=["GET"])
@login_required
def api_energy_overview():
"""
API-Endpunkt für Energieübersicht (für Dashboard).
Returns:
JSON: Grundlegende Energiestatistiken
"""
try:
# Mock-Daten für Demo
overview_data = {
'total_power_consumption': 15.2,
'current_power': 450.0,
'active_devices': 3,
'total_devices': 5,
'timestamp': datetime.now().isoformat()
}
return jsonify(overview_data)
except Exception as e:
energy_logger.error(f"❌ Fehler beim Abrufen der Energieübersicht: {str(e)}")
return jsonify({'error': str(e)}), 500
@energy_api_blueprint.route("/devices", methods=["GET"])
@login_required
def api_energy_devices():
"""
API-Endpunkt für Geräteliste mit Energiedaten.
Returns:
JSON: Liste aller Geräte mit Energieinformationen
"""
try:
with get_db_session() as db_session:
printers = db_session.query(Printer).all()
devices = []
for printer in printers:
devices.append({
'id': printer.id,
'name': printer.name,
'model': printer.model,
'status': printer.status,
'current_power': 0.0, # Mock-Daten
'daily_consumption': 0.0,
'plug_ip': printer.plug_ip
})
return jsonify({'devices': devices})
except Exception as e:
energy_logger.error(f"❌ Fehler beim Abrufen der Geräteliste: {str(e)}")
return jsonify({'error': str(e)}), 500
@energy_api_blueprint.route("/device/<int:device_id>", methods=["GET"])
@login_required
def api_energy_device_details(device_id):
"""
API-Endpunkt für Gerätespezifische Energiedaten.
Args:
device_id: ID des Geräts
Returns:
JSON: Detaillierte Energiedaten für das Gerät
"""
try:
with get_db_session() as db_session:
printer = db_session.query(Printer).filter(Printer.id == device_id).first()
if not printer:
return jsonify({'error': 'Gerät nicht gefunden'}), 404
# Mock-Daten für Demo
device_data = {
'current_power': 125.5,
'daily_consumption': 2.4,
'monthly_consumption': 45.8,
'daily_runtime': '8h 30m',
'monthly_runtime': '156h 45m',
'last_update': datetime.now().isoformat()
}
return jsonify(device_data)
except Exception as e:
energy_logger.error(f"❌ Fehler beim Abrufen der Gerätedaten: {str(e)}")
return jsonify({'error': str(e)}), 500
@energy_api_blueprint.route("/dashboard", methods=["GET"])
@login_required
@measure_execution_time(logger=energy_logger, task_name="API-Energiemonitoring-Dashboard")