mitai-jinkendo/.claude/docs/functional/SLEEP_MODULE.md
Lars 7940dc7560 docs: Struktur .claude/docs versionieren, working/, Gitea-Index, Regeln
- .gitignore: .claude/docs, rules, commands tracken; settings.local weiter ignorieren
- DOCUMENTATION.md: verbindliche Ablage functional/technical/working/issues
- .claude/README.md: Agent-Einstieg; GITEA_ISSUES_INDEX aus MCP (Stand 2026-04-08)
- Arbeitspapiere von docs/ nach .claude/docs/working/ verschoben
- docs/MEMBERSHIP_SYSTEM.md als Stub; kanonisch technical/MEMBERSHIP_SYSTEM.md
- CLAUDE.md Pflichtlektüre und Links angepasst; docs/README.md vereinfacht

Made-with: Cursor
2026-04-08 13:01:49 +02:00

8.2 KiB
Raw Blame History

Fachliche Anforderungen: Schlaf-Modul

Modul: v9d
Status: Fachlich freigegeben, technische Implementierung ausstehend
Letzte Aktualisierung: März 2026


1. Überblick

Das Schlaf-Modul ist ein eigenständiges Tracking-Modul für tägliche Schlafdaten. Es ergänzt die bestehenden Körper-, Ernährungs- und Aktivitäts-Module um eine zentrale Gesundheitsdimension. Schlaf wird sowohl manuell erfasst als auch aus Apple Health / Garmin importiert. Korrelationen mit Ruhepuls, Training und Gewicht fließen in die KI-Analyse ein.


2. Erfasste Daten

2.1 Pflichtfelder (Schnelleingabe)

  • Datum welche Nacht (Standard: letzte Nacht)
  • Schlafdauer in Stunden und Minuten (berechnet aus Ein-/Aufwachzeit oder direkt)
  • Schlafqualität subjektiv 15 (1 = sehr schlecht, 5 = sehr gut)

2.2 Optionale Felder (Detaileingabe)

  • Einschlafzeit Uhrzeit (z.B. 23:15)
  • Aufwachzeit Uhrzeit (z.B. 06:45)
  • Aufwach-Häufigkeit wie oft in der Nacht aufgewacht (010+)
  • Schlafphasen Dauer in Minuten je Phase:
    • Tiefschlaf
    • REM-Schlaf
    • Leichtschlaf
    • Wach (in Bett)
  • Notiz Freitext (z.B. "Stress, schlechte Nacht", "früh ins Bett")

2.3 Abgeleitete Felder (automatisch berechnet)

  • Schlafdauer aus Einschlafzeit + Aufwachzeit wenn nicht direkt eingegeben
  • Schlafeffizienz Schlafdauer / Zeit im Bett × 100% (wenn Phasen vorhanden)
  • Tiefschlaf-Anteil % Tiefschlaf / Gesamtschlaf × 100%
  • REM-Anteil % REM / Gesamtschlaf × 100%

3. Erfassungs-Modi

3.1 Schnelleingabe (≤ 30 Sekunden)

Minimaler Aufwand für den täglichen Gebrauch:

Datum:        [gestern / heute Nacht]
Schlafdauer:  [7] h [30] min
Qualität:     ★★★★☆  (1-5 Sterne)
[Speichern]

3.2 Detaileingabe (alle Felder)

Vollständige Erfassung für Power-User oder wenn Gerätedaten vorliegen:

Datum:           [22.03.2026]
Eingeschlafen:   [23:15]
Aufgewacht:      [06:45]
Schlafdauer:     [7h 30min] (automatisch berechnet)
Qualität:        ★★★★☆
Aufwachungen:    [1]
Tiefschlaf:      [95] min
REM-Schlaf:      [110] min
Leichtschlaf:    [230] min
Wach im Bett:    [15] min
Notiz:           [...]
[Speichern]

3.3 Morgendlicher Check-in

  • Beim Öffnen der App morgens optional: "Wie hast du geschlafen?"
  • Zeigt Schnelleingabe direkt auf dem Dashboard
  • Kann in den Einstellungen aktiviert/deaktiviert werden
  • Reminder-Logik: nur anzeigen wenn noch kein Eintrag für die letzte Nacht

3.4 Import (Apple Health / Garmin)

  • Beim CSV/Health-Import werden Schlafdaten automatisch erkannt und zugeordnet
  • Importierte Daten befüllen alle verfügbaren Felder (Phasen wenn vorhanden)
  • Manuelle Eingabe ergänzt oder überschreibt Importdaten für denselben Tag
  • Quelle wird gespeichert (manuell / apple_health / garmin)

4. Navigation & Dashboard

4.1 Eigene Seite in der Navigation

  • Neuer Nav-Eintrag: Schlaf (zwischen Verlauf und Analyse)
  • Icon: Mond oder Bett-Symbol
  • Zeigt: Letzte 7 Tage Übersicht + Verlauf + Eingabe-Button

4.2 Dashboard-Widget

  • Kompaktes Widget auf dem Dashboard (unter den Hauptkennzahlen)
  • Zeigt: Letzte Nacht (Dauer + Qualität) + 7-Tage-Durchschnitt
  • Klick öffnet die Schlaf-Seite
  • Wenn noch kein Eintrag heute: "Schlaf erfassen" Button

5. Auswertungen

5.1 Schlafdauer-Trend

  • Zeitraum wählbar: 7 / 30 / 90 Tage
  • Liniengrafik: tägliche Schlafdauer
  • Referenzlinie: persönliches Schlafziel (konfigurierbar in Einstellungen)
  • Durchschnittslinie: gleitender 7-Tage-Durchschnitt
  • Farbcodierung: unter Ziel = orange/rot, über Ziel = grün

5.2 Schlafqualität-Trend

  • Liniengrafik: tägliche Qualität (15)
  • 7-Tage-Durchschnitt als Referenzlinie
  • Kombiniert mit Schlafdauer in einer Grafik (zwei Y-Achsen)

5.3 Schlafphasen-Verteilung

  • Balkengrafik: Tiefschlaf / REM / Leichtschlaf / Wach je Nacht
  • Durchschnittliche Verteilung über Zeitraum
  • Referenzwerte: empfohlene Anteile (Tiefschlaf 15-25%, REM 20-25%)
  • Nur sichtbar wenn Phasendaten vorhanden

5.4 Schlafschulden-Berechnung

  • Definition: Differenz zwischen Schlafziel und tatsächlichem Schlaf (kumuliert)
  • Zeitraum: letzte 7 / 14 Tage
  • Anzeige: "+2h 15min Schlafschuld" oder "0 kein Defizit"
  • Positiver Saldo (Übererfüllung) wird als Puffer angezeigt

5.5 Optimales Schlaffenster

  • Berechnung aus Einschlafzeit + Schlafqualität über Zeit
  • Erkennt wann Schlaf am besten war (z.B. "Beste Qualität bei Einschlafzeit 2223 Uhr")
  • Mindestdatenbasis: 14 Einträge mit Einschlafzeit

5.6 Korrelationen

Alle Korrelationen benötigen mindestens 14 gemeinsame Datenpunkte:

Schlaf ↔ Ruhepuls:

  • Streudiagramm: Schlafdauer / Qualität vs. Ruhepuls nächster Morgen
  • KI-Aussage: "Nach <7h Schlaf ist dein Ruhepuls Ø X bpm höher"

Schlaf ↔ Trainingsleistung:

  • Vergleich: Trainingsintensität/-volumen nach gut vs. schlecht geschlafenen Nächten
  • KI-Aussage: "Nach Nächten mit >7,5h Schlaf trainierst du Ø X% länger/intensiver"

Schlaf ↔ Gewicht:

  • Korrelation: Schlafdauer vs. Gewichtsentwicklung (wöchentlich)
  • KI-Aussage: "In Wochen mit <6h Schlaf im Schnitt +X kg Gewichtsschwankung"

6. Schlafziel (konfigurierbar)

  • In den Einstellungen: "Mein Schlafziel" → Stunden + Minuten
  • Standard: 7h 30min
  • Wird als Referenzlinie in allen Grafiken angezeigt
  • Fließt in Schlafschulden-Berechnung ein
  • KI nutzt den Wert als Basis für Schlafmangel-Warnung

7. KI-Analyse

7.1 Neue KI-Platzhalter

{{schlaf_avg_dauer}}         → "7h 12min (Ø 7 Tage)"
{{schlaf_avg_qualitaet}}     → "3,8/5 (Ø 7 Tage)"
{{schlaf_trend_dauer}}       → "sinkend / stabil / steigend"
{{schlaf_trend_qualitaet}}   → "sinkend / stabil / steigend"
{{schlaf_schulden}}          → "+2h 15min (letzte 7 Tage)"
{{schlaf_ziel}}              → "7h 30min"
{{schlaf_optimum_fenster}}   → "22:0023:00 Uhr (beste Qualität)"
{{schlaf_tiefschlaf_anteil}} → "18% (Ø letzte 14 Tage)"
{{schlaf_rem_anteil}}        → "22% (Ø letzte 14 Tage)"
{{schlaf_aufwachungen}}      → "1,2x pro Nacht (Ø 7 Tage)"
{{schlaf_korrelation_puls}}  → "Ruhepuls +4 bpm nach <7h Schlaf"
{{schlaf_detail}}            → tabellarische Übersicht letzte 7 Nächte

7.2 KI-Analyse-Funktionen

Schlafmangel erkennen und warnen:

  • Trigger: Schlafdurchschnitt letzte 3 Tage < (Schlafziel 60min)
  • KI-Ausgabe: Warnung + konkrete Empfehlung
  • Beispiel: "Du schläfst seit 3 Tagen unter deinem Ziel. Schlafschuld: +2h 15min."

Schlaf ↔ Trainingsleistung korrelieren:

  • Automatische Berechnung sobald genug Daten (14+ Einträge beider Module)
  • KI-Ausgabe: narrative Korrelationsbeschreibung mit konkreten Zahlen

Optimales Schlaffenster empfehlen:

  • Basierend auf historischen Einschlafzeiten + Qualitäten
  • KI-Ausgabe: "Deine beste Schlafqualität erzielst du wenn du zwischen 2223 Uhr einschläfst"

Schlaf ↔ Gewicht:

  • Wöchentliche Korrelation
  • KI-Ausgabe: "In Wochen mit mehr Schlaf zeigt dein Gewicht weniger Schwankungen"

Schlafphasen-Verteilung kommentieren:

  • Nur wenn Phasendaten vorhanden
  • Referenz: Tiefschlaf 15-25%, REM 20-25%, Leichtschlaf 50-60%
  • KI-Ausgabe: "Dein Tiefschlaf-Anteil liegt bei X% das ist [über/unter/im] empfohlenen Bereich"

8. Abgrenzung & offene Fragen

In diesem Modul enthalten:

  • Tägliche Schlaferfassung (Schnell + Detail)
  • Dashboard-Widget + eigene Navigationsseite
  • Morgendlicher Check-in (optional)
  • Import aus Apple Health / Garmin CSV
  • 5 Auswertungsansichten inkl. Korrelationen
  • Konfigurierbares Schlafziel
  • 12 neue KI-Platzhalter
  • 5 KI-Analyse-Funktionen

Nicht in diesem Modul:

  • Automatischer Live-Sync aus Garmin/Apple Watch → v9h (Connectoren)
  • Schlaf-Coaching / Schlafhygiene-Tipps → optional später
  • Schnarchen / Atemaussetzer (SpO2) → Teil Vitalwerte v9e
  • Push-Notification "Schlafenszeit-Reminder" → optional später

Offene Fragen für technische Planung:

  1. Neue DB-Tabelle sleep_log oder Erweiterung von activity_log?
  2. Schlafphasen als separate Spalten oder als JSONB-Feld?
  3. Morgendlicher Check-in: Frontend-State oder Backend-Logik (letzte Nacht bereits erfasst?)?
  4. Korrelationsberechnung: im Backend (Python) oder im Frontend (JavaScript)?
  5. Apple Health Export enthält Schlafphasen-Daten welches CSV-Format wird erwartet? EOF