From b1ae9523a9fe69ca622e51027421aef86a42344a Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Mon, 16 Jun 2025 01:18:31 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Update:=20Workflow=20Documentati?= =?UTF-8?q?on=20and=20Job=20Deletion=20Enhancements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Änderungen:** - ✅ Aktualisierte Schulungsdokumentation für den Gastzugang, um den Workflow klarer darzustellen. - ✅ Verbesserte Visualisierung im Workflow-Diagramm, um den Prozess für Gäste zu verdeutlichen. - ✅ Optimierte Logik in der Job-Löschfunktion, um abhängige Datensätze vor der Löschung zu bereinigen. **Ergebnis:** - Klarere Anleitungen für Benutzer zur Nutzung des Gastzugangs. - Verbesserte Nachvollziehbarkeit des Workflows durch aktualisierte Diagramme. - Erhöhte Datenintegrität durch Bereinigung abhängiger Datensätze vor der Job-Löschung. 🤖 Generated with [Claude Code](https://claude.ai/code) --- DOCS/Schulung_Workflow_Gastzugang.md | 191 ++++---- DOCS/Workflow_Diagramm_Visual.md | 207 ++++---- .../__pycache__/jobs.cpython-311.pyc | Bin 40853 -> 41918 bytes backend/blueprints/jobs.py | 16 +- backend/database/myp.db | Bin 102400 -> 106496 bytes backend/database/myp.db-shm | Bin 32768 -> 0 bytes backend/database/myp.db-wal | Bin 173072 -> 0 bytes ...93c6dcec8d7d521ae797d19133609_activity.pkl | Bin 0 -> 60 bytes ...f93c2e2b089984dedc4290ad389a5_activity.pkl | Bin 0 -> 60 bytes ...a4f3d1d7942f3250b3f4be4132b2c_activity.pkl | Bin 0 -> 60 bytes ...dfce5176a5261477d5a8e05e64287_activity.pkl | Bin 0 -> 60 bytes ...e781c27faec06303a2bd89b4cb4c1_activity.pkl | Bin 0 -> 60 bytes ...e0cb659fcbb51cc6de8f8bd1ca8d3_activity.pkl | Bin 0 -> 60 bytes ...c7d6fe1f49582fdbd6ef26075b25f_activity.pkl | Bin 0 -> 60 bytes ...0e4aa38eb8c7d8c6e49a0d10fd093_activity.pkl | Bin 0 -> 60 bytes ...acc965a8c7e4da0f004c1c9251918_activity.pkl | Bin 0 -> 60 bytes ...1f72c59535bf3644f2076c584cc8b_activity.pkl | Bin 0 -> 60 bytes ...5ee0d5f5d48c5f60f7a81fcf58f46_activity.pkl | Bin 0 -> 60 bytes ...d0ffb08dbb90831fd6fafd9dbbaf9_activity.pkl | Bin 0 -> 60 bytes ...422ae5ec13f7ba751acca706fb18e_activity.pkl | Bin 0 -> 60 bytes ...0d3ca18047c47937681befa55e42a_activity.pkl | Bin 0 -> 60 bytes ...4bdc5f62e81060939aa39e49cbd1c_activity.pkl | Bin 0 -> 60 bytes ...045197b1c191829bc1cdc27ff72b7_activity.pkl | Bin 0 -> 60 bytes ...135679e247c124c46e91cb561dc4b_activity.pkl | Bin 0 -> 60 bytes ...f06b75126fccdec389389c983bc28_activity.pkl | Bin 0 -> 60 bytes ...f4e80f13ff6e2ad41ef18b461079e_activity.pkl | Bin 0 -> 60 bytes ...4c7df261df39015ffc41960d47413_activity.pkl | Bin 0 -> 60 bytes ...ba8b525fc17e8e53fd85682a6d7f0_activity.pkl | Bin 0 -> 60 bytes ...803aee2c579cb96733adc72462649_activity.pkl | Bin 0 -> 60 bytes ...cd5ba3e5df80764b772f1f30c3fe0_activity.pkl | Bin 0 -> 60 bytes ...ab49ad0f2952f3989f05e1c77107a_activity.pkl | Bin 0 -> 60 bytes ...99337c645f718a2616f3c7ba92c47_activity.pkl | Bin 0 -> 60 bytes ...3a4487dfc2f54254ae4406c094360_activity.pkl | Bin 0 -> 60 bytes ...b5577f81cc9da7c3e0a56aa5b49f1_activity.pkl | Bin 0 -> 60 bytes ...0631cf9e04961d113dfb21928e10b_activity.pkl | Bin 0 -> 60 bytes ...cdd1b201c8dbb63778f900ca8169b_activity.pkl | Bin 0 -> 60 bytes ...8b83248f6c69e85cd5ee2e4b69142_activity.pkl | Bin 0 -> 60 bytes ...4f73ba81092cc6fdd2736e5807a38_activity.pkl | Bin 0 -> 60 bytes ...a278de3d2af2a28099d4e92453e06_activity.pkl | Bin 0 -> 60 bytes ...ba26cf5a4e740bb024a480adeaa76_activity.pkl | Bin 0 -> 60 bytes ...79d8befb49504b851d3405039aaf6_activity.pkl | Bin 0 -> 60 bytes ...98666b5b930592340e36e7a164d48_activity.pkl | Bin 0 -> 60 bytes ...4cb0caec06d7d2301a5ebf90d193e_activity.pkl | Bin 0 -> 60 bytes ...060d24bf9e850a183cf552510ddcb_activity.pkl | Bin 0 -> 60 bytes ...56453c93a270560e4c12c693518f6_activity.pkl | Bin 0 -> 60 bytes ...92dbcc79d97b8b1f05a4c2c11b1ae_activity.pkl | Bin 0 -> 60 bytes ...ec630a015908a08a744a09310221a_activity.pkl | Bin 0 -> 60 bytes ...5f280b059030ca8221d844066bad4_activity.pkl | Bin 0 -> 60 bytes ...910a56de0492c4a7b924a57af9218_activity.pkl | Bin 0 -> 60 bytes ...94600e43ec2cd897c3b4407413cab_activity.pkl | Bin 0 -> 60 bytes ...62a90a04855fbd9d71babc0a50ced_activity.pkl | Bin 0 -> 60 bytes ...344b572a30193d6f145e730c87761_activity.pkl | Bin 0 -> 60 bytes ...02c575626c78378c5fb3017225319_activity.pkl | Bin 0 -> 60 bytes ...bdb8a5d1e9127c8d4c15073686816_activity.pkl | Bin 0 -> 60 bytes ...afb40c3c42df7d5a084aca30e379a_activity.pkl | Bin 0 -> 60 bytes ...7a7cddfcf92d9e363645a65bdd26d_activity.pkl | Bin 0 -> 60 bytes ...73b487ef7baa2d36acf4fd77c08bb_activity.pkl | Bin 0 -> 60 bytes ...2b4ef769157e66da6a6374314d3d8_activity.pkl | Bin 0 -> 60 bytes ...9732b9d588c87953c796723a5a47c_activity.pkl | Bin 0 -> 60 bytes ...7528282967b3652adcc184c740893_activity.pkl | Bin 0 -> 60 bytes ...9ea35d5dec66e2a85d0625dee8ddc_activity.pkl | Bin 0 -> 60 bytes ...25717d070c439a257020173cbcd74_activity.pkl | Bin 0 -> 60 bytes ...8d9fdfcfe08de6ad8cc50c1ab0b8b_activity.pkl | Bin 0 -> 60 bytes ...552d2904dff81cefe2b862581f922_activity.pkl | Bin 0 -> 60 bytes ...53f5183ce5b054b660d983cbf3843_activity.pkl | Bin 0 -> 60 bytes ...144deb5747d9bcc0916683c5715f7_activity.pkl | Bin 0 -> 60 bytes ...394a370f734a6c8763119035c5c3c_activity.pkl | Bin 0 -> 60 bytes ...63c03f546da0a4e612b435cd0c032_activity.pkl | Bin 0 -> 60 bytes ...f45cd5b74513e24d87503fce875ac_activity.pkl | Bin 0 -> 60 bytes ...cf6de1bb118277724391a0fe60d6a_activity.pkl | Bin 0 -> 60 bytes ...1c625c43bec32d54a0121a7456fb1_activity.pkl | Bin 0 -> 60 bytes ...b5efbad5107e419d944230c9dd0eb_activity.pkl | Bin 0 -> 60 bytes ...73abf0cc4d796e4a6191786a0f2d2_activity.pkl | Bin 0 -> 60 bytes ...4c4c7b142572c4776bcf049a15fe5_activity.pkl | Bin 0 -> 60 bytes ...1781faf08b1f173d544558a1701f9_activity.pkl | Bin 0 -> 60 bytes ...6a362b3c2acea4a992a7842ebe8d0_activity.pkl | Bin 0 -> 60 bytes ...9092b7fdc5196c3ebd99ed092559a_activity.pkl | Bin 0 -> 60 bytes ...474a450f2e153a60fca2973b02c45_activity.pkl | Bin 0 -> 60 bytes ...fd8852ad1ace35f2b76390f5758c3_activity.pkl | Bin 0 -> 60 bytes ...8b0aff69ebc1a7fdd48aea8005839_activity.pkl | Bin 0 -> 60 bytes ...0dfff1189da322ec113b154557e9c_activity.pkl | Bin 0 -> 60 bytes ...20fdc4532b360ccc5f8b1df7d7def_activity.pkl | Bin 0 -> 60 bytes ...3036a0ad39a8c5c16905511285196_activity.pkl | Bin 0 -> 60 bytes ...71eef21fc6405ebdae98e1746992d_activity.pkl | Bin 0 -> 60 bytes ...8f492b0ed240a69eb398a673ebae1_activity.pkl | Bin 0 -> 60 bytes ...66d1fcb6409c25bc4652e213e7406_activity.pkl | Bin 0 -> 60 bytes ...fba8dd6d2945cb3b9a5d1e08686bb_activity.pkl | Bin 0 -> 60 bytes ...a069a082b5fc2c1ffc2ff57499e56_activity.pkl | Bin 0 -> 60 bytes ...93104f6390bdfc20bfc70848abaaf_activity.pkl | Bin 0 -> 60 bytes ...04cecfddfc028b1f4e4ab2e3f0910_activity.pkl | Bin 0 -> 60 bytes ...1ec0ba707d0bccfa687dcb1cd8adb_activity.pkl | Bin 0 -> 60 bytes ...e01d33813ffc3b4675e2cd92d6a12_activity.pkl | Bin 0 -> 60 bytes ...d0849e2139baab6097fabea480a02_activity.pkl | Bin 0 -> 60 bytes ...1d9b12d7fea2814fe40bf5c664aaa_activity.pkl | Bin 0 -> 60 bytes ...bc27d7d1931e4019dd10536bc9d53_activity.pkl | Bin 0 -> 60 bytes ...60d0521ceeaa4359a4dc4803d6d52_activity.pkl | Bin 0 -> 60 bytes ...f6e60b7d37b0273d216a8b4f8ffce_activity.pkl | Bin 0 -> 60 bytes ...db027900143c37a3b74a95f531955_activity.pkl | Bin 0 -> 60 bytes ...15f501a96ed3b8ea98312dfb85332_activity.pkl | Bin 0 -> 60 bytes ...51d955ee44657fbc97b1cf4eaa0de_activity.pkl | Bin 0 -> 60 bytes ...ec14a64f35a885f954b636ad231f7_activity.pkl | Bin 0 -> 60 bytes ...4d50b2bc865541fcb0331dcb678d4_activity.pkl | Bin 0 -> 60 bytes ...9d7df48b93afdbb24d26ab46bb29a_activity.pkl | Bin 0 -> 60 bytes ...bdba2cecd72d08302286cf7fac38f_activity.pkl | Bin 0 -> 60 bytes ...f6cca8cfa5c7354d1c409b1f2494a_activity.pkl | Bin 0 -> 60 bytes ...4144753fd88d54d3a97597d590be7_activity.pkl | Bin 0 -> 60 bytes ...540e07fc1fa5e8b547f0ee360f4fc_activity.pkl | Bin 0 -> 60 bytes ...398a27b59003756577c91feb1178f_activity.pkl | Bin 0 -> 60 bytes ...3377d20547fde80440a6064894999_activity.pkl | Bin 0 -> 60 bytes ...ecf5d32df4a48fa6b3eec2a41aa76_activity.pkl | Bin 0 -> 60 bytes ...45b2cae51bbb35cf708b02fc80f29_activity.pkl | Bin 0 -> 60 bytes ...c8aeb34f56ccdb3e81b041d8d93aa_activity.pkl | Bin 0 -> 60 bytes ...1e0e8a6f565f6fd22e49c7dafbba2_activity.pkl | Bin 0 -> 60 bytes ...e79fd230b09d746e0291dc733936a_activity.pkl | Bin 0 -> 60 bytes ...f3bf764317f2a81917e1e3484b047_activity.pkl | Bin 0 -> 60 bytes ...b9ba433d488844a8337382740c839_activity.pkl | Bin 0 -> 60 bytes ...81fd42b756a4acc6ec9048dba9973_activity.pkl | Bin 0 -> 60 bytes ...f9b545263af8703f948f0d3ac8867_activity.pkl | Bin 0 -> 60 bytes ...12221e95082097ebfec52a8c9d466_activity.pkl | Bin 0 -> 60 bytes ...9e149116ba4070d8e76d1fefe6ac4_activity.pkl | Bin 0 -> 60 bytes ...c07b9a2f41a036f9e001515ac0d57_activity.pkl | Bin 0 -> 60 bytes ...6bcf9ae8798df94f87ea92c844715_activity.pkl | Bin 0 -> 60 bytes ...a528c68afb69319bec2005c5c4e59_activity.pkl | Bin 0 -> 60 bytes ...152e4e221abb10169bf8fdc02e63a_activity.pkl | Bin 0 -> 60 bytes ...9c6dd376b5f6bafc23a672953a8c5_activity.pkl | Bin 0 -> 60 bytes ...72447fa0a398421991de398d14e24_activity.pkl | Bin 0 -> 60 bytes ...8ac82783fee8a608998102677c6a5_activity.pkl | Bin 0 -> 60 bytes ...78c9e8afd2fb2701d9fe438efebef_activity.pkl | Bin 0 -> 60 bytes ...7af32d26c022b4cf36efe04051604_activity.pkl | Bin 0 -> 60 bytes ...5451fffb12beaeadfc6cc137c3e4a_activity.pkl | Bin 0 -> 60 bytes ...12396fb6471d3dc18c631e6d99f6c_activity.pkl | Bin 0 -> 60 bytes ...2d35bc5b4c03687b6e5fa88222a24_activity.pkl | Bin 0 -> 60 bytes ...061d410fd567df7ce8abfe0edf04a_activity.pkl | Bin 0 -> 60 bytes ...587584f69d785f5b1ba336c3598c4_activity.pkl | Bin 0 -> 60 bytes ...03533ffbef14ebbe053c94d5ef2d8_activity.pkl | Bin 0 -> 60 bytes backend/logs/admin/admin.log | 22 + backend/logs/admin_api/admin_api.log | 10 + backend/logs/api/api.log | 5 + backend/logs/app/app.log | 442 ++++++++++++++++++ backend/logs/auth/auth.log | 1 + backend/logs/calendar/calendar.log | 2 + .../logs/data_management/data_management.log | 6 + .../energy_monitoring/energy_monitoring.log | 17 + .../hardware_integration.log | 66 +++ .../job_queue_system/job_queue_system.log | 14 + backend/logs/jobs/jobs.log | 14 + .../monitoring_analytics.log | 6 + backend/logs/permissions/permissions.log | 3 + backend/logs/scheduler/scheduler.log | 81 ++++ .../logs/security_suite/security_suite.log | 9 + backend/logs/startup/startup.log | 21 + .../logs/tapo_controller/tapo_controller.log | 149 ++++++ .../tapo_status_manager.log | 3 + .../utilities_collection.log | 6 + backend/static/sw.js | 97 +++- 155 files changed, 1189 insertions(+), 199 deletions(-) delete mode 100644 backend/database/myp.db-shm delete mode 100644 backend/database/myp.db-wal create mode 100644 backend/instance/sessions/00d93c6dcec8d7d521ae797d19133609_activity.pkl create mode 100644 backend/instance/sessions/02ff93c2e2b089984dedc4290ad389a5_activity.pkl create mode 100644 backend/instance/sessions/03aa4f3d1d7942f3250b3f4be4132b2c_activity.pkl create mode 100644 backend/instance/sessions/05cdfce5176a5261477d5a8e05e64287_activity.pkl create mode 100644 backend/instance/sessions/07ce781c27faec06303a2bd89b4cb4c1_activity.pkl create mode 100644 backend/instance/sessions/08ee0cb659fcbb51cc6de8f8bd1ca8d3_activity.pkl create mode 100644 backend/instance/sessions/0b0c7d6fe1f49582fdbd6ef26075b25f_activity.pkl create mode 100644 backend/instance/sessions/0c70e4aa38eb8c7d8c6e49a0d10fd093_activity.pkl create mode 100644 backend/instance/sessions/10bacc965a8c7e4da0f004c1c9251918_activity.pkl create mode 100644 backend/instance/sessions/10c1f72c59535bf3644f2076c584cc8b_activity.pkl create mode 100644 backend/instance/sessions/1255ee0d5f5d48c5f60f7a81fcf58f46_activity.pkl create mode 100644 backend/instance/sessions/133d0ffb08dbb90831fd6fafd9dbbaf9_activity.pkl create mode 100644 backend/instance/sessions/137422ae5ec13f7ba751acca706fb18e_activity.pkl create mode 100644 backend/instance/sessions/14a0d3ca18047c47937681befa55e42a_activity.pkl create mode 100644 backend/instance/sessions/1d64bdc5f62e81060939aa39e49cbd1c_activity.pkl create mode 100644 backend/instance/sessions/1f0045197b1c191829bc1cdc27ff72b7_activity.pkl create mode 100644 backend/instance/sessions/216135679e247c124c46e91cb561dc4b_activity.pkl create mode 100644 backend/instance/sessions/240f06b75126fccdec389389c983bc28_activity.pkl create mode 100644 backend/instance/sessions/315f4e80f13ff6e2ad41ef18b461079e_activity.pkl create mode 100644 backend/instance/sessions/3204c7df261df39015ffc41960d47413_activity.pkl create mode 100644 backend/instance/sessions/32eba8b525fc17e8e53fd85682a6d7f0_activity.pkl create mode 100644 backend/instance/sessions/339803aee2c579cb96733adc72462649_activity.pkl create mode 100644 backend/instance/sessions/33ccd5ba3e5df80764b772f1f30c3fe0_activity.pkl create mode 100644 backend/instance/sessions/348ab49ad0f2952f3989f05e1c77107a_activity.pkl create mode 100644 backend/instance/sessions/35199337c645f718a2616f3c7ba92c47_activity.pkl create mode 100644 backend/instance/sessions/35e3a4487dfc2f54254ae4406c094360_activity.pkl create mode 100644 backend/instance/sessions/389b5577f81cc9da7c3e0a56aa5b49f1_activity.pkl create mode 100644 backend/instance/sessions/3ad0631cf9e04961d113dfb21928e10b_activity.pkl create mode 100644 backend/instance/sessions/3b3cdd1b201c8dbb63778f900ca8169b_activity.pkl create mode 100644 backend/instance/sessions/3ee8b83248f6c69e85cd5ee2e4b69142_activity.pkl create mode 100644 backend/instance/sessions/4084f73ba81092cc6fdd2736e5807a38_activity.pkl create mode 100644 backend/instance/sessions/414a278de3d2af2a28099d4e92453e06_activity.pkl create mode 100644 backend/instance/sessions/488ba26cf5a4e740bb024a480adeaa76_activity.pkl create mode 100644 backend/instance/sessions/50c79d8befb49504b851d3405039aaf6_activity.pkl create mode 100644 backend/instance/sessions/51b98666b5b930592340e36e7a164d48_activity.pkl create mode 100644 backend/instance/sessions/51e4cb0caec06d7d2301a5ebf90d193e_activity.pkl create mode 100644 backend/instance/sessions/554060d24bf9e850a183cf552510ddcb_activity.pkl create mode 100644 backend/instance/sessions/56c56453c93a270560e4c12c693518f6_activity.pkl create mode 100644 backend/instance/sessions/59992dbcc79d97b8b1f05a4c2c11b1ae_activity.pkl create mode 100644 backend/instance/sessions/5bfec630a015908a08a744a09310221a_activity.pkl create mode 100644 backend/instance/sessions/5d05f280b059030ca8221d844066bad4_activity.pkl create mode 100644 backend/instance/sessions/5f5910a56de0492c4a7b924a57af9218_activity.pkl create mode 100644 backend/instance/sessions/5f694600e43ec2cd897c3b4407413cab_activity.pkl create mode 100644 backend/instance/sessions/63962a90a04855fbd9d71babc0a50ced_activity.pkl create mode 100644 backend/instance/sessions/645344b572a30193d6f145e730c87761_activity.pkl create mode 100644 backend/instance/sessions/65202c575626c78378c5fb3017225319_activity.pkl create mode 100644 backend/instance/sessions/678bdb8a5d1e9127c8d4c15073686816_activity.pkl create mode 100644 backend/instance/sessions/6baafb40c3c42df7d5a084aca30e379a_activity.pkl create mode 100644 backend/instance/sessions/6bd7a7cddfcf92d9e363645a65bdd26d_activity.pkl create mode 100644 backend/instance/sessions/6d573b487ef7baa2d36acf4fd77c08bb_activity.pkl create mode 100644 backend/instance/sessions/6de2b4ef769157e66da6a6374314d3d8_activity.pkl create mode 100644 backend/instance/sessions/7259732b9d588c87953c796723a5a47c_activity.pkl create mode 100644 backend/instance/sessions/72f7528282967b3652adcc184c740893_activity.pkl create mode 100644 backend/instance/sessions/7369ea35d5dec66e2a85d0625dee8ddc_activity.pkl create mode 100644 backend/instance/sessions/75825717d070c439a257020173cbcd74_activity.pkl create mode 100644 backend/instance/sessions/7ae8d9fdfcfe08de6ad8cc50c1ab0b8b_activity.pkl create mode 100644 backend/instance/sessions/7ba552d2904dff81cefe2b862581f922_activity.pkl create mode 100644 backend/instance/sessions/7bb53f5183ce5b054b660d983cbf3843_activity.pkl create mode 100644 backend/instance/sessions/7e1144deb5747d9bcc0916683c5715f7_activity.pkl create mode 100644 backend/instance/sessions/7fe394a370f734a6c8763119035c5c3c_activity.pkl create mode 100644 backend/instance/sessions/81263c03f546da0a4e612b435cd0c032_activity.pkl create mode 100644 backend/instance/sessions/814f45cd5b74513e24d87503fce875ac_activity.pkl create mode 100644 backend/instance/sessions/89bcf6de1bb118277724391a0fe60d6a_activity.pkl create mode 100644 backend/instance/sessions/8a91c625c43bec32d54a0121a7456fb1_activity.pkl create mode 100644 backend/instance/sessions/907b5efbad5107e419d944230c9dd0eb_activity.pkl create mode 100644 backend/instance/sessions/91d73abf0cc4d796e4a6191786a0f2d2_activity.pkl create mode 100644 backend/instance/sessions/9264c4c7b142572c4776bcf049a15fe5_activity.pkl create mode 100644 backend/instance/sessions/9571781faf08b1f173d544558a1701f9_activity.pkl create mode 100644 backend/instance/sessions/9826a362b3c2acea4a992a7842ebe8d0_activity.pkl create mode 100644 backend/instance/sessions/9939092b7fdc5196c3ebd99ed092559a_activity.pkl create mode 100644 backend/instance/sessions/99a474a450f2e153a60fca2973b02c45_activity.pkl create mode 100644 backend/instance/sessions/9e9fd8852ad1ace35f2b76390f5758c3_activity.pkl create mode 100644 backend/instance/sessions/a0a8b0aff69ebc1a7fdd48aea8005839_activity.pkl create mode 100644 backend/instance/sessions/a130dfff1189da322ec113b154557e9c_activity.pkl create mode 100644 backend/instance/sessions/a1b20fdc4532b360ccc5f8b1df7d7def_activity.pkl create mode 100644 backend/instance/sessions/a4a3036a0ad39a8c5c16905511285196_activity.pkl create mode 100644 backend/instance/sessions/a5671eef21fc6405ebdae98e1746992d_activity.pkl create mode 100644 backend/instance/sessions/a758f492b0ed240a69eb398a673ebae1_activity.pkl create mode 100644 backend/instance/sessions/a7866d1fcb6409c25bc4652e213e7406_activity.pkl create mode 100644 backend/instance/sessions/a88fba8dd6d2945cb3b9a5d1e08686bb_activity.pkl create mode 100644 backend/instance/sessions/aa3a069a082b5fc2c1ffc2ff57499e56_activity.pkl create mode 100644 backend/instance/sessions/aa693104f6390bdfc20bfc70848abaaf_activity.pkl create mode 100644 backend/instance/sessions/aaa04cecfddfc028b1f4e4ab2e3f0910_activity.pkl create mode 100644 backend/instance/sessions/ae11ec0ba707d0bccfa687dcb1cd8adb_activity.pkl create mode 100644 backend/instance/sessions/aeee01d33813ffc3b4675e2cd92d6a12_activity.pkl create mode 100644 backend/instance/sessions/b03d0849e2139baab6097fabea480a02_activity.pkl create mode 100644 backend/instance/sessions/b041d9b12d7fea2814fe40bf5c664aaa_activity.pkl create mode 100644 backend/instance/sessions/b27bc27d7d1931e4019dd10536bc9d53_activity.pkl create mode 100644 backend/instance/sessions/b3860d0521ceeaa4359a4dc4803d6d52_activity.pkl create mode 100644 backend/instance/sessions/b38f6e60b7d37b0273d216a8b4f8ffce_activity.pkl create mode 100644 backend/instance/sessions/ba1db027900143c37a3b74a95f531955_activity.pkl create mode 100644 backend/instance/sessions/bb815f501a96ed3b8ea98312dfb85332_activity.pkl create mode 100644 backend/instance/sessions/bbf51d955ee44657fbc97b1cf4eaa0de_activity.pkl create mode 100644 backend/instance/sessions/bf6ec14a64f35a885f954b636ad231f7_activity.pkl create mode 100644 backend/instance/sessions/c234d50b2bc865541fcb0331dcb678d4_activity.pkl create mode 100644 backend/instance/sessions/c6c9d7df48b93afdbb24d26ab46bb29a_activity.pkl create mode 100644 backend/instance/sessions/c71bdba2cecd72d08302286cf7fac38f_activity.pkl create mode 100644 backend/instance/sessions/c73f6cca8cfa5c7354d1c409b1f2494a_activity.pkl create mode 100644 backend/instance/sessions/c7c4144753fd88d54d3a97597d590be7_activity.pkl create mode 100644 backend/instance/sessions/cca540e07fc1fa5e8b547f0ee360f4fc_activity.pkl create mode 100644 backend/instance/sessions/cdc398a27b59003756577c91feb1178f_activity.pkl create mode 100644 backend/instance/sessions/d643377d20547fde80440a6064894999_activity.pkl create mode 100644 backend/instance/sessions/d8becf5d32df4a48fa6b3eec2a41aa76_activity.pkl create mode 100644 backend/instance/sessions/d9b45b2cae51bbb35cf708b02fc80f29_activity.pkl create mode 100644 backend/instance/sessions/d9dc8aeb34f56ccdb3e81b041d8d93aa_activity.pkl create mode 100644 backend/instance/sessions/da21e0e8a6f565f6fd22e49c7dafbba2_activity.pkl create mode 100644 backend/instance/sessions/df3e79fd230b09d746e0291dc733936a_activity.pkl create mode 100644 backend/instance/sessions/e07f3bf764317f2a81917e1e3484b047_activity.pkl create mode 100644 backend/instance/sessions/e56b9ba433d488844a8337382740c839_activity.pkl create mode 100644 backend/instance/sessions/e6081fd42b756a4acc6ec9048dba9973_activity.pkl create mode 100644 backend/instance/sessions/e77f9b545263af8703f948f0d3ac8867_activity.pkl create mode 100644 backend/instance/sessions/e7f12221e95082097ebfec52a8c9d466_activity.pkl create mode 100644 backend/instance/sessions/eb49e149116ba4070d8e76d1fefe6ac4_activity.pkl create mode 100644 backend/instance/sessions/ebac07b9a2f41a036f9e001515ac0d57_activity.pkl create mode 100644 backend/instance/sessions/ec86bcf9ae8798df94f87ea92c844715_activity.pkl create mode 100644 backend/instance/sessions/ed6a528c68afb69319bec2005c5c4e59_activity.pkl create mode 100644 backend/instance/sessions/eda152e4e221abb10169bf8fdc02e63a_activity.pkl create mode 100644 backend/instance/sessions/ede9c6dd376b5f6bafc23a672953a8c5_activity.pkl create mode 100644 backend/instance/sessions/ef672447fa0a398421991de398d14e24_activity.pkl create mode 100644 backend/instance/sessions/eff8ac82783fee8a608998102677c6a5_activity.pkl create mode 100644 backend/instance/sessions/f2478c9e8afd2fb2701d9fe438efebef_activity.pkl create mode 100644 backend/instance/sessions/f3b7af32d26c022b4cf36efe04051604_activity.pkl create mode 100644 backend/instance/sessions/f4d5451fffb12beaeadfc6cc137c3e4a_activity.pkl create mode 100644 backend/instance/sessions/f7112396fb6471d3dc18c631e6d99f6c_activity.pkl create mode 100644 backend/instance/sessions/fa52d35bc5b4c03687b6e5fa88222a24_activity.pkl create mode 100644 backend/instance/sessions/fac061d410fd567df7ce8abfe0edf04a_activity.pkl create mode 100644 backend/instance/sessions/fb2587584f69d785f5b1ba336c3598c4_activity.pkl create mode 100644 backend/instance/sessions/fcb03533ffbef14ebbe053c94d5ef2d8_activity.pkl diff --git a/DOCS/Schulung_Workflow_Gastzugang.md b/DOCS/Schulung_Workflow_Gastzugang.md index b6d21965b..c69034369 100644 --- a/DOCS/Schulung_Workflow_Gastzugang.md +++ b/DOCS/Schulung_Workflow_Gastzugang.md @@ -13,23 +13,23 @@ Das MYP-System (Manage Your Printers) implementiert einen strukturierten Workflo ### Phase 1: Gastzugang-Anfrage -#### 1.1 Gast stellt Anfrage -**Endpunkt:** `/request` (öffentlich zugänglich) +#### 1.1 Gast stellt Anfrage (Vor-Ort-Prozess) +**Endpunkt:** `/request` (nur im lokalen Netzwerk zugänglich) ``` -Gast besucht: https://myp.example.com/request +Gast besucht vor Ort: http://192.168.1.100:5000/request +(Terminal/Kiosk in TBA Marienfelde) ``` **Eingabefelder:** - **Name** (Pflichtfeld) -- **E-Mail-Adresse** (Pflichtfeld, Validierung) - **Grund der Anfrage** (Pflichtfeld, mind. 10 Zeichen) -- **Telefonnummer** (optional) +- **Abteilung/Firma** (Pflichtfeld) - **Gewünschte Zugangsdauer** (1-7 Tage) +- **Ansprechpartner (Mercedes-Benz)** (optional) **Validierungsregeln:** -- E-Mail-Format-Prüfung -- Duplikatsprüfung (gleiche E-Mail innerhalb 24h) +- Duplikatsprüfung (gleicher Name innerhalb 24h) - Mindestlänge für Begründung - Maximale Zugangsdauer begrenzt @@ -39,28 +39,48 @@ Gast besucht: https://myp.example.com/request 1. Anfrage-ID generiert (unique) 2. Status: "pending" 3. Zeitstempel erstellt -4. Admin-Benachrichtigung gesendet -5. Bestätigungs-E-Mail an Gast (optional) +4. Dashboard-Benachrichtigung für Admin +5. Ausdruck mit Anfrage-ID für Gast ``` #### 1.2 Bestätigung für Gast **Weiterleitung:** `/request/{request_id}` Der Gast erhält eine Bestätigungsseite mit: -- Anfrage-ID zum Nachverfolgen -- Geschätzte Bearbeitungszeit -- Kontaktinformationen bei Rückfragen +- **Anfrage-ID zum Nachverfolgen** (wird ausgedruckt) +- **QR-Code** für spätere Status-Abfrage +- Geschätzte Bearbeitungszeit (1-4 Stunden) +- Kontaktinformation: **Vor Ort bei Mercedes-Benz Ansprechpartner** - Status-Anzeige (Pending/Genehmigt/Abgelehnt) +**Gast erhält:** +``` +┌─────────────────────────────────────────────────────┐ +│ MYP Gastzugang-Anfrage │ +│ TBA Marienfelde │ +├─────────────────────────────────────────────────────┤ +│ Anfrage-ID: GAS-2025-001234 │ +│ Name: Max Mustermann │ +│ Eingegangen: 16.06.2025 09:00 │ +│ │ +│ Status: ⏳ Wartet auf Genehmigung │ +│ │ +│ [QR-Code] ← Scannen für Status-Update │ +│ │ +│ Bearbeitungszeit: 1-4 Stunden │ +│ Bei Fragen: Mercedes-Benz Ansprechpartner │ +└─────────────────────────────────────────────────────┘ +``` + --- ### Phase 2: Administrative Genehmigung #### 2.1 Admin-Benachrichtigung -**Automatische Benachrichtigung:** -- E-Mail an alle Administratoren -- Dashboard-Benachrichtigung im System -- Rot markierte Anfrage in Admin-Panel +**Lokale Benachrichtigung:** +- Dashboard-Benachrichtigung im System (rote Badge) +- Browser-Popup (wenn Admin angemeldet) +- Audio-Signal bei neuer Anfrage (optional) #### 2.2 Admin-Prüfung **Admin-Panel:** `/admin/guest-requests` @@ -113,58 +133,65 @@ Der Gast erhält eine Bestätigungsseite mit: --- -### Phase 3: OTP-System und Anmeldung +### Phase 3: OTP-System und Anmeldung (Offline) #### 3.1 OTP-Generierung (bei Genehmigung) -**Automatischer Prozess:** +**Lokaler Prozess:** ```python # System generiert One-Time Password otp_code = generate_secure_otp() # 6-stellig, numerisch expiry_time = now() + timedelta(hours=access_duration) -# E-Mail-Versand an Gast -send_approval_email( - email=guest_email, +# Automatischer Ausdruck für Admin +print_guest_credentials( + guest_name=guest_name, otp_code=otp_code, expiry_time=expiry_time, access_instructions=True ) ``` -**E-Mail-Inhalt:** +**Ausgedruckte Zugangsdaten:** ``` -Betreff: MYP Gastzugang genehmigt - TBA Marienfelde +┌─────────────────────────────────────────────────────┐ +│ MYP GASTZUGANG GENEHMIGT │ +│ TBA Marienfelde │ +├─────────────────────────────────────────────────────┤ +│ Name: Max Mustermann │ +│ Anfrage-ID: GAS-2025-001234 │ +│ Genehmigt: 16.06.2025 10:30 │ +│ │ +│ 🔑 ZUGANGSDATEN: │ +│ OTP-Code: 123456 │ +│ Gültig bis: 18.06.2025 14:30 │ +│ │ +│ 🌐 ANMELDUNG: │ +│ Terminal vor Ort oder │ +│ http://192.168.1.100:5000/auth/guest │ +│ │ +│ 📋 ANWEISUNGEN: │ +│ 1. Name eingeben: Max Mustermann │ +│ 2. OTP-Code eingeben: 123456 │ +│ 3. Druckdateien hochladen │ +│ 4. Auf Admin-Freigabe warten │ +│ │ +│ ⚠️ WICHTIGE HINWEISE: │ +│ • Max. Druckzeit pro Job: 4 Stunden │ +│ • Dateiformate: STL, OBJ, 3MF, GCODE │ +│ • Bei Problemen: Mercedes-Benz Ansprechpartner │ +│ │ +│ [QR-Code für Login-Seite] │ +└─────────────────────────────────────────────────────┘ -Hallo Max Mustermann, - -Ihr Gastzugang wurde genehmigt! - -Zugangsdaten: -- OTP-Code: 123456 -- Gültig bis: 18.06.2025 14:30 -- Login-URL: https://myp.example.com/auth/guest - -Anweisungen: -1. Rufen Sie die Login-URL auf -2. Geben Sie Ihre E-Mail-Adresse ein -3. Verwenden Sie den OTP-Code als Passwort -4. Sie haben Zugang für 72 Stunden - -Wichtige Hinweise: -- Maximale Druckzeit pro Job: 4 Stunden -- Unterstützte Dateiformate: STL, OBJ, 3MF, GCODE -- Bei Problemen: support@tba-marienfelde.de - -Mit freundlichen Grüßen -Ihr MYP-Team +👨‍💼 ADMIN: Bitte an Gast aushändigen ``` #### 3.2 Gast-Anmeldung **Endpunkt:** `/auth/guest` **Login-Prozess:** -1. E-Mail-Adresse eingeben -2. OTP-Code eingeben (anstatt Passwort) +1. **Name eingeben** (wie auf Ausdruck) +2. **OTP-Code eingeben** (vom ausgedruckten Zettel) 3. System validiert OTP und Gültigkeitsdauer 4. Session mit eingeschränkten Rechten erstellt @@ -172,7 +199,8 @@ Ihr MYP-Team ```python guest_session = { "user_type": "guest", - "email": "max.mustermann@example.com", + "guest_name": "Max Mustermann", + "request_id": "GAS-2025-001234", "expires_at": "2025-06-18T14:30:00", "permissions": ["create_job", "view_own_jobs"], "restrictions": { @@ -317,6 +345,11 @@ def assign_printer_for_guest_job(job): } ``` +**Gast-Benachrichtigung bei Genehmigung:** +- **Dashboard-Update:** Status ändert sich automatisch +- **Ausdruck für Admin:** Job-Details mit geplanter Startzeit +- **Gast kann Status prüfen:** Über QR-Code oder Anfrage-ID + --- ### Phase 6: Ausführung und Monitoring @@ -329,9 +362,9 @@ def schedule_approved_job(job): job.status = "scheduled" job.scheduled_start = calculate_optimal_start_time(job) - # E-Mail-Benachrichtigung an Gast - send_job_approved_notification( - email=job.guest_email, + # Lokale Benachrichtigung für Gast (Dashboard) + update_guest_dashboard_status( + guest_name=job.guest_name, job_name=job.name, scheduled_start=job.scheduled_start, estimated_completion=job.scheduled_start + job.duration @@ -344,6 +377,9 @@ def schedule_approved_job(job): duration=job.duration, printer=job.assigned_printer ) + + # Ausdruck für Gast (Admin händigt aus) + print_job_schedule_info(job) ``` #### 6.2 Automatische Drucksteuerung @@ -367,8 +403,11 @@ def start_print_job(job): job.status = "printing" job.actual_start_time = now() - # 4. Gast benachrichtigen - send_print_started_notification(job.guest_email, job) + # 4. Gast-Dashboard aktualisieren + update_guest_dashboard_status(job.guest_name, "printing") + + # 5. Ausdruck für Admin (Gast informieren) + print_job_started_notification(job) ``` #### 6.3 Live-Monitoring @@ -401,7 +440,7 @@ def start_print_job(job): ### Phase 7: Fertigstellung und Abholung -#### 7.1 Automatische Benachrichtigung +#### 7.1 Automatische Benachrichtigung (Offline) **Bei Job-Completion:** ```python def on_print_completion(job): @@ -414,34 +453,24 @@ def on_print_completion(job): if job.auto_power_off: schedule_delayed_power_off(job.printer, delay_minutes=30) - # 3. Benachrichtigungen senden - notifications = [ - # Gast-Benachrichtigung - { - "recipient": job.guest_email, - "template": "job_completed_guest", - "data": { - "job_name": job.name, - "completion_time": job.actual_end_time, - "pickup_location": "TBA Marienfelde, Raum B2.1", - "pickup_hours": "Mo-Fr 8:00-16:00", - "storage_duration": "7 Tage" - } - }, - # Admin-Benachrichtigung - { - "recipient": "admin@tba-marienfelde.de", - "template": "guest_job_completed", - "data": { - "guest_name": job.guest_name, - "job_name": job.name, - "print_quality": "Noch zu bewerten", - "requires_pickup": True - } - } - ] + # 3. Gast-Dashboard aktualisieren + update_guest_dashboard_status(job.guest_name, "completed") - send_notifications(notifications) + # 4. Automatischer Ausdruck für Admin + print_job_completion_notification( + guest_name=job.guest_name, + job_name=job.name, + completion_time=job.actual_end_time, + pickup_location="TBA Marienfelde, Raum B2.1", + storage_info="7 Tage Lagerung, dann Entsorgung" + ) + + # 5. Admin-Dashboard-Benachrichtigung + create_pickup_reminder( + guest_name=job.guest_name, + job_name=job.name, + completion_time=job.actual_end_time + ) ``` #### 7.2 Abholungsmanagement diff --git a/DOCS/Workflow_Diagramm_Visual.md b/DOCS/Workflow_Diagramm_Visual.md index 9b0cbd31e..664bc1828 100644 --- a/DOCS/Workflow_Diagramm_Visual.md +++ b/DOCS/Workflow_Diagramm_Visual.md @@ -7,21 +7,21 @@ ```mermaid graph TD - A[🌐 Gast besucht /request] --> B[📝 Anfrage ausfüllen] + A[🌐 Gast besucht Terminal vor Ort] --> B[📝 Anfrage ausfüllen] B --> C{📋 Validierung OK?} C -->|❌ Fehler| B - C -->|✅ OK| D[💾 Anfrage gespeichert] + C -->|✅ OK| D[💾 Anfrage gespeichert + Ausdruck] - D --> E[📧 Admin-Benachrichtigung] + D --> E[🔔 Dashboard-Benachrichtigung] E --> F[👨‍💼 Admin prüft Anfrage] F --> G{🤔 Entscheidung?} - G -->|✅ Genehmigen| H[🔑 OTP generieren] - G -->|❌ Ablehnen| I[📧 Ablehnungs-E-Mail] - G -->|❓ Nachfrage| J[📧 Rückfrage-E-Mail] + G -->|✅ Genehmigen| H[🔑 OTP generieren + Ausdruck] + G -->|❌ Ablehnen| I[📋 Ablehnungs-Info für Admin] + G -->|❓ Nachfrage| J[📋 Rückfrage notieren] - H --> K[📧 OTP an Gast senden] - K --> L[🔐 Gast loggt sich ein] + H --> K[👨‍💼 Admin händigt Zugangsdaten aus] + K --> L[🔐 Gast loggt sich am Terminal ein] L --> M[📁 Job-Upload Interface] M --> N[📤 Datei hochladen + Details] @@ -41,8 +41,8 @@ graph TD X --> Y[✅ Druck fertig] Y --> Z[🔌 Drucker ausschalten] - Z --> AA[📧 Fertigstellungs-Benachrichtigung] - AA --> BB[📦 Abholung durch Gast] + Z --> AA[📋 Ausdruck: Job fertig + Dashboard-Update] + AA --> BB[📦 Vor-Ort-Abholung durch Gast] BB --> CC[✅ Workflow abgeschlossen] I --> DD[🏁 Ende] @@ -64,11 +64,11 @@ Timeline: Gast-Workflow (Beispiel: 3-Tage-Projekt) Tag 1 (Montag): ┌─────────────────────────────────────────────────────┐ -│ 09:00 │ 🌐 Gast stellt Anfrage │ -│ 09:05 │ 📧 Admin-Benachrichtigung │ +│ 09:00 │ 🌐 Gast stellt Anfrage am Terminal vor Ort│ +│ 09:05 │ 🔔 Dashboard-Benachrichtigung für Admin │ │ 10:30 │ 👨‍💼 Admin prüft und genehmigt │ -│ 10:35 │ 🔑 OTP generiert und versendet │ -│ 11:00 │ 🔐 Gast loggt sich ein │ +│ 10:35 │ 🔑 OTP generiert, Ausdruck für Gast │ +│ 11:00 │ 🔐 Gast loggt sich am Terminal ein │ │ 11:15 │ 📁 Job-Upload (STL-Datei) │ │ 11:20 │ ⏳ Job wartet auf Admin-Review │ │ 14:00 │ ✅ Admin genehmigt Job │ @@ -78,19 +78,19 @@ Tag 1 (Montag): Tag 2 (Dienstag): ┌─────────────────────────────────────────────────────┐ │ Ganztags │ 📊 Job in Warteschlange │ -│ 15:00 │ 📧 Erinnerungs-E-Mail an Gast │ -│ │ "Job startet morgen früh" │ +│ 15:00 │ 📋 Admin-Info: Job startet morgen │ +│ │ (Gast kann Status am Terminal sehen) │ └─────────────────────────────────────────────────────┘ Tag 3 (Mittwoch): ┌─────────────────────────────────────────────────────┐ │ 08:55 │ ⚡ Drucker automatisch eingeschaltet │ │ 09:00 │ 🖨️ Druckvorgang startet │ -│ 09:05 │ 📧 "Druck gestartet" Benachrichtigung │ +│ 09:05 │ 📋 Dashboard-Update "Druck gestartet" │ │ 13:00 │ ✅ Druck erfolgreich abgeschlossen │ │ 13:05 │ 🔌 Drucker automatisch ausgeschaltet │ -│ 13:10 │ 📧 "Abholung möglich" Benachrichtigung │ -│ 15:30 │ 📦 Gast holt Druckobjekt ab │ +│ 13:10 │ 📋 Ausdruck "Abholung möglich" │ +│ 15:30 │ 📦 Gast holt Druckobjekt vor Ort ab │ │ 15:35 │ ✅ Workflow komplett abgeschlossen │ └─────────────────────────────────────────────────────┘ ``` @@ -172,7 +172,7 @@ Tag 3 (Mittwoch): ## 📱 UI-Flow (Mockups) -### Schritt 1: Gastzugang beantragen +### Schritt 1: Gastzugang beantragen (Terminal vor Ort) ``` ┌─────────────────────────────────────────────────────┐ │ 🌐 MYP - Gastzugang beantragen │ @@ -180,20 +180,21 @@ Tag 3 (Mittwoch): │ │ │ 👋 Willkommen bei MYP │ │ Mercedes-Benz TBA Marienfelde │ +│ Lokales System - Offline-Modus │ │ │ │ Vollständiger Name: * │ │ ┌─────────────────────────────────────────────────┐ │ │ │ Max Mustermann │ │ │ └─────────────────────────────────────────────────┘ │ │ │ -│ E-Mail-Adresse: * │ +│ Abteilung/Firma: * │ │ ┌─────────────────────────────────────────────────┐ │ -│ │ max.mustermann@example.com │ │ +│ │ Externe Firma - Prototyping │ │ │ └─────────────────────────────────────────────────┘ │ │ │ -│ Telefonnummer: │ +│ Ansprechpartner (Mercedes-Benz): │ │ ┌─────────────────────────────────────────────────┐ │ -│ │ +49 123 456789 │ │ +│ │ Herr Schmidt, Abteilung Entwicklung │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ Grund der Anfrage: * │ @@ -207,25 +208,25 @@ Tag 3 (Mittwoch): │ │ │ [ ] Ich akzeptiere die Nutzungsbedingungen │ │ │ -│ [📤 Anfrage senden] │ +│ [📤 Anfrage senden] [📋 Anfrage-ID erhalten] │ │ │ └─────────────────────────────────────────────────────┘ ``` -### Schritt 2: OTP-Login +### Schritt 2: OTP-Login (mit Ausdruck vom Admin) ``` ┌─────────────────────────────────────────────────────┐ │ 🔐 MYP - Gast-Anmeldung │ ├─────────────────────────────────────────────────────┤ │ │ -│ 🎉 Ihr Zugang wurde genehmigt! │ +│ 🎉 Anmeldung mit Zugangsdaten │ │ │ -│ E-Mail-Adresse: │ +│ Vollständiger Name: │ │ ┌─────────────────────────────────────────────────┐ │ -│ │ max.mustermann@example.com │ │ +│ │ Max Mustermann │ │ │ └─────────────────────────────────────────────────┘ │ │ │ -│ OTP-Code (aus E-Mail): │ +│ OTP-Code (vom Ausdruck): │ │ ┌─────────────────────────────────────────────────┐ │ │ │ 123456 │ │ │ └─────────────────────────────────────────────────┘ │ @@ -233,9 +234,11 @@ Tag 3 (Mittwoch): │ ⏰ Ihr Zugang ist gültig bis: │ │ 18. Juni 2025, 14:30 Uhr │ │ │ +│ 📋 Anfrage-ID: GAS-2025-001234 │ +│ │ │ [🔑 Anmelden] │ │ │ -│ 💡 Tipp: Speichern Sie diese Seite als Lesezeichen│ +│ 💡 Bei Problemen: Mercedes-Benz Ansprechpartner │ │ │ └─────────────────────────────────────────────────────┘ ``` @@ -313,76 +316,92 @@ Tag 3 (Mittwoch): --- -## 📧 E-Mail-Templates (Beispiele) +## 📋 Ausdruck-Templates (Offline-System) -### Genehmigung mit OTP +### Genehmigung mit OTP (Admin-Ausdruck) ``` -Von: MYP System -An: max.mustermann@example.com -Betreff: ✅ Gastzugang genehmigt - Willkommen bei MYP! +┌─────────────────────────────────────────────────────┐ +│ MYP GASTZUGANG GENEHMIGT │ +│ TBA Marienfelde - Offline System │ +├─────────────────────────────────────────────────────┤ +│ │ +│ 👤 GASTINFORMATIONEN: │ +│ Name: Max Mustermann │ +│ Anfrage-ID: GAS-2025-001234 │ +│ Firma: Externe Firma - Prototyping │ +│ Ansprechpartner: Herr Schmidt │ +│ │ +│ 🔑 ZUGANGSDATEN: │ +│ OTP-Code: 123456 │ +│ Gültig bis: 18.06.2025 14:30 │ +│ │ +│ 🌐 SYSTEMZUGANG: │ +│ Terminal vor Ort oder │ +│ http://192.168.1.100:5000/auth/guest │ +│ │ +│ 📋 NUTZUNGSREGELN: │ +│ • Max. Druckzeit pro Job: 4 Stunden │ +│ • Dateiformate: STL, OBJ, 3MF, GCODE │ +│ • Materialien: PLA, PETG │ +│ • Jobs benötigen Admin-Freigabe │ +│ │ +│ 📍 ABHOLUNG SPÄTER: │ +│ Ort: TBA Marienfelde, Raum B2.1 │ +│ Zeit: Mo-Fr 8:00-16:00 │ +│ Lagerung: Max. 7 Tage │ +│ │ +│ [QR-Code für System-Login] │ +│ │ +│ 📞 Bei Fragen: Mercedes-Benz Ansprechpartner │ +│ │ +└─────────────────────────────────────────────────────┘ -Hallo Max Mustermann, - -großartige Neuigkeiten! Ihr Gastzugang wurde genehmigt. - -🔑 Ihre Zugangsdaten: - E-Mail: max.mustermann@example.com - OTP-Code: 123456 - -⏰ Gültig bis: 18. Juni 2025, 14:30 Uhr - -🚀 So geht's weiter: -1. Besuchen Sie: https://myp.tba-marienfelde.de/auth/guest -2. Geben Sie Ihre E-Mail und den OTP-Code ein -3. Laden Sie Ihre Druckdateien hoch -4. Warten Sie auf die Admin-Freigabe - -📋 Wichtige Informationen: -• Max. Druckzeit pro Job: 4 Stunden -• Unterstützte Formate: STL, OBJ, 3MF, GCODE -• Materialien: PLA, PETG -• Abholung: Mo-Fr 8:00-16:00, Raum B2.1 - -❓ Fragen? Antworten Sie einfach auf diese E-Mail. - -Viel Erfolg mit Ihrem Projekt! -Das MYP-Team +👨‍💼 ADMIN-HINWEIS: An Gast aushändigen ``` -### Job fertig - Abholung +### Job fertig - Abholungsinfo (Admin-Ausdruck) ``` -Von: MYP System -An: max.mustermann@example.com -Betreff: 🎉 Druckauftrag fertig - Abholung möglich! +┌─────────────────────────────────────────────────────┐ +│ MYP DRUCKAUFTRAG ABGESCHLOSSEN │ +│ TBA Marienfelde - Abholungsinfo │ +├─────────────────────────────────────────────────────┤ +│ │ +│ 👤 GASTINFORMATIONEN: │ +│ Name: Max Mustermann │ +│ Anfrage-ID: GAS-2025-001234 │ +│ Firma: Externe Firma - Prototyping │ +│ │ +│ 📦 JOB-DETAILS: │ +│ Job-Name: Kundenpräsentation Prototyp │ +│ Fertiggestellt: 16.06.2025 um 13:15 │ +│ Druckdauer: 4:15 Stunden │ +│ Material: PLA, Grau │ +│ Drucker: Prusa i3 MK3S #1 │ +│ │ +│ 📍 ABHOLUNGSINFO: │ +│ Lagerort: Regal B2.1-A3 │ +│ Verfügbar: Sofort │ +│ Lagerzeit: Bis 23.06.2025 │ +│ Öffnungszeiten: Mo-Fr 8:00-16:00 │ +│ │ +│ ⚠️ WICHTIGE HINWEISE: │ +│ • Ausweis zur Abholung mitbringen │ +│ • Nach 7 Tagen wird Objekt entsorgt │ +│ • Bei Problemen: Ansprechpartner kontaktieren │ +│ │ +│ 📸 DRUCKERGEBNIS: │ +│ [Platz für Foto des gedruckten Objekts] │ +│ │ +│ ✅ QUALITÄTSKONTROLLE: │ +│ □ Oberflächenqualität OK │ +│ □ Maßhaltigkeit geprüft │ +│ □ Keine Druckfehler │ +│ │ +│ Unterschrift Admin: _______________ │ +│ │ +└─────────────────────────────────────────────────────┘ -Hallo Max Mustermann, - -Ihr Druckauftrag ist erfolgreich abgeschlossen! 🎉 - -📦 Job-Details: - Name: Kundenpräsentation Prototyp - Fertiggestellt: 16.06.2025 um 13:15 Uhr - Druckdauer: 4:15 Stunden - Material: PLA, Grau - -📍 Abholung: - Ort: TBA Marienfelde, Raum B2.1 - Öffnungszeiten: Mo-Fr 8:00-16:00 Uhr - Lagerplatz: Regal B2.1-A3 - -⚠️ Wichtig: - - Bringen Sie einen Ausweis mit - - Abholung bis zum 23.06.2025 - - Danach wird das Objekt entsorgt - -📸 Hier ist ein Foto Ihres fertigen Drucks: - [Bild des gedruckten Objekts] - -✨ Zufrieden? Wir freuen uns über Ihr Feedback: - https://myp.tba-marienfelde.de/feedback/xyz123 - -Vielen Dank für die Nutzung von MYP! -Das Team der TBA Marienfelde +👨‍💼 ADMIN: Gast benachrichtigen (Tel./Vor-Ort) ``` --- diff --git a/backend/blueprints/__pycache__/jobs.cpython-311.pyc b/backend/blueprints/__pycache__/jobs.cpython-311.pyc index cf14b79cbe02c2b69fd65fb356a057bc0295fdae..0b6c167d4cc796d3c53ba587ad99bf18ae008383 100644 GIT binary patch delta 1553 zcmZWpZERCj7(VB;_x7&6`(W!nx^YYI=mg>h>;twrV6cp#!%6~9_W|qH-MbGc9p2s| zVoQM#BR_PI1Az#`nGi6@59KBX6M{-1nz8C_Q`4o1D8CdjSPb~X5aT&5gb_|opYxpO zyzleA=jNoxzeZQTLwV?cxG_wbur1qoz3#Q_V|ux73tWi#t#`xANCWAQ&wu4; zlNEW)H#QNh~z9mDUNJ5DUz(D_zeNs zuWpv#qDz3wSe`ig*X0REKp-2Ml?kj_Kju@F$XVh%B6}lW`iEAGssSbwf9#MW;H1HG zz2+ng?ob1R-ZB4}tf=^(t$)J`d}rIbYK2}vsiJV5!VL&(&Y>0eQ~*LD~!oOZIoB(Q165|2XvEweCi^4exPx zz;4RJT@YAHk2UE(aTdG&!!* zx!ULFtgt94)Wn6FPe)@yV?t<53TxuRn#+5xg!Rqc@z(B`(322)lEOe-7>Eg;gb?=V zT=}d;n1XSOs9VIJ`O+jW#Cbut_v%YpC}w7i?@RD~I^Rc%S5_y*+PGNzd38)|O^B^Y zu_G>ad=pG;=+*nB_y#E^$_Y_Uir%>B)qQ&(05A^QP#S=C^fFz1@D+3)fXYtvpdqv9 zoPE|JPOXbus&q@$oE|*-3#)XyCp%;OP=X)Q`5}!Pu%K|~VsOoFZL3Gu>QP%GbFHO? zD3NAsdmg%;huRC7>m}>!h%{}nb~@0s19du?>BVMOnPIxF)>UM<>9lTaMmL)v<;`g0 zYUXB3J>fG;A&Hq;W^`46nUz+T1w}2$mCr;0_nY)^ul@W^E~gl&wK9W%rCLAmn?e5 zV2C1E&1X(EU%WaO9j<12@%cG7V?GMAITkouV}>=q8CK(C;a1H7LyS+DAd1mP5MyD! zCf{IE;(Wv>DDpj~n1R(+$thamZrKT+?$>n@0&g7q^*e7_yADG5c1p5hdJ;d)2ziWa zwtw*Luw|^#*hq= z=i-CsX>b%_Mc>lVSl8ar=H&$_J4FQWH&_#vkPP7D&NhJ%KM6+>lf_>dX4x>?Fvi>z zetGj)xC{mw-LzN}a=4Jl*3p7@aarSo51PgY#|N+L)huNn8+1F!LW*4OWD8DKo-ZyG z6`}L0P_Bq(i_xsYBraOY^3e(yWp^42q%n7f7;r>+Y(gME#}h9sWyr@}Y^j85+{I2X zF-V-qgHDQjf=6_oR1z$bJw_HXGLI~V;zjgBHUa%ms*qSog^*qL6zW0+RO5xrQxXv> zk}9dX+(adD8Nc;~`k^&l65k_TRdt>95!4Fa-dgE38r>OSNVlo$y_8BTsJE%Q(KixF zKLQ^fLfjg5i)-j-s-+{Y2=O!0dZ>mT_0LUJN7v!moqqZW9AFo}VrxjPh8aq~sN17k z*j0brZKC2gY&=x!CO|l;{duk(iED@9+CZ+Qb1j!^30&LFD>Nw4;26SheQ{fd(%tHH l@t-KQJJWehExF&yq+DtalU$gaOxmH%6i!ds)bQk6`WFUYW diff --git a/backend/blueprints/jobs.py b/backend/blueprints/jobs.py index 152ada90b..91116c4ad 100644 --- a/backend/blueprints/jobs.py +++ b/backend/blueprints/jobs.py @@ -402,7 +402,21 @@ def delete_job(job_id): job_name = job.name or f"Job-{job_id}" - # Job löschen + # Abhängige Datensätze vor Job-Löschung bereinigen + jobs_logger.debug(f"🧹 Bereinige abhängige Datensätze für Job {job_id}") + + # 1. JobOrder-Einträge löschen (NOT NULL foreign key) + from models import JobOrder, GuestRequest + job_orders_deleted = db_session.query(JobOrder).filter(JobOrder.job_id == job_id).delete() + if job_orders_deleted > 0: + jobs_logger.debug(f"🗑️ {job_orders_deleted} JobOrder-Einträge gelöscht") + + # 2. GuestRequest job_id auf NULL setzen (NULLABLE foreign key) + guest_requests_updated = db_session.query(GuestRequest).filter(GuestRequest.job_id == job_id).update({GuestRequest.job_id: None}) + if guest_requests_updated > 0: + jobs_logger.debug(f"🔄 {guest_requests_updated} GuestRequest-Einträge aktualisiert") + + # 3. Jetzt Job sicher löschen db_session.delete(job) db_session.commit() diff --git a/backend/database/myp.db b/backend/database/myp.db index 41bb361b12687c2bb1b8ea3280cdb92af542c916..5682e1735cbfbb0b7eeaaf1480dfd57f999208ac 100644 GIT binary patch delta 1823 zcmZ`)TWl0n7@o5`yX`K!d%9w&-0Gqg1KQbh&di)SvqiQo4FW>TwcBnC?Y3P?!*1zz zx2+IkI~pY+A+>D6dEmhdKAB)r_rV840tQW#M2Qa?VvIzh50aR`Lk$tZGc!=P5uRr9 zpYOkX-~Y{-nfLuO7ya+9_W31AS~V9-0{?vfM=&IZ2Bpwo#0Y0#)4a7WR32Q@rl)!f zBS-e-woUFpz40lnq-;wcp2&6_8Hwjh#|m`H92nQTbH;IPPdwe5-j;dg(4>+nUt6<3 zgpC9u3NbWOrR9r_PgVA;{T9Gl(NnT|<<(NM!SdCY+Zvyo&J5*8Mzh)0e0F>=JCrRp z4`fG=D}zV#rEIa3Z6X6rm^2l3O&#BZCI@Le-I>-8ckS)b_D^;dl$`@xcNfu)j`q${ zN-4FEZcXnPBM0^#cx~?(QS1T}#q2miL~lm48PgcT2{D;&Dil$oBXQF8=p+5HNi;K2 zIyxjKJ(QWql^TPBkql=gcpm-+XW=)MXlxobuJtCtV~NS-^YK(jhSwx`1O5fC!9OZd z^fe3yybZu1Emv+NjWB$mA;YGjTF_T6bTyP)cjf+z6VtSy?8LvXiX)v73woXSQ0F4v zFd1bQ^f>W_&fMaTOr)~%XxBT70fRFA)7^3`DAh?)OGB;8GkeBk=oVXP*Wm z4qtcy9)lO=t!Btu;$X8Z#_yQ3wty{jR`PUA{!B*TN+%%v>KlN1NsREoH2A)tr_sbGAGVV zT~{?bzMR*k!5R>9n{49Sd#aj<3dCe8G5Ac6XmZ8{weU-?R)Y)$nG6|>CwoDhznBIo zPfKF4nWmWH!ZB%8vz=}ovsx+V0#F$foc^cOGoavRuxg=1hM^E!DBTf?=klOiEWoH1 zN`Q1ByKo|Lg<9!WqSZtNNL3J{IwmgBdKaWu6BQt=Agt-kB?_i(P`9T=bEpQ5gvJyx zJ~R1T79jAYTSHw+5>qiUHFe_=B!g}SaY)v=1~L*@6Z7k0iFfk=@sDR6j(90YOcbP2 zOpwEopF8M)&{B@J9T+i)>Tu+vy<$(B;!7zaLt#uKhUx4QI1>qqin~qm`_L68E@A9g z>Vb9o?6HOQnjP!${45CYjkDl~GyOn(m@{A@0=7JKrG0yfF-)o=?7FhuF1^vY4jm5cKowk7)5a49DdJxUY_@P--)G? ziMf)glNJjApmLh`K})XZ39^~kFkr(D*&fO%S6MY&<)^J9;fT;FG!K(&!Or&9t|qZR z5lr43yEK#>yK}Llt7*KCHV-tnbc{*E?%0(_UxsPC(SEEc`g-QW_b8%yd^%?Z7u z`Xz*)rY2q?i&xz14QV07SPW z3-j$}-p1Io!12zWb)3#Ab9O#m$8exC?Xz0_eo*T-BD69sp?D&c>`RP>qF%KuTcJMP zev}fhK%H1}5{bveizTlMHwc0;2q{*Km^_C{Jlr4YO~xX<#U;kiWWU5i2nB2DI`~%y zd?FH0MAY&ux9g*;xE1zd?4?qJBoTt$#fr;Iji;a-^+9>T(CL1ONQn&A=6lR#r3_jJ zXcMg)D_ceS`s^{DWzdF^3aCUs(1wB6kiMC>^CfxU=x6ge5H+w}53TC*)(17Xqj0~Opn~YpS9fa4jKi4$Xa;>m&x~Vw zfV7!fIACMYI6#YN94+P)C(_O~!gHx6ORe7zj}G@A8)7c(_OSl3$G_4oEyTNkVLkwf z_UbN_OoS(zH3c7=WM0-XDR@dSK6tsDF*^Y_97{&KjpIrr02hFWX@G)=LC(k#k@-drNC?0LmVB=C z^hYzJC;d~vt-YM3o!v46N%gdxt7WcRmyP=SL#5F?f4#bWx_@lm-CVpqf7E{Ye_8dF z_TJXFbY5q?^H3}2V40C0=C9w{clpmL>x2LS0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0$mFX zrjlycTP)}$fzsh41o~89CAHG_w3hX3WHVdY&Q9v3+iEZSImls-a-5U2yQqW!fqoSj z%5Z6#8_ihhpPR^JrZSzG%w{h0S;%6RvfQsU?oEII0RjXF5FkK+009C72oNAZfB*pk k1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72=tu5CtAZXyZ`_I diff --git a/backend/database/myp.db-wal b/backend/database/myp.db-wal deleted file mode 100644 index 1e8567135d5732fbb1abbabbd79ab70c30364e16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173072 zcmeI5e{dY)O zR=V4ZY{L-NFCS;~S(k2a1(kW>v4NP6$ zJ)Pv+)9P;T?9JTC-^~x5c2{@res1r*eZKpBo=3TF%SEQ=8#gn|PKGXZm)|(}&B=?8 zKlrEJ|Mp1JQ-hzT>*zLS&+7U;AO7|e>@%GoZ>1}@wLQfIz8!ce@cRKPFclC2t!;0% zy+BuD0Ra#I0T2KI5C8!X009sH0T2LzDj@KlZH?VbAZeJf*;piO#*Ac|-__FC!vr#E zJvF_krxLMrI=i~7xp9}$xnRtsW6^Wd_Rs0G88$QNX)~74(|nK*k|62Y+St*5ll{l( z^in)#>eJzjX~dFI{oHhR?KBbSURz4-#nZj+Xrg;{WdF*3$(291|DOye^l3d2j>YL- zLGn|Ljkg@SX)zT`nr<(L-z^FyXz@}_QiN+ZuJ=B z##~wyZmMhC#{}jwdfJ>$=}Y#{G*92gdivj*F7SUZ4u5`k=8qq44ZNRe*b!lNMB0?r za234S7y<}@00@8p2!H?xfB*=9KrIunezvZY>FuzZx;t711_qb``(Sppx3qLNx70O< zqlsAZU_wtt^r)WhnbDIM*ocwHuI}Pzx(MGTEYFJfoH#ip7^6mX;MCZ;sdI}eJ9Rp? zFgQH4xU8lUk+BQ&$D+w-VtK-t9hHZKQ^N!H^TyIZs=tC z+pVVdT`l&puRnUhg0iYk1i-9>9P5RKvg+kC$gPo)d(tN0l9W-WFxUzflX0YNo!E(Qcvd zsoPQ6ufF~*HEAGfZ^<3m(&00lDh#FWotq@_iP5Fghg5knqmWqS@L2Txhf`ipPHC^D9zuv0--D5pJVfzKP?0AUEE^S|LJJ$N8);o4Qw8K^quz&yvfB*=900@8p z2!H?xY)%57tgged0$T#iZNi=1OgF=H+R^k-Dib-Yr-JfWPCp0=L&5Qtd#tAh2ZCea zR7_9K>hY*fG@d20%5p5>WXCVY>}))i)ZL>(K~|-;Ei3YX7?M<0kVH=8tw7TTBa+G+ zk(fUsvDApJMzD?%37kf(K;s4@63ZKrkUt`!)QGM|+l~?Oyr@`#h7Cp}ls6(ie?)w# z5nUBI93!Ht4jobb1|#Cj8xhGL5h*ny;(i`+5~1f&-3B8f<&B8T9}!n#M9NjUXN6Ht z-qIvlq@R3;Ex zFI}51uo8t+Re*57K00ck)1V8`;KmY_lpt=Y^7l1C1 zHCSu{T_6{Q^MW8$iC>_mbb$|V{dDLfw|@6C&;_b%ipFR_00ck)1V8`;KmY_lz;^=B z1)vL5rVHd^UO^G1D#;^&E>KWFLy*hKBlzshE5|<{zw&kH0>00>cmWUq0T2KI5C8!X z009uFE&|X6YC{*u#k``T(cJl}s4oCrU|kfh7SvIx=@`C^I)Q zB^+IjX6}g_`UO!Pnbe2UL%KY!k7o|tJCa&Hk{lgAJ$&-e=)#gOeG26e$FsE6A17Ze z@s2))>$)$ZPhl;6z8(DtzIXp}?*lLW>YeZl)Y4msv4Q{yfB*=900@8p2!OzKAOODr z`~s*iFt}mA%gxr0ASZ80ipN9`Qd=|REb(mN26d(WsAOHd&00JNY z0w7RJ1fUB*7l1A>=#wsxi^3I7ldGgpVG&*6M}v=k>~Ds}PUr%)G=XERAOHd&00JNY z0w4eaAaETBKo@{6uvv70T+FL-Dyfn_g*BxMTzvfD-a^ zmGmiGjl!V|tVQAL`V{6E)kYq{$GT>of2ZS#r=bg6hj|rG0RkWZ0w4eaAOHd&00Ol{ z0J?yiF0c~M5l-Z^D(O=QT>yT86&nSY@2TKQcq&Tx1sr_}zj1rr{Nz{u_jBk|SW6Q) z#tH%;00JNY0w4eaAOHeYPvDyS6dsy9d2DuAyz7u;Ox`_bPK}?L8e#7mJ7Y|V{Bg1% zO(o@XCdbX(EnJX{==sB=()f{4zxosktRibP(sDPp6G7C%8PkYT+x%=e6E|9)nmD3CJ!-8OU3UrQ8 zq&KvAR-;W8g@Uo?Z7Jx!n72hOII5ZYPDZ=MYU*}7D)cF=`VVE^03H1ZF242T%a8xw znNPqkkVgm)K>!3m00ck)1V8`;K;T9o0KWkI0;n%AxM9VEYwJ^3m3ahI-coo;l8hec<(-SLW`4E|51r;voot00@8p2!H?xfB*>G2n3)DKo{6Vx>giJmT_DH{Az`gUf?M4|n~_@{!AqA$|2g!zPlTWg_@xzrY?k6YRPC#=&n+UVQw)_9rhraQlC9Q?@S9(ALWY z2HW1DKd^uR2!H?xfB*=900@8p2!H?xfIuMutC!u$wEW~iH{Gy@IaF^cOf;5`7|Em_ zG4*JHrlEv5iB;)JqUCENT>5<4)DvklY-Z9uk$F9GHaM%#$LI8PWIi6A)0559Bd1P{ zA6j|Zn2{VejQHMpBW?C~uRalB2}ip32N#W$*)I@Y-4_Z@=;3J4j3xAF(8!oe(KmS_&Yah3DfyUOK%jp920TvJd0T2KI5C8!X009sH z0T2Lz>rTMxJFt_fa|G7)#UpElRjG+UaYWXnbY#8Fmyi;=KvvS&T)Mz>Z+-NapF27H zueL7GwByg$bOHJh3kZM!2!H?xfB*=900@8p2vi>dtB)%TtQ(34)*7p+yuu6l_iFjl zf%O4@0&D03t2f46GZA2G)dUX(~S9x%|LdC>>bW`xID17vSI*V39|_5?QSX1D(_y z^#%H`Xn*wH$6on@tqW}3{y~Q>K!3#o0w4eaAOHd&00JNY0wA!SfYrwr2G&i*18b39 z!b_6o$SxL32iE@FErc#W^Tgp7s4S#J9>FHeBY63@zj8K|?tRqO1)8`0LV+$oS6~4F z5C8!X009sH0T2KI9|%}|LSbONrFdX1v$Rc{CMo%MtmV>ywNE+L&;>DR-U7)4qtLtuKEUoiXX^snS{ht*0lE?k2!H?xfB*=900?YO0#=_?c+0wYS#XKau2rI>s`XxjJG? z{&GWIfNsJ90w4eaAOHeYO2Fz<3j^!oWx*wdRxcBIBIRGBc(^>@?o(h5T>yT83Oh}q zz5qcUL8a#o`V@LHDjo1?+J|2Nx;-KmY_b zD*>xdD-5iQmj#zJR#0jEGRGZj4{5$jK3!o!7w}@|gmARrGM-=g$m4FJ~S72o8$F zkNxe_()Vp$U}xh4C3FG00~Qbf0TA$wfYsMqc+0w2S#TOzD=ep}oKkLC@T2}j*3bpK z*m>a>aJ#}neF0B)Ueq0QJ9*HLz{|wrQ;u~X`~vU`RGh_uJOU2^G3pM!i**M-*>Ky- zZ@&Fczi#US?G4YD)CK4+SU>;-s+WM(*H;)=7b^=+18a@tHC5mpovb~S1^<*kfi-ji zFJ-~u7jTP>P+!1PS#abLxSl-7Bk*u}jywX_a|gNrbOGoBdzeG@mcm41>4=d`>Jd|q z(h`GG4=48!Imi)u6DNeagA_xx`vvwr^Ggpk{$TeJTNijwL#qc}fbN6^1U54PtGB-l zOHekjRy9cy#4;^GJA4YPp$mAi^TIFSX6Hp70rChczP?2sftQH~c?50~k5DLP7cXo= zWLhy))+C3R?V+#<`~t4B1}UUpyb%iFSx%4%&*fk7cxZ%z`U0->;TP~ANWw4hF8T#- z9*^pE4}bU1>|p<<`e!}q0(3VlAW(G#hJQN1wA?<>O$TP@$}mhONxLCM=EE~_y+F0h z#_}4+agtlN6zBq;?7Z*`xP8eZkHCwa7kLD3=MM4+JWV{vBXB!;kVoKU;(;#UcJ81b zfv1TF^#$Bc9@H1ueDwwXYy10uH*}}6VCw?!t#9(E3(y_0Y(4^3-v`T)jnxn#tVnB- ztE5cXc+!^}<6OU z!~?&8mx;%ps$-}-h`NKc4rXN){VnJMn@<;b=8pgV*4vBZRa+O>Rd>X*EKELu2M;-y{3sm|oiGBng?7Z*`xZQby zU%=CCJNO0MP9FFL;1{Sgw1Z#3)5HV6fa}D=mXURf`U2T93)Nm<;PU8?&6Z#JpAXo& zz;5PpIl92*bz$+fudwvwz#tf32dDL(_hKsHqf z^#$C%W>9w!bq6cHzEumqK8oqG^p>wevy`bWE9D!WJm|9MQ|S81MSTG;MkV+K;1@uj zLNjJ0#|w{oSh*FrjzuN%#KXqLDKD1;VTQLcs|=91WVWgdPnV8P|!2E1dR= qRa&N@sm5w5ukga^t8(xQz%NiL`FJIkC%h&)E*Em85o)_n;r|0rPFI@% diff --git a/backend/instance/sessions/00d93c6dcec8d7d521ae797d19133609_activity.pkl b/backend/instance/sessions/00d93c6dcec8d7d521ae797d19133609_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..5e34d18ac58fbc5deffd4ed3cc37258713225bb4 GIT binary patch literal 60 zcmZo*nQF)Y0ku6sZD Ln3$PPDb@o3@wpH& literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/02ff93c2e2b089984dedc4290ad389a5_activity.pkl b/backend/instance/sessions/02ff93c2e2b089984dedc4290ad389a5_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..e4a0bacc18fc75d2ebced8b1550b3a389272ac11 GIT binary patch literal 60 zcmZo*nQF)Y0kuHe>zNo^ L7@3++Db@o3@(~a_ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/03aa4f3d1d7942f3250b3f4be4132b2c_activity.pkl b/backend/instance/sessions/03aa4f3d1d7942f3250b3f4be4132b2c_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..c5f64f87c105ce40a40eda067b225db0f8aeba81 GIT binary patch literal 60 zcmZo*nQF)Y0kuX{fB L8Jd_*Db@o3@stoN literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/05cdfce5176a5261477d5a8e05e64287_activity.pkl b/backend/instance/sessions/05cdfce5176a5261477d5a8e05e64287_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..fd6919d0ba63b074e4dede8f9bc7e1ddf8e66aeb GIT binary patch literal 60 zcmZo*nQF)Y0kuKU6F Ln;Du+Db@o3@uv_j literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/07ce781c27faec06303a2bd89b4cb4c1_activity.pkl b/backend/instance/sessions/07ce781c27faec06303a2bd89b4cb4c1_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..8b2aef4ab7f59f0410b2d374a3af4c28a274a725 GIT binary patch literal 60 zcmZo*nQF)Y0kuKPfE LT3Q%RDb@o3@zW4B literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/08ee0cb659fcbb51cc6de8f8bd1ca8d3_activity.pkl b/backend/instance/sessions/08ee0cb659fcbb51cc6de8f8bd1ca8d3_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..73b10bef6b78dbed2c016d84d240160caa7e24b3 GIT binary patch literal 60 zcmZo*nQF)Y0ku6w~a Lm|9v+Db@o3@+}ZV literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/0b0c7d6fe1f49582fdbd6ef26075b25f_activity.pkl b/backend/instance/sessions/0b0c7d6fe1f49582fdbd6ef26075b25f_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..571526f2f43a7babfb60bf41949a14d093381e86 GIT binary patch literal 60 zcmZo*nQF)Y0kuHe=^2@r Lo0u6)Db@o3@#+vX literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/10bacc965a8c7e4da0f004c1c9251918_activity.pkl b/backend/instance/sessions/10bacc965a8c7e4da0f004c1c9251918_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..b63bfdc94e9f5ff681740884201f90f649cfd4b3 GIT binary patch literal 60 zcmZo*nQF)Y0kuF|>zNsv L8Cn=kDb@o3@y-x3 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/1255ee0d5f5d48c5f60f7a81fcf58f46_activity.pkl b/backend/instance/sessions/1255ee0d5f5d48c5f60f7a81fcf58f46_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..3367e9ca962cf4550b39e733d56ef4637f2ea7b4 GIT binary patch literal 60 zcmZo*nQF)Y0kulvDx L8JHSPDb@o3@t6=S literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/133d0ffb08dbb90831fd6fafd9dbbaf9_activity.pkl b/backend/instance/sessions/133d0ffb08dbb90831fd6fafd9dbbaf9_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..232cab7113ad9d554bee62ff3c3dc14ee5e1f30a GIT binary patch literal 60 zcmZo*nQF)Y0kuKT|= L7?_z)Db@o3@v;yz literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/137422ae5ec13f7ba751acca706fb18e_activity.pkl b/backend/instance/sessions/137422ae5ec13f7ba751acca706fb18e_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..8f323f82c44e45882f3e98511d2d79d02679edec GIT binary patch literal 60 zcmZo*nQF)Y0kuKPiC L8ycEUDb@o3@v{&u literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/1d64bdc5f62e81060939aa39e49cbd1c_activity.pkl b/backend/instance/sessions/1d64bdc5f62e81060939aa39e49cbd1c_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..cf2848caa19f762f70985be1013338ac52e655ef GIT binary patch literal 60 zcmZo*nQF)Y0kuKPds LTACY7Db@o3@z4-5 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/240f06b75126fccdec389389c983bc28_activity.pkl b/backend/instance/sessions/240f06b75126fccdec389389c983bc28_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..a86e7a4a4bcb7f8ee026832eb81662cde86fd4c5 GIT binary patch literal 60 zcmZo*nQF)Y0kuRB3E LSQ;BnDb@o3@+uHK literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/315f4e80f13ff6e2ad41ef18b461079e_activity.pkl b/backend/instance/sessions/315f4e80f13ff6e2ad41ef18b461079e_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..05c962f31a07b4ec88c59183e434cefa53a03ef1 GIT binary patch literal 60 zcmZo*nQF)Y0kuzSIF Lo0wWmDb@o3@$C>g literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/3204c7df261df39015ffc41960d47413_activity.pkl b/backend/instance/sessions/3204c7df261df39015ffc41960d47413_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..26fed57dbddc65a07d41ec7a957a85d552fd3096 GIT binary patch literal 60 zcmZo*nQF)Y0kuHe>Y13D Lm>U^PDb@o3@!}9N literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/32eba8b525fc17e8e53fd85682a6d7f0_activity.pkl b/backend/instance/sessions/32eba8b525fc17e8e53fd85682a6d7f0_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..ade0f43e4ae98073a8512a2eefc7432786b07052 GIT binary patch literal 60 zcmZo*nQF)Y0kuRA|> LnV6bQDb@o3@%a!r literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/339803aee2c579cb96733adc72462649_activity.pkl b/backend/instance/sessions/339803aee2c579cb96733adc72462649_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..44bc281d3b9af8d3f97740500ae69a8598863159 GIT binary patch literal 60 zcmZo*nQF)Y0kuzSBX LT3Q%QDb@o3@#zpc literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/348ab49ad0f2952f3989f05e1c77107a_activity.pkl b/backend/instance/sessions/348ab49ad0f2952f3989f05e1c77107a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..8e66e27b79e97e274c1e17ecdb83dbc1a78e14d4 GIT binary patch literal 60 zcmZo*nQF)Y0kuF|=~-Hs Lni!c(Db@o3@(U0- literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/35e3a4487dfc2f54254ae4406c094360_activity.pkl b/backend/instance/sessions/35e3a4487dfc2f54254ae4406c094360_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..790efd24277bed9c79141630d42e9366f6ed1bc5 GIT binary patch literal 60 zcmZo*nQF)Y0kusgo? LSeO`3Db@o3@(d6; literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/389b5577f81cc9da7c3e0a56aa5b49f1_activity.pkl b/backend/instance/sessions/389b5577f81cc9da7c3e0a56aa5b49f1_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..218d0986ce2f8d68154b93999806532e4a3f5ac6 GIT binary patch literal 60 zcmZo*nQF)Y0kuGz>X{gt LTNs&5Db@o3@*xmB literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/3ad0631cf9e04961d113dfb21928e10b_activity.pkl b/backend/instance/sessions/3ad0631cf9e04961d113dfb21928e10b_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..9668757094b7bbd63a62373e9552e8010f474090 GIT binary patch literal 60 zcmZo*nQF)Y0ku6sZD Lo0*zTDb@o3@zD@9 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/3b3cdd1b201c8dbb63778f900ca8169b_activity.pkl b/backend/instance/sessions/3b3cdd1b201c8dbb63778f900ca8169b_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..8f9c98506aa85555a53b5489ebb106001d354123 GIT binary patch literal 60 zcmZo*nQF)Y0kuKR*@ LTUwY;Db@o3@*EIC literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/3ee8b83248f6c69e85cd5ee2e4b69142_activity.pkl b/backend/instance/sessions/3ee8b83248f6c69e85cd5ee2e4b69142_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..3237809e16ea5d2d9c40025b0118051af889f1ac GIT binary patch literal 60 zcmZo*nQF)Y0kuKU7w L7#bN&Db@o3@r4j4 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/4084f73ba81092cc6fdd2736e5807a38_activity.pkl b/backend/instance/sessions/4084f73ba81092cc6fdd2736e5807a38_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..32673fcba9a79e0415fa8e194a57acf4b7a29de7 GIT binary patch literal 60 zcmZo*nQF)Y0kuzSHc Lni(5RDb@o3@&gb! literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/488ba26cf5a4e740bb024a480adeaa76_activity.pkl b/backend/instance/sessions/488ba26cf5a4e740bb024a480adeaa76_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..73c3ea40abbbec3b14c712d3977007e9e17a421c GIT binary patch literal 60 zcmZo*nQF)Y0kuF|>Y14v LSQwa0Db@o3@yHM{ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/50c79d8befb49504b851d3405039aaf6_activity.pkl b/backend/instance/sessions/50c79d8befb49504b851d3405039aaf6_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..5d8e7b9160b27a44a90335b7b490331457f79dd6 GIT binary patch literal 60 zcmZo*nQF)Y0ku6w|C Lm|7T3Db@o3@#zpZ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/51b98666b5b930592340e36e7a164d48_activity.pkl b/backend/instance/sessions/51b98666b5b930592340e36e7a164d48_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..cf44a4e1abcc3486c4db9e460489fe73235594c4 GIT binary patch literal 60 zcmZo*nQF)Y0kuls=Y L8kw6+Db@o3@tY7X literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/554060d24bf9e850a183cf552510ddcb_activity.pkl b/backend/instance/sessions/554060d24bf9e850a183cf552510ddcb_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..d3605b081cede793f00070ac33048c9f30229a96 GIT binary patch literal 60 zcmZo*nQF)Y0kuKU6^ L7@L_)Db@o3@!1eI literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/56c56453c93a270560e4c12c693518f6_activity.pkl b/backend/instance/sessions/56c56453c93a270560e4c12c693518f6_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..fc6d755dda599aeb2f613385163ce55459ac69b5 GIT binary patch literal 60 zcmZo*nQF)Y0kuX{gs LSXdfPDb@o3@y8G} literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/59992dbcc79d97b8b1f05a4c2c11b1ae_activity.pkl b/backend/instance/sessions/59992dbcc79d97b8b1f05a4c2c11b1ae_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..34e16d8159ea9763c7438ebb4c4bb9dffffc93c2 GIT binary patch literal 60 zcmZo*nQF)Y0ku6sWB L8kiYQDb@o3@pcd< literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/5bfec630a015908a08a744a09310221a_activity.pkl b/backend/instance/sessions/5bfec630a015908a08a744a09310221a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..676d6a6ef6cc341a91f4aeda9ec0cd584aee4029 GIT binary patch literal 60 zcmZo*nQF)Y0kuscC_ LnOK-kDb@o3@*5C6 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/5d05f280b059030ca8221d844066bad4_activity.pkl b/backend/instance/sessions/5d05f280b059030ca8221d844066bad4_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..73ed3a244d2000f098bc68ad3edd49921f859b74 GIT binary patch literal 60 zcmZo*nQF)Y0kuX{o` Lnj4r-Db@o3@z@YG literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/5f694600e43ec2cd897c3b4407413cab_activity.pkl b/backend/instance/sessions/5f694600e43ec2cd897c3b4407413cab_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..80e5094badaaef3e4b747bd56fc46bb8b15e9ca4 GIT binary patch literal 60 zcmZo*nQF)Y0kuF~>zNpv LS(=zkDb@o3@%#`u literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/645344b572a30193d6f145e730c87761_activity.pkl b/backend/instance/sessions/645344b572a30193d6f145e730c87761_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1b9d738019385facf37968f93b813a6902c291e3 GIT binary patch literal 60 zcmZo*nQF)Y0kuRDP? J0>PAGJpl5B5KjOA literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/65202c575626c78378c5fb3017225319_activity.pkl b/backend/instance/sessions/65202c575626c78378c5fb3017225319_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..fa09f6ae3c8504246477916871f97a5955805062 GIT binary patch literal 60 zcmZo*nQF)Y0kuW LT38rQDb@o3@-+}a literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/678bdb8a5d1e9127c8d4c15073686816_activity.pkl b/backend/instance/sessions/678bdb8a5d1e9127c8d4c15073686816_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..d6546bf2786572268189a71f5fd4daab5188746c GIT binary patch literal 60 zcmZo*nQF)Y0kuKPkZ LSQwa0Db@o3@wpH& literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/6bd7a7cddfcf92d9e363645a65bdd26d_activity.pkl b/backend/instance/sessions/6bd7a7cddfcf92d9e363645a65bdd26d_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..8c178295fd640c9d61ee05b76f804428584ec036 GIT binary patch literal 60 zcmZo*nQF)Y0kuscBa Lnwy(VDb@o3@(B<- literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/6d573b487ef7baa2d36acf4fd77c08bb_activity.pkl b/backend/instance/sessions/6d573b487ef7baa2d36acf4fd77c08bb_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..c1a82ede203dda7741468fdfa4ee2aa937826438 GIT binary patch literal 60 zcmZo*nQF)Y0kuGz>X{fC L8<`kSDb@o3@!t?J literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/6de2b4ef769157e66da6a6374314d3d8_activity.pkl b/backend/instance/sessions/6de2b4ef769157e66da6a6374314d3d8_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..863e53dfd8c1218721cc6444cf23b87a04e8c548 GIT binary patch literal 60 zcmZo*nQF)Y0kuF|>RFnZ Ln3x(*Db@o3@$?Wk literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/7259732b9d588c87953c796723a5a47c_activity.pkl b/backend/instance/sessions/7259732b9d588c87953c796723a5a47c_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..271e4eb5b16bffff9f5a4ee0bf8ce74f434cfac1 GIT binary patch literal 60 zcmZo*nQF)Y0kuRB2Y LnHyP7Db@o3@+}ZP literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/72f7528282967b3652adcc184c740893_activity.pkl b/backend/instance/sessions/72f7528282967b3652adcc184c740893_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..682baf7817a6e0bb99cc951cc4fecccd5e883aff GIT binary patch literal 60 zcmZo*nQF)Y0kuHe>lvAu Ln;IHVDb@o3@%|7t literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/7369ea35d5dec66e2a85d0625dee8ddc_activity.pkl b/backend/instance/sessions/7369ea35d5dec66e2a85d0625dee8ddc_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..9f9309257050e86b507de2ab2c8ffbafcbe440d4 GIT binary patch literal 60 zcmZo*nQF)Y0kuKPcB Ln;RQWDb@o3@wyN& literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/75825717d070c439a257020173cbcd74_activity.pkl b/backend/instance/sessions/75825717d070c439a257020173cbcd74_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..06dc0affe22ffa79efdeb2ba5d32058ef1f2034d GIT binary patch literal 60 zcmZo*nQF)Y0kuF|>lqjt L8dw@nDb@o3@pup@ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/7ae8d9fdfcfe08de6ad8cc50c1ab0b8b_activity.pkl b/backend/instance/sessions/7ae8d9fdfcfe08de6ad8cc50c1ab0b8b_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..e34a40ee16824cfe44a677c9b7fd7eaf0af99be7 GIT binary patch literal 60 zcmZo*nQF)Y0kuKU6F LTbLP5Db@o3@x%}_ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/7ba552d2904dff81cefe2b862581f922_activity.pkl b/backend/instance/sessions/7ba552d2904dff81cefe2b862581f922_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..e47a72b61887056df115ed4070b5a3e64d6a2a0f GIT binary patch literal 60 zcmZo*nQF)Y0kuKPds LTUwY+Db@o3@xu@{ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/7fe394a370f734a6c8763119035c5c3c_activity.pkl b/backend/instance/sessions/7fe394a370f734a6c8763119035c5c3c_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..c561fe004f52562dc72d5d308e3ef2bd17b2c4b6 GIT binary patch literal 60 zcmZo*nQF)Y0kuF|>RB3E L8e14lDb@o3@$3*b literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/89bcf6de1bb118277724391a0fe60d6a_activity.pkl b/backend/instance/sessions/89bcf6de1bb118277724391a0fe60d6a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..908a5c5118ba011dd7bf1db31401f9d6806833dc GIT binary patch literal 60 zcmZo*nQF)Y0kuHe=@}WA LSQwg4Db@o3@yHM{ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/8a91c625c43bec32d54a0121a7456fb1_activity.pkl b/backend/instance/sessions/8a91c625c43bec32d54a0121a7456fb1_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..9c867029a70dd5d602a46abcd2d5eba3a3eba213 GIT binary patch literal 60 zcmZo*nQF)Y0kuF~>Y1CH L7+M-mDb@o3@$e8f literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/91d73abf0cc4d796e4a6191786a0f2d2_activity.pkl b/backend/instance/sessions/91d73abf0cc4d796e4a6191786a0f2d2_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..7f8623426b769afcb4ce288020c98c8bb8838d85 GIT binary patch literal 60 zcmZo*nQF)Y0kuzNr_ L7#W*SDb@o3@yif2 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/9571781faf08b1f173d544558a1701f9_activity.pkl b/backend/instance/sessions/9571781faf08b1f173d544558a1701f9_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1cca8c004783e5cd246ccba5500ba80878448e31 GIT binary patch literal 60 zcmZo*nQF)Y0kuHe=$Tnq L7#bT+Db@o3@&XVx literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/9939092b7fdc5196c3ebd99ed092559a_activity.pkl b/backend/instance/sessions/9939092b7fdc5196c3ebd99ed092559a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..fd4989d5cda85e7d4774cb1de78e4fbf3b76610e GIT binary patch literal 60 zcmZo*nQF)Y0ku6w^X Lnj4u-Db@o3@$e8i literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/99a474a450f2e153a60fca2973b02c45_activity.pkl b/backend/instance/sessions/99a474a450f2e153a60fca2973b02c45_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..23b8aabbfd1694b95cdb6258ab7c4be459e7e552 GIT binary patch literal 60 zcmZo*nQF)Y0kuF|=~-GD Ln_HSsDb@o3@F~>Y1Ba L7#f;PDb@o3@#qjV literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/a0a8b0aff69ebc1a7fdd48aea8005839_activity.pkl b/backend/instance/sessions/a0a8b0aff69ebc1a7fdd48aea8005839_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..a226b87d99de83c3c0ca9b5f2d6945560fde58b3 GIT binary patch literal 60 zcmZo*nQF)Y0kuzSFE Lni-i-Db@o3@zW4C literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/a130dfff1189da322ec113b154557e9c_activity.pkl b/backend/instance/sessions/a130dfff1189da322ec113b154557e9c_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..5aedf35cf30628711d1ebe03beff4f1339a3d3be GIT binary patch literal 60 zcmZo*nQF)Y0kub JnaPx5Jpl3;5IX<> literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/a4a3036a0ad39a8c5c16905511285196_activity.pkl b/backend/instance/sessions/a4a3036a0ad39a8c5c16905511285196_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..11dc97a862f8cb7a138332060f37480120fd80e8 GIT binary patch literal 60 zcmZo*nQF)Y0kuzSIF L7#LejDb@o3@%Ruo literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/a758f492b0ed240a69eb398a673ebae1_activity.pkl b/backend/instance/sessions/a758f492b0ed240a69eb398a673ebae1_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..4b03b0babfbb09cbbc3c9bee7e8b8f7421a0edcc GIT binary patch literal 60 zcmZo*nQF)Y0ku6sZB L8Wj41qv=A-; literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/aa693104f6390bdfc20bfc70848abaaf_activity.pkl b/backend/instance/sessions/aa693104f6390bdfc20bfc70848abaaf_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..754ed4088af0f7cfc92403e780aeb52a6d520d75 GIT binary patch literal 60 zcmZo*nQF)Y0kuF~>RA|C L8XHKR)a LTACP7Db@o3@zxME literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/ae11ec0ba707d0bccfa687dcb1cd8adb_activity.pkl b/backend/instance/sessions/ae11ec0ba707d0bccfa687dcb1cd8adb_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1be98f17ebb6055eda772ec24306ec8f4532a743 GIT binary patch literal 60 zcmZo*nQF)Y0ku6w~a LSeP15Db@o3@)Hm} literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/aeee01d33813ffc3b4675e2cd92d6a12_activity.pkl b/backend/instance/sessions/aeee01d33813ffc3b4675e2cd92d6a12_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..7e62bd0056779a94b09cbe0d8953788f9fe9b49a GIT binary patch literal 60 zcmZo*nQF)Y0kuF|>RFhZ LnwT0*Db@o3@%9im literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/b041d9b12d7fea2814fe40bf5c664aaa_activity.pkl b/backend/instance/sessions/b041d9b12d7fea2814fe40bf5c664aaa_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..b053ae792160e9e87d48e3a93fa55705c3c694fb GIT binary patch literal 60 zcmZo*nQF)Y0kuKR)a L7@8PNDb@o3@skiK literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/b27bc27d7d1931e4019dd10536bc9d53_activity.pkl b/backend/instance/sessions/b27bc27d7d1931e4019dd10536bc9d53_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..0562c8854c93916e75f6d149c095f7d87a9f7ba8 GIT binary patch literal 60 zcmZo*nQF)Y0kuF|>RB2Y L8(3OSDb@o3@!=3S literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/b3860d0521ceeaa4359a4dc4803d6d52_activity.pkl b/backend/instance/sessions/b3860d0521ceeaa4359a4dc4803d6d52_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..cde25b7811d5d3ca23d467bda808ce040518ecc8 GIT binary patch literal 60 zcmZo*nQF)Y0kuX{gt LS(q72Db@o3@yHM| literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/b38f6e60b7d37b0273d216a8b4f8ffce_activity.pkl b/backend/instance/sessions/b38f6e60b7d37b0273d216a8b4f8ffce_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..96ff0f9485c152600240f4e4476dd1e4c41ec4a2 GIT binary patch literal 60 zcmZo*nQF)Y0kuzSAu L7+M-lDb@o3@rMvA literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/ba1db027900143c37a3b74a95f531955_activity.pkl b/backend/instance/sessions/ba1db027900143c37a3b74a95f531955_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..c6c033858e8bcaf350cfcd3d542cb43d7a49be04 GIT binary patch literal 60 zcmZo*nQF)Y0kuX}*? Ln;M!;Db@o3@&6Dw literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/bb815f501a96ed3b8ea98312dfb85332_activity.pkl b/backend/instance/sessions/bb815f501a96ed3b8ea98312dfb85332_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..9818f7f9077ef41b47f4ebdcdcb1b8e298b72796 GIT binary patch literal 60 zcmZo*nQF)Y0kuY12X L8k?C-Db@o3@&6Dz literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/bbf51d955ee44657fbc97b1cf4eaa0de_activity.pkl b/backend/instance/sessions/bbf51d955ee44657fbc97b1cf4eaa0de_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..6c9bab94925d733e4095d251c676e30267f9b5c3 GIT binary patch literal 60 zcmZo*nQF)Y0kuZ LnwpwUDb@o3@$wKl literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/bf6ec14a64f35a885f954b636ad231f7_activity.pkl b/backend/instance/sessions/bf6ec14a64f35a885f954b636ad231f7_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..d9dbc565f6ead69940d7687a40d710516e6d1f7f GIT binary patch literal 60 zcmZo*nQF)Y0kulqsu L8ygu-Db@o3@nR4p literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/c234d50b2bc865541fcb0331dcb678d4_activity.pkl b/backend/instance/sessions/c234d50b2bc865541fcb0331dcb678d4_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..3844b90c9ed5e325a836d7b68b49b286ac3d9143 GIT binary patch literal 60 zcmZo*nQF)Y0kuG#>KU7v L7#kZ*Db@o3@&*tz literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/c6c9d7df48b93afdbb24d26ab46bb29a_activity.pkl b/backend/instance/sessions/c6c9d7df48b93afdbb24d26ab46bb29a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..cf432d645a36c7317b00cb7702dc7489ed8d41e0 GIT binary patch literal 60 zcmZo*nQF)Y0kuX{gt L8d#c5Db@o3@v0Cp literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/c71bdba2cecd72d08302286cf7fac38f_activity.pkl b/backend/instance/sessions/c71bdba2cecd72d08302286cf7fac38f_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..5c9e10924fecb21ef4e3a0ef9db3c9ff27425721 GIT binary patch literal 60 zcmZo*nQF)Y0kusgqY LnwuC*Db@o3@&yn$ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/c73f6cca8cfa5c7354d1c409b1f2494a_activity.pkl b/backend/instance/sessions/c73f6cca8cfa5c7354d1c409b1f2494a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..0a3083dd70e08217c72ff941f6f03cade3a3d967 GIT binary patch literal 60 zcmZo*nQF)Y0kusgo? LT9_J6Db@o3@%Ruo literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/c7c4144753fd88d54d3a97597d590be7_activity.pkl b/backend/instance/sessions/c7c4144753fd88d54d3a97597d590be7_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..d5e12c4c8c39955e4b859b11f47b92b7eb874ffb GIT binary patch literal 60 zcmZo*nQF)Y0kuKT}t L8JU<*Db@o3@z@YG literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/cca540e07fc1fa5e8b547f0ee360f4fc_activity.pkl b/backend/instance/sessions/cca540e07fc1fa5e8b547f0ee360f4fc_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..4edf342265b8b5bee617fe208a1052513cc952a6 GIT binary patch literal 60 zcmZo*nQF)Y0kuX{fB L8CqCQDb@o3@v0Cq literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/cdc398a27b59003756577c91feb1178f_activity.pkl b/backend/instance/sessions/cdc398a27b59003756577c91feb1178f_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..75d7da7524a8568551d93499631882ea610face9 GIT binary patch literal 60 zcmZo*nQF)Y0kudfd K42`E0>j41p;}9AE literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/d643377d20547fde80440a6064894999_activity.pkl b/backend/instance/sessions/d643377d20547fde80440a6064894999_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1f0bcdbf707d71ce0332f0245397353418c81b64 GIT binary patch literal 60 zcmZo*nQF)Y0kulvDx LnHyV7Db@o3@z4-A literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/d8becf5d32df4a48fa6b3eec2a41aa76_activity.pkl b/backend/instance/sessions/d8becf5d32df4a48fa6b3eec2a41aa76_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..85b30e8f1839e45adca51617395eb67cace5afa1 GIT binary patch literal 60 zcmZo*nQF)Y0ku6w@t LSQ?p5Db@o3@v{&y literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/d9b45b2cae51bbb35cf708b02fc80f29_activity.pkl b/backend/instance/sessions/d9b45b2cae51bbb35cf708b02fc80f29_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..3faa0e79bee8d456093e179a627474b05997bcaf GIT binary patch literal 60 zcmZo*nQF)Y0kuKPat L8yXl+Db@o3@sAKD literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/d9dc8aeb34f56ccdb3e81b041d8d93aa_activity.pkl b/backend/instance/sessions/d9dc8aeb34f56ccdb3e81b041d8d93aa_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..0ecb1d4c2fb9f5d7978b0f82bc78c905a9cdcecf GIT binary patch literal 60 zcmZo*nQF)Y0kuHe>scC^ LTAG+oDb@o3@lvDx L85@~QDb@o3@uLtf literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/df3e79fd230b09d746e0291dc733936a_activity.pkl b/backend/instance/sessions/df3e79fd230b09d746e0291dc733936a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..c03bb2a765bcc1038a34490b556116e8bffbb177 GIT binary patch literal 60 zcmZo*nQF)Y0kuF~>Y19G L8=4qQDb@o3@zxMA literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/e07f3bf764317f2a81917e1e3484b047_activity.pkl b/backend/instance/sessions/e07f3bf764317f2a81917e1e3484b047_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..8058f7292db8cefb49481cbb9825aa5ee4b6241a GIT binary patch literal 60 zcmZo*nQF)Y0kuX}-Y L8d?}mDb@o3@x>4_ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/e6081fd42b756a4acc6ec9048dba9973_activity.pkl b/backend/instance/sessions/e6081fd42b756a4acc6ec9048dba9973_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..d33f6ebc8d31123f8803cf8141bb0c0e03f0aeb5 GIT binary patch literal 60 zcmZo*nQF)Y0kuKPdu Lm>8H$Db@o3@n{ew literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/e7f12221e95082097ebfec52a8c9d466_activity.pkl b/backend/instance/sessions/e7f12221e95082097ebfec52a8c9d466_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..b47d5e31d7fab1fe0160487d3e5fab4f90850522 GIT binary patch literal 60 zcmZo*nQF)Y0kulqpu L8X6f-Db@o3@pcd; literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/eb49e149116ba4070d8e76d1fefe6ac4_activity.pkl b/backend/instance/sessions/eb49e149116ba4070d8e76d1fefe6ac4_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1627f483ebdc17905eec71965d7ca8f4e45d53f4 GIT binary patch literal 60 zcmZo*nQF)Y0kuHe>KPjt LnHd^RDb@o3@thDT literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/ebac07b9a2f41a036f9e001515ac0d57_activity.pkl b/backend/instance/sessions/ebac07b9a2f41a036f9e001515ac0d57_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..0faf1cf7a4679e76f61afe3ceadbbc8045eb6e79 GIT binary patch literal 60 zcmZo*nQF)Y0kuKU7u LTUc03Db@o3@(2(= literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/ec86bcf9ae8798df94f87ea92c844715_activity.pkl b/backend/instance/sessions/ec86bcf9ae8798df94f87ea92c844715_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..b5ad21a41c436033f3206374fef0c8536df885d5 GIT binary patch literal 60 zcmZo*nQF)Y0kuKPgs L8CV)kDb@o3@umF~>KT}t LSQ;8mDb@o3@u?6k literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/eda152e4e221abb10169bf8fdc02e63a_activity.pkl b/backend/instance/sessions/eda152e4e221abb10169bf8fdc02e63a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..082c1f5b4e14f4c5153cb6a652a2bfb1b8af325f GIT binary patch literal 60 zcmZo*nQF)Y0kuzSHc LnwlC-Db@o3@-q-V literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/ede9c6dd376b5f6bafc23a672953a8c5_activity.pkl b/backend/instance/sessions/ede9c6dd376b5f6bafc23a672953a8c5_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..066f9d65723c78e7a1d92f1f328d33ab20ab9925 GIT binary patch literal 60 zcmZo*nQF)Y0kuRB2a Ln;Mu+Db@o3@){61 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/eff8ac82783fee8a608998102677c6a5_activity.pkl b/backend/instance/sessions/eff8ac82783fee8a608998102677c6a5_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..a2d8b1f38e8e2d266504e4da5b8446c90b8ed011 GIT binary patch literal 60 zcmZo*nQF)Y0kuGz>Y12Z L8dw-lDb@o3@<9+k literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/f2478c9e8afd2fb2701d9fe438efebef_activity.pkl b/backend/instance/sessions/f2478c9e8afd2fb2701d9fe438efebef_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1e5a9bb590cd74b17312aabd6b69566fb295a94c GIT binary patch literal 60 zcmZo*nQF)Y0kuKPcD L8(A1mDb@o3@vjgt literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/f3b7af32d26c022b4cf36efe04051604_activity.pkl b/backend/instance/sessions/f3b7af32d26c022b4cf36efe04051604_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..80efcef62da23ad3a1e7109b6608cc31d3fd9abb GIT binary patch literal 60 zcmZo*nQF)Y0kuzSHb L8k(3-Db@o3@z@YH literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/f4d5451fffb12beaeadfc6cc137c3e4a_activity.pkl b/backend/instance/sessions/f4d5451fffb12beaeadfc6cc137c3e4a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..614b457170da15436b8c7371edd3bbc3d19feae9 GIT binary patch literal 60 zcmZo*nQF)Y0kuzP}c L7@C<+Db@o3@(&O^ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/f7112396fb6471d3dc18c631e6d99f6c_activity.pkl b/backend/instance/sessions/f7112396fb6471d3dc18c631e6d99f6c_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1952c48abbfce3f43707a34cc5d20c9bbd8656ed GIT binary patch literal 60 zcmZo*nQF)Y0kuKU4w LSeh72Db@o3@x2f+ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/fa52d35bc5b4c03687b6e5fa88222a24_activity.pkl b/backend/instance/sessions/fa52d35bc5b4c03687b6e5fa88222a24_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..fd1130994c92fe5a19cab0a339c252e53613baf1 GIT binary patch literal 60 zcmZo*nQF)Y0kuF|>lv6D L8<-nTDb@o3@stoM literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/fac061d410fd567df7ce8abfe0edf04a_activity.pkl b/backend/instance/sessions/fac061d410fd567df7ce8abfe0edf04a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..908fcce9965f5ffe08a378dfe1dc1639232eecfe GIT binary patch literal 60 zcmZo*nQF)Y0kuKU3^ L8W found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/dashboard.html') +2025-06-16 01:17:03 - [app] app - [INFO] INFO - Locating template 'base.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/base.html') +2025-06-16 01:17:03 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:03 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:03 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:04 - [app] app - [DEBUG] DEBUG - Request: GET /printers +2025-06-16 01:17:04 - [app] app - [INFO] INFO - Locating template 'printers.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/printers.html') +2025-06-16 01:17:04 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:05 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:17:05 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:17:05 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:05 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:17:05 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:05 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:17:05 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:05 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:05 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:05 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:05 - [app] app - [DEBUG] DEBUG - Request: GET / +2025-06-16 01:17:05 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-16 01:17:05 - [app] app - [DEBUG] DEBUG - Request: GET /dashboard +2025-06-16 01:17:05 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:05 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/static/icons/icon-512.png +2025-06-16 01:17:05 - [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: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/errors/404.html') +2025-06-16 01:17:06 - [app] app - [DEBUG] DEBUG - Request: GET /jobs +2025-06-16 01:17:06 - [app] app - [INFO] INFO - Locating template 'jobs.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/jobs.html') +2025-06-16 01:17:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:06 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:06 - [app] app - [DEBUG] DEBUG - Request: GET /api/jobs +2025-06-16 01:17:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:06 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:17:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:17:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:06 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:06 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:07 - [app] app - [DEBUG] DEBUG - Request: GET /calendar +2025-06-16 01:17:07 - [app] app - [INFO] INFO - Locating template 'calendar.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/calendar.html') +2025-06-16 01:17:07 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:07 - [app] app - [DEBUG] DEBUG - Request: GET /api/calendar/events +2025-06-16 01:17:07 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:07 - [app] app - [DEBUG] DEBUG - Request: GET /api/calendar/statistics +2025-06-16 01:17:07 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:07 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:08 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:08 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:09 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:09 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:09 - [app] app - [INFO] INFO - Steckdosen-Status geloggt: Drucker 1, Status: unreachable, Quelle: system +2025-06-16 01:17:09 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:10 - [app] app - [DEBUG] DEBUG - Request: GET /api/calendar/statistics +2025-06-16 01:17:10 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:13 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:13 - [app] app - [DEBUG] DEBUG - Request: GET /api/energy/dashboard +2025-06-16 01:17:13 - [app] app - [DEBUG] DEBUG - Request: GET /api/energy/live +2025-06-16 01:17:13 - [app] app - [DEBUG] DEBUG - Request: GET /api/energy/statistics +2025-06-16 01:17:13 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:13 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:13 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:13 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:14 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:14 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:16 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:16 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:17 - [app] app - [DEBUG] DEBUG - Request: GET /request +2025-06-16 01:17:17 - [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: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/guest_request.html') +2025-06-16 01:17:17 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:17 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:17 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:17 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:17 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:19 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:19 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:24 - [app] app - [DEBUG] DEBUG - Request: GET /dashboard +2025-06-16 01:17:24 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:24 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:24 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:25 - [app] app - [DEBUG] DEBUG - Request: GET /printers +2025-06-16 01:17:25 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:25 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:17:25 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:17:25 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:26 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:26 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:26 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:17:26 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:17:26 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:26 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:26 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:27 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:27 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:27 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:17:27 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:17:27 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:27 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:17:27 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:17:27 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:29 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:17:29 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:17:29 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:29 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:17:29 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:17:29 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:30 - [app] app - [DEBUG] DEBUG - Request: GET /printers +2025-06-16 01:17:30 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:30 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:17:30 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:17:30 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:30 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:17:30 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:30 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:17:30 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:30 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:32 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:32 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:32 - [app] app - [DEBUG] DEBUG - Request: GET /jobs +2025-06-16 01:17:32 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:32 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:32 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:32 - [app] app - [DEBUG] DEBUG - Request: GET /api/jobs +2025-06-16 01:17:32 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:32 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:17:32 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:17:32 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:34 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:34 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:37 - [app] app - [DEBUG] DEBUG - Request: DELETE /api/jobs/2 +2025-06-16 01:17:37 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:37 - [app] app - [DEBUG] DEBUG - Request: GET /api/jobs +2025-06-16 01:17:37 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:39 - [app] app - [DEBUG] DEBUG - Request: DELETE /api/jobs/1 +2025-06-16 01:17:39 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:39 - [app] app - [DEBUG] DEBUG - Request: GET /api/jobs +2025-06-16 01:17:39 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:41 - [app] app - [DEBUG] DEBUG - Request: GET /calendar +2025-06-16 01:17:41 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:41 - [app] app - [DEBUG] DEBUG - Request: GET /api/calendar/events +2025-06-16 01:17:41 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:41 - [app] app - [DEBUG] DEBUG - Request: GET /api/calendar/statistics +2025-06-16 01:17:41 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:41 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:41 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:41 - [app] app - [DEBUG] DEBUG - Request: GET /api/calendar/statistics +2025-06-16 01:17:41 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:42 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:42 - [app] app - [DEBUG] DEBUG - Request: GET /api/energy/dashboard +2025-06-16 01:17:42 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:43 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:43 - [app] app - [DEBUG] DEBUG - Request: GET /api/energy/statistics +2025-06-16 01:17:43 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:43 - [app] app - [DEBUG] DEBUG - Request: GET /api/energy/live +2025-06-16 01:17:43 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:43 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:43 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:44 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:44 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:45 - [app] app - [DEBUG] DEBUG - Request: GET /stats +2025-06-16 01:17:45 - [app] app - [INFO] INFO - Locating template 'stats.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/stats.html') +2025-06-16 01:17:45 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:45 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:45 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:46 - [app] app - [DEBUG] DEBUG - Request: GET /stats +2025-06-16 01:17:46 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:46 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:46 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:47 - [app] app - [DEBUG] DEBUG - Request: GET /request +2025-06-16 01:17:47 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:47 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:47 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:47 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:47 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:49 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:49 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-16 01:17:49 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:49 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:49 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/system-health +2025-06-16 01:17:49 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: Textual SQL expression 'SELECT 1' should be explicitly declared as text('SELECT 1') +2025-06-16 01:17:49 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:51 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:51 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:51 - [app] app - [DEBUG] DEBUG - Request: GET /admin/users +2025-06-16 01:17:51 - [app] app - [INFO] INFO - Locating template 'admin.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/admin.html') +2025-06-16 01:17:51 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:51 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:17:51 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:51 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-16 01:17:51 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:51 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/system-health +2025-06-16 01:17:51 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: Textual SQL expression 'SELECT 1' should be explicitly declared as text('SELECT 1') +2025-06-16 01:17:51 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:17:53 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:17:53 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:17:59 - [app] app - [DEBUG] DEBUG - Request: POST /api/admin/users +2025-06-16 01:17:59 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:00 - [app] app - [DEBUG] DEBUG - Request: GET /admin/users +2025-06-16 01:18:00 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:00 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:18:00 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:00 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-16 01:18:00 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:00 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/system-health +2025-06-16 01:18:00 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: Textual SQL expression 'SELECT 1' should be explicitly declared as text('SELECT 1') +2025-06-16 01:18:00 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:02 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:18:02 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:18:03 - [app] app - [DEBUG] DEBUG - Request: GET /admin/printers +2025-06-16 01:18:03 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:03 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:18:03 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:03 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-16 01:18:03 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:03 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/system-health +2025-06-16 01:18:03 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: Textual SQL expression 'SELECT 1' should be explicitly declared as text('SELECT 1') +2025-06-16 01:18:03 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:05 - [app] app - [DEBUG] DEBUG - Request: GET /jobs +2025-06-16 01:18:05 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:05 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:18:05 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:18:05 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:18:05 - [app] app - [DEBUG] DEBUG - Request: GET /api/jobs +2025-06-16 01:18:05 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:05 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:05 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:18:05 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:18:05 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:07 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:18:07 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:18:08 - [app] app - [DEBUG] DEBUG - Request: GET /admin/printers +2025-06-16 01:18:08 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:08 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:18:08 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-16 01:18:08 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:08 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:08 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/system-health +2025-06-16 01:18:08 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: Textual SQL expression 'SELECT 1' should be explicitly declared as text('SELECT 1') +2025-06-16 01:18:08 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:09 - [app] app - [DEBUG] DEBUG - Request: GET /dashboard +2025-06-16 01:18:09 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:10 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:18:10 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:10 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:18:10 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:18:11 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:18:11 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:18:15 - [app] app - [DEBUG] DEBUG - Request: POST /auth/logout +2025-06-16 01:18:15 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-16 01:18:15 - [app] app - [DEBUG] DEBUG - Request: GET /auth/login +2025-06-16 01:18:15 - [app] app - [INFO] INFO - Locating template 'login.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/login.html') +2025-06-16 01:18:15 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:18:16 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:18:16 - [app] app - [DEBUG] DEBUG - Response: 304 diff --git a/backend/logs/auth/auth.log b/backend/logs/auth/auth.log index 02d157523..25f5aa003 100644 --- a/backend/logs/auth/auth.log +++ b/backend/logs/auth/auth.log @@ -91,3 +91,4 @@ WHERE users.username = ? OR users.email = ? 2025-06-16 01:00:52 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich abgemeldet 2025-06-16 01:01:08 - [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-16 01:01:09 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet +2025-06-16 01:18:15 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich abgemeldet diff --git a/backend/logs/calendar/calendar.log b/backend/logs/calendar/calendar.log index fdff69968..763a2be2b 100644 --- a/backend/logs/calendar/calendar.log +++ b/backend/logs/calendar/calendar.log @@ -34,3 +34,5 @@ 2025-06-16 01:01:56 - [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-16 01:02:00 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 44 Einträge für Zeitraum 2025-06-14 22:00:00+00:00 bis 2025-06-21 22:00:00+00:00 2025-06-16 01:08:09 - [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-16 01:17:09 - [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-16 01:17:41 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 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/data_management/data_management.log b/backend/logs/data_management/data_management.log index d343b188e..b193fb01b 100644 --- a/backend/logs/data_management/data_management.log +++ b/backend/logs/data_management/data_management.log @@ -523,3 +523,9 @@ 2025-06-16 01:06:01 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-16 01:06:02 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert 2025-06-16 01:06:02 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:12:16 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-16 01:12:16 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:16:59 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-16 01:16:59 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:17:01 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-16 01:17:01 - [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 2e911c224..a4f18b048 100644 --- a/backend/logs/energy_monitoring/energy_monitoring.log +++ b/backend/logs/energy_monitoring/energy_monitoring.log @@ -371,3 +371,20 @@ 2025-06-16 01:08:06 - [energy_monitoring] energy_monitoring - [INFO] INFO - [OK] API-Live-Energiedaten 'api_live_energy_data' erfolgreich in 5.09ms 2025-06-16 01:08:06 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Dashboard-Daten erfolgreich erstellt: 0 Geräte online 2025-06-16 01:08:06 - [energy_monitoring] energy_monitoring - [INFO] INFO - [OK] API-Energiemonitoring-Dashboard 'api_energy_dashboard' erfolgreich in 12.61ms +2025-06-16 01:12:17 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-16 01:17:00 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-16 01:17:01 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-16 01:17:13 - [energy_monitoring] energy_monitoring - [INFO] INFO - 📊 API-Energiemonitoring-Dashboard von admin +2025-06-16 01:17:13 - [energy_monitoring] energy_monitoring - [INFO] INFO - 📈 API-Energiestatistiken (today) von admin +2025-06-16 01:17:13 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Dashboard-Daten erfolgreich erstellt: 0 Geräte online +2025-06-16 01:17:13 - [energy_monitoring] energy_monitoring - [INFO] INFO - [OK] API-Energiemonitoring-Dashboard 'api_energy_dashboard' erfolgreich in 21.76ms +2025-06-16 01:17:13 - [energy_monitoring] energy_monitoring - [INFO] INFO - [OK] API-Live-Energiedaten 'api_live_energy_data' erfolgreich in 23.91ms +2025-06-16 01:17:13 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiestatistiken erfolgreich erstellt für Zeitraum: today +2025-06-16 01:17:13 - [energy_monitoring] energy_monitoring - [INFO] INFO - [OK] API-Energiestatistiken 'api_energy_statistics' erfolgreich in 24.12ms +2025-06-16 01:17:42 - [energy_monitoring] energy_monitoring - [INFO] INFO - 📊 API-Energiemonitoring-Dashboard von admin +2025-06-16 01:17:43 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Dashboard-Daten erfolgreich erstellt: 0 Geräte online +2025-06-16 01:17:43 - [energy_monitoring] energy_monitoring - [INFO] INFO - [OK] API-Energiemonitoring-Dashboard 'api_energy_dashboard' erfolgreich in 8.13ms +2025-06-16 01:17:43 - [energy_monitoring] energy_monitoring - [INFO] INFO - 📈 API-Energiestatistiken (today) von admin +2025-06-16 01:17:43 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiestatistiken erfolgreich erstellt für Zeitraum: today +2025-06-16 01:17:43 - [energy_monitoring] energy_monitoring - [INFO] INFO - [OK] API-Energiestatistiken 'api_energy_statistics' erfolgreich in 27.41ms +2025-06-16 01:17:43 - [energy_monitoring] energy_monitoring - [INFO] INFO - [OK] API-Live-Energiedaten 'api_live_energy_data' erfolgreich in 6.79ms diff --git a/backend/logs/hardware_integration/hardware_integration.log b/backend/logs/hardware_integration/hardware_integration.log index b86ef5f3f..8eaa3b5ba 100644 --- a/backend/logs/hardware_integration/hardware_integration.log +++ b/backend/logs/hardware_integration/hardware_integration.log @@ -1952,3 +1952,69 @@ 2025-06-16 01:08:06 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 6 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' 2025-06-16 01:08:06 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Energiestatistiken erfolgreich gesammelt: 0/6 Geräte online 2025-06-16 01:08:06 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Gesamtverbrauch: 0.0W aktuell, 0.0Wh heute +2025-06-16 01:12:16 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-16 01:12:16 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-16 01:12:16 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-16 01:12:16 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-16 01:16:59 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-16 01:16:59 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-16 01:16:59 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-16 01:16:59 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-16 01:17:01 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-16 01:17:01 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-16 01:17:01 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-16 01:17:01 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [INFO] INFO - 🔋 Sammle Energiestatistiken von allen P110 Steckdosen... +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [INFO] INFO - 🔋 Sammle Energiestatistiken von allen P110 Steckdosen... +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 1 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 1 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 2 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [INFO] INFO - 🔋 Sammle Energiestatistiken von allen P110 Steckdosen... +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 2 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 3 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 4 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 5 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 6 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 3 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 4 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 5 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 6 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Energiestatistiken erfolgreich gesammelt: 0/6 Geräte online +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Gesamtverbrauch: 0.0W aktuell, 0.0Wh heute +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Energiestatistiken erfolgreich gesammelt: 0/6 Geräte online +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 1 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Gesamtverbrauch: 0.0W aktuell, 0.0Wh heute +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 2 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 3 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 4 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 5 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 6 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Energiestatistiken erfolgreich gesammelt: 0/6 Geräte online +2025-06-16 01:17:13 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Gesamtverbrauch: 0.0W aktuell, 0.0Wh heute +2025-06-16 01:17:42 - [hardware_integration] hardware_integration - [INFO] INFO - 🔋 Sammle Energiestatistiken von allen P110 Steckdosen... +2025-06-16 01:17:42 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 1 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 2 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 3 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 4 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 5 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 6 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Energiestatistiken erfolgreich gesammelt: 0/6 Geräte online +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Gesamtverbrauch: 0.0W aktuell, 0.0Wh heute +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [INFO] INFO - 🔋 Sammle Energiestatistiken von allen P110 Steckdosen... +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 1 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 2 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 3 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 4 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 5 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 6 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Energiestatistiken erfolgreich gesammelt: 0/6 Geräte online +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Gesamtverbrauch: 0.0W aktuell, 0.0Wh heute +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [INFO] INFO - 🔋 Sammle Energiestatistiken von allen P110 Steckdosen... +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 1 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 2 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 3 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 4 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 5 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [WARNING] WARNING - ⚠️ Konnte Energiedaten für Drucker 6 nicht abrufen: module 'PyP100.PyP100' has no attribute 'P110' +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Energiestatistiken erfolgreich gesammelt: 0/6 Geräte online +2025-06-16 01:17:43 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Gesamtverbrauch: 0.0W aktuell, 0.0Wh heute diff --git a/backend/logs/job_queue_system/job_queue_system.log b/backend/logs/job_queue_system/job_queue_system.log index d99f53ec8..bba30ae22 100644 --- a/backend/logs/job_queue_system/job_queue_system.log +++ b/backend/logs/job_queue_system/job_queue_system.log @@ -1025,3 +1025,17 @@ 2025-06-16 01:06:02 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert 2025-06-16 01:06:02 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) 2025-06-16 01:06:03 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-16 01:12:15 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-16 01:12:16 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-16 01:12:16 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-16 01:12:17 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-16 01:16:58 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-16 01:16:58 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-16 01:16:59 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-16 01:16:59 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-16 01:17:00 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-16 01:17:01 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-16 01:17:01 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-16 01:17:02 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-16 01:18:20 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-16 01:18:20 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) diff --git a/backend/logs/jobs/jobs.log b/backend/logs/jobs/jobs.log index 8a83ab70b..ccb1e0d63 100644 --- a/backend/logs/jobs/jobs.log +++ b/backend/logs/jobs/jobs.log @@ -899,3 +899,17 @@ sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) FOREIGN KEY constraint f 2025-06-16 01:06:40 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 2 von 2 (Seite 1) 2025-06-16 01:08:08 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) 2025-06-16 01:08:08 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 2 von 2 (Seite 1) +2025-06-16 01:17:06 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-16 01:17:06 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 2 von 2 (Seite 1) +2025-06-16 01:17:32 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-16 01:17:32 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 2 von 2 (Seite 1) +2025-06-16 01:17:37 - [jobs] jobs - [INFO] INFO - 🗑️ Lösche Job 2 für Benutzer 1 +2025-06-16 01:17:37 - [jobs] jobs - [INFO] INFO - ✅ Job 'Gastauftrag: testeadmin@example.com' (ID: 2) erfolgreich gelöscht von Benutzer 1 +2025-06-16 01:17:37 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-16 01:17:37 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 1 von 1 (Seite 1) +2025-06-16 01:17:39 - [jobs] jobs - [INFO] INFO - 🗑️ Lösche Job 1 für Benutzer 1 +2025-06-16 01:17:39 - [jobs] jobs - [INFO] INFO - ✅ Job 'Gastauftrag: testeadmin@example.com' (ID: 1) erfolgreich gelöscht von Benutzer 1 +2025-06-16 01:17:39 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-16 01:17:39 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 0 von 0 (Seite 1) +2025-06-16 01:18:05 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-16 01:18:05 - [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 c2948935f..1a6fc4929 100644 --- a/backend/logs/monitoring_analytics/monitoring_analytics.log +++ b/backend/logs/monitoring_analytics/monitoring_analytics.log @@ -523,3 +523,9 @@ 2025-06-16 01:06:01 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-16 01:06:03 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert 2025-06-16 01:06:03 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:12:17 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-16 01:12:17 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:17:00 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-16 01:17:00 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:17:01 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-16 01:17:01 - [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 6ed8dffa8..117c7e2e8 100644 --- a/backend/logs/permissions/permissions.log +++ b/backend/logs/permissions/permissions.log @@ -204,3 +204,6 @@ WHERE users.role = ?] 2025-06-16 01:05:39 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert 2025-06-16 01:06:01 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert 2025-06-16 01:06:03 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:12:17 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:17:00 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:17:02 - [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 f8efccf31..ce4a34be1 100644 --- a/backend/logs/scheduler/scheduler.log +++ b/backend/logs/scheduler/scheduler.log @@ -1372,3 +1372,84 @@ 2025-06-16 01:08:36 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com 2025-06-16 01:08:42 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) 2025-06-16 01:08:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:09:04 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:09:06 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:09:12 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:09:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:09:34 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:09:36 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:09:42 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:09:45 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:10:04 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:10:07 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:10:13 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:10:15 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:10:35 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:10:37 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:10:43 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:10:45 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:11:05 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:11:07 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:11:13 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:11:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:11:35 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:11:38 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:11:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:11:46 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:12:06 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:12:08 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:12:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:12:16 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-16 01:12:17 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-16 01:12:17 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-16 01:12:17 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:12:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:12:36 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:12:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:12:48 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:12:56 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:13:06 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:13:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:13:18 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:13:27 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:13:36 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:13:45 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:13:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:13:57 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:14:07 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:14:15 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:14:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:14:27 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:14:37 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:14:46 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:14:49 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:14:58 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:15:08 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:15:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:15:20 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:15:28 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:15:38 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:15:47 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:15:50 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:15:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:16:09 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:16:17 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:16:21 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:16:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:16:39 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:16:47 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:16:51 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:16:59 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-16 01:17:00 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-16 01:17:00 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-16 01:17:00 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:17:01 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-16 01:17:02 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-16 01:17:02 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-16 01:17:02 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:17:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:17:10 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:17:31 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:17:32 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: Gastauftrag: testeadmin@example.com +2025-06-16 01:17:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) +2025-06-16 01:17:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler bei Überprüfung der Jobs: Instance is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3) diff --git a/backend/logs/security_suite/security_suite.log b/backend/logs/security_suite/security_suite.log index 69dbe88a8..6a5183be5 100644 --- a/backend/logs/security_suite/security_suite.log +++ b/backend/logs/security_suite/security_suite.log @@ -785,3 +785,12 @@ 2025-06-16 01:06:02 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert 2025-06-16 01:06:02 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-16 01:06:03 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-16 01:12:16 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-16 01:12:16 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:12:17 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-16 01:16:59 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-16 01:16:59 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:17:00 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-16 01:17:01 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-16 01:17:01 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:17:01 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert diff --git a/backend/logs/startup/startup.log b/backend/logs/startup/startup.log index fd26e2a8d..d6fe9e064 100644 --- a/backend/logs/startup/startup.log +++ b/backend/logs/startup/startup.log @@ -2042,3 +2042,24 @@ 2025-06-16 01:06:03 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend 2025-06-16 01:06:03 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-16T01:06:03.433577 2025-06-16 01:06:03 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:12:17 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:12:17 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-16 01:12:17 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Mar 05 2023, 19:08:04) [GCC] +2025-06-16 01:12:17 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux) +2025-06-16 01:12:17 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend +2025-06-16 01:12:17 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-16T01:12:17.041854 +2025-06-16 01:12:17 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:17:00 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:17:00 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-16 01:17:00 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Mar 05 2023, 19:08:04) [GCC] +2025-06-16 01:17:00 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux) +2025-06-16 01:17:00 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend +2025-06-16 01:17:00 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-16T01:17:00.257103 +2025-06-16 01:17:00 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:17:01 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:17:01 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-16 01:17:01 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Mar 05 2023, 19:08:04) [GCC] +2025-06-16 01:17:01 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux) +2025-06-16 01:17:01 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend +2025-06-16 01:17:01 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-16T01:17:01.939565 +2025-06-16 01:17:01 - [startup] startup - [INFO] INFO - ================================================== diff --git a/backend/logs/tapo_controller/tapo_controller.log b/backend/logs/tapo_controller/tapo_controller.log index 698508cd4..d4b98e5d0 100644 --- a/backend/logs/tapo_controller/tapo_controller.log +++ b/backend/logs/tapo_controller/tapo_controller.log @@ -1639,3 +1639,152 @@ 2025-06-16 01:08:42 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 2025-06-16 01:08:44 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) 2025-06-16 01:08:44 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:09:06 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:09:08 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:09:09 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:09:11 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:09:12 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:09:12 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:09:14 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:09:14 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:09:36 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:09:39 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:09:39 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:09:42 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:09:42 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:09:42 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:09:45 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:09:45 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:10:07 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:10:09 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:10:10 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:10:12 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:10:13 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:10:13 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:10:15 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:10:15 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:10:37 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:10:39 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:10:40 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:10:42 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:10:43 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:10:43 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:10:45 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:10:45 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:11:07 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:11:10 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:11:10 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:11:13 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:11:13 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:11:13 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:11:16 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:11:16 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:11:37 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:11:40 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:11:41 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:11:43 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:11:44 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:11:44 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:11:46 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:11:46 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:12:08 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:10 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:11 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:13 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:14 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:14 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:12:16 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-16 01:12:19 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:22 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:26 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:26 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:12:38 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:41 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:44 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:44 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:12:50 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:53 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:56 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:12:56 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:13:08 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:13:11 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:13:14 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:13:14 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:13:20 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:13:23 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:13:27 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:13:27 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:13:39 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:13:42 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:13:45 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:13:45 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:13:51 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:13:54 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:13:57 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:13:57 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:14:09 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:14:12 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:14:15 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:14:15 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:14:21 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:14:24 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:14:27 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:14:27 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:14:40 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:14:43 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:14:46 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:14:46 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:14:52 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:14:55 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:14:58 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:14:58 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:15:10 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:15:13 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:15:16 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:15:16 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:15:22 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:15:25 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:15:28 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:15:28 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:15:40 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:15:43 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:15:47 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:15:47 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:15:52 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:15:55 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:15:59 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:15:59 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:16:11 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:16:14 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:16:17 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:16:17 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:16:23 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:16:26 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:16:29 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:16:29 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:16:41 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:16:44 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:16:47 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:16:47 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:16:53 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:16:56 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:16:59 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-16 01:17:01 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-16 01:17:02 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:04 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:05 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:07 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:09 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:09 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:17:09 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Fehler bei Tapo-Steckdosen-Status-Check 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:09 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Status-Check für 192.168.0.100 fehlgeschlagen: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:10 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:10 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:17:33 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:35 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 1/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:36 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:38 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 2/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:39 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:39 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 +2025-06-16 01:17:41 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Versuch 3/3 fehlgeschlagen beim einschalten von 192.168.0.100: HTTPConnectionPool(host='192.168.1.101', port=3128): Read timed out. (read timeout=2) +2025-06-16 01:17:41 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 diff --git a/backend/logs/tapo_status_manager/tapo_status_manager.log b/backend/logs/tapo_status_manager/tapo_status_manager.log index f86281fab..c9ab3ebad 100644 --- a/backend/logs/tapo_status_manager/tapo_status_manager.log +++ b/backend/logs/tapo_status_manager/tapo_status_manager.log @@ -228,3 +228,6 @@ 2025-06-16 01:05:38 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert 2025-06-16 01:06:01 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert 2025-06-16 01:06:02 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert +2025-06-16 01:12:16 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert +2025-06-16 01:16:59 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert +2025-06-16 01:17:01 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert diff --git a/backend/logs/utilities_collection/utilities_collection.log b/backend/logs/utilities_collection/utilities_collection.log index 72eba8c2f..861dce5c4 100644 --- a/backend/logs/utilities_collection/utilities_collection.log +++ b/backend/logs/utilities_collection/utilities_collection.log @@ -685,3 +685,9 @@ 2025-06-16 01:06:01 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) 2025-06-16 01:06:02 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert 2025-06-16 01:06:02 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-16 01:12:16 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-16 01:12:16 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-16 01:16:59 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-16 01:16:59 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-16 01:17:01 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-16 01:17:01 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) diff --git a/backend/static/sw.js b/backend/static/sw.js index 0880cf79c..97fdc1cf0 100644 --- a/backend/static/sw.js +++ b/backend/static/sw.js @@ -78,11 +78,31 @@ self.addEventListener('activate', event => { // Fetch-Event Handler für Caching-Strategien self.addEventListener('fetch', event => { - const request = event.request; - const url = new URL(request.url); - - // Nur GET-Requests cachen - if (request.method !== 'GET') { + try { + const request = event.request; + + // Basis-Validierung der Anfrage + if (!request || !request.url) { + console.warn('🚫 Ungültige Anfrage erhalten:', request); + return; + } + + const url = new URL(request.url); + + // Nur GET-Requests cachen + if (request.method !== 'GET') { + return; + } + + // Bestimmte Dateitypen überspringen + if (url.pathname.includes('.woff') || + url.pathname.includes('.ttf') || + url.pathname.includes('.eot') || + url.pathname.endsWith('.map')) { + return; + } + } catch (error) { + console.error('❌ Fehler bei fetch event verarbeitung:', error); return; } @@ -154,19 +174,28 @@ self.addEventListener('fetch', event => { */ async function cacheFirst(request) { try { + // Validierung der Anfrage + if (!request || !request.url) { + throw new Error('Ungültige Anfrage für Cache First'); + } + const cache = await caches.open(STATIC_CACHE_NAME); const cachedResponse = await cache.match(request); - if (cachedResponse) { + if (cachedResponse && cachedResponse.ok) { console.log('📦 Aus Cache geladen:', request.url); return cachedResponse; } const networkResponse = await fetch(request); - if (networkResponse.ok) { - cache.put(request, networkResponse.clone()); - console.log('🌐 Aus Netzwerk geladen und gecacht:', request.url); + if (networkResponse && networkResponse.ok) { + try { + await cache.put(request, networkResponse.clone()); + console.log('🌐 Aus Netzwerk geladen und gecacht:', request.url); + } catch (cacheError) { + console.warn('⚠️ Cache-Speicherung fehlgeschlagen:', cacheError); + } } return networkResponse; @@ -174,13 +203,22 @@ async function cacheFirst(request) { } catch (error) { console.error('❌ Cache First Fehler:', error); - // Fallback für kritische Ressourcen - if (request.url.includes('tailwind.min.css')) { + // Erweiterte Fallback-Strategien + if (request.url.includes('tailwind.min.css') || request.url.includes('.css')) { return new Response('/* Offline CSS Fallback */', { - headers: { 'Content-Type': 'text/css' } + headers: { 'Content-Type': 'text/css' }, + status: 200 }); } + if (request.url.includes('.js')) { + return new Response('// Offline JS Fallback', { + headers: { 'Content-Type': 'application/javascript' }, + status: 200 + }); + } + + // Für andere Ressourcen: Netzwerk-Error weiterwerfen throw error; } } @@ -191,26 +229,39 @@ async function cacheFirst(request) { */ async function networkFirst(request) { try { + // Validierung der Anfrage + if (!request || !request.url) { + throw new Error('Ungültige Anfrage für Network First'); + } + const networkResponse = await fetch(request); - if (networkResponse.ok) { - const cache = await caches.open(DYNAMIC_CACHE_NAME); - cache.put(request, networkResponse.clone()); - console.log('🌐 Aus Netzwerk geladen:', request.url); + if (networkResponse && networkResponse.ok) { + try { + const cache = await caches.open(DYNAMIC_CACHE_NAME); + await cache.put(request, networkResponse.clone()); + console.log('🌐 Aus Netzwerk geladen:', request.url); + } catch (cacheError) { + console.warn('⚠️ Cache-Speicherung bei Network First fehlgeschlagen:', cacheError); + } return networkResponse; } - throw new Error(`Network response not ok: ${networkResponse.status}`); + throw new Error(`Network response not ok: ${networkResponse?.status || 'unknown'}`); } catch (error) { console.log('📦 Netzwerk nicht verfügbar, versuche Cache:', request.url); - const cache = await caches.open(DYNAMIC_CACHE_NAME); - const cachedResponse = await cache.match(request); - - if (cachedResponse) { - console.log('📦 Aus Cache geladen (Offline):', request.url); - return cachedResponse; + try { + const cache = await caches.open(DYNAMIC_CACHE_NAME); + const cachedResponse = await cache.match(request); + + if (cachedResponse && cachedResponse.ok) { + console.log('📦 Aus Cache geladen (Offline):', request.url); + return cachedResponse; + } + } catch (cacheError) { + console.error('❌ Cache-Zugriff fehlgeschlagen:', cacheError); } // Offline-Fallback für API-Requests