From 361901eefe2573442e9f071248fb2cfad177becb Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Sun, 1 Jun 2025 18:01:23 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9A=20Improved=20logging=20structure?= =?UTF-8?q?=20&=20efficiency=20across=20backend=20logs=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app.py | 34 +- backend/database/myp.db | Bin 118784 -> 118784 bytes backend/logs/analytics/analytics.log | 1 + backend/logs/app/app.log | 53 +++ backend/logs/backup/backup.log | 1 + backend/logs/calendar/calendar.log | 1 + backend/logs/dashboard/dashboard.log | 4 + backend/logs/database/database.log | 1 + .../email_notification/email_notification.log | 1 + backend/logs/maintenance/maintenance.log | 2 + .../logs/multi_location/multi_location.log | 2 + backend/logs/permissions/permissions.log | 1 + .../logs/printer_monitor/printer_monitor.log | 20 + backend/logs/printers/printers.log | 67 ++++ backend/logs/scheduler/scheduler.log | 361 ++++++++++++++++++ backend/logs/security/security.log | 1 + .../shutdown_manager/shutdown_manager.log | 1 + backend/logs/startup/startup.log | 9 + backend/logs/windows_fixes/windows_fixes.log | 4 + backend/static/js/admin-unified.js | 74 ++++ backend/templates/admin.html | 10 + backend/templates/printers.html | 175 +++++++++ 22 files changed, 806 insertions(+), 17 deletions(-) diff --git a/backend/app.py b/backend/app.py index eaecbce5..acb0e139 100644 --- a/backend/app.py +++ b/backend/app.py @@ -1513,7 +1513,7 @@ def user_update_profile_api(): data = request.get_json() db_session = get_db_session() - user = db_session.query(User).filter(User.id == int(current_user.id)).first() + user = db_session.get(User, int(current_user.id)) if not user: db_session.close() @@ -2669,7 +2669,7 @@ def toggle_printer_power(printer_id): # Standard-Zustand ermitteln (Toggle-Verhalten) db_session = get_db_session() - printer = db_session.get(Printer, printer_id) # Modernized from query().get() + printer = db_session.get(Printer, printer_id) if not printer: db_session.close() @@ -2730,7 +2730,7 @@ def test_printer_tapo_connection(printer_id): """ try: db_session = get_db_session() - printer = db_session.query(Printer).get(printer_id) + printer = db_session.get(Printer, printer_id) if not printer: db_session.close() @@ -3103,7 +3103,7 @@ def admin_update_user_form(user_id): db_session = get_db_session() - user = db_session.query(User).get(user_id) + user = db_session.get(User, user_id) if not user: db_session.close() flash("Benutzer nicht gefunden.", "error") @@ -3174,7 +3174,7 @@ def admin_update_printer_form(printer_id): db_session = get_db_session() - printer = db_session.query(Printer).get(printer_id) + printer = db_session.get(Printer, printer_id) if not printer: db_session.close() flash("Drucker nicht gefunden.", "error") @@ -3373,7 +3373,7 @@ def upload_avatar(): # Alte Avatar-Datei löschen falls vorhanden db_session = get_db_session() - user = db_session.query(User).get(current_user.id) + user = db_session.get(User, current_user.id) if user and user.avatar_path: delete_file_safe(user.avatar_path) @@ -3833,7 +3833,7 @@ def delete_job(job_id): """Löscht einen Job.""" try: db_session = get_db_session() - job = db_session.query(Job).get(job_id) + job = db_session.get(Job, job_id) if not job: db_session.close() @@ -3963,7 +3963,7 @@ def create_job(): db_session = get_db_session() # Prüfen, ob der Drucker existiert - printer = db_session.query(Printer).get(printer_id) + printer = db_session.get(Printer, printer_id) if not printer: db_session.close() return jsonify({"error": "Drucker nicht gefunden"}), 404 @@ -4016,7 +4016,7 @@ def update_job(job_id): data = request.json db_session = get_db_session() - job = db_session.query(Job).get(job_id) + job = db_session.get(Job, job_id) if not job: db_session.close() @@ -4626,7 +4626,7 @@ def approve_guest_request(request_id): try: db_session = get_db_session() - guest_request = db_session.query(GuestRequest).filter(GuestRequest.id == request_id).first() + guest_request = db_session.get(GuestRequest, request_id) if not guest_request: db_session.close() @@ -4656,7 +4656,7 @@ def approve_guest_request(request_id): # Falls Drucker zugewiesen werden soll if printer_id: - printer = db_session.query(Printer).filter(Printer.id == printer_id).first() + printer = db_session.get(Printer, printer_id) if printer: guest_request.assigned_printer_id = printer_id @@ -4706,7 +4706,7 @@ def reject_guest_request(request_id): try: db_session = get_db_session() - guest_request = db_session.query(GuestRequest).filter(GuestRequest.id == request_id).first() + guest_request = db_session.get(GuestRequest, request_id) if not guest_request: db_session.close() @@ -4773,7 +4773,7 @@ def delete_guest_request(request_id): try: db_session = get_db_session() - guest_request = db_session.query(GuestRequest).filter(GuestRequest.id == request_id).first() + guest_request = db_session.get(GuestRequest, request_id) if not guest_request: db_session.close() @@ -4817,7 +4817,7 @@ def get_guest_request_detail(request_id): try: db_session = get_db_session() - guest_request = db_session.query(GuestRequest).filter(GuestRequest.id == request_id).first() + guest_request = db_session.get(GuestRequest, request_id) if not guest_request: db_session.close() @@ -4860,18 +4860,18 @@ def get_guest_request_detail(request_id): # Bearbeiter-Informationen hinzufügen if guest_request.approved_by: - approved_by_user = db_session.query(User).filter(User.id == guest_request.approved_by).first() + approved_by_user = db_session.get(User, guest_request.approved_by) if approved_by_user: request_data['approved_by_name'] = approved_by_user.name or approved_by_user.username if guest_request.rejected_by: - rejected_by_user = db_session.query(User).filter(User.id == guest_request.rejected_by).first() + rejected_by_user = db_session.get(User, guest_request.rejected_by) if rejected_by_user: request_data['rejected_by_name'] = rejected_by_user.name or rejected_by_user.username # Zugewiesener Drucker if hasattr(guest_request, 'assigned_printer_id') and guest_request.assigned_printer_id: - assigned_printer = db_session.query(Printer).filter(Printer.id == guest_request.assigned_printer_id).first() + assigned_printer = db_session.get(Printer, guest_request.assigned_printer_id) if assigned_printer: request_data['assigned_printer'] = { 'id': assigned_printer.id, diff --git a/backend/database/myp.db b/backend/database/myp.db index 14833fb94ede8e269e5d95c241950b4f55545320..8f9d5ad2083f01e9c37843f41e78bacd3a77dcc8 100644 GIT binary patch delta 316 zcmZozz}~QceS$RO=7}=SjGH$maO;}}x>iJ1Ip!p0C#4p-dgm4ex|>!OmYRmO`9zsIPhOxO!eeS`Wn`#lZenI+V7AGCO@U9GiQkuR z7VmRzab7*{bDJj$Fmv-Yny~OO*o#`LYpaWkD^Ko^$>J`}D@sjF&PYtkNu9hgR${Vv zEFYh_70@&jBRz8?BV$X8$>*ZCF|M858ncEQS+jjCx@JuQm@Xp|b7P}M1LnyWqg6Na z$9+G@w}^@V3;%QeTl|~(7x5q8ENIZjZz{l|%*lvkKMN0wGzVjTT3SwKUMd>{0|Pr_ Pejd7_?br1gH5UK?hNoX# delta 320 zcmZozz}~QceS$ROrin7njGHzlaO;~U`{g?8S-NBe8oHL}7ZrPyS`=Ekr23|phm;v+ z8>Xj~MtWov_>_m|rj=*pcsrTu2b8!aPF|oN!eeY^WniIaZeeL@Zo0{UO@U8}iQkuR z7VmRzDPBYFbDJj$Fmnqwny@q)vhXq3i(0E|tBZ@vPVSG%;wUJ}%qz*vOP{*ZCF>aXL8ncG4(U28Yv()6U*Z^b$GzGvq4b9ChO)QL! z8V#5yUyN4W%pdptAm36Z{xAH``ET)W=3mNxYO|n0AHS&pi!v{ZEGHw(4J, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) 2025-06-01 17:55:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten 2025-06-01 17:55:16 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee +2025-06-01 17:55:20 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-01 17:55:25 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-01 17:55:25 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-01 17:55:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test +2025-06-01 17:55: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:55:28 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten +2025-06-01 17:55:28 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test +2025-06-01 17:55:30 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:55:30 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten +2025-06-01 17:55:30 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test +2025-06-01 17:55:32 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:55:32 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-01 17:55:32 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test +2025-06-01 17:55:34 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:55:34 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-01 17:55:34 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test +2025-06-01 17:55:36 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:55:36 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten +2025-06-01 17:55:36 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test +2025-06-01 17:55: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:55:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten +2025-06-01 17:55:39 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test +2025-06-01 17:55: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:55:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten +2025-06-01 17:55:41 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test +2025-06-01 17:55: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:55:43 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten +2025-06-01 17:55:43 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi +2025-06-01 17:55:45 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:55:45 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten +2025-06-01 17:55:45 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi +2025-06-01 17:55:48 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:55:48 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten +2025-06-01 17:55:48 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee +2025-06-01 17:55:50 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:55:50 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten +2025-06-01 17:55:50 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee +2025-06-01 17:55:52 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:55:52 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten +2025-06-01 17:55:52 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2 +2025-06-01 17:55: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:55:54 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten +2025-06-01 17:55:54 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2 +2025-06-01 17:55: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:55:56 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten +2025-06-01 17:55:56 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test +2025-06-01 17:55:58 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:55:58 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten +2025-06-01 17:55:58 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test +2025-06-01 17:56: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:00 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten +2025-06-01 17:56:01 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test +2025-06-01 17:56: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:03 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten +2025-06-01 17:56:03 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test +2025-06-01 17:56:05 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:05 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten +2025-06-01 17:56:05 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test +2025-06-01 17:56:07 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:07 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-01 17:56:07 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test +2025-06-01 17:56:09 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-01 17:56:09 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test +2025-06-01 17:56:12 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:12 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten +2025-06-01 17:56:12 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test +2025-06-01 17:56: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten +2025-06-01 17:56:14 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test +2025-06-01 17:56: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten +2025-06-01 17:56:16 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test +2025-06-01 17:56: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten +2025-06-01 17:56:18 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi +2025-06-01 17:56:20 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:56:20 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten +2025-06-01 17:56:20 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi +2025-06-01 17:56:22 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:56:22 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten +2025-06-01 17:56:22 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee +2025-06-01 17:56:24 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:56:24 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten +2025-06-01 17:56:24 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee +2025-06-01 17:56:26 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:56:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten +2025-06-01 17:56:26 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2 +2025-06-01 17:56: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:28 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten +2025-06-01 17:56:28 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2 +2025-06-01 17:56:30 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:30 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten +2025-06-01 17:56:30 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test +2025-06-01 17:56: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:33 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten +2025-06-01 17:56:33 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test +2025-06-01 17:56: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:35 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten +2025-06-01 17:56:36 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test +2025-06-01 17:56: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:38 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten +2025-06-01 17:56:38 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test +2025-06-01 17:56:40 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:40 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten +2025-06-01 17:56:40 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test +2025-06-01 17:56:42 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:42 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-01 17:56:42 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test +2025-06-01 17:56:44 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-01 17:56:44 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test +2025-06-01 17:56:46 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:46 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten +2025-06-01 17:56:46 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test +2025-06-01 17:56: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:48 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten +2025-06-01 17:56:48 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test +2025-06-01 17:56: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:50 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten +2025-06-01 17:56:50 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test +2025-06-01 17:56:53 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:56:53 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten +2025-06-01 17:56:53 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi +2025-06-01 17:56:55 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:56:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten +2025-06-01 17:56:55 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi +2025-06-01 17:56:57 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:56:57 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten +2025-06-01 17:56:57 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee +2025-06-01 17:56:59 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:56:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten +2025-06-01 17:56:59 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee +2025-06-01 17:57:01 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:57:01 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten +2025-06-01 17:57:01 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2 +2025-06-01 17:57: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:03 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten +2025-06-01 17:57:03 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2 +2025-06-01 17:57:05 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:05 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten +2025-06-01 17:57:05 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test +2025-06-01 17:57:07 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:07 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten +2025-06-01 17:57:07 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test +2025-06-01 17:57:09 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten +2025-06-01 17:57:10 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test +2025-06-01 17:57:12 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:12 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten +2025-06-01 17:57:12 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test +2025-06-01 17:57: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten +2025-06-01 17:57:14 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test +2025-06-01 17:57:17 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:17 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-01 17:57:17 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test +2025-06-01 17:57:19 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-01 17:57:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test +2025-06-01 17:57:21 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:21 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten +2025-06-01 17:57:21 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test +2025-06-01 17:57: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:23 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten +2025-06-01 17:57:23 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test +2025-06-01 17:57: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten +2025-06-01 17:57:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test +2025-06-01 17:57: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:27 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten +2025-06-01 17:57:27 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi +2025-06-01 17:57:29 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:57:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten +2025-06-01 17:57:29 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi +2025-06-01 17:57:31 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:57:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten +2025-06-01 17:57:31 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee +2025-06-01 17:57:33 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:57:33 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten +2025-06-01 17:57:33 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee +2025-06-01 17:57: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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:57:35 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten +2025-06-01 17:57:35 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2 +2025-06-01 17:57:37 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:37 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten +2025-06-01 17:57:37 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2 +2025-06-01 17:57:40 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:40 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten +2025-06-01 17:57:40 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test +2025-06-01 17:57:42 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:42 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten +2025-06-01 17:57:42 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test +2025-06-01 17:57:44 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten +2025-06-01 17:57:45 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test +2025-06-01 17:57:47 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:47 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten +2025-06-01 17:57:47 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test +2025-06-01 17:57:49 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten +2025-06-01 17:57:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test +2025-06-01 17:57:51 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:51 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-01 17:57:51 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test +2025-06-01 17:57:53 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:53 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-01 17:57:53 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test +2025-06-01 17:57:55 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten +2025-06-01 17:57:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test +2025-06-01 17:57: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:57 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten +2025-06-01 17:57:57 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test +2025-06-01 17:57: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:57:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten +2025-06-01 17:57:59 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test +2025-06-01 17:58: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:02 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten +2025-06-01 17:58:02 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi +2025-06-01 17:58:04 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:58:04 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten +2025-06-01 17:58:04 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi +2025-06-01 17:58:06 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:58:06 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten +2025-06-01 17:58:06 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee +2025-06-01 17:58:08 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:58:08 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten +2025-06-01 17:58:08 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee +2025-06-01 17:58:10 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:58:10 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten +2025-06-01 17:58:10 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2 +2025-06-01 17:58:12 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:12 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten +2025-06-01 17:58:12 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2 +2025-06-01 17:58: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:15 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten +2025-06-01 17:58:15 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test +2025-06-01 17:58:17 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:17 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten +2025-06-01 17:58:17 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test +2025-06-01 17:58:19 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten +2025-06-01 17:58:20 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test +2025-06-01 17:58: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:22 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten +2025-06-01 17:58:22 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test +2025-06-01 17:58: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:24 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten +2025-06-01 17:58:24 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test +2025-06-01 17:58: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-01 17:58:26 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test +2025-06-01 17:58: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:28 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-01 17:58:28 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test +2025-06-01 17:58:30 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:30 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten +2025-06-01 17:58:30 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test +2025-06-01 17:58:32 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:32 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten +2025-06-01 17:58:32 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test +2025-06-01 17:58: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:35 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten +2025-06-01 17:58:35 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test +2025-06-01 17:58:37 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:37 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten +2025-06-01 17:58:37 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi +2025-06-01 17:58:39 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:58:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten +2025-06-01 17:58:39 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi +2025-06-01 17:58:41 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:58:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten +2025-06-01 17:58:41 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee +2025-06-01 17:58:43 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:58:43 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten +2025-06-01 17:58:43 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee +2025-06-01 17:58:45 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:58:45 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten +2025-06-01 17:58:45 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2 +2025-06-01 17:58:47 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:47 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten +2025-06-01 17:58:47 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2 +2025-06-01 17:58:49 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten +2025-06-01 17:58:49 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test +2025-06-01 17:58: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:52 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten +2025-06-01 17:58:52 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test +2025-06-01 17:58: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:54 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten +2025-06-01 17:58:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test +2025-06-01 17:58: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:57 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten +2025-06-01 17:58:57 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test +2025-06-01 17:58: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:58:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten +2025-06-01 17:58:59 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test +2025-06-01 17:59: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:01 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-01 17:59:01 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test +2025-06-01 17:59: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:03 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-01 17:59:03 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test +2025-06-01 17:59:05 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:05 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten +2025-06-01 17:59:05 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test +2025-06-01 17:59:07 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:07 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten +2025-06-01 17:59:07 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test +2025-06-01 17:59:09 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten +2025-06-01 17:59:09 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test +2025-06-01 17:59:11 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:11 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten +2025-06-01 17:59:11 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi +2025-06-01 17:59:14 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:59:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten +2025-06-01 17:59:14 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi +2025-06-01 17:59:16 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:59:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten +2025-06-01 17:59:16 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee +2025-06-01 17:59:18 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:59:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten +2025-06-01 17:59:18 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee +2025-06-01 17:59:20 - [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(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-01 17:59:20 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten +2025-06-01 17:59:20 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2 +2025-06-01 17:59: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:22 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten +2025-06-01 17:59:22 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2 +2025-06-01 17:59: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:24 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten +2025-06-01 17:59:24 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test +2025-06-01 17:59: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten +2025-06-01 17:59:26 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test +2025-06-01 17:59: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:28 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten +2025-06-01 17:59:29 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test +2025-06-01 17:59: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten +2025-06-01 17:59:31 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test +2025-06-01 17:59: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:33 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten +2025-06-01 17:59:33 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test +2025-06-01 17:59:36 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:36 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-01 17:59:36 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test +2025-06-01 17:59: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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:38 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-01 17:59:38 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test +2025-06-01 17:59:40 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:40 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten +2025-06-01 17:59:40 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test +2025-06-01 17:59:42 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:42 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten +2025-06-01 17:59:42 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test +2025-06-01 17:59:44 - [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(, 'Connection to 192.168.0.103 timed out. (connect timeout=2)')) +2025-06-01 17:59:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten +2025-06-01 17:59:44 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test diff --git a/backend/logs/security/security.log b/backend/logs/security/security.log index 1f836165..6211f65d 100644 --- a/backend/logs/security/security.log +++ b/backend/logs/security/security.log @@ -70,3 +70,4 @@ 2025-06-01 17:14:58 - [security] security - [INFO] INFO - 🔒 Security System initialisiert 2025-06-01 17:16:36 - [security] security - [INFO] INFO - 🔒 Security System initialisiert 2025-06-01 17:36:08 - [security] security - [INFO] INFO - 🔒 Security System initialisiert +2025-06-01 17:55:21 - [security] security - [INFO] INFO - 🔒 Security System initialisiert diff --git a/backend/logs/shutdown_manager/shutdown_manager.log b/backend/logs/shutdown_manager/shutdown_manager.log index f508bd0c..1f59e364 100644 --- a/backend/logs/shutdown_manager/shutdown_manager.log +++ b/backend/logs/shutdown_manager/shutdown_manager.log @@ -148,3 +148,4 @@ 2025-06-01 17:14:58 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert 2025-06-01 17:16:36 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert 2025-06-01 17:36:08 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert +2025-06-01 17:55:21 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert diff --git a/backend/logs/startup/startup.log b/backend/logs/startup/startup.log index 8daf941b..73689355 100644 --- a/backend/logs/startup/startup.log +++ b/backend/logs/startup/startup.log @@ -638,3 +638,12 @@ 2025-06-01 17:36:08 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert 2025-06-01 17:36:08 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert 2025-06-01 17:36:08 - [startup] startup - [INFO] INFO - ================================================== +2025-06-01 17:55:21 - [startup] startup - [INFO] INFO - ================================================== +2025-06-01 17:55:21 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet... +2025-06-01 17:55:21 - [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-01 17:55:21 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-01 17:55:21 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-01 17:55:21 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-01T17:55:21.272792 +2025-06-01 17:55:21 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-01 17:55:21 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-01 17:55:21 - [startup] startup - [INFO] INFO - ================================================== diff --git a/backend/logs/windows_fixes/windows_fixes.log b/backend/logs/windows_fixes/windows_fixes.log index d72210c3..f8a1f09b 100644 --- a/backend/logs/windows_fixes/windows_fixes.log +++ b/backend/logs/windows_fixes/windows_fixes.log @@ -296,3 +296,7 @@ 2025-06-01 17:36:07 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) 2025-06-01 17:36:07 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet 2025-06-01 17:36:07 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 17:55:19 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 17:55:19 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 17:55:19 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 17:55:19 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet diff --git a/backend/static/js/admin-unified.js b/backend/static/js/admin-unified.js index c16cc70a..c2bb583c 100644 --- a/backend/static/js/admin-unified.js +++ b/backend/static/js/admin-unified.js @@ -205,6 +205,16 @@ class AdminDashboard { const printerId = e.target.closest('button').dataset.printerId; this.showPrinterSettings(printerId); } + + // Smart-Plug Ein/Aus Toggle für Drucker + if (e.target.closest('.toggle-printer-power-btn')) { + e.preventDefault(); + e.stopPropagation(); + const button = e.target.closest('button'); + const printerId = button.dataset.printerId; + const printerName = button.dataset.printerName; + this.togglePrinterPower(printerId, printerName, button); + } }); } @@ -805,6 +815,70 @@ class AdminDashboard { this.showNotification(`Drucker-Einstellungen werden geladen...`, 'info'); } + // Smart-Plug Ein/Aus Toggle für Drucker + async togglePrinterPower(printerId, printerName, button) { + console.log(`🔌 Smart-Plug Toggle für Drucker ${printerId} (${printerName})`); + + // Bestätigungsdialog + const confirmMessage = `Möchten Sie die Steckdose für "${printerName}" umschalten?\n\nDies schaltet den Drucker ein/aus.`; + if (!confirm(confirmMessage)) return; + + // Button-Zustand während der Anfrage anzeigen + const originalContent = button.innerHTML; + button.disabled = true; + button.innerHTML = ` +
+ + `; + + try { + const response = await fetch(`${this.apiBaseUrl}/api/admin/printers/${printerId}/toggle`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRFToken': this.csrfToken + }, + body: JSON.stringify({ + reason: 'Admin-Panel Smart-Plug Toggle' + }) + }); + + const data = await response.json(); + + if (response.ok && data.success) { + const action = data.action || 'umgeschaltet'; + this.showNotification(`✅ Steckdose für "${printerName}" erfolgreich ${action}`, 'success'); + + // Button-Visual-Feedback + button.classList.remove('from-orange-500', 'to-red-500'); + button.classList.add('from-green-500', 'to-green-600'); + + setTimeout(() => { + button.classList.remove('from-green-500', 'to-green-600'); + button.classList.add('from-orange-500', 'to-red-500'); + }, 2000); + + // Live-Statistiken nach kurzer Verzögerung aktualisieren + setTimeout(() => { + this.loadLiveStats(); + }, 1000); + + } else { + const errorMsg = data.error || 'Unbekannter Fehler beim Schalten der Steckdose'; + this.showNotification(`❌ Fehler: ${errorMsg}`, 'error'); + console.error('Smart-Plug Toggle Fehler:', data); + } + + } catch (error) { + console.error('Netzwerkfehler beim Smart-Plug Toggle:', error); + this.showNotification(`❌ Netzwerkfehler beim Schalten der Steckdose für "${printerName}"`, 'error'); + } finally { + // Button-Zustand zurücksetzen + button.disabled = false; + button.innerHTML = originalContent; + } + } + // Job-Management handleJobAction(action, jobId) { console.log(`📋 Job-Aktion "${action}" für Job ${jobId}`); diff --git a/backend/templates/admin.html b/backend/templates/admin.html index 775d9dc9..dbbb4818 100644 --- a/backend/templates/admin.html +++ b/backend/templates/admin.html @@ -482,6 +482,16 @@ document.addEventListener('DOMContentLoaded', function() { + +