2.7 KiB
2.7 KiB
KVZ Mock Data - Dokumentation
Mock-Daten Struktur
Die KVZ Mock-Daten befinden sich in mocks/kvzData.json und haben folgende Struktur:
Beispiel-Daten
{
"kvzPresence": [1, 0, 1, 0, ...], // 32 Elemente
"kvzStatus": [1, 0, 1, 0, ...], // 128 Elemente
"timestamp": "2025-01-31T12:00:00.000Z"
}
kvzPresence Array (32 Elemente)
- Index 0-31: Repräsentiert Slots 0-31
- Wert 1: KVZ-Gerät vorhanden
- Wert 0: KVZ-Gerät nicht vorhanden
Aktuelle Mock-Daten:
- Slot 0: KVZ vorhanden (1)
- Slot 1: KVZ nicht vorhanden (0)
- Slot 2: KVZ vorhanden (1)
- Slot 3-31: KVZ nicht vorhanden (0)
kvzStatus Array (128 Elemente)
- Index Berechnung:
slotIndex * 4 + ledIndex - 4 LEDs pro Slot: LED 0, LED 1, LED 2, LED 3
- Wert 1: LED aktiv (grün)
- Wert 0: LED inaktiv (rot)
Aktuelle Mock-Daten:
- Slot 0 LEDs (Index 0-3): [1, 0, 1, 0] → LED1=grün, LED2=rot, LED3=grün, LED4=rot
- Slot 1 LEDs (Index 4-7): [0, 0, 0, 0] → Alle LEDs rot (KVZ nicht vorhanden)
- Slot 2 LEDs (Index 8-11): [1, 1, 0, 1] → LED1=grün, LED2=grün, LED3=rot, LED4=grün
- Slot 3-31: Alle LEDs rot (0)
API Endpunkte
GET /api/kvz/data
Holt alle KVZ-Daten.
Response:
{
"kvzPresence": [...],
"kvzStatus": [...],
"timestamp": "2025-01-31T12:00:00.000Z"
}
POST /api/kvz/data
Ersetzt komplette KVZ-Daten.
Request Body:
{
"kvzPresence": [...],
"kvzStatus": [...]
}
POST /api/kvz/updateSettings
Aktualisiert spezifische KVZ-Einstellungen.
Request Body:
{
"updates": [
{
"key": "kvzPresence",
"slot": 0,
"value": 1
},
{
"key": "kvzStatus",
"slot": 0,
"ledIndex": 1,
"value": 1
}
]
}
Service Functions
fetchKvzData()
import { fetchKvzData } from "../services/fetchKvzDataService";
const data = await fetchKvzData();
console.log(data.kvzPresence); // [1, 0, 1, 0, ...]
updateKvzSettings()
import { updateKvzSettings } from "../services/fetchKvzDataService";
await updateKvzSettings([
{ key: "kvzPresence", slot: 0, value: 1 },
{ key: "kvzStatus", slot: 0, ledIndex: 1, value: 1 },
]);
Redux Integration
Die Mock-Daten können in Redux geladen werden:
// In einem Thunk oder useEffect
const data = await fetchKvzData();
dispatch(
setKueData({
kvzPresence: data.kvzPresence,
kvzStatus: data.kvzStatus,
})
);
Testen
Die Mock-Daten ermöglichen es:
- KVZ-Geräte zu simulieren (Slots 0 und 2 haben KVZ)
- LED-Status zu testen (verschiedene Kombinationen)
- API-Updates zu testen (Presence und Status ändern)
- UI-Verhalten zu validieren (bedingte Anzeige, Farben)