# KVZ Mock Data - Dokumentation ## Mock-Daten Struktur Die KVZ Mock-Daten befinden sich in `mocks/kvzData.json` und haben folgende Struktur: ### Beispiel-Daten ```json { "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:** ```json { "kvzPresence": [...], "kvzStatus": [...], "timestamp": "2025-01-31T12:00:00.000Z" } ``` ### POST /api/kvz/data Ersetzt komplette KVZ-Daten. **Request Body:** ```json { "kvzPresence": [...], "kvzStatus": [...] } ``` ### POST /api/kvz/updateSettings Aktualisiert spezifische KVZ-Einstellungen. **Request Body:** ```json { "updates": [ { "key": "kvzPresence", "slot": 0, "value": 1 }, { "key": "kvzStatus", "slot": 0, "ledIndex": 1, "value": 1 } ] } ``` ## Service Functions ### fetchKvzData() ```typescript import { fetchKvzData } from "../services/fetchKvzDataService"; const data = await fetchKvzData(); console.log(data.kvzPresence); // [1, 0, 1, 0, ...] ``` ### updateKvzSettings() ```typescript 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: ```typescript // In einem Thunk oder useEffect const data = await fetchKvzData(); dispatch( setKueData({ kvzPresence: data.kvzPresence, kvzStatus: data.kvzStatus, }) ); ``` ## Testen Die Mock-Daten ermöglichen es: 1. **KVZ-Geräte zu simulieren** (Slots 0 und 2 haben KVZ) 2. **LED-Status zu testen** (verschiedene Kombinationen) 3. **API-Updates zu testen** (Presence und Status ändern) 4. **UI-Verhalten zu validieren** (bedingte Anzeige, Farben)