From 173d8e83d5dc0e35b1d39fd2a81fb82ccb656aa5 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Fri, 13 Jun 2025 12:36:46 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Refactor=20Backend=20Database=20?= =?UTF-8?q?Files=20&=20Add=20Session=20Logs=20=F0=9F=93=9A=F0=9F=92=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/__pycache__/models.cpython-313.pyc | Bin 89103 -> 92387 bytes backend/app.py | 9 ++ backend/backend/database/myp.db | Bin 106496 -> 4096 bytes backend/backend/database/myp.db-shm | Bin 32768 -> 32768 bytes backend/backend/database/myp.db-wal | Bin 4152 -> 263712 bytes backend/database/myp.db | Bin 135168 -> 0 bytes ...a5a78ba604567b2a12675f988faf4_activity.pkl | Bin 0 -> 60 bytes ...df5e1f3fd16930ed9c4e0cdf5fc72_activity.pkl | Bin 0 -> 60 bytes ...8ad194ad9e562fc272b843435bc8b_activity.pkl | Bin 0 -> 60 bytes ...59cb20c401c31849431753f2891e2_activity.pkl | Bin 0 -> 60 bytes ...0c0a37d1fdcbf6351eb312a33efd7_activity.pkl | Bin 0 -> 60 bytes ...7f22e216f9bdf93126d51571238fe_activity.pkl | Bin 0 -> 60 bytes ...8e18379c0e6b619197fc719fd36bd_activity.pkl | Bin 0 -> 60 bytes ...f2a360ca5095f66ac6203efdfcfa0_activity.pkl | Bin 0 -> 60 bytes ...3ba16da6a7e82703598d383bba0f5_activity.pkl | Bin 0 -> 60 bytes ...72e14f2473ce74f45a93d394d6eda_activity.pkl | Bin 0 -> 60 bytes ...809d542443e2fbab1cf418d850501_activity.pkl | Bin 0 -> 60 bytes ...4a6d22a257780ac03c2286cdcbf22_activity.pkl | Bin 0 -> 60 bytes backend/logs/app/app.log | 144 ++++++++++++++++++ backend/logs/auth/auth.log | 2 + backend/logs/core_system/core_system.log | 4 + .../logs/data_management/data_management.log | 4 + .../energy_monitoring/energy_monitoring.log | 2 + .../hardware_integration.log | 8 + .../job_queue_system/job_queue_system.log | 8 + .../monitoring_analytics.log | 4 + backend/logs/permissions/permissions.log | 2 + backend/logs/scheduler/scheduler.log | 19 +++ .../logs/security_suite/security_suite.log | 6 + backend/logs/startup/startup.log | 18 +++ backend/logs/tapo_control/tapo_control.log | 8 + .../logs/tapo_controller/tapo_controller.log | 26 ++++ .../tapo_status_manager.log | 2 + .../utilities_collection.log | 12 ++ backend/logs/windows_fixes/windows_fixes.log | 4 + backend/models.py | 120 ++++++++++++++- 36 files changed, 401 insertions(+), 1 deletion(-) delete mode 100644 backend/database/myp.db create mode 100644 backend/instance/sessions/067a5a78ba604567b2a12675f988faf4_activity.pkl create mode 100644 backend/instance/sessions/0aedf5e1f3fd16930ed9c4e0cdf5fc72_activity.pkl create mode 100644 backend/instance/sessions/22e8ad194ad9e562fc272b843435bc8b_activity.pkl create mode 100644 backend/instance/sessions/2ff59cb20c401c31849431753f2891e2_activity.pkl create mode 100644 backend/instance/sessions/3730c0a37d1fdcbf6351eb312a33efd7_activity.pkl create mode 100644 backend/instance/sessions/3d07f22e216f9bdf93126d51571238fe_activity.pkl create mode 100644 backend/instance/sessions/6d58e18379c0e6b619197fc719fd36bd_activity.pkl create mode 100644 backend/instance/sessions/a13f2a360ca5095f66ac6203efdfcfa0_activity.pkl create mode 100644 backend/instance/sessions/cac3ba16da6a7e82703598d383bba0f5_activity.pkl create mode 100644 backend/instance/sessions/ccd72e14f2473ce74f45a93d394d6eda_activity.pkl create mode 100644 backend/instance/sessions/e3b809d542443e2fbab1cf418d850501_activity.pkl create mode 100644 backend/instance/sessions/f854a6d22a257780ac03c2286cdcbf22_activity.pkl diff --git a/backend/__pycache__/models.cpython-313.pyc b/backend/__pycache__/models.cpython-313.pyc index 598007797facbfac39a7c24a0480ba700eefebdc..af87d61492e6694b5dec244e400fe848fe8f9197 100644 GIT binary patch delta 15517 zcmch834B}CmA9@Wud-|>k=Hn}9A{IAoqZ>Zv)D07oJ9#vNrECNh&86aA~4jq#1f38LsK=R$PJ zYn)d(7jbKgbCq()R5fAb)~&Q)Irm-bTv2Y2uC1;yhFRc&{^WLNJ@vVjUz-{&{x-ux zQ>CFzI9A6;oBv%1o060HXlY5S^t!`dmoMN8``mt4r}PEFUKxu2EYq4P7AP;|`NgvM zRO>AnVyV(S{3@|rF^)JTmMO1|m?ah|!d593D^<2xG}>$%CEDW=+wB<>t_1ZF1k~&{ zZ@6_wFyNJo(6<JHYn{=sTnb)e1gZ-K{&ku3g@}@}RP(Y9ei-tI8r4 z1TY~tF&Ym0iR2+*ISlZ90)tWIgp#OaEdJq`JH+(6G4URN9{>QKLokkkqR2_HAn%Jm zGuh0Fx#_%tcYx%4FG z#w#YQ5X|xZA6y|&<);5u`h7F+wb#08#{u8T@!)qQXZVRfP`~);`3tj%|I;y za5(Z-09LFJT44a~nAC#wW4_Fh&B2;E@r#qL5~F~fnEeO(XMm{WY)qN0xF?Sx?LRxw z7Qc7$f0`yWQ1AKu1da>&2--FRsyPz!%Hu-K@_5_a5r6o&Q9h|WK6Q+EQh9S~xbc^m zlO4R?EB)@ykgTCc63Z{pn?)=AzED`6q$gQRfYxG!JJjq>cPO+wC_VB3^))Hi%_xpP zG;OpP-bIh9(dTiPRWo5|lg}%^n_f-!`1$lO@f(=&@Z=Y13LW7~K=x~Zm$4>`)US0{ z=WZJL4LY9(_^nbmvy2vRnb}T@PrkEQG0qy1hw-FDl&V>CGM8iSJIb}QJ}&E{ro*VA zcn9;01fU8^+w6ICZbxUA84LZGkAd@lqd&Pzd3Ej_@f$_VD_mP`>#x>|jbv1Uji^To>`my=rEg z&rfEi(FAohqs=EtO@P;tshV2-Aa7tVwuP2 z#+I67Hmz}FYnx1wmO0cba{+kc7PK^SG7s%S00CeHV9UCcOtd~KMzScoh?a(G(7BbZ zY^Ec*Ze_hG^Igp7SAMl>#cuG;!FP$AoxWd9G>vByBp@i~$4V0IC7T z0t_Njxb|)<#7!#7y!={ua_z<_@5>4V5UD0ywhaAL^D*!-KmhUW32E{ZC?>wV$9@=FZ-6##mmnp%88wJ^NH+u?O7H?4cI8LX?;KrrlU^R>Fe z6p})k2YUn4%`L&8U!F!YyHf@`y^>J!zW)G}=K($f=m)p}@Mi$Ca%6pRc|LHPD16G{ zV7UZfJiuh-jrAifcVQ+g;nMh@)?YM|bo)2XH8wwtemJ&z`6!xC5g@@mg7!ZGJVrpx z3bwWReH7B4K-W(JCUSowd5}Lx*FOOqAkZpebyI{bt~CEiSiz&iqA9~U<(_XXp2{L- z>&avJu~+hX-%%sf&_t4le@3$w0O<*b>sL0jD|88Wit!PiMAM zr!0(Dkqq1#a<;v%2x-iJ$|M|_=^^cAVC0a-1P4Y=<%`g>(bOq4IVOEmDR7m@;N}cLgkqvpP1R59x{j*z2=1wCtH8vcUo!?Q6=?y=zx;!jY4%{D(mO zFu?Z#6ad!y%e(V;_8y6{=E4s&IYxZ#qtI!wAemqR;TRC%nZ7Q$p~T{#70PG(yyR-O zefy+X3Q^P_r(_?P9sz)t;V63kk93S2Rb>Y@2K$$OwBU2dv9P;25Z`j+ULjsne)pXT zURI4YG)2utBIk0qdnuITXp^z?{*;J*gw_K9KL$uGl}GT%>cGB0rPc5%hQuw+thl2; zv~xt1m&Xwwx&KwseED%gNH?Z`17}&9C4J@GP!<@_{^*9V;O{*8Av(-W^ye5o)JdvY zE|(|R>T(SkgVK(VWy5hPofjgWE}*%()#xYAL5Bko8^_;6lIdCyzxun`Fa+04|5}A} z)dEeu9!<2|v=eK!sG;0&^G_!6`RKXoI1C>Hxb%Eh-?B-U&gE46L9Cq)V8QMsGIrx`c>mn`AxKQpEFYrmWJbFec8tu#6L@?QAWf7;N{Tlg=qiJ*tHTB++%B*nACKqXahGu{pG*p|!>XEhhJpb# z!xQPCtNI*>Bu9DfF55D`8S%k!7(rB2O>U2e3lokU%?#ox4u3{1H7~JE7jVjmQgRR_ zvo!}lk81wQK9ttWp$=CI!r+D(W<6)Y*wB|Ioixi}VX;o6gf&wRr4PCR{0jR>R}ba$ zL+@%efLg`kDT`k?yxrvEXwX1RBrXp~;5BQ2E2M+=20V!O0m67O3vs>H=h3|3BOt;q zaTgZBoV0tz1U%k{M~*{qnDRjUii~QQ3C?w#}R}j7|?qDYWuMEPDxn^DABDG<+C%8Q>LwQvk05 z>{b5ylhUl$(Y$C-Dju#FeH!f;HZf#6w(CdDMiy(UP!3PC#n1fsHX&YAyhm5Ga_#12 ztb7Fk>8yN}02PzMovv1@m+1vo&0@M}G*Q}7b13AJh|LN% zlQ662v4VXq-@MsYhB6cQ6?uT1a9O`KfJ^fhr__Lb2 zg_J5;7O#5ZIT2+`v}l$%)TI^}NadMzVhq&D_0qNLl7yaF6d2D-+^u;PXZC6aw+B_l zu=Aq$_MeV56{hX(BjxU&EsoB?&Tyc~c1=P#T5`W|^5$2p)>vprOp_61tQnw&oet$qML z{!h@l2+)N+^X|W5O0-^%-=F}!ISHXkc4*z$)$5NU_|U~ zz$w)_D0g5zU~}LtFsIDWT(G7)sSogYiEHBPCr&~go_HJKQr>#8x>#p%pl6Eby>wDU zucqmavER%grJRa(Vl2g>JdkcqnlFKjVNPmc$~={ZS4tan_rigDIp%>=$y!l|$1ebc zkw7*;0l+1G=O?e+hvLbSSFbjIi~UXmAxZch&hfNJ9tsCLI}?QyHPat#r-RY1@w-4p z58p&YyX9yx`~W>BtAVE151I48cas({&M8OUY!K^|58r&y3V%Y0AMbvKa_?Kw;ZLKd za$tm39H*;Co}+F_Z&?kp3}7Sx=Ys1*Y)OHrP;NV2Fl;P(Q|?X95X!OB_HFVC>Q+ne z7L3ZP?UG&!x+oWHrHdBbwzP70h8C*?Hf1EB4r`4_Ni!%%#mh-#GbZXESd{=r=D7WL zO9w^r8{S?fqBk)f>?B(&`W@dACey zR>#t`8`Q@}@;Gp&XVh|%vf|ywRInJJM#CE0orcrnV=zD%3QB8DcF=J3cg^^5El1F+)tLdEPzrse{KAj<5dYPLtTB zsGqLhuCY=eM`I1EV=K*-=KxqL6ESdEekw8Ag2^ehO*^Jr{`7%yO+w_B0f^Wp(ssv) z^i<{?@NzOc=;W0Xe|aqvV~IDL4}9J#*8Wc=S;l37ws7u}D9Lg!d~Yg)V{@X*^V%

GIt6#XnkXScCwOAUEa9&0+^Go?rD+lLN*j2_yG1Icp+eWO7>ZSxm)g_J!mOukH4bkENcXH6w7I7v20 z_{OG zkCEx(WYuR$t^~3!kms1dsU&-W6W~`55iNrSlBk7F)wT#6oKt4wqk#=8XX9NpJW1LSZ$D<=w6k zqS92yY43pRHZoor1E)xU)yxnlSK0+U?e0AuQxA003&Qax$AHup*%cK4wJ+;j0XO9Y zEbRM%bxkb4Tud8Qh&ef2?B@x)W9!Pr9PK__G%)W44ItDm*yr%5Bjen64MuOlR&NEk z4d8YF(9m88>_+PV`tAU@69BF^y)4B-HFsM^ikMimoF+7Bw3(ugb0~`GB)ZR52#^@4_OJnTz!@6F7zUi1?R)y%Jy zQxQW8=6Vc9_)XTEc_kAUI9yy;H1;j6k#OwaCWwME_QF~@A;Eg$tH{{2iDE=IeS-MB zxeUZmeaA(}r5bm*nq&-H+8O(DvRLr7HHpH%*BW@MhvCrp-`LVfkMRoKMAVU;$*auWn(n4$6 z31MUOfh5N^)?;L}930f_b{V9&M|COQDW3?AQ5ON#s;+Nm!&5VSp=;<>1UZyex1TxxgT7yC9_Gk0Dsz6i*y_Xr(bAd$m_B3cmV(XR&`!GJQOj@O>9ofqN zS|a8Ne)U23{O{6Ky!zumhd5tKGbzxW1crM_esohs&~r@rW-*Ur6(0geKR&EMMV6>R zYAzUO#4m#{>oqwH4&@$I!2YEkQjxIpNf0+&N6dr#8 za7m1MZ>b1UMYwzY3bDp4+G9r=MdkF3Sd{wITC2OIydep29>zBl2oX+_J;}YlQS1?Q zTpETu*FL14ffj&`*x>5me#84_%gv42Ct{yr_<4YH03Q-iw#SRRpIs$xH^*LW`Y^c%-T$6mNT25vlGub&Rl-ZO*~tidHkH0c(yw8`8hxFT;MF^=R)myN@la!*KplQjzqC_9WknAf?^dUqf`$`ghxye3f zDPgxHpSHkO`A@0x*_0kF8a$4^!U%99M{8=NDl&D)@M#f*$u z2_e`GYkq4mYynjbLvl-r*{SWAo!S=6PK|A|lUa3^rdU$!z9Mjxb4gFGbJVkx3-<+!gdOvDfbp+dV$7 z9bZNI@MT=UzFbCHcabT#y>L?6*Pt>=$p|cbpMB%fI{O;8^mzkqUcbj%o144bN2MHl zeI&38FO%%_0}>6VI}&aW(&x~?$pm%<18u(c2(6V=??@4$pM%)jytF7_Z(LVX=RrBv z8_10WJa%W;9q!0AZ`2mMkJ+UkIq<5yzwt+X54d)&d|N=~Si<@W_mPIngB3vjz{%)ECVjJThBLj+jAabqFpu%3Y*y`-+pu2MTY#T|Q6R zs0s%qqUWMCPhM`b1HRYA{d(WHTjtyMMJ=f#o^0P|wGZSpvW(F7A5reK*ZKY4Buab8M>@uel~gqQgtP;m zU>~Tp5!5I8kKAzxn!41>iZ$P^sYo=TBQ?{e&bCiVw|IRW_Jr+u15@gBg(MrGH?u>S;(U9(qa^Vm3N#49(gG)ooB}6hG?zO>P5S!9 zgG(G~AyvOrwE(pqS98paXvjn#oIyhvtVPE18Y$p@Lw~uU zC~EI3cl4Dy`ids?m5lEzuKdKBm6O{)+)(uYXCOKhb*GqClDU6vf18+ca zw7IWh)NN}Rygz2zq5QMelOA5!weYEux2os8UA?5YddV5v$hU3ddu`*7)t;#6omAgz ztG{3}jvfBt@RGyhlnMPAhGA8I&NkS_o}E1Z#O&V5OM7f%Pe*NzzNw2&?CYI+6&`Ih zeKiYCH1yUi=ch@1Qx=}^^-fvIPm}vw4C0=yAGxS^~Y!V9$omXiw*LJ$Cue zw$P`UhU!Uuqpmns-#cnXU-h&nCihk^?yH*eL~d`@g1*s{k2Uv>p4DfsJ+`;kKCiE` z=Gczj$~k?N)n}@&c=*b{zw#dzr5c}%$gM6uw5q?@P*ef>M=hsqlZW7H<`dUG7p?D| zwW??4>QhTkeW&NzoxN*!^)&f={2e{^z}vRqCw0P5J-wd_P*&T)rrVoN=T#7!*6O44 zPUqE}t(@Fjd1X&t#hJX}2Up#`s;7Ky&$?}=qCMC8dUo#a@$Kn181{;KBmGm>VEoiz zu&y+wrfxf(=fXpj7hZKbZ}r&`C7-#4A%D!<)~bKDR(8ubZn1x<78%`NIK@k%=_ZONM zOkCGpbd7jGOz8KEkPt;jZJ*N1T2b_W{3fFq_eriH*LI*{f98ek5u)fX{k|2kUvCj} S@=Fb`lvXt?G`(`AAo$-sf;+|l delta 12469 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 Oobm-T%*Uq-g8vKbi|=&+ diff --git a/backend/app.py b/backend/app.py index fe4fd0e5f..f7c27ae49 100644 --- a/backend/app.py +++ b/backend/app.py @@ -1425,6 +1425,15 @@ def main(): create_initial_admin() app_logger.info("[STARTUP] ✅ Admin-Benutzer geprüft") + # Statische Drucker für TBA Marienfelde erstellen/aktualisieren + app_logger.info("[STARTUP] Initialisiere statische Drucker...") + from models import create_initial_printers + success = create_initial_printers() + if success: + app_logger.info("[STARTUP] ✅ Statische Drucker konfiguriert") + else: + app_logger.warning("[STARTUP] ⚠️ Fehler bei Drucker-Initialisierung") + # Queue Manager starten app_logger.info("[STARTUP] Starte Queue Manager...") start_queue_manager() diff --git a/backend/backend/database/myp.db b/backend/backend/database/myp.db index f55b2fd8d7221df6c2224e71d4bb0768eb8d0de1..4e86411b5803e34b1e4767ce981907694f15c1ed 100644 GIT binary patch delta 26 gcmZoTz}BEJL7J73fq{W>;zWBOL$6J9Q^Op709fz_x&QzG literal 106496 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 H{~`4kCblyi delta 168 zcmZo@U}|V!s+V}A%K!q*K+MR%AONDJfVld6+TV8fohMZ`3s|mr^QbX);rixC!!iX@ s)dP(J1CY7@kpNV9Vm&7(6OawYnY;D5h%h80HJ>|>i_@% diff --git a/backend/backend/database/myp.db-wal b/backend/backend/database/myp.db-wal index 7fad9a3843b6d3e42070c7f792c0b0abe35b4be2..abd7d1662589d46d1404226e67855135e2bfba05 100644 GIT binary patch literal 263712 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

UVuLd^A{-~L^9Si)Oa69_ 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 C;9s}^ literal 4152 zcmXr7XKP~6eI&uaAiw|uDw_o?SG;-D$oqYpx%;827N8Il5KFP!V45+ z123`&W4Qu`;&MGd4FfF*AnCpqXZ9kXTxhp91tuT4HHViJTk&>T^~F diff --git a/backend/database/myp.db b/backend/database/myp.db deleted file mode 100644 index 1188b15fe057555493593121f0c90a05a88f05bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135168 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 NjXJrKPaog<_-6)sP*4B> diff --git a/backend/instance/sessions/067a5a78ba604567b2a12675f988faf4_activity.pkl b/backend/instance/sessions/067a5a78ba604567b2a12675f988faf4_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..579f13c5a5dd6fbe4739f79e92b6d425f7633c96 GIT binary patch literal 60 zcmZo*nQF)Y0kuRFl_ LnHgG6Db@o3@(d6? literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/0aedf5e1f3fd16930ed9c4e0cdf5fc72_activity.pkl b/backend/instance/sessions/0aedf5e1f3fd16930ed9c4e0cdf5fc72_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..d3a96d7fffa9ebac525983ca596a44868e247ee6 GIT binary patch literal 60 zcmZo*nQF)Y0ku%r literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/3d07f22e216f9bdf93126d51571238fe_activity.pkl b/backend/instance/sessions/3d07f22e216f9bdf93126d51571238fe_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..0b4b9f414f43fd3c055a976621a78fd2dec0d4e0 GIT binary patch literal 60 zcmZo*nQF)Y0kuRB2Y L8d?}mDb@o3@xl-> literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/a13f2a360ca5095f66ac6203efdfcfa0_activity.pkl b/backend/instance/sessions/a13f2a360ca5095f66ac6203efdfcfa0_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..9ae0eece26ebefa03436f18d0d5dbaf228caca04 GIT binary patch literal 60 zcmZo*nQF)Y0kuY1Au L8<<&4Db@o3@!AkK literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/cac3ba16da6a7e82703598d383bba0f5_activity.pkl b/backend/instance/sessions/cac3ba16da6a7e82703598d383bba0f5_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..0b14209a7e167e5bbca7619c90d1130bf93f959f GIT binary patch literal 60 zcmZo*nQF)Y0ku LnwS_&Db@o3@sbcN literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/f854a6d22a257780ac03c2286cdcbf22_activity.pkl b/backend/instance/sessions/f854a6d22a257780ac03c2286cdcbf22_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..5dcdf02f5103f270d36e672f9401389ddfd7f0e8 GIT binary patch literal 60 zcmZo*nQF)Y0kuRB3^ L8Jn6 found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\login.html') +2025-06-13 12:24:57 - [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-13 12:24:57 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-13 12:25:01 - [app] app - [DEBUG] DEBUG - Request: GET /dashboard +2025-06-13 12:25:01 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-13 12:25:01 - [app] app - [DEBUG] DEBUG - Request: GET /auth/login +2025-06-13 12:25:01 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-13 12:25:14 - [app] app - [DEBUG] DEBUG - Request: POST /auth/login +2025-06-13 12:25:15 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-13 12:25:16 - [app] app - [DEBUG] DEBUG - Request: GET / +2025-06-13 12:25:16 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-13 12:25:16 - [app] app - [DEBUG] DEBUG - Request: GET /dashboard +2025-06-13 12:25:16 - [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-13 12:25:16 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-13 12:25:19 - [app] app - [DEBUG] DEBUG - Request: GET /printers +2025-06-13 12:25:19 - [app] app - [INFO] INFO - Locating template 'printers.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\\printers.html') +2025-06-13 12:25:19 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-13 12:25:19 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-13 12:25:19 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-13 12:25:19 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-13 12:25:20 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-13 12:25:20 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-13 12:25:20 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-13 12:25:22 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-13 12:25:22 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-13 12:25:22 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-13 12:25:26 - [app] app - [DEBUG] DEBUG - Request: GET /tapo/ +2025-06-13 12:25:40 - [app] app - [INFO] INFO - Locating template 'tapo_control.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\\tapo_control.html') +2025-06-13 12:25:40 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-13 12:30:45 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-13 12:30:45 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-13 12:30:45 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-13 12:30:45 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-13 12:30:45 - [app] app - [INFO] INFO - Drucker erstellt: Drucker 1 (192.168.0.100) +2025-06-13 12:30:45 - [app] app - [INFO] INFO - Drucker erstellt: Drucker 2 (192.168.0.101) +2025-06-13 12:30:45 - [app] app - [INFO] INFO - Drucker erstellt: Drucker 3 (192.168.0.102) +2025-06-13 12:30:45 - [app] app - [INFO] INFO - Drucker erstellt: Drucker 4 (192.168.0.103) +2025-06-13 12:30:45 - [app] app - [INFO] INFO - Drucker erstellt: Drucker 5 (192.168.0.104) +2025-06-13 12:30:45 - [app] app - [INFO] INFO - Drucker erstellt: Drucker 6 (192.168.0.106) +2025-06-13 12:30:45 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 6 erstellt, 0 aktualisiert +2025-06-13 12:30:45 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-13 12:30:45 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-13 12:31:24 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-13 12:31:24 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-13 12:32:13 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-13 12:32:13 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-13 12:32:52 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-13 12:32:52 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-13 12:32:52 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-13 12:32:52 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) wurde angelegt. +2025-06-13 12:32:52 - [app] app - [INFO] INFO - Drucker erstellt: Drucker 1 (192.168.0.100) +2025-06-13 12:32:52 - [app] app - [INFO] INFO - Drucker erstellt: Drucker 2 (192.168.0.101) +2025-06-13 12:32:52 - [app] app - [INFO] INFO - Drucker erstellt: Drucker 3 (192.168.0.102) +2025-06-13 12:32:52 - [app] app - [INFO] INFO - Drucker erstellt: Drucker 4 (192.168.0.103) +2025-06-13 12:32:52 - [app] app - [INFO] INFO - Drucker erstellt: Drucker 5 (192.168.0.104) +2025-06-13 12:32:52 - [app] app - [INFO] INFO - Drucker erstellt: Drucker 6 (192.168.0.106) +2025-06-13 12:32:52 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 6 erstellt, 0 aktualisiert +2025-06-13 12:32:52 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-13 12:32:52 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) diff --git a/backend/logs/auth/auth.log b/backend/logs/auth/auth.log index a407a952f..c1e9a9d5c 100644 --- a/backend/logs/auth/auth.log +++ b/backend/logs/auth/auth.log @@ -54,3 +54,5 @@ WHERE users.username = ? OR users.email = ? 2025-06-12 21:13:48 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich abgemeldet 2025-06-13 06:49:48 - [auth] auth - [WARNING] WARNING - JSON-Parsing fehlgeschlagen: 400 Bad Request: Failed to decode JSON object: Expecting value: line 1 column 1 (char 0) 2025-06-13 06:49:48 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet +2025-06-13 12:25:14 - [auth] auth - [WARNING] WARNING - JSON-Parsing fehlgeschlagen: 400 Bad Request: Failed to decode JSON object: Expecting value: line 1 column 1 (char 0) +2025-06-13 12:25:15 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet diff --git a/backend/logs/core_system/core_system.log b/backend/logs/core_system/core_system.log index 25d29d3b4..bf634ab7b 100644 --- a/backend/logs/core_system/core_system.log +++ b/backend/logs/core_system/core_system.log @@ -180,3 +180,7 @@ 2025-06-13 07:16:50 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) 2025-06-13 07:18:17 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert 2025-06-13 07:18:17 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-13 12:24:27 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-13 12:24:27 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-13 12:24:40 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-13 12:24:40 - [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 915c62131..b09d8dcca 100644 --- a/backend/logs/data_management/data_management.log +++ b/backend/logs/data_management/data_management.log @@ -204,3 +204,7 @@ 2025-06-13 07:16:51 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-13 07:18:17 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert 2025-06-13 07:18:17 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-13 12:24:28 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-13 12:24:28 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-13 12:24:40 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-13 12:24:40 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) diff --git a/backend/logs/energy_monitoring/energy_monitoring.log b/backend/logs/energy_monitoring/energy_monitoring.log index 6241e9d04..dd35d9755 100644 --- a/backend/logs/energy_monitoring/energy_monitoring.log +++ b/backend/logs/energy_monitoring/energy_monitoring.log @@ -43,3 +43,5 @@ 2025-06-13 07:16:49 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert 2025-06-13 07:16:52 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert 2025-06-13 07:18:18 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-13 12:24:37 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-13 12:24:43 - [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 ebf39da3b..f5a7d3e8b 100644 --- a/backend/logs/hardware_integration/hardware_integration.log +++ b/backend/logs/hardware_integration/hardware_integration.log @@ -526,3 +526,11 @@ 2025-06-13 07:18:17 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert 2025-06-13 07:18:17 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert 2025-06-13 07:18:17 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-13 12:24:28 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-13 12:24:28 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-13 12:24:28 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-13 12:24:28 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-13 12:24:40 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-13 12:24:40 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-13 12:24:40 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-13 12:24:40 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) diff --git a/backend/logs/job_queue_system/job_queue_system.log b/backend/logs/job_queue_system/job_queue_system.log index 797570bd4..233af4a6a 100644 --- a/backend/logs/job_queue_system/job_queue_system.log +++ b/backend/logs/job_queue_system/job_queue_system.log @@ -390,3 +390,11 @@ 2025-06-13 07:18:18 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) 2025-06-13 07:19:47 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) 2025-06-13 07:19:47 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-13 12:24:28 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-13 12:24:28 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-13 12:24:38 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-13 12:24:40 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-13 12:24:40 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-13 12:24:44 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-13 12:26:11 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-13 12:26:12 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) diff --git a/backend/logs/monitoring_analytics/monitoring_analytics.log b/backend/logs/monitoring_analytics/monitoring_analytics.log index af7b6af74..8fa8f2877 100644 --- a/backend/logs/monitoring_analytics/monitoring_analytics.log +++ b/backend/logs/monitoring_analytics/monitoring_analytics.log @@ -204,3 +204,7 @@ 2025-06-13 07:16:52 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-13 07:18:18 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert 2025-06-13 07:18:18 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-13 12:24:37 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-13 12:24:37 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-13 12:24:43 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-13 12:24:43 - [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 6b73cc66d..63d68b9ac 100644 --- a/backend/logs/permissions/permissions.log +++ b/backend/logs/permissions/permissions.log @@ -8,3 +8,5 @@ 2025-06-13 07:17:33 - [permissions] permissions - [INFO] INFO - UserPermission für Admin-Benutzer 1 aktualisiert 2025-06-13 07:17:54 - [permissions] permissions - [INFO] INFO - UserPermission für Admin-Benutzer 1 aktualisiert 2025-06-13 07:18:18 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-13 12:24:37 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-13 12:24:44 - [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 d4615e542..bab32a189 100644 --- a/backend/logs/scheduler/scheduler.log +++ b/backend/logs/scheduler/scheduler.log @@ -287,3 +287,22 @@ 2025-06-13 07:18:17 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True 2025-06-13 07:18:18 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet 2025-06-13 07:18:18 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-13 12:24:28 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-13 12:24:38 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-13 12:24:38 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-13 12:24:38 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-13 12:24:40 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-13 12:24:44 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-13 12:24:44 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-13 12:24:44 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-13 12:24:46 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-13 12:24:53 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-13 12:25:08 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-13 12:25:15 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-13 12:25:17 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-13 12:25:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-13 12:25:38 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-13 12:25:46 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet +2025-06-13 12:25:47 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-13 12:25:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten +2025-06-13 12:26:09 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: Till Tomczaktet diff --git a/backend/logs/security_suite/security_suite.log b/backend/logs/security_suite/security_suite.log index 95fef990c..86c07c59f 100644 --- a/backend/logs/security_suite/security_suite.log +++ b/backend/logs/security_suite/security_suite.log @@ -308,3 +308,9 @@ 2025-06-13 07:18:17 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert 2025-06-13 07:18:17 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-13 07:18:18 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-13 12:24:28 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-13 12:24:28 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-13 12:24:37 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-13 12:24:40 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-13 12:24:40 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-13 12:24:43 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert diff --git a/backend/logs/startup/startup.log b/backend/logs/startup/startup.log index 23f56b4b1..a5689241c 100644 --- a/backend/logs/startup/startup.log +++ b/backend/logs/startup/startup.log @@ -901,3 +901,21 @@ 2025-06-13 07:18:18 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert 2025-06-13 07:18:18 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert 2025-06-13 07:18:18 - [startup] startup - [INFO] INFO - ================================================== +2025-06-13 12:24:37 - [startup] startup - [INFO] INFO - ================================================== +2025-06-13 12:24:37 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-13 12:24:37 - [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-13 12:24:37 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-13 12:24:37 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-13 12:24:37 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-13T12:24:37.133305 +2025-06-13 12:24:37 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-13 12:24:37 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-13 12:24:37 - [startup] startup - [INFO] INFO - ================================================== +2025-06-13 12:24:43 - [startup] startup - [INFO] INFO - ================================================== +2025-06-13 12:24:43 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-13 12:24:43 - [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-13 12:24:43 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-13 12:24:43 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-13 12:24:43 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-13T12:24:43.757529 +2025-06-13 12:24:43 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-13 12:24:43 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-13 12:24:43 - [startup] startup - [INFO] INFO - ================================================== diff --git a/backend/logs/tapo_control/tapo_control.log b/backend/logs/tapo_control/tapo_control.log index d4dde6a90..a2b5a0f42 100644 --- a/backend/logs/tapo_control/tapo_control.log +++ b/backend/logs/tapo_control/tapo_control.log @@ -77,3 +77,11 @@ 2025-06-13 07:13:31 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 5 (192.168.1.205) nicht erreichbar 2025-06-13 07:13:33 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 6 (192.168.1.206) nicht erreichbar 2025-06-13 07:13:33 - [tapo_control] tapo_control - [INFO] INFO - Dashboard geladen: 6 Steckdosen konfiguriert, 0 online +2025-06-13 12:25:26 - [tapo_control] tapo_control - [INFO] INFO - Tapo Dashboard aufgerufen von Benutzer: Administrator +2025-06-13 12:25:28 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 1 (192.168.1.201) nicht erreichbar +2025-06-13 12:25:30 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 2 (192.168.1.202) nicht erreichbar +2025-06-13 12:25:33 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 3 (192.168.1.203) nicht erreichbar +2025-06-13 12:25:35 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 4 (192.168.1.204) nicht erreichbar +2025-06-13 12:25:37 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 5 (192.168.1.205) nicht erreichbar +2025-06-13 12:25:40 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 6 (192.168.1.206) nicht erreichbar +2025-06-13 12:25:40 - [tapo_control] tapo_control - [INFO] INFO - Dashboard geladen: 6 Steckdosen konfiguriert, 0 online diff --git a/backend/logs/tapo_controller/tapo_controller.log b/backend/logs/tapo_controller/tapo_controller.log index 4424f67aa..52511662d 100644 --- a/backend/logs/tapo_controller/tapo_controller.log +++ b/backend/logs/tapo_controller/tapo_controller.log @@ -103,3 +103,29 @@ 2025-06-13 07:16:48 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert 2025-06-13 07:16:51 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert 2025-06-13 07:18:17 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-13 12:24:28 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-13 12:24:40 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-13 12:24:41 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 1/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:24:42 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 2/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10053] Eine bestehende Verbindung wurde softwaregesteuert\r\ndurch den Hostcomputer abgebrochen')) +2025-06-13 12:24:46 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 3/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:24:46 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ fehler beim einschalten der tapo-steckdose 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:24:46 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 1/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:24:49 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 2/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:24:53 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 3/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:24:53 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ fehler beim einschalten der tapo-steckdose 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:10 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 1/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:14 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 2/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:17 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 3/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:17 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ fehler beim einschalten der tapo-steckdose 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:19 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 1/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:23 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 2/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:26 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 3/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:26 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ fehler beim einschalten der tapo-steckdose 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:40 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 1/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:44 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 2/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:47 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 3/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:47 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ fehler beim einschalten der tapo-steckdose 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:48 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 1/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:51 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 2/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:55 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ versuch 3/3 fehlgeschlagen beim einschalten von 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) +2025-06-13 12:25:55 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ fehler beim einschalten der tapo-steckdose 192.168.1.201: HTTPConnectionPool(host='192.168.1.201', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.1.201 timed out. (connect timeout=2)')) diff --git a/backend/logs/tapo_status_manager/tapo_status_manager.log b/backend/logs/tapo_status_manager/tapo_status_manager.log index f84e45453..0b2631605 100644 --- a/backend/logs/tapo_status_manager/tapo_status_manager.log +++ b/backend/logs/tapo_status_manager/tapo_status_manager.log @@ -60,3 +60,5 @@ 2025-06-13 07:16:48 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager initialisiert 2025-06-13 07:16:51 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager initialisiert 2025-06-13 07:18:17 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager initialisiert +2025-06-13 12:24:28 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager initialisiert +2025-06-13 12:24:40 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager initialisiert diff --git a/backend/logs/utilities_collection/utilities_collection.log b/backend/logs/utilities_collection/utilities_collection.log index 54c9b72c6..0cbc76d22 100644 --- a/backend/logs/utilities_collection/utilities_collection.log +++ b/backend/logs/utilities_collection/utilities_collection.log @@ -214,3 +214,15 @@ 2025-06-13 07:16:50 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) 2025-06-13 07:18:17 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert 2025-06-13 07:18:17 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-13 12:24:27 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-13 12:24:27 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-13 12:24:40 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-13 12:24:40 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-13 12:30:45 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-13 12:30:45 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-13 12:31:24 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-13 12:31:24 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-13 12:32:13 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-13 12:32:13 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-13 12:32:51 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-13 12:32:51 - [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 cef7c740d..980f43f92 100644 --- a/backend/logs/windows_fixes/windows_fixes.log +++ b/backend/logs/windows_fixes/windows_fixes.log @@ -183,3 +183,7 @@ 2025-06-13 07:16:50 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet 2025-06-13 07:18:17 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... 2025-06-13 07:18:17 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-13 12:24:27 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-13 12:24:27 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-13 12:24:40 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-13 12:24:40 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet diff --git a/backend/models.py b/backend/models.py index 9651defc5..e4e6c35e0 100644 --- a/backend/models.py +++ b/backend/models.py @@ -43,7 +43,7 @@ _cache_lock = threading.Lock() _cache_ttl = {} # Time-to-live für Cache-Einträge # Alle exportierten Modelle -__all__ = ['User', 'Printer', 'Job', 'Stats', 'SystemLog', 'Base', 'GuestRequest', 'UserPermission', 'Notification', 'JobOrder', 'SystemTimer', 'PlugStatusLog', 'init_db', 'init_database', 'create_initial_admin', 'get_db_session', 'get_cached_session', 'clear_cache', 'engine'] +__all__ = ['User', 'Printer', 'Job', 'Stats', 'SystemLog', 'Base', 'GuestRequest', 'UserPermission', 'Notification', 'JobOrder', 'SystemTimer', 'PlugStatusLog', 'init_db', 'init_database', 'create_initial_admin', 'create_initial_printers', 'get_db_session', 'get_cached_session', 'clear_cache', 'engine'] # ===== DATENBANK-KONFIGURATION MIT WAL UND OPTIMIERUNGEN ===== @@ -2121,6 +2121,124 @@ def create_initial_admin(email: str = "admin@mercedes-benz.com", password: str = except Exception as e: logger.error(f"Fehler beim Erstellen des Admin-Benutzers: {str(e)}") + return False + + +def create_initial_printers() -> bool: + """ + Erstellt die statischen Drucker für Mercedes-Benz TBA Marienfelde. + + Diese Funktion erstellt automatisch die konfigurierten Drucker mit festen IP-Adressen + und Standorten für die Production-Umgebung. + + Returns: + bool: True, wenn die Drucker erfolgreich erstellt/aktualisiert wurden, False sonst + """ + # Statische Drucker-Konfiguration für TBA Marienfelde + STATIC_PRINTERS = [ + { + "name": "Drucker 1", + "ip_address": "192.168.0.100", + "location": "TBA Marienfelde", + "model": "Mercedes 3D Printer", + "plug_ip": "192.168.0.100", # Smart Plug hat gleiche IP + "status": "offline" + }, + { + "name": "Drucker 2", + "ip_address": "192.168.0.101", + "location": "TBA Marienfelde", + "model": "Mercedes 3D Printer", + "plug_ip": "192.168.0.101", + "status": "offline" + }, + { + "name": "Drucker 3", + "ip_address": "192.168.0.102", + "location": "TBA Marienfelde", + "model": "Mercedes 3D Printer", + "plug_ip": "192.168.0.102", + "status": "offline" + }, + { + "name": "Drucker 4", + "ip_address": "192.168.0.103", + "location": "TBA Marienfelde", + "model": "Mercedes 3D Printer", + "plug_ip": "192.168.0.103", + "status": "offline" + }, + { + "name": "Drucker 5", + "ip_address": "192.168.0.104", + "location": "TBA Marienfelde", + "model": "Mercedes 3D Printer", + "plug_ip": "192.168.0.104", + "status": "offline" + }, + { + "name": "Drucker 6", + "ip_address": "192.168.0.106", + "location": "TBA Marienfelde", + "model": "Mercedes 3D Printer", + "plug_ip": "192.168.0.106", + "status": "offline" + } + ] + + try: + with get_cached_session() as session: + created_count = 0 + updated_count = 0 + + for printer_config in STATIC_PRINTERS: + # Prüfen ob Drucker bereits existiert (nach IP-Adresse) + existing_printer = session.query(Printer).filter( + Printer.ip_address == printer_config["ip_address"] + ).first() + + if existing_printer: + # Bestehenden Drucker aktualisieren + existing_printer.name = printer_config["name"] + existing_printer.location = printer_config["location"] + existing_printer.model = printer_config["model"] + existing_printer.plug_ip = printer_config["plug_ip"] + existing_printer.status = printer_config["status"] + existing_printer.active = True + existing_printer.updated_at = datetime.now() + updated_count += 1 + logger.info(f"Drucker aktualisiert: {printer_config['name']} ({printer_config['ip_address']})") + else: + # Neuen Drucker erstellen + new_printer = Printer( + name=printer_config["name"], + ip_address=printer_config["ip_address"], + location=printer_config["location"], + model=printer_config["model"], + plug_ip=printer_config["plug_ip"], + status=printer_config["status"], + active=True, + created_at=datetime.now(), + updated_at=datetime.now() + ) + session.add(new_printer) + created_count += 1 + logger.info(f"Drucker erstellt: {printer_config['name']} ({printer_config['ip_address']})") + + session.commit() + + # Cache für Drucker invalidieren + invalidate_model_cache("Printer") + + total_operations = created_count + updated_count + logger.info(f"✅ Statische Drucker-Initialisierung abgeschlossen: {created_count} erstellt, {updated_count} aktualisiert") + logger.info(f"📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert") + logger.info(f"🌐 IP-Bereich: 192.168.0.100-106 (außer .105)") + + return True + + except Exception as e: + logger.error(f"❌ Fehler beim Erstellen/Aktualisieren der statischen Drucker: {str(e)}") return False # Engine für Export verfügbar machen