claudew3yh
Health-Ingest: Einheiten-Normalisierung (kJ→kcal, s→min, Schlaf)
changed
- `scripts/health-data-service.mjs`: Ingest normalisiert HAE-Rohwerte jetzt beim Schreiben — Energie-Metriken von kJ nach kcal (÷4,184, `units='kcal'`), `workout.duration` von Sekunden nach Minuten (verifiziert gegen start/end), Schlaf-`qty` zieht `totalSleep` vor `asleep` (HAE liefert bei Phasen-Tracking `asleep=0`). Originalwerte bleiben unverändert in `point_json`/`workout_json` und im Raw-JSONL.
- Versionierte Einmal-Migration der Bestandsdaten in `openLiveDb()` (`PRAGMA user_version` 0→1, transaktional): kJ-Zeilen konvertiert, Workout-Dauern ÷60, Schlaf-qty aus `point_json.totalSleep` nachgezogen.
verified
- Nach Migration: 0 kJ-Zeilen übrig, `active_energy` 761 kcal (= 3183 kJ), Workout-Dauer 36,7 min deckt sich exakt mit start/end-Differenz, Schlaf-qty 7,2–9,6 h plausibel. Leerer Auth-Ingest → 200, Service stabil.
notes
- Kontext: M1 (iPhone-Push) heute live gegangen, erster Payload zeigte die Roh-Einheiten. M4-Konsumenten (`health-checkpoint.mjs`, Dashboard-Pack) können `qty`/`duration_min` künftig direkt lesen.