jojojojo aua
This commit is contained in:
@@ -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*
|
Reference in New Issue
Block a user