jojojojo aua

This commit is contained in:
2025-06-01 02:00:30 +02:00
parent 35caefdbfd
commit de66def651
65 changed files with 5977 additions and 8742 deletions

View File

@@ -1 +1,376 @@
# Steckdosen-Test-System Dokumentation
## Übersicht
Das Steckdosen-Test-System ermöglicht es Ausbildern und Administratoren, die Stromversorgung der 3D-Drucker sicher zu testen und zu steuern. Die Funktionalität ist speziell für geschultes Personal entwickelt und beinhaltet umfassende Sicherheitsmechanismen.
## Funktionsumfang
### 🔍 Status-Überwachung
- **Echtzeit-Status** aller konfigurierten Steckdosen
- **Energieverbrauch-Monitoring** (bei unterstützten Geräten)
- **Netzwerk-Verbindungsstatus** zu jeder Steckdose
- **Geräte-Informationen** (Modell, Firmware-Version, etc.)
### ⚡ Testfunktionen
- **Einzelne Steckdose testen** - gezielter Test einer spezifischen Steckdose
- **Massenübersicht** - Status aller Steckdosen auf einen Blick
- **Ein-/Ausschalt-Tests** mit Sicherheitsprüfungen
- **Protokollierung** aller Test-Aktivitäten
### 🛡️ Sicherheitsfeatures
- **Warnsystem** bei aktiven Druckjobs
- **Force-Modus** für Notfälle mit expliziter Bestätigung
- **Risiko-Bewertung** basierend auf aktueller Nutzung
- **Audit-Trail** aller durchgeführten Tests
## API-Endpunkte
### Status-Abfrage
#### Einzelne Steckdose prüfen
```http
GET /api/printers/test/socket/{printer_id}
```
**Beschreibung:** Liefert detaillierten Status einer spezifischen Steckdose mit Sicherheitsbewertung.
**Berechtigung:** Admin-Rechte erforderlich
**Response-Struktur:**
```json
{
"success": true,
"printer": {
"id": 1,
"name": "Prusa i3 MK3S",
"model": "Prusa i3 MK3S+",
"location": "Werkstatt A",
"status": "online"
},
"socket": {
"status": "online",
"info": {
"device_on": true,
"signal_level": 3,
"current_power": 45.2,
"device_id": "TAPO_P110_ABC123",
"model": "P110",
"hw_ver": "1.0",
"fw_ver": "1.2.3"
},
"error": null,
"ip_address": "192.168.1.100"
},
"safety": {
"risk_level": "medium",
"warnings": [
"Drucker verbraucht aktuell 45.2W - vermutlich aktiv"
],
"recommendations": [
"Prüfen Sie den Druckerstatus bevor Sie die Steckdose ausschalten"
],
"active_jobs_count": 0,
"safe_to_test": false
},
"timestamp": "2025-01-05T10:30:00Z"
}
```
#### Alle Steckdosen prüfen
```http
GET /api/printers/test/all-sockets
```
**Beschreibung:** Liefert Status aller konfigurierten Steckdosen mit Zusammenfassung.
**Berechtigung:** Admin-Rechte erforderlich
**Response-Struktur:**
```json
{
"success": true,
"sockets": [
{
"printer": {...},
"socket": {...},
"warnings": [],
"active_jobs": 0,
"safe_to_test": true
}
],
"summary": {
"total_sockets": 5,
"online": 4,
"offline": 1,
"error": 0,
"with_warnings": 1,
"safe_to_test": 4
},
"timestamp": "2025-01-05T10:30:00Z"
}
```
### Steckdosen-Steuerung
#### Test-Steuerung
```http
POST /api/printers/test/socket/{printer_id}/control
```
**Beschreibung:** Steuert eine Steckdose für Testzwecke mit Sicherheitsprüfungen.
**Berechtigung:** Admin-Rechte erforderlich
**Request-Body:**
```json
{
"action": "on", // "on" oder "off"
"force": false, // Sicherheitswarnungen überschreiben
"test_reason": "Routinetest der Steckdose"
}
```
**Response-Struktur:**
```json
{
"success": true,
"message": "Steckdose für Test erfolgreich eingeschaltet",
"test_info": {
"admin": "Admin Name",
"reason": "Routinetest der Steckdose",
"forced": false,
"status_before": false,
"status_after": true
},
"printer": {
"id": 1,
"name": "Prusa i3 MK3S",
"status": "starting"
},
"action": "on",
"warnings": [],
"timestamp": "2025-01-05T10:30:00Z"
}
```
**Fehler-Response (bei Sicherheitsbedenken):**
```json
{
"success": false,
"error": "Aktion blockiert aufgrund von Sicherheitsbedenken",
"warnings": [
"WARNUNG: 1 aktive Job(s) würden abgebrochen!"
],
"hint": "Verwenden Sie 'force': true um die Aktion trotzdem auszuführen",
"requires_force": true
}
```
## Webinterface
### Zugriff
- **URL:** `/socket-test`
- **Berechtigung:** Nur für Administratoren
- **Navigation:** Admin-Menü → Steckdosen-Test
### Funktionen
#### 1. Übersicht aller Steckdosen
- **Statistik-Dashboard** mit Gesamtzahlen
- **Karten-Ansicht** aller konfigurierten Steckdosen
- **Status-Ampel** (Grün/Gelb/Rot) basierend auf Risikobewertung
- **Schnell-Aktionen** für jede Steckdose
#### 2. Einzeltest-Bereich
- **Drucker-Auswahl** via Dropdown
- **Detaillierte Status-Anzeige** mit allen verfügbaren Informationen
- **Sicherheitshinweise** und Empfehlungen
- **Test-Buttons** für Ein-/Ausschalten
#### 3. Sicherheitsfeatures
- **Bestätigungsmodal** für alle Aktionen
- **Grund-Eingabe** für Audit-Trail
- **Force-Checkbox** für Notfälle
- **Echtzeit-Warnungen** bei kritischen Zuständen
## Sicherheitskonzept
### Zugriffskontrolle
- **Authentifizierung:** Login erforderlich
- **Autorisierung:** Admin-Berechtigung erforderlich
- **Session-Management:** Automatisches Logout bei Inaktivität
- **CSRF-Schutz:** Token-basierte Anfrageverifizierung
### Risikobewertung
```python
def bewerte_risiko(aktive_jobs, stromverbrauch, steckdosen_status):
if aktive_jobs > 0:
return "high" # Hoches Risiko
elif steckdosen_status == "online" and stromverbrauch > 10:
return "medium" # Mittleres Risiko
else:
return "low" # Geringes Risiko
```
### Sicherheitswarnungen
- **Aktive Jobs:** Warnung bei laufenden Druckaufträgen
- **Hoher Stromverbrauch:** Hinweis auf aktive Geräte
- **Netzwerkfehler:** Information über Verbindungsprobleme
- **Konfigurationsfehler:** Meldung bei fehlenden Einstellungen
### Force-Modus
Der Force-Modus erlaubt das Überschreiben von Sicherheitswarnungen:
- **Explizite Bestätigung** erforderlich
- **Zusätzliche Protokollierung** aller Force-Aktionen
- **Begründung** muss angegeben werden
- **Erweiterte Audit-Informationen** werden gespeichert
## Protokollierung
### Log-Kategorien
- **Normale Tests:** INFO-Level mit Grundinformationen
- **Force-Aktionen:** WARNING-Level mit erweiterten Details
- **Fehler:** ERROR-Level mit Fehlerbeschreibung
- **Sicherheitsereignisse:** Spezielle Security-Logs
### Log-Format
```
🧪 TEST DURCHGEFÜHRT: ON für Prusa i3 MK3S |
Admin: Hans Müller | Grund: Routinetest |
Force: false | Status: false → true
```
### Gespeicherte Informationen
- **Zeitstempel** der Aktion
- **Admin-Name** des ausführenden Benutzers
- **Drucker-Informationen** (Name, ID)
- **Aktion** (Ein/Aus)
- **Grund** für den Test
- **Force-Status** (verwendet/nicht verwendet)
- **Status-Änderung** (Vorher/Nachher)
## Fehlerbehebung
### Häufige Probleme
#### 1. Steckdose nicht erreichbar
**Symptome:** Status "error", Verbindungsfehler
**Lösungsansätze:**
- Netzwerkverbindung prüfen
- IP-Adresse verifizieren
- Steckdose neu starten
- Konfiguration überprüfen
#### 2. Falsche Anmeldedaten
**Symptome:** Authentifizierungsfehler
**Lösungsansätze:**
- Benutzername/Passwort in Drucker-Konfiguration prüfen
- Steckdose zurücksetzen
- Neue Anmeldedaten konfigurieren
#### 3. Keine Admin-Berechtigung
**Symptome:** 403 Forbidden-Fehler
**Lösungsansätze:**
- Benutzer-Rolle überprüfen
- Admin-Berechtigung zuweisen
- Neu anmelden
### Debug-Informationen
Bei Problemen sind folgende Informationen hilfreich:
- **Browser-Konsole** für JavaScript-Fehler
- **Netzwerk-Tab** für API-Anfragen
- **Server-Logs** für Backend-Fehler
- **Steckdosen-IP** und Erreichbarkeit
## Konfiguration
### Drucker-Steckdosen-Zuordnung
Jeder Drucker kann eine Steckdose konfiguriert haben:
```python
class Printer(Base):
# ... andere Felder ...
plug_ip = Column(String(50), nullable=False) # IP der Steckdose
plug_username = Column(String(100), nullable=False) # Benutzername
plug_password = Column(String(100), nullable=False) # Passwort
```
### Unterstützte Steckdosen
- **TP-Link Tapo P110** (Smart Plug mit Energiemessung)
- **Kompatible PyP100-Geräte**
### Netzwerk-Anforderungen
- **Gleiche Subnetz:** Steckdosen müssen im gleichen Netzwerk erreichbar sein
- **Port 9999:** Standard-Port für TP-Link Tapo-Kommunikation
- **Keine Firewall-Blockierung:** Zwischen Server und Steckdosen
## Best Practices
### Für Administratoren
1. **Immer Status prüfen** bevor Tests durchgeführt werden
2. **Begründung angeben** für bessere Nachverfolgbarkeit
3. **Force-Modus sparsam verwenden** nur in Notfällen
4. **Regelmäßige Tests** zur Funktionsüberprüfung
5. **Dokumentation führen** über durchgeführte Wartungen
### Für Ausbilder
1. **Schulung** vor erster Nutzung
2. **Sicherheitsregeln beachten** bei aktiven Jobs
3. **Koordination** mit anderen Nutzern
4. **Protokollierung** aller Testaktivitäten
5. **Eskalation** bei Problemen an IT-Support
### Für Entwickler
1. **Error-Handling** für alle API-Calls
2. **Timeout-Behandlung** für Netzwerk-Anfragen
3. **Caching** für bessere Performance
4. **Logging** für Debug-Zwecke
5. **Testing** aller Szenarien
## Integration
### Bestehende Systeme
Das Steckdosen-Test-System integriert sich nahtlos in:
- **Drucker-Management:** Nutzung der bestehenden Drucker-Datenbank
- **Benutzer-System:** Verwendung der Admin-Berechtigungen
- **Logging-System:** Einheitliche Log-Struktur
- **API-Framework:** Konsistente REST-API
### Erweiterungsmöglichkeiten
- **Zeitgesteuerte Tests:** Automatische periodische Tests
- **Benachrichtigungen:** E-Mail/Push bei kritischen Ereignissen
- **Dashboard-Integration:** Einbindung in Haupt-Dashboard
- **Reporting:** Erweiterte Berichte und Statistiken
## Wartung
### Regelmäßige Aufgaben
- **Verbindungstests** zu allen Steckdosen
- **Log-Rotation** zur Speicherplatz-Verwaltung
- **Konfiguration-Backup** der Steckdosen-Einstellungen
- **Performance-Monitoring** der API-Endpoints
### Update-Verfahren
1. **Backup** der aktuellen Konfiguration
2. **Test-Environment** für neue Version
3. **Schrittweise Einführung** mit Fallback-Plan
4. **Dokumentation** aller Änderungen
## Support
### Kontakt
- **IT-Support:** für technische Probleme
- **Ausbilder-Team:** für fachliche Fragen
- **Entwickler-Team:** für Feature-Requests
### Dokumentation
- **API-Dokumentation:** für Entwickler
- **Benutzer-Handbuch:** für Administratoren
- **Troubleshooting-Guide:** für Support-Team
---
*Dokumentation erstellt am: 2025-01-05*
*Version: 1.0*
*Autor: KI-Assistent*