From 286a70b01f2e34fb75c8bbba2e77f22cdbf30107 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Fri, 20 Jun 2025 12:17:19 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9A=20Improved=20backend=20code=20stru?= =?UTF-8?q?cture=20&=20logging=20consistency=20=F0=9F=96=A5=EF=B8=8F?= =?UTF-8?q?=F0=9F=94=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/__pycache__/models.cpython-313.pyc | Bin 107089 -> 107624 bytes backend/blueprints/api.py | 6 + backend/logs/app/app.log | 44 ++++ backend/logs/core_system/core_system.log | 2 + .../job_queue_system/job_queue_system.log | 1 + backend/logs/jobs/jobs.log | 34 +++ backend/logs/scheduler/scheduler.log | 204 ++++++++++++++++++ backend/logs/windows_fixes/windows_fixes.log | 2 + backend/models.py | 15 +- 9 files changed, 306 insertions(+), 2 deletions(-) diff --git a/backend/__pycache__/models.cpython-313.pyc b/backend/__pycache__/models.cpython-313.pyc index 5f4ba35d8e21a002df30171cb0fb45ad9f0b4205..e8dbbe7d567be4ad88520e6a73de0055672972a4 100644 GIT binary patch delta 11495 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 diff --git a/backend/blueprints/api.py b/backend/blueprints/api.py index be7add1d8..3b47cb11e 100644 --- a/backend/blueprints/api.py +++ b/backend/blueprints/api.py @@ -880,6 +880,12 @@ def get_user_activity_chart(): """ try: db_session = get_db_session() + if db_session is None: + api_logger.error("Datenbankverbindung fehlgeschlagen") + return jsonify({ + 'error': 'Datenbankverbindung fehlgeschlagen', + 'message': 'Keine Verbindung zur Datenbank möglich' + }), 500 # Top 10 aktivste Benutzer (nach Job-Anzahl) from sqlalchemy import func diff --git a/backend/logs/app/app.log b/backend/logs/app/app.log index 1426519cc..da7bc1f73 100644 --- a/backend/logs/app/app.log +++ b/backend/logs/app/app.log @@ -64916,3 +64916,47 @@ WHERE users.role = ?] 2025-06-20 12:07:25 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)... 2025-06-20 12:07:43 - [app] app - [WARNING] WARNING - [STARTUP] ⚠️ Keine der 6 Steckdosen konnte initialisiert werden 2025-06-20 12:07:43 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://: +2025-06-20 12:14:44 - [app] app - [INFO] INFO - Locating template 'dashboard.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates + -> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\dashboard.html') +2025-06-20 12:14:44 - [app] app - [INFO] INFO - Locating template 'base.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates + -> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\base.html') +2025-06-20 12:14:44 - [app] app - [INFO] INFO - Locating template 'macros/ui_components.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates + -> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\macros\\ui_components.html') +2025-06-20 12:14:44 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 12:15:14 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 12:15:14 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 12:15:14 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 12:15:14 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 12:15:44 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 12:15:44 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 12:15:44 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 12:15:44 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 12:16:15 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 12:16:15 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 12:16:15 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 12:16:15 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 12:16:45 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 12:16:45 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 12:16:45 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 12:16:45 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 12:16:57 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-20 12:16:57 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-20 12:16:57 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: diff --git a/backend/logs/core_system/core_system.log b/backend/logs/core_system/core_system.log index 63704030c..ad94988f4 100644 --- a/backend/logs/core_system/core_system.log +++ b/backend/logs/core_system/core_system.log @@ -510,3 +510,5 @@ 2025-06-20 12:06:21 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) 2025-06-20 12:07:23 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert 2025-06-20 12:07:23 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-20 12:16:59 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-20 12:16:59 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) diff --git a/backend/logs/job_queue_system/job_queue_system.log b/backend/logs/job_queue_system/job_queue_system.log index 628ed0045..f4307953a 100644 --- a/backend/logs/job_queue_system/job_queue_system.log +++ b/backend/logs/job_queue_system/job_queue_system.log @@ -2037,3 +2037,4 @@ 2025-06-20 12:07:24 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert 2025-06-20 12:07:24 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) 2025-06-20 12:07:25 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-20 12:16:57 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) diff --git a/backend/logs/jobs/jobs.log b/backend/logs/jobs/jobs.log index ce8f3d47f..da98af598 100644 --- a/backend/logs/jobs/jobs.log +++ b/backend/logs/jobs/jobs.log @@ -1121,3 +1121,37 @@ sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) FOREIGN KEY constraint f 2025-06-20 12:07:44 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) 2025-06-20 12:08:14 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) 2025-06-20 12:08:14 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:08:44 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:08:44 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:09:14 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:09:14 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:09:44 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:09:44 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:10:14 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:10:14 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:10:44 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:10:44 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:11:14 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:11:14 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:11:44 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:11:44 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:12:14 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:12:14 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:12:44 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:12:44 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:13:14 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:13:14 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:13:44 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:13:44 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:14:14 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:14:14 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:14:44 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:14:44 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:15:14 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:15:14 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:15:44 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:15:44 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:16:15 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:16:15 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) +2025-06-20 12:16:45 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 12:16:45 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 3 von 3 (Seite 1) diff --git a/backend/logs/scheduler/scheduler.log b/backend/logs/scheduler/scheduler.log index 7348deb3f..e2dd03a98 100644 --- a/backend/logs/scheduler/scheduler.log +++ b/backend/logs/scheduler/scheduler.log @@ -4769,3 +4769,207 @@ 2025-06-20 12:08:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet 2025-06-20 12:08:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined 2025-06-20 12:08:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:08:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:08:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:08:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:08:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:08:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:08:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:08:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:08:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:08:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:08:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:08:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:08:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:09:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:09:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:09:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:09:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:09:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:09:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:09:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:09:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:09:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:09:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:09:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:09:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:09:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:09:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:09:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:09:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:09:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:09:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:09:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:09:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:09:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:09:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:09:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:09:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:10:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:10:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:10:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:10:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:10:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:10:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:10:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:10:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:10:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:10:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:10:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:10:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:10:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:10:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:10:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:10:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:10:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:10:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:10:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:10:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:10:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:10:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:10:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:10:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:11:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:11:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:11:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:11:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:11:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:11:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:11:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:11:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:11:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:11:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:11:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:11:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:11:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:11:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:11:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:11:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:11:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:11:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:11:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:11:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:11:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:11:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:11:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:11:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:12:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:12:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:12:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:12:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:12:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:12:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:12:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:12:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:12:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:12:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:12:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:12:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:12:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:12:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:12:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:12:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:12:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:12:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:12:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:12:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:12:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:12:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:12:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:12:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:13:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:13:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:13:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:13:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:13:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:13:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:13:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:13:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:13:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:13:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:13:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:13:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:13:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:13:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:13:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:13:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:13:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:13:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:13:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:13:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:13:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:13:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:13:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:13:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:14:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:14:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:14:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:14:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:14:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:14:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:14:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:14:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:14:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:14:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:14:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:14:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:14:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:14:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:14:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:14:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:14:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:14:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:14:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:14:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:14:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:14:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:14:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:14:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:15:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:15:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:15:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:15:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:15:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:15:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:15:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:15:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:15:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:15:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:15:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:15:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:15:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:15:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:15:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:15:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:15:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:15:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:15:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:15:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:15:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:15:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:15:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:15:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:16:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:16:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:16:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:16:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:16:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:16:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:16:26 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:16:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:16:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:16:26 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:16:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:16:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:16:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:16:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:16:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:16:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:16:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:16:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 12:16:56 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 12:16:56 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:16:56 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 12:16:56 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 12:16:56 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 12:16:56 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten diff --git a/backend/logs/windows_fixes/windows_fixes.log b/backend/logs/windows_fixes/windows_fixes.log index e79d7fdc7..bf2892267 100644 --- a/backend/logs/windows_fixes/windows_fixes.log +++ b/backend/logs/windows_fixes/windows_fixes.log @@ -513,3 +513,5 @@ 2025-06-20 12:06:21 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet 2025-06-20 12:07:23 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... 2025-06-20 12:07:23 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-20 12:16:59 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-20 12:16:59 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet diff --git a/backend/models.py b/backend/models.py index 01861f9f8..b843d68e5 100644 --- a/backend/models.py +++ b/backend/models.py @@ -319,8 +319,19 @@ def get_db_session() -> Session: """ Gibt eine neue Datenbank-Session zurück (Legacy-Kompatibilität). """ - session_factory = get_session_factory() - return session_factory() + try: + session_factory = get_session_factory() + if session_factory is None: + logger.error("Session factory ist None - Engine oder Session-Factory-Initialisierung fehlgeschlagen") + return None + session = session_factory() + if session is None: + logger.error("Session-Erstellung fehlgeschlagen") + return None + return session + except Exception as e: + logger.error(f"Fehler beim Erstellen der Datenbank-Session: {str(e)}") + return None # ===== MODELL-DEFINITIONEN =====