🎉 Refactor Backend Logs and Utilities 🖥️📚

This commit is contained in:
Till Tomczak 2025-06-02 14:37:04 +02:00
parent 3cab66efc8
commit 7ee6ce5cae
30 changed files with 1171 additions and 19 deletions

View File

@ -16,6 +16,7 @@ sudo ./setup.sh
``` ```
**Installationsoptionen**: **Installationsoptionen**:
1. **Abhängigkeiten installieren** - System für manuelles Testen vorbereiten 1. **Abhängigkeiten installieren** - System für manuelles Testen vorbereiten
2. **Vollständige Kiosk-Installation** - Automatischer Kiosk-Modus mit Remote-Zugang 2. **Vollständige Kiosk-Installation** - Automatischer Kiosk-Modus mit Remote-Zugang
@ -35,6 +36,7 @@ python app.py --debug
## 📋 Systemanforderungen ## 📋 Systemanforderungen
### Produktionsumgebung (Kiosk) ### Produktionsumgebung (Kiosk)
- **Debian/Raspbian** (Raspberry Pi OS empfohlen) - **Debian/Raspbian** (Raspberry Pi OS empfohlen)
- Raspberry Pi 4 mit 2GB+ RAM - Raspberry Pi 4 mit 2GB+ RAM
- 16GB+ SD-Karte - 16GB+ SD-Karte
@ -42,6 +44,7 @@ python app.py --debug
- Netzwerkverbindung - Netzwerkverbindung
### Entwicklungsumgebung ### Entwicklungsumgebung
- **Windows 10/11** (nur für Entwicklung) - **Windows 10/11** (nur für Entwicklung)
- Python 3.8+ - Python 3.8+
- Node.js 18+ - Node.js 18+
@ -50,6 +53,7 @@ python app.py --debug
## 🔧 Features ## 🔧 Features
### Kern-Funktionalitäten ### Kern-Funktionalitäten
- **Druckerverwaltung** mit Smart-Plug-Integration (TP-Link Tapo) - **Druckerverwaltung** mit Smart-Plug-Integration (TP-Link Tapo)
- **Job-Management** mit Warteschlangen-System - **Job-Management** mit Warteschlangen-System
- **Benutzerverwaltung** mit Rollen und Berechtigungen - **Benutzerverwaltung** mit Rollen und Berechtigungen
@ -58,6 +62,7 @@ python app.py --debug
- **Automatische Backups** und Wartung - **Automatische Backups** und Wartung
### Kiosk-Modus Features ### Kiosk-Modus Features
- **HTTPS auf Port 443** mit automatischen SSL-Zertifikaten - **HTTPS auf Port 443** mit automatischen SSL-Zertifikaten
- **Chromium-Vollbildmodus** ohne Desktop-Environment - **Chromium-Vollbildmodus** ohne Desktop-Environment
- **Automatischer Login** und Browser-Start - **Automatischer Login** und Browser-Start
@ -66,6 +71,7 @@ python app.py --debug
- **Responsive Design** für Desktop-Nutzung - **Responsive Design** für Desktop-Nutzung
### Sicherheit ### Sicherheit
- **SSL/TLS-Verschlüsselung** (selbstsignierte Zertifikate) - **SSL/TLS-Verschlüsselung** (selbstsignierte Zertifikate)
- **CSRF-Schutz** und Session-Management - **CSRF-Schutz** und Session-Management
- **Rate-Limiting** und Eingabevalidierung - **Rate-Limiting** und Eingabevalidierung
@ -77,18 +83,21 @@ python app.py --debug
## 🏗️ Architektur ## 🏗️ Architektur
### Backend ### Backend
- **Flask 3.1.1** - Web-Framework - **Flask 3.1.1** - Web-Framework
- **SQLAlchemy 2.0.36** - ORM und Datenbankzugriff - **SQLAlchemy 2.0.36** - ORM und Datenbankzugriff
- **SQLite** - Eingebettete Datenbank - **SQLite** - Eingebettete Datenbank
- **Gunicorn** - WSGI-Server für Produktion - **Gunicorn** - WSGI-Server für Produktion
### Frontend ### Frontend
- **TailwindCSS** - Utility-First CSS Framework - **TailwindCSS** - Utility-First CSS Framework
- **Chart.js** - Datenvisualisierung - **Chart.js** - Datenvisualisierung
- **FontAwesome** - Icons - **FontAwesome** - Icons
- **Vanilla JavaScript** - Interaktivität - **Vanilla JavaScript** - Interaktivität
### System-Integration ### System-Integration
- **systemd** - Service-Management - **systemd** - Service-Management
- **OpenSSL** - SSL-Zertifikat-Generierung - **OpenSSL** - SSL-Zertifikat-Generierung
- **Chromium** - Kiosk-Browser - **Chromium** - Kiosk-Browser
@ -152,18 +161,21 @@ sudo ./setup.sh
``` ```
**Installationsmodi**: **Installationsmodi**:
- **Option 1**: Ideal für Entwicklung, manuelle Tests und Debugging - **Option 1**: Ideal für Entwicklung, manuelle Tests und Debugging
- **Option 2**: Vollständige Produktionsinstallation mit automatischem Kiosk-Start - **Option 2**: Vollständige Produktionsinstallation mit automatischem Kiosk-Start
### Option 2: Manuelle Installation ### Option 2: Manuelle Installation
#### Schritt 1: System vorbereiten #### Schritt 1: System vorbereiten
```bash ```bash
sudo apt-get update && sudo apt-get upgrade -y sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y python3 python3-pip nodejs npm git sudo apt-get install -y python3 python3-pip nodejs npm git
``` ```
#### Schritt 2: Abhängigkeiten installieren #### Schritt 2: Abhängigkeiten installieren
```bash ```bash
# Python-Pakete (ohne virtuelles Environment) # Python-Pakete (ohne virtuelles Environment)
pip3 install -r requirements.txt --break-system-packages pip3 install -r requirements.txt --break-system-packages
@ -176,6 +188,7 @@ npm run build:css
``` ```
#### Schritt 3: SSL-Zertifikate generieren #### Schritt 3: SSL-Zertifikate generieren
```bash ```bash
python3 -c " python3 -c "
import sys; sys.path.insert(0, '.') import sys; sys.path.insert(0, '.')
@ -185,6 +198,7 @@ ensure_ssl_certificates('.', True)
``` ```
#### Schritt 4: Services einrichten #### Schritt 4: Services einrichten
```bash ```bash
# Services aus systemd/ Verzeichnis kopieren # Services aus systemd/ Verzeichnis kopieren
sudo cp systemd/*.service /etc/systemd/system/ sudo cp systemd/*.service /etc/systemd/system/
@ -201,17 +215,21 @@ sudo systemctl enable myp-kiosk.service
## 🌐 Zugriff ## 🌐 Zugriff
### Lokaler Zugriff ### Lokaler Zugriff
- **HTTPS**: `https://localhost:443` - **HTTPS**: `https://localhost:443`
- **HTTP (Entwicklung)**: `http://localhost:5000` - **HTTP (Entwicklung)**: `http://localhost:5000`
### Netzwerk-Zugriff ### Netzwerk-Zugriff
- **HTTPS**: `https://<raspberry-pi-ip>:443` - **HTTPS**: `https://<raspberry-pi-ip>:443`
### Remote-Zugang (falls konfiguriert) ### Remote-Zugang (falls konfiguriert)
- **SSH**: `ssh user@<raspberry-pi-ip>` (Passwort: `raspberry`) - **SSH**: `ssh user@<raspberry-pi-ip>` (Passwort: `raspberry`)
- **RDP**: `<raspberry-pi-ip>:3389` (Benutzer: `root`, Passwort: `744563017196A`) - **RDP**: `<raspberry-pi-ip>:3389` (Benutzer: `root`, Passwort: `744563017196A`)
### Standard-Anmeldedaten ### Standard-Anmeldedaten
- **Benutzername**: `admin` - **Benutzername**: `admin`
- **Passwort**: `admin123` - **Passwort**: `admin123`
@ -220,6 +238,7 @@ sudo systemctl enable myp-kiosk.service
## 🔧 Konfiguration ## 🔧 Konfiguration
### Umgebungsvariablen ### Umgebungsvariablen
```bash ```bash
# Produktionsumgebung # Produktionsumgebung
export FLASK_ENV=production export FLASK_ENV=production
@ -233,6 +252,7 @@ export FLASK_PORT=5000
``` ```
### SSL-Konfiguration ### SSL-Konfiguration
```bash ```bash
# Automatische Zertifikat-Generierung # Automatische Zertifikat-Generierung
python3 utils/ssl_config.py /opt/myp python3 utils/ssl_config.py /opt/myp
@ -242,6 +262,7 @@ python3 utils/ssl_config.py /opt/myp --force
``` ```
### Drucker-Konfiguration ### Drucker-Konfiguration
1. **Admin-Panel****Drucker** → **Neuer Drucker** 1. **Admin-Panel****Drucker** → **Neuer Drucker**
2. IP-Adresse und TP-Link Tapo-Zugangsdaten eingeben 2. IP-Adresse und TP-Link Tapo-Zugangsdaten eingeben
3. Drucker-Test durchführen 3. Drucker-Test durchführen
@ -250,6 +271,7 @@ python3 utils/ssl_config.py /opt/myp --force
## 📊 Überwachung ## 📊 Überwachung
### Service-Status ### Service-Status
```bash ```bash
# HTTPS-Service # HTTPS-Service
sudo systemctl status myp-https.service sudo systemctl status myp-https.service
@ -265,6 +287,7 @@ sudo tail -f /var/log/kiosk-watchdog.log
``` ```
### System-Tests ### System-Tests
```bash ```bash
# HTTPS-Erreichbarkeit # HTTPS-Erreichbarkeit
curl -k https://localhost:443 curl -k https://localhost:443
@ -277,6 +300,7 @@ sudo ./setup.sh # Option 5: System-Test
``` ```
### Log-Dateien ### Log-Dateien
```bash ```bash
# Anwendungslogs # Anwendungslogs
tail -f logs/app/app.log tail -f logs/app/app.log
@ -294,6 +318,7 @@ sudo tail -f /var/log/myp-install.log
## 🛠️ Entwicklung ## 🛠️ Entwicklung
### Entwicklungsserver starten ### Entwicklungsserver starten
```bash ```bash
# HTTP-Entwicklungsserver (Port 5000) # HTTP-Entwicklungsserver (Port 5000)
python app.py --debug python app.py --debug
@ -303,6 +328,7 @@ python app.py
``` ```
### Frontend-Entwicklung ### Frontend-Entwicklung
```bash ```bash
# TailwindCSS im Watch-Modus # TailwindCSS im Watch-Modus
npm run watch:css npm run watch:css
@ -315,6 +341,7 @@ npm run build
``` ```
### Datenbank-Management ### Datenbank-Management
```bash ```bash
# Datenbank initialisieren # Datenbank initialisieren
python -c "from models import init_database; init_database()" python -c "from models import init_database; init_database()"
@ -326,18 +353,21 @@ python -c "from utils.backup_manager import BackupManager; BackupManager().creat
## 🔒 Sicherheit ## 🔒 Sicherheit
### SSL/TLS ### SSL/TLS
- **TLS 1.2+** erforderlich - **TLS 1.2+** erforderlich
- **Starke Cipher-Suites** konfiguriert - **Starke Cipher-Suites** konfiguriert
- **Selbstsignierte Zertifikate** für localhost - **Selbstsignierte Zertifikate** für localhost
- **Automatische Erneuerung** bei Ablauf - **Automatische Erneuerung** bei Ablauf
### Anwendungssicherheit ### Anwendungssicherheit
- **CSRF-Schutz** aktiviert - **CSRF-Schutz** aktiviert
- **Session-Management** mit Timeout - **Session-Management** mit Timeout
- **Rate-Limiting** für API-Endpunkte - **Rate-Limiting** für API-Endpunkte
- **Eingabevalidierung** und Sanitization - **Eingabevalidierung** und Sanitization
### System-Sicherheit ### System-Sicherheit
- **Minimale X11-Umgebung** ohne Desktop - **Minimale X11-Umgebung** ohne Desktop
- **Kiosk-User** ohne Sudo-Rechte - **Kiosk-User** ohne Sudo-Rechte
- **Systemd-Service-Isolation** - **Systemd-Service-Isolation**
@ -346,6 +376,7 @@ python -c "from utils.backup_manager import BackupManager; BackupManager().creat
## 📚 Dokumentation ## 📚 Dokumentation
### Detaillierte Anleitungen ### Detaillierte Anleitungen
- [`docs/SETUP_ANLEITUNG.md`](docs/SETUP_ANLEITUNG.md) - Konsolidiertes Setup-System - [`docs/SETUP_ANLEITUNG.md`](docs/SETUP_ANLEITUNG.md) - Konsolidiertes Setup-System
- [`docs/INSTALLATION_DEBIAN_KIOSK.md`](docs/INSTALLATION_DEBIAN_KIOSK.md) - Vollständige Kiosk-Installation - [`docs/INSTALLATION_DEBIAN_KIOSK.md`](docs/INSTALLATION_DEBIAN_KIOSK.md) - Vollständige Kiosk-Installation
- [`docs/API_DOCUMENTATION.md`](docs/API_DOCUMENTATION.md) - API-Referenz - [`docs/API_DOCUMENTATION.md`](docs/API_DOCUMENTATION.md) - API-Referenz
@ -353,6 +384,7 @@ python -c "from utils.backup_manager import BackupManager; BackupManager().creat
- [`docs/TROUBLESHOOTING.md`](docs/TROUBLESHOOTING.md) - Fehlerbehebung - [`docs/TROUBLESHOOTING.md`](docs/TROUBLESHOOTING.md) - Fehlerbehebung
### API-Endpunkte ### API-Endpunkte
- **Authentifizierung**: `/auth/login`, `/auth/logout` - **Authentifizierung**: `/auth/login`, `/auth/logout`
- **Drucker**: `/api/printers`, `/api/printers/{id}` - **Drucker**: `/api/printers`, `/api/printers/{id}`
- **Jobs**: `/api/jobs`, `/api/jobs/{id}` - **Jobs**: `/api/jobs`, `/api/jobs/{id}`
@ -364,6 +396,7 @@ python -c "from utils.backup_manager import BackupManager; BackupManager().creat
### Häufige Probleme ### Häufige Probleme
#### HTTPS nicht erreichbar #### HTTPS nicht erreichbar
```bash ```bash
# Service-Status prüfen # Service-Status prüfen
sudo systemctl status myp-https.service sudo systemctl status myp-https.service
@ -377,6 +410,7 @@ sudo ./setup.sh # Option 1 für Zertifikat-Neugenerierung
``` ```
#### Kiosk-Browser startet nicht #### Kiosk-Browser startet nicht
```bash ```bash
# X-Server prüfen # X-Server prüfen
ps aux | grep X ps aux | grep X
@ -390,6 +424,7 @@ sudo systemctl status myp-kiosk.service
``` ```
#### Hohe Speichernutzung #### Hohe Speichernutzung
```bash ```bash
# Browser-Cache leeren # Browser-Cache leeren
sudo rm -rf /home/kiosk/.chromium-kiosk/Default/Cache/* sudo rm -rf /home/kiosk/.chromium-kiosk/Default/Cache/*
@ -402,9 +437,12 @@ sudo journalctl -u kiosk-watchdog -f
``` ```
### Support ### Support
Bei Problemen: Bei Problemen:
1. **System-Test durchführen**: `sudo ./setup.sh` → Option 5 1. **System-Test durchführen**: `sudo ./setup.sh` → Option 5
2. **Log-Bundle erstellen**: 2. **Log-Bundle erstellen**:
```bash ```bash
sudo tar -czf myp-logs-$(date +%Y%m%d).tar.gz \ sudo tar -czf myp-logs-$(date +%Y%m%d).tar.gz \
logs/ \ logs/ \
@ -415,6 +453,7 @@ sudo tar -czf myp-logs-$(date +%Y%m%d).tar.gz \
## 🔄 Updates ## 🔄 Updates
### Anwendungs-Updates ### Anwendungs-Updates
```bash ```bash
cd /opt/myp cd /opt/myp
git pull origin main git pull origin main
@ -428,6 +467,7 @@ sudo systemctl restart myp-https.service
``` ```
### System-Updates ### System-Updates
```bash ```bash
sudo apt-get update && sudo apt-get upgrade -y sudo apt-get update && sudo apt-get upgrade -y
sudo reboot sudo reboot
@ -454,9 +494,69 @@ Dieses Projekt ist für den internen Gebrauch bei Mercedes-Benz entwickelt.
--- ---
## 🆕 Version 4.0.4 - Setup-Korrekturen (2025-01-12) ## 🆕 Version 4.1.0 - Erweiterte Konfliktbehandlung (2025-01-06)
### ✨ Neue Features
- **🔧 Intelligente Druckerkonflikt-Management-Engine**: Automatische Erkennung und Lösung von Zeitüberschneidungen
- **🎯 Smart-Empfehlungssystem**: KI-basierte Druckerzuweisung mit Scoring-Algorithmus basierend auf:
- Verfügbarkeit und Auslastung
- Prioritätsstufen (urgent, high, normal, low)
- Zeitfenster-Optimierung (Tag-/Nachtschicht)
- Job-Dauer-Eignung (Express vs. Langzeit-Jobs)
- **📊 Echtzeit-Verfügbarkeitsanzeige**: Live-Dashboard mit Druckerstatus und Auslastung
- **⚠️ Proaktive Konfliktprävention**: Echzeit-Validierung während Formulareingabe
- **🚀 Automatische Konfliktlösung**: Ein-Klick-Lösung für erkannte Konflikte
### 🔧 Technische Verbesserungen
- **Neue API-Endpunkte**:
- `/api/calendar/check-conflicts` - Detaillierte Konfliktanalyse
- `/api/calendar/resolve-conflicts` - Automatische Konfliktlösung
- `/api/calendar/printer-availability` - Echtzeit-Verfügbarkeit
- **ConflictManager-Klasse** mit umfassender Konfliktbehandlung
- **Erweiterte Frontend-Integration** mit modalen Dialogen und Toast-Benachrichtigungen
- **Smart-Assignment-Algorithmus** mit gewichteter Bewertung
### 📋 Konfliktarten und Behandlung
1. **Zeitüberschneidungen** - Automatische Alternative oder Zeitverschiebung
2. **Druckerausfälle** - Sofortige Neuzuweisung auf verfügbare Drucker
3. **Prioritätskonflikte** - Intelligente Umplanung bei höherprioren Jobs
4. **Ressourcenkonflikte** - Warteschlange mit automatischer Reaktivierung
### 🎨 Benutzeroberfläche
- **Konflikt-Benachrichtigungsmodal** mit detaillierten Lösungsvorschlägen
- **Verfügbarkeits-Dashboard** mit visuellen Status-Indikatoren
- **Smart-Empfehlungs-Widget** mit Confidence-Scores
- **"Konflikte prüfen" Button** für manuelle Validierung
- **Echtzeit-Verfügbarkeitsanzeige** mit Aktualisierungsbutton
### 📚 Dokumentation
- **[`docs/DRUCKERKONFLIKT_MANAGEMENT.md`](docs/DRUCKERKONFLIKT_MANAGEMENT.md)** - Umfassende Dokumentation des Konfliktsystems
- Detaillierte API-Referenz für alle neuen Endpunkte
- Scoring-Algorithmus-Dokumentation mit Beispielen
- Troubleshooting-Guide für Konfliktbehandlung
### 🔄 Migration
```bash
# Keine Datenbankmigrationen erforderlich
# Frontend-Assets aktualisieren
npm run build:css
# Neue JavaScript-Module laden
# (Automatisch über Template-Integration)
```
---
## 🔄 Version 4.0.4 - Setup-Korrekturen (2025-01-12)
### ✅ Behobene Probleme ### ✅ Behobene Probleme
- **Python-Import-Fehler behoben**: Flask-App kann jetzt korrekt importiert werden - **Python-Import-Fehler behoben**: Flask-App kann jetzt korrekt importiert werden
- **Requirements.txt korrigiert**: Alle Versionskonflikte beseitigt (Werkzeug + Flask) - **Requirements.txt korrigiert**: Alle Versionskonflikte beseitigt (Werkzeug + Flask)
- **Internetverbindung-Erkennung**: Multi-Methoden-Prüfung (HTTP/DNS/ICMP/Gateway) - **Internetverbindung-Erkennung**: Multi-Methoden-Prüfung (HTTP/DNS/ICMP/Gateway)
@ -465,6 +565,7 @@ Dieses Projekt ist für den internen Gebrauch bei Mercedes-Benz entwickelt.
- **Python-Umgebung**: Automatische PYTHONPATH-Konfiguration implementiert - **Python-Umgebung**: Automatische PYTHONPATH-Konfiguration implementiert
### 🔧 Verbesserungen ### 🔧 Verbesserungen
- Erweiterte Fehlerbehandlung im Setup-Skript - Erweiterte Fehlerbehandlung im Setup-Skript
- Sichere Test-Umgebung für Flask-App-Validierung - Sichere Test-Umgebung für Flask-App-Validierung
- Performance-Optimierungen für pip-Installation - Performance-Optimierungen für pip-Installation
@ -472,6 +573,7 @@ Dieses Projekt ist für den internen Gebrauch bei Mercedes-Benz entwickelt.
- Umfassende Dokumentation der Korrekturen - Umfassende Dokumentation der Korrekturen
### 📋 Nach Update empfohlen ### 📋 Nach Update empfohlen
```bash ```bash
# Setup-Skript erneut ausführen für korrigierte Installation # Setup-Skript erneut ausführen für korrigierte Installation
sudo ./setup.sh # Option 1 zum Testen der Korrekturen sudo ./setup.sh # Option 1 zum Testen der Korrekturen

View File

@ -2049,15 +2049,15 @@ def locations_page():
"""Multi-Location-System Verwaltungsseite.""" """Multi-Location-System Verwaltungsseite."""
return render_template("locations.html", title="Standortverwaltung") return render_template("locations.html", title="Standortverwaltung")
@app.route("/admin/steckdosen-monitoring") @app.route("/admin/steckdosenschaltzeiten")
@login_required @login_required
@admin_required @admin_required
def admin_plug_monitoring(): def admin_plug_schedules():
""" """
Administrator-Übersicht für Steckdosen-Monitoring. Administrator-Übersicht für Steckdosenschaltzeiten.
Zeigt detaillierte Historie aller Smart Plug Status-Änderungen. Zeigt detaillierte Historie aller Smart Plug Schaltzeiten mit Kalenderansicht.
""" """
app_logger.info(f"Admin {current_user.name} (ID: {current_user.id}) öffnet Steckdosen-Monitoring") app_logger.info(f"Admin {current_user.name} (ID: {current_user.id}) öffnet Steckdosenschaltzeiten")
try: try:
# Statistiken für die letzten 24 Stunden abrufen # Statistiken für die letzten 24 Stunden abrufen
@ -2068,18 +2068,18 @@ def admin_plug_monitoring():
printers = db_session.query(Printer).filter(Printer.active == True).all() printers = db_session.query(Printer).filter(Printer.active == True).all()
db_session.close() db_session.close()
return render_template('admin_plug_monitoring.html', return render_template('admin_plug_schedules.html',
stats=stats_24h, stats=stats_24h,
printers=printers, printers=printers,
page_title="Steckdosen-Monitoring", page_title="Steckdosenschaltzeiten",
breadcrumb=[ breadcrumb=[
{"name": "Admin-Dashboard", "url": url_for("admin_page")}, {"name": "Admin-Dashboard", "url": url_for("admin_page")},
{"name": "Steckdosen-Monitoring", "url": "#"} {"name": "Steckdosenschaltzeiten", "url": "#"}
]) ])
except Exception as e: except Exception as e:
app_logger.error(f"Fehler beim Laden der Steckdosen-Monitoring-Seite: {str(e)}") app_logger.error(f"Fehler beim Laden der Steckdosenschaltzeiten-Seite: {str(e)}")
flash("Fehler beim Laden der Steckdosen-Monitoring-Daten.", "error") flash("Fehler beim Laden der Steckdosenschaltzeiten-Daten.", "error")
return redirect(url_for("admin_page")) return redirect(url_for("admin_page"))
@app.route("/validation-demo") @app.route("/validation-demo")

View File

@ -11,6 +11,7 @@ from sqlalchemy.orm import joinedload
from models import get_db_session, Job, Printer from models import get_db_session, Job, Printer
from utils.logging_config import get_logger from utils.logging_config import get_logger
from utils.conflict_manager import conflict_manager
# Blueprint initialisieren - URL-Präfix geändert um Konflikte zu vermeiden # Blueprint initialisieren - URL-Präfix geändert um Konflikte zu vermeiden
jobs_blueprint = Blueprint('jobs', __name__, url_prefix='/api/jobs-bp') jobs_blueprint = Blueprint('jobs', __name__, url_prefix='/api/jobs-bp')
@ -217,6 +218,35 @@ def create_job():
jobs_logger.debug(f"✅ Drucker gefunden: {printer.name} (ID: {printer_id})") jobs_logger.debug(f"✅ Drucker gefunden: {printer.name} (ID: {printer_id})")
# ERWEITERTE KONFLIKTPRÜFUNG
job_data = {
'printer_id': printer_id,
'start_time': start_at,
'end_time': end_at,
'priority': data.get('priority', 'normal'),
'duration_minutes': duration_minutes
}
# Konflikte erkennen
conflicts = conflict_manager.detect_conflicts(job_data, db_session)
if conflicts:
critical_conflicts = [c for c in conflicts if c.severity.value in ['kritisch', 'hoch']]
if critical_conflicts:
# Kritische Konflikte verhindern Job-Erstellung
conflict_descriptions = [c.description for c in critical_conflicts]
jobs_logger.warning(f"⚠️ Kritische Konflikte gefunden: {conflict_descriptions}")
db_session.close()
return jsonify({
"error": "Kritische Konflikte gefunden",
"conflicts": conflict_descriptions,
"suggestions": [s for c in critical_conflicts for s in c.suggested_solutions]
}), 409
# Mittlere/niedrige Konflikte protokollieren aber zulassen
jobs_logger.info(f"📋 {len(conflicts)} Konflikte erkannt, aber übergehbar")
# Prüfen, ob der Drucker online ist # Prüfen, ob der Drucker online ist
printer_status, printer_active = check_printer_status(printer.plug_ip if printer.plug_ip else "") printer_status, printer_active = check_printer_status(printer.plug_ip if printer.plug_ip else "")
jobs_logger.debug(f"🖨️ Drucker-Status: {printer_status}, aktiv: {printer_active}") jobs_logger.debug(f"🖨️ Drucker-Status: {printer_status}, aktiv: {printer_active}")

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,141 @@
# FEHLER BEHOBEN: ImportError in conflict_manager.py
## Fehlerbeschreibung
**Datum:** 2025-01-09
**Schweregrad:** CRITICAL
**Modul:** `utils/conflict_manager.py`
**Fehlertyp:** ImportError
### Original-Fehlermeldung
```
ImportError: cannot import name 'get_cached_session' from 'database.db_manager'
(C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\db_manager.py)
```
### Symptome
- Anwendungsstart vollständig verhindert
- Import-Kette unterbrochen bei `blueprints.calendar``utils.conflict_manager`
- Folge-Module konnten nicht geladen werden
## Ursachenanalyse
### Root Cause
Fehlerhafter Import in `utils/conflict_manager.py` Zeile 21:
```python
from database.db_manager import get_cached_session # FALSCH
```
### Warum der Fehler auftrat
1. **Funktion existiert nicht in `db_manager.py`**: Die Funktion `get_cached_session` ist nicht in `database/db_manager.py` definiert
2. **Falsche Importquelle**: Die Funktion ist in `models.py` definiert (Zeile 299)
3. **Inkonsistenz mit anderen Modulen**: Alle anderen Module importieren korrekt aus `models`
### Verfügbare Funktionen in db_manager.py
- `DatabaseManager.get_session()` (Instanzmethode)
- `DatabaseManager.test_connection()`
- `DatabaseManager.get_all_jobs()`
- etc.
## Lösung implementiert
### Behebung
**Datei:** `utils/conflict_manager.py`
**Zeilen:** 20-21
**Vorher:**
```python
from models import Job, Printer, User
from database.db_manager import get_cached_session
```
**Nachher:**
```python
from models import Job, Printer, User, get_cached_session
```
### Cascade-Analyse durchgeführt
**Betroffene Module geprüft:**
- ✅ `models.py` - `get_cached_session` korrekt definiert
- ✅ `blueprints/calendar.py` - Import aus `models` korrekt
- ✅ `utils/timer_manager.py` - Import aus `models` korrekt
- ✅ `blueprints/guest.py` - Import aus `models` korrekt
- ✅ `blueprints/users.py` - Import aus `models` korrekt
**Keine weiteren Änderungen erforderlich.**
## Verification
### Funktionstests
1. **Anwendungsstart:** ✅ Erfolgreich
2. **Modul-Import:**`conflict_manager` lädt korrekt
3. **Blueprint-Loading:**`calendar_blueprint` lädt korrekt
4. **Session-Zugriff:**`get_cached_session()` funktional
### Selbstverifikation
- [x] **Funktionale Korrektheit:** Import erfolgt aus korrektem Modul
- [x] **Referentielle Integrität:** Alle Abhängigkeiten erfüllt
- [x] **Strukturelle Kohäsion:** Konsistent mit anderen Modulen
- [x] **Vollständige Dokumentation:** Dieser Report
## Prävention zukünftiger Fehler
### Entwicklungsrichtlinien
1. **Import-Konsistenz:** Vor neuen Importen bestehende Module auf gleiche Funktionen prüfen
2. **Code-Review:** Import-Statements in Peer-Reviews besonders beachten
3. **Dokumentation:** Session-Management-Funktionen zentral dokumentieren
### Empfohlene Checks
```bash
# Alle get_cached_session Imports prüfen
grep -r "get_cached_session" --include="*.py" .
# Verfügbare Session-Funktionen prüfen
grep -n "def.*session" models.py database/db_manager.py
```
### Automatisierung
**Zukünftige Erweiterung:** Pre-commit Hooks für Import-Validierung implementieren
## Auswirkungen
### Unmittelbare Effekte
- ✅ Anwendung startet erfolgreich
- ✅ Conflict Manager funktional
- ✅ Calendar Blueprint verfügbar
- ✅ Produktive Deployment möglich
### Performance-Impact
- **Keine negativen Auswirkungen**
- **Session-Management unverändert effizient**
## Technische Details
### Session-Management-Architektur
```
models.py
├── get_cached_session() ← KORREKTE QUELLE
└── get_db_session()
database/db_manager.py
├── DatabaseManager.get_session() ← Instanzmethode
└── (Keine globalen Session-Funktionen)
```
### Code-Konsistenz
**Standard-Pattern in der Codebase:**
```python
from models import get_cached_session
# Verwendung:
with get_cached_session() as session:
# Datenbankoperationen
```
## Abschluss
**Status:** ✅ BEHOBEN
**Verifikation:** ✅ ABGESCHLOSSEN
**Dokumentation:** ✅ VOLLSTÄNDIG
**Deploy-Ready:** ✅ JA
**Nächste Schritte:** Keine weiteren Aktionen erforderlich.

View File

@ -106,3 +106,8 @@
2025-06-02 08:21:39 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert 2025-06-02 08:21:39 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-02 08:22:36 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert 2025-06-02 08:22:36 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-02 10:02:52 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert 2025-06-02 10:02:52 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-02 14:26:41 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-02 14:26:51 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-02 14:28:19 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-02 14:30:43 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-02 14:34:09 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert

View File

@ -2766,3 +2766,139 @@ WHERE jobs.status = ?) AS anon_1]
2025-06-02 10:56:52 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': None, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2} 2025-06-02 10:56:52 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': None, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
2025-06-02 10:56:52 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': None, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2} 2025-06-02 10:56:52 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': None, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
2025-06-02 14:25:35 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db 2025-06-02 14:25:35 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-02 14:26:40 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-02 14:26:42 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-02 14:26:42 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
2025-06-02 14:26:43 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
2025-06-02 14:26:43 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-02 14:26:43 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
2025-06-02 14:26:43 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
2025-06-02 14:26:51 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-02 14:26:52 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-02 14:26:52 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
2025-06-02 14:26:53 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
2025-06-02 14:26:53 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-02 14:26:53 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
2025-06-02 14:26:53 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
2025-06-02 14:26:53 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
2025-06-02 14:26:53 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
2025-06-02 14:26:53 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
2025-06-02 14:26:55 - [app] app - [INFO] INFO - Steckdosen-Status geloggt: Drucker 4, Status: disconnected, Quelle: system
2025-06-02 14:26:57 - [app] app - [INFO] INFO - Steckdosen-Status geloggt: Drucker 5, Status: disconnected, Quelle: system
2025-06-02 14:26:57 - [app] app - [INFO] INFO - ✅ Steckdosen-Initialisierung: 0/2 Drucker erfolgreich
2025-06-02 14:26:57 - [app] app - [WARNING] WARNING - ⚠️ 2 Drucker konnten nicht initialisiert werden
2025-06-02 14:26:57 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
2025-06-02 14:26:57 - [app] app - [INFO] INFO - Job-Scheduler gestartet
2025-06-02 14:26:57 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
2025-06-02 14:26:57 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
2025-06-02 14:27:11 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:27:13 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:27:16 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_plug_monitoring: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:27:16 - [app] app - [INFO] INFO - Admin Administrator (ID: 1) öffnet Steckdosen-Monitoring
2025-06-02 14:27:16 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: name 'func' is not defined
2025-06-02 14:27:16 - [app] app - [ERROR] ERROR - Fehler beim Erstellen der Steckdosen-Statistiken: name 'func' is not defined
2025-06-02 14:27:18 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_plug_monitoring_logs: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:27:18 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-02 14:28:19 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-02 14:28:20 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-02 14:28:20 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
2025-06-02 14:28:20 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
2025-06-02 14:28:20 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-02 14:28:20 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
2025-06-02 14:28:20 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
2025-06-02 14:28:20 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
2025-06-02 14:28:20 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
2025-06-02 14:28:20 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
2025-06-02 14:28:22 - [app] app - [INFO] INFO - Steckdosen-Status geloggt: Drucker 4, Status: disconnected, Quelle: system
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Steckdosen-Status geloggt: Drucker 5, Status: disconnected, Quelle: system
2025-06-02 14:28:24 - [app] app - [INFO] INFO - ✅ Steckdosen-Initialisierung: 0/2 Drucker erfolgreich
2025-06-02 14:28:24 - [app] app - [WARNING] WARNING - ⚠️ 2 Drucker konnten nicht initialisiert werden
2025-06-02 14:28:24 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Job-Scheduler gestartet
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': None, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
2025-06-02 14:28:24 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
2025-06-02 14:28:25 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-02 14:28:25 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
2025-06-02 14:28:26 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-02 14:28:26 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-02 14:28:26 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
2025-06-02 14:28:26 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
2025-06-02 14:28:50 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_plug_monitoring: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:28:50 - [app] app - [INFO] INFO - Admin Administrator (ID: 1) öffnet Steckdosen-Monitoring
2025-06-02 14:28:50 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: name 'func' is not defined
2025-06-02 14:28:50 - [app] app - [ERROR] ERROR - Fehler beim Erstellen der Steckdosen-Statistiken: name 'func' is not defined
2025-06-02 14:28:51 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_plug_monitoring_logs: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:30:42 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-02 14:30:44 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-02 14:30:44 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
2025-06-02 14:30:44 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
2025-06-02 14:30:44 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-02 14:30:44 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
2025-06-02 14:30:44 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
2025-06-02 14:30:44 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
2025-06-02 14:30:44 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
2025-06-02 14:30:44 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
2025-06-02 14:30:46 - [app] app - [INFO] INFO - Steckdosen-Status geloggt: Drucker 4, Status: disconnected, Quelle: system
2025-06-02 14:30:48 - [app] app - [INFO] INFO - Steckdosen-Status geloggt: Drucker 5, Status: disconnected, Quelle: system
2025-06-02 14:30:48 - [app] app - [INFO] INFO - ✅ Steckdosen-Initialisierung: 0/2 Drucker erfolgreich
2025-06-02 14:30:48 - [app] app - [WARNING] WARNING - ⚠️ 2 Drucker konnten nicht initialisiert werden
2025-06-02 14:30:48 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
2025-06-02 14:30:48 - [app] app - [INFO] INFO - Job-Scheduler gestartet
2025-06-02 14:30:48 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
2025-06-02 14:30:48 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
2025-06-02 14:30:51 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-02 14:30:51 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-02 14:30:51 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-02 14:30:51 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': None, 'offline_printers': 2}
2025-06-02 14:30:51 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
2025-06-02 14:30:51 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 2, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 2}
2025-06-02 14:31:02 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_plug_monitoring: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:31:02 - [app] app - [INFO] INFO - Admin Administrator (ID: 1) öffnet Steckdosen-Monitoring
2025-06-02 14:31:02 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: name 'func' is not defined
2025-06-02 14:31:02 - [app] app - [ERROR] ERROR - Fehler beim Erstellen der Steckdosen-Statistiken: name 'func' is not defined
2025-06-02 14:31:03 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_plug_monitoring_logs: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:31:10 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:31:11 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:31:15 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_fix_errors: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:31:16 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_fix_errors: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:31:33 - [app] app - [INFO] INFO - Automatische Fehlerbehebung abgeschlossen: 1 behoben, 0 fehlgeschlagen
2025-06-02 14:31:34 - [app] app - [INFO] INFO - Automatische Fehlerbehebung abgeschlossen: 1 behoben, 0 fehlgeschlagen
2025-06-02 14:31:36 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:31:57 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_plug_monitoring: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:31:57 - [app] app - [INFO] INFO - Admin Administrator (ID: 1) öffnet Steckdosen-Monitoring
2025-06-02 14:31:57 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: name 'func' is not defined
2025-06-02 14:31:57 - [app] app - [ERROR] ERROR - Fehler beim Erstellen der Steckdosen-Statistiken: name 'func' is not defined
2025-06-02 14:31:59 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_plug_monitoring_logs: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:34:08 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-02 14:34:09 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-02 14:34:09 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
2025-06-02 14:34:09 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
2025-06-02 14:34:09 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-02 14:34:09 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
2025-06-02 14:34:09 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
2025-06-02 14:34:10 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
2025-06-02 14:34:10 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
2025-06-02 14:34:10 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
2025-06-02 14:34:12 - [app] app - [INFO] INFO - Steckdosen-Status geloggt: Drucker 4, Status: disconnected, Quelle: system
2025-06-02 14:34:14 - [app] app - [INFO] INFO - Steckdosen-Status geloggt: Drucker 5, Status: disconnected, Quelle: system
2025-06-02 14:34:14 - [app] app - [INFO] INFO - ✅ Steckdosen-Initialisierung: 0/2 Drucker erfolgreich
2025-06-02 14:34:14 - [app] app - [WARNING] WARNING - ⚠️ 2 Drucker konnten nicht initialisiert werden
2025-06-02 14:34:14 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
2025-06-02 14:34:14 - [app] app - [INFO] INFO - Job-Scheduler gestartet
2025-06-02 14:34:14 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
2025-06-02 14:34:14 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
2025-06-02 14:34:18 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_plug_monitoring: User authenticated: True, User ID: 1, Is Admin: True
2025-06-02 14:34:18 - [app] app - [INFO] INFO - Admin Administrator (ID: 1) öffnet Steckdosen-Monitoring
2025-06-02 14:34:18 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: name 'func' is not defined
2025-06-02 14:34:18 - [app] app - [ERROR] ERROR - Fehler beim Erstellen der Steckdosen-Statistiken: name 'func' is not defined
2025-06-02 14:34:20 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_plug_monitoring_logs: User authenticated: True, User ID: 1, Is Admin: True

View File

@ -68,3 +68,6 @@
2025-06-02 10:03:26 - [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-02 10:03:26 - [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-02 10:03:27 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet 2025-06-02 10:03:27 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet
2025-06-02 10:03:28 - [auth] auth - [INFO] INFO - 🔐 Neue Session erstellt für Benutzer admin@mercedes-benz.com von IP 127.0.0.1 2025-06-02 10:03:28 - [auth] auth - [INFO] INFO - 🔐 Neue Session erstellt für Benutzer admin@mercedes-benz.com von IP 127.0.0.1
2025-06-02 14:27:04 - [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-02 14:27:05 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet
2025-06-02 14:27:06 - [auth] auth - [INFO] INFO - 🔐 Neue Session erstellt für Benutzer admin@mercedes-benz.com von IP 127.0.0.1

View File

@ -110,3 +110,8 @@
2025-06-02 08:21:39 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation) 2025-06-02 08:21:39 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-02 08:22:36 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation) 2025-06-02 08:22:36 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-02 10:02:52 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation) 2025-06-02 10:02:52 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-02 14:26:41 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-02 14:26:51 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-02 14:28:19 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-02 14:30:43 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-02 14:34:08 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)

View File

@ -39,3 +39,4 @@
2025-06-01 21:14:43 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00 2025-06-01 21:14:43 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
2025-06-01 23:32:26 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00 2025-06-01 23:32:26 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
2025-06-01 23:41:21 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00 2025-06-01 23:41:21 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
2025-06-02 14:31:48 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00

View File

@ -425,3 +425,23 @@
2025-06-02 10:02:54 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet 2025-06-02 10:02:54 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-02 10:02:54 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback) 2025-06-02 10:02:54 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-02 10:02:54 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading) 2025-06-02 10:02:54 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-02 14:26:42 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-02 14:26:42 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-02 14:26:42 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-02 14:26:42 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-02 14:26:52 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-02 14:26:52 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-02 14:26:52 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-02 14:26:52 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-02 14:28:20 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-02 14:28:20 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-02 14:28:20 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-02 14:28:20 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-02 14:30:44 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-02 14:30:44 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-02 14:30:44 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-02 14:30:44 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-02 14:34:09 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-02 14:34:09 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-02 14:34:09 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-02 14:34:09 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)

View File

@ -106,3 +106,8 @@
2025-06-02 08:21:39 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet 2025-06-02 08:21:39 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-02 08:22:36 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet 2025-06-02 08:22:36 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-02 10:02:52 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet 2025-06-02 10:02:52 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-02 14:26:41 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-02 14:26:51 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-02 14:28:19 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-02 14:30:43 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-02 14:34:08 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet

View File

@ -103,3 +103,8 @@
2025-06-02 08:21:40 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand) 2025-06-02 08:21:40 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-02 08:22:37 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand) 2025-06-02 08:22:37 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-02 10:02:53 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand) 2025-06-02 10:02:53 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-02 14:26:42 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-02 14:26:52 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-02 14:28:20 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-02 14:30:44 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-02 14:34:09 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)

View File

@ -212,3 +212,13 @@
2025-06-02 08:22:37 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet 2025-06-02 08:22:37 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-02 10:02:53 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet 2025-06-02 10:02:53 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-02 10:02:54 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet 2025-06-02 10:02:54 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-02 14:26:42 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-02 14:26:42 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-02 14:26:52 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-02 14:26:52 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-02 14:28:20 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-02 14:28:20 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-02 14:30:44 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-02 14:30:44 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-02 14:34:09 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-02 14:34:09 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet

View File

@ -210,3 +210,13 @@
2025-06-02 08:22:37 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt 2025-06-02 08:22:37 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-02 10:02:54 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt 2025-06-02 10:02:54 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-02 10:02:54 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt 2025-06-02 10:02:54 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-02 14:26:42 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-02 14:26:42 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-02 14:26:52 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-02 14:26:52 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-02 14:28:20 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-02 14:28:20 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-02 14:30:44 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-02 14:30:44 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-02 14:34:09 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-02 14:34:09 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt

View File

@ -105,3 +105,8 @@
2025-06-02 08:21:40 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert 2025-06-02 08:21:40 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-02 08:22:37 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert 2025-06-02 08:22:37 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-02 10:02:54 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert 2025-06-02 10:02:54 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-02 14:26:42 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-02 14:26:52 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-02 14:28:20 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-02 14:30:44 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-02 14:34:09 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert

View File

@ -3083,3 +3083,100 @@
2025-06-02 10:55:59 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.104): UNREACHABLE (Ping fehlgeschlagen) 2025-06-02 10:55:59 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.104): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 10:55:59 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.103): UNREACHABLE (Ping fehlgeschlagen) 2025-06-02 10:55:59 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.103): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 10:55:59 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Status-Update abgeschlossen für 2 Drucker 2025-06-02 10:55:59 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Status-Update abgeschlossen für 2 Drucker
2025-06-02 14:26:41 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-02 14:26:41 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-02 14:26:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
2025-06-02 14:26:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
2025-06-02 14:26:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
2025-06-02 14:26:51 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-02 14:26:51 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-02 14:26:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
2025-06-02 14:26:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
2025-06-02 14:26:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
2025-06-02 14:26:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
2025-06-02 14:26:55 - [printer_monitor] printer_monitor - [WARNING] WARNING - ❌ Tapo P110 (192.168.0.103): Steckdose konnte nicht ausgeschaltet werden
2025-06-02 14:26:57 - [printer_monitor] printer_monitor - [WARNING] WARNING - ❌ Tapo P110 (192.168.0.104): Steckdose konnte nicht ausgeschaltet werden
2025-06-02 14:26:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🎯 Steckdosen-Initialisierung abgeschlossen: 0/2 erfolgreich
2025-06-02 14:26:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
2025-06-02 14:27:05 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
2025-06-02 14:27:11 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
2025-06-02 14:27:13 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-02 14:27:13 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Prüfe Status von 2 aktiven Druckern...
2025-06-02 14:27:17 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
2025-06-02 14:27:18 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-02 14:27:18 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Prüfe Status von 2 aktiven Druckern...
2025-06-02 14:27:22 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.104): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:27:22 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.103): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:27:22 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Status-Update abgeschlossen für 2 Drucker
2025-06-02 14:27:23 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
2025-06-02 14:27:27 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.103): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:27:27 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.104): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:27:27 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Status-Update abgeschlossen für 2 Drucker
2025-06-02 14:27:29 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
2025-06-02 14:28:19 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-02 14:28:19 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-02 14:28:20 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
2025-06-02 14:28:21 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
2025-06-02 14:28:21 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
2025-06-02 14:28:21 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
2025-06-02 14:28:22 - [printer_monitor] printer_monitor - [WARNING] WARNING - ❌ Tapo P110 (192.168.0.103): Steckdose konnte nicht ausgeschaltet werden
2025-06-02 14:28:24 - [printer_monitor] printer_monitor - [WARNING] WARNING - ❌ Tapo P110 (192.168.0.104): Steckdose konnte nicht ausgeschaltet werden
2025-06-02 14:28:24 - [printer_monitor] printer_monitor - [INFO] INFO - 🎯 Steckdosen-Initialisierung abgeschlossen: 0/2 erfolgreich
2025-06-02 14:28:27 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
2025-06-02 14:28:27 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-02 14:28:27 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Prüfe Status von 2 aktiven Druckern...
2025-06-02 14:28:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-02 14:28:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Prüfe Status von 2 aktiven Druckern...
2025-06-02 14:28:33 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
2025-06-02 14:28:36 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.103): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:28:36 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.104): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:28:36 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Status-Update abgeschlossen für 2 Drucker
2025-06-02 14:28:39 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
2025-06-02 14:28:40 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.103): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:28:40 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.104): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:28:40 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Status-Update abgeschlossen für 2 Drucker
2025-06-02 14:28:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
2025-06-02 14:28:51 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
2025-06-02 14:28:57 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
2025-06-02 14:30:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-02 14:30:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-02 14:30:44 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
2025-06-02 14:30:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
2025-06-02 14:30:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
2025-06-02 14:30:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
2025-06-02 14:30:46 - [printer_monitor] printer_monitor - [WARNING] WARNING - ❌ Tapo P110 (192.168.0.103): Steckdose konnte nicht ausgeschaltet werden
2025-06-02 14:30:48 - [printer_monitor] printer_monitor - [WARNING] WARNING - ❌ Tapo P110 (192.168.0.104): Steckdose konnte nicht ausgeschaltet werden
2025-06-02 14:30:48 - [printer_monitor] printer_monitor - [INFO] INFO - 🎯 Steckdosen-Initialisierung abgeschlossen: 0/2 erfolgreich
2025-06-02 14:30:51 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
2025-06-02 14:30:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-02 14:30:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Prüfe Status von 2 aktiven Druckern...
2025-06-02 14:30:56 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-02 14:30:56 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Prüfe Status von 2 aktiven Druckern...
2025-06-02 14:30:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
2025-06-02 14:31:02 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.103): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:31:02 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.104): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:31:02 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Status-Update abgeschlossen für 2 Drucker
2025-06-02 14:31:03 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
2025-06-02 14:31:05 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.104): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:31:05 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.103): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:31:05 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Status-Update abgeschlossen für 2 Drucker
2025-06-02 14:31:09 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
2025-06-02 14:31:15 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
2025-06-02 14:31:21 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
2025-06-02 14:34:08 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-02 14:34:08 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-02 14:34:10 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
2025-06-02 14:34:10 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
2025-06-02 14:34:10 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
2025-06-02 14:34:10 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
2025-06-02 14:34:12 - [printer_monitor] printer_monitor - [WARNING] WARNING - ❌ Tapo P110 (192.168.0.103): Steckdose konnte nicht ausgeschaltet werden
2025-06-02 14:34:14 - [printer_monitor] printer_monitor - [WARNING] WARNING - ❌ Tapo P110 (192.168.0.104): Steckdose konnte nicht ausgeschaltet werden
2025-06-02 14:34:14 - [printer_monitor] printer_monitor - [INFO] INFO - 🎯 Steckdosen-Initialisierung abgeschlossen: 0/2 erfolgreich
2025-06-02 14:34:16 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
2025-06-02 14:34:20 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-02 14:34:20 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Prüfe Status von 2 aktiven Druckern...
2025-06-02 14:34:22 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
2025-06-02 14:34:28 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
2025-06-02 14:34:29 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.104): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:34:29 - [printer_monitor] printer_monitor - [WARNING] WARNING - 🔌 Tapo P110 (192.168.0.103): UNREACHABLE (Ping fehlgeschlagen)
2025-06-02 14:34:29 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Status-Update abgeschlossen für 2 Drucker

View File

@ -6515,3 +6515,86 @@
2025-06-02 10:56:56 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1) 2025-06-02 10:56:56 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 10:56:56 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker 2025-06-02 10:56:56 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 10:56:56 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 0.48ms 2025-06-02 10:56:56 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 0.48ms
2025-06-02 14:27:13 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:27:18 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:27:22 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:27:22 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9015.48ms
2025-06-02 14:27:27 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:27:27 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9004.56ms
2025-06-02 14:27:28 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:27:28 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:27:28 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 0.42ms
2025-06-02 14:27:42 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:27:42 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:27:42 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 3.72ms
2025-06-02 14:28:27 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:28:31 - [printers] printers - [INFO] INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
2025-06-02 14:28:31 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:28:36 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:28:36 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9007.07ms
2025-06-02 14:28:36 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:28:36 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:28:36 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 0.33ms
2025-06-02 14:28:40 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:28:40 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9006.74ms
2025-06-02 14:28:51 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:28:51 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:28:51 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 3.07ms
2025-06-02 14:29:00 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:29:00 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:29:00 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 2.85ms
2025-06-02 14:30:53 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:30:55 - [printers] printers - [INFO] INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
2025-06-02 14:30:56 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:31:02 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:31:02 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9011.28ms
2025-06-02 14:31:03 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:31:03 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:31:03 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 3.30ms
2025-06-02 14:31:05 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:31:05 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9007.38ms
2025-06-02 14:31:11 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:31:11 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:31:11 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 2.70ms
2025-06-02 14:31:18 - [printers] printers - [WARNING] WARNING - ❌ Drucker 192.168.0.100: OFFLINE (Steckdose nicht erreichbar)
2025-06-02 14:31:18 - [printers] printers - [INFO] INFO - ✅ Drucker-Status-Prüfung 'check_printer_status' erfolgreich in 3001.01ms
2025-06-02 14:31:19 - [printers] printers - [WARNING] WARNING - ❌ Drucker 192.168.0.100: OFFLINE (Steckdose nicht erreichbar)
2025-06-02 14:31:19 - [printers] printers - [INFO] INFO - ✅ Drucker-Status-Prüfung 'check_printer_status' erfolgreich in 3000.04ms
2025-06-02 14:31:21 - [printers] printers - [WARNING] WARNING - ❌ Drucker 192.168.0.101: OFFLINE (Steckdose nicht erreichbar)
2025-06-02 14:31:21 - [printers] printers - [INFO] INFO - ✅ Drucker-Status-Prüfung 'check_printer_status' erfolgreich in 3000.91ms
2025-06-02 14:31:22 - [printers] printers - [WARNING] WARNING - ❌ Drucker 192.168.0.101: OFFLINE (Steckdose nicht erreichbar)
2025-06-02 14:31:22 - [printers] printers - [INFO] INFO - ✅ Drucker-Status-Prüfung 'check_printer_status' erfolgreich in 3001.72ms
2025-06-02 14:31:24 - [printers] printers - [WARNING] WARNING - ❌ Drucker 192.168.0.102: OFFLINE (Steckdose nicht erreichbar)
2025-06-02 14:31:24 - [printers] printers - [INFO] INFO - ✅ Drucker-Status-Prüfung 'check_printer_status' erfolgreich in 3000.82ms
2025-06-02 14:31:25 - [printers] printers - [WARNING] WARNING - ❌ Drucker 192.168.0.102: OFFLINE (Steckdose nicht erreichbar)
2025-06-02 14:31:25 - [printers] printers - [INFO] INFO - ✅ Drucker-Status-Prüfung 'check_printer_status' erfolgreich in 2999.95ms
2025-06-02 14:31:27 - [printers] printers - [WARNING] WARNING - ❌ Drucker 192.168.0.103: OFFLINE (Steckdose nicht erreichbar)
2025-06-02 14:31:27 - [printers] printers - [INFO] INFO - ✅ Drucker-Status-Prüfung 'check_printer_status' erfolgreich in 3000.80ms
2025-06-02 14:31:28 - [printers] printers - [WARNING] WARNING - ❌ Drucker 192.168.0.103: OFFLINE (Steckdose nicht erreichbar)
2025-06-02 14:31:28 - [printers] printers - [INFO] INFO - ✅ Drucker-Status-Prüfung 'check_printer_status' erfolgreich in 3000.77ms
2025-06-02 14:31:30 - [printers] printers - [WARNING] WARNING - ❌ Drucker 192.168.0.104: OFFLINE (Steckdose nicht erreichbar)
2025-06-02 14:31:30 - [printers] printers - [INFO] INFO - ✅ Drucker-Status-Prüfung 'check_printer_status' erfolgreich in 3000.23ms
2025-06-02 14:31:31 - [printers] printers - [WARNING] WARNING - ❌ Drucker 192.168.0.104: OFFLINE (Steckdose nicht erreichbar)
2025-06-02 14:31:31 - [printers] printers - [INFO] INFO - ✅ Drucker-Status-Prüfung 'check_printer_status' erfolgreich in 3000.23ms
2025-06-02 14:31:33 - [printers] printers - [WARNING] WARNING - ❌ Drucker 192.168.0.106: OFFLINE (Steckdose nicht erreichbar)
2025-06-02 14:31:33 - [printers] printers - [INFO] INFO - ✅ Drucker-Status-Prüfung 'check_printer_status' erfolgreich in 3000.75ms
2025-06-02 14:31:34 - [printers] printers - [WARNING] WARNING - ❌ Drucker 192.168.0.106: OFFLINE (Steckdose nicht erreichbar)
2025-06-02 14:31:34 - [printers] printers - [INFO] INFO - ✅ Drucker-Status-Prüfung 'check_printer_status' erfolgreich in 3001.76ms
2025-06-02 14:31:39 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:31:39 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:31:39 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 2.09ms
2025-06-02 14:31:59 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:31:59 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:31:59 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.29ms
2025-06-02 14:32:29 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:32:29 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:32:29 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 0.37ms
2025-06-02 14:32:59 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:32:59 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:32:59 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 0.38ms
2025-06-02 14:33:29 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:33:29 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:33:29 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 0.39ms
2025-06-02 14:34:20 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-02 14:34:29 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 2 Drucker
2025-06-02 14:34:29 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9076.30ms

View File

@ -27182,3 +27182,422 @@
2025-06-02 10:57:11 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten 2025-06-02 10:57:11 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten
2025-06-02 10:57:11 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test 2025-06-02 10:57:11 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test
2025-06-02 14:25:36 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True 2025-06-02 14:25:36 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-02 14:26:41 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-02 14:26:51 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-02 14:26:57 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
2025-06-02 14:26:57 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
2025-06-02 14:26:57 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
2025-06-02 14:26:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000019246B46E90>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:26:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
2025-06-02 14:26:59 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
2025-06-02 14:27:01 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000019246B5B230>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:01 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
2025-06-02 14:27:01 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
2025-06-02 14:27:03 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000019246C25A70>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:03 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
2025-06-02 14:27:03 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
2025-06-02 14:27:05 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000019246BBEF90>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:05 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
2025-06-02 14:27:05 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
2025-06-02 14:27:07 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000019246B66030>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:07 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten
2025-06-02 14:27:07 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test
2025-06-02 14:27:10 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000019246B67BD0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:10 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten
2025-06-02 14:27:10 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test
2025-06-02 14:27:12 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000019246B67AC0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:12 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten
2025-06-02 14:27:12 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test
2025-06-02 14:27:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000019246ADFF00>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten
2025-06-02 14:27:14 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi
2025-06-02 14:27:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705D6A0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:27:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten
2025-06-02 14:27:16 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi
2025-06-02 14:27:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705DD00>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:27:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten
2025-06-02 14:27:18 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee
2025-06-02 14:27:20 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705E8B0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:27:20 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten
2025-06-02 14:27:20 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee
2025-06-02 14:27:22 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705EF10>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:27:22 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten
2025-06-02 14:27:22 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2
2025-06-02 14:27:24 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705F020>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:24 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten
2025-06-02 14:27:24 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2
2025-06-02 14:27:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705F240>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten
2025-06-02 14:27:26 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test
2025-06-02 14:27:28 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705F570>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:28 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten
2025-06-02 14:27:28 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test
2025-06-02 14:27:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705EAD0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten
2025-06-02 14:27:32 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
2025-06-02 14:27:34 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000019246B66E00>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:34 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
2025-06-02 14:27:34 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
2025-06-02 14:27:36 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705E8B0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:36 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
2025-06-02 14:27:36 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
2025-06-02 14:27:38 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705F790>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:38 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
2025-06-02 14:27:38 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
2025-06-02 14:27:40 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705E7A0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:40 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
2025-06-02 14:27:40 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
2025-06-02 14:27:42 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705DD00>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:42 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten
2025-06-02 14:27:42 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test
2025-06-02 14:27:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705D8C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten
2025-06-02 14:27:44 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test
2025-06-02 14:27:46 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705F240>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:46 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten
2025-06-02 14:27:46 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test
2025-06-02 14:27:48 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705EBE0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:27:48 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten
2025-06-02 14:27:48 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi
2025-06-02 14:27:50 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705E8B0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:27:50 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten
2025-06-02 14:27:50 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi
2025-06-02 14:27:52 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705E470>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:27:52 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten
2025-06-02 14:27:52 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee
2025-06-02 14:27:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x000001924705F8A0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:27:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten
2025-06-02 14:27:55 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee
2025-06-02 14:28:19 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-02 14:28:24 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
2025-06-02 14:28:24 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
2025-06-02 14:28:24 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
2025-06-02 14:28:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864AB65D0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:28:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
2025-06-02 14:28:26 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
2025-06-02 14:28:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864F81F30>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:28:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
2025-06-02 14:28:29 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
2025-06-02 14:28:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864F828B0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:28:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
2025-06-02 14:28:31 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
2025-06-02 14:28:33 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864B2D910>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:28:33 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
2025-06-02 14:28:33 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
2025-06-02 14:28:35 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864FAC9E0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:28:35 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten
2025-06-02 14:28:35 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test
2025-06-02 14:28:37 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864FAD7B0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:28:37 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten
2025-06-02 14:28:37 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test
2025-06-02 14:28:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864AD7130>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:28:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten
2025-06-02 14:28:39 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test
2025-06-02 14:28:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864FADAE0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:28:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten
2025-06-02 14:28:41 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi
2025-06-02 14:28:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864AD7790>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:28:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten
2025-06-02 14:28:44 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi
2025-06-02 14:28:46 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864AD79B0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:28:46 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten
2025-06-02 14:28:46 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee
2025-06-02 14:28:48 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864AD4160>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:28:48 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten
2025-06-02 14:28:48 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee
2025-06-02 14:28:50 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864AD4160>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:28:50 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten
2025-06-02 14:28:50 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2
2025-06-02 14:28:52 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864A57CE0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:28:52 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten
2025-06-02 14:28:52 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2
2025-06-02 14:28:54 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864FAD8C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:28:54 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten
2025-06-02 14:28:54 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test
2025-06-02 14:28:56 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864FAD040>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:28:56 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten
2025-06-02 14:28:56 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test
2025-06-02 14:28:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864FAC9E0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:28:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten
2025-06-02 14:29:00 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
2025-06-02 14:29:02 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000022864AD6F10>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:29:02 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
2025-06-02 14:29:02 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
2025-06-02 14:30:43 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-02 14:30:48 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
2025-06-02 14:30:48 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
2025-06-02 14:30:48 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
2025-06-02 14:30:51 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2C932FD0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:30:51 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
2025-06-02 14:30:51 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
2025-06-02 14:30:53 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE05940>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:30:53 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
2025-06-02 14:30:53 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
2025-06-02 14:30:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE075C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:30:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
2025-06-02 14:30:55 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
2025-06-02 14:30:57 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CED83B0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:30:57 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
2025-06-02 14:30:57 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
2025-06-02 14:30:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2CC00>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:30:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten
2025-06-02 14:30:59 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test
2025-06-02 14:31:01 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2D9D0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:01 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten
2025-06-02 14:31:01 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test
2025-06-02 14:31:03 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2DE10>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:03 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten
2025-06-02 14:31:03 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test
2025-06-02 14:31:05 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2D9D0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:05 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten
2025-06-02 14:31:05 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi
2025-06-02 14:31:08 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2D040>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:31:08 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten
2025-06-02 14:31:08 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi
2025-06-02 14:31:10 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2D370>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:31:10 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten
2025-06-02 14:31:10 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee
2025-06-02 14:31:12 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2C7C0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:31:12 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten
2025-06-02 14:31:12 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee
2025-06-02 14:31:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F790>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:31:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten
2025-06-02 14:31:14 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2
2025-06-02 14:31:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F9B0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten
2025-06-02 14:31:16 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2
2025-06-02 14:31:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F240>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten
2025-06-02 14:31:18 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test
2025-06-02 14:31:20 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F130>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:20 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten
2025-06-02 14:31:20 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test
2025-06-02 14:31:22 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2FF00>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:22 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten
2025-06-02 14:31:23 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
2025-06-02 14:31:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10C6B0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
2025-06-02 14:31:25 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
2025-06-02 14:31:27 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10CAF0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:27 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
2025-06-02 14:31:27 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
2025-06-02 14:31:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10CE20>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
2025-06-02 14:31:29 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
2025-06-02 14:31:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D150>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
2025-06-02 14:31:31 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
2025-06-02 14:31:33 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F130>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:33 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten
2025-06-02 14:31:33 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test
2025-06-02 14:31:36 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F8A0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:36 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten
2025-06-02 14:31:36 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test
2025-06-02 14:31:38 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2C7C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:38 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten
2025-06-02 14:31:38 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test
2025-06-02 14:31:40 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2FDF0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:40 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten
2025-06-02 14:31:40 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi
2025-06-02 14:31:42 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2C7C0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:31:42 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten
2025-06-02 14:31:42 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi
2025-06-02 14:31:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F680>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:31:44 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten
2025-06-02 14:31:44 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee
2025-06-02 14:31:46 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2FAC0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:31:46 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten
2025-06-02 14:31:46 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee
2025-06-02 14:31:48 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2C956BE0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:31:48 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten
2025-06-02 14:31:48 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2
2025-06-02 14:31:50 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2C955D00>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:50 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten
2025-06-02 14:31:50 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2
2025-06-02 14:31:53 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F130>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:53 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten
2025-06-02 14:31:53 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test
2025-06-02 14:31:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2C7C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten
2025-06-02 14:31:55 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test
2025-06-02 14:31:57 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10CF30>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:31:57 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten
2025-06-02 14:31:58 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
2025-06-02 14:32:00 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10C7C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:00 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
2025-06-02 14:32:00 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
2025-06-02 14:32:02 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F680>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:02 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
2025-06-02 14:32:02 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
2025-06-02 14:32:04 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2FAC0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:04 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
2025-06-02 14:32:04 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
2025-06-02 14:32:06 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2C956AD0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:06 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
2025-06-02 14:32:06 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
2025-06-02 14:32:08 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10CF30>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:08 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten
2025-06-02 14:32:08 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test
2025-06-02 14:32:10 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10CAF0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:10 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten
2025-06-02 14:32:10 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test
2025-06-02 14:32:12 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10CC00>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:12 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten
2025-06-02 14:32:12 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test
2025-06-02 14:32:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10C050>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:14 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten
2025-06-02 14:32:14 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi
2025-06-02 14:32:17 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2C956BE0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:32:17 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten
2025-06-02 14:32:17 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi
2025-06-02 14:32:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F680>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:32:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten
2025-06-02 14:32:19 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee
2025-06-02 14:32:21 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F130>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:32:21 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten
2025-06-02 14:32:21 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee
2025-06-02 14:32:23 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D370>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:32:23 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten
2025-06-02 14:32:23 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2
2025-06-02 14:32:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10C8D0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten
2025-06-02 14:32:25 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2
2025-06-02 14:32:27 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10C9E0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:27 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten
2025-06-02 14:32:27 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test
2025-06-02 14:32:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10CD10>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten
2025-06-02 14:32:29 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test
2025-06-02 14:32:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10C6B0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten
2025-06-02 14:32:32 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
2025-06-02 14:32:34 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D6A0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:34 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
2025-06-02 14:32:34 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
2025-06-02 14:32:37 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10DAE0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:37 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
2025-06-02 14:32:37 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
2025-06-02 14:32:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F130>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:39 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
2025-06-02 14:32:39 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
2025-06-02 14:32:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2C380>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:41 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
2025-06-02 14:32:41 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
2025-06-02 14:32:43 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2C956030>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:43 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten
2025-06-02 14:32:43 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test
2025-06-02 14:32:45 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2C956AD0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:45 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten
2025-06-02 14:32:45 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test
2025-06-02 14:32:47 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10DAE0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:47 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten
2025-06-02 14:32:47 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test
2025-06-02 14:32:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D6A0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:49 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten
2025-06-02 14:32:49 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi
2025-06-02 14:32:51 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D480>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:32:51 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten
2025-06-02 14:32:51 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi
2025-06-02 14:32:53 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10CD10>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:32:53 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten
2025-06-02 14:32:53 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee
2025-06-02 14:32:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10C9E0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:32:55 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten
2025-06-02 14:32:55 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee
2025-06-02 14:32:57 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10C8D0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:32:57 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten
2025-06-02 14:32:57 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2
2025-06-02 14:32:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D370>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:32:59 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten
2025-06-02 14:32:59 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2
2025-06-02 14:33:01 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10CE20>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:01 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten
2025-06-02 14:33:01 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test
2025-06-02 14:33:03 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10E140>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:03 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten
2025-06-02 14:33:03 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test
2025-06-02 14:33:05 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2C955D00>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:05 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten
2025-06-02 14:33:06 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
2025-06-02 14:33:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2C380>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:09 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
2025-06-02 14:33:09 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
2025-06-02 14:33:11 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2C7C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:11 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
2025-06-02 14:33:11 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
2025-06-02 14:33:13 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10DF20>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:13 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
2025-06-02 14:33:13 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
2025-06-02 14:33:15 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D040>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:15 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
2025-06-02 14:33:15 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
2025-06-02 14:33:17 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D260>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:17 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten
2025-06-02 14:33:17 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test
2025-06-02 14:33:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D150>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:19 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten
2025-06-02 14:33:19 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test
2025-06-02 14:33:21 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10C7C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:21 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten
2025-06-02 14:33:21 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test
2025-06-02 14:33:23 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D590>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:23 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten
2025-06-02 14:33:23 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi
2025-06-02 14:33:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D6A0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:33:25 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 9 nicht einschalten
2025-06-02 14:33:25 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 10: zi
2025-06-02 14:33:27 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10DBF0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:33:27 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 10 nicht einschalten
2025-06-02 14:33:27 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 11: fee
2025-06-02 14:33:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2C7C0>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:33:29 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 11 nicht einschalten
2025-06-02 14:33:29 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 12: fee
2025-06-02 14:33:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.104: HTTPConnectionPool(host='192.168.0.104', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2CE2F130>, 'Connection to 192.168.0.104 timed out. (connect timeout=2)'))
2025-06-02 14:33:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 12 nicht einschalten
2025-06-02 14:33:31 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 13: e2
2025-06-02 14:33:34 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2C956030>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:34 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 13 nicht einschalten
2025-06-02 14:33:34 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 14: e2
2025-06-02 14:33:36 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2C956AD0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:36 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 14 nicht einschalten
2025-06-02 14:33:36 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 15: test
2025-06-02 14:33:38 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10DAE0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:38 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 15 nicht einschalten
2025-06-02 14:33:38 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 16: test
2025-06-02 14:33:40 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D8C0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:40 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Sofort-Job 16 nicht einschalten
2025-06-02 14:33:41 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
2025-06-02 14:33:43 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10D9D0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:43 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
2025-06-02 14:33:43 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
2025-06-02 14:33:45 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x0000021A2E10CD10>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:33:45 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
2025-06-02 14:33:45 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
2025-06-02 14:34:08 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
2025-06-02 14:34:14 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
2025-06-02 14:34:14 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
2025-06-02 14:34:14 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 7: test
2025-06-02 14:34:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000149DEE32FD0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:34:16 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 7 nicht einschalten
2025-06-02 14:34:16 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 8: test
2025-06-02 14:34:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000149DEE4F100>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:34:18 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 8 nicht einschalten
2025-06-02 14:34:18 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 1: test
2025-06-02 14:34:20 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000149DEE4FBB0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:34:20 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 1 nicht einschalten
2025-06-02 14:34:20 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 2: test
2025-06-02 14:34:22 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000149DEEAED50>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:34:22 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 2 nicht einschalten
2025-06-02 14:34:22 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 3: test
2025-06-02 14:34:24 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000149DEE57680>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:34:24 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 3 nicht einschalten
2025-06-02 14:34:24 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 4: test
2025-06-02 14:34:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000149DF324490>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:34:26 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 4 nicht einschalten
2025-06-02 14:34:26 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 5: test
2025-06-02 14:34:28 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000149DF3248D0>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:34:28 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 5 nicht einschalten
2025-06-02 14:34:28 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte geplanten Job 6: test
2025-06-02 14:34:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Fehler beim einschalten der Tapo-Steckdose 192.168.0.103: HTTPConnectionPool(host='192.168.0.103', port=80): Max retries exceeded with url: /app (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x00000149DF324C00>, 'Connection to 192.168.0.103 timed out. (connect timeout=2)'))
2025-06-02 14:34:31 - [scheduler] scheduler - [ERROR] ERROR - ❌ Konnte Steckdose für Job 6 nicht einschalten
2025-06-02 14:34:31 - [scheduler] scheduler - [INFO] INFO - ⚡ Starte Sofort-Job 9: zi

View File

@ -105,3 +105,8 @@
2025-06-02 08:21:40 - [security] security - [INFO] INFO - 🔒 Security System initialisiert 2025-06-02 08:21:40 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-02 08:22:37 - [security] security - [INFO] INFO - 🔒 Security System initialisiert 2025-06-02 08:22:37 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-02 10:02:54 - [security] security - [INFO] INFO - 🔒 Security System initialisiert 2025-06-02 10:02:54 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-02 14:26:42 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-02 14:26:52 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-02 14:28:20 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-02 14:30:44 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-02 14:34:09 - [security] security - [INFO] INFO - 🔒 Security System initialisiert

View File

@ -191,3 +191,8 @@
2025-06-02 08:21:40 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert 2025-06-02 08:21:40 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-02 08:22:37 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert 2025-06-02 08:22:37 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-02 10:02:54 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert 2025-06-02 10:02:54 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-02 14:26:42 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-02 14:26:52 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-02 14:28:20 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-02 14:30:44 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-02 14:34:09 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert

View File

@ -953,3 +953,48 @@
2025-06-02 10:02:54 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert 2025-06-02 10:02:54 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-02 10:02:54 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert 2025-06-02 10:02:54 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-02 10:02:54 - [startup] startup - [INFO] INFO - ================================================== 2025-06-02 10:02:54 - [startup] startup - [INFO] INFO - ==================================================
2025-06-02 14:26:42 - [startup] startup - [INFO] INFO - ==================================================
2025-06-02 14:26:42 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
2025-06-02 14:26:42 - [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-02 14:26:42 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
2025-06-02 14:26:42 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
2025-06-02 14:26:42 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-02T14:26:42.876260
2025-06-02 14:26:42 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-02 14:26:42 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-02 14:26:42 - [startup] startup - [INFO] INFO - ==================================================
2025-06-02 14:26:52 - [startup] startup - [INFO] INFO - ==================================================
2025-06-02 14:26:52 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
2025-06-02 14:26: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-02 14:26:52 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
2025-06-02 14:26:52 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
2025-06-02 14:26:52 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-02T14:26:52.774706
2025-06-02 14:26:52 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-02 14:26:52 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-02 14:26:52 - [startup] startup - [INFO] INFO - ==================================================
2025-06-02 14:28:20 - [startup] startup - [INFO] INFO - ==================================================
2025-06-02 14:28:20 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
2025-06-02 14:28:20 - [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-02 14:28:20 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
2025-06-02 14:28:20 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
2025-06-02 14:28:20 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-02T14:28:20.112539
2025-06-02 14:28:20 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-02 14:28:20 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-02 14:28:20 - [startup] startup - [INFO] INFO - ==================================================
2025-06-02 14:30:44 - [startup] startup - [INFO] INFO - ==================================================
2025-06-02 14:30:44 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
2025-06-02 14:30:44 - [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-02 14:30:44 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
2025-06-02 14:30:44 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
2025-06-02 14:30:44 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-02T14:30:44.148495
2025-06-02 14:30:44 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-02 14:30:44 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-02 14:30:44 - [startup] startup - [INFO] INFO - ==================================================
2025-06-02 14:34:09 - [startup] startup - [INFO] INFO - ==================================================
2025-06-02 14:34:09 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
2025-06-02 14:34:09 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
2025-06-02 14:34:09 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
2025-06-02 14:34:09 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
2025-06-02 14:34:09 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-02T14:34:09.767504
2025-06-02 14:34:09 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-02 14:34:09 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-02 14:34:09 - [startup] startup - [INFO] INFO - ==================================================

View File

@ -455,3 +455,23 @@
2025-06-02 14:25:35 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) 2025-06-02 14:25:35 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-02 14:25:35 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet 2025-06-02 14:25:35 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-02 14:25:35 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet 2025-06-02 14:25:35 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-02 14:26:40 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-02 14:26:40 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-02 14:26:40 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-02 14:26:40 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-02 14:26:51 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-02 14:26:51 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-02 14:26:51 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-02 14:26:51 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-02 14:28:18 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-02 14:28:18 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-02 14:28:18 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-02 14:28:18 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-02 14:30:42 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-02 14:30:42 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-02 14:30:42 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-02 14:30:42 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-02 14:34:08 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-02 14:34:08 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-02 14:34:08 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-02 14:34:08 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet

File diff suppressed because one or more lines are too long

View File

@ -2,9 +2,9 @@
{% block title %}{{ page_title }} - Mercedes-Benz MYP{% endblock %} {% block title %}{{ page_title }} - Mercedes-Benz MYP{% endblock %}
{% block content %} {% block content %}
<div class="min-h-screen bg-gray-50 dark:bg-gray-900 transition-colors duration-300"> <div class="min-h-screen">
<!-- Header mit Breadcrumb --> <!-- Header mit Breadcrumb -->
<div class="bg-white dark:bg-gray-800 shadow-sm border-b border-gray-200 dark:border-gray-700"> <div>
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="py-6"> <div class="py-6">
<!-- Breadcrumb --> <!-- Breadcrumb -->