diff --git a/backend/app.py b/backend/app.py index c64783582..f2f0cbbdf 100644 --- a/backend/app.py +++ b/backend/app.py @@ -1108,7 +1108,8 @@ def printer_control(): tapo_controller = get_tapo_controller() # Prüfe ob Steckdose erreichbar ist - if not tapo_controller.is_plug_reachable(printer.plug_ip): + reachable, current_status = tapo_controller.check_outlet_status(printer.plug_ip, printer_id=int(printer_id)) + if not reachable: # Steckdose nicht erreichbar = Drucker offline printer.status = 'offline' printer.last_checked = datetime.now() diff --git a/backend/blueprints/admin_unified.py b/backend/blueprints/admin_unified.py index b9b16a499..39b0496ae 100644 --- a/backend/blueprints/admin_unified.py +++ b/backend/blueprints/admin_unified.py @@ -206,10 +206,88 @@ def users_overview(): flash("Fehler beim Laden der Benutzerdaten", "error") return render_template('admin.html', stats={}, users=[], active_tab='users') -@admin_blueprint.route("/users/add", methods=["GET"]) +@admin_blueprint.route("/users/add", methods=["GET", "POST"]) @admin_required def add_user_page(): """Seite zum Hinzufügen eines neuen Benutzers""" + if request.method == "POST": + # Form-Daten direkt verarbeiten + try: + data = request.form.to_dict() + # Checkbox-Werte korrekt parsen + for key in ['can_start_jobs', 'needs_approval', 'can_approve_jobs']: + if key in data: + data[key] = data[key] in ['true', 'on', '1', True] + else: + data[key] = False + + admin_logger.info(f"Benutzer-Erstellung (HTML-Form) angefordert von {current_user.username}: {data.get('username', 'unknown')}") + + # Validierung der erforderlichen Felder + required_fields = ['username', 'email', 'password', 'name'] + for field in required_fields: + if field not in data or not data[field]: + flash(f"Feld '{field}' ist erforderlich", "error") + return render_template('admin_add_user.html') + + with get_cached_session() as db_session: + # Prüfe auf bereits existierende E-Mail oder Benutzername + existing_user = db_session.query(User).filter( + (User.email == data['email']) | (User.username == data['username']) + ).first() + + if existing_user: + if existing_user.email == data['email']: + flash("E-Mail-Adresse bereits vergeben", "error") + else: + flash("Benutzername bereits vergeben", "error") + return render_template('admin_add_user.html') + + # Neuen Benutzer erstellen + new_user = User( + username=data['username'], + email=data['email'], + name=data['name'], + role=data.get('role', 'user'), + department=data.get('department'), + position=data.get('position'), + phone=data.get('phone'), + bio=data.get('bio'), + active=True, + created_at=datetime.now() + ) + new_user.set_password(data['password']) + + db_session.add(new_user) + db_session.flush() # ID generieren für UserPermission + + # Granulare Berechtigungen erstellen + from models import UserPermission + permissions = UserPermission( + user_id=new_user.id, + can_start_jobs=data.get('can_start_jobs', True), + needs_approval=data.get('needs_approval', False), + can_approve_jobs=data.get('can_approve_jobs', False) + ) + + # Administratoren bekommen automatisch Genehmigungsrechte + if new_user.role == 'admin': + permissions.can_approve_jobs = True + permissions.can_start_jobs = True + permissions.needs_approval = False + + db_session.add(permissions) + db_session.commit() + + flash(f"Benutzer '{new_user.username}' erfolgreich erstellt", "success") + admin_logger.info(f"✅ Neuer Benutzer erfolgreich erstellt: {new_user.username} (ID: {new_user.id}) von Admin {current_user.username}") + + return redirect(url_for('admin.users_overview')) + + except Exception as e: + admin_logger.error(f"❌ Fehler bei Benutzer-Erstellung (HTML-Form): {str(e)}") + flash("Fehler beim Erstellen des Benutzers", "error") + return render_template('admin_add_user.html') @admin_blueprint.route("/users//edit", methods=["GET"]) diff --git a/backend/database/myp.db b/backend/database/myp.db index a0b609dda..8863b9262 100644 Binary files a/backend/database/myp.db and b/backend/database/myp.db differ diff --git a/backend/docs/USER_CREATION_FIX.md b/backend/docs/USER_CREATION_FIX.md new file mode 100644 index 000000000..0519ecba6 --- /dev/null +++ b/backend/docs/USER_CREATION_FIX.md @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/instance/sessions/005f403ac7504640449f23e3390604ad_activity.pkl b/backend/instance/sessions/005f403ac7504640449f23e3390604ad_activity.pkl new file mode 100644 index 000000000..18b79a52f Binary files /dev/null and b/backend/instance/sessions/005f403ac7504640449f23e3390604ad_activity.pkl differ diff --git a/backend/instance/sessions/011e4ea78f872b7d299658495f04ba05_activity.pkl b/backend/instance/sessions/011e4ea78f872b7d299658495f04ba05_activity.pkl new file mode 100644 index 000000000..7f6c927fc Binary files /dev/null and b/backend/instance/sessions/011e4ea78f872b7d299658495f04ba05_activity.pkl differ diff --git a/backend/instance/sessions/049acd6871eafa7bb0a6159bd5b10384_activity.pkl b/backend/instance/sessions/049acd6871eafa7bb0a6159bd5b10384_activity.pkl new file mode 100644 index 000000000..71de215cc Binary files /dev/null and b/backend/instance/sessions/049acd6871eafa7bb0a6159bd5b10384_activity.pkl differ diff --git a/backend/instance/sessions/06c534ef2fb9e0e36eca50c0a0b13d6e_activity.pkl b/backend/instance/sessions/06c534ef2fb9e0e36eca50c0a0b13d6e_activity.pkl new file mode 100644 index 000000000..6aef962d1 Binary files /dev/null and b/backend/instance/sessions/06c534ef2fb9e0e36eca50c0a0b13d6e_activity.pkl differ diff --git a/backend/instance/sessions/08075ff9bf5bcb507910eff82cdefef7_activity.pkl b/backend/instance/sessions/08075ff9bf5bcb507910eff82cdefef7_activity.pkl new file mode 100644 index 000000000..53418fce4 Binary files /dev/null and b/backend/instance/sessions/08075ff9bf5bcb507910eff82cdefef7_activity.pkl differ diff --git a/backend/instance/sessions/0823f2caf8c2739e422dd405bae3ecfb_activity.pkl b/backend/instance/sessions/0823f2caf8c2739e422dd405bae3ecfb_activity.pkl new file mode 100644 index 000000000..982f0ffd7 Binary files /dev/null and b/backend/instance/sessions/0823f2caf8c2739e422dd405bae3ecfb_activity.pkl differ diff --git a/backend/instance/sessions/095ad929f8d6fd8c6c6a176b6a00562e_activity.pkl b/backend/instance/sessions/095ad929f8d6fd8c6c6a176b6a00562e_activity.pkl new file mode 100644 index 000000000..30cbad399 Binary files /dev/null and b/backend/instance/sessions/095ad929f8d6fd8c6c6a176b6a00562e_activity.pkl differ diff --git a/backend/instance/sessions/0bc354cf34c8af14e9248ed7c6bcd321_activity.pkl b/backend/instance/sessions/0bc354cf34c8af14e9248ed7c6bcd321_activity.pkl new file mode 100644 index 000000000..b465d32a9 Binary files /dev/null and b/backend/instance/sessions/0bc354cf34c8af14e9248ed7c6bcd321_activity.pkl differ diff --git a/backend/instance/sessions/0eabcd7c4390d914b6b4d1f143d051d7_activity.pkl b/backend/instance/sessions/0eabcd7c4390d914b6b4d1f143d051d7_activity.pkl new file mode 100644 index 000000000..c67322c36 Binary files /dev/null and b/backend/instance/sessions/0eabcd7c4390d914b6b4d1f143d051d7_activity.pkl differ diff --git a/backend/instance/sessions/1202ddfbd849e29b211ec26f0a8aef64_activity.pkl b/backend/instance/sessions/1202ddfbd849e29b211ec26f0a8aef64_activity.pkl new file mode 100644 index 000000000..036a3f8cc Binary files /dev/null and b/backend/instance/sessions/1202ddfbd849e29b211ec26f0a8aef64_activity.pkl differ diff --git a/backend/instance/sessions/14456a616faed7cc1f9c16c0ceb6a0c7_activity.pkl b/backend/instance/sessions/14456a616faed7cc1f9c16c0ceb6a0c7_activity.pkl new file mode 100644 index 000000000..6915d54f9 Binary files /dev/null and b/backend/instance/sessions/14456a616faed7cc1f9c16c0ceb6a0c7_activity.pkl differ diff --git a/backend/instance/sessions/17a0b02632ef142bede28645c3d634ed_activity.pkl b/backend/instance/sessions/17a0b02632ef142bede28645c3d634ed_activity.pkl new file mode 100644 index 000000000..e207eccf5 Binary files /dev/null and b/backend/instance/sessions/17a0b02632ef142bede28645c3d634ed_activity.pkl differ diff --git a/backend/instance/sessions/1a54aad1a1a199c8eb61dd7cf042ab7b_activity.pkl b/backend/instance/sessions/1a54aad1a1a199c8eb61dd7cf042ab7b_activity.pkl new file mode 100644 index 000000000..f9f3434b3 Binary files /dev/null and b/backend/instance/sessions/1a54aad1a1a199c8eb61dd7cf042ab7b_activity.pkl differ diff --git a/backend/instance/sessions/1c20370f0a544df65ef82d6e69ae32ce_activity.pkl b/backend/instance/sessions/1c20370f0a544df65ef82d6e69ae32ce_activity.pkl new file mode 100644 index 000000000..ee25a1302 Binary files /dev/null and b/backend/instance/sessions/1c20370f0a544df65ef82d6e69ae32ce_activity.pkl differ diff --git a/backend/instance/sessions/266d99ad67d66ed820f50af674ba0507_activity.pkl b/backend/instance/sessions/266d99ad67d66ed820f50af674ba0507_activity.pkl new file mode 100644 index 000000000..af724c80d Binary files /dev/null and b/backend/instance/sessions/266d99ad67d66ed820f50af674ba0507_activity.pkl differ diff --git a/backend/instance/sessions/26cb989b4bcfce69fec890b55f260d27_activity.pkl b/backend/instance/sessions/26cb989b4bcfce69fec890b55f260d27_activity.pkl new file mode 100644 index 000000000..94bb77870 Binary files /dev/null and b/backend/instance/sessions/26cb989b4bcfce69fec890b55f260d27_activity.pkl differ diff --git a/backend/instance/sessions/2bf7de4cc066dd19563b12427667fab6_activity.pkl b/backend/instance/sessions/2bf7de4cc066dd19563b12427667fab6_activity.pkl new file mode 100644 index 000000000..b74401b1b Binary files /dev/null and b/backend/instance/sessions/2bf7de4cc066dd19563b12427667fab6_activity.pkl differ diff --git a/backend/instance/sessions/2ef1f8a0b811b11d6153ab12f5a59e78_activity.pkl b/backend/instance/sessions/2ef1f8a0b811b11d6153ab12f5a59e78_activity.pkl new file mode 100644 index 000000000..97d190488 Binary files /dev/null and b/backend/instance/sessions/2ef1f8a0b811b11d6153ab12f5a59e78_activity.pkl differ diff --git a/backend/instance/sessions/365396a5c98ddaa0931997501dcca534_activity.pkl b/backend/instance/sessions/365396a5c98ddaa0931997501dcca534_activity.pkl new file mode 100644 index 000000000..564daae1a Binary files /dev/null and b/backend/instance/sessions/365396a5c98ddaa0931997501dcca534_activity.pkl differ diff --git a/backend/instance/sessions/3a83d7c9d5d85abb76a76e227c03ca86_activity.pkl b/backend/instance/sessions/3a83d7c9d5d85abb76a76e227c03ca86_activity.pkl new file mode 100644 index 000000000..32a45084d Binary files /dev/null and b/backend/instance/sessions/3a83d7c9d5d85abb76a76e227c03ca86_activity.pkl differ diff --git a/backend/instance/sessions/49603c01081e4b46977e802593e4e918_activity.pkl b/backend/instance/sessions/49603c01081e4b46977e802593e4e918_activity.pkl new file mode 100644 index 000000000..7b571de8d Binary files /dev/null and b/backend/instance/sessions/49603c01081e4b46977e802593e4e918_activity.pkl differ diff --git a/backend/instance/sessions/49ebb90e6ed228515937bdc42619e4cf_activity.pkl b/backend/instance/sessions/49ebb90e6ed228515937bdc42619e4cf_activity.pkl new file mode 100644 index 000000000..053c79e8a Binary files /dev/null and b/backend/instance/sessions/49ebb90e6ed228515937bdc42619e4cf_activity.pkl differ diff --git a/backend/instance/sessions/4c5de84861766e5a7e65486683f2614a_activity.pkl b/backend/instance/sessions/4c5de84861766e5a7e65486683f2614a_activity.pkl new file mode 100644 index 000000000..13369f9e4 Binary files /dev/null and b/backend/instance/sessions/4c5de84861766e5a7e65486683f2614a_activity.pkl differ diff --git a/backend/instance/sessions/507c6490782475fc8ac6cb103e7ead4f_activity.pkl b/backend/instance/sessions/507c6490782475fc8ac6cb103e7ead4f_activity.pkl new file mode 100644 index 000000000..f3e4ca70f Binary files /dev/null and b/backend/instance/sessions/507c6490782475fc8ac6cb103e7ead4f_activity.pkl differ diff --git a/backend/instance/sessions/517d6a16dd595cd7f67bce2b7e71c389_activity.pkl b/backend/instance/sessions/517d6a16dd595cd7f67bce2b7e71c389_activity.pkl new file mode 100644 index 000000000..9762cac1d Binary files /dev/null and b/backend/instance/sessions/517d6a16dd595cd7f67bce2b7e71c389_activity.pkl differ diff --git a/backend/instance/sessions/52474217147c684a28e09b20ad2f0adb_activity.pkl b/backend/instance/sessions/52474217147c684a28e09b20ad2f0adb_activity.pkl new file mode 100644 index 000000000..7cb893997 Binary files /dev/null and b/backend/instance/sessions/52474217147c684a28e09b20ad2f0adb_activity.pkl differ diff --git a/backend/instance/sessions/52f9a7f1aba3d325733268d94bd90a5f_activity.pkl b/backend/instance/sessions/52f9a7f1aba3d325733268d94bd90a5f_activity.pkl new file mode 100644 index 000000000..39c9ac004 Binary files /dev/null and b/backend/instance/sessions/52f9a7f1aba3d325733268d94bd90a5f_activity.pkl differ diff --git a/backend/instance/sessions/55a971429d404b6ecfc270cda65f86ba_activity.pkl b/backend/instance/sessions/55a971429d404b6ecfc270cda65f86ba_activity.pkl new file mode 100644 index 000000000..64d24efcb Binary files /dev/null and b/backend/instance/sessions/55a971429d404b6ecfc270cda65f86ba_activity.pkl differ diff --git a/backend/instance/sessions/5697ed6d958b4d1b793b8ba646c03333_activity.pkl b/backend/instance/sessions/5697ed6d958b4d1b793b8ba646c03333_activity.pkl new file mode 100644 index 000000000..e7aaa1599 Binary files /dev/null and b/backend/instance/sessions/5697ed6d958b4d1b793b8ba646c03333_activity.pkl differ diff --git a/backend/instance/sessions/57c2e712c8ceaacb68c5ca8e09ba143c_activity.pkl b/backend/instance/sessions/57c2e712c8ceaacb68c5ca8e09ba143c_activity.pkl new file mode 100644 index 000000000..40e25e662 Binary files /dev/null and b/backend/instance/sessions/57c2e712c8ceaacb68c5ca8e09ba143c_activity.pkl differ diff --git a/backend/instance/sessions/63c336983b6ada936483dc3e2f2eb579_activity.pkl b/backend/instance/sessions/63c336983b6ada936483dc3e2f2eb579_activity.pkl new file mode 100644 index 000000000..e96681d6a Binary files /dev/null and b/backend/instance/sessions/63c336983b6ada936483dc3e2f2eb579_activity.pkl differ diff --git a/backend/instance/sessions/63ff6e93018afba27e057cf659c3bd97_activity.pkl b/backend/instance/sessions/63ff6e93018afba27e057cf659c3bd97_activity.pkl new file mode 100644 index 000000000..e3e5abdd3 Binary files /dev/null and b/backend/instance/sessions/63ff6e93018afba27e057cf659c3bd97_activity.pkl differ diff --git a/backend/instance/sessions/6970eb2b505a8c845a59b98ec19bb23d_activity.pkl b/backend/instance/sessions/6970eb2b505a8c845a59b98ec19bb23d_activity.pkl new file mode 100644 index 000000000..38dd6ddfe Binary files /dev/null and b/backend/instance/sessions/6970eb2b505a8c845a59b98ec19bb23d_activity.pkl differ diff --git a/backend/instance/sessions/6f2bd46b9fde9e2bee17538d193a3e9f_activity.pkl b/backend/instance/sessions/6f2bd46b9fde9e2bee17538d193a3e9f_activity.pkl new file mode 100644 index 000000000..906a1568c Binary files /dev/null and b/backend/instance/sessions/6f2bd46b9fde9e2bee17538d193a3e9f_activity.pkl differ diff --git a/backend/instance/sessions/734ad4f063369f2c38e6a17904fcf596_activity.pkl b/backend/instance/sessions/734ad4f063369f2c38e6a17904fcf596_activity.pkl new file mode 100644 index 000000000..7fd893d49 Binary files /dev/null and b/backend/instance/sessions/734ad4f063369f2c38e6a17904fcf596_activity.pkl differ diff --git a/backend/instance/sessions/74b17ebb88a8c4cb616d14dfe97ae934_activity.pkl b/backend/instance/sessions/74b17ebb88a8c4cb616d14dfe97ae934_activity.pkl new file mode 100644 index 000000000..275d7de5f Binary files /dev/null and b/backend/instance/sessions/74b17ebb88a8c4cb616d14dfe97ae934_activity.pkl differ diff --git a/backend/instance/sessions/75b9fce272bc8f85a573dadbc3add84a_activity.pkl b/backend/instance/sessions/75b9fce272bc8f85a573dadbc3add84a_activity.pkl new file mode 100644 index 000000000..94ff3990f Binary files /dev/null and b/backend/instance/sessions/75b9fce272bc8f85a573dadbc3add84a_activity.pkl differ diff --git a/backend/instance/sessions/77097b5892b4583e8d87628ac21265f7_activity.pkl b/backend/instance/sessions/77097b5892b4583e8d87628ac21265f7_activity.pkl new file mode 100644 index 000000000..e71c752b5 Binary files /dev/null and b/backend/instance/sessions/77097b5892b4583e8d87628ac21265f7_activity.pkl differ diff --git a/backend/instance/sessions/78c1228389e9cc2b1d3bdcf298625448_activity.pkl b/backend/instance/sessions/78c1228389e9cc2b1d3bdcf298625448_activity.pkl new file mode 100644 index 000000000..6c06dbc8a Binary files /dev/null and b/backend/instance/sessions/78c1228389e9cc2b1d3bdcf298625448_activity.pkl differ diff --git a/backend/instance/sessions/78f54b5d018c3981c9acfbcaa4413bb5_activity.pkl b/backend/instance/sessions/78f54b5d018c3981c9acfbcaa4413bb5_activity.pkl new file mode 100644 index 000000000..ae66791aa Binary files /dev/null and b/backend/instance/sessions/78f54b5d018c3981c9acfbcaa4413bb5_activity.pkl differ diff --git a/backend/instance/sessions/798c813c482f2331bc9dadc004a3a369_activity.pkl b/backend/instance/sessions/798c813c482f2331bc9dadc004a3a369_activity.pkl new file mode 100644 index 000000000..a7f98aff7 Binary files /dev/null and b/backend/instance/sessions/798c813c482f2331bc9dadc004a3a369_activity.pkl differ diff --git a/backend/instance/sessions/79d8981fbbd4e758cae099203c68bbce_activity.pkl b/backend/instance/sessions/79d8981fbbd4e758cae099203c68bbce_activity.pkl new file mode 100644 index 000000000..c1c4ab7a1 Binary files /dev/null and b/backend/instance/sessions/79d8981fbbd4e758cae099203c68bbce_activity.pkl differ diff --git a/backend/instance/sessions/79df272953d3eba02395b71ed0f3e38d_activity.pkl b/backend/instance/sessions/79df272953d3eba02395b71ed0f3e38d_activity.pkl new file mode 100644 index 000000000..491d7ea0b Binary files /dev/null and b/backend/instance/sessions/79df272953d3eba02395b71ed0f3e38d_activity.pkl differ diff --git a/backend/instance/sessions/8045de9adc61ee9ed352ec55c16b8b74_activity.pkl b/backend/instance/sessions/8045de9adc61ee9ed352ec55c16b8b74_activity.pkl new file mode 100644 index 000000000..06cf7c2c2 Binary files /dev/null and b/backend/instance/sessions/8045de9adc61ee9ed352ec55c16b8b74_activity.pkl differ diff --git a/backend/instance/sessions/8358956d1e86d998fe334bcfc028b542_activity.pkl b/backend/instance/sessions/8358956d1e86d998fe334bcfc028b542_activity.pkl new file mode 100644 index 000000000..073083c98 Binary files /dev/null and b/backend/instance/sessions/8358956d1e86d998fe334bcfc028b542_activity.pkl differ diff --git a/backend/instance/sessions/840ff12d3bbf617afa1f0c6bb3100542_activity.pkl b/backend/instance/sessions/840ff12d3bbf617afa1f0c6bb3100542_activity.pkl new file mode 100644 index 000000000..beaf86ea9 Binary files /dev/null and b/backend/instance/sessions/840ff12d3bbf617afa1f0c6bb3100542_activity.pkl differ diff --git a/backend/instance/sessions/85fd0dc7371e5c8c6fb05004709d88e8_activity.pkl b/backend/instance/sessions/85fd0dc7371e5c8c6fb05004709d88e8_activity.pkl new file mode 100644 index 000000000..25a75bcb9 Binary files /dev/null and b/backend/instance/sessions/85fd0dc7371e5c8c6fb05004709d88e8_activity.pkl differ diff --git a/backend/instance/sessions/86473f08a70a5792b0db6cb74228888e_activity.pkl b/backend/instance/sessions/86473f08a70a5792b0db6cb74228888e_activity.pkl new file mode 100644 index 000000000..76ebc3e0c Binary files /dev/null and b/backend/instance/sessions/86473f08a70a5792b0db6cb74228888e_activity.pkl differ diff --git a/backend/instance/sessions/8720e449e4acebb1ded3f45243561ea5_activity.pkl b/backend/instance/sessions/8720e449e4acebb1ded3f45243561ea5_activity.pkl new file mode 100644 index 000000000..5f2746c59 Binary files /dev/null and b/backend/instance/sessions/8720e449e4acebb1ded3f45243561ea5_activity.pkl differ diff --git a/backend/instance/sessions/88298ffdb271e1921b2ce7c5f38f9629_activity.pkl b/backend/instance/sessions/88298ffdb271e1921b2ce7c5f38f9629_activity.pkl new file mode 100644 index 000000000..cb8ead6a5 Binary files /dev/null and b/backend/instance/sessions/88298ffdb271e1921b2ce7c5f38f9629_activity.pkl differ diff --git a/backend/instance/sessions/8f2b58425c34475824382467bb5f2047_activity.pkl b/backend/instance/sessions/8f2b58425c34475824382467bb5f2047_activity.pkl new file mode 100644 index 000000000..c4f7ec7d4 Binary files /dev/null and b/backend/instance/sessions/8f2b58425c34475824382467bb5f2047_activity.pkl differ diff --git a/backend/instance/sessions/904b1ea7eb8768b81a2064813409f57e_activity.pkl b/backend/instance/sessions/904b1ea7eb8768b81a2064813409f57e_activity.pkl new file mode 100644 index 000000000..7b898214f Binary files /dev/null and b/backend/instance/sessions/904b1ea7eb8768b81a2064813409f57e_activity.pkl differ diff --git a/backend/instance/sessions/93ec659f5cbd02b55fc4a58bc40fb66b_activity.pkl b/backend/instance/sessions/93ec659f5cbd02b55fc4a58bc40fb66b_activity.pkl new file mode 100644 index 000000000..c0f921743 Binary files /dev/null and b/backend/instance/sessions/93ec659f5cbd02b55fc4a58bc40fb66b_activity.pkl differ diff --git a/backend/instance/sessions/97c5b85f90594dfd0560d77a9fe81759_activity.pkl b/backend/instance/sessions/97c5b85f90594dfd0560d77a9fe81759_activity.pkl new file mode 100644 index 000000000..793d194a2 Binary files /dev/null and b/backend/instance/sessions/97c5b85f90594dfd0560d77a9fe81759_activity.pkl differ diff --git a/backend/instance/sessions/9873a2825447127aa2febb2fb4a8bc62_activity.pkl b/backend/instance/sessions/9873a2825447127aa2febb2fb4a8bc62_activity.pkl new file mode 100644 index 000000000..daf2e8f23 Binary files /dev/null and b/backend/instance/sessions/9873a2825447127aa2febb2fb4a8bc62_activity.pkl differ diff --git a/backend/instance/sessions/997ac0b72c61e6656cfab5bb13b86adb_activity.pkl b/backend/instance/sessions/997ac0b72c61e6656cfab5bb13b86adb_activity.pkl new file mode 100644 index 000000000..ed8baaf0c Binary files /dev/null and b/backend/instance/sessions/997ac0b72c61e6656cfab5bb13b86adb_activity.pkl differ diff --git a/backend/instance/sessions/99f1ff5a8fa2739a66926c8eeaf3248c_activity.pkl b/backend/instance/sessions/99f1ff5a8fa2739a66926c8eeaf3248c_activity.pkl new file mode 100644 index 000000000..778beedaf Binary files /dev/null and b/backend/instance/sessions/99f1ff5a8fa2739a66926c8eeaf3248c_activity.pkl differ diff --git a/backend/instance/sessions/9b2b191b50529a7750181f66db96b6ab_activity.pkl b/backend/instance/sessions/9b2b191b50529a7750181f66db96b6ab_activity.pkl new file mode 100644 index 000000000..0c1570b96 Binary files /dev/null and b/backend/instance/sessions/9b2b191b50529a7750181f66db96b6ab_activity.pkl differ diff --git a/backend/instance/sessions/9b577fcc62196029644c6f31d9d5c12f_activity.pkl b/backend/instance/sessions/9b577fcc62196029644c6f31d9d5c12f_activity.pkl new file mode 100644 index 000000000..c1de8a277 Binary files /dev/null and b/backend/instance/sessions/9b577fcc62196029644c6f31d9d5c12f_activity.pkl differ diff --git a/backend/instance/sessions/9f0b54d4e7a2ca00c5baa730bdc23771_activity.pkl b/backend/instance/sessions/9f0b54d4e7a2ca00c5baa730bdc23771_activity.pkl new file mode 100644 index 000000000..240c0618b Binary files /dev/null and b/backend/instance/sessions/9f0b54d4e7a2ca00c5baa730bdc23771_activity.pkl differ diff --git a/backend/instance/sessions/9f74628bb266162cce271fe02eb7791b_activity.pkl b/backend/instance/sessions/9f74628bb266162cce271fe02eb7791b_activity.pkl new file mode 100644 index 000000000..5ddee0c01 Binary files /dev/null and b/backend/instance/sessions/9f74628bb266162cce271fe02eb7791b_activity.pkl differ diff --git a/backend/instance/sessions/a1aca34453e1b94540bd010557a55f1e_activity.pkl b/backend/instance/sessions/a1aca34453e1b94540bd010557a55f1e_activity.pkl new file mode 100644 index 000000000..1e9958fcb Binary files /dev/null and b/backend/instance/sessions/a1aca34453e1b94540bd010557a55f1e_activity.pkl differ diff --git a/backend/instance/sessions/a3246688672ad8a4e721c0a3f3de731b_activity.pkl b/backend/instance/sessions/a3246688672ad8a4e721c0a3f3de731b_activity.pkl new file mode 100644 index 000000000..66cb4f93b Binary files /dev/null and b/backend/instance/sessions/a3246688672ad8a4e721c0a3f3de731b_activity.pkl differ diff --git a/backend/instance/sessions/a686d64036f5db3d8ac77dfc259e77a9_activity.pkl b/backend/instance/sessions/a686d64036f5db3d8ac77dfc259e77a9_activity.pkl new file mode 100644 index 000000000..42748817c Binary files /dev/null and b/backend/instance/sessions/a686d64036f5db3d8ac77dfc259e77a9_activity.pkl differ diff --git a/backend/instance/sessions/ab84a4b87277ebaab0ab274eb18fe973_activity.pkl b/backend/instance/sessions/ab84a4b87277ebaab0ab274eb18fe973_activity.pkl new file mode 100644 index 000000000..7a161a142 Binary files /dev/null and b/backend/instance/sessions/ab84a4b87277ebaab0ab274eb18fe973_activity.pkl differ diff --git a/backend/instance/sessions/abee6de23784fea49faa7c8913907bf0_activity.pkl b/backend/instance/sessions/abee6de23784fea49faa7c8913907bf0_activity.pkl new file mode 100644 index 000000000..295092230 Binary files /dev/null and b/backend/instance/sessions/abee6de23784fea49faa7c8913907bf0_activity.pkl differ diff --git a/backend/instance/sessions/b088ce6456d5ec83e0c468b0dfa35edd_activity.pkl b/backend/instance/sessions/b088ce6456d5ec83e0c468b0dfa35edd_activity.pkl new file mode 100644 index 000000000..9757620b0 Binary files /dev/null and b/backend/instance/sessions/b088ce6456d5ec83e0c468b0dfa35edd_activity.pkl differ diff --git a/backend/instance/sessions/b0d054fd72dcb87efd4ede36ac06e680_activity.pkl b/backend/instance/sessions/b0d054fd72dcb87efd4ede36ac06e680_activity.pkl new file mode 100644 index 000000000..00557ed95 Binary files /dev/null and b/backend/instance/sessions/b0d054fd72dcb87efd4ede36ac06e680_activity.pkl differ diff --git a/backend/instance/sessions/b360d907fe6af3c3e718b982180d4e59_activity.pkl b/backend/instance/sessions/b360d907fe6af3c3e718b982180d4e59_activity.pkl new file mode 100644 index 000000000..dd4eca3ac Binary files /dev/null and b/backend/instance/sessions/b360d907fe6af3c3e718b982180d4e59_activity.pkl differ diff --git a/backend/instance/sessions/b475160ba4edc3f1474d75bfe4057830_activity.pkl b/backend/instance/sessions/b475160ba4edc3f1474d75bfe4057830_activity.pkl new file mode 100644 index 000000000..830a45b21 Binary files /dev/null and b/backend/instance/sessions/b475160ba4edc3f1474d75bfe4057830_activity.pkl differ diff --git a/backend/instance/sessions/bb93b9053acaf9fbe63758c980a47171_activity.pkl b/backend/instance/sessions/bb93b9053acaf9fbe63758c980a47171_activity.pkl new file mode 100644 index 000000000..6d3b7d387 Binary files /dev/null and b/backend/instance/sessions/bb93b9053acaf9fbe63758c980a47171_activity.pkl differ diff --git a/backend/instance/sessions/becdb7d680789bd430c7e60f5b1e7d03_activity.pkl b/backend/instance/sessions/becdb7d680789bd430c7e60f5b1e7d03_activity.pkl new file mode 100644 index 000000000..a135cc335 Binary files /dev/null and b/backend/instance/sessions/becdb7d680789bd430c7e60f5b1e7d03_activity.pkl differ diff --git a/backend/instance/sessions/c1e4550ff94274601cdfdfd2add75669_activity.pkl b/backend/instance/sessions/c1e4550ff94274601cdfdfd2add75669_activity.pkl new file mode 100644 index 000000000..32d36c85a Binary files /dev/null and b/backend/instance/sessions/c1e4550ff94274601cdfdfd2add75669_activity.pkl differ diff --git a/backend/instance/sessions/c394e6f4580b0e6c0cead6a4eb68d002_activity.pkl b/backend/instance/sessions/c394e6f4580b0e6c0cead6a4eb68d002_activity.pkl new file mode 100644 index 000000000..2598689ec Binary files /dev/null and b/backend/instance/sessions/c394e6f4580b0e6c0cead6a4eb68d002_activity.pkl differ diff --git a/backend/instance/sessions/c508dc2404e4da51dabecc6cd4b51ded_activity.pkl b/backend/instance/sessions/c508dc2404e4da51dabecc6cd4b51ded_activity.pkl new file mode 100644 index 000000000..9ff3ea6fe Binary files /dev/null and b/backend/instance/sessions/c508dc2404e4da51dabecc6cd4b51ded_activity.pkl differ diff --git a/backend/instance/sessions/c6134da724637b2c460c7188d6c94802_activity.pkl b/backend/instance/sessions/c6134da724637b2c460c7188d6c94802_activity.pkl new file mode 100644 index 000000000..8e9ef8940 Binary files /dev/null and b/backend/instance/sessions/c6134da724637b2c460c7188d6c94802_activity.pkl differ diff --git a/backend/instance/sessions/c9f9da8df1c4257fd7ee71ec72d003fb_activity.pkl b/backend/instance/sessions/c9f9da8df1c4257fd7ee71ec72d003fb_activity.pkl new file mode 100644 index 000000000..94865c467 Binary files /dev/null and b/backend/instance/sessions/c9f9da8df1c4257fd7ee71ec72d003fb_activity.pkl differ diff --git a/backend/instance/sessions/cb2724b22369ae4176fd036fc71c6633_activity.pkl b/backend/instance/sessions/cb2724b22369ae4176fd036fc71c6633_activity.pkl new file mode 100644 index 000000000..691daddc5 Binary files /dev/null and b/backend/instance/sessions/cb2724b22369ae4176fd036fc71c6633_activity.pkl differ diff --git a/backend/instance/sessions/cc587e1f778284144fcf05585004207e_activity.pkl b/backend/instance/sessions/cc587e1f778284144fcf05585004207e_activity.pkl new file mode 100644 index 000000000..15a04d7a3 Binary files /dev/null and b/backend/instance/sessions/cc587e1f778284144fcf05585004207e_activity.pkl differ diff --git a/backend/instance/sessions/ce657b1447262526e121e997a05469dd_activity.pkl b/backend/instance/sessions/ce657b1447262526e121e997a05469dd_activity.pkl new file mode 100644 index 000000000..9c150790a Binary files /dev/null and b/backend/instance/sessions/ce657b1447262526e121e997a05469dd_activity.pkl differ diff --git a/backend/instance/sessions/d464a674c04ac982671d76b2260734fc_activity.pkl b/backend/instance/sessions/d464a674c04ac982671d76b2260734fc_activity.pkl new file mode 100644 index 000000000..d2ced8ee9 Binary files /dev/null and b/backend/instance/sessions/d464a674c04ac982671d76b2260734fc_activity.pkl differ diff --git a/backend/instance/sessions/d4cb706e388c53717578dbdf42f6e433_activity.pkl b/backend/instance/sessions/d4cb706e388c53717578dbdf42f6e433_activity.pkl new file mode 100644 index 000000000..36ac5e022 Binary files /dev/null and b/backend/instance/sessions/d4cb706e388c53717578dbdf42f6e433_activity.pkl differ diff --git a/backend/instance/sessions/d543f085ce005b4d4794affb02463b89_activity.pkl b/backend/instance/sessions/d543f085ce005b4d4794affb02463b89_activity.pkl new file mode 100644 index 000000000..ff26acbeb Binary files /dev/null and b/backend/instance/sessions/d543f085ce005b4d4794affb02463b89_activity.pkl differ diff --git a/backend/instance/sessions/d6a7b16b1b9509ab23b1cdf29f156a28_activity.pkl b/backend/instance/sessions/d6a7b16b1b9509ab23b1cdf29f156a28_activity.pkl new file mode 100644 index 000000000..5c353310e Binary files /dev/null and b/backend/instance/sessions/d6a7b16b1b9509ab23b1cdf29f156a28_activity.pkl differ diff --git a/backend/instance/sessions/d88cbc5e3c30a890be8f75a62277aee7_activity.pkl b/backend/instance/sessions/d88cbc5e3c30a890be8f75a62277aee7_activity.pkl new file mode 100644 index 000000000..52cc3b038 Binary files /dev/null and b/backend/instance/sessions/d88cbc5e3c30a890be8f75a62277aee7_activity.pkl differ diff --git a/backend/instance/sessions/d8cea378b5d90c040fb4d70117c3a7af_activity.pkl b/backend/instance/sessions/d8cea378b5d90c040fb4d70117c3a7af_activity.pkl new file mode 100644 index 000000000..71a0b0f1b Binary files /dev/null and b/backend/instance/sessions/d8cea378b5d90c040fb4d70117c3a7af_activity.pkl differ diff --git a/backend/instance/sessions/da31f03707c1cd2a82ac9e0917e931df_activity.pkl b/backend/instance/sessions/da31f03707c1cd2a82ac9e0917e931df_activity.pkl new file mode 100644 index 000000000..bc950b93b Binary files /dev/null and b/backend/instance/sessions/da31f03707c1cd2a82ac9e0917e931df_activity.pkl differ diff --git a/backend/instance/sessions/dae7762d0f5269cfe1fa018b7583e130_activity.pkl b/backend/instance/sessions/dae7762d0f5269cfe1fa018b7583e130_activity.pkl new file mode 100644 index 000000000..12b53050c Binary files /dev/null and b/backend/instance/sessions/dae7762d0f5269cfe1fa018b7583e130_activity.pkl differ diff --git a/backend/instance/sessions/de40fb0de55c9e5e08fb840440343159_activity.pkl b/backend/instance/sessions/de40fb0de55c9e5e08fb840440343159_activity.pkl new file mode 100644 index 000000000..0a268c16d Binary files /dev/null and b/backend/instance/sessions/de40fb0de55c9e5e08fb840440343159_activity.pkl differ diff --git a/backend/instance/sessions/dfab86251e18dd5676884145cdc19b42_activity.pkl b/backend/instance/sessions/dfab86251e18dd5676884145cdc19b42_activity.pkl new file mode 100644 index 000000000..906ec867a Binary files /dev/null and b/backend/instance/sessions/dfab86251e18dd5676884145cdc19b42_activity.pkl differ diff --git a/backend/instance/sessions/e555aeaeeb0c2ca147cbce62b568683d_activity.pkl b/backend/instance/sessions/e555aeaeeb0c2ca147cbce62b568683d_activity.pkl new file mode 100644 index 000000000..f7de0ad23 Binary files /dev/null and b/backend/instance/sessions/e555aeaeeb0c2ca147cbce62b568683d_activity.pkl differ diff --git a/backend/instance/sessions/e58a1501efe0f0302346627cd89643f1_activity.pkl b/backend/instance/sessions/e58a1501efe0f0302346627cd89643f1_activity.pkl new file mode 100644 index 000000000..79bb8c179 Binary files /dev/null and b/backend/instance/sessions/e58a1501efe0f0302346627cd89643f1_activity.pkl differ diff --git a/backend/instance/sessions/ed3b68f0ae951065ee9ff633ce7c8649_activity.pkl b/backend/instance/sessions/ed3b68f0ae951065ee9ff633ce7c8649_activity.pkl new file mode 100644 index 000000000..e83a86aea Binary files /dev/null and b/backend/instance/sessions/ed3b68f0ae951065ee9ff633ce7c8649_activity.pkl differ diff --git a/backend/instance/sessions/ee3b57aced0b0242ced0dfa5754ad557_activity.pkl b/backend/instance/sessions/ee3b57aced0b0242ced0dfa5754ad557_activity.pkl new file mode 100644 index 000000000..005a04563 Binary files /dev/null and b/backend/instance/sessions/ee3b57aced0b0242ced0dfa5754ad557_activity.pkl differ diff --git a/backend/instance/sessions/f18802fa27c4c664ddd14118a2d27679_activity.pkl b/backend/instance/sessions/f18802fa27c4c664ddd14118a2d27679_activity.pkl new file mode 100644 index 000000000..9174a2145 Binary files /dev/null and b/backend/instance/sessions/f18802fa27c4c664ddd14118a2d27679_activity.pkl differ diff --git a/backend/instance/sessions/f1d536cfae794bfc8d591a93b0038823_activity.pkl b/backend/instance/sessions/f1d536cfae794bfc8d591a93b0038823_activity.pkl new file mode 100644 index 000000000..9ffa35a7c Binary files /dev/null and b/backend/instance/sessions/f1d536cfae794bfc8d591a93b0038823_activity.pkl differ diff --git a/backend/instance/sessions/f648758b60c7de6a08005fb821307317_activity.pkl b/backend/instance/sessions/f648758b60c7de6a08005fb821307317_activity.pkl new file mode 100644 index 000000000..07a223eb6 Binary files /dev/null and b/backend/instance/sessions/f648758b60c7de6a08005fb821307317_activity.pkl differ diff --git a/backend/instance/sessions/f6d771c611fbcff590f407ae2847a129_activity.pkl b/backend/instance/sessions/f6d771c611fbcff590f407ae2847a129_activity.pkl new file mode 100644 index 000000000..274509d6e Binary files /dev/null and b/backend/instance/sessions/f6d771c611fbcff590f407ae2847a129_activity.pkl differ diff --git a/backend/instance/sessions/faf317ea6d929bd9996bed63a702f217_activity.pkl b/backend/instance/sessions/faf317ea6d929bd9996bed63a702f217_activity.pkl new file mode 100644 index 000000000..5bba9b67d Binary files /dev/null and b/backend/instance/sessions/faf317ea6d929bd9996bed63a702f217_activity.pkl differ diff --git a/backend/logs/admin/admin.log b/backend/logs/admin/admin.log index fd2aa6134..f358b01ad 100644 --- a/backend/logs/admin/admin.log +++ b/backend/logs/admin/admin.log @@ -654,3 +654,19 @@ 2025-06-19 11:23:03 - [admin] admin - [INFO] INFO - Admin-Check für Funktion add_user_page: User authenticated: True, User ID: 1, Is Admin: True 2025-06-19 11:23:15 - [admin] admin - [INFO] INFO - Admin-Check für Funktion create_user_api: User authenticated: True, User ID: 1, Is Admin: True 2025-06-19 11:23:15 - [admin] admin - [ERROR] ERROR - Fehler beim Erstellen des Benutzers: 415 Unsupported Media Type: Did not attempt to load JSON data because the request Content-Type was not 'application/json'. +2025-06-19 11:49:38 - [admin] admin - [INFO] INFO - Admin-Check für Funktion admin_dashboard: User authenticated: True, User ID: 1, Is Admin: True +2025-06-19 11:49:38 - [admin] admin - [INFO] INFO - Admin-Dashboard geladen von admin +2025-06-19 11:49:41 - [admin] admin - [INFO] INFO - Admin-Check für Funktion users_overview: User authenticated: True, User ID: 1, Is Admin: True +2025-06-19 11:49:41 - [admin] admin - [INFO] INFO - Benutzerübersicht geladen von admin +2025-06-19 11:49:43 - [admin] admin - [INFO] INFO - Admin-Check für Funktion add_user_page: User authenticated: True, User ID: 1, Is Admin: True +2025-06-19 11:49:54 - [admin] admin - [INFO] INFO - Admin-Check für Funktion create_user_api: User authenticated: True, User ID: 1, Is Admin: True +2025-06-19 11:49:54 - [admin] admin - [INFO] INFO - Benutzer-Erstellung angefordert von admin: unknown +2025-06-19 11:49:54 - [admin] admin - [ERROR] ERROR - Erforderliches Feld 'username' fehlt bei Benutzer-Erstellung +2025-06-19 11:50:28 - [admin] admin - [INFO] INFO - Admin-Check für Funktion admin_dashboard: User authenticated: True, User ID: 1, Is Admin: True +2025-06-19 11:50:28 - [admin] admin - [INFO] INFO - Admin-Dashboard geladen von admin +2025-06-19 11:50:32 - [admin] admin - [INFO] INFO - Admin-Check für Funktion system_health: User authenticated: True, User ID: 1, Is Admin: True +2025-06-19 11:50:32 - [admin] admin - [INFO] INFO - System-Health geladen von admin +2025-06-19 11:50:33 - [admin] admin - [INFO] INFO - Admin-Check für Funktion system_health: User authenticated: True, User ID: 1, Is Admin: True +2025-06-19 11:50:33 - [admin] admin - [INFO] INFO - System-Health geladen von admin +2025-06-19 11:50:41 - [admin] admin - [INFO] INFO - Admin-Check für Funktion printers_overview: User authenticated: True, User ID: 1, Is Admin: True +2025-06-19 11:50:41 - [admin] admin - [INFO] INFO - Druckerübersicht geladen von admin diff --git a/backend/logs/app/app.log b/backend/logs/app/app.log index b38e36c88..ae22ac1a5 100644 --- a/backend/logs/app/app.log +++ b/backend/logs/app/app.log @@ -47168,3 +47168,302 @@ werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'admin. 2025-06-19 11:25:39 - [app] app - [DEBUG] DEBUG - Response: 200 2025-06-19 11:26:09 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications 2025-06-19 11:26:09 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:48:46 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: ./database/myp.db +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True +2025-06-19 11:48:48 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-19 11:48:48 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: 0 erstellt, 0 aktualisiert +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP DEVELOPMENT-Umgebung +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] 🏢 Mercedes-Benz TBA Marienfelde +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: True +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-19 11:48:48 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-19 11:48:48 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-19 11:48:48 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-19 11:48:48 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-19 11:48:48 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-19 11:48:48 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-19 11:48:48 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-19 11:48:48 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-19 11:48:48 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-19 11:48:48 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-19 11:48:48 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-19 11:48:48 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://0.0.0.0:5000 +2025-06-19 11:48:50 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: ./database/myp.db +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True +2025-06-19 11:48:52 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-19 11:48:52 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: 0 erstellt, 0 aktualisiert +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP DEVELOPMENT-Umgebung +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] 🏢 Mercedes-Benz TBA Marienfelde +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: True +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-19 11:48:52 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-19 11:48:52 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-19 11:48:52 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-19 11:48:52 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-19 11:48:52 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-19 11:48:52 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-19 11:48:52 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-19 11:48:52 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-19 11:48:52 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-19 11:48:52 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-19 11:48:52 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-19 11:48:52 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://0.0.0.0:5000 +2025-06-19 11:48:54 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.InterfaceError) bad parameter or other API misuse +[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout +FROM users +WHERE users.id = ? + LIMIT ? OFFSET ?] +[parameters: (1, 1, 0)] +(Background on this error at: https://sqlalche.me/e/20/rvf5) +2025-06-19 11:48:55 - [app] app - [INFO] INFO - Locating template 'dashboard.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates + -> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\dashboard.html') +2025-06-19 11:48:55 - [app] app - [INFO] INFO - Locating template 'base.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates + -> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\base.html') +2025-06-19 11:48:55 - [app] app - [INFO] INFO - Locating template 'macros/ui_components.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates + -> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\macros\\ui_components.html') +2025-06-19 11:48:55 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:48:55 - [app] app - [DEBUG] DEBUG - Request: GET /dashboard +2025-06-19 11:48:55 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:48:55 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:48:55 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:48:57 - [app] app - [DEBUG] DEBUG - Request: GET /printers +2025-06-19 11:48:57 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 1, Status: off, Quelle: system +2025-06-19 11:48:57 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 1 -> off +2025-06-19 11:48:57 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 2, Status: off, Quelle: system +2025-06-19 11:48:57 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 2 -> off +2025-06-19 11:48:58 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 3, Status: off, Quelle: system +2025-06-19 11:48:58 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 3 -> off +2025-06-19 11:48:58 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 4, Status: off, Quelle: system +2025-06-19 11:48:58 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 4 -> off +2025-06-19 11:49:00 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 5, Status: disconnected, Quelle: system +2025-06-19 11:49:00 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 5 -> disconnected +2025-06-19 11:49:00 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 6, Status: off, Quelle: system +2025-06-19 11:49:00 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 6 -> off +2025-06-19 11:49:00 - [app] app - [DEBUG] DEBUG - ✅ Status-Updates für 6 Drucker erfolgreich gespeichert +2025-06-19 11:49:00 - [app] app - [INFO] INFO - Locating template 'printers.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates + -> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\printers.html') +2025-06-19 11:49:00 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:00 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:49:00 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:03 - [app] app - [DEBUG] DEBUG - Request: POST /printers/control +2025-06-19 11:49:03 - [app] app - [ERROR] ERROR - Unerwarteter Fehler bei Drucker-Steuerung: 'TapoController' object has no attribute 'is_plug_reachable' +2025-06-19 11:49:03 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-19 11:49:03 - [app] app - [DEBUG] DEBUG - Request: GET /printers +2025-06-19 11:49:04 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 1, Status: off, Quelle: system +2025-06-19 11:49:04 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 1 -> off +2025-06-19 11:49:04 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 2, Status: off, Quelle: system +2025-06-19 11:49:04 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 2 -> off +2025-06-19 11:49:04 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 3, Status: off, Quelle: system +2025-06-19 11:49:04 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 3 -> off +2025-06-19 11:49:04 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 4, Status: off, Quelle: system +2025-06-19 11:49:04 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 4 -> off +2025-06-19 11:49:06 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 5, Status: disconnected, Quelle: system +2025-06-19 11:49:06 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 5 -> disconnected +2025-06-19 11:49:06 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 6, Status: off, Quelle: system +2025-06-19 11:49:06 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 6 -> off +2025-06-19 11:49:06 - [app] app - [DEBUG] DEBUG - ✅ Status-Updates für 6 Drucker erfolgreich gespeichert +2025-06-19 11:49:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:07 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:49:07 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:10 - [app] app - [DEBUG] DEBUG - Request: POST /printers/control +2025-06-19 11:49:10 - [app] app - [ERROR] ERROR - Unerwarteter Fehler bei Drucker-Steuerung: 'TapoController' object has no attribute 'is_plug_reachable' +2025-06-19 11:49:10 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-19 11:49:10 - [app] app - [DEBUG] DEBUG - Request: GET /printers +2025-06-19 11:49:11 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 1, Status: off, Quelle: system +2025-06-19 11:49:11 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 1 -> off +2025-06-19 11:49:11 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 2, Status: off, Quelle: system +2025-06-19 11:49:11 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 2 -> off +2025-06-19 11:49:11 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 3, Status: off, Quelle: system +2025-06-19 11:49:11 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 3 -> off +2025-06-19 11:49:11 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 4, Status: off, Quelle: system +2025-06-19 11:49:11 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 4 -> off +2025-06-19 11:49:14 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 5, Status: disconnected, Quelle: system +2025-06-19 11:49:14 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 5 -> disconnected +2025-06-19 11:49:14 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 6, Status: off, Quelle: system +2025-06-19 11:49:14 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 6 -> off +2025-06-19 11:49:14 - [app] app - [DEBUG] DEBUG - ✅ Status-Updates für 6 Drucker erfolgreich gespeichert +2025-06-19 11:49:14 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:14 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:49:14 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:19 - [app] app - [DEBUG] DEBUG - Request: POST /printers/control +2025-06-19 11:49:19 - [app] app - [ERROR] ERROR - Unerwarteter Fehler bei Drucker-Steuerung: 'TapoController' object has no attribute 'is_plug_reachable' +2025-06-19 11:49:19 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-19 11:49:19 - [app] app - [DEBUG] DEBUG - Request: GET /printers +2025-06-19 11:49:20 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 1, Status: off, Quelle: system +2025-06-19 11:49:20 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 1 -> off +2025-06-19 11:49:20 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 2, Status: off, Quelle: system +2025-06-19 11:49:20 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 2 -> off +2025-06-19 11:49:20 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 3, Status: off, Quelle: system +2025-06-19 11:49:20 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 3 -> off +2025-06-19 11:49:21 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 4, Status: off, Quelle: system +2025-06-19 11:49:21 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 4 -> off +2025-06-19 11:49:23 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 5, Status: disconnected, Quelle: system +2025-06-19 11:49:23 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 5 -> disconnected +2025-06-19 11:49:23 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 6, Status: off, Quelle: system +2025-06-19 11:49:23 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 6 -> off +2025-06-19 11:49:23 - [app] app - [DEBUG] DEBUG - ✅ Status-Updates für 6 Drucker erfolgreich gespeichert +2025-06-19 11:49:23 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:23 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:49:23 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:27 - [app] app - [DEBUG] DEBUG - Request: POST /printers/control +2025-06-19 11:49:27 - [app] app - [ERROR] ERROR - Unerwarteter Fehler bei Drucker-Steuerung: 'TapoController' object has no attribute 'is_plug_reachable' +2025-06-19 11:49:27 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-19 11:49:27 - [app] app - [DEBUG] DEBUG - Request: GET /printers +2025-06-19 11:49:27 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 1, Status: off, Quelle: system +2025-06-19 11:49:27 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 1 -> off +2025-06-19 11:49:27 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 2, Status: off, Quelle: system +2025-06-19 11:49:27 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 2 -> off +2025-06-19 11:49:27 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 3, Status: off, Quelle: system +2025-06-19 11:49:27 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 3 -> off +2025-06-19 11:49:27 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 4, Status: off, Quelle: system +2025-06-19 11:49:27 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 4 -> off +2025-06-19 11:49:29 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 5, Status: disconnected, Quelle: system +2025-06-19 11:49:29 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 5 -> disconnected +2025-06-19 11:49:30 - [app] app - [INFO] INFO - ✅ Steckdosen-Status geloggt: Drucker 6, Status: off, Quelle: system +2025-06-19 11:49:30 - [app] app - [DEBUG] DEBUG - 📊 Auto-Status protokolliert: Drucker 6 -> off +2025-06-19 11:49:30 - [app] app - [DEBUG] DEBUG - ✅ Status-Updates für 6 Drucker erfolgreich gespeichert +2025-06-19 11:49:30 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:30 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:49:30 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:38 - [app] app - [DEBUG] DEBUG - Request: GET /admin/ +2025-06-19 11:49:38 - [app] app - [INFO] INFO - Locating template 'admin.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates + -> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\admin.html') +2025-06-19 11:49:38 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:38 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:49:38 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:41 - [app] app - [DEBUG] DEBUG - Request: GET /admin/users +2025-06-19 11:49:41 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:41 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:49:41 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:43 - [app] app - [DEBUG] DEBUG - Request: GET /admin/users/add +2025-06-19 11:49:43 - [app] app - [INFO] INFO - Locating template 'admin_add_user.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates + -> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\admin_add_user.html') +2025-06-19 11:49:43 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:43 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:49:43 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:49:54 - [app] app - [DEBUG] DEBUG - Request: POST /api/admin/users +2025-06-19 11:49:54 - [app] app - [DEBUG] DEBUG - Response: 400 +2025-06-19 11:50:27 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:50:27 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.InterfaceError) bad parameter or other API misuse +[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout +FROM users +WHERE users.id = ? + LIMIT ? OFFSET ?] +[parameters: (1, 1, 0)] +(Background on this error at: https://sqlalche.me/e/20/rvf5) +2025-06-19 11:50:27 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-19 11:50:27 - [app] app - [DEBUG] DEBUG - Request: GET /auth/login +2025-06-19 11:50:27 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-19 11:50:27 - [app] app - [DEBUG] DEBUG - Request: GET / +2025-06-19 11:50:27 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-19 11:50:27 - [app] app - [DEBUG] DEBUG - Request: GET /dashboard +2025-06-19 11:50:27 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:50:28 - [app] app - [DEBUG] DEBUG - Request: GET /admin/ +2025-06-19 11:50:28 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:50:28 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:50:28 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:50:32 - [app] app - [DEBUG] DEBUG - Request: GET /admin/system-health +2025-06-19 11:50:32 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:50:32 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:50:32 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:50:33 - [app] app - [DEBUG] DEBUG - Request: GET /admin/system-health +2025-06-19 11:50:33 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:50:33 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:50:33 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:50:37 - [app] app - [DEBUG] DEBUG - Request: GET /jobs +2025-06-19 11:50:37 - [app] app - [INFO] INFO - Locating template 'jobs.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates + -> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\jobs.html') +2025-06-19 11:50:37 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:50:37 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:50:37 - [app] app - [DEBUG] DEBUG - Request: GET /api/jobs +2025-06-19 11:50:37 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:50:37 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:50:37 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-19 11:50:37 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-19 11:50:37 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:50:41 - [app] app - [DEBUG] DEBUG - Request: GET /admin/printers +2025-06-19 11:50:41 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:50:41 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:50:41 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:51:11 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:51:11 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:51:41 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:51:41 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:52:11 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:52:11 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-19 11:52:41 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-19 11:52:41 - [app] app - [DEBUG] DEBUG - Response: 200 diff --git a/backend/logs/core_system/core_system.log b/backend/logs/core_system/core_system.log index ec4ce6a87..115013ffb 100644 --- a/backend/logs/core_system/core_system.log +++ b/backend/logs/core_system/core_system.log @@ -356,3 +356,7 @@ 2025-06-19 11:22:56 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) 2025-06-19 11:22:58 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert 2025-06-19 11:22:58 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-19 11:48:46 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-19 11:48:46 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-19 11:48:50 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-19 11:48:50 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) diff --git a/backend/logs/data_management/data_management.log b/backend/logs/data_management/data_management.log index efb9f6caa..57028c621 100644 --- a/backend/logs/data_management/data_management.log +++ b/backend/logs/data_management/data_management.log @@ -735,3 +735,7 @@ 2025-06-19 11:22:56 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-19 11:22:58 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert 2025-06-19 11:22:58 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-19 11:48:46 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-19 11:48:46 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-19 11:48:50 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-19 11:48:50 - [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 c95ba3f58..381a0994c 100644 --- a/backend/logs/energy_monitoring/energy_monitoring.log +++ b/backend/logs/energy_monitoring/energy_monitoring.log @@ -620,3 +620,5 @@ 2025-06-19 11:20:03 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert 2025-06-19 11:22:57 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert 2025-06-19 11:22:59 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-19 11:48:48 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-19 11:48:52 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert diff --git a/backend/logs/hardware_integration/hardware_integration.log b/backend/logs/hardware_integration/hardware_integration.log index d5e8d8e80..3a52267e6 100644 --- a/backend/logs/hardware_integration/hardware_integration.log +++ b/backend/logs/hardware_integration/hardware_integration.log @@ -2997,3 +2997,11 @@ 2025-06-19 11:22:58 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor mit Session-Caching initialisiert 2025-06-19 11:22:58 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert 2025-06-19 11:22:58 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-19 11:48:46 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-19 11:48:46 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor mit Session-Caching initialisiert +2025-06-19 11:48:46 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-19 11:48:46 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-19 11:48:50 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-19 11:48:50 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor mit Session-Caching initialisiert +2025-06-19 11:48:50 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-19 11:48:50 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) diff --git a/backend/logs/job_queue_system/job_queue_system.log b/backend/logs/job_queue_system/job_queue_system.log index 3a87050e3..0c87c64a3 100644 --- a/backend/logs/job_queue_system/job_queue_system.log +++ b/backend/logs/job_queue_system/job_queue_system.log @@ -1426,3 +1426,11 @@ 2025-06-19 11:22:59 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) 2025-06-19 11:26:26 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) 2025-06-19 11:26:26 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-19 11:48:46 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-19 11:48:46 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-19 11:48:48 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-19 11:48:50 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-19 11:48:50 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-19 11:48:52 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-19 11:53:04 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-19 11:53:04 - [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 69680f2e9..4c573a66f 100644 --- a/backend/logs/jobs/jobs.log +++ b/backend/logs/jobs/jobs.log @@ -949,3 +949,5 @@ sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) FOREIGN KEY constraint f 2025-06-18 12:40:13 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 0 von 0 (Seite 1) 2025-06-18 12:49:58 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) 2025-06-18 12:49:58 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 0 von 0 (Seite 1) +2025-06-19 11:50:37 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-19 11:50:37 - [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 dc3f5c48b..5d418cee5 100644 --- a/backend/logs/monitoring_analytics/monitoring_analytics.log +++ b/backend/logs/monitoring_analytics/monitoring_analytics.log @@ -733,3 +733,7 @@ 2025-06-19 11:22:57 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-19 11:22:59 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert 2025-06-19 11:22:59 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-19 11:48:48 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-19 11:48:48 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-19 11:48:52 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-19 11:48:52 - [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 e55cd2f52..05fd4afdb 100644 --- a/backend/logs/permissions/permissions.log +++ b/backend/logs/permissions/permissions.log @@ -367,3 +367,5 @@ WHERE users.role = ?] 2025-06-19 11:20:03 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert 2025-06-19 11:22:57 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert 2025-06-19 11:22:59 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-19 11:48:48 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-19 11:48:52 - [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 0edee3322..d809bb33d 100644 --- a/backend/logs/scheduler/scheduler.log +++ b/backend/logs/scheduler/scheduler.log @@ -2290,3 +2290,9 @@ 2025-06-19 11:22:58 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True 2025-06-19 11:22:59 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet 2025-06-19 11:22:59 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-19 11:48:46 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-19 11:48:48 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-19 11:48:48 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-19 11:48:50 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-19 11:48:52 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-19 11:48:52 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet diff --git a/backend/logs/security_suite/security_suite.log b/backend/logs/security_suite/security_suite.log index 2ac61a697..59b386b94 100644 --- a/backend/logs/security_suite/security_suite.log +++ b/backend/logs/security_suite/security_suite.log @@ -1101,3 +1101,9 @@ 2025-06-19 11:22:58 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert 2025-06-19 11:22:58 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-19 11:22:59 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-19 11:48:46 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-19 11:48:46 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-19 11:48:48 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-19 11:48:50 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-19 11:48:50 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-19 11:48:52 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert diff --git a/backend/logs/startup/startup.log b/backend/logs/startup/startup.log index b08a97eeb..2908f13e4 100644 --- a/backend/logs/startup/startup.log +++ b/backend/logs/startup/startup.log @@ -2935,3 +2935,21 @@ 2025-06-19 11:22:59 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert 2025-06-19 11:22:59 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert 2025-06-19 11:22:59 - [startup] startup - [INFO] INFO - ================================================== +2025-06-19 11:48:48 - [startup] startup - [INFO] INFO - ================================================== +2025-06-19 11:48:48 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-19 11:48:48 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)] +2025-06-19 11:48:48 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-19 11:48:48 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-19 11:48:48 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-19T11:48:48.366325 +2025-06-19 11:48:48 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-19 11:48:48 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-19 11:48:48 - [startup] startup - [INFO] INFO - ================================================== +2025-06-19 11:48:52 - [startup] startup - [INFO] INFO - ================================================== +2025-06-19 11:48:52 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-19 11:48:52 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)] +2025-06-19 11:48:52 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-19 11:48:52 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-19 11:48:52 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-19T11:48:52.187957 +2025-06-19 11:48:52 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-19 11:48:52 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-19 11:48:52 - [startup] startup - [INFO] INFO - ================================================== diff --git a/backend/logs/tapo_controller/tapo_controller.log b/backend/logs/tapo_controller/tapo_controller.log index a8eed981e..56f7da798 100644 --- a/backend/logs/tapo_controller/tapo_controller.log +++ b/backend/logs/tapo_controller/tapo_controller.log @@ -3141,3 +3141,40 @@ 2025-06-19 11:25:08 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Fehler bei Tapo-Steckdosen-Status-Check 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) 2025-06-19 11:25:08 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Status-Check für 192.168.0.104 fehlgeschlagen: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) 2025-06-19 11:25:09 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.106: Status = off +2025-06-19 11:48:46 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-19 11:48:50 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-19 11:48:57 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.100: Status = off +2025-06-19 11:48:57 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.101: Status = off +2025-06-19 11:48:58 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.102: Status = off +2025-06-19 11:48:58 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.103: Status = off +2025-06-19 11:49:00 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Fehler bei Tapo-Steckdosen-Status-Check 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-19 11:49:00 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Status-Check für 192.168.0.104 fehlgeschlagen: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-19 11:49:00 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.106: Status = off +2025-06-19 11:49:04 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.100: Status = off +2025-06-19 11:49:04 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.101: Status = off +2025-06-19 11:49:04 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.102: Status = off +2025-06-19 11:49:04 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.103: Status = off +2025-06-19 11:49:06 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Fehler bei Tapo-Steckdosen-Status-Check 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-19 11:49:06 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Status-Check für 192.168.0.104 fehlgeschlagen: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-19 11:49:06 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.106: Status = off +2025-06-19 11:49:11 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.100: Status = off +2025-06-19 11:49:11 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.101: Status = off +2025-06-19 11:49:11 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.102: Status = off +2025-06-19 11:49:11 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.103: Status = off +2025-06-19 11:49:14 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Fehler bei Tapo-Steckdosen-Status-Check 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-19 11:49:14 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Status-Check für 192.168.0.104 fehlgeschlagen: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-19 11:49:14 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.106: Status = off +2025-06-19 11:49:20 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.100: Status = off +2025-06-19 11:49:20 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.101: Status = off +2025-06-19 11:49:20 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.102: Status = off +2025-06-19 11:49:21 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.103: Status = off +2025-06-19 11:49:23 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Fehler bei Tapo-Steckdosen-Status-Check 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-19 11:49:23 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Status-Check für 192.168.0.104 fehlgeschlagen: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-19 11:49:23 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.106: Status = off +2025-06-19 11:49:27 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.100: Status = off +2025-06-19 11:49:27 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.101: Status = off +2025-06-19 11:49:27 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.102: Status = off +2025-06-19 11:49:27 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.103: Status = off +2025-06-19 11:49:29 - [tapo_controller] tapo_controller - [WARNING] WARNING - ⚠️ Fehler bei Tapo-Steckdosen-Status-Check 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-19 11:49:29 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Status-Check für 192.168.0.104 fehlgeschlagen: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(, 'Connection to 192.168.0.104 timed out. (connect timeout=2)')) +2025-06-19 11:49:30 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ Tapo-Steckdose 192.168.0.106: Status = off diff --git a/backend/logs/utilities_collection/utilities_collection.log b/backend/logs/utilities_collection/utilities_collection.log index a9023a4d6..0bcebc96f 100644 --- a/backend/logs/utilities_collection/utilities_collection.log +++ b/backend/logs/utilities_collection/utilities_collection.log @@ -921,3 +921,7 @@ 2025-06-19 11:22:56 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) 2025-06-19 11:22:58 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert 2025-06-19 11:22:58 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-19 11:48:46 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-19 11:48:46 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-19 11:48:50 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-19 11:48:50 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) diff --git a/backend/logs/windows_fixes/windows_fixes.log b/backend/logs/windows_fixes/windows_fixes.log index 3d150e6bf..ad2abad9e 100644 --- a/backend/logs/windows_fixes/windows_fixes.log +++ b/backend/logs/windows_fixes/windows_fixes.log @@ -359,3 +359,7 @@ 2025-06-19 11:22:56 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet 2025-06-19 11:22:58 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... 2025-06-19 11:22:58 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-19 11:48:46 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-19 11:48:46 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-19 11:48:50 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-19 11:48:50 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet diff --git a/backend/templates/admin_add_user.html b/backend/templates/admin_add_user.html index 634ab793d..236d8ac50 100644 --- a/backend/templates/admin_add_user.html +++ b/backend/templates/admin_add_user.html @@ -200,22 +200,43 @@ + +
+ + +
+ Wird automatisch aus der E-Mail-Adresse generiert, kann aber angepasst werden +
+
+
@@ -469,6 +490,46 @@ document.addEventListener('DOMContentLoaded', function() { } }); + // Benutzername automatisch aus E-Mail generieren + function generateUsername(email) { + if (!email || !email.includes('@')) return ''; + + // Nimm den Teil vor dem @ und bereinige ihn + let username = email.split('@')[0]; + + // Entferne ungültige Zeichen und ersetze sie durch Punkte + username = username.replace(/[^a-zA-Z0-9._-]/g, '.'); + + // Entferne doppelte Punkte + username = username.replace(/\.{2,}/g, '.'); + + // Entferne Punkte am Anfang und Ende + username = username.replace(/^\.+|\.+$/g, ''); + + // Stelle sicher, dass der Benutzername mindestens 3 Zeichen hat + if (username.length < 3) { + username = email.split('@')[0] + '123'; + } + + return username.toLowerCase(); + } + + // E-Mail-Eingabe überwachen für automatische Benutzername-Generierung + emailInput.addEventListener('input', function() { + const usernameInput = document.getElementById('username'); + const generatedUsername = generateUsername(this.value); + + // Nur automatisch setzen, wenn das Feld leer ist oder der bisherige Wert automatisch generiert war + if (!usernameInput.dataset.manuallyEdited && generatedUsername) { + usernameInput.value = generatedUsername; + } + }); + + // Markiere Benutzername als manuell bearbeitet, wenn der Benutzer ihn ändert + document.getElementById('username').addEventListener('input', function() { + this.dataset.manuallyEdited = 'true'; + }); + // E-Mail-Validierung function validateEmail(email) { const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;