📚 Improved backend logs and CSS styling 🎉
This commit is contained in:
parent
170d7c95d2
commit
55d8ee39cc
Binary file not shown.
Binary file not shown.
@ -115,3 +115,4 @@
|
||||
2025-06-02 14:50:27 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||
2025-06-02 14:51:08 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||
2025-06-02 15:18:14 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||
2025-06-02 15:29:06 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||
|
@ -3027,3 +3027,33 @@ WHERE jobs.status = ?) AS anon_1]
|
||||
2025-06-02 15:19:47 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_fix_errors: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-02 15:20:05 - [app] app - [INFO] INFO - Automatische Fehlerbehebung abgeschlossen: 1 behoben, 0 fehlgeschlagen
|
||||
2025-06-02 15:20:26 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
|
||||
2025-06-02 15:29:05 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
|
||||
2025-06-02 15:29:07 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
|
||||
2025-06-02 15:29:07 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
|
||||
2025-06-02 15:29:07 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
|
||||
2025-06-02 15:29:07 - [app] app - [INFO] INFO - ✅ Error-Recovery-Monitoring gestartet
|
||||
2025-06-02 15:29:07 - [app] app - [INFO] INFO - ✅ System-Control-Manager initialisiert
|
||||
2025-06-02 15:29:07 - [app] app - [WARNING] WARNING - ⚠️ Kiosk-Service nicht gefunden - Kiosk-Funktionen eventuell eingeschränkt
|
||||
2025-06-02 15:29:07 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
|
||||
2025-06-02 15:29:07 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
|
||||
2025-06-02 15:29:07 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
|
||||
2025-06-02 15:29:07 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
|
||||
2025-06-02 15:29:07 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
|
||||
2025-06-02 15:29:07 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
|
||||
2025-06-02 15:29:09 - [app] app - [INFO] INFO - Steckdosen-Status geloggt: Drucker 4, Status: disconnected, Quelle: system
|
||||
2025-06-02 15:29:12 - [app] app - [INFO] INFO - Steckdosen-Status geloggt: Drucker 5, Status: disconnected, Quelle: system
|
||||
2025-06-02 15:29:12 - [app] app - [INFO] INFO - ✅ Steckdosen-Initialisierung: 0/2 Drucker erfolgreich
|
||||
2025-06-02 15:29:12 - [app] app - [WARNING] WARNING - ⚠️ 2 Drucker konnten nicht initialisiert werden
|
||||
2025-06-02 15:29:12 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
|
||||
2025-06-02 15:29:12 - [app] app - [INFO] INFO - Job-Scheduler gestartet
|
||||
2025-06-02 15:29:12 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
|
||||
2025-06-02 15:29:12 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
|
||||
2025-06-02 15:29:14 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
|
||||
2025-06-02 15:29:14 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
|
||||
2025-06-02 15:29:14 - [app] app - [ERROR] ERROR - Fehler beim Abrufen der Dashboard-Statistiken: unsupported operand type(s) for /: 'NoneType' and 'int'
|
||||
2025-06-02 15:29:14 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 0, 'pending_jobs': 0, 'success_rate': 0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 0, 'online_printers': 0, 'offline_printers': 0}
|
||||
2025-06-02 15:29:14 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
|
||||
2025-06-02 15:31:02 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
|
||||
2025-06-02 15:31:02 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
|
||||
2025-06-02 15:31:02 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': None, 'failed_jobs': None, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
|
||||
2025-06-02 15:31:02 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': None, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
|
||||
|
@ -119,3 +119,4 @@
|
||||
2025-06-02 14:50:27 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||
2025-06-02 14:51:08 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||
2025-06-02 15:18:14 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||
2025-06-02 15:29:06 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||
|
@ -41,3 +41,6 @@
|
||||
2025-06-01 23:41:21 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||
2025-06-02 14:31:48 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||
2025-06-02 15:19:57 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||
2025-06-02 15:29:46 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||
2025-06-02 15:29:51 - [calendar] calendar - [INFO] INFO - 📊 Verfügbarkeitsabfrage: 2/2 Drucker verfügbar
|
||||
2025-06-02 15:29:52 - [calendar] calendar - [INFO] INFO - 📊 Verfügbarkeitsabfrage: 2/2 Drucker verfügbar
|
||||
|
@ -462,3 +462,7 @@
|
||||
2025-06-02 15:18:16 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||
2025-06-02 15:18:16 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||
2025-06-02 15:20:26 - [dashboard] dashboard - [ERROR] ERROR - Fehler beim Laden der Widget-Daten für system_alerts:
|
||||
2025-06-02 15:29:07 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||
2025-06-02 15:29:07 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||
2025-06-02 15:29:07 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||
2025-06-02 15:29:07 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||
|
@ -115,3 +115,4 @@
|
||||
2025-06-02 14:50:27 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||
2025-06-02 14:51:08 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||
2025-06-02 15:18:14 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||
2025-06-02 15:29:06 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||
|
@ -16,3 +16,6 @@
|
||||
2025-06-02 15:18:16 - [database_cleanup] database_cleanup - [INFO] INFO - 🧹 Starte umfassendes Datenbank-Cleanup...
|
||||
2025-06-02 15:18:16 - [database_cleanup] database_cleanup - [INFO] INFO - 📝 Schritt 1: Schließe alle Datenbankverbindungen...
|
||||
2025-06-02 15:18:16 - [database_cleanup] database_cleanup - [INFO] INFO - 🔄 Schließe alle aktiven Datenbankverbindungen...
|
||||
2025-06-02 15:29:07 - [database_cleanup] database_cleanup - [INFO] INFO - 🧹 Starte umfassendes Datenbank-Cleanup...
|
||||
2025-06-02 15:29:07 - [database_cleanup] database_cleanup - [INFO] INFO - 📝 Schritt 1: Schließe alle Datenbankverbindungen...
|
||||
2025-06-02 15:29:07 - [database_cleanup] database_cleanup - [INFO] INFO - 🔄 Schließe alle aktiven Datenbankverbindungen...
|
||||
|
@ -112,3 +112,4 @@
|
||||
2025-06-02 14:50:28 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||
2025-06-02 14:51:09 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||
2025-06-02 15:18:15 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||
2025-06-02 15:29:07 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||
|
@ -2,3 +2,7 @@
|
||||
2025-06-02 15:18:16 - [error_recovery] error_recovery - [INFO] INFO - 🔍 Error-Monitoring gestartet
|
||||
2025-06-02 15:18:16 - [error_recovery] error_recovery - [WARNING] WARNING - 🚨 Fehler erkannt: database_lock - 2025-06-01 00:29:13 - myp.app - ERROR - ❌ Fehler beim Datenbank-Cleanup: (sqlite3.OperationalError) database is locked
|
||||
2025-06-02 15:18:16 - [error_recovery] error_recovery - [INFO] INFO - 🔧 Führe Recovery-Aktion aus: reset_database
|
||||
2025-06-02 15:29:07 - [error_recovery] error_recovery - [INFO] INFO - 🛡️ Error-Recovery-Manager initialisiert
|
||||
2025-06-02 15:29:07 - [error_recovery] error_recovery - [INFO] INFO - 🔍 Error-Monitoring gestartet
|
||||
2025-06-02 15:29:07 - [error_recovery] error_recovery - [WARNING] WARNING - 🚨 Fehler erkannt: database_lock - 2025-06-01 00:29:13 - myp.app - ERROR - ❌ Fehler beim Datenbank-Cleanup: (sqlite3.OperationalError) database is locked
|
||||
2025-06-02 15:29:07 - [error_recovery] error_recovery - [INFO] INFO - 🔧 Führe Recovery-Aktion aus: reset_database
|
||||
|
@ -230,3 +230,5 @@
|
||||
2025-06-02 14:51:09 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||
2025-06-02 15:18:15 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||
2025-06-02 15:18:16 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||
2025-06-02 15:29:07 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||
2025-06-02 15:29:07 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||
|
@ -228,3 +228,5 @@
|
||||
2025-06-02 14:51:09 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||
2025-06-02 15:18:16 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||
2025-06-02 15:18:16 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||
2025-06-02 15:29:07 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||
2025-06-02 15:29:07 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||
|
@ -114,3 +114,4 @@
|
||||
2025-06-02 14:50:28 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||
2025-06-02 14:51:09 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||
2025-06-02 15:18:16 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||
2025-06-02 15:29:07 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||
|
@ -3254,3 +3254,23 @@
|
||||
2025-06-02 15:18:40 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Status-Update abgeschlossen für 2 Drucker
|
||||
2025-06-02 15:18:46 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
|
||||
2025-06-02 15:18:52 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
|
||||
2025-06-02 15:29:05 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
|
||||
2025-06-02 15:29:05 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
|
||||
2025-06-02 15:29:07 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
|
||||
2025-06-02 15:29:08 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
|
||||
2025-06-02 15:29:08 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
|
||||
2025-06-02 15:29:08 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
|
||||
2025-06-02 15:29:09 - [printer_monitor] printer_monitor - [WARNING] WARNING - ❌ Tapo P110 (192.168.0.103): Steckdose konnte nicht ausgeschaltet werden
|
||||
2025-06-02 15:29:12 - [printer_monitor] printer_monitor - [WARNING] WARNING - ❌ Tapo P110 (192.168.0.104): Steckdose konnte nicht ausgeschaltet werden
|
||||
2025-06-02 15:29:12 - [printer_monitor] printer_monitor - [INFO] INFO - 🎯 Steckdosen-Initialisierung abgeschlossen: 0/2 erfolgreich
|
||||
2025-06-02 15:29:14 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
|
||||
2025-06-02 15:29:14 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-02 15:29:14 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Prüfe Status von 2 aktiven Druckern...
|
||||
2025-06-02 15:29:20 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
|
||||
2025-06-02 15:29:23 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.103): UNREACHABLE (Ping fehlgeschlagen)
|
||||
2025-06-02 15:29:23 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.104): UNREACHABLE (Ping fehlgeschlagen)
|
||||
2025-06-02 15:29:23 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Status-Update abgeschlossen für 2 Drucker
|
||||
2025-06-02 15:29:26 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
|
||||
2025-06-02 15:29:32 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
|
||||
2025-06-02 15:29:38 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
|
||||
2025-06-02 15:29:44 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
|
||||
|
@ -6690,3 +6690,24 @@
|
||||
2025-06-02 15:20:18 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-02 15:20:18 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
|
||||
2025-06-02 15:20:18 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 2.77ms
|
||||
2025-06-02 15:29:14 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-02 15:29:23 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
|
||||
2025-06-02 15:29:23 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9017.22ms
|
||||
2025-06-02 15:29:26 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-02 15:29:26 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
|
||||
2025-06-02 15:29:26 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.60ms
|
||||
2025-06-02 15:29:30 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-02 15:29:30 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
|
||||
2025-06-02 15:29:30 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.49ms
|
||||
2025-06-02 15:29:40 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-02 15:29:40 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
|
||||
2025-06-02 15:29:40 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.68ms
|
||||
2025-06-02 15:30:02 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-02 15:30:02 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
|
||||
2025-06-02 15:30:02 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 2.35ms
|
||||
2025-06-02 15:30:32 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-02 15:30:32 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
|
||||
2025-06-02 15:30:32 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.32ms
|
||||
2025-06-02 15:31:02 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-02 15:31:02 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
|
||||
2025-06-02 15:31:02 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.42ms
|
||||
|
@ -28298,3 +28298,163 @@
|
||||
2025-06-02 15:20:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000263D8913AC0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:20:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten
|
||||
2025-06-02 15:20:25 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee
|
||||
2025-06-02 15:29:05 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||
2025-06-02 15:29:12 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||
2025-06-02 15:29:12 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||
2025-06-02 15:29:12 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
|
||||
2025-06-02 15:29:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB729450>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
|
||||
2025-06-02 15:29:14 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
|
||||
2025-06-02 15:29:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB7443E0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
|
||||
2025-06-02 15:29:16 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
|
||||
2025-06-02 15:29:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FBD9F5C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
|
||||
2025-06-02 15:29:18 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
|
||||
2025-06-02 15:29:20 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FBE30050>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:20 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
|
||||
2025-06-02 15:29:20 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
|
||||
2025-06-02 15:29:22 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82DAE0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:22 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten
|
||||
2025-06-02 15:29:22 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test
|
||||
2025-06-02 15:29:24 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82E470>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:24 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten
|
||||
2025-06-02 15:29:24 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test
|
||||
2025-06-02 15:29:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69FF00>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten
|
||||
2025-06-02 15:29:26 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test
|
||||
2025-06-02 15:29:28 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69E580>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:28 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten
|
||||
2025-06-02 15:29:28 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi
|
||||
2025-06-02 15:29:30 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69E690>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:30 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten
|
||||
2025-06-02 15:29:30 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi
|
||||
2025-06-02 15:29:32 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69FF00>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:32 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten
|
||||
2025-06-02 15:29:32 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee
|
||||
2025-06-02 15:29:35 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69EAD0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:35 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten
|
||||
2025-06-02 15:29:35 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee
|
||||
2025-06-02 15:29:37 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69D480>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:37 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten
|
||||
2025-06-02 15:29:37 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2
|
||||
2025-06-02 15:29:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69E470>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten
|
||||
2025-06-02 15:29:39 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2
|
||||
2025-06-02 15:29:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69FBD0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten
|
||||
2025-06-02 15:29:41 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test
|
||||
2025-06-02 15:29:43 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69E690>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:43 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten
|
||||
2025-06-02 15:29:43 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test
|
||||
2025-06-02 15:29:45 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69E9C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:45 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten
|
||||
2025-06-02 15:29:46 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
|
||||
2025-06-02 15:29:48 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69FBD0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:48 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
|
||||
2025-06-02 15:29:48 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
|
||||
2025-06-02 15:29:50 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69EBE0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:50 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
|
||||
2025-06-02 15:29:50 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
|
||||
2025-06-02 15:29:52 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69D8C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:52 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
|
||||
2025-06-02 15:29:52 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
|
||||
2025-06-02 15:29:54 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69F020>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:54 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
|
||||
2025-06-02 15:29:54 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
|
||||
2025-06-02 15:29:56 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82DE10>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:56 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten
|
||||
2025-06-02 15:29:56 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test
|
||||
2025-06-02 15:29:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82E470>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:29:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten
|
||||
2025-06-02 15:29:59 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test
|
||||
2025-06-02 15:30:01 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82D590>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:01 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten
|
||||
2025-06-02 15:30:01 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test
|
||||
2025-06-02 15:30:03 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82D6A0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:03 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten
|
||||
2025-06-02 15:30:03 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi
|
||||
2025-06-02 15:30:05 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69D8C0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:05 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten
|
||||
2025-06-02 15:30:05 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi
|
||||
2025-06-02 15:30:07 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82D260>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:07 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten
|
||||
2025-06-02 15:30:07 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee
|
||||
2025-06-02 15:30:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69F020>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten
|
||||
2025-06-02 15:30:09 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee
|
||||
2025-06-02 15:30:11 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82E030>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:11 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten
|
||||
2025-06-02 15:30:11 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2
|
||||
2025-06-02 15:30:13 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82D590>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:13 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten
|
||||
2025-06-02 15:30:13 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2
|
||||
2025-06-02 15:30:15 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82DE10>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:15 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten
|
||||
2025-06-02 15:30:15 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test
|
||||
2025-06-02 15:30:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82D8C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten
|
||||
2025-06-02 15:30:18 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test
|
||||
2025-06-02 15:30:20 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82DBF0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:20 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten
|
||||
2025-06-02 15:30:21 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
|
||||
2025-06-02 15:30:23 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69F020>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:23 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
|
||||
2025-06-02 15:30:23 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
|
||||
2025-06-02 15:30:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69DD00>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
|
||||
2025-06-02 15:30:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
|
||||
2025-06-02 15:30:27 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82E250>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:27 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
|
||||
2025-06-02 15:30:27 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
|
||||
2025-06-02 15:30:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82DF20>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
|
||||
2025-06-02 15:30:29 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
|
||||
2025-06-02 15:30:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82D6A0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten
|
||||
2025-06-02 15:30:31 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test
|
||||
2025-06-02 15:30:33 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82E470>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:33 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten
|
||||
2025-06-02 15:30:33 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test
|
||||
2025-06-02 15:30:35 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69E140>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:35 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten
|
||||
2025-06-02 15:30:35 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test
|
||||
2025-06-02 15:30:38 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82D6A0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:38 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten
|
||||
2025-06-02 15:30:38 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi
|
||||
2025-06-02 15:30:40 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82D7B0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:40 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten
|
||||
2025-06-02 15:30:40 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi
|
||||
2025-06-02 15:30:42 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82E250>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:42 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten
|
||||
2025-06-02 15:30:42 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee
|
||||
2025-06-02 15:30:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82DAE0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten
|
||||
2025-06-02 15:30:44 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee
|
||||
2025-06-02 15:30:46 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82DD00>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:46 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten
|
||||
2025-06-02 15:30:46 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2
|
||||
2025-06-02 15:30:48 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82D150>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:48 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten
|
||||
2025-06-02 15:30:48 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2
|
||||
2025-06-02 15:30:50 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82CF30>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:50 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten
|
||||
2025-06-02 15:30:50 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test
|
||||
2025-06-02 15:30:52 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69DD00>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:52 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten
|
||||
2025-06-02 15:30:52 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test
|
||||
2025-06-02 15:30:54 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB69F020>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:54 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten
|
||||
2025-06-02 15:30:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
|
||||
2025-06-02 15:30:57 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82CD10>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:30:57 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
|
||||
2025-06-02 15:30:57 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
|
||||
2025-06-02 15:31:00 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82D370>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:31:00 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
|
||||
2025-06-02 15:31:00 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
|
||||
2025-06-02 15:31:02 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82E030>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:31:02 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
|
||||
2025-06-02 15:31:02 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
|
||||
2025-06-02 15:31:04 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000242FB82DBF0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
|
||||
2025-06-02 15:31:04 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
|
||||
2025-06-02 15:31:04 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
|
||||
|
@ -114,3 +114,4 @@
|
||||
2025-06-02 14:50:28 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||
2025-06-02 14:51:09 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||
2025-06-02 15:18:16 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||
2025-06-02 15:29:07 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||
|
@ -200,3 +200,4 @@
|
||||
2025-06-02 14:50:28 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||
2025-06-02 14:51:09 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||
2025-06-02 15:18:16 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||
2025-06-02 15:29:07 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||
|
@ -1034,3 +1034,12 @@
|
||||
2025-06-02 15:18:16 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||
2025-06-02 15:18:16 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||
2025-06-02 15:18:16 - [startup] startup - [INFO] INFO - ==================================================
|
||||
2025-06-02 15:29:07 - [startup] startup - [INFO] INFO - ==================================================
|
||||
2025-06-02 15:29:07 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
|
||||
2025-06-02 15:29:07 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
|
||||
2025-06-02 15:29:07 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
|
||||
2025-06-02 15:29:07 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
|
||||
2025-06-02 15:29:07 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-02T15:29:07.268087
|
||||
2025-06-02 15:29:07 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||
2025-06-02 15:29:07 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||
2025-06-02 15:29:07 - [startup] startup - [INFO] INFO - ==================================================
|
||||
|
@ -1 +1,2 @@
|
||||
2025-06-02 15:18:16 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert
|
||||
2025-06-02 15:29:07 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert
|
||||
|
@ -12,3 +12,4 @@
|
||||
2025-06-01 15:33:40 - [user] user - [INFO] INFO - Benutzer admin hat seine Einstellungsseite aufgerufen
|
||||
2025-06-01 23:43:04 - [user] user - [INFO] INFO - Benutzer admin hat seine Einstellungsseite aufgerufen
|
||||
2025-06-01 23:43:55 - [user] user - [INFO] INFO - Benutzer admin hat seine Einstellungsseite aufgerufen
|
||||
2025-06-02 15:29:32 - [user] user - [INFO] INFO - Benutzer admin hat seine Einstellungsseite aufgerufen
|
||||
|
@ -491,3 +491,7 @@
|
||||
2025-06-02 15:18:14 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||
2025-06-02 15:18:14 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||
2025-06-02 15:18:14 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||
2025-06-02 15:29:05 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
|
||||
2025-06-02 15:29:05 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||
2025-06-02 15:29:05 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||
2025-06-02 15:29:05 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||
|
@ -1,661 +0,0 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
/**
|
||||
* MYP Platform - Raspberry Pi Optimierte Styles
|
||||
* Alle performance-kritischen Glassmorphism-Effekte, backdrop-filter und komplexe Animationen entfernt
|
||||
* Design bleibt unverändert, aber Performance ist deutlich besser
|
||||
*/
|
||||
|
||||
@layer base {
|
||||
:root {
|
||||
/* Light Mode Farben - Mercedes-Benz Professional - UNVERÄNDERT */
|
||||
--color-bg-primary: #ffffff;
|
||||
--color-bg-secondary: #fafbfc;
|
||||
--color-bg-tertiary: #f3f5f7;
|
||||
--color-bg-accent: #fbfcfd;
|
||||
--color-text-primary: #111827;
|
||||
--color-text-secondary: #374151;
|
||||
--color-text-muted: #6b7280;
|
||||
--color-text-accent: #0073ce;
|
||||
--color-border-primary: #e5e7eb;
|
||||
--color-border-secondary: #d1d5db;
|
||||
--color-accent: #0073ce;
|
||||
--color-accent-hover: #005a9f;
|
||||
--color-accent-light: #eff6ff;
|
||||
--color-accent-text: #ffffff;
|
||||
--color-shadow: rgba(0, 0, 0, 0.04);
|
||||
--color-shadow-strong: rgba(0, 0, 0, 0.08);
|
||||
--color-shadow-accent: rgba(0, 115, 206, 0.08);
|
||||
--card-radius: 1rem;
|
||||
|
||||
/* Vereinfachte Gradients - Raspberry Pi optimiert */
|
||||
--gradient-primary: linear-gradient(135deg, #ffffff 0%, #fafbfc 100%);
|
||||
--gradient-card: var(--color-bg-primary);
|
||||
--gradient-hero: var(--color-bg-secondary);
|
||||
--gradient-accent: var(--color-accent);
|
||||
--gradient-surface: var(--color-bg-primary);
|
||||
}
|
||||
|
||||
.dark {
|
||||
/* Dark Mode Farben - UNVERÄNDERT */
|
||||
--color-bg-primary: #000000;
|
||||
--color-bg-secondary: #0a0a0a;
|
||||
--color-bg-tertiary: #1a1a1a;
|
||||
--color-text-primary: #ffffff;
|
||||
--color-text-secondary: #e2e8f0;
|
||||
--color-text-muted: #94a3b8;
|
||||
--color-border-primary: #1a1a1a;
|
||||
--color-border-secondary: #2a2a2a;
|
||||
--color-accent: #ffffff;
|
||||
--color-accent-hover: #f0f0f0;
|
||||
--color-accent-light: #1e3a8a;
|
||||
--color-accent-text: #000000;
|
||||
--color-shadow: rgba(0, 0, 0, 0.6);
|
||||
--color-shadow-strong: rgba(0, 0, 0, 0.8);
|
||||
--mb-black: #000000;
|
||||
}
|
||||
|
||||
body {
|
||||
@apply bg-white dark:bg-black text-slate-900 dark:text-white;
|
||||
background: var(--gradient-primary);
|
||||
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
line-height: 1.65;
|
||||
font-size: 15px;
|
||||
transition: background-color 0.2s ease, color 0.2s ease;
|
||||
/* Entfernt: transition-colors duration-300 für bessere Performance */
|
||||
}
|
||||
|
||||
.dark body {
|
||||
background: linear-gradient(135deg, #000000 0%, #0a0a0a 100%);
|
||||
}
|
||||
|
||||
/* Body Background - STARK VEREINFACHT */
|
||||
body::before {
|
||||
content: '';
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: radial-gradient(circle at 50% 50%, rgba(0, 115, 206, 0.01) 0%, transparent 70%);
|
||||
pointer-events: none;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.dark body::before {
|
||||
background: radial-gradient(circle at 50% 50%, rgba(59, 130, 246, 0.02) 0%, transparent 70%);
|
||||
}
|
||||
|
||||
/* Navbar - RASPBERRY PI OPTIMIERT */
|
||||
nav {
|
||||
background: rgba(255, 255, 255, 0.98);
|
||||
border-bottom: 1px solid var(--color-border-primary);
|
||||
transition: background-color 0.2s ease;
|
||||
/* ENTFERNT: backdrop-filter, komplexe box-shadows, cubic-bezier */
|
||||
}
|
||||
|
||||
.dark nav {
|
||||
background: rgba(0, 0, 0, 0.95);
|
||||
border-bottom-color: var(--color-border-primary);
|
||||
}
|
||||
|
||||
/* Card Styles - RASPBERRY PI OPTIMIERT */
|
||||
.card-enhanced {
|
||||
background: var(--color-bg-primary);
|
||||
border: 1px solid var(--color-border-primary);
|
||||
border-radius: var(--card-radius);
|
||||
transition: background-color 0.2s ease, border-color 0.2s ease;
|
||||
/* ENTFERNT: backdrop-filter, box-shadow, transform, pseudo-elements */
|
||||
}
|
||||
|
||||
.card-enhanced:hover {
|
||||
background: var(--color-bg-secondary);
|
||||
border-color: var(--color-border-secondary);
|
||||
/* ENTFERNT: transform, box-shadow für bessere Performance */
|
||||
}
|
||||
|
||||
.dark .card-enhanced {
|
||||
background: var(--color-bg-secondary);
|
||||
border-color: var(--color-border-primary);
|
||||
}
|
||||
|
||||
/* Button Styles - RASPBERRY PI OPTIMIERT */
|
||||
.btn-enhanced {
|
||||
background: var(--color-accent);
|
||||
color: var(--color-accent-text);
|
||||
border: none;
|
||||
border-radius: 0.5rem;
|
||||
padding: 0.75rem 1.75rem;
|
||||
font-weight: 600;
|
||||
font-size: 0.875rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
transition: background-color 0.2s ease;
|
||||
/* ENTFERNT: gradient, box-shadow, pseudo-elements, transform */
|
||||
}
|
||||
|
||||
.btn-enhanced:hover {
|
||||
background: var(--color-accent-hover);
|
||||
/* ENTFERNT: transform, box-shadow für bessere Performance */
|
||||
}
|
||||
|
||||
.btn-enhanced:active {
|
||||
background: var(--color-accent-hover);
|
||||
/* ENTFERNT: transform für bessere Performance */
|
||||
}
|
||||
|
||||
.btn-secondary {
|
||||
background: var(--color-bg-primary);
|
||||
color: var(--color-text-primary);
|
||||
border: 1px solid var(--color-border-primary);
|
||||
}
|
||||
|
||||
.btn-secondary:hover {
|
||||
background: var(--color-bg-secondary);
|
||||
border-color: var(--color-accent);
|
||||
color: var(--color-accent);
|
||||
}
|
||||
|
||||
/* Form Elements - RASPBERRY PI OPTIMIERT */
|
||||
.input-enhanced {
|
||||
background: rgba(255, 255, 255, 0.98);
|
||||
border: 1px solid var(--color-border-primary);
|
||||
border-radius: 0.5rem;
|
||||
padding: 0.75rem 1rem;
|
||||
color: var(--color-text-primary);
|
||||
font-size: 0.9rem;
|
||||
transition: border-color 0.2s ease, background-color 0.2s ease;
|
||||
/* ENTFERNT: backdrop-filter, box-shadow für bessere Performance */
|
||||
}
|
||||
|
||||
.input-enhanced:focus {
|
||||
outline: none;
|
||||
border-color: var(--color-accent);
|
||||
background: rgba(255, 255, 255, 1);
|
||||
/* ENTFERNT: box-shadow für bessere Performance */
|
||||
}
|
||||
|
||||
.input-enhanced::placeholder {
|
||||
color: var(--color-text-muted);
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.dark .input-enhanced {
|
||||
background: rgba(26, 26, 26, 0.9);
|
||||
border-color: var(--color-border-primary);
|
||||
color: var(--color-text-primary);
|
||||
}
|
||||
|
||||
.dark .input-enhanced:focus {
|
||||
border-color: #60a5fa;
|
||||
background: rgba(26, 26, 26, 1);
|
||||
}
|
||||
|
||||
/* Alert Styles - RASPBERRY PI OPTIMIERT */
|
||||
.alert-enhanced {
|
||||
border-radius: 1rem;
|
||||
padding: 1.25rem;
|
||||
border: 1px solid transparent;
|
||||
position: relative;
|
||||
/* ENTFERNT: backdrop-filter für bessere Performance */
|
||||
}
|
||||
|
||||
.alert-enhanced::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 4px;
|
||||
}
|
||||
|
||||
.alert-info-enhanced {
|
||||
background: rgba(239, 246, 255, 0.95);
|
||||
border-color: rgba(59, 130, 246, 0.2);
|
||||
color: #1e40af;
|
||||
}
|
||||
|
||||
.alert-info-enhanced::before {
|
||||
background: var(--color-accent);
|
||||
}
|
||||
|
||||
.alert-success-enhanced {
|
||||
background: rgba(236, 253, 245, 0.95);
|
||||
border-color: rgba(16, 185, 129, 0.2);
|
||||
color: #065f46;
|
||||
}
|
||||
|
||||
.alert-success-enhanced::before {
|
||||
background: #10b981;
|
||||
}
|
||||
|
||||
.alert-warning-enhanced {
|
||||
background: rgba(255, 251, 235, 0.95);
|
||||
border-color: rgba(251, 191, 36, 0.2);
|
||||
color: #92400e;
|
||||
}
|
||||
|
||||
.alert-warning-enhanced::before {
|
||||
background: #fbbf24;
|
||||
}
|
||||
|
||||
.alert-error-enhanced {
|
||||
background: rgba(254, 242, 242, 0.95);
|
||||
border-color: rgba(239, 68, 68, 0.2);
|
||||
color: #991b1b;
|
||||
}
|
||||
|
||||
.alert-error-enhanced::before {
|
||||
background: #ef4444;
|
||||
}
|
||||
|
||||
/* Flash Messages - RASPBERRY PI OPTIMIERT */
|
||||
.flash-message-light {
|
||||
background: rgba(255, 255, 255, 0.98);
|
||||
border: 1px solid rgba(226, 232, 240, 0.6);
|
||||
color: var(--color-text-primary);
|
||||
/* ENTFERNT: backdrop-filter, komplexe box-shadows */
|
||||
}
|
||||
|
||||
.flash-message-light.success {
|
||||
border-left: 4px solid #10b981;
|
||||
background: rgba(236, 253, 245, 0.95);
|
||||
}
|
||||
|
||||
.flash-message-light.error {
|
||||
border-left: 4px solid #ef4444;
|
||||
background: rgba(254, 242, 242, 0.95);
|
||||
}
|
||||
|
||||
.flash-message-light.warning {
|
||||
border-left: 4px solid #fbbf24;
|
||||
background: rgba(255, 251, 235, 0.95);
|
||||
}
|
||||
|
||||
.flash-message-light.info {
|
||||
border-left: 4px solid #3b82f6;
|
||||
background: rgba(239, 246, 255, 0.95);
|
||||
}
|
||||
|
||||
/* Table Styles - RASPBERRY PI OPTIMIERT */
|
||||
.table-enhanced {
|
||||
background: var(--color-bg-primary);
|
||||
border: 1px solid var(--color-border-primary);
|
||||
border-radius: var(--card-radius);
|
||||
overflow: hidden;
|
||||
/* ENTFERNT: box-shadow für bessere Performance */
|
||||
}
|
||||
|
||||
.table-enhanced th {
|
||||
background: var(--color-bg-secondary);
|
||||
color: var(--color-text-primary);
|
||||
font-weight: 600;
|
||||
padding: 1rem 1.5rem;
|
||||
border-bottom: 1px solid var(--color-border-primary);
|
||||
}
|
||||
|
||||
.table-enhanced td {
|
||||
padding: 1rem 1.5rem;
|
||||
border-bottom: 1px solid var(--color-border-primary);
|
||||
color: var(--color-text-secondary);
|
||||
transition: background-color 0.2s ease;
|
||||
}
|
||||
|
||||
.table-enhanced tbody tr:hover {
|
||||
background: var(--color-bg-secondary);
|
||||
/* ENTFERNT: transform für bessere Performance */
|
||||
}
|
||||
|
||||
.dark .table-enhanced {
|
||||
background: var(--color-bg-secondary);
|
||||
border-color: var(--color-border-primary);
|
||||
}
|
||||
|
||||
.dark .table-enhanced th {
|
||||
background: var(--color-bg-tertiary);
|
||||
color: var(--color-text-primary);
|
||||
}
|
||||
|
||||
.dark .table-enhanced tbody tr:hover {
|
||||
background: var(--color-bg-tertiary);
|
||||
}
|
||||
|
||||
/* Modal Styles - RASPBERRY PI OPTIMIERT */
|
||||
.modal-enhanced {
|
||||
background: rgba(255, 255, 255, 0.98);
|
||||
border: 1px solid rgba(226, 232, 240, 0.7);
|
||||
border-radius: 1.5rem;
|
||||
position: relative;
|
||||
/* ENTFERNT: backdrop-filter, komplexe box-shadows */
|
||||
}
|
||||
|
||||
.dark .modal-enhanced {
|
||||
background: rgba(10, 10, 10, 0.98);
|
||||
border-color: rgba(42, 42, 42, 0.7);
|
||||
}
|
||||
|
||||
/* Status Badges - RASPBERRY PI OPTIMIERT */
|
||||
.status-badge-enhanced {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 0.5rem 1rem;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 700;
|
||||
border-radius: 9999px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
border: 1px solid transparent;
|
||||
transition: background-color 0.2s ease;
|
||||
}
|
||||
|
||||
.status-online-enhanced {
|
||||
background: #ecfdf5;
|
||||
color: #065f46;
|
||||
border-color: rgba(16, 185, 129, 0.2);
|
||||
}
|
||||
|
||||
.status-offline-enhanced {
|
||||
background: #fef2f2;
|
||||
color: #991b1b;
|
||||
border-color: rgba(239, 68, 68, 0.2);
|
||||
}
|
||||
|
||||
.status-printing-enhanced {
|
||||
background: #eff6ff;
|
||||
color: #1d4ed8;
|
||||
border-color: rgba(59, 130, 246, 0.2);
|
||||
}
|
||||
|
||||
/* Dark Mode Toggle - RASPBERRY PI OPTIMIERT */
|
||||
.dark-mode-toggle-new {
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
border: 1px solid var(--color-border-primary);
|
||||
border-radius: 0.75rem;
|
||||
padding: 0.5rem;
|
||||
transition: background-color 0.2s ease, border-color 0.2s ease;
|
||||
/* ENTFERNT: box-shadow, transform für bessere Performance */
|
||||
}
|
||||
|
||||
.dark-mode-toggle-new:hover {
|
||||
background: rgba(255, 255, 255, 1);
|
||||
border-color: var(--color-border-secondary);
|
||||
/* ENTFERNT: transform für bessere Performance */
|
||||
}
|
||||
|
||||
.dark .dark-mode-toggle-new {
|
||||
background: rgba(26, 26, 26, 0.95);
|
||||
border-color: var(--color-border-primary);
|
||||
}
|
||||
|
||||
.dark .dark-mode-toggle-new:hover {
|
||||
background: rgba(26, 26, 26, 1);
|
||||
}
|
||||
|
||||
/* Icon Animations - STARK VEREINFACHT */
|
||||
.dark-mode-toggle-new .sun-icon,
|
||||
.dark-mode-toggle-new .moon-icon {
|
||||
transition: opacity 0.2s ease;
|
||||
/* ENTFERNT: komplexe transform animations */
|
||||
}
|
||||
|
||||
.dark .sun-icon { display: none; }
|
||||
.dark .moon-icon { display: block; }
|
||||
.sun-icon { display: block; }
|
||||
.moon-icon { display: none; }
|
||||
|
||||
/* User Menu Button - RASPBERRY PI OPTIMIERT */
|
||||
.user-menu-button-new {
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
border: 1px solid var(--color-border-primary);
|
||||
border-radius: 0.75rem;
|
||||
padding: 0.5rem;
|
||||
transition: background-color 0.2s ease;
|
||||
/* ENTFERNT: box-shadow, transform für bessere Performance */
|
||||
}
|
||||
|
||||
.user-menu-button-new:hover {
|
||||
background: rgba(255, 255, 255, 1);
|
||||
/* ENTFERNT: transform für bessere Performance */
|
||||
}
|
||||
|
||||
.dark .user-menu-button-new {
|
||||
background: rgba(26, 26, 26, 0.95);
|
||||
border-color: var(--color-border-primary);
|
||||
}
|
||||
|
||||
.dark .user-menu-button-new:hover {
|
||||
background: rgba(26, 26, 26, 1);
|
||||
}
|
||||
|
||||
/* Hover Effects - STARK VEREINFACHT */
|
||||
.hover-lift-enhanced {
|
||||
transition: background-color 0.2s ease;
|
||||
/* ENTFERNT: cubic-bezier transition für bessere Performance */
|
||||
}
|
||||
|
||||
.hover-lift-enhanced:hover {
|
||||
background-color: var(--color-bg-secondary);
|
||||
/* ENTFERNT: transform, box-shadow für bessere Performance */
|
||||
}
|
||||
|
||||
.dark .hover-lift-enhanced:hover {
|
||||
background-color: var(--color-bg-tertiary);
|
||||
}
|
||||
|
||||
/* Scrollbar Styles - UNVERÄNDERT */
|
||||
::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: var(--color-bg-secondary);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: var(--color-border-secondary);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--color-text-muted);
|
||||
}
|
||||
|
||||
.dark ::-webkit-scrollbar-track {
|
||||
background: var(--color-bg-tertiary);
|
||||
}
|
||||
|
||||
.dark ::-webkit-scrollbar-thumb {
|
||||
background: var(--color-border-secondary);
|
||||
}
|
||||
|
||||
.dark ::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--color-text-muted);
|
||||
}
|
||||
|
||||
/* Loading Animation - VEREINFACHT */
|
||||
.loading-enhanced {
|
||||
background: var(--color-bg-secondary);
|
||||
border-radius: 0.5rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.loading-enhanced::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
|
||||
animation: loading-shimmer 1.5s infinite;
|
||||
}
|
||||
|
||||
@keyframes loading-shimmer {
|
||||
0% { left: -100%; }
|
||||
100% { left: 100%; }
|
||||
}
|
||||
|
||||
/* Focus Styles - VEREINFACHT */
|
||||
.focus-enhanced:focus {
|
||||
outline: 2px solid var(--color-accent);
|
||||
outline-offset: 2px;
|
||||
/* ENTFERNT: box-shadow für bessere Performance */
|
||||
}
|
||||
|
||||
.dark .focus-enhanced:focus {
|
||||
outline-color: #60a5fa;
|
||||
}
|
||||
|
||||
/* Responsive Anpassungen */
|
||||
@media (max-width: 768px) {
|
||||
.card-enhanced {
|
||||
border-radius: 0.75rem;
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
.btn-enhanced {
|
||||
padding: 0.625rem 1.25rem;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.modal-enhanced {
|
||||
border-radius: 1rem;
|
||||
margin: 1rem;
|
||||
}
|
||||
|
||||
.dark-mode-toggle-new {
|
||||
padding: 0.4rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* Reduced Motion Support - ERWEITERT */
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
* {
|
||||
animation-duration: 0.01ms !important;
|
||||
animation-iteration-count: 1 !important;
|
||||
transition-duration: 0.01ms !important;
|
||||
transform: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* High Contrast Support */
|
||||
@media (prefers-contrast: high) {
|
||||
:root {
|
||||
--color-border-primary: #000000;
|
||||
--color-border-secondary: #000000;
|
||||
--color-shadow: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--color-border-primary: #ffffff;
|
||||
--color-border-secondary: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
/* Weitere optimierte Komponenten folgen... */
|
||||
|
||||
/* Notification Styles - RASPBERRY PI OPTIMIERT */
|
||||
.notification {
|
||||
background: rgba(255, 255, 255, 0.98);
|
||||
border: 1px solid var(--color-border-primary);
|
||||
border-radius: 0.75rem;
|
||||
padding: 1rem;
|
||||
/* ENTFERNT: backdrop-filter, komplexe box-shadows */
|
||||
}
|
||||
|
||||
.dark .notification {
|
||||
background: rgba(26, 26, 26, 0.95);
|
||||
border-color: var(--color-border-primary);
|
||||
}
|
||||
|
||||
.notification:hover {
|
||||
background: rgba(255, 255, 255, 1);
|
||||
/* ENTFERNT: transform, box-shadow für bessere Performance */
|
||||
}
|
||||
|
||||
.dark .notification:hover {
|
||||
background: rgba(26, 26, 26, 1);
|
||||
}
|
||||
|
||||
/* Status Dot - VEREINFACHT */
|
||||
.status-dot {
|
||||
width: 0.75rem;
|
||||
height: 0.75rem;
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.status-dot.online {
|
||||
background: #10b981;
|
||||
}
|
||||
|
||||
.status-dot.offline {
|
||||
background: #ef4444;
|
||||
}
|
||||
|
||||
/* ENTFERNT: Alle pulse-Animationen für bessere Performance */
|
||||
|
||||
/* Weitere Komponenten werden nach gleichem Muster optimiert... */
|
||||
}
|
||||
|
||||
/* Flash Messages - RASPBERRY PI OPTIMIERT */
|
||||
.flash-message {
|
||||
background: rgba(255, 255, 255, 0.98);
|
||||
border: 1px solid var(--color-border-primary);
|
||||
border-radius: 0.75rem;
|
||||
padding: 1rem 1.25rem;
|
||||
margin-bottom: 1rem;
|
||||
/* ENTFERNT: backdrop-filter, box-shadow */
|
||||
}
|
||||
|
||||
.dark .flash-message {
|
||||
background: rgba(26, 26, 26, 0.95);
|
||||
border-color: var(--color-border-primary);
|
||||
}
|
||||
|
||||
.flash-message:hover {
|
||||
background: rgba(255, 255, 255, 1);
|
||||
/* ENTFERNT: transform für bessere Performance */
|
||||
}
|
||||
|
||||
.dark .flash-message:hover {
|
||||
background: rgba(26, 26, 26, 1);
|
||||
}
|
||||
|
||||
.flash-message.info {
|
||||
border-left: 4px solid #3b82f6;
|
||||
background: rgba(239, 246, 255, 0.95);
|
||||
}
|
||||
|
||||
.flash-message.success {
|
||||
border-left: 4px solid #10b981;
|
||||
background: rgba(236, 253, 245, 0.95);
|
||||
}
|
||||
|
||||
.flash-message.warning {
|
||||
border-left: 4px solid #fbbf24;
|
||||
background: rgba(255, 251, 235, 0.95);
|
||||
}
|
||||
|
||||
.flash-message.error {
|
||||
border-left: 4px solid #ef4444;
|
||||
background: rgba(254, 242, 242, 0.95);
|
||||
}
|
||||
|
||||
/* Einfache Animationen - NUR OPACITY */
|
||||
@keyframes flash-fade-in {
|
||||
from { opacity: 0; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
|
||||
/* Alle weiteren Komponenten folgen dem gleichen Optimierungsmuster:
|
||||
- Entfernung von backdrop-filter
|
||||
- Entfernung von komplexen box-shadows
|
||||
- Entfernung von transform-Animationen
|
||||
- Vereinfachung von transitions zu opacity/background-color only
|
||||
- Beibehaltung des visuellen Designs
|
||||
*/
|
2
backend/static/css/tailwind.min.css
vendored
2
backend/static/css/tailwind.min.css
vendored
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
|
Loading…
x
Reference in New Issue
Block a user