From 0c13a98cb583f85c637c03d677c30bf95e2af01b Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Fri, 20 Jun 2025 10:49:04 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Improved=20backend=20logs=20and?= =?UTF-8?q?=20utility=20files=20=F0=9F=96=A5=EF=B8=8F=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/CLAUDE.md | 9 + backend/__pycache__/models.cpython-311.pyc | Bin 117620 -> 117534 bytes backend/backend/database/myp.db | Bin 126976 -> 126976 bytes .../__pycache__/jobs.cpython-311.pyc | Bin 41918 -> 42596 bytes .../__pycache__/jobs.cpython-313.pyc | Bin 36476 -> 37297 bytes backend/logs/admin/admin.log | 6 + backend/logs/admin_api/admin_api.log | 1 + backend/logs/app/app.log | 691 ++++++++++++++++++ backend/logs/calendar/calendar.log | 1 + backend/logs/core_system/core_system.log | 16 + .../logs/data_management/data_management.log | 16 + .../drucker_steuerung/drucker_steuerung.log | 8 + .../energy_monitoring/energy_monitoring.log | 9 + .../hardware_integration.log | 19 + .../job_queue_system/job_queue_system.log | 39 + backend/logs/jobs/jobs.log | 24 + .../monitoring_analytics.log | 16 + backend/logs/permissions/permissions.log | 8 + backend/logs/scheduler/scheduler.log | 230 ++++++ .../logs/security_suite/security_suite.log | 24 + backend/logs/startup/startup.log | 72 ++ .../utilities_collection.log | 24 + backend/logs/windows_fixes/windows_fixes.log | 16 + backend/templates/energy_dashboard.html | 57 +- .../__pycache__/__init__.cpython-311.pyc | Bin 268 -> 182 bytes .../database_cleanup.cpython-311.pyc | Bin 4905 -> 4819 bytes .../hardware_integration.cpython-311.pyc | Bin 24052 -> 34150 bytes .../hardware_integration.cpython-313.pyc | Bin 29894 -> 33922 bytes .../job_queue_system.cpython-311.pyc | Bin 33613 -> 33527 bytes .../logging_config.cpython-311.pyc | Bin 18604 -> 18518 bytes .../utilities_collection.cpython-311.pyc | Bin 13548 -> 13462 bytes backend/utils/hardware_integration.py | 107 +++ 32 files changed, 1378 insertions(+), 15 deletions(-) diff --git a/backend/CLAUDE.md b/backend/CLAUDE.md index 21fb5f249..1293cde10 100644 --- a/backend/CLAUDE.md +++ b/backend/CLAUDE.md @@ -2,6 +2,15 @@ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. +DO: +- untersuche die Log Dateien +- Dateien bearbeiten + +VERBOTEN: +- Mock Daten +- Andere Backend Funktionalitäten als Tapo (nur steckdosen sind ansprechbar!) +- unnötige neue Dateien erstellen + # Stilanweisung für Till Tomczaks Kommunikationsstil ## Grundcharakter diff --git a/backend/__pycache__/models.cpython-311.pyc b/backend/__pycache__/models.cpython-311.pyc index 6a057a6c6c3588b97415ae1c7b89aeeefa133681..ae82ebc03b3a34fe3a2a9ffa44412f24de9024aa 100644 GIT binary patch delta 62 zcmew|jeXuUcCO{Tyj%=Gp!8=W*Arg(Uyk~@c_sSE`k}?CMaB9dA^yJ3QI2}9zOIh? RE~#bB$$Zs5C9!v9vfTGbaV8 zF1|D`B|bPgqckT~-_yfe*DT>WX6pt_w-DCO|r8qElkQ2lZ$;^DxJIy^GkD+{QW&# zjD0E+Grhc$%Ca*eEIgCEqCztb%AEDf9Lqx!CztDo@R(Rw85!!Cn3x-ynQy+XKSzff zDq?D8Zn(KFMvsvnCSYW4WZB5iHn}ifeDbB(9GJM7rJ=b=BR?xxJS7exZf0y?(8$jM z7XKEP1GCD^*woZya$bBJT)+S*v?+l_ft^8sfr0N2@5aViOq&-71aoix(aRUaCC0$l z#>>M!kxOi|zymfezNQKmc?NC6CT2zkM_ITODSeTewns0vdMnahxXy12EiQ>KN-YG@#U{%F7#9Elsi&3# delta 489 zcmZp8z~1nHeS$Qj&O{k!RviYtHqDJG_w-CnD*VfmLUR1w^o?EJjl9DHd=kSFOAUgZ z!a|*c!hGF4^$Ohz103_S%bbk7JmR{99ZO4^+K{k%5KLobDxCAO$muzFT~U`PNUIn6tghfzg{!D>FZ@ z*ieO&Mbun6D?h0?Go>OPM8_AGB$kvG$CqU0rWPA2fZ+81evB6kjTMZ=nOJlggbQ*? l(_yM|^3#irj7)?XSu`2=(@Rr}OX7=C3qf?T@v;EM1pr-lmr?)# diff --git a/backend/blueprints/__pycache__/jobs.cpython-311.pyc b/backend/blueprints/__pycache__/jobs.cpython-311.pyc index 0b6c167d4cc796d3c53ba587ad99bf18ae008383..55475cdcf13909b1729d4fc2ed1b848927e520a3 100644 GIT binary patch delta 2920 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 bT6@Y&L}e6hOej*$qYB*n6HAzWV}Sk-m6Esl diff --git a/backend/blueprints/__pycache__/jobs.cpython-313.pyc b/backend/blueprints/__pycache__/jobs.cpython-313.pyc index ab4a1ce2cb80d168942cb44e231f943ff6fd6865..5a0dc4afef8cda10281c9a5e9d5535f3d4f2820f 100644 GIT binary patch delta 3011 zcmZ`*drVu`89&$8*BFO~!8X|Vbs^@Bv3V8q2m}a^mJ$-KFN8S7HO7F0b4jo5YzdVh zm6}WmUCB;WrP8X>R;{YNLgqzDrAbNFrpwZ7v%|ySP%T;8X;S~FGtz8oGHK@+3^dZN zL8QtOtPOI{1=VlvBvT$!v}BWLCyhJYB$%gt)Sv-Eq#=y<1{a z#Ye0x-Zm#^J~7~ToyES>SZl#7RnTCW!gGnLrHgP7MsXY z%$^zvr)HCSy5PHAvQ+gJ3;DWXs9Pgs)jj*+1BaT@AeRZI4QipH#C;q)pOx!QSuJ(J(O#c9D88On3z}+Cxq;44x`lf{JFwitgH0G!qv!#|maP zWuk)hs31aH1)nN&1eMXo%5-fjqs3)JI)Id5usHCHsjhYJc0yc0rn_`ga%Nwpz$=JN zu5Hp9@T$=Lhf_m|*+lGzbEQf-^DNU-gO+DYjcdg)aH>?E^23_YeM(PQ10R|HOHTTA zh#Gz8jo0YTacz5wX{G%*DHX$0O7+hsWMG+#VF+=rLTt>m1$2a@Ep--l`me;?JPY;K^q`B#K}`^(8a! zMq}QLOhn@Lx;d}U!8u(K;gH+ubxfRrGZv-%ET*S8V=6g)b{Ef&^YDU2(I$@j_){@TeC77o!Xtz;qKGr>LoP2; z;i%6&&UqtA!?AU3l={NbD#n{ZqYLKMl%)R_4bG#VHzWdJ3Pg4Gz);N>1mT9wb?;3^ z)2U?rs-`5Y*>y*=>&oc7hM7rRm8!$i?2t4&XlVYl;@a^~8iLI|!Jb3GoEH|P1CJy? zs)`CUX{vjL#X))AU4!wwcvYP{JNi3eSY0)*uDVimQ@mKaZ#myICkf@(o$vUnvF+NA zgZmGJ8~a0z{U05;Fz}0k1^ZyoIXO0O_nhCmtTzVBS{L=L%XE2|t_jgKR|=NsmIuio zxAc(|D2whp{qyEycbxvF!8p!wLUa%Wgs98wksOPQe6 z9b^s%OU4$Io_oriu(BYeELcz$t?KiZb6b`R8%r=b;iPv)2HbrdpNj!}8pa zJU3X-yU=$qXd9XD8x8ilgL#J+}&N1`-mF601p>;Uq0wX_%X| zqqprVO>}<|xW3bX>>qX*v8@qcTVKzJ!6%lcEHtPOU}wFOnQ=CrkFIQO3Mj zYSoeR$~voxT#yk6FUW;xiUk#gv5v$zTf$b73&jnriCios5MC_8oJA9baV6#~R!e$K zfE+*cCEA5@s?-8LR zP}uRo4&n^_D|1V94LSJh@Exm8F^eHSv3UF~!h&*8CqUFhH$@~*e`He$n{4VOOLI1}^xUDA83MzYHIpc#FVtHc?+A$H~CbgjFc|ay@3A%0->@PW2F9 z!QV_M(p$YMqdxe5BFg)4X<`soo(vQJ2qe97Nhn>{4kvF^2%X9%F2S`^pJv7s zOm#SYek37!H`smdBd(2&{PuJU^$p6p5vcx2B3X)$XdZ7VkGF-#%JNu89t+0fCGfb{ sSPT3&kUOg-{tc(keyj2b2!>cAfk28)NmLkfL=RE0a9SICKiCK*zyJUM delta 2302 zcmY*bdu&tJ89(PfoQD%XV#l!)6WhTd4&?nJwv$kU(-uN7_~tsP0tCmegeErJ>rmRF z1dUZ~Nn6^TsavOtp-p8>eZo~WNGENKtsv+oJ1CN)7O-M5-Q$lm_c0JBoBv6IF3db#yDtx^T@cloh>Y zH8-~mx>i+qqZZRGNi1LK{wLXY^1f(Vsx^~m#m9c;O#+IIU~cDczcn0Um4V+Lt8B9gtwgTJHn_aNS`?8O_9eH-WEcG+=ygSZ1%1bWtmkgdr+76P4p)dY7-Ow$i^ zQ8ks$eO4HakBWhjG&2$ljG$k%os-75T3}u}XFMc|{zwR+_VchBIqaV{rE|s5u@H86 zKFuEUk4=Px7ja-=3x>2toQOn1VmuTa5@TZ%@zGdR6h@KBVN(kY#2{CQjg1Za1J72M zBF?eh{u*(8oj@yrp^VMp*zi!$ANLEdkXsl?7X?Uu0sq)gAQlaejRxW(`oW>6pol7* z-ApMqLr0x@^s-Z1^dY|aIsS>&G5}73rSjdA#~jrLysYi)T-YfWmc z^V&^!$|{C$TejV2`+eoH!SbNq$l`Wm~8HztqMKJVXV4k zz!*!Ga)H6Pl*bs2OModhK2!j;F{LsmRpxW8A80N-^L}~4)}CnJpRgR5R~>vPlMZd` zhPXM-Kk=U7(RaHb*fava|4s&K2jKV13SbMv|32K0W?X-q(&LW%k<0As09Q9!G5$$j zOVCac?C9{);99$@6yN+s)5RIV=W4S2`8FNK>pE8jPk|eDmkAFy_2qp{%uR<3<1J8# zXKoeh`nEE+Hnw5@g~8m{q4>fs$NaCXyAuzyw2CuK(X$#Sr={lxs>LlM2f%Q29PPy-;BBwa^Q7W}lK;R6xuZ zm6T7zE~+;WUI($wVm(nF~#e zv*`Y=YIqK*dwSU4;l)GgrWT-j-2FoW(Ny0STQurgU@q8G+vaeRiv5I#jgF_TtW=09>I6b+*5 z{+HRmVb5z4HymN$4Eij*Nq&Y%;SULT!G<1K^oWUkB1_`ie?e&`;*!DZ(xdS@$S&Zi z0;xW>KS!PkK26*%p|_8n$2y(QU4ieS|2$U?Q%HBbwv=R&EmfvUnR;dNJc|w-cVeS= zjz7tMg^k*!Z;!iJ*-Tb!%j7$dRLp|zO`6$n@MKhyPxUdfzh~D&rz&x<=~G_#HM)Ds z%6^Nd-$e4MVKn;V6#R$edg)U}l`Rc%Sn-mbw!lx2?ew2ZG6hol1Mvx5AzYB5_~>{j zvqu%Ea(X*^AA4Pr#-{V=-Q*1;kR209)df;DfmB5xbr4AE0?AJxDG0<*a1$V(Zh`zi vNauEp$AS}Mp)O$=U47% found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\calendar.html') +2025-06-20 10:39:17 - [app] app - [INFO] INFO - Locating template 'calendar.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\\calendar.html') +2025-06-20 10:39:17 - [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 10:39:17 - [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 10:39:17 - [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 10:39:17 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:17 - [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 10:39:17 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:17 - [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 10:39:17 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:17 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:17 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:20 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:20 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:21 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:21 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:21 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:21 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:21 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:23 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:23 - [app] app - [INFO] INFO - Locating template 'jobs.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\\jobs.html') +2025-06-20 10:39:23 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:23 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:23 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:23 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:23 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:23 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:23 - [app] app - [INFO] INFO - ✅ API: Drucker abgerufen (include_inactive=) +2025-06-20 10:39:23 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:35 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:35 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:35 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:35 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:35 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:35 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:35 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:35 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:35 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:35 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:40 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:40 - [app] app - [INFO] INFO - Not Found (404): +2025-06-20 10:39:40 - [app] app - [INFO] INFO - Locating template 'errors/404.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\\errors\\404.html') +2025-06-20 10:39:40 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:44 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:44 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:44 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:44 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:53 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:53 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:53 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:39:53 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:39:57 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:40:23 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:40:23 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:40:23 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:40:23 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:40:38 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-20 10:40:38 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-20 10:40:38 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: +2025-06-20 10:40:39 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 10:40:40 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: +2025-06-20 10:40:40 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: +2025-06-20 10:40:40 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-20 10:40:40 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-20 10:40:40 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Konfiguration aktiviert +2025-06-20 10:40:40 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: +2025-06-20 10:40:40 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: +2025-06-20 10:40:40 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: +2025-06-20 10:40:41 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-20 10:40:41 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: erstellt, aktualisiert +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP -Umgebung +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] 🏢 +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-20 10:40:41 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-20 10:40:41 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-20 10:40:41 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-20 10:40:41 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-20 10:40:41 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-20 10:40:41 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-20 10:40:41 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-20 10:40:41 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-20 10:40:41 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-20 10:40:41 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-20 10:40:41 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-20 10:40:41 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)... +2025-06-20 10:40:59 - [app] app - [WARNING] WARNING - [STARTUP] ⚠️ Keine der 6 Steckdosen konnte initialisiert werden +2025-06-20 10:40:59 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://: +2025-06-20 10:40:59 - [app] app - [INFO] INFO - Locating template 'guest_request.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\\guest_request.html') +2025-06-20 10:40:59 - [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 10:40:59 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:40:59 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:40:59 - [app] app - [INFO] INFO - Not Found (404): +2025-06-20 10:40:59 - [app] app - [INFO] INFO - Locating template 'errors/404.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\\errors\\404.html') +2025-06-20 10:40:59 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:40:59 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:40:59 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:06 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 10:41:13 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:13 - [app] app - [INFO] INFO - Locating template 'guest_requests_by_email.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\\guest_requests_by_email.html') +2025-06-20 10:41:13 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:13 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:13 - [app] app - [INFO] INFO - Not Found (404): +2025-06-20 10:41:13 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:14 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:14 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:15 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:15 - [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 10:41:15 - [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 10:41:15 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:15 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:15 - [app] app - [INFO] INFO - Not Found (404): +2025-06-20 10:41:15 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:15 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:15 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:19 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:19 - [app] app - [INFO] INFO - Locating template 'admin.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\\admin.html') +2025-06-20 10:41:19 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:19 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:19 - [app] app - [INFO] INFO - Not Found (404): +2025-06-20 10:41:19 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:19 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:19 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:19 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:19 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:19 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:20 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:24 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:24 - [app] app - [INFO] INFO - Locating template 'jobs.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\\jobs.html') +2025-06-20 10:41:24 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:24 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:24 - [app] app - [INFO] INFO - Not Found (404): +2025-06-20 10:41:24 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:24 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:24 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:24 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:24 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:24 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:24 - [app] app - [INFO] INFO - ✅ API: Drucker abgerufen (include_inactive=) +2025-06-20 10:41:24 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:32 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:32 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:32 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:32 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:32 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-20 10:41:32 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-20 10:41:32 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: +2025-06-20 10:41:33 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Konfiguration aktiviert +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: +2025-06-20 10:41:34 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-20 10:41:34 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: erstellt, aktualisiert +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP -Umgebung +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] 🏢 +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-20 10:41:34 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-20 10:41:34 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-20 10:41:34 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-20 10:41:34 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-20 10:41:34 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-20 10:41:34 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-20 10:41:34 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-20 10:41:34 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-20 10:41:34 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-20 10:41:34 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-20 10:41:34 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-20 10:41:34 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)... +2025-06-20 10:41:37 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 10:41:37 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-20 10:41:52 - [app] app - [WARNING] WARNING - [STARTUP] ⚠️ Keine der 6 Steckdosen konnte initialisiert werden +2025-06-20 10:41:52 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://: +2025-06-20 10:41:53 - [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 10:41:53 - [app] app - [INFO] INFO - Locating template 'stats.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\\stats.html') +2025-06-20 10:41:53 - [app] app - [INFO] INFO - Locating template 'stats.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\\stats.html') +2025-06-20 10:41:53 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:53 - [app] app - [INFO] INFO - Locating template 'energy_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\\energy_dashboard.html') +2025-06-20 10:41:53 - [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 10:41:53 - [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 10:41:53 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:53 - [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 10:41:53 - [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 10:41:53 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:53 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:53 - [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 10:41:53 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:53 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:53 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:53 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:53 - [app] app - [INFO] INFO - Not Found (404): +2025-06-20 10:41:53 - [app] app - [INFO] INFO - Locating template 'errors/404.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\\errors\\404.html') +2025-06-20 10:41:53 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:53 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:53 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:41:53 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:41:53 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:42:02 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-20 10:42:02 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-20 10:42:02 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: +2025-06-20 10:42:03 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Konfiguration aktiviert +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: +2025-06-20 10:42:04 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-20 10:42:04 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: erstellt, aktualisiert +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP -Umgebung +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] 🏢 +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-20 10:42:04 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-20 10:42:04 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-20 10:42:04 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-20 10:42:04 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-20 10:42:04 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-20 10:42:04 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-20 10:42:04 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-20 10:42:04 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-20 10:42:04 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-20 10:42:04 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-20 10:42:04 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-20 10:42:04 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)... +2025-06-20 10:42:23 - [app] app - [WARNING] WARNING - [STARTUP] ⚠️ Keine der 6 Steckdosen konnte initialisiert werden +2025-06-20 10:42:23 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://: +2025-06-20 10:42:23 - [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 10:42:23 - [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 10:42:23 - [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 10:42:23 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:42:23 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:42:23 - [app] app - [INFO] INFO - Not Found (404): +2025-06-20 10:42:23 - [app] app - [INFO] INFO - Locating template 'errors/404.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\\errors\\404.html') +2025-06-20 10:42:23 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:42:23 - [app] app - [DEBUG] DEBUG - Request: +2025-06-20 10:42:23 - [app] app - [DEBUG] DEBUG - Response: +2025-06-20 10:42:39 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-20 10:42:39 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-20 10:42:39 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: +2025-06-20 10:42:40 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 10:42:41 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: +2025-06-20 10:42:41 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: +2025-06-20 10:42:41 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-20 10:42:41 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-20 10:42:41 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Konfiguration aktiviert +2025-06-20 10:42:41 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: +2025-06-20 10:42:41 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: +2025-06-20 10:42:41 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: +2025-06-20 10:42:42 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-20 10:42:42 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: erstellt, aktualisiert +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP -Umgebung +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] 🏢 +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-20 10:42:42 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-20 10:42:42 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-20 10:42:42 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-20 10:42:42 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-20 10:42:42 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-20 10:42:42 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-20 10:42:42 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-20 10:42:42 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-20 10:42:42 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-20 10:42:42 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-20 10:42:42 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-20 10:42:42 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)... +2025-06-20 10:42:44 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 10:42:44 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-20 10:43:00 - [app] app - [WARNING] WARNING - [STARTUP] ⚠️ Keine der 6 Steckdosen konnte initialisiert werden +2025-06-20 10:43:00 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://: +2025-06-20 10:43:07 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-20 10:43:07 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-20 10:43:07 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: +2025-06-20 10:43:08 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Konfiguration aktiviert +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: +2025-06-20 10:43:09 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-20 10:43:09 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: erstellt, aktualisiert +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP -Umgebung +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] 🏢 +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-20 10:43:09 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-20 10:43:09 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-20 10:43:09 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-20 10:43:09 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-20 10:43:09 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-20 10:43:09 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-20 10:43:09 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-20 10:43:09 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-20 10:43:09 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-20 10:43:09 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-20 10:43:09 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-20 10:43:09 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)... +2025-06-20 10:43:28 - [app] app - [WARNING] WARNING - [STARTUP] ⚠️ Keine der 6 Steckdosen konnte initialisiert werden +2025-06-20 10:43:28 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://: +2025-06-20 10:48:19 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-20 10:48:19 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-20 10:48:19 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: +2025-06-20 10:48:20 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Konfiguration aktiviert +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: +2025-06-20 10:48:21 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-20 10:48:21 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: erstellt, aktualisiert +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP -Umgebung +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] 🏢 +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-20 10:48:21 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-20 10:48:21 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-20 10:48:21 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-20 10:48:21 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-20 10:48:21 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-20 10:48:21 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-20 10:48:21 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-20 10:48:21 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-20 10:48:21 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-20 10:48:21 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-20 10:48:21 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-20 10:48:21 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)... +2025-06-20 10:48:28 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 10:48:28 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-20 10:48:39 - [app] app - [WARNING] WARNING - [STARTUP] ⚠️ Keine der 6 Steckdosen konnte initialisiert werden +2025-06-20 10:48:39 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://: diff --git a/backend/logs/calendar/calendar.log b/backend/logs/calendar/calendar.log index fdc575c1c..0dc2f110b 100644 --- a/backend/logs/calendar/calendar.log +++ b/backend/logs/calendar/calendar.log @@ -139,3 +139,4 @@ AttributeError: 'ConflictManager' object has no attribute 'detect_conflicts' 2025-06-20 10:27:59 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 2 Einträge für Zeitraum 2025-06-14 22:00:00+00:00 bis 2025-06-21 22:00:00+00:00 2025-06-20 10:28:28 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 2 Einträge für Zeitraum 2025-06-14 22:00:00+00:00 bis 2025-06-21 22:00:00+00:00 2025-06-20 10:31:22 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 2 Einträge für Zeitraum 2025-06-14 22:00:00+00:00 bis 2025-06-21 22:00:00+00:00 +2025-06-20 10:39:57 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 2 Einträge für Zeitraum 2025-06-14 22:00:00+00:00 bis 2025-06-21 22:00:00+00:00 diff --git a/backend/logs/core_system/core_system.log b/backend/logs/core_system/core_system.log index 3974415c5..f0c66f3ca 100644 --- a/backend/logs/core_system/core_system.log +++ b/backend/logs/core_system/core_system.log @@ -464,3 +464,19 @@ 2025-06-20 09:27:42 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) 2025-06-20 10:14:45 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert 2025-06-20 10:14:45 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-20 10:38:37 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-20 10:38:37 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-20 10:38:57 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-20 10:38:57 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-20 10:40:39 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-20 10:40:39 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-20 10:41:33 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-20 10:41:33 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-20 10:42:03 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-20 10:42:03 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-20 10:42:40 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-20 10:42:40 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-20 10:43:08 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-20 10:43:08 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-20 10:48:20 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-20 10:48:20 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) diff --git a/backend/logs/data_management/data_management.log b/backend/logs/data_management/data_management.log index a6e5df1e7..ec589c018 100644 --- a/backend/logs/data_management/data_management.log +++ b/backend/logs/data_management/data_management.log @@ -995,3 +995,19 @@ 2025-06-20 09:27:43 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-20 10:14:45 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert 2025-06-20 10:14:45 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:38:37 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-20 10:38:37 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:38:58 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-20 10:38:58 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:40:40 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-20 10:40:40 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:41:33 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-20 10:41:33 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:42:03 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-20 10:42:03 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:42:40 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-20 10:42:40 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:43:08 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-20 10:43:08 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:48:20 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-20 10:48:20 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) diff --git a/backend/logs/drucker_steuerung/drucker_steuerung.log b/backend/logs/drucker_steuerung/drucker_steuerung.log index 7f2da2fd1..165cec584 100644 --- a/backend/logs/drucker_steuerung/drucker_steuerung.log +++ b/backend/logs/drucker_steuerung/drucker_steuerung.log @@ -86,3 +86,11 @@ 2025-06-20 09:27:38 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen 2025-06-20 09:27:44 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen 2025-06-20 10:14:47 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen +2025-06-20 10:38:38 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen +2025-06-20 10:38:59 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen +2025-06-20 10:40:40 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen +2025-06-20 10:41:34 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen +2025-06-20 10:42:04 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen +2025-06-20 10:42:41 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen +2025-06-20 10:43:09 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen +2025-06-20 10:48:21 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen diff --git a/backend/logs/energy_monitoring/energy_monitoring.log b/backend/logs/energy_monitoring/energy_monitoring.log index 2b7788433..b6f38cecd 100644 --- a/backend/logs/energy_monitoring/energy_monitoring.log +++ b/backend/logs/energy_monitoring/energy_monitoring.log @@ -810,3 +810,12 @@ 2025-06-20 10:07:45 - [energy_monitoring] energy_monitoring - [INFO] INFO - 🔍 Gerätedetails für ID 1 aufgerufen von admin 2025-06-20 10:08:02 - [energy_monitoring] energy_monitoring - [INFO] INFO - 🔋 Energiemonitoring-Dashboard aufgerufen von admin 2025-06-20 10:14:47 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-20 10:38:38 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-20 10:38:59 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-20 10:40:40 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-20 10:41:34 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-20 10:41:53 - [energy_monitoring] energy_monitoring - [INFO] INFO - 🔋 Energiemonitoring-Dashboard aufgerufen von admin +2025-06-20 10:42:04 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-20 10:42:41 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-20 10:43:09 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-20 10:48:21 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert diff --git a/backend/logs/hardware_integration/hardware_integration.log b/backend/logs/hardware_integration/hardware_integration.log index 5bdc0c13f..e09ff2330 100644 --- a/backend/logs/hardware_integration/hardware_integration.log +++ b/backend/logs/hardware_integration/hardware_integration.log @@ -3787,3 +3787,22 @@ 2025-06-20 10:14:47 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE 2025-06-20 10:30:47 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ 192.168.0.100 ist über keine Methode erreichbar 2025-06-20 10:30:47 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Steckdose 192.168.0.100 ist im Netzwerk nicht erreichbar +2025-06-20 10:38:37 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 10:38:39 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE +2025-06-20 10:38:58 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 10:38:59 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE +2025-06-20 10:40:40 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 10:40:41 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE +2025-06-20 10:41:06 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 10:41:33 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 10:41:34 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE +2025-06-20 10:41:37 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 10:42:03 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 10:42:04 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE +2025-06-20 10:42:40 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 10:42:42 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE +2025-06-20 10:42:44 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 10:43:08 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 10:43:10 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE +2025-06-20 10:48:20 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 10:48:21 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE diff --git a/backend/logs/job_queue_system/job_queue_system.log b/backend/logs/job_queue_system/job_queue_system.log index 74e1849bd..9ef8a32ce 100644 --- a/backend/logs/job_queue_system/job_queue_system.log +++ b/backend/logs/job_queue_system/job_queue_system.log @@ -1917,3 +1917,42 @@ 2025-06-20 10:31:46 - [job_queue_system] job_queue_system - [ERROR] ERROR - Fehler bei Konflikt-Erkennung: 'Job' object has no attribute 'priority' 2025-06-20 10:35:22 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) 2025-06-20 10:35:22 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-20 10:38:37 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 10:38:37 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 10:38:39 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-20 10:38:58 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 10:38:58 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 10:38:59 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-20 10:39:35 - [job_queue_system] job_queue_system - [ERROR] ERROR - Fehler bei Konflikt-Erkennung: 'Job' object has no attribute 'priority' +2025-06-20 10:39:44 - [job_queue_system] job_queue_system - [ERROR] ERROR - Fehler bei Konflikt-Erkennung: 'Job' object has no attribute 'priority' +2025-06-20 10:39:44 - [job_queue_system] job_queue_system - [ERROR] ERROR - Fehler bei Konflikt-Erkennung: 'Job' object has no attribute 'priority' +2025-06-20 10:40:38 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-20 10:40:40 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 10:40:40 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 10:40:41 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-20 10:41:06 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 10:41:06 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 10:41:32 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-20 10:41:33 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 10:41:33 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 10:41:34 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-20 10:41:37 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 10:41:37 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 10:42:02 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-20 10:42:03 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 10:42:03 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 10:42:04 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-20 10:42:39 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-20 10:42:40 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 10:42:40 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 10:42:42 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-20 10:42:44 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 10:42:44 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 10:43:07 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-20 10:43:08 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 10:43:08 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 10:43:09 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-20 10:48:19 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-20 10:48:20 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 10:48:20 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 10:48:21 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) diff --git a/backend/logs/jobs/jobs.log b/backend/logs/jobs/jobs.log index 23b419b39..3e5092a38 100644 --- a/backend/logs/jobs/jobs.log +++ b/backend/logs/jobs/jobs.log @@ -1073,3 +1073,27 @@ sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) FOREIGN KEY constraint f 2025-06-20 10:34:00 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 2 von 2 (Seite 1) 2025-06-20 10:34:30 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) 2025-06-20 10:34:30 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 2 von 2 (Seite 1) +2025-06-20 10:39:23 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 10:39:23 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 2 von 2 (Seite 1) +2025-06-20 10:39:35 - [jobs] jobs - [INFO] INFO - 🚀 Neue Job-Erstellung gestartet von Benutzer 1 +2025-06-20 10:39:35 - [jobs] jobs - [ERROR] ERROR - ❌ Datenbankfehler beim Job-Erstellen: 'dict' object has no attribute 'severity' +2025-06-20 10:39:44 - [jobs] jobs - [INFO] INFO - 🚀 Neue Job-Erstellung gestartet von Benutzer 1 +2025-06-20 10:39:44 - [jobs] jobs - [INFO] INFO - 🚀 Neue Job-Erstellung gestartet von Benutzer 1 +2025-06-20 10:39:44 - [jobs] jobs - [ERROR] ERROR - ❌ Datenbankfehler beim Job-Erstellen: 'dict' object has no attribute 'severity' +2025-06-20 10:39:44 - [jobs] jobs - [ERROR] ERROR - ❌ Datenbankfehler beim Job-Erstellen: 'dict' object has no attribute 'severity' +2025-06-20 10:39:53 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 10:39:53 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 2 von 2 (Seite 1) +2025-06-20 10:40:23 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 10:40:23 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 2 von 2 (Seite 1) +2025-06-20 10:40:59 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 10:40:59 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 2 von 2 (Seite 1) +2025-06-20 10:41:24 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 10:41:24 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 2 von 2 (Seite 1) +2025-06-20 10:41:32 - [jobs] jobs - [INFO] INFO - 🗑️ Lösche Job 2 für Benutzer 1 +2025-06-20 10:41:32 - [jobs] jobs - [INFO] INFO - ✅ Job 'Gastauftrag: Till Tomczaktet' (ID: 2) erfolgreich gelöscht von Benutzer 1 +2025-06-20 10:41:32 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 10:41:32 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 1 von 1 (Seite 1) +2025-06-20 10:41:53 - [jobs] jobs - [INFO] INFO - 🗑️ Lösche Job 1 für Benutzer 1 +2025-06-20 10:41:53 - [jobs] jobs - [INFO] INFO - ✅ Job 'Gastauftrag: Till Tomczaktet' (ID: 1) erfolgreich gelöscht von Benutzer 1 +2025-06-20 10:41:53 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-20 10:41:53 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 0 von 0 (Seite 1) diff --git a/backend/logs/monitoring_analytics/monitoring_analytics.log b/backend/logs/monitoring_analytics/monitoring_analytics.log index 9bc55a717..359c44210 100644 --- a/backend/logs/monitoring_analytics/monitoring_analytics.log +++ b/backend/logs/monitoring_analytics/monitoring_analytics.log @@ -985,3 +985,19 @@ 2025-06-20 09:27:44 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-20 10:14:47 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert 2025-06-20 10:14:47 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:38:38 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-20 10:38:38 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:38:59 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-20 10:38:59 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:40:40 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-20 10:40:40 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:41:34 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-20 10:41:34 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:42:04 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-20 10:42:04 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:42:41 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-20 10:42:41 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:43:09 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-20 10:43:09 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:48:21 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-20 10:48:21 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) diff --git a/backend/logs/permissions/permissions.log b/backend/logs/permissions/permissions.log index e88b11d89..7b0b587ff 100644 --- a/backend/logs/permissions/permissions.log +++ b/backend/logs/permissions/permissions.log @@ -540,3 +540,11 @@ WHERE users.role = ?] 2025-06-20 10:20:20 - [permissions] permissions - [INFO] INFO - UserPermission für Admin-Benutzer 1 aktualisiert 2025-06-20 10:20:34 - [permissions] permissions - [INFO] INFO - UserPermission für Admin-Benutzer 1 aktualisiert 2025-06-20 10:20:34 - [permissions] permissions - [INFO] INFO - UserPermission für Admin-Benutzer 1 aktualisiert +2025-06-20 10:38:38 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-20 10:38:59 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-20 10:40:41 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-20 10:41:34 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-20 10:42:04 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-20 10:42:42 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-20 10:43:09 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-20 10:48:21 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert diff --git a/backend/logs/scheduler/scheduler.log b/backend/logs/scheduler/scheduler.log index 3cda9a2c5..c95c87c3e 100644 --- a/backend/logs/scheduler/scheduler.log +++ b/backend/logs/scheduler/scheduler.log @@ -4150,3 +4150,233 @@ 2025-06-20 10:35:18 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet 2025-06-20 10:35:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined 2025-06-20 10:35:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:38:37 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-20 10:38:39 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-20 10:38:39 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-20 10:38:39 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Systemstart... +2025-06-20 10:38:39 - [scheduler] scheduler - [INFO] INFO - 🔍 Prüfe 6 konfigurierte Steckdosen... +2025-06-20 10:38:39 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:38:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:38:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:38:39 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 10:38:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:38:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:38:42 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 1: Steckdose 192.168.0.100 nicht erreichbar +2025-06-20 10:38:45 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 2: Steckdose 192.168.0.101 nicht erreichbar +2025-06-20 10:38:48 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 3: Steckdose 192.168.0.102 nicht erreichbar +2025-06-20 10:38:51 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 4: Steckdose 192.168.0.103 nicht erreichbar +2025-06-20 10:38:54 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 5: Steckdose 192.168.0.104 nicht erreichbar +2025-06-20 10:38:57 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 6: Steckdose 192.168.0.106 nicht erreichbar +2025-06-20 10:38:57 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:38:57 - [scheduler] scheduler - [INFO] INFO - 🎯 STECKDOSEN-INITIALISIERUNG ABGESCHLOSSEN +2025-06-20 10:38:57 - [scheduler] scheduler - [INFO] INFO - 📊 Gesamt: 6 Steckdosen +2025-06-20 10:38:57 - [scheduler] scheduler - [INFO] INFO - ✅ Erfolgreich: 0 +2025-06-20 10:38:57 - [scheduler] scheduler - [INFO] INFO - 📡 Nicht erreichbar: 6 +2025-06-20 10:38:57 - [scheduler] scheduler - [INFO] INFO - ❌ Fehlgeschlagen: 0 +2025-06-20 10:38:57 - [scheduler] scheduler - [WARNING] WARNING - ⚠️ KEINE Steckdose konnte initialisiert werden! +2025-06-20 10:38:57 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:38:58 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-20 10:38:59 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-20 10:38:59 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-20 10:38:59 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:38:59 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Systemstart... +2025-06-20 10:38:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:38:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:38:59 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 10:38:59 - [scheduler] scheduler - [INFO] INFO - 🔍 Prüfe 6 konfigurierte Steckdosen... +2025-06-20 10:38:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:38:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:39:02 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 1: Steckdose 192.168.0.100 nicht erreichbar +2025-06-20 10:39:05 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 2: Steckdose 192.168.0.101 nicht erreichbar +2025-06-20 10:39:08 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 3: Steckdose 192.168.0.102 nicht erreichbar +2025-06-20 10:39:09 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:39:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:39:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:39:09 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 10:39:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:39:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:39:11 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 4: Steckdose 192.168.0.103 nicht erreichbar +2025-06-20 10:39:14 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 5: Steckdose 192.168.0.104 nicht erreichbar +2025-06-20 10:39:17 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 6: Steckdose 192.168.0.106 nicht erreichbar +2025-06-20 10:39:17 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:39:17 - [scheduler] scheduler - [INFO] INFO - 🎯 STECKDOSEN-INITIALISIERUNG ABGESCHLOSSEN +2025-06-20 10:39:17 - [scheduler] scheduler - [INFO] INFO - 📊 Gesamt: 6 Steckdosen +2025-06-20 10:39:17 - [scheduler] scheduler - [INFO] INFO - ✅ Erfolgreich: 0 +2025-06-20 10:39:17 - [scheduler] scheduler - [INFO] INFO - 📡 Nicht erreichbar: 6 +2025-06-20 10:39:17 - [scheduler] scheduler - [INFO] INFO - ❌ Fehlgeschlagen: 0 +2025-06-20 10:39:17 - [scheduler] scheduler - [WARNING] WARNING - ⚠️ KEINE Steckdose konnte initialisiert werden! +2025-06-20 10:39:17 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:39:29 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:39:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:39:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:39:29 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 10:39:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:39:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:39:39 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:39:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:39:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:39:39 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 10:39:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:39:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:39:59 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:39:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:39:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:39:59 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 10:39:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:39:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:40:09 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:40:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:40:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:40:09 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 10:40:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:40:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:40:29 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:40:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:40:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:40:29 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 10:40:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:40:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:40:39 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:40:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:40:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:40:39 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 10:40:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:40:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:40:40 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-20 10:40:41 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-20 10:40:41 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-20 10:40:41 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Systemstart... +2025-06-20 10:40:41 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:40:41 - [scheduler] scheduler - [INFO] INFO - 🔍 Prüfe 6 konfigurierte Steckdosen... +2025-06-20 10:40:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:40:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:40:41 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 10:40:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:40:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:40:44 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 1: Steckdose 192.168.0.100 nicht erreichbar +2025-06-20 10:40:47 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 2: Steckdose 192.168.0.101 nicht erreichbar +2025-06-20 10:40:50 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 3: Steckdose 192.168.0.102 nicht erreichbar +2025-06-20 10:40:53 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 4: Steckdose 192.168.0.103 nicht erreichbar +2025-06-20 10:40:56 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 5: Steckdose 192.168.0.104 nicht erreichbar +2025-06-20 10:40:59 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 6: Steckdose 192.168.0.106 nicht erreichbar +2025-06-20 10:40:59 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:40:59 - [scheduler] scheduler - [INFO] INFO - 🎯 STECKDOSEN-INITIALISIERUNG ABGESCHLOSSEN +2025-06-20 10:40:59 - [scheduler] scheduler - [INFO] INFO - 📊 Gesamt: 6 Steckdosen +2025-06-20 10:40:59 - [scheduler] scheduler - [INFO] INFO - ✅ Erfolgreich: 0 +2025-06-20 10:40:59 - [scheduler] scheduler - [INFO] INFO - 📡 Nicht erreichbar: 6 +2025-06-20 10:40:59 - [scheduler] scheduler - [INFO] INFO - ❌ Fehlgeschlagen: 0 +2025-06-20 10:40:59 - [scheduler] scheduler - [WARNING] WARNING - ⚠️ KEINE Steckdose konnte initialisiert werden! +2025-06-20 10:40:59 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:41:09 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:41:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:41:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:41:09 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 10:41:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:41:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:41:11 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:41:11 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:41:11 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:41:11 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: Gastauftrag: Till Tomczaktet +2025-06-20 10:41:11 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:41:11 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten +2025-06-20 10:41:33 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-20 10:41:34 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-20 10:41:34 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-20 10:41:34 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Systemstart... +2025-06-20 10:41:34 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:41:34 - [scheduler] scheduler - [INFO] INFO - 🔍 Prüfe 6 konfigurierte Steckdosen... +2025-06-20 10:41:34 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:41:34 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:41:37 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 1: Steckdose 192.168.0.100 nicht erreichbar +2025-06-20 10:41:39 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-20 10:41:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Steckdose für Drucker 2: name 'tapo_controller' is not defined +2025-06-20 10:41:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-20 10:41:40 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 2: Steckdose 192.168.0.101 nicht erreichbar +2025-06-20 10:41:43 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 3: Steckdose 192.168.0.102 nicht erreichbar +2025-06-20 10:41:46 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 4: Steckdose 192.168.0.103 nicht erreichbar +2025-06-20 10:41:49 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 5: Steckdose 192.168.0.104 nicht erreichbar +2025-06-20 10:41:52 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 6: Steckdose 192.168.0.106 nicht erreichbar +2025-06-20 10:41:52 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:41:52 - [scheduler] scheduler - [INFO] INFO - 🎯 STECKDOSEN-INITIALISIERUNG ABGESCHLOSSEN +2025-06-20 10:41:52 - [scheduler] scheduler - [INFO] INFO - 📊 Gesamt: 6 Steckdosen +2025-06-20 10:41:52 - [scheduler] scheduler - [INFO] INFO - ✅ Erfolgreich: 0 +2025-06-20 10:41:52 - [scheduler] scheduler - [INFO] INFO - 📡 Nicht erreichbar: 6 +2025-06-20 10:41:52 - [scheduler] scheduler - [INFO] INFO - ❌ Fehlgeschlagen: 0 +2025-06-20 10:41:52 - [scheduler] scheduler - [WARNING] WARNING - ⚠️ KEINE Steckdose konnte initialisiert werden! +2025-06-20 10:41:52 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:42:03 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-20 10:42:04 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-20 10:42:04 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-20 10:42:04 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Systemstart... +2025-06-20 10:42:04 - [scheduler] scheduler - [INFO] INFO - 🔍 Prüfe 6 konfigurierte Steckdosen... +2025-06-20 10:42:07 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 1: Steckdose 192.168.0.100 nicht erreichbar +2025-06-20 10:42:11 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 2: Steckdose 192.168.0.101 nicht erreichbar +2025-06-20 10:42:14 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 3: Steckdose 192.168.0.102 nicht erreichbar +2025-06-20 10:42:17 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 4: Steckdose 192.168.0.103 nicht erreichbar +2025-06-20 10:42:20 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 5: Steckdose 192.168.0.104 nicht erreichbar +2025-06-20 10:42:23 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 6: Steckdose 192.168.0.106 nicht erreichbar +2025-06-20 10:42:23 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:42:23 - [scheduler] scheduler - [INFO] INFO - 🎯 STECKDOSEN-INITIALISIERUNG ABGESCHLOSSEN +2025-06-20 10:42:23 - [scheduler] scheduler - [INFO] INFO - 📊 Gesamt: 6 Steckdosen +2025-06-20 10:42:23 - [scheduler] scheduler - [INFO] INFO - ✅ Erfolgreich: 0 +2025-06-20 10:42:23 - [scheduler] scheduler - [INFO] INFO - 📡 Nicht erreichbar: 6 +2025-06-20 10:42:23 - [scheduler] scheduler - [INFO] INFO - ❌ Fehlgeschlagen: 0 +2025-06-20 10:42:23 - [scheduler] scheduler - [WARNING] WARNING - ⚠️ KEINE Steckdose konnte initialisiert werden! +2025-06-20 10:42:23 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:42:40 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-20 10:42:42 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-20 10:42:42 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-20 10:42:42 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Systemstart... +2025-06-20 10:42:42 - [scheduler] scheduler - [INFO] INFO - 🔍 Prüfe 6 konfigurierte Steckdosen... +2025-06-20 10:42:45 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 1: Steckdose 192.168.0.100 nicht erreichbar +2025-06-20 10:42:48 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 2: Steckdose 192.168.0.101 nicht erreichbar +2025-06-20 10:42:51 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 3: Steckdose 192.168.0.102 nicht erreichbar +2025-06-20 10:42:54 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 4: Steckdose 192.168.0.103 nicht erreichbar +2025-06-20 10:42:57 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 5: Steckdose 192.168.0.104 nicht erreichbar +2025-06-20 10:43:00 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 6: Steckdose 192.168.0.106 nicht erreichbar +2025-06-20 10:43:00 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:43:00 - [scheduler] scheduler - [INFO] INFO - 🎯 STECKDOSEN-INITIALISIERUNG ABGESCHLOSSEN +2025-06-20 10:43:00 - [scheduler] scheduler - [INFO] INFO - 📊 Gesamt: 6 Steckdosen +2025-06-20 10:43:00 - [scheduler] scheduler - [INFO] INFO - ✅ Erfolgreich: 0 +2025-06-20 10:43:00 - [scheduler] scheduler - [INFO] INFO - 📡 Nicht erreichbar: 6 +2025-06-20 10:43:00 - [scheduler] scheduler - [INFO] INFO - ❌ Fehlgeschlagen: 0 +2025-06-20 10:43:00 - [scheduler] scheduler - [WARNING] WARNING - ⚠️ KEINE Steckdose konnte initialisiert werden! +2025-06-20 10:43:00 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:43:08 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-20 10:43:09 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-20 10:43:09 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-20 10:43:09 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Systemstart... +2025-06-20 10:43:10 - [scheduler] scheduler - [INFO] INFO - 🔍 Prüfe 6 konfigurierte Steckdosen... +2025-06-20 10:43:13 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 1: Steckdose 192.168.0.100 nicht erreichbar +2025-06-20 10:43:16 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 2: Steckdose 192.168.0.101 nicht erreichbar +2025-06-20 10:43:19 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 3: Steckdose 192.168.0.102 nicht erreichbar +2025-06-20 10:43:22 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 4: Steckdose 192.168.0.103 nicht erreichbar +2025-06-20 10:43:25 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 5: Steckdose 192.168.0.104 nicht erreichbar +2025-06-20 10:43:28 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 6: Steckdose 192.168.0.106 nicht erreichbar +2025-06-20 10:43:28 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:43:28 - [scheduler] scheduler - [INFO] INFO - 🎯 STECKDOSEN-INITIALISIERUNG ABGESCHLOSSEN +2025-06-20 10:43:28 - [scheduler] scheduler - [INFO] INFO - 📊 Gesamt: 6 Steckdosen +2025-06-20 10:43:28 - [scheduler] scheduler - [INFO] INFO - ✅ Erfolgreich: 0 +2025-06-20 10:43:28 - [scheduler] scheduler - [INFO] INFO - 📡 Nicht erreichbar: 6 +2025-06-20 10:43:28 - [scheduler] scheduler - [INFO] INFO - ❌ Fehlgeschlagen: 0 +2025-06-20 10:43:28 - [scheduler] scheduler - [WARNING] WARNING - ⚠️ KEINE Steckdose konnte initialisiert werden! +2025-06-20 10:43:28 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:48:20 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-20 10:48:21 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-20 10:48:21 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-20 10:48:21 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Systemstart... +2025-06-20 10:48:21 - [scheduler] scheduler - [INFO] INFO - 🔍 Prüfe 6 konfigurierte Steckdosen... +2025-06-20 10:48:24 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 1: Steckdose 192.168.0.100 nicht erreichbar +2025-06-20 10:48:27 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 2: Steckdose 192.168.0.101 nicht erreichbar +2025-06-20 10:48:30 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 3: Steckdose 192.168.0.102 nicht erreichbar +2025-06-20 10:48:33 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 4: Steckdose 192.168.0.103 nicht erreichbar +2025-06-20 10:48:36 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 5: Steckdose 192.168.0.104 nicht erreichbar +2025-06-20 10:48:39 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 6: Steckdose 192.168.0.106 nicht erreichbar +2025-06-20 10:48:39 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 10:48:39 - [scheduler] scheduler - [INFO] INFO - 🎯 STECKDOSEN-INITIALISIERUNG ABGESCHLOSSEN +2025-06-20 10:48:39 - [scheduler] scheduler - [INFO] INFO - 📊 Gesamt: 6 Steckdosen +2025-06-20 10:48:39 - [scheduler] scheduler - [INFO] INFO - ✅ Erfolgreich: 0 +2025-06-20 10:48:39 - [scheduler] scheduler - [INFO] INFO - 📡 Nicht erreichbar: 6 +2025-06-20 10:48:39 - [scheduler] scheduler - [INFO] INFO - ❌ Fehlgeschlagen: 0 +2025-06-20 10:48:39 - [scheduler] scheduler - [WARNING] WARNING - ⚠️ KEINE Steckdose konnte initialisiert werden! +2025-06-20 10:48:39 - [scheduler] scheduler - [INFO] INFO - ============================================================ diff --git a/backend/logs/security_suite/security_suite.log b/backend/logs/security_suite/security_suite.log index 1cde62ca4..8bc0e427c 100644 --- a/backend/logs/security_suite/security_suite.log +++ b/backend/logs/security_suite/security_suite.log @@ -1488,3 +1488,27 @@ 2025-06-20 10:14:45 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert 2025-06-20 10:14:45 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-20 10:14:47 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-20 10:38:37 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-20 10:38:37 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:38:38 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-20 10:38:58 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-20 10:38:58 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:38:59 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-20 10:40:40 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-20 10:40:40 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:40:40 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-20 10:41:33 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-20 10:41:33 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:41:34 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-20 10:42:03 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-20 10:42:03 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:42:04 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-20 10:42:40 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-20 10:42:40 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:42:41 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-20 10:43:08 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-20 10:43:08 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:43:09 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-20 10:48:20 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-20 10:48:20 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 10:48:21 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert diff --git a/backend/logs/startup/startup.log b/backend/logs/startup/startup.log index 966b539d4..5fac1a45f 100644 --- a/backend/logs/startup/startup.log +++ b/backend/logs/startup/startup.log @@ -3925,3 +3925,75 @@ 2025-06-20 10:14:47 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert 2025-06-20 10:14:47 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert 2025-06-20 10:14:47 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:38:38 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:38:38 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-20 10:38:38 - [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-20 10:38:38 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-20 10:38:38 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-20 10:38:38 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T10:38:38.623404 +2025-06-20 10:38:38 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-20 10:38:38 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-20 10:38:38 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:38:59 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:38:59 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-20 10:38:59 - [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-20 10:38:59 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-20 10:38:59 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-20 10:38:59 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T10:38:59.162325 +2025-06-20 10:38:59 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-20 10:38:59 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-20 10:38:59 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:40:40 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:40:40 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-20 10:40:40 - [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-20 10:40:40 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-20 10:40:40 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-20 10:40:40 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T10:40:40.916044 +2025-06-20 10:40:40 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-20 10:40:40 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-20 10:40:40 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:41:34 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:41:34 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-20 10:41:34 - [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-20 10:41:34 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-20 10:41:34 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-20 10:41:34 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T10:41:34.571538 +2025-06-20 10:41:34 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-20 10:41:34 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-20 10:41:34 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:42:04 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:42:04 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-20 10:42:04 - [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-20 10:42:04 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-20 10:42:04 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-20 10:42:04 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T10:42:04.649848 +2025-06-20 10:42:04 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-20 10:42:04 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-20 10:42:04 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:42:41 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:42:41 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-20 10:42:41 - [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-20 10:42:41 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-20 10:42:41 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-20 10:42:41 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T10:42:41.913164 +2025-06-20 10:42:41 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-20 10:42:41 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-20 10:42:41 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:43:09 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:43:09 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-20 10:43:09 - [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-20 10:43:09 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-20 10:43:09 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-20 10:43:09 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T10:43:09.634440 +2025-06-20 10:43:09 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-20 10:43:09 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-20 10:43:09 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:48:21 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 10:48:21 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-20 10:48: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-20 10:48:21 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-20 10:48:21 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-20 10:48:21 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T10:48:21.136178 +2025-06-20 10:48:21 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-20 10:48:21 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-20 10:48:21 - [startup] startup - [INFO] INFO - ================================================== diff --git a/backend/logs/utilities_collection/utilities_collection.log b/backend/logs/utilities_collection/utilities_collection.log index e8fae5e13..a69ccca7e 100644 --- a/backend/logs/utilities_collection/utilities_collection.log +++ b/backend/logs/utilities_collection/utilities_collection.log @@ -1281,3 +1281,27 @@ 2025-06-20 09:27:42 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) 2025-06-20 10:14:45 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert 2025-06-20 10:14:45 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 10:38:37 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 10:38:37 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 10:38:58 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 10:38:58 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 10:40:39 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 10:40:39 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 10:41:06 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 10:41:06 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 10:41:33 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 10:41:33 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 10:41:37 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 10:41:37 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 10:42:03 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 10:42:03 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 10:42:40 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 10:42:40 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 10:42:44 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 10:42:44 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 10:43:08 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 10:43:08 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 10:48:20 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 10:48:20 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 10:48:28 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 10:48:28 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) diff --git a/backend/logs/windows_fixes/windows_fixes.log b/backend/logs/windows_fixes/windows_fixes.log index 1a4ac60cc..b76358d65 100644 --- a/backend/logs/windows_fixes/windows_fixes.log +++ b/backend/logs/windows_fixes/windows_fixes.log @@ -467,3 +467,19 @@ 2025-06-20 09:27:42 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet 2025-06-20 10:14:45 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... 2025-06-20 10:14:45 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-20 10:38:37 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-20 10:38:37 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-20 10:38:57 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-20 10:38:57 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-20 10:40:39 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-20 10:40:39 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-20 10:41:33 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-20 10:41:33 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-20 10:42:03 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-20 10:42:03 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-20 10:42:40 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-20 10:42:40 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-20 10:43:08 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-20 10:43:08 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-20 10:48:20 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-20 10:48:20 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet diff --git a/backend/templates/energy_dashboard.html b/backend/templates/energy_dashboard.html index c950e6140..ef624df5e 100644 --- a/backend/templates/energy_dashboard.html +++ b/backend/templates/energy_dashboard.html @@ -448,42 +448,69 @@ function initializeCharts() { async function loadEnergyData() { try { - const response = await fetch('/api/energy/overview'); + const response = await fetch('/api/energy/dashboard'); if (response.ok) { - const data = await response.json(); - updateEnergyMetrics(data); + const result = await response.json(); + if (result.success && result.data) { + updateEnergyMetrics(result.data); + } else { + console.error('Fehler in API-Response:', result.error || 'Unbekannter Fehler'); + // Status-Indikator auf offline setzen + const liveIndicator = document.getElementById('live-indicator'); + if (liveIndicator) { + liveIndicator.className = 'w-2 h-2 status-indicator-offline rounded-full'; + } + } } } catch (error) { console.error('Fehler beim Laden der Energiedaten:', error); + // Status-Indikator auf offline setzen + const liveIndicator = document.getElementById('live-indicator'); + if (liveIndicator) { + liveIndicator.className = 'w-2 h-2 status-indicator-offline rounded-full'; + } } } async function loadDeviceList() { try { - const response = await fetch('/api/energy/devices'); + const response = await fetch('/api/energy/dashboard'); if (response.ok) { - const data = await response.json(); - updateDeviceTable(data.devices || []); + const result = await response.json(); + if (result.success && result.data && result.data.devices) { + updateDeviceTable(result.data.devices); + } else { + console.error('Fehler beim Laden der Geräteliste:', result.error || 'Keine Gerätedaten verfügbar'); + updateDeviceTable([]); // Leere Liste anzeigen + } } } catch (error) { console.error('Fehler beim Laden der Geräteliste:', error); + updateDeviceTable([]); // Leere Liste anzeigen } } function updateEnergyMetrics(data) { - if (data.total_power_consumption !== undefined) { - document.getElementById('total-power').textContent = data.total_power_consumption.toFixed(1) + ' kWh'; + // Dashboard-Datenstruktur verwenden + if (data.energy_totals && data.energy_totals.today_total !== undefined) { + document.getElementById('total-power').textContent = data.energy_totals.today_total.toFixed(1) + ' kWh'; } - if (data.current_power !== undefined) { - document.getElementById('current-power').textContent = data.current_power.toFixed(1) + ' W'; + if (data.current_consumption && data.current_consumption.total_power !== undefined) { + document.getElementById('current-power').textContent = data.current_consumption.total_power.toFixed(1) + ' W'; } - if (data.active_devices !== undefined) { - document.getElementById('active-devices').textContent = data.active_devices; + if (data.overview && data.overview.online_devices !== undefined) { + document.getElementById('active-devices').textContent = data.overview.online_devices; } - if (data.total_power_consumption !== undefined) { - const cost = (data.total_power_consumption * 0.30).toFixed(2); + if (data.energy_totals && data.energy_totals.today_total !== undefined) { + const cost = (data.energy_totals.today_total * 0.30).toFixed(2); document.getElementById('energy-cost').textContent = cost + ' €'; } + + // Status-Indikator auf online setzen wenn Daten erfolgreich geladen + const liveIndicator = document.getElementById('live-indicator'); + if (liveIndicator) { + liveIndicator.className = 'w-2 h-2 status-indicator-online rounded-full animate-pulse'; + } } function updateDeviceTable(devices) { @@ -513,7 +540,7 @@ function updateDeviceTable(devices) { const row = document.createElement('tr'); row.className = 'hover:bg-slate-50 dark:hover:bg-slate-700 transition-colors duration-200'; - const isOnline = device.status === 'online'; + const isOnline = device.online === true; const statusClass = isOnline ? 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400' : 'bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400'; diff --git a/backend/utils/__pycache__/__init__.cpython-311.pyc b/backend/utils/__pycache__/__init__.cpython-311.pyc index cdc286559901eaee923d2a1c14b978267839800b..3f2def41506cf8ac4b36a8f3f6a8dd585892c975 100644 GIT binary patch delta 54 zcmeBS+Q!JeoR^o20SIcBT2JIQk^kkXpPN^rpR6BRoLW?@9}?p4>m22%=j!X~sPB?m IHgQV?0G-GXegFUf delta 150 zcmdnS*u%uVoR^o20SM&Zx=rLZssB0$$ktCz%FNSuHV8JB) v^HSo2lQT+lQuRGOymcLuijy;PN{fpNiVp8d0~r)hl%JKFU6NQdF~bi4Yd$q! diff --git a/backend/utils/__pycache__/database_cleanup.cpython-311.pyc b/backend/utils/__pycache__/database_cleanup.cpython-311.pyc index e9263936836dc9d107c7c69b6d2ef16116a875e7..af02444b57b019a0d485ea84ee68a4b827d8502c 100644 GIT binary patch delta 59 zcmZ3fc3G8oIWI340}!0N;FYm!Bkx>h`Cozhxp^h}$@-zisYS*5AtC<0&QXqfuD-60 N`Yx$uo8?)!_yI%Z5|RJ_ delta 154 zcmcbtx>AjIIWI340}zNydS|3>U(;4>pCVCCuii878e&39o~}$GAN)ZKPxr6B(Z4mWoCW=LytDH diff --git a/backend/utils/__pycache__/hardware_integration.cpython-311.pyc b/backend/utils/__pycache__/hardware_integration.cpython-311.pyc index 160b4fcbb543a8f84d71bd86c5896cdd7c6e3b2d..afb00b853da4da6768bfc689aa2846d5ff095d5c 100644 GIT binary patch delta 11553 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 diff --git a/backend/utils/__pycache__/hardware_integration.cpython-313.pyc b/backend/utils/__pycache__/hardware_integration.cpython-313.pyc index ad1324241843cbf2dbc6629ea761608cacb6bbef..9a4fa9489dbd7bd21b9657810e524dc7e878ac23 100644 GIT binary patch delta 5128 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 delta 1705 zcma)+ZBSHY6vy}M%LVreVuA6_ZF$iPqBN*Xgo!kY1hcFy1UBSl+1(a!Wt(T0l!aK> zbxewE#*;ZCeX1{nAF{cmVG(JiIT2YlG~F4RF`a2_dLw5XKRDHME;Q0qPCIjdbMF7V zJ?D9zz0o1#`RkB)BO$?R;J#5ptglgXdd7QrdBByO-evlbIGoc|S(y%>?{ z%wbu+`{V+(T`0|iu=;8tK&FqDXlPX`7YuIuO7)+q(uWg8G3dk1YiDh}++k-?P8Q<` z8aX71ts&tc;W^w`EWshXxVGBH21&VV@KkXw98#|qr^3cz3VxArnD7!|1BWcICbE(6 z@?R=DO4ch_vc4^851D>~ov>GZZN1Y9C-CNjmC&!2m45>;gexn;S;x3r6C6E`2TDp< zI>lxXP7~h2(TXj?7?~&3pDMmL3CFput--qbZ1q;RiOaCBhdR+RE-whd;Q^9bjH1*b@wS_p(`heMe!E-tbF`yG)qHxgA9? zp)RZW3gE2z?V~Xe^hwX6uP(}!AL?q2@QJ#qUIZA$Du>&AmFMA=lvV1KW6}aDKKpoH zy^IBz;tqJcdRuLo$NNl&+p7e+wzF{xtD-Q| zwi>%;+S=%BU||w_IKm0iHcFNr;mPF^Z=xR(dz1URQ#s0|S}#gXDPljRyiGWTl}%-E z8uvFf%KC=okvc)hC!8Vt<2Y_Mt*)LV&-;Wa4%y09ldbO=jm@$M9}v!QXyW1+9bHca z*l#57B7CTNnj;qY6t6wGe~Z3=yB-#E@+3KKNv}+*vT#W1$nJ+g-5vPIB>qgQO85nf zgM~1T%|TD|odI*n^{=y$<2{0dK<)HRd}C?P-%0(0pig=ZlS2;+yZ9Lf&A2Z7y!u_p zZO&M-1d0UUsNhxu8^_k3hRy$XG4E3L-xtG-INwtS2UIz{9KeE`dP@r8czqc(p&{V& z`Mol*G@d7eU54uxvP^cnUCzegUSDLCDvl6p2`dQ43HqN!KYP93PSPGD#B*qtQ1{dP zs@@{uHo-(A#dByWiV_UDLLF|!6$-JAw(gKOs3;4cmm&()KSIf5B^!7#(t z=gZX<{SJUAwnp-WRlMA|5nqTL)=d`0oPpe&G_HQk_xFa#69){}MCr0jsk=SaKRGEgPv6-f*ibh)wJ0w&2go+^G17NQ zEJ@8QOD!r-%qc0&OV`g!ttd&($uCXOPtGq&)lbXJNiEhlj(18eDou-bEGYDGzMPJU^MesX?Ms(xB#PHM5falBJ%QE6JdV`*_x zW=;xFU3_U?N_=o~Mrlr}zNd$`u47Vhaz;*RadAP>;XP>}g93{3vr@B55{ou-viUjz E0Ml?>Ar52T@#XFW3CuQcO0M*5p x=B303CufxAr0RQmc Dict[str, Any]: + """ + Sammelt Energiestatistiken für alle Drucker für das Energiedashboard. + + Returns: + Dict: Umfassende Energiestatistiken mit allen erforderlichen Daten + """ + hardware_logger.debug("📊 Sammle Energiestatistiken für alle Drucker") + + try: + with get_db_session() as session: + drucker_liste = session.query(Printer).all() + + device_data = [] + total_current_power = 0.0 + total_today_energy = 0.0 + total_month_energy = 0.0 + online_count = 0 + + for drucker in drucker_liste: + # Aktuellen Status prüfen + is_online = False + current_power = 0.0 + + if drucker.plug_ip: + # Status über Steckdose prüfen + reachable, status = self.check_outlet_status(drucker.plug_ip, drucker.id) + is_online = reachable and status == 'on' + + if is_online: + # Mock-Energiedaten für online Drucker + current_power = 125.5 # Simulierter Verbrauch + online_count += 1 + total_current_power += current_power + total_today_energy += 2.4 + total_month_energy += 45.8 + + device_info = { + 'id': drucker.id, + 'name': drucker.name, + 'model': drucker.model or 'Unbekannt', + 'location': drucker.location or 'TBA Marienfelde', + 'online': is_online, + 'current_power': current_power, + 'today_energy': 2.4 if is_online else 0.0, + 'month_energy': 45.8, + 'past24h': 2.4 if is_online else 0.0, + 'past30d': 45.8, + 'past1y': 547.6, + 'voltage': 230.0 if is_online else 0.0, + 'current': current_power / 230.0 if current_power > 0 else 0.0, + 'ip': drucker.plug_ip + } + + device_data.append(device_info) + + # Berechne Durchschnittswerte + avg_current_power = total_current_power / len(drucker_liste) if drucker_liste else 0.0 + avg_today_energy = total_today_energy / len(drucker_liste) if drucker_liste else 0.0 + avg_month_energy = total_month_energy / len(drucker_liste) if drucker_liste else 0.0 + + # Mock-Zeitreihen-Daten für Charts + hourly_consumption = [round(125.5 + (i % 3) * 25.2, 1) for i in range(24)] + daily_consumption = [round(2.4 + (i % 5) * 0.5, 1) for i in range(30)] + monthly_consumption = [round(45.8 + (i % 3) * 15.2, 1) for i in range(12)] + + statistiken = { + 'total_devices': len(drucker_liste), + 'online_devices': online_count, + 'offline_devices': len(drucker_liste) - online_count, + 'total_current_power': round(total_current_power, 2), + 'avg_current_power': round(avg_current_power, 2), + 'total_today_energy': round(total_today_energy, 1), + 'total_month_energy': round(total_month_energy, 1), + 'avg_today_energy': round(avg_today_energy, 1), + 'avg_month_energy': round(avg_month_energy, 1), + 'hourly_consumption': hourly_consumption, + 'daily_consumption': daily_consumption, + 'monthly_consumption': monthly_consumption, + 'devices': device_data, + 'timestamp': datetime.now().isoformat() + } + + hardware_logger.info(f"✅ Energiestatistiken erstellt: {online_count}/{len(drucker_liste)} Drucker online") + + return statistiken + + except Exception as e: + hardware_logger.error(f"❌ Fehler beim Sammeln der Energiestatistiken: {e}") + return { + 'total_devices': 0, + 'online_devices': 0, + 'offline_devices': 0, + 'total_current_power': 0.0, + 'avg_current_power': 0.0, + 'total_today_energy': 0.0, + 'total_month_energy': 0.0, + 'avg_today_energy': 0.0, + 'avg_month_energy': 0.0, + 'hourly_consumption': [0.0] * 24, + 'daily_consumption': [0.0] * 30, + 'monthly_consumption': [0.0] * 12, + 'devices': [], + 'timestamp': datetime.now().isoformat(), + 'error': str(e) + } + def turn_off(self, ip: str, username: str = None, password: str = None, printer_id: int = None) -> bool: """ Schaltet eine Tapo-Steckdose aus.